オペレーター FloatParamTranslator

Operator Library: Parameters

Operator FloatParamTranslator により、1 つまたは複数の他のオペレータのパラメータに対する翻訳されたアクセス(読み取りおよび書き込み)が可能になります。 計算には、数式を定義します。これらの数式の構文は、GenICam API バージョン 2.0 に準拠しています。

さらに、このオペレータを使用して、パラメータの翻訳で使用するためのユーザー定義のグローバル定数を作成できます。 Value が静的な場合、DisplayHierarchy パラメータを :: に設定することでグローバル定数を作成できます。 結果として得られる定数はシステム全体で使用可能になり、すべてのパラメータ翻訳数式からアクセスできます。 翻訳数式でのグローバル定数の使用方法の詳細については、DisplayHierarchy パラメータの説明を参照してください。

Operator FloatParamTranslator は、VA_DOUBLE 型のマップパラメータを生成します。 マップパラメータの名前は Value です。

このオペレータはパラメータ Value の型を VA_DOUBLE 型として定義していますが、書き込みまたは読み取り操作中にアクセスされるパラメータのデータ型を制限するものではありません。

Read Action

パラメータ ReadAction では、翻訳オペレータのパラメータ Value への読み取りアクセス時に何が起こるかを定義します。 パラメータ Value は単に値を保持しているわけではありません。 代わりに、パラメータ Value の値は数式から計算されます。 この数式はパラメータ ReadAction で定義します。 パラメータ Value への読み取りアクセスが発生するとすぐに、ReadAction で定義した数式が実行され、その結果が値を要求している要素に転送されます。

数式には、デザイン内のどこにあるオペレータパラメータの値も含めることができます。 これらの値のいずれかが変更されるとすぐに、翻訳オペレータのパラメータ Value の計算は新しい結果になります (値パラメータ Value が以前に保持していた値とは異なります)。 数式には、パラメータの値だけでなく、最小値、最大値、ステップサイズ、列挙項目の数値などのパラメータの特定の Property も含めることができます。

Write Action

パラメータ WriteAction では、翻訳オペレータのパラメータ Value への書き込みアクセス時に何が起こるかを定義します。 参照オペレータを使用する場合とは異なり、パラメータ Value の値をデザイン内の別のパラメータに単に転送するわけではありません。代わりに、パラメータ Value の値は、翻訳オペレータのパラメータ WriteAction で定義した一連の書き込みアクションに使用されます。 書き込みアクションは、1 つまたは複数の等式で構成されます。 これらの等式の左辺では、どのオペレータのどのパラメータが計算結果を受け取るかを定義します。 複数の等式を定義する場合は、セミコロンで等式を区切ります。 パラメータ Value への書き込みアクセスが発生するとすぐに、パラメータ WriteAction で定義した等式の右辺にある数式が実行され、その結果が等式の左辺で指定されたパラメータに転送されます。

数式は、デザイン内のどこにあるオペレータパラメータの値も参照できます。 これらの値のいずれかが変更されるとすぐに、以前と同じ値を Value パラメータに再書き込みしたときの計算結果が異なります。 数式には、パラメータの値だけでなく、最小値、最大値、ステップサイズ、列挙項目の数値などのパラメータの特定の Property も含めることができます。

値の範囲の計算のための数式

パラメータ Value の現在の値の範囲を計算するための数式を追加することもできます。 対応する数式は、パラメータ RangeFrom、RangeTo、および RangeIncrement(ステップサイズ)で定義します。 数式には、デザイン内のどこにあるモジュールパラメータの値や、最小値、最大値、ステップサイズ、列挙項目の数値などのこれらのパラメータの特定の Property を含めることができます。

[ヒント]

数式の構文:数式演算

構文はバージョン 2.0 の GenICam API 標準に準拠しています。 許可される数式要素は、GenICam 標準で定義されている数式要素と同一です:

基本演算:
() 括弧
+ - * / 加算、減算、乗算、除算
% 剰余
** べき乗
& | ^ ~ ビット単位: and / or / xor / not
<> = > < <= >= 論理関係: 等しくない / 等しい / より大きい / より小さい / 以下 / 以上
&& || 論理積 / 論理和
<< >> 左シフト / 右シフト

表 50. 基本演算


条件演算子

<condition> ? <true_expr> : <false_expr>

例:

${target.Value} = (${this.Value} > 0) ? 1 : 0;

関数:
SGN(x) x の符号を返します。正の引数の場合は +1、負の引数の場合は -1 を返します
NEG(x) x の符号を反転します
ABS(x) x の絶対値を返します
SQRT(x) x の平方根を返します
TRUNC(x) x を切り捨てます。つまり、絶対値が x を超えない最も近い整数値を返します
FLOOR(x) 切り捨てを行い、x を超えない最大の整数値を返します
CEIL(x) 切り上げを行い、x 以上の最小の整数値を返します
ROUND(x,precision) precision で指定された小数点以下の桁数に x を丸めます。中間値の場合はゼロから離れる方向に丸められます
SIN(x) x ラジアンの角度の正弦を返します
COS(x) x ラジアンの角度の余弦を返します
TAN(x) x ラジアンの角度の正接を返します
ASIN(x) ラジアンで表された x の逆正弦の主値を返します
ACOS(x) ラジアンで表された x の逆余弦の主値を返します
ATAN(x) ラジアンで表された x の逆正接の主値を返します
EXP(x) x の自然指数関数(e を底とする x 乗:ex)を返します
LN(x) x の自然対数を返します。 自然対数は e を底とする対数であり、自然指数関数(exp)の逆関数です。
LG(x) x の常用対数(底が 10 の対数)を返します
E() オイラー数 2.7182818284590451 を返します
PI() 円周率 3.1415926535897931 を返します

表 51. 関数


例:

${target.Value} = NEG(${this.Value})

[ヒント]

パラメータへのパス

デザイン内の任意の場所からオペレーターパラメータにアクセスするには、数式内でそのパラメータへのパスを指定する必要があります。

オペレーターのパラメータにアクセスするには、次の構文を使用します。

"PathToModule": アクセスするパラメータを持つオペレーターへの相対パスをここで定義します。 パスは、変換オペレーター自身が配置されている階層レベルからの相対パスになります。 また、アクセスするオペレーターの名前も定義します。階層の区切り文字にはスラッシュを使用します。

"Module": モジュールの名前。

翻訳オペレーターインスタンス自体の名前として、「this」を使用します。

[重要] モジュールの独立性を維持する

翻訳オペレーターが配置されている階層レベルよりも高い階層レベルに向かうパスを定義することは許可されていません。 このルールは、階層モジュールは自身がインスタンス化されている環境について何も知るべきではないというロジックに基づいています。そうして初めて、自由な再配置や複製が可能なモジュールとして使用できるためです。

[ヒント]

Parameter Propertyへのアクセス

数式には、パラメータの値だけでなく、最小値、最大値、ステップサイズといったパラメータの特定のPropertyを含めることもできます。

  • ${PathToModule/Module.ParamName.From} または ${PathToModule/Module.ParamName.Min}: パラメータの最小有効値 PathToModule/Module.ParamName.
  • ${PathToModule/Module.ParamName.To} または ${ PathToModule/Module.ParamName.Max}: パラメータの最大有効値 PathToModule/Module.ParamName.
  • ${PathToModule/Module.ParamName.Inc}: パラメータの2つの有効値間の増分(ステップサイズ) PathToModule/Module.ParamName.
  • ${PathToModule/Module.ParamName.Enum("EnumName")}: 列挙型名の整数値 EnumName.

翻訳式では、グローバル定数を参照することもできます。翻訳式におけるグローバル定数の参照には、 :: プレフィックスを使用します。例: ${::DesignClock} または ${::MyGlobalConst}.

[ヒント]

Write Access方程式の構文

WriteActionパラメータで定義する書き込みアクションの方程式は、次の構文に従います。

ここでは、複数のターゲットパラメータに対して複数の方程式を定義できます。個々の方程式の区切りにはセミコロンを使用してください。

"this"は、翻訳オペレーターインスタンス自体を指します。

WriteAction方程式の例:

例:

[ヒント]

Read Access方程式の構文

The equation for the read action you define in parameter ReadAction. The equation always starts with "${this.Value}=" . It has the following syntax:

ReadAction方程式の例:

マップパラメータの参照

デザイン階層内で、マップパラメータ Value が表示され、アクセス可能になるターゲットを定義できます。 ターゲットは、DisplayHierarchy と DisplayName の2つのパラメータによって定義されます。 DisplayHierarchy では、翻訳オペレーター自体が配置されているプロセスと同じプロセス内の階層ボックスを指定します。 パラメータ DisplayName でターゲットパラメータの名前を設定します。 DisplayHierarchy と DisplayName の両方が設定されている場合、 DisplayName で定義されたパラメータは、DisplayHierarchy で指定された階層ボックス内で利用可能になります。 DisplayName が空の場合、パラメータは作成されません。 DisplayName が設定されており、かつ DisplayHierarchy が空の場合、 DisplayName で定義されたパラメータは親階層(つまり、翻訳オペレーター自体が配置されている階層ボックス)に追加されます。

これにより、マップパラメータ Value を(デザインの)任意の階層レベルでアクセス可能にすることができます。 これは、保護された階層ボックスを扱う場合に特に役立ちます。 保護された階層ボックス自体のPropertyの直下にパラメータを利用できるようにすることができます。

マッピングされたパラメータ自体を参照することもできます。 したがって、翻訳オペレーター内でパラメータ Value のコンテンツを参照するか、 またはパラメータ DisplayName と DisplayHierarchy で定義したパラメータを参照することができます。 これは、保護された階層ボックスが他の保護された階層ボックスから構築されている場合に特に重要です。

このオペレーターは、設計のデータフロー構造に干渉しないため、入力と出力を持っていません。

ライブラリ Parameters の一般的な紹介については、Library Parameters を参照してください。

I/O Property

Property 値
オペレータータイプ なし(入力または出力がないため)

サポートされているリンクフォーマット

None

パラメーター

Status
タイプ 静的読み取り(GUIには書き込みと表示されます)パラメータ
Default なし
範囲 OKまたはエラーメッセージ

エラーステータスを表示します。パラメータ Activate が Yes に設定されている場合、 他のオペレーター設定がチェックされます。 このパラメータには、このチェックの結果、すなわち OK またはエラーメッセージが表示されます。

このパラメータは最終的なアプレットの一部ではありません。

DisplayName
タイプ static write parameter
Default なし
範囲 任意の文字列

デザイン内の別の場所からパラメータ Value へのアクセスを許可、またはそこからのアクセスを取得する場合は、 新しいパラメータを定義する必要があります。 ここにこの新しいパラメータの名前を指定します。

このフィールドが空の場合、新しいPropertyは作成されません。

DisplayHierarchy
タイプ static write parameter
Default なし
範囲 任意の文字列

パラメータ DisplayName で定義した新しいマップパラメータを追加する階層ボックスをここで指定します。

このパラメータでは、入力補完機能と構文ハイライトを使用できます。入力補完を使用するには、Module Properties ダイアログにあるこのパラメータの Parameter Values フィールドをクリックし、キーボードの TAB キーを押します。入力補完機能の詳細な手順については、「Autocompletion and Syntax Highlighting for Translator and Reference Operators」を参照してください。

新しいパラメータ DisplayName を定義したが、パラメータ DisplayHierarchy を空のままにした場合、新しいパラメータは参照オペレータインスタンスを含む階層ボックスに追加されます(参照オペレータインスタンスが最上位(プロセス)レベルにある場合は実行できませんのでご注意ください)。

[注] 表示先へのパスを設定するための構文

デザイン内の別の場所に新しいパラメータを表示させたい場合は、パラメータ DisplayHierarchy で新しいパラメータを含む階層ボックスへのパスを指定する必要があります。

構文は以下のとおりです:

<Path> is the relative path from process level to the hierarchical level of the design where the <Hierarchical Box> is located that is to receive the new parameter. Thus, parameter DisplayHierarchy can only address hierarchical boxes within the same process. Use a slash as separator between different hierarchical levels.

<HierarchicalBox> is the name of the hierarchical box that is to receive the new map parameter.

例: Level0/Level1

[注] グローバル定数の定義

Value が静的な場合、DisplayHierarchy パラメータを :: に設定することで、ユーザー定義のグローバル定数を作成できます。

たとえば、 DisplayName が次のように設定されている場合、自動的に無効になります: myGlobalConst および DisplayHierarchy が次のように設定されている場合、自動的に無効になります: :: の場合、オペレータはグローバル定数を作成します ${::myGlobalConst} これは変換式で使用します。

そのグローバル定数はシステム全体からアクセス可能であり、変換式内で参照できます。

値
タイプ static、dynamic、write、readパラメータ
Default 0
範囲 double

読み取りアクセスおよび書き込みアクセスのために指定された方程式を介して、他のパラメータにアクセスするためのパラメータ。

変換式で使用するユーザー定義のグローバル定数を作成するには、このパラメータを static にする必要があります。グローバル定数の作成方法については、DisplayHierarchy パラメータの説明を参照してください。

単位
タイプ static write parameter
Default -
範囲 Latin-1

パラメータ Value の単位をここに入力します。

説明
タイプ static write parameter
Default -
範囲 任意のテキスト

パラメータ Value の説明をここに入力します。

RangeFrom
タイプ static write parameter
Default 0.1
範囲

有効な最小値の定義。ここに式を入力することもできます。

RangeTo
タイプ static write parameter
Default 1.0
範囲

有効な最大値の定義。ここに数式を入力することもできます。

RangeIncrement
タイプ static write parameter
Default 0.1
範囲

有効な値の間隔(ステップサイズ)の定義。 ここに数式を入力することもできます。

WriteAction
タイプ static write parameter
Default
範囲

パラメータ Value への書き込みアクセス時の変換用方程式の定義。

このパラメータでは、入力補完機能と構文ハイライトを使用できます。入力補完を使用するには、Module Properties ダイアログにあるこのパラメータの Parameter Values フィールドをクリックし、「${」 と入力します。入力補完機能の詳細な手順については、「Autocompletion and Syntax Highlighting for Translator and Reference Operators」を参照してください。

ReadAction
タイプ static write parameter
Default
範囲

パラメータ Value からの読み取りアクセス時の変換用方程式の定義。

方程式は常に「${this.Value}=」で始まります。

このパラメータでは、入力補完機能と構文ハイライトを使用できます。入力補完を使用するには、Module Properties ダイアログにあるこのパラメータの Parameter Values フィールドをクリックし、「${」 と入力します。入力補完機能の詳細な手順については、「Autocompletion and Syntax Highlighting for Translator and Reference Operators」を参照してください。

Activate
タイプ 動的書き込みパラメータ
Default いいえ
範囲 {No,Yes}

Yes = 参照パラメータとの間のアクセス(読み取りおよび書き込み方程式を介したアクセス)が有効になります。

No = 参照パラメータとの間のアクセス(読み取りおよび書き込み方程式を介したアクセス)が無効になり、パラメータ Status が無効化されます。パラメータ DisplayName および DisplayHierarchy は効果を持ちません。

使用例

オペレータ FloatParamTranslator の使用方法を次の例に示します。

  • 'Hardware Test'

    DMA、RAM、GPIO、トリガー、LEDのハードウェアセルフテストの例。

  • 「Parameter Translation」

    例 - パラメータを操作するためのパラメータ変換オペレータの使用方法のデモンストレーション。