Schneider ATV600 modbus communication

Hi, I want to read the modbus registers of a schneider drive. I can read the registers bij modbus scanner but when I put this adres in my Codesys I always get the error illegal adress.

Apparently there are only 32 registers available to read from an ATV by a PLC. Strangely enough you can read them by modbus scanner but not by a plc.

Hi, it is the typical +1 problematic with the addresses

Use offset 0#40FF instead of 0#4100.

See also in your modbus scanner: Address is shown as 16640 → 0#4100 but it is send (poll) as 0#40FF

Hi, already tried that but no luck. Register 0 to 32 works fine but everything beyond is a problem

Hi, the problem is solved. The only registers that are availlible for a PLC are 0 to 32. This can be set in the modbus TCP/protocol and drive profiles where you can choose the right values you want to capture. Second problem was that the values I want were not availlible. This was solved with a firmware update of the drive to 4.5.

The addressing depends on the unitID used.

Ref:

Page 27:

Adding the modbus TCP client under Ethernet and then adding a server will communicate with unitID=255 (0xFF), which gives you the IO-scanner in the VFD.

It has previously been possible to set a different UnitID in the codesys-interface, but this has been removed.

Changing here does not seem to stick when trying:

If you poll unitID 0/248, you can poll anything listed in this document:

Using a library like WagoAppPlcModbus by Wago or ModbusFB by Codesys should allow you to define the unitID as a parameter.