-> Hier kostenlos registrieren
Hi,
also ich bin hier nur Hobby mäßig unterwegs (man sieht es sicherlich am Titel) und habe eine Frage. Der Hintergrund ist, dass ich viele Informationen zwischen Steuerungen austausche. Ich habe in einem Codesys 3.5 Projet unter anderem zwei PFC200 Controller. Einer ist Modbus Master und der andere Slave.
Ich tausche Variablen verschiedener Bit-Größen aus und mache zum Beispiel aus 2 Word Variablen aus Modbus per Merker eine Real Variable (oder mehrere Bit und Bytes in ein Word usw.)
Also wie
Word1 at %MW00
Word2 at % MW01
Real1 at %MW00
Das funktioniert so weit. Um den Überblick nicht zu verlieren habe ich bei größeren Datenmengen in Modbus 2 Kanäle (einmal lesen und einmal schreiben) und dafür jeweils ein Array of Word in der entsprechenden Größe als Merker deklariert:
durchMastergelesen at %MW1000: Array[0..9] of Word;
durchmastergeschrieben at %mw2000: array[0..29] of Word;
das auf beiden Steuerungen an der gleichen Stelle und so kann ich Bit, Bytes, Word, Dint etc. durch die richtige Adressierung in beiden Steuerungen überall mit der gleichen Adresse ansprechen.
Das hat mir erst mal gut geholfen.
Inzwischen habe ich mich über Union schlau gemacht. Wenn ich das richtig verstehe macht Union im Grunde nichts anderes?
Die Variante per Union benötigt mehr Tipparbeit würde ich einschätzen.
Die Variante per Merker biete die Gefahr, dass man durch falsche Belegung fehler Einbau, welche schwer zu finden sind (mühsam das ganze Projekt durchsuchen und jeden Merker auf den richtigen Speicherplatz hin prüfen).
Meine Frage: gibt es sonst Vor oder Nachteile beider Varianten? Performancetechnisch oder andere Argumente? Gibt es Gründe, warum ich das alles ändern sollte? In meinen Codesys 2.3 Steuerungen werde ich bei den Merkern bleiben, da a) ich so auf die Variablen überhaupt zugreifen kann und b) es kein Union unter 2.3 gibt?
also ich bin hier nur Hobby mäßig unterwegs (man sieht es sicherlich am Titel) und habe eine Frage. Der Hintergrund ist, dass ich viele Informationen zwischen Steuerungen austausche. Ich habe in einem Codesys 3.5 Projet unter anderem zwei PFC200 Controller. Einer ist Modbus Master und der andere Slave.
Ich tausche Variablen verschiedener Bit-Größen aus und mache zum Beispiel aus 2 Word Variablen aus Modbus per Merker eine Real Variable (oder mehrere Bit und Bytes in ein Word usw.)
Also wie
Word1 at %MW00
Word2 at % MW01
Real1 at %MW00
Das funktioniert so weit. Um den Überblick nicht zu verlieren habe ich bei größeren Datenmengen in Modbus 2 Kanäle (einmal lesen und einmal schreiben) und dafür jeweils ein Array of Word in der entsprechenden Größe als Merker deklariert:
durchMastergelesen at %MW1000: Array[0..9] of Word;
durchmastergeschrieben at %mw2000: array[0..29] of Word;
das auf beiden Steuerungen an der gleichen Stelle und so kann ich Bit, Bytes, Word, Dint etc. durch die richtige Adressierung in beiden Steuerungen überall mit der gleichen Adresse ansprechen.
Das hat mir erst mal gut geholfen.
Inzwischen habe ich mich über Union schlau gemacht. Wenn ich das richtig verstehe macht Union im Grunde nichts anderes?
Die Variante per Union benötigt mehr Tipparbeit würde ich einschätzen.
Die Variante per Merker biete die Gefahr, dass man durch falsche Belegung fehler Einbau, welche schwer zu finden sind (mühsam das ganze Projekt durchsuchen und jeden Merker auf den richtigen Speicherplatz hin prüfen).
Meine Frage: gibt es sonst Vor oder Nachteile beider Varianten? Performancetechnisch oder andere Argumente? Gibt es Gründe, warum ich das alles ändern sollte? In meinen Codesys 2.3 Steuerungen werde ich bei den Merkern bleiben, da a) ich so auf die Variablen überhaupt zugreifen kann und b) es kein Union unter 2.3 gibt?