TIA Time_Of_Day in String konvertieren (Experiment)

Icke

Level-1
Beiträge
4
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich lese hier schon einige Zeit den einen oder anderen Beitrag mit und finde mich dann schnell wieder in der Experimentier-Phase, weil ich nicht ganz das gefunden habe, was ich brauche oder einen anderen Weg gehen muss / will.

Mein Experiment, was ich euch zeigen möchte, was vielleicht neue Ansätze bringt, sicher aber nicht korrekt gestaltet sein wird:

Konvertierung Time_Of_Day in einen String.

Mein Ziel war die Zerlegung bzw. Entnahme der Zeit-Elemente "Stunde" und "Minute" aus dem Array, um diese dann in einen eigenen String zusammenzusetzen, und das in FUP.

Test-Variablen angelegt (Systemzeit als DTL an anderer Stelle bereits vorhanden)

Angelegte Variablen.JPG


Verschieben der Werte in angelegte Variablen

Konvertierung01.JPG


Verarbeitung der Werte, Abfrage der Stelle, Konvertierung von INT zu String, Zufügen der Null
Die deaktivierte Konvertierung "S_CONV" brachte, wie in der Hilfe in TIA nachzulesen ist, unerwünschte Leerzeichen, daher nicht relevant.
Konvertierung02.JPG

Konvertierung03.JPG

Konvertierung04.JPG

Konvertierung05.JPG


Zusammensetzen der Elemente "Stunde" und "Minute" mit "Doppelpunkt" und "Uhr" zu einem gesamten String für die Weiterverwendung

Konvertierung06.JPG


Ich freue mich über Rückmeldung, wenn es in irgendeiner Weise weiter hilft, aber auch über konstruktive Kritik ;)

Beste Grüße
 
Zuletzt bearbeitet:
Moin,
ich verstehe offen gesagt nicht ganz was dein Experiment für eine Zielsetzung hat.
Mein Ziel war die Zerlegung bzw. Entnahme der Zeit-Elemente "Stunde" und "Minute" aus dem Array, um diese dann in einen eigenen String zusammenzusetzen, und das in SCL.
Das in deinem Post sieht irgendwie nach FUP aus...
Willst du das gezeigte in SCL konvertieren?
Warum das ganze in der SPS? Wieso nicht per Script direkt am E/A-Feld des HMIs (Falls die Uhrzeit am HMI ausgegeben werden sol?
Das 'Uhr' limitiert den String auf die Verwendung in deutscher Sprache? oder ist Mehrsprachigkeit irrelevant für deinen Anwendungsfall?
 
Moin,
ich verstehe offen gesagt nicht ganz was dein Experiment für eine Zielsetzung hat.

Das in deinem Post sieht irgendwie nach FUP aus...
Willst du das gezeigte in SCL konvertieren?
Warum das ganze in der SPS? Wieso nicht per Script direkt am E/A-Feld des HMIs (Falls die Uhrzeit am HMI ausgegeben werden sol?
Das 'Uhr' limitiert den String auf die Verwendung in deutscher Sprache? oder ist Mehrsprachigkeit irrelevant für deinen Anwendungsfall?

Moin,

danke für deine Rückmeldung und den Hinweis.

Ich habe das eben geändert "SCL" -> "FUP", hab mich vertan.

Am HMI lasse ich mir gerade die Zeit in Eingabe / Ausgabe-Felder anzeigen, die gleichzeitig zum Einstellen dienen.
Die Sekunden sollten zukünftig weg und ich möchte den String in Text bzw. Sätzen einbauen, also nach Bedarf kombinieren.

Mögliche Scripte hatte ich mir angeschaut, bin da aber noch nicht fit und wollte dies in der Art lösen.
Für meinen Fall ist auch keine Übersetzung erforderlich. Das "Uhr" war auch nur ein Kombinations-Test.
 
EDIT: Kann ich nicht finden in meiner Hilfe -> TIA 15.1 für S7 1200
Die LGF ist eine globale Bibliothek, die du dir auf der verlinkten Seite runterladen kannst.
Es gibt dort auch eine Doku als .pdf, aber in der TIA-Hilfe wirst du dazu nichts finden.
Die älteste, verfügbare Version ist aber TIA V16.
Mögliche Scripte hatte ich mir angeschaut, bin da aber noch nicht fit und wollte dies in der Art lösen.
Als Referenz könntest du hier gucken.
https://www.sps-forum.de/threads/comfort-panel-time-variable-als-mm-ss-darstellen.95720/post-875924
Hier wird zwar eine Time-Variable in String gewandelt, aber das Konzept ist vergleichbar.
Ich hab mir am Ende einen parametrierbaren Bildbaustein zusammen geschraubt, der im Prinzip nur ein E/A-Feld + Scripte zum wandeln in beide Richtungen enthält.

Reine Anzeigesachen über String ans HMI zu senden sehe ich immer etwas kritisch, das bläst die Menge an ausgetauschten Daten immer so auf.
 
Ich hab dir hier mal die betreffenden "String zu Zeitformate und zurück"-Bausteine als Bausteinquelle angehängt.
Die kannst du in deiner SPS unter "externe Quellen" hinzufügen & anschließend per Rechtsklick => "Bausteine aus Quelle generieren" daraus wieder SPS-Bausteine machen.
Die Quelle stammt zwar aus TIA V19, müsste aber auch unter V15.1 lauffähig sein => müsstest du im Detail testen ob alles ok läuft.
Die zugehörige Doku bekommst du auf der Website der LGF-Bibliothek.
 

Anhänge

Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

Würde das auch unter S7 Classic auf einer 400 CPU laufen ?
meine CPU ist ein Wenig zu "Langsam", d.h. sie geht pro Monat ca. 5-8 Min nach. ich würde dann über ein HMI - Feld dann die Uhrzeit bei bedarf korrigieren.

Mfg
 
Würde das auch unter S7 Classic auf einer 400 CPU laufen ?
LGF_TimeToString und LGF_StringToTime vieleicht, müsstest du mal ausprobieren.
Die anderen Bausteine verwendet DTL, das kennt Classic nicht.
=> müsstest du erst umschreiben.
meine CPU ist ein Wenig zu "Langsam", d.h. sie geht pro Monat ca. 5-8 Min nach. ich würde dann über ein HMI - Feld dann die Uhrzeit bei bedarf korrigieren.
Was spricht dagegen eine der standartmäßigen Möglichkeiten zur Zeitsynchronisation zu nutzen?
Kannst ja den Zeitformat auch direkt an einem E/A-Feld ein-/ausgeben, ohne über einen String zu gehen.
Müsstest dann nur mit der Siemens-Darstellung der Zeitwerte leben ¯\_(ツ)_/¯
 
@Botimperator , danke dir.

Dein Script im anderen Beitrag hatte ich bereits gesehen, war nicht ganz, was ich wollte.

Deinen Anhang / Baustein schaue ich mir bei Gelegenheit an, wenn ich am Projekt weiter arbeite :)
 
Zurück
Oben