EcoStruxure Machine Expert Version 1.1 unterstützt nicht die Controller M258, LMC058 und LMC078.

DIV

Überblick

IEC-Operator für die Division einer Variablen durch eine andere:

Erlaubte Typen:

oBYTE

oWORD

oDWORD

oLWORD

oSINT

oUSINT

oINT

oUINT

oDINT

oUDINT

oLINT

oULINT

oREAL

oLREAL

oTIME

TIME-Variablen können durch ganzzahlige Variablen dividiert werden.

Beispiel in IL

(Ergebnis in Var1 ist 4.)

LD     8
DIV    2
ST     Var1

Beispiel in ST

var1 := 8/2;

Beispiele in FBD

G-SE-0024267.1.gif-high.gif

 

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.

Warning_Color.gifWARNUNG

UNBEABSICHTIGTER GERÄTEBETRIEB

Verwenden Sie die in diesem Dokument beschriebenen Prüffunktionen oder schreiben Sie Ihre eigenen Prüffunktionen, um eine Division durch Null im Programmiercode zu verhindern.

Die Nichtbeachtung dieser Anweisungen kann Tod, schwere Verletzungen oder Sachschäden zur Folge haben.

HINWEIS: Weitere Informationen über implizite Prüffunktionen finden Sie im Kapitel POUs für implizite Prüfungen.

Prüffunktionen

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):

oCheckDivDInt

oCheckDivLint

oCheckDivReal

oCheckDivLReal

Für Informationen zum Einfügen der Funktion, siehe die Beschreibung der Funktion POUs für implizite Checks.

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.

Standardmäßige Implementierung der Funktion 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 untenste­hendem 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;