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.