Question about Modbus addressing

Hello everybody. I have a specification of a certain device, in which a set of Modbus input registers have addresses from e.g. 30100 to 30200. Does it mean that I have to put these address values directly to my request packet or I have to subtract 30000 and turn them to 100 - 200? I could not find any instruction of that kind in Modbus protocol specification. Regards and thanks Alex

Reply to
Alexander Baranov
Loading thread data ...

These addresses, although still valid are from past times. In the old MODBUS specification (MODBUS Over Serial Line FOR LEGACY APPLICATIONS ONLY) you will see that these are typically used for input registers (3X references). See p39 for this in the document PI_MBUS_300.pdf available at

formatting link

Regards, Christian

--
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \\\\\\ \\
email: wolti@sil.at      \ Friends don't let friends drink and su(1)
web: www.freemodbus.org  \               -- Kevin Harris
Reply to
Christian Walter

Probably the latter. Many control systems add an offset (such as 30000) to the actal address as a way to indicate which address space (which modbus command) is to be used to access the desired object. For example 30100 might be float point register address 100, while 20100 would be integer registers address 100, and 10100 would bit input bit number 100.

--
Grant Edwards                   grante             Yow! Hello...  IRON
                                  at               CURTAIN?  Send over a
                               visi.com            SAUSAGE PIZZA!  World War
                                                   III?  No thanks!
Reply to
Grant Edwards

Thank a lot!

Reply to
Alexander Baranov

Subtract 30001, since 30001 is the first input register with address 0 in the actual message.

Paul

Reply to
Paul Keinanen

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.