Blockreservierung nicht gelöscht

Blockreservierung nicht gelöscht

Postby georg7 » 13.01.2018, 18:36

Bei mir kommt es immer mal wieder vor, dass die Reservierung einer Lok auf dem Quellblock nicht aufgehoben wird, wenn der Zielblock erreicht ist. Das geschieht bei ganz beliebigen Blöcken und Zügen. Die Lok, die die Reservierung stehen lässt fährt zwar erst mal weiter aber der immer noch belegte Quellblock kann natürlich von keiner anderen Lok angefahren werden. Ich habe ein Beispiel angefügt. Die Lok Felix hat irgendwann einmal die Reservierung auf Block 15 nicht mehr freigegeben und ist einfach von Block zu Block weitergefahren. Aktuell steht sie im Block en Quellblock 12. (Sie ist ein wenig über den Melder 12.1 hinausgefahren, darum sieht man kein Belegtsignal. Das muss ich erst richtig einstellen.)
Letztlich ist das aus meiner Sicht eine unvollständige Umbuchung der Lock von Quelle (Block 15) nach Ziel (vermutlich Block 17). Ich nahm an, dass die Umbuchung mit einem Ereignis stattfindet und eine geschlossene Transaktion darstellt. Das kann also auch nichts mit den Meldern zu tun haben. (Das wäre wie wenn bei mir auf dem Bankkonto bei einer Überweisung 100 € nicht abgebucht werden aber auf dem Empfängerkonto gut geschrieben werden würden. In diesem Fall fände ich das natürlich gut.)
Kann mir irgendjemand sagen, was ich hier möglicherweise falsch mache?
Vielen Dank schon mal im voraus,
Georg
You do not have the required permissions to view the files attached to this post.
georg7
 

Re: Blockreservierung nicht gelöscht

Postby peter&basti » 13.01.2018, 19:19

Hallo Georg,
Kannst Du bitte zu dem Zeitpunkt, wo Deine Umbuchung (interessante Formulierung) nicht stattfindet, ein issue auslösen?
Dann gibt es auch einen Trace, wo man nachlesen kann, wo es hakt.
Liebe Grüße / best regards
Peter


System: DCC 2-Leiter H0, Rocrail 64bit auf Win10 Pro 64
Traktion: OpenDCC GBM
Fahrweg: RocNetNode & GCA PI01/2/3, GCA41/Arduino RFID, GCA145 Drehscheibe, etc.
Decoder: 99% Zimo
Experimentell: MQTT & Node-Red
peter&basti
 

Re: Blockreservierung nicht gelöscht

Postby GeSchu » 13.01.2018, 21:15

Moin Georg,
meinem Vorredner kann ich mich nur anschließen.
Deinen Plan habe ich mir angesehen und alle Loks im virtuellen Modus ca 15 Minuten laufen lassen. Nach dem ersten Eindruck funktioniert alles reibungslos. Eine "Umbuchung", wie du es nennst, findet regelmäßig statt. Der Begriff "fehlende Umbuchung" trifft, wenn er denn auftritt, den Fehler allerdings nicht. Weil Soll und Haben gibt es hier nicht, ein commit wird auf einer rocrail geführten Modellbahn nicht angestossen, findet also grundsätzlich nicht statt.
Ein Block ist frei oder nicht, ein anderer ist belegt oder nicht. Rückmelder teilen den Zustand mit.
Eine Fehleranalyse kann auf Deine Anlage bezogen so nicht stattfinden.
Wie dem auch sei: Peter schrieb bereits, das wir ein Issue File benötigen. Was bedeutet das für Dich?
Provoziere den Fehler und erstelle genau dann einen Problemfall. Das geschieht mit:Hilfe->Problemfall. Das so entstandene Issue.zip stellst Du uns dann bitte hier zur Verfügung. Dieses File enthält alles, was ein Helfender zur Analyse benötigt.
Gruß
Gerd(GeSchu)
Anlage 1 : H0 C-Gleis; Tams MC; Tams B-2; Tams S88-3; Tams WD-34/Esu SwitchPilot
Server : rocrail auf raspberry/Debian jessie; Client : OS X high Sierra / UBUNTU 16.04 .
Werkstatt : H0 C-Gleis; rocrail Softwarezentrale dcc32; DELTA 6604
GeSchu
 

Re: Blockreservierung nicht gelöscht

Postby peter&basti » 13.01.2018, 22:21

Hallo Georg,

nachdem Gerd bereits Deinen Plan virtuell getestet hat und die Abläufe ohne Hardware offenbar reibungslos funktionieren, brauchen wir den Trace wenn das Problem auftritt. Ich vermute jetzt schon, dass ein (Hardware) Melder nicht korrekt auslöst.
Liebe Grüße / best regards
Peter


System: DCC 2-Leiter H0, Rocrail 64bit auf Win10 Pro 64
Traktion: OpenDCC GBM
Fahrweg: RocNetNode & GCA PI01/2/3, GCA41/Arduino RFID, GCA145 Drehscheibe, etc.
Decoder: 99% Zimo
Experimentell: MQTT & Node-Red
peter&basti
 

Re: Blockreservierung nicht gelöscht

Postby georg7 » 14.01.2018, 10:49

Hallo zusammen,

vielen Dank für die schnelle Hilfe und die wichtigen Hinweise zur Erstellung des "Issues".
Die schnellen Reaktionen in diesem Forum sind wirklich Klasse! Das will ich einmal gesagt haben. Echt toll!
Ich werde auch gleich nochmal versuchen den Fehler zu provozieren.
Entschuldigt bitte. Das Trace File hatte ich vergessen. (Das war mir gleich bewußt, nachdem ich den Rechner gestern verlassen hatte.)
Ich liefere es hiermit der Vollständigkeit halber nach. Ich habe gleich drei Files angehängt, aber die relevante Info müsste in rocrail.004.trc sein. Dort finde ich:
20180113.181158.100 r9999I Felix ORoute 2064 unlocking route autogen-[Block 15+]-[Block 17+] by Felix
20180113.181158.100 r9999I Felix OLoc 5249 block[Block 17] enter side for [Felix] set to [+]
20180113.181158.116 r9999I Felix OModel 6877 occ: set placing in block Block 17 for Felix to 1

Mir ist allerdings nicht klar, wie dies ein Melder-Fehler sein kann, wenn der Melder frei anzeigt. Ich kann ja auch in Rocrail eine Lok auf einen Block setzen, ohne das diese dort physikalisch steht oder ein Belegtmelder im Block aktiviert ist.
Ich muss aber einräumen, dass ich auch mit falscher Belegt-Anzeige gelegentlich Probleme habe. In rocrail wird dabei belegt gemeldet, wenn ich mit dem Hilfs-Programm von CAN Digitalbahn drauf ging, war der Melder doch tatsächlich frei.

Gut, ich werde beide Probleme im Auge behalten und sobald etwas auftritt einen ordentlichen "Issue" melden.
Vermutlich ist das irgend eine Kleinigkeit.

Gruß an Euch alle,
Georg
You do not have the required permissions to view the files attached to this post.
georg7
 

Re: Blockreservierung nicht gelöscht / Melderproblem

Postby georg7 » 14.01.2018, 12:40

Hallo nochmal,

nun habe ich wohl ganz offenbar ein Melderproblem.
Der Melder "+B15.1" (Adresse 0:24) wird im Trace zuletzt als belegt gemeldet erfasst, aber es wird anschließend keine frei-Meldung mehr erfasst:

20180114.110939.794 r9999c mcs2read OMCS2 0756 sensor 0:24 state=1
Tatsächlich ist der Melder aber nicht belegt. Das zeigt auch das Hilfsprogramm von CAN Digitalbahn an.
Beim Neustart von Rocrail wird der Melder nun wieder korrekt als "nicht belegt" erfasst und es geht weiter...
Scheint nun doch Problem in der Kommunikation zwischen CC-Schnitte und Rocrail zu sein.
Gibt es hier die Möglichkeit - etwa durch kontinuierliche Abfrage der Melder - Rocrail und die Anlage wieder in einen synchronen Zustand zu schalten.
(Im umgekehrten Fall, dass eine Belegt-Meldung verloren geht, würde die kontinuierliche Abfrage natürlich wenig helfen, da ein Zug dann wahrscheinlich nicht mehr rechtzeitig anhält.)
(Ich hatte das selbe Problem mit dem selben Melder auch gleich noch ein zweites Mal.)
Was kann man hier tun?

Gruß,
Georg
You do not have the required permissions to view the files attached to this post.
georg7
 

Re: Blockreservierung nicht gelöscht / Melderproblem

Postby GeSchu » 15.01.2018, 09:19

Moin Georg,
in diesem Fall vermute ich eher ein Verständnissproblem.
georg7 wrote:nun habe ich wohl ganz offenbar ein Melderproblem.
Der Melder "+B15.1" (Adresse 0:24) wird im Trace zuletzt als belegt gemeldet erfasst, aber es wird anschließend keine frei-Meldung mehr erfasst:
20180114.110939.794 r9999c mcs2read OMCS2 0756 sensor 0:24 state=1
Tatsächlich ist der Melder aber nicht belegt. Das zeigt auch das Hilfsprogramm von CAN Digitalbahn an.

Bevor ich da näher drauf eingehe, die folgenden Fragen:
Frage 1: Aus welcher Richtung - von Block 15 aus gesehen, kommt der Zug? Fährt er auf der +Seite oder auf der -Seite in den Block ein?
Warum möchte ich das wissen? Fährt der Zug auf der +Seite ein, ist dieser Melder als OCCUPIED, sprich Besetztmelder definiert. Der Melder bleibt also solange aktiv, bis der Zug den Block wieder verlässt. Das würde bedeuten das der Melder mechanisch so lang ist, wie der Block.
Fährt der Zug an der -Seite ein, so ist dieser Melder als IN konfiguriert. Das würde bedeuten, wenn der Melder wirklich so lang ist, wie eben beschrieben, dieser viel zu früh auslöst. Dadurch erhält der Zug den Bremsbefehl zu früh.
Frage 2: Wie sind die Melder mechanisch gebaut? Isoliertes Gleisstück? Wenn ja: wie lang ist dieses Gleisstück?
Lichtschranke, Hall Sensor oder wie sonst?
So, und jetzt zum Verständnissproblem:
Ein ENTER und ein IN sind Sensoren, die genau dann einen Tick melden sollen, wen der Zug an diesem vorbeifährt.
Tick ENTER bedeutet: An diesem Melder ist soeben etwas geschehen. Ein Zug ist vorbeigefahren. Dieser Melder sollte keinen weiteren Tick melden bleibt aber durchaus im Gleisplan beleuchtet bis der Zug komplett vorbei gefahren ist.
Tick IN bedeutet: An diesem Melder ist soeben ein Zug vorbeigefahren. Dieser Zug steht jetzt im Idealfall komplett im Block. Idealfall deswegen weil viele Anwender vergessen, das Feld Länge in den Eigenschaften von Lok, Zug und last baut not least Block auszufüllen. In dem von Dir zur Verfügung gestellten Plan steht auch überall eine 0 drin. Auch für den IN Melder gilt: Er leuchtet auf dem Plan solange auf, bis der Zug komplett vorbeigefahren ist. Gemeldet wird jedoch nichts mehr. Warum auch? Der Zug hat seinen Bremsbefehl erhalten und gut is. Ein erneutes IN Ereigniss wäre, solange der Zug noch nicht komplett am Melder vorbei ist Blödsinn.
Diese beiden Melder können also bauartbedingt als Punktmelder gebaut sein. Das wäre eine Lichtschranke, ein sehr kurzes isoliertes Gleisstück, etc.
Der dazwischenliegende OCCUPIED funktioniert anders. Er sollte mechanisch annähernd so lang wie der Block sein und meldet sich solange, wie sich ein Zug oder Wagon hier als Auslöser aufhält.
Eine möglich Erklärung für das komische Verhalten der Melder könnte also die mechanische Bauart, die Reihenfolge der Anordnung und nicht zuletzt die Verkabelung sein. Virtuell scheint Dein Plan zu funktionieren.
Gruß
Gerd(GeSchu)
Anlage 1 : H0 C-Gleis; Tams MC; Tams B-2; Tams S88-3; Tams WD-34/Esu SwitchPilot
Server : rocrail auf raspberry/Debian jessie; Client : OS X high Sierra / UBUNTU 16.04 .
Werkstatt : H0 C-Gleis; rocrail Softwarezentrale dcc32; DELTA 6604
GeSchu
 


Return to Automatikbetrieb (DE)