4.14 演算式・条件式
ここでは、SpeeDBee Synapseで利用可能な演算式、条件式について説明します。
4.14.1 概要#
SpeeDBee Synapse内で、演算式と条件式が使える機能を示します。
項目 | 演算式 | 条件式 | 説明 |
---|---|---|---|
演算コレクタ | 〇 | - | 任意の演算結果をコレクタのデータとして登録 |
イベント データ |
- | 〇 | 条件式が真となる場合に、条件に合致したデータとして登録 |
イベント トリガ |
- | 〇 | 条件式が真となる場合に、そのイベント区間の情報を出力 |
出力ポート 数値変換 |
〇 | - | 任意の演算結果をコレクタのデータとして登録 |
出力ポート 登録条件 |
- | 〇 | 条件式が真となる場合に、対象のデータを登録 |
4.14.2 演算式と条件式(共通)#
演算式と条件式、共通で使用できる式について、説明します。
項目 | |
---|---|
例 | ($VALUE + 10) * ABS(5) |
使用可能な比較演算 | =,<>,!=,<,>,<=,>= |
使用可能な算術演算 | (),+,-,*,/,% |
使用可能な論理演算 | AND,OR,NOT |
制御文 | IF |
使用可能な変数 | 説明 |
---|---|
$VALUE | コレクタから受け取った値、もしくは、変換式による計算結果 |
$PVALUE | 前回DBに登録された値 |
$GVAR0~63 | グローバル変数 |
$PVAR0~63 | 永続化グローバル変数 |
※グローバル変数についてはこちらを参照してください。 |
使用可能な定数 | 説明 |
---|---|
M_E | ネイピア数、自然数の底(e) |
M_LOG2E | log_e(e) |
M_LOG10E | log_10(e) |
M_LN2 | log_e(2) |
M_LN10 | log_10(e) |
M_PI | 円周率(Pi) |
M_PI_2 | Pi/2 |
M_PI_4 | Pi/4 |
M_1_PI | 1/Pi |
M_2_SQRTPI | 2/Pi |
M_SQRT2 | sqrt(2) |
M_SQRT1_2 | 1/sqrt(2) |
使用可能な関数 | 説明 |
---|---|
ABS | 絶対値(整数) |
ACOS | 三角関数 逆余弦 |
ASIN | 三角関数 逆正弦 |
ATAN | 三角関数 逆正接 |
CEIL | 小数点以下切り上げ |
COS | 三角関数 余弦 |
COSH | 双曲線余弦 |
EXP | 底がネイピア数eである指数関数 |
FABS | 絶対値(倍精度浮動小数) |
FLOOR | 小数点以下切り捨て |
FMOD | 剰余 |
LOG | 自然対数 |
LOG10 | 10を底とする対数 |
POW | べき剰 |
ROUND | 小数点以下四捨五入 |
SIN | 三角関数 正弦 |
SINH | 双曲線正弦 |
SQRT | 平方根 |
TAN | 三角関数 正接 |
TANH | 双曲線正接 |
4.14.3 演算式#
演算式について、説明します。演算式は、任意の演算結果を算出する場合に指定する式です。コレクタから取得した値に、何らかの演算が必要な場合などに利用できます。
項目 | |
---|---|
例 | ($VALUE + 10) * ABS(5) |
グローバル変数の代入について(参考) |
---|
GVAR1 :=(式) |
|
例 GVAR1 := ($VALUE * 3) ($VALUEを2と仮定した場合) ①GVAR1 には 2 * 3 = 6 の値が格納されます。 ②演算結果は、GVAR1に代入された値(6)と同じになります。 |
IF文を使った代入 |
---|
IF(条件式,真の場合の値,偽の場合の値) |
GVAR1 := IF($VALUE = 1,$GVAR1 + 1, $GVAR1) |
上記の場合、$VALUEが1の場合に、真となれば$GVAR1+1の結果が返されます。 偽の場合は、$GVAR1が元の値のまま代入されます。 |
注意点として、「真の場合の値」と「偽の値の場合」内で、代入を行うと、真偽に関係なく毎回評価されてしまいます。 IF($VALUE=1,GVAR1 := $GVAR1 + 1, $GVAR1) このような指定をすると、真偽に関係なく「真の場合の値」が式として評価され、毎回代入されてしまいます。意図せぬ値となる可能性があるので、代入は、IF文の外で指定してください。 |
4.14.4 条件式#
条件式について、説明します。条件式は、任意の条件の真偽を得る場合に指定する式です。真偽を得ることで、その先の出力への制御に利用できます。
項目 | |
---|---|
例 | ($VALUE + 10) * ABS(5) < 100 |
グローバル変数の代入について(参考) |
---|
1 < (PVAR5 :=(式)) |
|
例 GVAR1 := ($VALUE * 3) ($VALUEを2と仮定した場合) ①GVAR1 には 2 * 3 = 6 の値が格納されます。 ②演算結果は、GVAR1に代入された値(6)と同じになります。 |