POU:CheckDivInt
「0」による除算を防止する機能: CheckDivInt, CheckDivLint, CheckDivReal, and CheckDivLReal
ゼロ除算を防ぐために、関数を使用できます CheckDivInt、 CheckDivLint、 CheckDivReal、 と CheckDivLReal。これらの関数をアプリケーションに含めると、コード内の各除算操作の前に呼び出されます。
詳細については、以下を参照してください。 暗黙のチェックにビルディングブロックを使用する、 暗黙的なチェックのPOU
注意
監視機能の機能を利用するには、宣言部分を編集しないでください。ただし、ローカル変数を追加することは許可されています。
例 534. CheckDivRealのデフォルトの実装:
宣言部分:
// Automatisch erzeugter Code : NICHT EDITIEREN
FUNCTION CheckDivReal : REAL
VAR_INPUT
divisor:REAL;
END_VAR実装部分:
// Automatisch erzeugter Code: Es handelt sich hierbei um einen Implementierungsvorschlag.
IF divisor = 0 THEN
CheckDivReal:=1;
ELSE
CheckDivReal:=divisor;
END_IF;The DIV 演算子は、の出力を使用します CheckDivReal 除数として機能します。以下のサンプルプログラムでは、 CheckDivReal による除算を防ぎます 0 除数の暗黙の値を変更することによって d 「0」から 1 除算が実行される前。したがって、除算の結果は次のようになります。 799。
PROGRAM PLC_PRG VAR erg:REAL; v1:REAL:=799; d:REAL:=0; END_VAR erg:= v1 / d;