DIV_TIME-Baustein

Kurz-Information

Name

DIV_TIME

→POE-Typ

→Funktion

Kategorie

IEC-Baustein, Time, Baustein mit interner Fehlerdiagnose

Konform zur →IEC-Norm

images/s/b2ic8e/9012/1ca6q62/_/images/icons/emoticons/check.svg keine Einschränkungen

Grafische Schnittstelle

images/download/thumbnails/414782776/DIV_TIME-version-1-modificationdate-1535105047153-api-v2.png

Verfügbar ab

Version 1.19.0 (für logi.CAD 3)

Funktionalität

Der Baustein dividiert den Zeitwert, der über Eingang IN1 eingegeben wird, mit einem numerischen Wert, der über Eingang IN2 eingegeben wird (= IN1 / IN2). Der Baustein liefert das Ergebnis dieser Division im Format TIME.

Unerwartete Berechnung von Werten bei einem REAL-Wert am Eingang IN2 aufgrund einer höheren Rechengenauigkeit

Falls ein REAL-Wert am Eingang IN2 anliegt, wird für die interne Berechnung ein LREAL-Wert für den Eingang IN2 verwendet (statt eines REAL-Werts). Damit wird eine höhere Rechengenauigkeit erreicht, als es eigentlich für REAL benötigt wird. Die Berechnung von Werten mit der niedrigeren Rechengenauigkeit für REAL -Werte wird nicht unterstützt.

Beispiel: Bei einem REAL-Wert für IN2 wird der Ergebniswert TIME#3000d berechnet. Diese Berechnung erfolgt aufgrund der höhere Rechengenauigkeit. Falls der gleiche Wert für IN2 anliegt, aber mit dem Datentyp LREAL, wird ebenfalls der Wert TIME#3000d berechnet.
Im Vergleich: Bei einer internen Berechnung mit REAL würde der Wert TIME#2999d23h59m51s808ms geliefert werden.

Abhilfe: Falls Sie exakte Werte mit Hilfe von DIV_TIME berechnen wollen, beschalten Sie den Eingang IN2 des DIV_TIME-Bausteins mit einem LREAL-Wert.

Keine Prüfung von ungültigen Beschaltungen

Bei diesem Baustein werden ungültige Beschaltungen von logi.CAD 3 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. IF-Anweisungen), mit denen ungültige Beschaltungen erkannt werden. Siehe "Beispiele für ungültige Beschaltungen".

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

Eingänge, Ergebniswert


Bezeichner

→Datentyp

Beschreibung

Eingänge:

IN1

TIME

Zeitwert

IN2

REAL, LREAL, USINT, UINT, UDINT, ULINT, SINT, INT, DINT oder LINT
(entspricht dem →allgemeinen Datentyp ANY_NUM) (1)

numerischer Wert

Ergebniswert:

TIME


(1) = DIV_TIME rechnet in der höchst möglichen Genauigkeit. Das bedeutet: Falls ein REAL -Wert bei IN2 anliegt, rechnet logi.CAD 3 intern mit einem LREAL -Wert und eine Division durch einen REAL-Wert kann zu einem nicht erwarteten Ergebnis führen. Falls Sie mit großen Werten oder mit Werten mit vielen Nachkommastellen arbeiten, verwenden Sie am besten einen LREAL-Wert.

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 vor der Ausführung auf eine Division durch 0.
In diesem Fehlerfall wird der Ausgang ENO des Bausteins auf den Wert FALSE (oder eine Entsprechung) zurückgesetzt.

Beispiel für Verwendung im ST-Editor

Die berechneten Werte werden mit Hilfe des Assert-Bausteins ausgewertet.

FUNCTION_BLOCK ExampleDivTime
VAR
result : TIME;
END_VAR
result := DIV_TIME(IN1 := T#1m40s, IN2 := 2.0);
 
Assert(result = TIME#50s);
END_FUNCTION_BLOCK

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_TIME kann aufgrund eines →Überlaufs oder →Unterlaufs eine ungültige Beschaltung entstehen. Da Ihr eingesetztes →Zielsystem die Verwendung von →Zeitliteralen in logi.CAD 3 beeinflussen kann (siehe "Zielsystem-spezifische Eigenschaften und Einschränkungen") , kann ein Überlauf/Unterlauf für unterschiedliche Zielsysteme bei unterschiedlichen Ergebniswerten auftreten.

Beispiel für ungültige Beschaltungen
DIV_TIME(IN1 := TIME#89468321d19h, IN2 := REAL#3.0e-30); (* Bei der integrierten SPS ergibt diese Berechnung einen negativen Wert. *)