Gültigkeit/Auffrischung von %variablen% Topic is solved

Post Reply
JensH
Posts: 850
Joined: 30.07.2018, 18:59
Location: Dresden

Gültigkeit/Auffrischung von %variablen%

Post by JensH » 11.05.2019, 10:07

Hi Rob,
wie verhält es sich mit der Gültigkeit des Inhalts von %variablen%, speziell der für die Zeit,
sind diese nur einmalig gültig mit ihrem Inhalt beim Aufruf eines Skripts oder können sie zur
Laufzeit aktualisiert werden?

Mein Test sagt mir im Moment: nur einmalig richtig.

Wenn dem so ist, wäre es zumindest für die PC-Systemzeit (die man ja auch nicht anhalten
kann und darf) wünschenswert, eine Aktualisierung im Sekundentakt zu haben.

rjversluis
Site Admin
Posts: 41613
Joined: 10.04.2006, 08:48
Location: Speyer, Germany
Contact:

Re: Gültigkeit/Auffrischung von %variablen%

Post by rjversluis » 11.05.2019, 10:11

Hi Jens,

ich vermute das du Async Aktionen mit Endlosschleife komponierst.
So ist es nicht gedacht; Eine Aktion sollte ausgelöst werden durch ein Ereignis, und abgearbeitet werden.
Um eine eigene Automat zu schreiben ist der MQTT Dienste der bessere weg.

JensH
Posts: 850
Joined: 30.07.2018, 18:59
Location: Dresden

Re: Gültigkeit/Auffrischung von %variablen%

Post by JensH » 11.05.2019, 10:32

Hi Rob,
nein, ich will keine Endlosschleife programmieren und auch nicht automatische Funktionen hinzuschreiben.
Auch will ich keine Geschwindigkeit messen, dazu gibt es bessere Möglichkeiten.

Jedoch habe ich eine Aufgabe, bei der ich die Zeit beim Start und die Zeit beim Ende eines abgelaufenen Skripts
benötige. Und die bekomme so ich nicht ...

Nun kann ich am Ende ein zweites Skript starten und mir die Zeit so holen. Eine elegante Variante ist das jedoch
in keinster Weise.

rjversluis
Site Admin
Posts: 41613
Joined: 10.04.2006, 08:48
Location: Speyer, Germany
Contact:

Re: Gültigkeit/Auffrischung von %variablen%

Post by rjversluis » 11.05.2019, 10:37

Hallo Jens,

alle Variablen sind nach dem Aktionsaufruf statisch und ändern sich nicht.
Um währen der XMLScript Laufzeit Variablen zu aktualisieren sprengt den Rahmen und werde ich auch nicht implementieren.
Eine mögliche Alternative wäre ein System Query. (Gibt es zZ nicht)

JensH
Posts: 850
Joined: 30.07.2018, 18:59
Location: Dresden

Re: Gültigkeit/Auffrischung von %variablen%

Post by JensH » 11.05.2019, 10:46

Hi Rob,
prinzipiell wollte ich nur eine Bestätigung für meine Beobachtung. Hier wäre eine Ergänzung der Hilfe angebracht.
rjversluis wrote:
11.05.2019, 10:37
alle Variablen sind nach dem Aktionsaufruf statisch und ändern sich nicht.
Das leuchtet mir grundsätzlich ein, da sicherlich der Zustand ja beim Laden des Skripts "genommen" wird.
Um währen der XMLScript Laufzeit Variablen zu aktualisieren sprengt den Rahmen und werde ich auch nicht implementieren.
Das kann ich auch verstehen, zumal auch der Zugriff von mehreren Codes abgesichert werden müsste.
Eine mögliche Alternative wäre ein System Query. (Gibt es zZ nicht)
Wenn das von dir bei passender Gelegenheit eingebaut werden könnte, wäre das toll. Bis dahin weiche ich auf die Alternative aus,
mit dem Start eines zweiten Skripts den neuen Wert zu bekommen. Mit der dadurch entstehenden Unsicherheit in der Konstanz
werde ich klar kommen müssen.

rjversluis
Site Admin
Posts: 41613
Joined: 10.04.2006, 08:48
Location: Speyer, Germany
Contact:

Re: Gültigkeit/Auffrischung von %variablen%

Post by rjversluis » 12.05.2019, 07:03

Moin Jens,

wäre ein Variable mit Sekunden Inhalt OK?
the value of time in seconds since the Epoch (00:00:00 UTC, January 1, 1970)

rjversluis
Site Admin
Posts: 41613
Joined: 10.04.2006, 08:48
Location: Speyer, Germany
Contact:

Re: Gültigkeit/Auffrischung von %variablen%

Post by rjversluis » 12.05.2019, 07:24

Hallo Jens,

der Var Wert ist:
Stunde * 3600 + Min. * 60 + Sek.

Code: Select all

<?xml version="1.0" encoding="UTF-8"?>
<xmlscript>
  <clock cmd="get"/>
  <trace text="modeltime @modeltime - #modeltime"/>
  <trace text="realltime @realtime - #realtime"/>
</xmlscript>

Code: Select all

20190512.082207.253 r9999I cmdrFE54 OAction  1107 run xmlscript file [./time.xml], size=187 called by []
20190512.082207.253 r9999I tid0x006 OXmlScri 2152 script: [xmlscript]
20190512.082207.254 r9999I tid0x006 OXmlScri 2070 run script [-] function [-]
20190512.082207.254 r9999I tid0x006 OXmlScri 0710 execute [<clock cmd="get"/>] id[] cmd[get] oid[] callerid[]
20190512.082207.254 r9999I tid0x006 OModel   3497 broadcast variable modeltime [30126, "08:22.06"]
20190512.082207.254 r9999I tid0x006 OModel   3497 broadcast variable realtime [30127, "08:22.07"]
20190512.082207.254 r9999I tid0x006 OXmlScri 0710 execute [<trace text="modeltime @modeltime - #modeltime"/>] id[] cmd[-] oid[] callerid[]
20190512.082207.254 r9999x tid0x006 OXmlScri 1473 modeltime 08:22.06 - 30126
20190512.082207.254 r9999I tid0x006 OXmlScri 0710 execute [<trace text="realltime @realtime - #realtime"/>] id[] cmd[-] oid[] callerid[]
20190512.082207.254 r9999x tid0x006 OXmlScri 1473 realltime 08:22.07 - 30127
Nach jede clock get Kommando werden die Variablen aktualisiert.

rjversluis
Site Admin
Posts: 41613
Joined: 10.04.2006, 08:48
Location: Speyer, Germany
Contact:

Re: Gültigkeit/Auffrischung von %variablen%

Post by rjversluis » 12.05.2019, 07:54

Hi,

es gibt auch noch ein 'system tick' welche mit +/- 10ms getaktet ist, und bei jede neu Start wieder bei Null anfängt.

Code: Select all

20190512.085221.383 r9999I tid0x669 OModel   3497 broadcast variable systemtick [3365, ""]
15401+

Wiki:
https://wiki.rocrail.net/doku.php?id=xm ... g-en#clock

JensH
Posts: 850
Joined: 30.07.2018, 18:59
Location: Dresden

Re: Gültigkeit/Auffrischung von %variablen%

Post by JensH » 13.05.2019, 08:00

Moin Rob,
toll gemacht, vielen Dank. Das spart auch gleich noch die Umrechnung,
man kann die Differenz direkt benutzen. Auch für die Systemtaktzeit gibt
es sicherlich Verwendung, wobei sich da jeder im Klaren sein muss, das es
kein Echtzeitsystem ist.

Post Reply

Return to “XMLScripting & Aktionen (DE)”