Hallo Rainer, hallo Dirk,
ich habe mal einen kleinen Test gemacht (kreuzt sich leider mit Rainers letztem Posting):
Zunächst: spätestens ab Firmware 3.0.1 meldet die CS2 alle S88-Änderungen über S88 Event (0x11, in CAN-ID: 0x22) mit DLC=8 wie von Dir beschrieben, sobald in einem Layout in der CS2 selber der höchste zu erwartende S88-Kontakt eingetragen ist. Ein Polling ist daher zur Erkennung von Änderungen nicht mehr nötig. Ob iTrain oder Rocrail überhaupt noch S88-Polling betreiben, weiss ich z.Zt. noch nicht.
Dann: wenn ich trotzdem noch S88 Polling (0x10, in CAN-ID: 0x20) (verwende ich übrigens nur mit DLC=5) mit meiner Software mache, dann erhalte ich „Echos“ und falsche S88-Statusanzeigen in meiner Software, da sich das Pollingergebnis mit der CS2-Eventmeldung überlagert und S88-Kontaktänderungen in der Regel doppelt angezeigt werden. Daher ist S88-Polling in meiner Software abschaltbar.
Und: die Abfrage des Aktuellen S88-Status nach dem Hochfahren der Software: wie Du schon geschrieben hast, muß man, wenn man S88 Polling (0x10, in CAN-ID: 0x20) benutzt, diese Abfrage zweimal machen. Kann ich so nachvollziehen und bestätigen. Es reicht diese Abfragetechnik aber einmal nach dem Start der Software aus, gilt für jedes Softwareprodukt: danach ist kein S88-Polling an der CS2 mit Firmware 3.0.1 mehr nötig.
Problem bleibt: S88 Event (0x11, in CAN-ID: 0x22) mit DLC=4 zur Abfrage des aktuellen Status eines Eingangs (Anwort mit DLC = 8 ). Wenn ich als Programmierer für jeden einzelnen S88-Kontakt eine solche Abfrage senden muß, habe ich deutlich mehr an die CS2 zu schicken als wenn ich die alte obige Polling-Methode zweimal verwende. Deshalb meine Frage an Dirk: muß das wirklich sein, dass ich zur Abfrage eines S88-Moduls 16 Anfragen an die CS2 senden muß, oder reichen da zwei Anfragen nach altem System aus? Aus meiner Sicht wäre es wünschenswert, Märklin würde eine Abfrage aller Kontakte mit dem neuen System mit einem einzigen Befehl implementieren (z.B. mit einem DLC=6 von Kontaktkennung … bis Kontaktkennung). -- EDIT: sehe gerade: Märklin hat ja mit DLC=7 genau jenes in der neuen Beschreibung (im CS2-Webinterface) seit 2014 drin. Mußte ich dann mal ausprobieren. Ergebnis: ist in CS2 v3.0.1 (noch ?) nicht implementiert! Es bleibt also nur Dirks Variante mit DLC=4, die läuft bei mir gut. Danke für den Tipp an Dirk!
In iTrain 2.1.8 kann man für die CS2 sowohl die Anzahl der Rückmeldemodule als auch die Abfragerate einstellen. Setzt man beides auf Null, pollt iTrain 2.1.8 nicht, reagiert aber (aus meiner Sicht auch zuverlässig) auf S88-Events, d.h. Änderungen werden angezeigt.
In iTrain 3.0 ist nur noch die S88-Modulanzahl einzustellen, also gehe ich mal davon aus, dass Xander nun in iTrain das bisherige alte Polling nicht mehr vornimmt. Ist die Anzahl der S88-Module auf Null gesetzt, reagiert auch iTrain 3 auf S88-Events, d.h. Änderungen werden angezeigt. Ich habe aber den Eindruck, dass eine Abfrage des Ausgangszustandes der Kontakte nach dem Hochfahren von iTrain nicht (oder nicht erfolgreich) durchgeführt wird. Es werden aber beim Beenden von iTrain evtl. die alten S88-Stati gesichert und beim erneuten Hochfahren dann angezeigt. Denn ich habe direkt nach dem Hochfahren von iTrain noch vor dem Verbinden zur CS2 schon "aktive Besetztmeldungen" im Rückmeldermonitor von iTrain, was dem entspricht, was Rainer schreibt. Und: wenn ich in iTrain die Anzahl der S88-Module korrekt einstelle, dann werden nach dem "Verbinden" von iTrain 3 zur CS2 mehrere S88-Kontakte falsch dargestellt, genau die Kontakte, die beim letzten "Trennen" von iTrain von der CS2 noch aktiv waren. Entspricht auch Rainers Bericht.
Um einzugrenzen, woran es liegt, müßte uns Xander sagen, wie er beim "Verbinden" die S88-Kontakte abfragt.
Rainer: geht es Dir nur um die Ausgangssituation? Oder gibt es auch falsche Anzeigen im laufenden Betrieb nach Kontakt-Aus/Ein?
Welche iTrain-Version? Welches Computer-Betriebssystem? Wieviele S88-Module?
Ich würde aus der bisherigen Schilderung der Kollegen hier empfehlen, wie bisher mindestens den höchsten S88-Kontakt in einem CS2-eigenen Layout zu belassen.
Ciao
Diego