Applies To:
  • CitectSCADA 5.20

I would like to specify different initialization values for different Modbus devices in the Citect INI file. How can this be done? 

The Modbus (MODBUS), Modbus ASCII (MODBUSA) and Modbus Plus (MBPLUS) drivers now provide the capability to apply different initialization parameter values to specific IODevices or Groups of IO Devices. This feature is available via the Citect INI file for parameters: InitType, LongDataType, StringReverse, InitUnitAddress, FloatMode, SendBCDSwap and RegisterBitReverse.

The user may:

[a] specify Driver Level (Global)parameters which apply to all devices.

[b] specify Channel (port) Level parameters which apply to all devices on the port specified

[c] specify Group Level parameters which apply to all devices which are in the group specified.

[d] specify IODevice Level parameters which apply only to the specified device.

The Citect.ini section for the specified driver [MODBUS, MODBUSA or MBPLUS] now uses the Dot (period) to separate different scopes.

Driver Scope:

All the parameters under [Modbus] section apply to the driver scope (apply to all the ports and units)

Channel Scope:

All the parameters under [Modbus. <Port_Name>] section apply to the specified port and all the units connected to the port.

Group Scope:

All the parameters under [Modbus. <Group_Name>] section apply to all the Units in that Group specified by <Group_Name>. The user must identify each IODevice in the specified group by adding the group name to the address field on the IODevice form for the device. The <Group_Name> is placed in the Address field on the IODevice Form by adding a space and then the group name after the current station address syntax. Format: Device numeric address, then a space, then the Group Name.

IO Device Scope:

All the parameters under [Modbus. <Port_Name>. <IODevice_Name>] section apply to the specified Unit.


Specific parameters overwrite the general level parameters. Therefore Parameters in the IO Device Scope overwrite the Parameters in IO Device Group Scope; Parameters in the Group Scope overwrite parameters in Channel Scope; Parameters in Channel Scope overwrite parameters in Driver Scope for the specified device(s).


The following Citect INI file format is an example of how the 'InitType' parameter could be specified differently for different IODevices communicating using the MODBUS Protocol. Assume that two ports are used:

PORT1 and PORT2. Further assume that PORT1 has three IODevices attached, DEV1A, DEV1B and DEV1C; and PORT2 also have three devices DEV2A, DEV2B & DEV2C. Assume that the user has specified via the IO Device form for DEV1C and DEV2C that they belong to GROUPZ.

The Citect INI file contains the following entries:













The resultant InitType for the IO Devices will be as follows:

DEV1A: 1 as a result of [MODBUS.PORT1.DEV1A]
DEV1B: 2 as a result of [MODBUS.PORT1]
DEV1C: 3 as a result of [MODBUS.GROUPZ]
DEV2A: 2 as a result of [MODBUS.PORT2]
DEV2B: 4 as a result of [MODBUS.PORT2.DEV2B]
DEV2C: 3 as a result of [MODBUS.GROUPZ]