This manual contains information about Modbus protocol in the iSMA-B-AAC20 controller. The iSMA-B-AAC20 controller supports the following types of Modbus protocol:
- Modbus RTU/ASCII;
- Modbus TCP;
- Modbus TCP slave.
|1.7||17 Apr 2023||Added description of the iSMA Room Devices Modbus kit|
|1.6||28 Feb 2022|
|1.5||27 Jan 2020|
|1.3||20 Apr 2017|
28 Aug 2015
The Modbus protocol defines a message structure and format used in communication transactions. The Modbus devices communicate using a master-slave method, in which only the master device can initiate a communications transaction. There can be only one master device on a Modbus network. All other devices must be Modbus slaves.
Before programming the Modbus kits, please check if the latest kit version is used. The latest kits are available in the AAC20 Software Bundle on iSMA CONTROLLI support website: ismacontrolli.com
A Modbus device holds transient (real-time) data and persistent (configuration) data in the addressable registers. Here, the term “registers” implies all addressable data, but this is a loose interpretation. Using a Modbus nomenclature, all accessible data in a Modbus slave is contained in the following four available groups of data flags and registers (including the Modbus master access that is possible):
- coil status: (or simply “coils”): single-bit flags that represent the status of digital (Boolean) outputs of the slave, that is, On/Off output status; the Modbus master can both read from and write to coils;
- input status: (or simply “inputs”): single-bit flags that represent the status of digital (Boolean) inputs of the slave, that is, On/Off output status; the Modbus master can read (only) inputs;
- input register: 16-bit registers that store data collected from the field by the Modbus slave; the Modbus master can read (only) input registers;
- holding register: 16-bit registers that store general-purpose data in the Modbus slave the Modbus master can both read from and write to input registers.
Modbus Data Addresses
The Modbus device is not required to contain all four groups of data. For example, a metering device may contain only holding registers. However, for each data group implemented, a specific addressing scheme is used. The requests for data (made to a device) must specify a data address (and range) of interest.
Modbus data in a device is addressed as follows:
- coils: addressed at 00000, 0nnnn decimal, or “0x” addresses;
- inputs: addressed at 10000, 1nnnn decimal, or “1x” addresses;
- input register: addressed at 30000, 3nnnn decimal, or “3x” addresses;
- holding registers: addressed at 40000, 4nnnn decimal, or “4x” addresses.
Note: The data addressing (at least in decimal and hex formats) is zero-based, where the first instance of a data item, for example, coil 1, is addressed as item number 0. As another example, holding register 108 is addressed as 107 decimal or 006B hex.