Funktionen zur Vermeidung des Divisor-Werts "0": CheckDivInt, CheckDivLint, CheckDivReal und CheckDivLReal
Um ein Teilen durch 0 zu vermeiden, können Sie die Funktionen CheckDivInt
, CheckDivLint
, CheckDivReal
und CheckDivLReal
verwenden. Wenn Sie diese Funktionen in die Applikation einbinden, werden sie vor
jeder im Code auftretenden Division aufgerufen.




VORSICHT

Um die Funktionalität der Überwachungsfunktionen zu erhalten, dürfen Sie den Deklarationsteil nicht verändern. Als einzige Ausnahme dürfen Sie lokale Variablen hinzufügen.
Standardmäßige Implementierung der Funktion CheckDivReal:
Deklarationsteil:
// Automatisch erzeugter Code : NICHT EDITIEREN FUNCTION CheckDivReal : REAL VAR_INPUT divisor:REAL; END_VAR
Implementierungsteil:
// Automatisch erzeugter Code: Es handelt sich hierbei um einen Implementierungsvorschlag. IF divisor = 0 THEN CheckDivReal:=1; ELSE CheckDivReal:=divisor; END_IF;
Der Operator DIV
verwendet die Ausgabe der Funktion CheckDivReal
als Divisor. In unten stehenden Beispielprogramm verhindert diese Funktion eine Division
durch 0
dadurch, dass der implizit mit "0" initiierte Wert des Divisors d
vor Ausführung der Teilung von der Funktion CheckDivReal
in 1
geändert wird. Somit lautet das Ergebnis der Division 799
.
PROGRAM PLC_PRG VAR erg:REAL; v1:REAL:=799; d:REAL:=0; END_VAR erg:= v1 / d;