Modbus: Minimum Function Implementation

Q: What is the minimum subset of function that a Modbus salve device should implement?

A: It depend on if you are creating a commercially available slave device or your own slave device.

If you are creating a Modbus Slave device that will only be interrogate by a specific Modbus Master, then you only have to implement the functions that the Modbus Master will use to call on your Modbus Slave. If your master is interested only in reading coils then your slave could be limited to only supporting function 0×01.

If you are creating a commercially available Modbus Slave device there are 4 so called classes of function implementation.

  • Class I is the minimum useful set of functions, master and a slave should implement only read multiple registers (0×03) and write multiple registers (0×16).
  • Class II represents the additional functions which are commonly implemented: read coils (0×01), read input discretes (0×02) , read input registers (0×04), write coil (0×05), write single register (0×06), read exception status (0×07)
  • Class III are the data transfer functions needed for HMI and supervision: force multiple coils (0×15), read general reference (0×20), write general reference (0×21), mask write register (0×22), read/write registers (0×23), read FIFO queue (0×24)
  • Class IV are machine/network/vendor dependent functions: diagnostics (0×08), poll (0×10), get comm event counters (0×011), get comm event log (0×12), report slave ID (0×17), firmware replacement (0×125), report local address(0×127)

© Chipkin Automation Systems 2007

Did you like this post?

Subscribe To The RSS Feed!
To catch many more articles like this in the future, make it easy on yourself and subscribe to me via RSS. You will not regret it!

Do you have a question?
We will do our best to try and solve any building automation, protocol, integration problem you may have

0 Responses to “Modbus: Minimum Function Implementation”


  1. No Comments

Leave a Reply