FlyingRobin - 2018-09-25

Sehr geehrte CODESYS-Community,

ich möchte ein Motorsteuergerät über Ethernet an eine Hitachi-SPS anschließen und bin noch frisch in CODESYS. Das Motorsteuergerät unterstützt Modbus TCP als Gateway zu CANOpen nach CiA 309. Dazu wird der Funktionscode 43 benötigt.

Es wird also nicht ausreichen einfach einen Modbus-Kanal zu konfigurieren, da der geforderte Funktionscode nicht unterstützt wird. Besteht die Möglichkeit über den Funktionsbaustein ‘ModbusRequest’ aus der Bibliothek IoDrvModbusTCP eine funktionierende Kommunikation aufzubauen?
Was mich daran zweifeln lässt, ist dass in dem zu übergebenden Struct 'ModbusCommand' eine ENUM-Variable 'MBFunctionCode' enthalten ist, in der man auch keine 43 findet. Ergibt es Sinn an der Stelle UINT := 43 vorzugeben? Ich versuche das derzeit so zu lösen, aber bislang konnte ich das Projekt noch nicht erfolgreich übersetzen. Wenn das allerdings keinen Erfolg haben kann, sollte ich meine Zeit darin stecken wie man die Schreib- und Lesetelegramme "manuell" implementiert.

Hat jemand bereits Erfahrungen gemacht mit dieser Art von Modbus TCP in CODESYS? Ich würde mich sehr über Antworten freuen, da ich zu diesem Thema nicht viel finden konnte.

Viele Grüße!