Documentation

Data and Control Functions for all Modbus Protocol Flavours

This Modbus protocol library implements the most commonly used data functions as well as some control functions. The functions to perform PLC program download and other device specific functions are outside the scope of this library.

All Bit Access and 16 Bits Access Modbus Function Codes have been implemented. In addition the most frequently used Diagnostics Function Codes have been implemented. This rich function set enables a user to solve nearly every Modbus data transfer problem.

The following table lists the supported Modbus function codes:

Function Code

Current Terminology

Classic Terminology

Bit Access

1

Read Coils

Read Coil Status

2

Read Discrete Inputs

Read Input Status

5

Write Single Coil

Force Single Coil

15 (0F hex)

Write Multiple Coils

Force Multiple Coils

16 Bits Access

3

Read Multiple Registers

Read Holding Registers

4

Read Input Registers

Read Input Registers

6

Write Single Register

Preset Single Register

16 (10 Hex)

Write Multiple Registers

Preset Multiple Registers

22 (16 hex)

Mask Write Register

Mask Write 4X Register

23 (17 hex)

Read/Write Multiple Registers

Read/Write 4X Registers

Record Access

20 (14 hex)

Read File Record

Read General Reference

21 (15 hex)

Write File Record

Write General Reference

Diagnostics

7

Read Exception Status

Read Exception Status

8 subcode 00

Diagnostics - Return Query Data

Diagnostics - Return Query Data

8 subcode 01

Diagnostics - Restart Communications Option

Diagnostics - Restart Communications Option

43 (2B hex) subcode 14 (0E hex)

Read Device Identification

Vendor Specific

Advantech

Send/Receive ADAM 5000/6000 ASCII commands

When passing register numbers and discrete numbers to FieldTalk library functions you have to use the the Modbus register and discrete numbering scheme. See Register and Discrete Numbering Scheme. (Internally the functions will deduct 1 from the start register value before transmitting the value to the slave device.)

Using multiple instances of a MbusMaster... class enables concurrent protocol transfer on different communication channels (e.g. multiple TCP/IP sessions in separate threads or multiple COM ports in separate threads).