3-2
3
The 8099's communication path to the Modbus device is serial and requires
that the user set the 8099 and the Modbus device to the same serial settings.
Each Modbus device has its own address so that it can identify and respond to
serial packets sent to its address. Although the typical Temperature Chamber or
Process has only one Modbus Controller, the 8099 can drive multiple Modbus
devices on an RS-485 network. The 'C' command is used to select the desired
Modbus device. The 8099 remembers the Modbus device address until changed
by a subsequent 'C' command or the 8099 is powered off or reset.
Modbus devices are register based devices and they are controlled by writing
values to registers that control different functions i.e. temperature setpoint,
alarm settings etc. Data is taken from Modbus devices by reading registers
associated with those parameters i.e. temperature, humidity, etc. The 8099
can handle integer and floating point values. ICS has created a set of simple
Modbus commands for reading, writing and communicating with Modbus
devices. When one of these Modbus commands is sent to the 8099, the 8099
sends the appropriate Modbus RTU packet to the selected Modbus device.
Modbus commands should not be mixed or concatenated with IEEE-488.2 or
SCPI commands.
If the 8099's message packet is successfully received by the Modbus device, the
Modbus device will generate a response packet that either confirms receipt of
the message or that contains the requested data. The 8099 receives the response
packet and validates the packet. If the response packet is a valid response to
a read command, the returned data is held and will be transmitted to the cli-
ent the next time the 8099 is sent a device_read request If the message is an
acknowledgment message, there is no further action.
The 8099 expects to receive a response from the Modbus device within a preset
time period or it declares a timeout error. The timeout period is programmable
and is factory set to 300 milliseconds. It is better to set the timeout period to
a larger than needed value to avoid unnecessary timeout errors.
If the message was not a valid message, or was an exception message, or was
missing, then the 8099 sets the appropriate bit(s) in the Questionable Condi-
tion Register, puts a decimal value in the Modbus Error register and sets bit
6 in the ESR Register. Both registers are part of the 8099’s Status Reporting
Structure. See Figure 3-1. If the appropriate register enable bits are set true,
then the Service Request bit will be set and generate a
device_intr_srq
message
(SRQs). The
device_intr_srq
messages are sent to the Application over the
reverse Interrupt channel. The user can then serial poll or query the Status Byte
to determine the cause of the Service Request. Refer to Application Bulletin
AB80-4 for information on handling RPC Interrupts.