After a short delay (approx. 10ms), the CAL Controller will respond with a 7 byte reply. Assuming the
Setpoint to be 200 degrees this would be:
byte 0 :
byte 1 :
byte 2 :
byte 3 :
byte 4 :
byte 5 :
byte 6 :
These characters should be stored in a reply array, and the CRC computed (as above) over the first 5
characters and compared with bytes 5 and 6, the reply should be accepted only if they match. If there
are any errors in the transmitted message, the reply will be missing altogether or the reply will be an
error response. Either way, only accept the reply if the Function code is 03 and the CRC is correct.
The CALController stores the Setpoint internally in 10th degree units, so the value can be computed
as:
or, in a language other than C:
Reading the temperature
Exactly the same method is used as above, except replace byte 2 and 3 of the message with the
register address of the Temperature thus:
byte 2 :
byte 3 :
The temperature will be returned in bytes 3 and 4 of the reply, exactly as the example for Setpoint, and
this must also be divided by 10 to bring it to degrees. Note that the temperature is always returned in
Centigrade, so any Fahrenheit conversion must be made by the PC.
A typical message would be:
A typical reply would be:
which shows the temperature to be 00C4 hex, 196 decimal, which is 19.6 degrees centigrade.
COMMERCIAL IN CONFIDENCE
Slave address
Function code
Number of data bytes to follow
High byte of Setpoint value
Low byte of Setpoint value
Low byte of CRC value
High byte of CRC value
setpoint = ((reply[3] << 8) + reply[4]) / 10 ;
setpoint = ((reply[3] * 256) + reply[4]) / 10 ;
High byte of Temperature address
Low byte of Temperature address
[01][03][00][1C][00][01][45][CC]
[01][03][02][00][C4][B9][D7]
Page 16
xx
03 hex
02 hex
07 hex
D0 hex
?? hex
?? hex
00 hex
1C hex
Need help?
Do you have a question about the 3300 and is the answer not in the manual?
Questions and answers