9. Address Space
The whole variables are addressable as word as well as bit; the user may choose the better way
according to the condition. Although common sense suggests managing analog variables as
words and boolean variables as bits, below is described the behavior to access analog variables
(example: alarm threshold) as bits and boolean variables (example: local/remote device status)
as words.
Reading analog variables as bits: if the variable is not relevant in the actual device
configuration (word value 8000h) or if the value is zero the bit is reset, otherwise the bit is
set.
Writing analog variables as bits: the reset bit means 0000h, the set bit means 0001h.
Reading boolean variables as words: a reset variable is reported as 0000h, a set one is
reported as 0001h.
Writing boolean variables as words: send 0000h to reset the variable, send a value
different from 0000h and 8000h to set the variable.
12.7 Error Codes
If the “error check” is wrong or the function code is not implemented or a buffer overflow 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.
12.7.1 Error Reply (from Slave to Master)
Range Byte
Slave address 1
Function code (+80h) 1
Error code 1
Error check (CRC-16) (low byte) 1
Error check (CRC-16) (high byte) 1
12.7.2 List of Error Codes
Error Number Description
2 Illegal data address
3 Illegal data value
9 Illegal number of data required
10 The bit or word indicated cannot be modified
80 Error on EEprom writing