Notaus via CAN an Z21?

#1 von Jotschi , 19.08.2022 20:57

Hallo!
Ich möchte auf meiner im Bau befindlichen Anlage die Notaus und Reset Funktion der Z21 künftig via CAN Bus auslösen.

Ein bisschen Kontext:
Ich habe mich letztes Jahr länger über die diversen Bus System eingelesen und entschieden das ich nur einen Bus verwenden möchte um Komplexität und Kabel zu sparen. Dabei hab ich mich für den CAN Bus entschieden weil er technisch (neben BiDiB) der leistungsfähigste zu sein scheint, weil Bauteile (für Arduino/PC Anschluss) gut verfügbar sind und ihn meine schwarze Z21 kann.
Mein Plan ist die komplette Steuerung via CAN Bus zu machen. Bis jetzt habe ich die Weichensteuerung (Eigenbau Arduino), die Rückmelder (Roco), die Steuerung für meine Lokvitrine (Eigenbau Arduino) und auch die Loksteuerung (PC sendet Befehl via CAN an Z21) im CAN Bus.

Jetzt baue ich an einem physischen Steuerpanel der ein paar Fehlerlämpchen haben soll sowie einen Notaus und einen Reset Knopf. Die sollen im Prinzip das selbe tun, was der Knopf vorne an der Z21 macht (+ Vitrinen Notaus usw.). Das ist wieder ein Arduino mit CAN Anschluss. Für die Programmierung meiner Steuersoftware verwende ich das "ZIMO CAN Protokoll" - da gibts ein dickes Referenz pdf auf der Zimo Website. Leider passt das offenbar nicht immer ganz 100% auf die Z21.

Meine Frage wäre jetzt ob schon mal jemand erfolgreich geschafft hat die Z21 via CAN in den Notauszustand zu versetzen?
Bis jetzt schaff ich es das mir die Z21 auf dem CAN Bus den aktuellen Status liefert (Gleisstrom An/Aus), aber Befehle umschalten tut sie nicht.

In der Hoffnung irgendwo einen Experten für dieses sehr spezifische Thema zu finden,
lg,
Johannes


Meine zweite Anlage (im Bau)


 
Jotschi
Regionalbahn (RB)
Beiträge: 29
Registriert am: 19.08.2022
Homepage: Link
Ort: Wien
Gleise Tillig Elite
Spurweite H0
Steuerung Eigenbau
Stromart DC, Digital


RE: Notaus via CAN an Z21?

#2 von bertr2d2 , 20.08.2022 00:04

Hallo Johannes,

ich habe Z21 CAN bisher nicht genutzt. Aber laut Doku sollte das Kommando LAN_CAN_BOOSTER_SET_TRACKPOWER das tun, was Du suchst, denke ich.

Gruß

Gerd


Smallest Rocrail Server Ever II ist jetzt Smallest Railroad Server Ever II
SRSEII -> SRSEII (Raider heisst jetzt Twix, sonst ändert sich nix )


Jotschi und fbstr haben sich bedankt!
bertr2d2  
bertr2d2
CityNightLine (CNL)
Beiträge: 1.545
Registriert am: 09.10.2012
Spurweite H0
Stromart Digital


RE: Notaus via CAN an Z21?

#3 von Jotschi , 20.08.2022 00:32

Danke für die Antwort.

So wie ich das verstanden habe ist der LAN_CAN_BOOSTER_SET_TRACKPOWER ein Befehl den ich vom PC via LAN an die Z21 senden kann. Ich bin sicher das funktioniert auch, weil das funktioniert in anderen PC Steuerungssoftwaren ja auch. Was ich eigentlich tun möchte ist den Befehl vom CAN Bus aus an die Z21 zu senden, da mein Arduino kein LAN kann und weil dieser den Notaus auch im Falle eines PC oder WLAN Ausfalls soll.

Da gibt es zwar laut "ZIMO CAN Protokoll 4.16 Public" einen sehr ähnlichen Befehl:

(Seite 11) SYSTEM CONTROL GROUP [0X00] -> Mit Cmd=0x00/M=0b01 kann der Port Power Status des Gerätes gesetzt werden, nach ‚Ausführung‘ der Status- Änderung wird der aktuelle Status per Cmd=0x00/M=0b11 ‚quittiert‘.

Aber die Z21 ignoriert den Befehl leider. Sie reagiert nur insofern als das sie mir den aktuellen Status zurückschreibt.

Ich habe allerdings die Befürchtung, dass das gar möglich ist. Interessanterweise funktioniert es aber problemlos via CAN Weichenschaltbefehle und Loksteuerbefehle an die Z21 zu senden. Nur der Notaus/Reset leider nicht.

Wenn ich keine andere Lösung finde werde ich als Workaround den Befehl vom Arduino via CAN an den PC schicken und der schickt es dann via LAN weiter. In dem Fall brauch ich aber zusätzlich noch als Fallback ein Relay am Gleisstrom das direkt vom Arduino geschaltet wird, für den Fall dass das Netzwerk oder der PC ausfallen. Der Hintergedanke ist hier immer das bei einer vollautomatischen PC Steuerung keine Unfälle passieren sollen, wenn PC oder Netzwerk mal abstürzten, was ja leider vorkommt.


Meine zweite Anlage (im Bau)


 
Jotschi
Regionalbahn (RB)
Beiträge: 29
Registriert am: 19.08.2022
Homepage: Link
Ort: Wien
Gleise Tillig Elite
Spurweite H0
Steuerung Eigenbau
Stromart DC, Digital


RE: Notaus via CAN an Z21?

#4 von WolfgangReder , 20.08.2022 11:54

Hallo !

Seitens ZIMO ist in erster Linie nur das Lan Protokoll extern dokumentiert.
Das ist, soweit anwendbar, weitgehend gleich mit dem CAN Protokoll (die ersten 32bit in meinem Log fehlen am CAN Bus).
Bis jetzt habe ich nur die LAN Verbindung mit MX10 implementiert, und dort führt folgende Kommandos zum Erfolg (Sender NID 0xbabe, Empfänger NID 0xaffe, Ausgang 1):
Aus:

1
2
 
From babe: 0x0, 0x0, COMMAND 0b1, 4, fe af 01 04 
04 00 00 00 00 01 be ba fe af 01 04
 



Ein:

1
2
 
From babe: 0x0, 0x0, COMMAND 0b1, 4, fe af 01 01 
04 00 00 00 00 01 be ba fe af 01 01
 



Alles Stop, mit normalen Verzögerungen:

1
2
 
From babe: 0x0, 0x0, COMMAND 0b1, 4, fe af 01 02 
04 00 00 00 00 01 be ba fe af 01 02
 



Alles Schnellstop:

1
2
 
From babe: 0x0, 0x0, COMMAND 0b1, 4, fe af 01 03 
04 00 00 00 00 01 be ba fe af 01 03
 




Noch die Erklärung des Logs:

1
2
 
From <sender NID>: <CommandGroup>, <Command>, <CommandType>,  <Payloadsize>, <16bit Empfänger> <8 bit Ausgang> <8 bit Mode> 
<raw UDP Packet>
 



Ich hoffe, das hilft ein wenig.

lg
Wolfi


Jotschi hat sich bedankt!
WolfgangReder  
WolfgangReder
InterRegio (IR)
Beiträge: 230
Registriert am: 31.03.2020
Gleise Roco
Spurweite H0
Steuerung Zimo MX10
Stromart Digital

zuletzt bearbeitet 20.08.2022 | Top

RE: Notaus via CAN an Z21?

#5 von Jotschi , 20.08.2022 15:56

Ich verwende dieses Dokument für die CAN Doku:
"ZIMO CAN Protokoll 4.16 Public.doc", pdf findet man via Google auf der zimo Webseite. Ich kann leider noch keinen Link direkt posten (Forenregel, min. 5 Posts nötig).

Der Befehl auf Seite 11 müsste es meiner Meinung nach sein.

Ich hab jetzt folgendes versucht. Ich hoffe mein Log Format ist lesbar. Erste Zeile was ich vom PC sende, zweite Zeile was ich von der Z21 bekomme:

1
2
 
ZCanSystemMessage(ZCanId(flag=1, group=SYSTEM, command=0, mode=COMMAND,     networkId=49200), data=[ 00 00 ]) ShortString: 0 0 1 49200 00 00
ZCanSystemMessage(ZCanId(flag=1, group=SYSTEM, command=0, mode=ACKNOWLEDGE, networkId=49200), data=[ 00 00 ]) ShortString: 0 0 3 49200 00 00
 



Wenn der Gleisstrom aus ist (blaues blinken in der App) bekomme ich folgendes zurück:

1
 
ZCanSystemMessage(ZCanId(flag=1, group=SYSTEM, command=0, mode=ACKNOWLEDGE, networkId=49200), data=[ 00 01 ]) ShortString: 0 0 3 49200 00 01
 



Also im zweiten Datenbyte dürfte der Status drinnen stehen. Allerdings scheint er zu ignorieren was da beim Senden drinnen steht.
Ich hab beim Senden alle möglichen Kombinationen in den Datenbytes versucht, ich bekomme leider immer nur das selbe Ergebnis, den aktuellen Status.


Meine zweite Anlage (im Bau)


 
Jotschi
Regionalbahn (RB)
Beiträge: 29
Registriert am: 19.08.2022
Homepage: Link
Ort: Wien
Gleise Tillig Elite
Spurweite H0
Steuerung Eigenbau
Stromart DC, Digital


RE: Notaus via CAN an Z21?

#6 von Jotschi , 20.08.2022 16:06

Ich fürchte es gibt auch noch Unterschiede zwischen der Z21 und der MX10. Laut der Doku sollte 1 Normalbetrieb sein und 4 Aus. Bei mir scheint aber 0 Normal und 1 Aus zu sein...

2 ist Programmiermodus (grünes Licht)
A0 ist Kurzschluss (rotes Blinken)

Hmmm ..


Meine zweite Anlage (im Bau)


 
Jotschi
Regionalbahn (RB)
Beiträge: 29
Registriert am: 19.08.2022
Homepage: Link
Ort: Wien
Gleise Tillig Elite
Spurweite H0
Steuerung Eigenbau
Stromart DC, Digital

zuletzt bearbeitet 20.08.2022 | Top

RE: Notaus via CAN an Z21?

#7 von WolfgangReder , 20.08.2022 16:46

Hallo !
4.16 ist nicht die aktuellste Version.
Die aktuelle Version gibts immer von der Zimo Homepage.
http://www.zimo.at/web2010/documents/ZIMO_CAN_Protokoll_4.20_Public.pdf

Weil es ein beliebter Fehler ist: Verwendest du eh als Byteorder Littel Endian?

Ich glaube nicht, dass es da einen Unterschied zwischen CAN Z21 und CAN MX10 gibt (max. zwischen LAN<->CAN), da die Fahrpulte von Zimo auch mit der Z21 funktionieren.


lg
Wolfi


WolfgangReder  
WolfgangReder
InterRegio (IR)
Beiträge: 230
Registriert am: 31.03.2020
Gleise Roco
Spurweite H0
Steuerung Zimo MX10
Stromart Digital

zuletzt bearbeitet 20.08.2022 | Top

RE: Notaus via CAN an Z21?

#8 von Jotschi , 20.08.2022 18:16

Erstmal danke für den Link! Der betroffene Abschnitt scheint zum Glück gleich zu sein.

Wenn ich den folgenden System Power Befehl sende, wobei ich bei letzten 2 Bytes (Port & Mode) alles mögliche probiert habe, dann schaltet er nichts:
0 0 1 49200 00 00
(Format: Grp / Cmd / Mode / NetworkId / Databytes)


Au der Doku: SYSTEM POWER [0X00.0X00]
Grp Cmd M ID DLC DB1 DB2 DB3 DB4
0x000x00 0b01 4 SystemNID SystemNID Port Mode

Und da hab ich auch schon meinen Fehler erkannt :D
Ich habe vergessen die beiden Bytes für SystemNID anzugeben.

Ich bin mir nicht ganz sicher was ich da angeben soll, nachdem ich keine Booster verwende sondern nur die Z21 direkt ansprechen will, aber ich habe es mal mit 0 versucht:
0 0 1 49200 00 00 00 04
Und siehe da, er schaltet in Notstopp!
Und mit
0 0 1 49200 00 00 00 01
lässt sich auch wieder auf normal zurück stellen.

Mit der Interpretation der Antworten hab ich noch ein bisschen Probleme:
Antwort auf Notstopp: 0 0 3 49200 00 80
Antwort auf Einschalten: 0 0 3 49200 00 00
Das werde ich mir nochmal etwas genauer anschauen.

Auch ist mir noch nicht völlig klar ob 0 SystemNid korrekt ist und was ich eigentlich bei Port angeben soll. Ich habe ja nur einen Gleisausgang, also ist der Port für mich eigentlich irrelevant. Nach kurzem ausprobieren scheint es mal so, als wäre es völlig egal was ich bei Port reinschreibe.

Zumindest kann ich es jetzt mal schalten und komme weiter. Danke für die Hilfe!


Meine zweite Anlage (im Bau)


WolfgangReder hat sich bedankt!
 
Jotschi
Regionalbahn (RB)
Beiträge: 29
Registriert am: 19.08.2022
Homepage: Link
Ort: Wien
Gleise Tillig Elite
Spurweite H0
Steuerung Eigenbau
Stromart DC, Digital


RE: Notaus via CAN an Z21?

#9 von Jotschi , 20.08.2022 19:03

Ich denke die 80 von der Antwort auf Notstopp entsprechen den ersten Byte des Status (Seite 40). Der Wert ist jedenfalls immer der gleiche wie der in der Power Info.

80 entspricht daher 'Unterspannung' was bei einem Strom abschalten Sinn ergibt.

Wenn ich mit der App abschalte steht stattdessen 01 drinnen, was SSP bedeutet. Also schaltet die App bei Stop nicht den Strom ab, sondern löst nur einen Sammelstopp auslöst. Das kann ich mit Mode 2 jetzt auch nachstellen. Damit ist mir das auch klar warum 80.


Meine zweite Anlage (im Bau)


 
Jotschi
Regionalbahn (RB)
Beiträge: 29
Registriert am: 19.08.2022
Homepage: Link
Ort: Wien
Gleise Tillig Elite
Spurweite H0
Steuerung Eigenbau
Stromart DC, Digital


   

❓ Wer kennt das "L298P Shield Module For Arduino Nano"
CS3 Fahrstrasse hängt sich auf

  • Ähnliche Themen
    Antworten
    Zugriffe
    Letzter Beitrag
Xobor Einfach ein eigenes Forum erstellen
Datenschutz