TC3 - Zeitstempel in TE2000 HMI

Ahrens

Level-1
Beiträge
2
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Tag Zusammen,

meine Absicht ist es für ein Projekt eine Meldungshistorie zu erstellen. Die Meldungen sollen mit der aktuellen Uhrzeit versehen werden. Die gesamte Historie möchte ich bisher in einem Datagrid anzeigen und habe dafür ein ST Programm, welches mir ein Array of Structure beschreibt.

Bisher habe ich das ganze mit einem NT_GetTime Baustein realisiert, welcher mir die aktuelle Uhrzeit in eine Timestructure steckt. Aus dieser kann ich auch die aktuellen Zeitdaten herrausziehen, jedoch nur gestückelt: also Sekunde, Minute, Stunde, Tag, Monat einzeln. In der Darstellung mit Datagrid wird das ganze dann relativ hässlich und unübersichtlich.

Gibt es da vielleicht eine elegantere Lösung? Eventuell die Uhrzeit irgendwie in nur eine Variable verpackt zu bekommen oder es mit etwas anderem außer nem Datagrid zu versuchen?
 
Ein Möglichkeit ist es mit der Funtkion SYSTEMTIME_TO_DT dies in eine DT-Type zu wandeln.
1669891553615.png

Es gibt auch noch andere SystemTime_To_...-Funtkionen. Schau dir mal die Tc2_Utilities dazu an.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Die andere Möglichkeit, die ich dir nicht vorenthalten will, wäre es dazu den TwinCAT 3 EventLogger. https://download.beckhoff.com/download/document/automation/twincat3/TC3_EventLogger_DE.pdf

Dort sieht dann eine Liste ungefähr so aus,..
1669892174404.png
-> Jedoch auch noch mit eigenen Spalten, usw. definierten Farben und Funtkionen erweiterbar

Vorteile
  • PLC/HMI kommunzieren selbstständig
  • Handling von Listen läuft im Hintergrund (Einträge mit Teimstemp, Source, usw)
  • Control fürs TwinCAT HMI (TF2xxx) vorhanden
  • Ereignisse mit Zusatztext, Argumenten
  • Srachumschaltung
  • ....
Nachteile
  • Geht nur mit dem TwinCAT HMI (TF2xxx)
  • grössere Einarbeitungszeit
  • grössere Umsetzungszeit
  • ....
 
Besten Dank für die schnelle Antwort Brro87!

Da das ganze nur ein kleines Gimmik für mein Abschlussprojekt sein soll, hab ich es jetzt erstmal mit dem DT Wandler umgesetzt, danke für den Tipp!

Noch eine kleine amateur Frage hinterher.
Bisher sieht meine IF Bedingung für die Meldungshistorie so aus:

1669923967486.png
((Aktuelle Uhrzeit TIMESTRUCT in DT))

Hier stecke ich mommentan darin fest, eine Lösung zu finden, die Auslösevariable für den Zeitstempel nur bei der jeweiligen Meldung zu setzten. Danach möchte ich direkt wieder die Möglichtkeit haben, einen neuen Zeitstempel für die folgende Meldung zu generieren.

Habe schon diverse Möglichkeiten ausprobiert aber komme auf nichts gescheites.
Bin in Beckhoff ST noch relativ am Anfang.
 
Zuletzt bearbeitet:
Ich verstehe Deine Frage nicht wirklich, wo Dein Problem liegt.
Wir machen das meistens so, dass wir einen Logger Baustein haben. Dieser besitzt z. Bsp.
folgende Methoden:
- LogInfo(MessageText)
- LogWarning(WarningText)
- LogError(ErrorText)

Darin wird dann die Meldung, inkl. Zeitstempel und sonstigen Angaben zusammengebaut und in einen Buffer geschrieben.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@Ahrens: Auch ich habe Mühe deine 2. Frage zu verstehen. Ich denke es liegt wohl am Aufruf,..
Aber der von dir gepostete Code-Abschnitt ist nicht vollständig. Irgendwo wir "Zeitstempel" deklariert und irgendwo auch augerufen, doch das sehe ich nirgends. Passiert der Aufruf vor oder nach deinem Code-Auschnitt. -> So ist eien Diagnose/Analyse unmöglich.

Auch weiss ich gerade nicht was du mit "((Aktuelle Uhrzeit TIMESTRUCT in DT))" meinst. Ich seheim Code-Auschnitt nur.AktuelleUhrzeit.
 
Zurück
Oben