beliebiges struct in array of word und zurück

christoph.87

Level-1
Beiträge
16
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

hört sich jetzt erst mal komisch an, aber hat (irgendwo) Sinn.

Ich spiele seit einiger Zeit daran, meine WAGOs (1x842, 1x880,2x881 und werden noch mehr) per Modbus mit meinem Raspberry (Codesys 3.5/ Soft SPS) zu verbinden.
Nun bin ich es aber leid immer alle Werte in WORD zu konvertieren (Codesys 3.5 hat als Modbusvariablen immer nur ein Array of WORD), dass ich dann verarbeite und alles wieder heraus konvertiere.

Daher meine Frage:
Ich würde gerne eine beliebige Anazhl aus Werten ( BOOL, INT, REAL, DWORD,...) aus einen STRUCT in ein Array of WORD konvertieren, dass kopiere ich dann einfach in die gegenüberliegende Steuerung und habe alles so dastehen wie ich es benötige.

Hoffe ihr könnt mir helfen.

Vielen Dank schon mal.

MfG Christoph
 
Ich bin jetzt nicht so der Modbus-Experte, aber wenn der Speicherbereich bei Modbus fortlaufend ist kannst Du doch mit MEMCPY dein Struct in das Word-Array kopieren und auf der Zielsteuerung entsprechend umgekehrt.

Von irgendwas mit Internetzugang gesendet.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Entweder arbeitest du mit einer Union oder wie oben erwähnt mit einem Memcpy.
Ich kenne Wago jetzt nicht, du musst aber entsprechend aufpassen bei
- 1 Bool'schwer Wert kostet dich speichertechnisch 8 Bit
- in Strukturen können Füllbytes (Stichwort Data Alignment) vorhanden sind. Ich weiss aber nicht was für ein Alignment in der Wago/Raspy existiert

=> Sollte das Alignment zwischen Wago und Raspy nicht identisch sein musst du beim erstellen der Struktur etwas vorsicht walten lassen. Und bei Boolschen Werten ist natürlich der Scheinverlust relativ gross aufgrund der Packungsdichte.

Guga
 
Zurück
Oben