Skip to content

MODBUS

MODBUS is one of the most widely used communication protocols in industrial automation. inSCADA supports multiple variants of the MODBUS protocol in both Client (Master) and Server (Slave) roles.

VariantClient / MasterServer / Slave
MODBUS TCP
MODBUS RTU over TCP
MODBUS UDP

Each MODBUS connection in inSCADA is defined in the following hierarchical structure:

Connection
└── Device (identified by Slave ID)
└── Frame (Register block)
└── Variable (Single register/bit address)

Common connection parameters for all MODBUS variants:

ParameterTypeDescription
IP / HostStringTarget device IP address or hostname
PortIntegerTarget port (default: 502)
TimeoutInteger (ms)Response wait time
Connect TimeoutInteger (ms)Connection establishment timeout
RetriesIntegerFailed request retry count
Pool SizeIntegerConnection pool size
Max Idle TimeoutInteger (ms)Idle connection timeout
Check CRCBooleanCRC validation check (for RTU)
Reconnect on ErrorBooleanAutomatic reconnection on error
ParameterTypeDescription
Station AddressInteger (1-247)MODBUS Slave address (Unit ID)
Scan TimeInteger (ms)Scan period
Scan TypeEnumPERIODIC or FIXED_DELAY
Retain FlagBooleanRetain last value
ParameterTypeDescription
TypeEnumRegister type (see below)
Start AddressIntegerStarting register address
QuantityIntegerNumber of registers to read
Inter Frame DelayInteger (ms)Delay between frames
Is ReadableBooleanRead permission
Is WritableBooleanWrite permission
Minutes OffsetIntegerTime offset (minutes)
Scan Time FactorIntegerScan multiplier
TypeFunction CodeReadWriteDescription
CoilFC01 / FC05 / FC15Digital output (1 bit)
Discrete InputFC02Digital input (1 bit, read-only)
Holding RegisterFC03 / FC06 / FC16Analog output (16 bit)
Input RegisterFC04Analog input (16 bit, read-only)
ParameterTypeDescription
Start AddressIntegerRegister address (offset within frame)
TypeEnumData type (see below)
Byte SwapBooleanByte order swap (Big/Little Endian)
Word SwapBooleanWord order swap (for 32-bit values)
Bit OffsetIntegerBit address (for Coil/Discrete)
LengthIntegerCharacter length for String type
Data TypeSizeDescription
Boolean1 bitSingle bit value
Byte8 bitSigned byte
Unsigned Byte8 bitUnsigned byte
Short16 bitSigned 16-bit integer
Unsigned Short16 bitUnsigned 16-bit integer
Integer32 bitSigned 32-bit integer
Unsigned Integer32 bitUnsigned 32-bit integer
Long64 bitSigned 64-bit integer
Float32 bitIEEE 754 floating point
Double64 bitIEEE 754 double precision
16 BIT BCD16 bitBinary Coded Decimal
32 BIT BCD32 bitBinary Coded Decimal
64 BIT BCD64 bitBinary Coded Decimal
StringVariableASCII character string

For variant-specific configuration details: