Hallo,
ich habe ein Verständnisproblem.
Zwar Schreibe und Lese ich von IPS auf eine Wago per Modbus.
Im Anhang sind SShots zum Verständnis.
Ich habe mir für Rollos ein Benutzderdefiniertes Varibalenprofil als Integer erstellt, ich schreibe via Aktionsskript ein Variable (Short) auf die Wago und lese in die Variable den Status ein, funktioniert soweit.
Frage 1: Ich kann im Aktionsskript ModbusWriteRegisterInteger oder Word sowie Short angeben, funktioniert alles, vorausgesetzt die Modbusinstanz wir entsprechend dem Datentyp angepasst.
Muss ich zwingend eine Integer Variable aus dem Skript schreiben, weil das Variablenprofil auf Integer basiert, oder ist das egal??
Frage 2: Richtet sich eher an die Wago bzw. Beckhoff User
Die Modbusadressierung ist ja in der SPS Byteweise, so weit so gut.
Ich habe bisher aus dem Aktionsskript immer mit ModbusWriteRegisterInteger geschreiben und so wie ich das verstehe 32bit geschrieben.
Als Modbusadresse in der Wago habe ich dann ein Merkerwort angegeben (hat nur 16 Bit) jetzt habe ich durch diese Art der Programmierung je nach Konstellation das vorherige oder das nachfolgende Merkerwort mitbschrieben.
Das ganze ist mir aufgefallen, als Der Rollo im Webfront „Auf“ anzeigte, weil ich an einem völlig anderen Slider (Merker 13002) den Wert verstellt habe.
Ich verstehe das so, aus IPS habe ich auf den Integer 32 bit gepackt, das Merkerwort in der Wago hat aber nur 16 Bit, somit hat der Integer aus IPS in der Wago ein Merkerdoppel beschreiben.
Gelöst habe ich das ich statt ModbusWriteRegisterInteger, ModbusWriteRegisterShort schreibe und laut IPS jetzt nur 16 bit schreibe.
Ist das jetzt alles so richtig wie ich das mache oder verrenne ich mich da???
In alten Beiträgen habe ich gelesen das man bei der Wago SPS mit Mdbus immer nur jedes zweite Merkerwort verwenden sollte, wsl rührt das daraus, das IPS bei Integer 32 Bit liefert.
Danke schon mal.