BusWorks
Model 903MB/902MB/901MB Network I/O Module User’s Manual Digital I/O
___________________________________________________________________________________________
- 14 -
The Reset Slave query simply sends the slave address,
function code, sub-function code, and data (data is ignored and
simply echoed back), with error check (CRC LRC). A Reset
Slave response is simply an echoed acknowledge that is returned
just before the reset is executed. Allow a few seconds following
reset to reinitiate communication with a module.
Reset Slave Example Query
Field Name
Example Value (Hex)
Slave Address
247 (F7)
Function Code
08 (08)
Sub-Function High Order Byte
0 (00)
Sub-Function Low Order Byte
1 (01)
Data Field High-Order Byte
0 (00)
Data Field Low Order Byte
0 (00)
Error Check (LRC or CRC)
--
Reset Slave Example Response (Sent Prior To Reset)
Field Name
Example Value (Hex)
Slave Address
247 (F7)
Function Code
08 (08)
Sub-Function High Order Byte
0 (00)
Sub-Function Low Order Byte
1 (01)
Data Field High-Order Byte
0 (00)
Data Field Low Order Byte
0 (00)
Error Check (LRC or CRC)
--
For Modbus software that does not support the Reset Slave
function, an alternate method of generating a module reset is
provided via a write to the Module Reset Register (See Reset
Module Register 40011 of Register Map).
Modbus Data Field
The data field of a message frame contains a multiple of 8
bits that provides the slave with any additional information the
slave requires to complete the action specified by the function
code. The data field typically includes register addresses, count
values, and written data. The data field can be nonexistent (zero
length) as not all messages require data.
If no error occurs, the data field of a response from a slave
will return the requested data. If an error occurs, the data field
returns an exception code (see Modbus Exceptions) that the
master application can use to determine the next action to take.
Supported Data Types
All I/O values are accessed via 16-bit Input Registers or 16-
bit Holding Registers (see Register Map). Input registers contain
information that is read-only. For example, the current input
value read from a channel, or the states of a group of digital
inputs. Holding registers contain read/write information that may
be configuration data or output data. For example, the high limit
value of an alarm function operating at an input, or an output
value for an output channel.
I/O values for 900MB models are represented by the
following simple data types for temperature, percentage, and
discrete on/off.
Summary Of Data Types Used By 900MB Modules
Data Types
Description
Count Value
A 16-bit signed integer value representing
an A/D count, a DAC count, or a time value
with a range of –32768 to +32767.
Percentage
A 16-bit signed integer value with resolution
of 0.005%/lsb.
±
20000 is used to represent
±
100%. For example, -100%, 0% and
+100% are represented by decimal values
–20000, 0, and 20000, respectively. The
full range is –163.84% (-32768 decimal) to
+163.835% (+32767 decimal).
Temperature
A 16-bit signed integer value with resolution
of 0.1
°
C/lsb. For example, a value of
12059 is equivalent to 1205.9
°
C, a value of
–187 equals –18.7
°
C. The maximum
possible temperature range is –3276.8
°
C to
+3276.7
°
C.
Discrete
A discrete value is generally indicated by a
single bit of a 16-bit word. The bit
number/position typically corresponds to
the discrete channel number for this model.
Unless otherwise defined for outputs, a 1
bit means the corresponding output is
closed or ON, a 0 bit means the output is
open or OFF. For inputs, a value of 1
means the input is in its high state (usually
>> 0V), while a value of 0 specifies the
input is in its low state (near 0V).
Modbus Error Checking Fields
Modbus networks employ two methods of error checking:
parity checking (even or odd parity, or none), and frame checking
(Cyclical Redundancy Check).
Parity Checking
A Modbus device can be configured for Even or Odd parity
checking, or for no parity checking, and this determines how the
parity bit of the data frame is set.
If even or odd parity checking is selected, the number of 1
bits in the data portion of each character frame is counted. Each
character in RTU mode contains 8 bits. The parity bit will then be
set to a 0 or a 1, to result in an even (Even parity), or odd (Odd
parity) total number of 1 bits. For example, if an RTU character
frame contains the following eight data bits: 1100 0011, then
since the total number of 1 bits is 4 (already an even number),
the frame’s parity bit will be 0 if even parity is selected. If odd
parity is used, then the parity bit will be set to 1, making the total
number of bits an odd number (five).
When a message is transmitted, the parity bit is calculated
and applied to the frame of each character transmitted. The
receiving device counts the quantity of 1 bits in the data portion of
the frame and sets an error flag if the count differs from that sent.
As such, parity checking can only detect an error if an odd
number of bits are picked up or dropped off from a character
frame during transmission. For example, if odd parity is
employed and two 1 bits are dropped from a character, the result
is still an odd count of 1 bits. Note that all devices on a Modbus
network must use the same parity. If no parity checking is
selected, then no parity bit is transmitted and no parity check is
made. An additional stop bit is transmitted to fill out the character
frame for the no parity selection.