# 演算式構文

マニュアル > スクリプトガイド > # 演算式構文 |

演算式構文とは

演算式を表現するための構文です。バインド書式、アラームマスタの発生条件、メールマスタの送信条件など様々な場面で利用されます。

▪Panel Browserのバインド書式の「IN: / OUT: / INOUT:」以降の書式

例）

INOUT : U01.F01.T01 IN: U01.F01.T01 * 100 + 50 IN:CNumStr((#D0 + #D1) / 2, 2) IN: {$M0}{"ON"},{default}{"OFF"}

▪アラームアクションのメール送信条件

例）

[CM0] == "重故障" [CM0] > 10 && [CM1] == 1

構文

演算子構文には値（T/F、123、"abc"など）、オペレータ（+ - + / & | など）、変数（U01.F01.T01、[CM0]など）及び関数（CNumStrなど）が使用できます。演算子構文の仕様は下記になります（本マニュアルでは抽象化のため、変数をVAR1、VAR2、VAR3、、と表現します）。

構文1

演算式

構文１は演算式のみを記述します。

例）

VAR1 * 100 VAR2 * VAR3 + 100 CNumStr((VAR1 + VAR2) / 2, 2)

構文2

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

構文2は条件式とその条件が成立したときの条件値を記述します。条件式を左から順番に評価し、条件が満たされたときの値（条件値）が結果値になります。もしどれにも当てはまらない場合は、右端のデフォルト値が結果値となります。

例）

{VAR1}{"ON"},{default}{"OFF"} {VAR1>=80}{"High"},{VAR2>20}{"Normal"},{default}{"Low"} {VAR1>=80}{"#FFFFFF"},{VAR3>20}{"#FF0000"},{default}{"#0000FF"}

| FA-Panelのバインド専用関数（「B.In」「B.BF」など）は、バインド以外から呼び出すことはできません。

変数

演算子構文は様々な場面で利用されますが、その際、演算式の中に変数を利用することができます。変数として何が指定できるかについては機能毎に異なります。Panel Browserのバインド書式の場合、タグパス（U01.F01.T01など）が変数として利用できます。

アラームアクションのメール送信条件の場合、フィールド名（[CM0]、[CM1]など）を変数として利用できます。変数としてなにが使用できるかについては、各機能説明を参照して下さい。

禁則文字について

演算子構文で使用される変数に下記の文字を含めることはできません。

1)下記「オペレーター(演算子)」に定義されているオペレーター記号と同じ文字は使用してはならない。但し、下記のように変数の前後を「'」（シングルクオーテーション）で囲む事によって使用する事ができます。

例）

'U01.F01.TAG-01' //「-」記号が含まれる場合 'U01!Alive' //「!」記号が含まれる場合 'U01.F01.#SD0000+FIL=LIN:0|1|0|100' // アクティブタグのフィルタを使用した場合

2)空白文字。 例：「TAG 01」

3)「"」ダブルクオーテーション及び「'」シングルクオーテーション　例：「TAG"02"」

4)先頭の文字には数値は使用できない。　例：「123TAG」

5)先頭の文字にはアンダーバーは使用できない。
例：「_TAG01」

6)全角文字。　例：「U01.F01.ポンプ１」 ※すべての全角文字が使用できないわけではありませんが、文字コードにより使用できない場合があるため、全角文字はなるべく避けてください。

データ型

演算子構文で扱える値のタイプ（型）は下記の４種類です。

データ型 | 説明
ブール | ブール値（T or F）です。“T”はOnの状態を表し、“F”はOffの状態を表します。
数値 | 数値です。小数点も扱えます。
文字 | 文字列です。
時刻 | 時刻（日時）です。

各値の仕様ついてはSC2構文のデータ型と同様です。

オペレーター(演算子)

演算子構文で扱えるオペレータは以下の通りです。

オペレーター
算術演算子 |
マイナス符号 | - | 式の符号を反転した値を指定するために使用されます。
乗算 | * | 2つの数値の積を計算します。
除算 | / | 2つの数値の商を計算します。
加算 | + | 2つの数値の和を求めます。
減算 | - | 2つの数値の差を求めます。
比較演算子 |
等しい | = | 2つの数値の比較し、等しければTRUEを返します。
等しくない | != | 2つの数値の比較し、等しくなければTRUEを返します。
より小さい | < | 2つの数値の比較し、左値が右値より小さければTRUEを返します。
より大きい | > | 2つの数値の比較し、左値が右値より大きければTRUEを返します。
以下 | <= | 2つの数値の比較し、左値が右値以下であればTRUEを返します。
以上 | >= | 2つの数値の比較し、左値が右値以上であればTRUEを返します。
論理演算子 |
論理否定 | ! | 式の論理否定を求めます。
論理積 | && | 2つの式の論理積を求めます。
論理和 | || | 2つの式の論理和を求めます。
ビット演算子 |
And演算子 | & | ビット毎のAnd演算子（整数としてビット単位の比較をします）。尚、左式が文字列の場合、文字列として結合させます。
Or演算子 | | | ビット毎のOr演算子（整数としてビット単位の比較をします）。

使用できる関数

演算子構文から関数（ルートメソッド）を呼び出すことができます。ルートメソッド一覧の「演算式構文」に「○」が指定されているメソッドがご利用頂けます。