Modbus RTU im e!COCKPIT

Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

wenn Du auf die Hauptstruktur über ein Array zugreifst, dann mach doch folgendes:

deklariere ein Sende/Empfangsarry von z.B. 121 Wörtern
in das erste Wort schreibst Du welcher Teil übertragen wird
dann kopierst du die ersten 120 Wörter in Dein Sendearray
dann versendest Du diese Daten
warten bis Rückmeldung alles versendet
dann den nächsten Teil nach dem gleichen Muster bis alle Teile versendet sind

Auf der Empfangsseite wartest Du bis neue Daten angekommen sind, z.B schauen ob sich das erste Wort geändert hat
dann die empfangenen Daten in den entsprechenden Abschnitt kopieren

Dabei solltest Du darauf achten, daß die Daten einigermaßen konsisten übertragen werden. Eventuell mußt Du dafür Padding Bytes einfügen, nicht daß Du von einer 32 Bit Variablen mit der ersten Übertragung die ersten 16 Bit überträgst und dann mit dem zweiten Schwung die nächsten 16 Bit, denn est könnte sein, daß die Variable sich inzwischen geändert hat.

Das wäre jetzt ein Beispiel. Könnte man auch Unterstrukturabhängig aufbauen, so daß Du jeweils eine Unterstruktur in einem Rutsch übermittelst.

Gruß

PS. eventuell kannst du auch direkt Abschnittsweise auf das Array der Hauptstruktur zugreifen über den Adressoperator adr(Array[0]), und dann mit entsprechenden Offsets arbeiten Array[120] etc.
 
Zurück
Oben