DIV-Baustein

Kurz-Information

Name

DIV

→POE-Typ

→Funktion

Kategorie

Standard (safe), NumericBaustein mit interner Fehlerdiagnose

Konform zur →IEC-Norm

(Fehler) derzeit eingeschränkt
(IEC fordert eine Fehlerbehandlung, falls das Ergebnis des Bausteins den Wertebereich des Ausgangsdatentyp überschreitet. Siehe "Keine Prüfung von ungültigen Beschaltungen" für das Verhalten in Neuron Power Engineer.)

Grafische Schnittstelle

Verfügbar ab

Version 1.0.0 (für Neuron Power Engineer) – Anfangsvariante

Version 3.4.0 (für Bibliothek Standard) – Änderung bei einer Division des minimalen Werts für einen Datentyp durch -1 und bei einem Ergebniswert vom gleichen Datentyp

Version 3.8.0 (für Bibliothek Standard (safe)): Baustein in diese Bibliothek verschoben

Funktionalität

Die mathematische Funktion Division wird aufgerufen: Der Baustein liefert den Quotientenwert für IN1 / IN2.

Geben Sie den Wert des Dividenden über den Eingang IN1 ein und den Wert des Divisors über den Eingang IN2.

Bei einer Division von ganzen Zahlen (→Integers) ist das Ergebnis eine ganze Zahl desselben Typs und dabei wird der Nachkomma-Anteil gegen Null abgeschnitten (es wird nicht gerundet). Beispiele:

  • Die Division 7/3 ergibt den Wert {{2}}. Der Nachkomma-Anteil 0,333... wird abgeschnitten.

  • Die Division (-7)/3 ergibt den Wert -2. Der Nachkomma-Anteil 0,333... wird abgeschnitten.

Bei einer Division des minimalen Werts für einen Datentyp (auch als "Untergrenze" des Datentyps bekannt) durch den Wert -1 und bei einem Ergebniswert vom gleichen Datentyp ist das Ergebnis 0 und der Ausgang ENO des Bausteins wird auf den Wert FALSE gesetzt. Beispiel: Die Division mit den Werten -2_147_483_648/-1 für den Datentyp DINT ergibt den Wert 0 (beim Ergebniswert des gleichen Datentyps DINT) und der ENO wird auf FALSE gesetzt. Grund: -2_147_483_648 ist der minimale Werte (also die Untergrenze) für DINT.

Keine Prüfung von ungültigen Beschaltungen

Bei diesem Baustein werden ungültige Beschaltungen von Neuron Power Engineer nicht geprüft (mit Ausnahme der Prüfungen, die unter "Interne Fehlerdiagnose für Baustein" angeführt sind). Geben Sie deshalb Code in Ihrer Anwendung ein (z.B. IFAnweisungen), mit denen ungültige Beschaltungen erkannt werden. Siehe "Beispiele für ungültige Beschaltungen".

Lesen Sie unter "Standardbausteine für die Anwendung" nach, welche Auswirkungen eine ungültige Beschaltung haben könnte.

Eingänge, Ergebniswert

 

Bezeichner

→Datentyp

Beschreibung

Eingänge:

IN1

REALLREALUSINTUINTUDINTULINTSINTINTDINT oder LINT
(entspricht dem →allgemeinen Datentyp ANY_NUM)

1. Wert (Dividend)

IN2

REALLREALUSINTUINTUDINTULINTSINTINTDINT oder LINT
(entspricht dem →allgemeinen Datentyp ANY_NUM)

2. Wert (Divisor)

Ergebniswert:

REALLREALUSINTUINTUDINTULINTSINTINTDINT oder LINT
(entspricht dem →allgemeinen Datentyp ANY_NUM)

 

Der Eingang EN und der Ausgang ENO sind für den →Aufruf des Bausteins verfügbar. Siehe "Ausführungssteuerung: EN, ENO" für Informationen zum Eingang EN und zum Ausgang ENO.

Informieren Sie sich unter:

Interne Fehlerdiagnose für Baustein

Der Baustein prüft die Werte und/oder Datentypen für die Eingänge und des Ergebniswerts. In den folgenden Fällen wird der Ausgang ENO des Bausteins auf den Wert FALSE (oder eine Entsprechung) zurückgesetzt und der Baustein liefert außerdem den Wert 0.

  • bei einer Division durch 0 – unabhängig vom Datentyp

  • bei einer Division des minimalen Werts für einen Datentyp durch den Wert -1, wenn der Ergebniswert vom gleichen Datentyp ist

Beispiel für Verwendung im ST-Editor

PROGRAM Test
   VAR
      result : REAL;
   END_VAR
   result := DIV(IN1 := 10.0, IN2 := 2.0);    (* The variable 'result' evaluates to '5.0'. *)
END_PROGRAM

Bei der Erstellung Ihrer Anwendung im ST-Editor erstellen Sie den Aufruf eines Bausteins, indem Sie den laut Syntax erforderlichen Text eintippen oder die Inhaltshilfe verwenden.

Beispiele für ungültige Beschaltungen

Während der Berechnung mit Hilfe von DIV kann aufgrund eines →Überlaufs oder →Unterlaufs eine ungültige Beschaltung entstehen.

Beispiel für ungültige Beschaltungen

DIV(IN1 := REAL#1.0e38, IN2 := REAL#3.0e-38);