Applies To:
  • CitectSCADA 4.xx, 5.xx

The Modbus Plus protocol supports devices known as terminal I/O. These devices are not PLCs in that they can't be programmed and are simply used by Modbus Plus PLCs and SCADA systems for remote control of sensors / actuators. Due to the fact that they are not full PLCs, they have inherent limitations which must be considered when configuring a Citect project which uses them. 

Modbus Plus terminal I/O modules such as the 170 BDI (16x input module) and 170 BDO (16x output module) contain only the following registers:
(16 bit words)
DATA REGISTERS (hex / dec.)
Data Input
(read only)
4001/400001 1
Data Input - latched
(read only)
40101/400257 1
Data Output
(write only)
4001/400001 1
Module Timeout
(read or write)
4F001/461441 1
Module Status
(read only)
4F801/463489 9
Module ASCII Header
(read only)
4FC01/464513 1..32

Device on-line check.

Using the default configuration, the Modbus Plus driver will attempt to read some discrete digital inputs in the range 10001 - 10017 to ascertain whether the unit is on-line. Unfortunately, these addresses don't exist for terminal I/O. To make the device on-line check work with TIO, the option InitType=3 should be added to the CITECT.INI file (in the [MODBUS] section) as described in the KB article Q1146.


Even though the TIO modules may have 16 physically discrete digital inputs or outputs, the units must actually be addressed as words. This is furthermore implied by the fact that the 400000 range of addresses is the only valid I/O range for these units. In order to address individual bits within these words, the addressing format 400001.X should be used, where X is the bit number in the word. In no case should the 100000 range of address be used to address digital inputs for TIO modules.