Skip to main content

POU: CheckDivLReal

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.

Für weitere Informationen siehe: Bausteine für implizite Prüfungen verwenden, POUs für implizite Prüfungen

Achtung

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.

Beispiel 532. 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;