Jump to content

Recommended Posts

Hallo!

Mit dem Skriptmodul kann man den Zeitstempel in eine besser lesbare Datums- und Zeitinformation umwandeln, siehe Bild.

Für den Gebrauch in DASYLab müsste der Zeitstempel dann über einen Datenkanal an einen Eingang des Skriptmodul geliefert werden oder in einer globalen Variable abgelegt sein.

Mit value = Ly.GetVar(5) liest man z.B. den Inhalt der globalen Variable 5 in die Python-Variable 'value' (Ly.GetStr(x) liest den Inhalt eines globalen Strings).

Nach der Umwandlung müsste man 'date' und 'time' wieder in globale Strings (Texte) übertragen, um sie an anderer Stelle in DASYLab weiterverenden zu können.
Mit Ly.SetVar(num, value) bzw. Ly.SetStr(num, text) kann eine globaler Variable/String mit einem Wert/Text beschrieben werden.

 

Image1.png

date_time.DSB

Link to post
Share on other sites
Am 16.12.2020 um 08:55 schrieb HolWo:

Hallo!

Mit dem Skriptmodul kann man den Zeitstempel in eine besser lesbare Datums- und Zeitinformation umwandeln, siehe Bild.

Für den Gebrauch in DASYLab müsste der Zeitstempel dann über einen Datenkanal an einen Eingang des Skriptmodul geliefert werden oder in einer globalen Variable abgelegt sein.

Mit value = Ly.GetVar(5) liest man z.B. den Inhalt der globalen Variable 5 in die Python-Variable 'value' (Ly.GetStr(x) liest den Inhalt eines globalen Strings).

Nach der Umwandlung müsste man 'date' und 'time' wieder in globale Strings (Texte) übertragen, um sie an anderer Stelle in DASYLab weiterverenden zu können.
Mit Ly.SetVar(num, value) bzw. Ly.SetStr(num, text) kann eine globaler Variable/String mit einem Wert/Text beschrieben werden.

 

Image1.png

date_time.DSB 35 kB · 3 Downloads

Guten Tag Herr Wons

Besten Dank für das Script-Modul; das Einlesen einer Variablen (aktueller Timestamp) und die Ausgabe von zwei Strings konnte ich bewerkstelligen. Was ich nicht hingekriegt habe ist, dass sich die Sache automatisch aktualisiert dh. wenn ich die Variable "Timestamp" ändere passiert nichts; erst wenn ich alles abspeichere und DasyLab neu starte aktualisieren sich die Strings date und time. Können Sie mir bitte weiterhelfen, denn ich habe noch nie mit Script gearbeitet. Besten Dank.

Link to post
Share on other sites
  • 5 weeks later...

Hallo!

Wenn der Zeitstempel sich ändert, z.B. der angelieferte Wert am Eingang ändert sich, dann muss man die "Neuberechnung" in der ProcessData-Funktion durchführen, siehe angehängtes Schaltbild/Skript.

Bild:
In der globalen Variable steht beispielhaft ein Zeitstempel. Das Modul "Variable lesen" gibt den Wert als Datenblock an seinem Ausgang aus. Das Skriptmodul empfängt den Datenblock (siehe ProcssData, ganz unten im Skript) und holt sich den letzten Wert des Datenblocks (falls Blockgröße > 1).
Der Wert ist der Zeitstempel, welcher dann über die Bibliotheksfunktion in Zeit/Datum-Information gewandelt wird. Ist das erfolgreich gewesen, werden die sich ergebenden Texte in globale String geschrieben.

 

Änderungen am Skript machen:
Die Py-Datei kann mit einem beliebigen Texteditor angepasst werden. Im Skriptmodul muss dann über die "Laden"-Taste die Py-Datei in das Modul geladen werden. Die Py-Datei muss für die Schaltbildausführung nicht neben der Schaltbilddatei (*.DSB) liegen -- die Py-Datei braucht man nur zum Verändern des Verhaltens des Skriptmoduls: Skriptmodul-Skript mit "Speichern"-Taste als Datei abspeichern, in der Datei Änderungen durchführen, Py-Datei wieder mit "Laden"-Taste ins Modul zurückladen.

grafik.png

date_time.DSB timestamp.py

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...