オペレーター
標準 IEC 関数のサブセットを表す組み込みの標準関数は演算子と呼ばれます。安全プログラミングではユーザー定義関数を作成することはできません。
演算子は、 CODESYS 標準。
両方に接続できます SAFExxx
そして データ型 標準。
演算子の挿入
演算子は、 挿入ボックス または 空のボックスを挿入 指示。
演算子は、 ツールボックス ビュー。Safety FBD エディターのツールボックスには、次のカテゴリが含まれています。
ブール演算子
数学演算子
その他のオペレーター
入力アシスタント
入力アシスタントの演算子には次のカテゴリが表示されます。
オペレーター
コンバージョン (基礎レベルではありません)
拡張可能な演算子
AND
OR
ADD
(拡張レベルのみ)MUL
(拡張レベルのみ)MUX
(拡張レベルのみ)
の EQ
、 LT
、 LE
、 GT
、 そして GE
同様に IEC に従って拡張可能な演算子は、2 つの入力でのみ使用できます (標準の場合と同様)。
の 入力を挿入 コマンドは、拡張可能なオペレータ ボックスにさらに入力を追加します。
基本レベルの演算子
AND
(2入力)AND
(3入力)OR
(2入力)OR
(3入力)
すべてのオペランド OR
でなければなりません SAFEBOOL
。
拡張レベルの演算子
AND
(2入力)AND
(3入力)OR
(2入力)OR
(3入力)XOR
NOT
重要
の不注意な使用 XOR
そして NOT
オペレータは、フェイルセーフ特性の喪失につながる可能性がある SAFExxx
変数。このような構造に対しては、安全性チェッカーによって警告は生成されません。
の XOR
そして NOT
オペレータは、 SAFExxx
変数なので、 SAFE
変数はフェイルセーフ特性を失い、つまり「非フェイルセーフ」になります。これにより、プラントが意図せず起動する可能性があります。
プログラミングルール: SAFExxx
の出力 NOT
そして XOR
決定されなければならない。その後、これらの NOT
/XOR
出力は出力 (I/O) に接続されていません。
ADD
(2入力): 算術ADD
オペレーターADD
(3入力): 3入力の加算SUB
: 減算MUL
: 掛け算DIV
: 分割EQ
: 同等性の比較NE
: 不平等の比較LT
: 「より小さい」の比較LE
: 「より小さい」または「等しい」の比較GT
: 「より大きい」の比較GE
: 「より大きい」または「等しい」の比較
SEL
MUX
BOOL_TO_INT
BOOL_TO_DINT
BOOL_TO_TIME
BOOL_TO_WORD
BYTE_TO_INT
BYTE_TO_DINT
BYTE_TO_TIME
BYTE_TO_WORD
DINT_TO_BOOL
DINT_TO_BYTE
DINT_TO_INT
DINT_TO_TIME
DINT_TO_WORD
DINT_TO_DWORD
DWORD_TO_DINT
DWORD_TO_TIME
INT_TO_BOOL
INT_TO_BYTE
INT_TO_DINT
INT_TO_DWORD
INT_TO_TIME
INT_TO_WORD
TIME_TO_BOOL
TIME_TO_BYTE
TIME_TO_INT
TIME_TO_DINT
TIME_TO_WORD
TIME_TO_DWORD
WORD_TO_BOOL
WORD_TO_BYTE
WORD_TO_DINT
WORD_TO_INT
WORD_TO_TIME
WORD_TO_DWORD
安全特性を持つオペレータ
に特有のいくつかの演算子の特性については、次のセクションで説明します。
拡張レベルで演算子の範囲外の場合の実行時エラー
重要
実行時エラーが発生しないようにプログラム ロジックを設計するのは開発者の責任です。
以下の範囲外の場合には、 ランタイムエラーその結果、アプリケーションが停止され、ログ エントリが生成されます。
レベル | 言語要素 | ランタイムエラーの場合 |
---|---|---|
拡張 |
| 0による除算 |
拡張 |
| 最初の入力に負の値、または入力数から 1 を引いた値 N を指定して呼び出します。例: |
拡張 |
| 出力値がターゲット型の値の範囲外です: 2つの
同じく
|
ヒント
標準的な動作 SEL
/MUX
(つまり、入力値が大きすぎる場合は最大値が選択され、入力値が負の場合は 0 が選択される) を安全アプリケーションでプログラムする必要があります。
SEL
: k<0の場合
SEL
: k>maxの場合、n...最大値
MUX
k<0の場合
MUX
k>0の場合