<< Click to Display Table of Contents >>
The Modbus Protocol |
The Modbus Protocol was initially developed by Modicon in 1979, and today it is an open standard, maintained by the Modbus Organization (modbus.org), and implemented by hundreds of manufacturers in thousands of devices. Schneider Electric, current controller of Modicon, transferred protocol rights to the Modbus Organization in April 2004, and committed to keep Modbus as an open protocol. Its specification can be downloaded for free at Organization's website, www.modbus.org, and protocol's usage is free of licensing fees.
This protocol is based on command and response messages, positioned at layer 7 of the OSI model, the application layer, which provides client and server communication among devices connected to different types of networks. It offers services with functions defined by an eight-bit code. The existing categories of function codes are the following:
•Public function codes: Protocol's well-defined functions, guaranteed to be unique, validated by the Modbus community, and publicly documented in MB IETF RFC. They can assume values ranging from 1 to 64, from 73 to 99, and from 111 to 127
•User-defined function codes: Non-standard functions, which do not need Modbus.org approval, without any guarantee of being unique, and freely implementable. They can assume values ranging from 65 to 72 and from 100 to 110
•Reserved function codes: Codes with values inside the range of public functions, currently used by some manufacturers for legacy products, and not publicly available anymore. Examples are 9, 10, 13, 14, 41, 42, 90, 91, 125, 126, and 127 codes. For more information, please check Annex A of protocol's specification, version 1.1b, which is available at protocol's official website
This Driver currently implements 11 of all 19 public functions defined on the current version of protocol's specification, 1.1b, as well as some specific manufacturer's functions or related to this Driver's specific features, known as Special Functions. All public functions implemented are described on topic Supported Functions. The following protocol's public functions are not yet supported:
•Function 08: Diagnostic
•Function 11: Get Com event counter
•Function 12: Get Com Event Log
•Function 17: Report Slave ID
•Function 22: Mask Write Register
•Function 23: Read/Write Multiple Registers
•Function 24: Read FIFO queue
•Function 43: Read Device Identification
If users want to implement one of these functions, please contact Elipse Software's sales department.