Habe ich gestern auch so fertig gemacht, CS ist nun zwingend ...das mit dem optional habe ich sein gelassen ...Aus meiner Erfahrung im Industriebereich reicht Summe-1 völlig aus!
CS = Byte(1) + Byte(2) + Byte(x) + Anzahl der Bytes (Überlauf bei 255)
#zzaakk|F1|F2|F3|....|Fx [30] CS [13]
[] = chr$
Datensätze wo die CS nicht stimmt, länger als 100 Zeichen oder der Header nicht plausibel ist, werden ohne Rückmeldung verworfen,
ist in meiner Haus-Steuerung auch nicht so dramatisch, da die Daten alle 60 Sekunden neu gesendet werden ...
Mein Steuer-PC der 24x7 läuft, wird ein Teil von Steueraufgaben bekommen, hauptsächlich komplexe Schaltuhr und BUS-Sniffer (Loger)
Ein Modul was im BUS neu gestartet oder eingeschaltet wird, wartet immer erst auf ein Zeitsync, welches von einem Modul alle 60 Sekunden generiert wird,
im Normalfall übernimmt das der PC, kommt nach 120 Sekunden kein Sync, übernimmt diese Funktion ein anderes Modul automatisch,
so ist immer gewährleistet das die Module Ihre feste Sende Zeit haben und es so zu keinen Kollisionen kommt kann,
Die Module Synchronisieren über dieses Sync-Signal ihre internen Sekunden-Zähler und passen entsprechend den Vorteiler automatisch an ...
Möchte man Module auslesen oder programmieren, kann man den BUS reservieren ... Kommando(#zzaa10)
Daraufhin stellen alle Module im BUS ihre internen Funktionen ein und warten nur noch zu 100% auf Kommandos im BUS, sobald wieder ein Zeit-Sync kommt,
arbeiten die Module wieder wie gehabt ...
Lesezeichen