WinCC EA-Feld mit Time_of_Day Variable

acid

Level-1
Beiträge
785
Reaktionspunkte
240
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo

ich versuche ein EA-Feld für eine Variable mit dem Datentyp Time_Of_Day zu erstellen, WinCC bietet diese Möglichkeit ja nicht direkt an. Das Datenformat in der Steuerung zu ändern ist keine Alternative, sind ziemlich viele Variablen und einige Panels auf denen diese Werte ebenfalls angezeigt werden.
In diesem Beitrag des Users "DimiCamp" im Siemens-Forum
https://support.industry.siemens.co...in-a-wincc-i-o-field/9552/?page=0&pageSize=10
habe ich ein C-Script gefunden welches dies ermöglichen sollte, leider funktioniert es nur "halb".

Zuerst habe ich die beiden globalen Scripte angelegt.
Danach habe ich eine Variable vom Typ Vorzeichenloser 32bit Wert angelegt und diese in die C-Aktionen des EA-Feldes im Beispiel eingetragen. Der eingegebene Wert wird auch in den DB geschrieben, allerdings zeigt das EA-Feld nur 29:59:59 an, egal was im DB steht.

Leider hält sich meine WinCC Erfahrung etwas in Grenzen, kann mir jemand sagen was ich hier falsch mache? Anbei noch ein Bild der Einstellungen.

Ausgabe.PNG
 
Ich weiß nicht warum er in seiner Funktion mit mktime und strftime rummacht.
Ich habe es mal so gelöst:

https://www.sps-forum.de/hmi/69721-wincc-v7-datentyp-time-day.html#post482841

In den String werden auch die Millisekunden eingetragen, wenn du das nicht haben willst musst du das Format anpassen.
Der Aufruf funktioniert nur etwas anders als bei deiner Funktion bezüglich Speicherreservierung für den String.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

Hatte gerade das selbe Problem. Alledings brauche ich nur 2 Variablen im WinCC zum verstellen, deswegen wollte ich kein Skript verwenden.
Ich habe es wie folgt gelöst vielleicht hilft es ja mal jemanden:
- 2 Variabelen DATE_TIME angelegt in der PLC.
- Mit FC8 aus DATE_TIME nur die Zeit herausgelöst und auf TIME of DAY kopiert.(Time of Day wird im alten Teil verwendet den ich nicht ändern will)
- In WinCC die einzelnen Byte (sind 3 für Stunde Minute Sekunde) angelegt BytetoBCDByte (Byte 3,4,5)
- Alle verschalten auf 3 EA Felder und es funktioniert.

Das ist keine gute Lösung bei mehr Variablen aber bei meinen 2 erfüllt es den Zweck.

mfg Philip
 
Zurück
Oben