LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Modbus

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

0 Kudos
Message 1 of 2
(2,246 Views)

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.

 

 

 

0 Kudos
Message 2 of 2
(2,225 Views)