DIV_TIME-Baustein
Kurz-Information
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 |
Beschreibung |
|
Eingänge: |
IN1 |
TIME |
Zeitwert |
IN2 |
REAL, LREAL, USINT, UINT, UDINT, ULINT, SINT, INT, DINT oder LINT |
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:
"Bausteine für sichere Logik", ob dieser Baustein für das Entwickeln von sicherheitsrelevanten Anwendungen unterstützt wird.
"Kennzeichnung von sicherer Logik im FBS-Editor", welche Auswirkung die Verwendung des Bausteins als Baustein für sichere Logik hat.
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.
DIV_TIME(IN1 := TIME#89468321d19h, IN2 := REAL#3.0e-30); (* Bei der integrierten SPS ergibt diese Berechnung einen negativen Wert. *)