DIV: Dividieren (STEP 7 Safety V20) - Safety

Anweisungen STEP 7 Safety V20

ft:publication_title
Anweisungen STEP 7 Safety V20
Product
Safety
Version
V20
Publication date
10/2024
Language
de-DE
DIV: Dividieren (STEP 7 Safety V20)

Beschreibung

Mit der Anweisung "Dividieren" können Sie den Wert am Eingang IN1 durch den Wert am Eingang IN2 teilen und den Quotient am Ausgang OUT abfragen (OUT = IN1 / IN2).

Die Beschaltung des Freigabeeingangs "EN" bzw. (S7-300, S7-400) des Freigabeausgangs "ENO" ist nicht möglich. Somit wird die Anweisung, unabhängig vom Signalzustand am Freigabeeingang "EN", immer ausgeführt.

Hinweis

Wenn das Ergebnis der Anweisung außerhalb des für den Datentyp zulässigen Bereichs liegt, kann die F-CPU in STOP gehen. Im Diagnosepuffer der F‑CPU wird die Ursache des Diagnoseereignisses eingetragen.

Berücksichtigen Sie daher bereits bei der Programmerstellung die Einhaltung des für den Datentyp zulässigen Bereichs!

(S7-1200, S7-1500) Sie können einen STOP der F-CPU vermeiden, indem Sie den Freigabeausgang ENO beschalten und damit eine Überlauferkennung programmieren.

Beachten Sie dabei:

  • Wenn das Ergebnis der Anweisung außerhalb des für den Datentyp zulässigen Bereichs liegt, dann liefert der Freigabeausgang ENO den Signalzustand "0".

  • Das Ergebnis der Anweisung verhält sich dann, wie bei der entsprechenden Anweisung in einem Standard-Baustein.

  • Die Ausführungszeit der Anweisung verlängert sich (siehe auch Excel-Datei zur Reaktionszeitberechnung).

  • Der Speicherbedarf des Sicherheitsprogramms erhöht sich.

(S7-300, S7-400) Sie können einen STOP der F-CPU vermeiden, indem Sie im nachfolgenden Netzwerk eine Anweisung "Statusbit OV abfragen" einfügen und damit eine Überlauferkennung programmieren.

Beachten Sie dabei:

  • Das Ergebnis der Anweisung verhält sich dann, wie bei der entsprechenden Anweisung in einem Standard-Baustein.

  • Das Netzwerk mit der Anweisung "Statusbit OV abfragen" darf keine Sprungmarken enthalten.

  • Die Ausführungszeit der Anweisung verlängert sich (siehe auch Excel-Datei zur Reaktionszeitberechnung).

  • Wenn Sie keine Anweisung "Statusbit OV abfragen" einfügen, wird eine Warnung ausgegeben.

  • Der Speicherbedarf des Sicherheitsprogramms erhöht sich.

Hinweis

S7-300/400, S7-1200/1500 (Freigabeausgang ENO beschaltet):

Ist der Divisor (Eingang IN2) einer DIV-Anweisung = 0, so ist der Quotient der Division (Divisionsergebnis am Ausgang OUT) = 0. Das Ergebnis verhält sich wie bei der entsprechenden Anweisung in einem Standard-Baustein. Die F-CPU geht nicht in STOP.

S7-1200/1500 (Freigabeausgang ENO nicht beschaltet):

Ist der Divisor (Eingang IN2) einer DIV-Anweisung = 0, geht die F-CPU in STOP. Im Diagnosepuffer der F-CPU wird die Ursache des Diagnoseereignisses eingetragen. Wir empfehlen Ihnen, bereits bei der Programmerstellung einen Divisor (Eingang IN2) = 0 zu verhindern.

Parameter

Die folgende Tabelle zeigt die Parameter der Anweisung:

Parameter

Deklaration

Datentyp

Beschreibung

ENO

Output

BOOL

(S7-1200, S7-1500)

Freigabeausgang

IN1

Input

INT, DINT

Dividend

IN2

Input

INT, DINT

Divisor

OUT

Output

INT, DINT

Quotient

Aus der Klappliste "<???>" der Anweisungsbox wählen Sie den Datentyp der Anweisung aus.

Beispiel für F-CPUs S7-300/400

Das folgende Beispiel zeigt die Funktionsweise der Anweisung:

Die Anweisung "Dividieren" wird, unabhängig vom Signalzustand am Freigabeeingang EN, immer ausgeführt.

Der Wert des Operanden "Tag_Value1" wird durch den Wert des Operanden "Tag_Value2" dividiert. Das Ergebnis der Division wird im Operanden ""F_DB_1".Tag_Result" abgelegt.

Wenn während der Ausführung der Anweisung "Dividieren" ein Überlauf auftritt, dann wird das Statusbit OV auf "1" gesetzt. Im Netzwerk 2 wird nach der Abfrage des Statusbits OV die Anweisung "Ausgang setzen" (S) ausgeführt und der Operand "TagOut" gesetzt.

Beispiel für F-CPUs S7-1200/1500

Das folgende Beispiel zeigt die Funktionsweise der Anweisung:

Die Anweisung "Dividieren" wird, unabhängig vom Signalzustand am Freigabeeingang EN, immer ausgeführt.

Der Wert des Operanden "#Tag_Value1" wird durch den Wert des Operanden "#Tag_Value2" dividiert. Das Ergebnis der Division wird im Operanden ""F_DB_1".Tag_Result" abgelegt.

Wenn während der Ausführung der Anweisung "Dividieren" kein Überlauf auftritt, dann führt der Freigabeausgang ENO den Signalzustand "1" und der Operand "#TagOut" wird gesetzt.