User manual
IEC61131 User and Reference Manual 
April 22, 2008     
140 
may also be assigned to a coil or status register. And a Boolean variable may be assigned to 
an input or holding register, instead of a status or coil register. 
When variable types Real, Integer, Timers, Messages or Boolean are assigned to a coil or 
status register each variable requires only one unique Modbus address, the assigned 
Network Address. 
When variable types Real, Integer and Timers are assigned to an input or holding register, 
each variable requires two unique addresses, the assigned Network Address and Network 
Address + 1. 
When Boolean variables are assigned to input or holding registers, each variable requires 
only one unique address, the assigned Network Address. 
When Messages variables are assigned to input or holding registers, each variable requires 
enough registers for each byte in the declared message length, one Network Address for 
every two bytes of the message. The number of registers needed is (the declared size + 2 
length bytes +1)/2. 
Modbus Address Search Order 
When a Modbus protocol accesses a Modbus register in the controller, the register address 
is searched for under these three categories in the order listed below until the address is 
found. 
Search 
Order 
Category 
Address Range 
Available 
Search Algorithm 
1 
ISaGRAF 
Dictionary 
00001 to 09999 
10001 to 19999 
30001 to 39999 
40001 to 49999 
If the address is not assigned to a 
variable in the ISaGRAF 
Dictionary, then search next 
category. 
2 
C/C++ 
Application 
Database 
Handler 
00001 to 09999 
10001 to 19999 
30001 to 39999 
40001 to 49999 
If the address is not assigned to a 
register in a database handler (by 
a C/C++ application, e.g. Flow 
Computer), then search next 
category. 
3 
Permanent 
Non-Volatile 
Modbus 
Registers 
00001 to 00128 
40001 to 40200 
SCADAPack 32: 
00001 to 00512 
40001 to 42000 
If the address is not in the range 
of Permanent Non-volatile 
Modbus Registers, then a Modbus 
Exception response may be 
returned. 
The setResp function is used to 
control the exception response.  
If the address is not found in the ISaGRAF dictionary or the C/C++ Application Database 
Handler, a Modbus Exception response may be returned. The user can configure the 
setResp function to do one of the following. 
  An exception is sent when an unavailable register is read or written. 
  A zero is returned when an unavailable register is read and writing an unavailable 
register has no effect. 
An address is not found when it has not been defined under one of the listed categories. 
If the address is defined in more than one category, the first occurrence of the address in the 
order listed is used. 










