Nachfolgende Infos erheben keinen Anspruch auf Vollständigkeit:

Simatic Timer mit zenon

Beispiel Timer aus der S7 mit zenon darstellen:

SPS Programm:
U M 222.0 // Startbit
L S5T#1M40S // Zeitdauer laden
SV T 1 // Zeit als verlängerten Impuls starten

Der aktuelle Wert des Timers kann in zenon direkt mit einer Variable angezeigt werden.
Dazu ist eine zenon Variablen auf dem S7-TCP Treiber vom Treiberobjekttyp „Zeit“, Datentyp „Real“ anzulegen. Als Offset für die Variable ist die Timernummer einzutragen. Im Beispiel „1“.
Diese Variable kann mit einem Zahlenwert Element in zenon angezeigt werden.
Sollen die Nachkommastellen ebenfalls angezeigt werden, so sind diese bei der Variable in der Wertberechnung einzutragen, z.B. „3“. Zur Laufzeit werden aufgrund der Übertragungs-/Darstellungsgeschwindigkeit nicht alle Millisekunden angezeigt.
Eine zenon Variable vom Treiberobjekttyp „Zeit“ kann ebenfalls mit dem dynamischen Element „Uhr“ angezeigt werden. Für die korrekte Anzeige ist der Anzeigetyp auf „Zeitdifferenz“ einzustellen. In diesem Element wird die Anzeige automatisch formatiert. In diesem Element werden als kleinste Zeiteinheit Sekunden, d.h. keine Millisekunden angezeigt.

Wird ein Timer in einen Datenbaustein kopiert muss für diese Darstellung ein anderes Verfahren verwendet werden.
L T 1 // aktuellen Timer laden
T DB300.DBW100 // in DB300 Datenwort 100 kopieren


Auf ein solches Datenwort kann über eine zenon Variable vom Typ INT oder UINT zugegriffen werden. Dabei ist eine Wertberechnung um eine Nachkommastelle gegenüber des SPS Werts einzutragen. Beispiel mit UINT:
Nachkommastellen 1
Wertbereich Steuerung Min = 0 / Max = 65535
Wertanpassung linear Min = 0.0 / Max = 6553.5

Ein Zugriff auf in Datenwörter gespeicherte Timer Werte ist über den Treiberobjekttyp „Zeit“ oder über den Datentyp „Real“ nicht möglich.


Angabe des Zeitwerts aus einem Datenbausteinwort.
Mit dem folgenden Code wird ein Wert aus einem Datenbaustein als Zeitwert für einen Timer verwendet.
U M 222.0 // Startbit
L DB300.DBW50 // lese DB300 Datenwort 50
SV T 1 // Zeit als verlängerten Impuls starten


Diese Vorgabe der Zeitdauer wird von der SPS als BCD-Code interpretiert, wobei das höherwertigste Nibble (4 Bit) dem Zeitraster entspricht (siehe Simatic Dokumentation). Als Zeitraster sind folgende Werte möglich:
0 = 0,01s
1 = 0,1s
2 = 1s
3 = 10s
Diese Nibble muss bei der Eingabe berücksichtigt werden.
Eine Darstellung und Eingabe von BCD kodierten Zahlen ist in zenon direkt nicht möglich. Dazu wäre der Einsatz der nichtlinearen Wertanpassung über VBA nötig.
Eine weniger „komfortable“ Eingabe ist auch ohne zenon möglich.
Für die Anzeige und Eingabe wird eine UINT Variable auf dieses Datenbausteinwort angelegt.
Diese Variable wird in einem Zahlenwertelement angezeigt. Dabei ist auf die Zahlenbasis „hex“ für die Darstellung umzuschalten.
Für eine Eingabe eines Wertes ist das Element so zu konfigurieren, dass die Eingabe in das Element erfolgt („Sollwert absetzen über“).
Zur Laufzeit sind bei der Dateneingabe immer alle 4 Zeichen inklusive des Zeitrasters einzugeben. Es erfolgt hier keine Kontrolle ob der eingegebene Wert korrekt ist.
Beispiel:
Es soll 40 Sekunden eingegeben werden; mögliche Eingaben sind „2040“ oder „1400“. Hier entspricht die "2" oder "1" am Anfang dem Zeitraster (siehe oben).