10-15-2012 08:46 AM
Hi,
I do have a problem with Labview application, I managed to send Modbus messages to the Heat unit for changing the temperature setpoint and got the response back. This communication seems successful but the setpoint shown on the Heat display panel didn’t change.
Following is the capture of these messages, all in Hex:
Setpoint
Modbus Request - sent from application to Heat (application sends 70°C in floating-point format to Heat):
10 09 d1 00 02 04 42 8c 00 00
Modbus Response - received from Heat to application (Heat confirms two registers starting at address 0x09d1 has been accepted)
00 10 09 d1 00 02
Read-back
For the Read-back, Heat also responded to the Read request but the data is incorrect.
Modbus Request - sent from application to Heat (application sends Read request to read the process temperature starting at address 0x016a)
00 04 01 6a 00 02
Modbus Response - received from Heat to application (Heat responded with the data in the requested registers). The data is “00 3d 00 00” which is not a valid floating-point number.
00 04 04 00 3d 00 00
10-15-2012 10:11 AM - edited 10-15-2012 10:17 AM
According my Modbus parser:
Checksum on the poll (request) frame is invalid.
# This file was created by CAS Modbus RTU Parser version 1.00gD on Mon Oct 15 11:06:53 2012 # Please visit http://www.chipkin.com Frame Analysis (10 09 d1 00 02 04 42 8c 00 00) -------------- Error #0007 The checksum is invalid. Actual=0x0000 Required=0xbb3a The frame has errors but there may be sufficient information to analyse the message. . We do not support analysis of of some functions in this version of the application. Function code=9(dec)=0x9 No further analysis is possible. Frame Analysis (00 10 09 d1 00 02) -------------- Error #0007 The checksum is invalid. Actual=0x0002 Required=0xc7ed The frame has errors but there may be sufficient information to analyse the message. . Closer inspection of the frame indicates that it is not a Valid Modbus RTU Frame. There are too few bytes for this function code=16(dec)=0x10 No further analysis is possible.
And the for the read....
# This file was created by CAS Modbus RTU Parser version 1.00gD on Mon Oct 15 11:10:10 2012 # Please visit http://www.chipkin.com Frame Analysis (00 04 01 6a 00 02) -------------- Error #0007 The checksum is invalid. Actual=0x0002 Required=0xc05a The frame has errors but there may be sufficient information to analyse the message. . Closer inspection of the frame indicates that it is not a Valid Modbus RTU Frame. There are too few bytes for this function code=4(dec)=0x4 No further analysis is possible. Frame Analysis (00 04 04 00 3d 00 00) -------------- Error #0007 The checksum is invalid. Actual=0x0000 Required=0xa520 The frame has errors but there may be sufficient information to analyse the message. . Closer inspection of the frame indicates that it is not a Valid Modbus RTU Frame. The number of bytes supplied for anlysis do not match the number of bytes reported inside the message itself. Function code=4(dec)=0x4 Count of bytes provided for analysis=7 The message says there should be byte count=5 No further analysis is possible. Finis. -----------------------------------------------------
Edit:
What is the address of your Heat slave?
The CAS parser thinks your poll (write) request is for function code 9. There is no modbus function code nine. If you are attempting a function code 16 (write multiple holding registers) shouldn't the frame start like this...
## - Station Address
10 - Function code 16 (10 hex)
## - Message Data (function code specific)
Looks to me like you frame is not inserting the station address.