# 入力バインド書式

マニュアル > 画面作成ガイド > バインド > 手動設定タブ > # 入力バインド書式 |

入力バインド書式

入力バインドの書式としては下記の３つの方法があります。

1) 「IN:タグ名」

もっとも単純な例です。「IN:U01.F01.T01」などのように直接タグ名を記述します。タグの値が変化すると、プロパティにタグの値が自動的に反映されます。

例）

IN:U01.F01.T01

| バインド条件に自身のコントロールが持つ他のプロパティ名を指定することもできます。プロパティ名を指定する方法としては、プロパティ名を「$」で囲みます。 IN:$プロパティ名$

2) 「IN:計算式」

バインド式に下記のような計算式を記述することができます。関数の呼び出しも可能です。

例１）

タグU01.F01.T01とU01.F01.T02の平均値をプロパティに設定します。

IN:(U01.F01.T01 + U01.F01.T02) / 2

例２）

関数を使用した例です。Math.Ave関数によって、各タグの平均値をプロパティに設定しています。

IN:Math.Ave(c(U01.F01.T01, U01.F01.T02, U01.F01.T03))

3) 「IN:条件式」

バインド書式には条件式を記述することもできます。例えばタグの値の評価によって、プロパティに設定する値を切り替えることができます。条件式を定義するためのバインド専用の関数として、「B.In」関数が用意されています。ここでは、B.In関数による条件式の記述について解説します。

B.In関数は、判定条件とその結果値の組み合わせをパラメータとして渡す事で、判定条件に該当する結果値を返します。判定条件と結果値の組み合わせの数には特に上限はなく、判定条件１、結果値１、判定条件２、結果値２・・・、デフォルト値（いずれの判定条件にも該当しない時の値）、と列挙して記述することができます。

以下に、いくつかの具体例を記します。

例１）

以下のようなバインド書式をFillColorプロパティに定義した場合、U01.F01.T01がONの時に"#FF0000"（赤色）、それ以外のとき（つまりOFFの時）"#000000"（黒色）がプロパティに設定されます。

IN:B.In("",T,U01.F01.T01,"#FF0000","#000000")

例２）

以下のようなバインド書式をTextプロパティに定義した場合、U01.F01.T01が10より大きい時に"TRIP"、10以下かつ5より大きい時に"ALARM"、その他の場合に"NORMAL"の文字列がプロパティに設定されます。

IN:B.In("",T,U01.F01.T01 > 10,"TRIP",U01.F01.T01 > 5,"ALARM","NORMAL")

例３）

以下のようなバインド書式をFillColorプロパティに定義した場合、U01.F01.T01が10より大きい時に赤色で点滅（#FF0000と#800000での点滅）、その他の場合に緑色（#00FF00）がプロパティに設定されます。B.Inのパラメータには関数を定義することも可能であり、以下では「B.BF」関数（点滅処理用のバインド関数）を用いて点滅処理を実現しています。

IN:B.In("",T,U01.F01.T01 > 10,B.BF("@FAST","#FF0000","#800000"),"#00FF00")

| B.In関数では数値書式、日付書式の表示フォーマットをフィルタとして指定することができます。第一引数にフィルタ文字列、第二引数に適用条件を指定します。例えば、表示する数値の少数桁の指定や、カンマによるの区切り文字の表示の有無などを柔軟に定義できます。 詳細については「B.In」関数の記述を参照してください。

| 入力バインドは「IN:」を省略することができます。例えば「$M0」とすると、「IN:$M0」と解釈されます（「OUT:」および「INOUT:」は省略できません）。

| バインド条件に自身のコントロールが持つ他のプロパティ名を指定することもできます。プロパティ名を指定する方法としては、プロパティ名を「$」で囲みます。 IN:B.In("",T,U01.F01.T01 > $_Limit1$,$_TripLabel$,U01.F01.T01 > $_Limit2$,$_AlarmLabel$,$_NormalLabel$)

入力バインド書式（旧書式）

ここでは、旧書式による条件判定の書式について解説します。

旧書式の条件式は、以下のように中括弧「{ }」とカンマで表現されます。

{条件1}{条件値1},{条件2}{条件値2 }, … ,{default}{デフォルト値}

処理の流れとしては、まず{条件1}を判断し、もしTRUEであれば{条件値1}がプロパティに設定されます。{条件1}がFALSEであれば続いて{条件2}を判断し、{条件2}がTRUEであれば{条件値2}がプロパティに設定されます。このように、複数の条件が指定されている場合には左から順番に条件判定を行い、最後にすべての条件が充たされなかった場合には{デフォルト値}が設定されます。また、条件や条件値には計算式や関数を用いることもできます。

尚、条件の真偽値を数値で表した場合、条件の結果が“0以外”の状態がTRUEであり、条件の結果が“0”の時がFALSEを指します。例えば条件に数値タグである#D0を用いて、{#D0}という設定をした場合、#D0の値が0以外の時をTRUEと判断し、その条件値がプロパティに設定されます。

以下に、いくつかの具体例を記します。

例１）

以下のようなバインド書式をFillColorプロパティに定義した場合、U01.F01.T01がONの時に"#FF0000"（赤色）とし、それ以外のとき（つまりOFFの時）に"#000000"（黒色）がプロパティに設定されます。

IN:{U01.F01.T01}{"#FF0000"},{default}{"#000000"}

例２）

以下のようなバインド書式をTextプロパティに定義した場合、U01.F01.T01が10より大きい時に"TRIP"、10以下かつ5より大きい時に"ALARM"、その他の場合に"NORMAL"の文字列がプロパティに設定されます。

IN:{U01.F01.T01 > 10}{"TRIP"},{U01.F01.T01 > 5}{"ALARM"},{default}{"NORMAL"}

| 旧書式はVer5以前の仕様であり、旧バージョンとの互換性のためにVer6以降でも使用することができますが、Ver6以降の条件式の定義においてはB.In関数の使用を推奨します。B.In関数は数値や日付の書式設定、関数のネスト（入れ子。例えばB.Inをさらに記述する等）が可能である点など、より柔軟な定義が可能です。

| 旧書式による条件式を指定する場合、条件を区切る「,」（カンマ）を忘れないように注意して下さい。{A}{AA},{B}{BB}の場合{AA},{B}の間にカンマ「,」が必要です。