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.





