DIV
IEC-Operator für die Division einer Variablen durch eine andere:
Erlaubte Typen:
BYTE
WORD
DWORD
LWORD
SINT
USINT
INT
UINT
DINT
UDINT
LINT
ULINT
REAL
LREAL
TIME
TIME-Variablen können durch ganzzahlige Variablen dividiert werden.
1. Reihe an DIV
-Feldern
2. Einzelnes DIV
-Feld
3. DIV
-Feld mit EN/ENO
-Parametern
Das Verhalten bei einer Division durch Null kann zielsystemabhängig unterschiedlich sein. Es kann zu einem Anhalten der Steuerung führen oder unerkannt bleiben.
WARNUNG | |
---|---|
Sie können folgende Prüffunktionen heranziehen, um den Wert des Divisors zur Vermeidung einer Division durch 0 zu prüfen (die Funktionen können nach Bedarf angepasst werden):
CheckDivDInt
CheckDivLint
CheckDivReal
CheckDivLReal
Für Informationen zum Einfügen der Funktion, siehe die Beschreibung der Funktion .
Die Prüffunktionen werden automatisch vor jeder Teilung, die im Anwendungscode gefunden wird, aufgerufen.
Siehe das folgende Beispiel für eine Implementierung der Funktion CheckDivReal
.
CheckDivReal
Deklarationsteil
// Implicitly generated code : DO NOT EDIT
FUNCTION CheckDivReal : REAL
VAR_INPUT
divisor:REAL;
END_VAR
Implementierungsteil:
// Implicitly generated code : only an suggestion for implementation
IF divisor = 0 THEN
CheckDivReal:=1;
ELSE
CheckDivReal:=divisor;
END_IF;
Der Operator DIV
verwendet die Ausgabe der Funktion CheckDivReal
als Divisor. In untenstehendem Beispielprogramm wird eine Division durch 0 dadurch verhindert, dass der implizit mit „0“ initiierte Wert des Divisors d
vor Ausführung der Teilung von der Funktion CheckDivReal
geändert wird. Somit lautet das Ergebnis der Division 799.
PROGRAM PLC_PRG
VAR
erg:REAL;
v1:REAL:=799;
d:REAL;
END_VAR
erg:= v1 / d;