LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Modbus RTU over RS485 with CRC16

Hi everyone,

I try for the first time to communicate with a Joy-It DPS 5005 power supply with Modbus RTU.

But somehow I am missing something and fail. Therefore I would like to ask for your help.

The device requires the address code (1 byte), the function code (1 byte), the register starting address (2 bytes), the number of registers to read (2 bytes) and the CRC checksum (2 bytes)

The device address is 10. I want to read a holding register. So the function code should be 3. The register starting address is 0 and I want to read 2 bytes.

The CRC checksum of 0A 03 00 00 00 02 is C5 70.

My first trial was simply using Visa write and send the string 0A0300000002C570 followed by Visa Read. But I always got timeouts and no answer.

JoachimH_0-1732098410702.png

 

Then I thought of using the Modbus API library, created a Modbus instance as new serial slave and then used the Read Holding Registers VI. This didn't work, either. Is it because of the CRC checksum? I don't know how to send it

JoachimH_1-1732098449297.png

 

 

I would appreciate every help.

 

 

0 Kudos
Message 1 of 3
(86 Views)

Why are you using the slave API? Usually the device being communicated is the slave and you use a Master to communicate with it.

-------------------------------------------------------
Control Lead | Intelline Inc
0 Kudos
Message 2 of 3
(80 Views)

Have you in any way confirmed that the hardware is connected correctly?

 

Modbus connectors come in all sorts and sizes, and there's not really a standard wiring.

 

Some devices use Sub9 connectors, and Rx\Tx on 2\3, some use 5\8... You really have to read the manuals of both ends of the connection...

 

And I do agree that you should make a master, the device is a slave (answering to commands).

0 Kudos
Message 3 of 3
(24 Views)