オペレーター
標準 IEC 関数のサブセットを表す組み込みの標準関数は演算子と呼ばれます。安全プログラミングではユーザー定義関数を作成することはできません。
演算子は、 CODESYS 標準。
両方に接続できます SAFExxx そして データ型 標準。
演算子の挿入
演算子は、 挿入ボックス または 空のボックスを挿入 指示。
演算子は、 ツールボックス ビュー。Safety FBD エディターのツールボックスには、次のカテゴリが含まれています。
ブール演算子
数学演算子
その他のオペレーター
入力アシスタント
入力アシスタントの演算子には次のカテゴリが表示されます。
オペレーター
コンバージョン (基礎レベルではありません)
拡張可能な演算子
ANDORADD(拡張レベルのみ)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入力)XORNOT
重要
の不注意な使用 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: 「より大きい」または「等しい」の比較
SELMUX
BOOL_TO_INTBOOL_TO_DINTBOOL_TO_TIMEBOOL_TO_WORDBYTE_TO_INTBYTE_TO_DINTBYTE_TO_TIMEBYTE_TO_WORDDINT_TO_BOOLDINT_TO_BYTEDINT_TO_INTDINT_TO_TIMEDINT_TO_WORDDINT_TO_DWORDDWORD_TO_DINTDWORD_TO_TIMEINT_TO_BOOLINT_TO_BYTEINT_TO_DINTINT_TO_DWORDINT_TO_TIMEINT_TO_WORDTIME_TO_BOOLTIME_TO_BYTETIME_TO_INTTIME_TO_DINTTIME_TO_WORDTIME_TO_DWORDWORD_TO_BOOLWORD_TO_BYTEWORD_TO_DINTWORD_TO_INTWORD_TO_TIMEWORD_TO_DWORD
安全特性を持つオペレータ
に特有のいくつかの演算子の特性については、次のセクションで説明します。
拡張レベルで演算子の範囲外の場合の実行時エラー
重要
実行時エラーが発生しないようにプログラム ロジックを設計するのは開発者の責任です。
以下の範囲外の場合には、 ランタイムエラーその結果、アプリケーションが停止され、ログ エントリが生成されます。
レベル | 言語要素 | ランタイムエラーの場合 |
|---|---|---|
拡張 |
| 0による除算 |
拡張 |
| 最初の入力に負の値、または入力数から 1 を引いた値 N を指定して呼び出します。例: |
拡張 |
| 出力値がターゲット型の値の範囲外です: 2つの
同じく
|
ヒント
標準的な動作 SEL/MUX (つまり、入力値が大きすぎる場合は最大値が選択され、入力値が負の場合は 0 が選択される) を安全アプリケーションでプログラムする必要があります。
SEL: k<0の場合
SEL: k>maxの場合、n...最大値
MUX k<0の場合
MUX k>0の場合