Benutzer-Werkzeuge

Webseiten-Werkzeuge


steuerungsprogramme:rocrail-xpressnet-weiche

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
steuerungsprogramme:rocrail-xpressnet-weiche [2018/09/15 18:48] akuhtzsteuerungsprogramme:rocrail-xpressnet-weiche [2018/11/06 14:48] (aktuell) – [Befehls-Zuordnung] akuhtz
Zeile 1: Zeile 1:
 ====== Multimaus-Aktionen ====== ====== Multimaus-Aktionen ======
  
-Rocrail bietet die Möglichkeit die Weichen-Befehle der Multimaus auszuwerten und mittels Skript andere Aktionen wie z.B. den Aufruf von Accessories auf BiDiB-Knoten zu steuern.+Rocrail bietet mindestens 2 Möglichkeiten um die Weichen-Befehle der Multimaus auszuwerten und andere Aktionen wie z.B. den Aufruf von Accessories auf BiDiB-Knoten zu steuern. 
 + 
 +  * Befehls-Zuordnung 
 +  * mittels Skript  
 + 
 +===== Befehls-Zuordnung ===== 
 + 
 +Die einfachste Möglichkeit des Schalten ist über Befehlszuordnung: 
 + 
 +Quelle: [[https://wiki.rocrail.net/doku.php?id=rocrailini-cmdmapping-de|Rocrail Wiki]] 
 + 
 +{{:rocrail:xpressnet-befehls-zuordnung.png}} 
 + 
 +Nach dem Erstellen der Befehls-Zuordnung muss Rocrail neu gestartet werden. 
 + 
 +===== Schalten über XML-Skript =====
  
 Dazu muss für jede Weiche die über die Multimaus gesteuert werden soll eine Weiche in Rocrail angelegt werden. Dazu muss für jede Weiche die über die Multimaus gesteuert werden soll eine Weiche in Rocrail angelegt werden.
 Im Beispiel wird eine Weiche mit der Adresse 24 angelegt. Sie erhält die Kennung ''sw24''. Im Beispiel wird eine Weiche mit der Adresse 24 angelegt. Sie erhält die Kennung ''sw24''.
  
-{{:rocrail:00_xpressnet-accessorymanual-weiche24_allgemein.png? |}}+{{:rocrail:00_xpressnet-accessorymanual-weiche24_allgemein.png}}
  
-\\  
 Auf dem Schnittstellen-Tab muss (anders als normalerweise bei den BiDiB-Knoten) die Adresse ''24'' und nicht der Port ''24'' eingerichtet werden. Auf dem Schnittstellen-Tab muss (anders als normalerweise bei den BiDiB-Knoten) die Adresse ''24'' und nicht der Port ''24'' eingerichtet werden.
  
-{{:rocrail:01_xpressnet-accessorymanual-weiche24.png? |}}+{{:rocrail:01_xpressnet-accessorymanual-weiche24.png}}
  
-\\  
 Das Skript welches den Multimaus-Befehle auswertet muss über den ''Aktionen...''-Button auf dem Allgemein Tab(siehe oben) definiert werden: Das Skript welches den Multimaus-Befehle auswertet muss über den ''Aktionen...''-Button auf dem Allgemein Tab(siehe oben) definiert werden:
    
-{{:rocrail:02_xpressnet-accessorymanual-weiche24_aktionssteuerung.png? |}}+{{:rocrail:02_xpressnet-accessorymanual-weiche24_aktionssteuerung.png}} 
 + 
 + 
 +Die Skript-Aktionen müssen zuvor über ''Tabellen > Aktionen ...'' eingerichtet werden. 
 + 
 +{{:rocrail:03_xpressnet-accessorymanual-aktionen.png}} 
 + 
 + 
 +Als Type muss ''Ext. Programm starten'' ausgewählt werden. Anschliessend kann unter ''Befehl'' der Scriptname vergeben werden. Durch Klick auf den ''Edit''-Button öffnet sich der Script-Editor. 
 + 
 +{{:rocrail:04_xpressnet-accessorymanual-aktion-test1.png}} 
 + 
 + 
 +Im Skript-Editor wird Rocrail-Script verwendet: 
 + 
 +{{:rocrail:05_xpressnet-accessorymanual-aktion-test1-script.png}} 
 + 
 + 
 +Das gezeigte Beispiel-Script schreibt alle Anweisungen mit ''<trace...>'' mit grünem Text in das Server-Trace-Fenster von Rocview. 
 + 
 +===== Accessory schalten ===== 
 + 
 +Um ein Accessory zu schalten, muss eine Weiche (z.B. **sw1**) ganz normal konfiguriert werden.  
 +Für das nachfolgende Skript ist die Weiche sw1 im Plan als Weiche an einer OneControl definiert und das Accessory schaltet die Weiche hin und her. 
 + 
 +<code> 
 +<?xml version="1.0" encoding="UTF-8"?
 +<xmlscript> 
 +  <trace text="Script is called, '%callerid%' "/> 
 +  <if state="sw sw24 = straight"> 
 +    <then> 
 +      <trace text="SW24 is straight" /> 
 +        <sw id="sw1" cmd="straight"/> 
 +    </then> 
 +    <else> 
 +      <trace text="SW24 is not straight" /> 
 +        <sw id="sw1" cmd="turnout"/> 
 +    </else> 
 +  </if> 
 +</xmlscript> 
 +</code> 
 + 
 +Im Skript kann diese Weiche dann angesteuert werden durch die Zeilen: 
 +<code> 
 +<sw id="sw1" cmd="turnout"/> 
 +</code> 
 +Mit diesem Befehl wird die Weiche mit der Kennung **sw1** auf abzweigend geschalten. 
 +Diese Zeile kann durch Zusammenstellung im unteren Bereich des XmlSkript-Editor von Rocrail erstellt werden. 
 + 
 +{{:rocrail:06_script_ansteuerung_weiche_mit_accessory.png}} 
 + 
 +Es ist auch möglich ganze Fahrstrassen zu schalten. Dazu muss eine Anweisung für eine Route erstellt werden. 
 + 
 + 
 +===== Trace Level einstellen ===== 
 + 
 +Um zu sehen ob Rocrail die Weiche korrekt findet, muss der Trace Level Automat aktiviert werden. 
 +Im nachfolgenden Trace sieht man, dass die Weiche (switch) nicht gefunden wurde, weil die Adressierung falsch war: 
 + 
 +<code> 
 +20180915.181406.371 r9999I bidibrea OBiDiB   3985 MSG_CS_ACCESSORY_MANUAL path=0.0.0.0 addr=23 event=0x20 ON 
 +20180915.181406.371 r9999a 000041DC OModel   5158 trying to match switch event: 1744830518:24:0:0 type=0 uidname=[ ] 
 +20180915.181406.371 r9999a 000041DC OModel   3651 no more switches found by address [24,0] 
 +20180915.181406.371 r9999a 000041DC OModel   5183 trying to match signal event: 1744830518:24:0 type=0 uidname=[ ] 
 +20180915.181406.371 r9999a 000041DC OModel   3733 no signal found by address [1744830518,24,0] type=0 uidname=[ ] 
 +20180915.181406.371 r9999a 000041DC OModel   4421 no tt found by address 1744830518:
 +20180915.181406.371 r9999a 000041DC OModel   5235 trying to match output event: 1744830518:24:0 type=0 value=0 uidname=[ ] 
 +20180915.181406.371 r9999a 000041DC OModel   3763 no output found by address [1744830518,24,0] type=0 uidname=[ ] 
 +20180915.181406.371 r9999a 000041DC OModel   5252 trying to match signal event: 1744830518:24:0 type=0 uidname=[ ] 
 +20180915.181406.371 r9999a 000041DC OModel   3733 no signal found by address [1744830518,24,0] type=0 uidname=[ ] 
 +20180915.181406.561 r9999I bidibrea OBiDiB   3985 MSG_CS_ACCESSORY_MANUAL path=0.0.0.0 addr=23 event=0x00 OFF 
 +20180915.181408.883 r9999I bidibrea OBiDiB   3985 MSG_CS_ACCESSORY_MANUAL path=0.0.0.0 addr=23 event=0x21 ON 
 +20180915.181408.883 r9999a 000041DC OModel   5158 trying to match switch event: 1744830518:24:0:0 type=0 uidname=[ ] 
 +20180915.181408.883 r9999a 000041DC OModel   3651 no more switches found by address [24,0] 
 +20180915.181408.883 r9999a 000041DC OModel   5183 trying to match signal event: 1744830518:24:0 type=0 uidname=[ ] 
 +20180915.181408.883 r9999a 000041DC OModel   3733 no signal found by address [1744830518,24,0] type=0 uidname=[ ] 
 +20180915.181408.883 r9999a 000041DC OModel   4421 no tt found by address 1744830518:
 +20180915.181408.883 r9999a 000041DC OModel   5235 trying to match output event: 1744830518:24:0 type=0 value=0 uidname=[ ] 
 +20180915.181408.883 r9999a 000041DC OModel   3763 no output found by address [1744830518,24,0] type=0 uidname=[ ] 
 +20180915.181408.883 r9999a 000041DC OModel   5252 trying to match signal event: 1744830518:24:0 type=0 uidname=[ ] 
 +20180915.181408.883 r9999a 000041DC OModel   3733 no signal found by address [1744830518,24,0] type=0 uidname=[ ] 
 +20180915.181409.123 r9999I bidibrea OBiDiB   3985 MSG_CS_ACCESSORY_MANUAL path=0.0.0.0 addr=23 event=0x01 OFF 
 +</code> 
 + 
 +Wenn die Weiche korrekt konfiguiert ist, wird sie gefunden und das Skript ausgeführt:
  
 +<code>
 +20180915.182214.399 r9999I bidibrea OBiDiB   3985 MSG_CS_ACCESSORY_MANUAL path=0.0.0.0 addr=23 event=0x21 ON
 +20180915.182214.399 r9999a 000041DC OModel   5158 trying to match switch event: 1744830518:24:0:0 type=0 uidname=[ ]
 +20180915.182214.399 r9999I 000041DC OSwitch  1986 switch [sw24] field event: state=straight(field:straight) gatevalue=2 inv=0 fieldstate=straight
 +20180915.182214.399 r9999a 000041DC OSwitch  0353 sw24 action state does not match: [turnout-straight]
 +20180915.182214.399 r9999I 000041DC OSwitch  0327 switch action: test1
 +20180915.182214.399 r9999I 000041DC OSwitch  0348 switch execute action: test1
 +20180915.182214.399 r9999I 000041DC OAction  1096 run xmlscript file [.\testscript.xml], size=276 called by [sw24]
 +20180915.182214.399 r9999I 000041DC OXmlScri 2083 script: [xmlscript]
 +20180915.182214.399 r9999I 000041DC OXmlScri 2001 run script [-] function [-]
 +20180915.182214.399 r9999I 000041DC OXmlScri 0688 execute [<trace text="Script is called :)"/>
 +] id[] cmd[-] oid[] callerid[sw24]
 +20180915.182214.399 r9999x 000041DC OXmlScri 1412 Script is called :)
 +20180915.182214.399 r9999I 000041DC OXmlScri 1736 if state [sw sw24 = straight]
 +20180915.182214.399 r9999I 000041DC OXmlScri 0493 state [sw sw24 = straight] is true
 +20180915.182214.399 r9999I 000041DC OXmlScri 0688 execute [<trace text="SW24 is straight"/>
 +] id[] cmd[-] oid[] callerid[sw24]
 +20180915.182214.399 r9999x 000041DC OXmlScri 1412 SW24 is straight
 +20180915.182214.399 r9999I 000041DC OSwitch  0541 switch[sw24] isSet=true wanted state [straight], reported state [straight] isfbset=false
 +20180915.182214.399 r9999I 000041DC OSwitch  2010 polarise Frog [sw24] state=straight(straight)
 +20180915.182214.399 r9999a 000041DC OModel   3651 no more switches found by address [24,0]
 +</code>
  
steuerungsprogramme/rocrail-xpressnet-weiche.1537030131.txt.gz · Zuletzt geändert: 2018/09/15 18:48 von akuhtz

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki