TITLE: MODBUS/J-BUS Protocol for SSi’s - AC20 ENG. 824E
Rev.DateDescriptionWrittenVerifiedApprovedProt.
004/30/98First Issue
112/9/98
See shaded areas
98/144
MODBUS/J-BUS PROTOCOL FOR
SSi’s - AC20
All the information contained within this document are Company’s
confidential. Their content therefore cannot be divulged and/or
reproduced.
Page 2/59
TITLE: MODBUS/J-BUS Protocol for SSi’s- AC20 ENG. 824E REV. 1
MODBUS/J-BUS PROTOCOL FOR
SSi’s - AC20
This document complies with ENG824E, Rev. 1 dated December 9, 1998.
The first page of this document is for R&D use only.
Headquarters:Factory:
Super Systems Inc
4250 Creek Road
Cincinnati, OH 45241
513-772-0060
www.supersystems.com
Page 3/59
TITLE: MODBUS/J-BUS Protocol for SSi’s- AC20 ENG. 824E REV. 1
INDEX
IntroductionPage 4
Function code 1 and 2: Bits reading Page 6
Function code 3 and 4: Words readingPage 7
Function code 5: Single bit writingPage 8
Function code 6: Single word writingPage 9
Function code 15: Multiple bits writing Page 10
Function code 16: Multiple words writing Page 11
NotesPage 12
Error replyPage 15
Words for device in control mode - ParametersPage 18
Words for device in control mode - Non parametersPage 26
Bits for device in control modePage 31
Words for device in configuration mode - ParametersPage 37
Words for device in configuration mode - Non parametersPage 45
Words for device in security code modePage 46
Index, divided in families and groups, of Modbus wordsPage 48
Index of Modbus bitsPage 53
Index, in ascending order, of Modbus wordsPage 54
Index, in ascending order, of Modbus bitsPage 58
Additional and specialized technical notesPage 59
Page 4/59
TITLE: MODBUS/J-BUS Protocol for SSi’s- AC20 ENG. 824E REV. 1
INTRODUCTION
This half duplex protocol accepts one master and one or more slaves.
The physical interface should be of the RS-485 type.
A single multidrop link can take up to 128 devices having the same “High input impedance”
as the transceiver used..
The computer should be programmed to serve as a master controlling which slave has
access to the link. All other slaves are in waiting state. Each slave has a unique address
ranging from 1 to 255.
Address “0” is a broadcast one. When the master sends a message with address 0, all
slaves receive it and no one replies.
TRANSMISSION FORMAT
The protocol uses the RTU (Remote terminal unit) mode of transmission.
RTU is a binary method with byte format composed as follows:
1 start bit, 8 data bit, 1 parity bit (optional), 1 stop bit.
The communication speed is selectable among 600, 1200, 2400, 4800, 9600 and 19200
baud.
COMMUNICATION PROCEDURE
The communication can be initiated only by the master unit; the slave units can transmit
only after a query has been received from the master.
The general format for the transmission from master to slave is the following:
The slave detects the start of a query frame when the delay time between two characters
is greater than 3.5 T.U. (Time Unit = Time necessary to transmit one character).
ERROR CHECK(CRC-16Cyclical Redundancy Check)
The CRC-16 value is calculated by the transmitting device. This value is appended to the
message. The receiving device recalculates a CRC-16 and compares the calculated value
to the received value. The two values must be equal.
Page 5/59
TITLE: MODBUS/J-BUS Protocol for SSi’s- AC20 ENG. 824E REV. 1
The CRC-16 is started by first pre-loading a 16-bit register to all 1's. Then a process begins
of applying successive the bytes of the message to the current contents of the register.
Only the eight bits of data in each character are used for generating the CRC-16. Start and
stop bits, and the parity bit if one is used, do not apply to the CRC-16.
During generation of the CRC-16, each byte is exclusive ORed with the register contents.
Then the result is shifted to the right , with a zero filled into the most significant bit (MSB)
position. If the LSB was a 1, the register is then exclusive ORed with a preset, fixed value.
If the LSB was a 0, no exclusive OR takes place.
This process is repeated until eight shifts have been performed. After the last shift, the
next byte is exclusive ORed with the register's current value, and the process repeats for
eight more shifts as described above. The final contents of the register, after all the
characters of the message have been applied, is the CRC-16 value.
A procedure for generating a CRC-16 is:
1) Load a 16-bit register (CRC-16 register) with FFFFh (all 1's).
2) Exclusive OR the first byte of the message with the low byte of the CRC-16
register. Put the result in the CRC-16 register.
3) Shift the CRC-16 register one bit to the right (toward the LSB), zero-filling the
MSB. Extract and examine the LSB.
4) (If the LSB was 0): Repeat Step 3 (another shift).
(If the LSB was 1): Exclusive OR the CRC-16 register with the polynomial
value A001h (1010 0000 0000 0001b).
5) Repeat Steps 3 and 4 until 8 shifts have been performed. When this is done,
a complete byte will have been processed.
6) Repeat Steps 2 through 5 for the next byte of the message.
Continue doing this until all bytes have been processed.
7) The final contents of the CRC-16 register is the CRC-16 value.
When the CRC-16 (16 bytes) is transmitted in the message, the low byte
will be transmitted first, followed by the high byte
N.B. : the numerical value present in this text are expressed as:
binary value if they are followed by b
decimal value if they are not followed by any letter
hexadecimal value if they are followed by h
Page 6/59
TITLE: MODBUS/J-BUS Protocol for SSi’s- AC20 ENG. 824E REV. 1
Function code 1 and 2: Bits reading
These function codes are used by the master unit to request the value of a consecutive
group of bits (max 24) which are representing the status of the slave unit.
Request from master to slaveReply from slave to master
RangeByteRangeByte
Slave address (1-255)1Slave address (1-255)1
Function code (01-02)1Function code (01-02)1
Bit starting address (high byte)1Byte count (n)1
Bit starting address (low byte)1Datan
Number of bits (high byte)1Error check (CRC-16) (low byte)1
Number of bits (low byte)1Error check (CRC-16) (high byte)1
Error check (CRC-16) (low byte)1
Error check (CRC-16) (high byte)1
The “Data” field indicates the bits requested: the bit with lower address is in the bit 0 of the
first byte, the next is in the bit 1, and so on.
The eventual don’t care bits necessary to complete the last byte are equal to 0.
Example:
Ask to slave at address 100 (64h) the status of 14 (Eh) bits starting from bit 201 (C9h).
Request from master to slaveReply from slave to master
RangeByteRangeByte
Slave address64hSlave address64h
Function code01hFunction code01h
Bit starting address (high byte)00hByte count02h
Bit starting address (low byte)C9hDataA7h
Number of bits (high byte)00hData04h
Number of bits (low byte)0EhError check (CRC-16) (low byte)8Eh
Error check (CRC-16) (low byte)64hError check (CRC-16) (high byte)07h
Error check (CRC-16) (high byte)05h
The 2 bytes in “Data“ field (A7h=10100111b, 04h=00000100b) mean:
bit 201 status = 1bit 209 status = 0
bit 202 status = 1 bit 210 status = 0
bit 203 status = 1bit 211 status = 1
bit 204 status = 0bit 212 status = 0
bit 205 status = 0bit 213 status = 0
bit 206 status = 1bit 214 status = 0
bit 207 status = 0Don’t care= 0
bit 208 status = 1Don’t care= 0
Page 7/59
TITLE: MODBUS/J-BUS Protocol for SSi’s- AC20 ENG. 824E REV. 1
Function code 3 and 4: Words reading
These function codes are used by the master unit to read a consecutive group of words
(16 bit) which contain the value of the variable of the slave unit.
The master can require a maximum of 20 words at a time.
Request from master to slaveReply from slave to master
RangeByteRangeByte
Slave address (1-255)1Slave address (1-255)1
Function code (03-04)1Function code (03-04)1
Word starting address (high
1Byte count (n)1
byte)
Word starting address (low byte)1Datan
Number of word (high byte)1Error check (CRC-16) (low byte)1
Number of word (low byte)1Error check (CRC-16) (high byte)1
Error check (CRC-16) (low byte)1
Error check (CRC-16) (high byte)1
The “Data” field contains the requested words in the following format: high bytes of the first
word, low byte of the first word, high byte of the second word, and so on.
The “data” field contains 8000h for not implemented addresses or for information not
relevant in the actual device configuration.
Example:
Ask to slave at address 29 (1Dh) the value of 3 words (3h) starting from word 178 (B2h)
Request from master to slaveReply from slave to master
RangeByteRangeByte
Slave address1DhSlave address1Dh
Function code03hFunction code03h
Word starting address (high byte)00hByte count06h
Word starting address (low byte)B2hDataFFh
Number of words (high byte)00hData9Ch
Number of words (low byte)03hData80h
Error check (CRC-16) (low byte)A7hData00h
Error check (CRC-16) (high byte)B0hData05h
* To use the address 0, see note 1 at page 12: “Broadcast address”.
The 8000h value, present in the “data” field, should be considered as a don’t care value,
that is, the value present in the device at this address will not be modified.
Example:
Set word 2006 (7D6h) of slave at address 5 (5h) with value 1250 (4E2h)
Command from master to slaveReply from slave to master
TITLE: MODBUS/J-BUS Protocol for SSi’s- AC20 ENG. 824E REV. 1
Function code 15: Multiple bits writing
This function code is used by master unit to set/reset a consecutive group of bits (max 24).
Command from master to slaveReply from slave to master
RangeByteRangeByte
Slave address (0*-255)1Slave address (1-255)1
Function code (15)1Function code (15)1
Bit starting address (high byte)1Bit starting address (high byte)1
Bit starting address (low byte)1Bit starting address (low byte)1
Number of bits (high byte)1Number of bits (high byte)1
Number of bits (low byte)1Number of bits (low byte)1
Byte counter (n)1Error check (CRC-16) (low byte)1
DatanError check (CRC-16) (high byte)1
Error check (CRC-16) (low byte)1
Error check (CRC-16) (high byte)1
* To use the address 0, see note 1 at page 12: “Broadcast address”.
The desired status of each bit is packed in the DATA field (1 = ON, 0 = OFF).
The status imposed for read only bits will be ignored.
The command will be processed starting from the first bit and it will be executed or not
executed depending on the actual device status.
At the first error found, the command will be aborted and the slave will answer with an
error.
Example:
Send to slave, at address 2 (2h), the following set of 9 bits:
bit 224 status = 0(bit 0)bit 232 status = 1(bit 0)
bit 225 status = 1 (bit 1)Don’t care = 0(bit 1)
bit 226 status = 1(bit 2)Don’t care= 0(bit 2)
bit 227 status = 0(bit 3)Don’t care = 0(bit 3)
bit 228 status = 1(bit 4)Don’t care = 0(bit 4)
bit 229 status = 0(bit 5)Don’t care = 0(bit 5)
bit 230 status = 1(bit 6)Don’t care = 0(bit 6)
bit 231 status = 1(bit 7)Don’t care = 0(bit 7)
NOTE: 2 bytes with 9 bits and 7 don’t care bits must be sent
Command from master to slaveReply from slave to master
RangeByteRangeByte
Slave address02hSlave address02h
Function code0FhFunction code0Fh
Bit starting address (high byte)00hBit starting address (high byte)00h
Bit starting address (low byte)E0hBit starting address (low byte)E0h
Number of bits (high byte)00hNumber of bits (high byte)00h
Number of bits (low byte)09hNumber of bits (low byte)09h
Byte counter02hError check (CRC-16) (low byte)94h
DataD6hError check (CRC-16) (high byte)08h
Data01h
Error check (CRC-16) (low byte)78h
Error check (CRC-16) (high byte)4Ch
Page 11/59
TITLE: MODBUS/J-BUS Protocol for SSi’s- AC20 ENG. 824E REV. 1
Function code 16: Multiple words writing
This function code is used by the master unit to write a consecutive group of words .
The master unit can change a maximum of 20 words at a time.
Command from master to slaveReply from slave to master
RangeByteRangeByte
Slave address (0*-255)1Slave address (1-255)1
Function code (16)1Function code (16)1
Word starting address (high
1Word starting address (high byte)1
byte)
Word starting address (low byte)1Word starting address (low byte)1
Number of words (high byte)1Number of words (high byte)1
Number of words (low byte)1Number of words (low byte)1
Byte counter (n)1Error check (CRC-16) (low byte)1
DatanError check (CRC-16) (high byte)1
Error check (CRC-16) (low byte)1
Error check (CRC-16) (high byte)1
* To use the address 0, see note 1 at page 12: “Broadcast address”.
The data imposed for read only words will be ignored.
The command will be processed starting from the first word and it will be executed or not
executed depending on the actual device status.
At the first error found, the command will be aborted and the slave will answer with an
error.
The 8000h value, present in the “data” field, should be considered as a don’t care value,
this is, the value present in the device at this address will not be modified.
Example:
Set words 139 (8Bh), 140 (8Ch), 141 (8Dh) of slave at address 10 (Ah) with 300 (12Ch),
don’t care (8000h) and 700 (2BCh) values.
Command from master to slaveReply from slave to master
RangeByteRangeByte
Slave address0AhSlave address0Ah
Function code10hFunction code10h
Word starting address(high byte)00hWord starting address (high byte)00h
Word starting address (low byte)8BhWord starting address (low byte)8Bh
Number of words (high byte)00hNumber of words (high byte)00h
Number of words (low byte)03hNumber of words (low byte)03h
Byte counter06hError check (CRC-16) (low byte)F1h
Data01hError check (CRC-16) (high byte)59h
Data2Ch
Data80h
Data00h
Data02h
DataBCh
Error check (CRC-16) (low byte)33h
Error check (CRC-16) (high byte)00h
Page 12/59
TITLE: MODBUS/J-BUS Protocol for SSi’s- AC20 ENG. 824E REV. 1
NOTES:
1. “Broadcast” address
When using the writing codes (5, 6, 15 and 16) the slave address 0 is permitted: in this
case all the slaves connected accept the command but do not give any reply.
2. Words format
Every time the information transfer is performed by using 2 bytes (1 word of 16 bits), the
first byte transmitted is the most significant one. For the negative numbers the “two
complement” format is used.
3. Reply time
The slave will start to send a reply from 2 ms to 250 ms after the end of the request
detected by counting the received bytes
4. Decimal digits
The decimal point that may be present in the value is ignored.Example:
The value 204.6 is transmitted as 2046 (07FEh)The value -12.50 is transmitted as -1250 (FB1Eh)
5. Local/remote status
At power up, the slave will be in local mode if it was in control mode at power off. In the
other cases, it will maintain the condition it was at the power off.
In order to enable a slave to be controlled from the master, it is necessary to set the
local/remote status bit (ModBus bit 218).
For a slave to remain in remote status, it is sufficient to detect line activity.
If there is no line activity for more than 3 sec. every slave will automatically return to
local mode.
Local mode:the communication between master and slave is limited to
transferring data from slave to master without possibility of modifying
any parameter from the master itself (with the exception of the
local/remote status bit). Therefore from the local keyboard,
parameters can be displayed and modified.
Remote mode:the instrument parameters can be modified by the master. Therefore,
from the local keyboard the parameters can be only displayed but not
modified.
Page 13/59
TITLE: MODBUS/J-BUS Protocol for SSi’s- AC20 ENG. 824E REV. 1
6. Control mode
“Control mode” indicates the normal functioning status of the device
(indicator/controller).
In control mode they are parameters (menu groups), variables and status.
The parameters (Menu groups) are represented by words only.
Bits and words represent the variables and the status.
Reading:
The parameters (menu groups) are available only if they are meaningful in the present
contest.
The variables and the status are available only if the device is in control mode and if
they are meaningful in the present contest
Writing:
All the addresses are available only if the device is in control mode, in remote mode, in
unlock condition (see note 9) and if they are meaningful in the present contest
7. Configuration mode
The configuration parameters (Menu conf.) are represented by words only.
They are available as read only if they are meaningful in the present contest
They are available as writing only if the device is in configuration mode, and they are
meaningful in the present contest
At the end of the parameters programming of a configuration menu it is opportune to
send the “end of configuration menu” command (ModBus words 3000 ÷ 3005). The
congruence of the programmed data compared with the data of the other configuration
menus is checked. In case of non compatibility, the reply will include a 1xx error
message where xx represents the number of the menus whose closure has caused the
error.
The end of the group programming is anyway automatically sent if data of a different
menu are programmed or read and if the output of the configuration mode is imposed.
To modify the configuration parameters via serial link, it is necessary to set the slave in
remote (ModBus bit 218). Then, set the slave in configuration mode (send the safety
lock combination value for configuration mode to ModBus word 347 *).
The display will show:
SEr
COnF
To return in control mode condition, send 1 to Modbus word 3051. The slave will reset
and restart in control mode condition.
Page 14/59
TITLE: MODBUS/J-BUS Protocol for SSi’s- AC20 ENG. 824E REV. 1
8. Security code mode
The security code parameters are represented by words only.
They are always available as read.
They are available as writing only if the device is in security code mode.
To modify the security code parameters via serial link, it is necessary to set the slave in
remote (ModBus bit 218). Then, set the slave in security code mode (send the safety
lock combination value for configuration mode to ModBus word 348 *).
The display will show:
Scrt
COnF
To return in control mode condition, send 1 to ModBus word 3051. The slave will reset
and restart in control mode condition.
* If the value of safety lock combination for configuration mode is 0, all values will be
accepted. If the value is 1, no value will be accepted.
The safety lock combination is the value set at ModBus word 4000.
9. Software key for lock/unlock
Software keys can protect the modification of the parameters.
There is a key to protect the access to configuration mode and security code mode.
There is a second key to protect the modification of control mode parameters.
Once the control mode key is programmed, it is possible to decide which menus will be
protected and which menus will not be protected.
Keys management via serial link
Set the slave in remote (ModBus bit 218).
Set the slave in security code mode (send the present safety lock combination value for
configuration mode at ModBus word 348).
Set the new safety lock combination value for configuration mode at ModBus word
4000.
Set the new safety lock combination value for control mode at ModBus word 4001.
To protect control mode menus with the key, write 1 (key protected) in Modbus words
4002÷4011. Write 0 (free) if no key protection is needed.
Page 15/59
TITLE: MODBUS/J-BUS Protocol for SSi’s- AC20 ENG. 824E REV. 1
N.B.:
Safety lock combination = 0:No security code (all parameters can always be
modified)
If safety lock combination is for control mode, ModBus
word 4002÷4011 are forced to 0.
Safety lock combination = 1: No security code (all parameters cannot be modified).
If safety lock combination is for control mode, ModBus
word 4002÷4011 are forced to 1.
Safety lock combination=2÷250: Security code for parameter protection.
In order to remove the protection for the control mode
parameters, it is necessary to write the safety lock
combination value for control mode at ModBus word
349. It is sufficient to do this once only.
In order to protect the control mode parameters, it is
necessary to write a value different from the safety
lock combination value for control mode at ModBus
word 349.
In order to modify the configuration parameters, it is
necessary to set the configuration mode by writing the
safety lock combination value for configuration mode
at ModBus word 347.
In order to modify the security code parameters, it is
necessary to set security code mode by writing the
safety lock combination value for configuration mode
at ModBus word 348.
ERROR REPLY
If the “error check” is wrong or the function code is not implemented or a buffer over flows
has been received, the slave does not send any reply to the master.
If other errors are detected in the request or command frame, or the slave cannot reply
with the requested values or it cannot accept the requested sets because it is in error
condition, the slave replies by forcing at “1” the bit 7 of the “Function code” byte followed
by an error code.
Error reply (from slave to master)
RANGEBYTE
Slave address1
Function code (+80h)1
Error code1
Error check (CRC-16)2
Page 16/59
TITLE: MODBUS/J-BUS Protocol for SSi’s- AC20 ENG. 824E REV. 1
List of error codes
ERROR Nr.DESCRIPTION
2Illegal data address
3Illegal data value
9Illegal number of data required
10The bit or word indicated cannot be modified
50The procedure cannot be initiated because another procedure is in pro-
gress
51The procedure cannot be initiated because the first part of SMART
algorithm (TUNE) is in progress
52The procedure cannot be initiated because it is not elapsed 5 minutes
from power on or from end of another procedure
53The procedure cannot be initiated because the probe temperature is less
than 1000°F/538°
54The procedure cannot be initiated because the probe output is less than
1000 mV
55The procedure cannot be initiated because the probe output is unstable
(drift > 10 mV/minute)
101Error on configuration group 1
102Error on configuration group 2
103Error on configuration group 3
104Error on configuration group 4
105Error on configuration group 5
106Error on configuration group 6
151Error on control mode group 1
152Error on control mode group 2
153Error on control mode group 3
154Error on control mode group 4
155Error on control mode group 5
156Error on control mode group 6
157Error on control mode group 7
158Error on control mode group 8
159Error on control mode group 9
160Error on control mode group Hidden
200
201
202
Error on main probe input calibration (0÷1.5 V)
Error on main probe input calibration (1÷1.3 V)
Error on TC input calibration (0÷60 mV)
203Error on CJ calibration
204
205
206
207
208
Error on auxiliary input current (0÷20 mA) calibration
Error on auxiliary input voltage (0÷5 V) calibration
Error on auxiliary input voltage (0÷10 V) calibration
Error on Out 6 (0÷20 mA output) calibration
Error on Out 7 (0÷20 mA output) calibration
Page 17/59
TITLE: MODBUS/J-BUS Protocol for SSi’s- AC20 ENG. 824E REV. 1
On configuration error condition (101÷106), the device will replace the error message with
the requested value in the following cases:
• request of configuration mode menu addresses
• request of control mode menu addresses
• request of security code mode addresses
It will accept the following sets:
• set in remote (ModBus bit 218)
• set in configuration mode (ModBus word 347)
• set in security code mode (ModBus word 348)
• set of all of configuration addresses
• set of all of security code mode addresses
On control mode error condition (151÷160), the device will replace the error message with
the requested value in the following cases:
• request of configuration mode menu addresses
• request of control mode menu addresses
• request of security code mode addresses
It will accept the following sets:
• set in remote (ModBus bit 218)
• set in configuration mode (ModBus word 347)
• set in security code mode (ModBus word 348)
• set of all of configuration addresses
• set of all of control mode menu addresses
• load of control mode default parameters (ModBus bits 223÷232)
• set of all of security code mode addresses
On calibration error condition (200÷208), the device will replace the error message with the
requested value in the following cases:
• request of configuration mode menu addresses
• request of control mode menu addresses
• request of security code mode menu addresses
It will accept the following sets:
• set in remote (ModBus bit 218)
• set in configuration mode (ModBus word 347)
• set in security code mode (ModBus word 348)
• set of all of configuration mode addresses
• set of all of security code mode addresses
If a configuration or control mode or calibration error occurs at start up and no action is
taken, the device will reset after a 30 second time-out.
In configuration mode, the time-out will be disable.
Page 18/59
TITLE: MODBUS/J-BUS Protocol for SSi’s- AC20 ENG. 824E REV. 1
WORDS FOR DEVICE IN CONTROL MODE - PARAMETERS
“St.Pn” - Menu group 1 - SET POINT VALUES
ADDRESS
(decimal)DEC.DisplayR
DESCRIPTIONFIGU-
JBusMod
Bus
139138Main set point
140139Auxiliary set point 2
141140Auxiliary set point 3
142141Auxiliary set point 4
RES
See Mbus
Word 300
See Mbus
Word 300
See Mbus
Word 300
See Mbus
Word 300
See Mbus
Word 300
See Mbus
Word 300
See Mbus
Word 300
See Mbus
Word 300
See Mbus
Word 300
See Mbus
Word 300
See Mbus
Word 300
See Mbus
Word 300
See Mbus
Word 300
See Mbus
Word 300
See Mbus
Word 300
See Mbus
Word 300
TITLE: MODBUS/J-BUS Protocol for SSi’s- AC20 ENG. 824E REV. 1
WORDS FOR DEVICE IN CONTROL MODE - PARAMETERS
“Cntr” - Menu group 4 - CONTROL PARAMETERS
ADDRESS
(decimal)DEC.DisplayRWR
JBusMod
Bus
DESCRIPTIONFIGU-
RES
MNEM
CODE
E
A
D
149148Proportional band1(“Pb”)xx
150149Hysteresis for on/off control mode1(“HYS”)xx
151150Integral time (in seconds)
Note:
The value 7FFFh means that the integral
action is excluded
0(“ti”)xx
152151Derivative time (in seconds)0(“td”)xx
153152Integral pre-load1(“IP”)xx
154153Relative secondary output gain2(“r.Gn”)xx
155154Dead band/overlap between main/secon-
0(“OLAP”)xx
dary output
I
T
E
Loading...
+ 43 hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.