演算式構文

<< Click to Display Table of Contents >>

マニュアル > スクリプトガイド >

演算式構文

演算式構文とは

演算式構文は、演算式を表現するための構文です。

 

以下は、使用例です。

 

■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

 

■リモートアラームグリッドのアラームレイアウト設定

 

例)

[ALARMID]

AlarmID, 80, center

 

[OCCURDATESTR]

発生, 140, center

 

[ARDATESTR]

確認/復帰, 140, center

[CM0] == "重故障"

[CM0] > 10 && [CM1] == 1

 

{[CM3]==T}{[CM0] & "(" & [CM2] & ")"},{default}{[CM0]}

メッセージ, 120, left

 

■サマリアクションの計算フィールドマスタのExpressionに定義する演算式

 

例)

T001 + T002 + T003 / 3

 

 

 

構文

演算子構文には値(T/F、123、"abc"など)、オペレータ(+ - + / & | など)、変数(U01.F01.T01、[CM0]など)及び関数(CNumStrなど)が使用できます。

 

演算子構文の書式は以下のとおりです(※本マニュアルでは抽象化のため、変数をVAR1、VAR2、VAR3、、と表現します)。

 

■構文1

 

演算式

 

構文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"}

 

 

hint

PA-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.ポンプ1」 ※すべての全角文字が使用できないわけではありませんが、文字コードにより使用できない場合があるため、全角文字はなるべく避けてください。

 

 

データ型

演算子構文で扱える値のタイプ(型)は以下の4種類です。

 

データ型

説明

ブール

ブール値(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演算子(整数としてビット単位の比較をします)。

 

 

 

関数の呼び出し

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