ECockpit - Modbuscommunication mit eigenen Variablen definitionen

Radircs

Level-1
Beiträge
3
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,
Ich versuche gerade in meinem Projekt mehrere Controller innerhalb eines Netzwerkes dazu zu bringen von mir gewünschte Datensätze auszutauschen (bzw. zu einem Controller als Master zu schicken der diese dann auswertet).
Da ich um das ganze modular und erweiterbar halten wollte bestehen viele dieser Daten im Moment aus Strukturen. Ist es den im ECockpit möglich eine solche über Modbus zu senden oder muss ich die wirklich wieder zerlegen und aufschlüsseln? Ich weiß das ich die Möglichkeit der Netzwerk Variablen habe. Aber ein ständiges Broadcast würde ich gern vermeiden und nur für Ding wie Status Words oder ähnliches verwenden wollen.
Mit dem Modbuskonfigurator komme ich, da nicht wirklich weiter außer ich übersehe eine Funktion.
Über ein Hinweis wo ich Information dazu finde wäre ich schon sehr dankbar (noch mehr natürlich wenn jemand die Zeit für eine genaue Lösung hat)
Grüße Florian
 
Moin,
Du kannst bei NetVars das BC zumindest auf das Subnetz begrenzen, z.B. mittels 192.168.1.255.
Wenn Du Modbus bevorzugst, dann kannst Du Strukturen nicht direkt übertragen. Allerdings könntest Du Dir Deine Struktur auf den gleichen Speicherbereich mit einem Array gleicher Größe legen. Die Struktur verwendest Du im Programm und das Array verwendest Du für die MB Übertragung. Das geht recht einfach mit Union (siehe DUT). Dort definierst Du einfach Deine Struktur und ein Array OF z.B. Word, das mindestens die Größe der Struktur hat. Größe der Struktur kannst Du manuell zählen oder mit sizeof() in Byte ermitteln.
LG

Edit: Auf der Gegenstelle musst Du das gleiche natürlich auch machen, wenn Du dort wieder mit den Strukturen arbeiten willst ;)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Florian,

Du kannst mit dem Datentyp Union auch Deine Struktur in den gleichen Speicher legen wie ein Array of Word.
So kannst Du im Programm mit der Struktur arbeiten und dem Modbus übergibst Du das Array of Word.

Je nachdem welche Gegenstelle Du verwendest musst Du dann nur wegen der Modbusadressen der einzelnen Variablen in der Struktur schauen.

Grüße
 
Danke das hilft mir schonmal ein ganzes stück weiter. Ich wußte das es dazu eine Funktion gibt aber Union hatte ich tatsächlich kommplet vergessn. Damit sollte die übertragung kein problem mehr sein. Und nochmal zusätzlich danke für den Hinweis mit dem einzelnen Subnetzwerk bei Netzwerkvariablen. Das wird unsern Admin freuen das da nicht Daten die ganze zeit über das gesamte Haus Netzwerk gesendet werden.
 
Zurück
Oben