11-20-2024 04:27 AM
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.
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
I would appreciate every help.
11-20-2024 04:58 AM
Why are you using the slave API? Usually the device being communicated is the slave and you use a Master to communicate with it.
11-21-2024 04:12 AM
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).
11-22-2024 04:10 AM
It was a first shot.
I was not sure if the Slave API is meant to communicate with a slave although knowing that my computer is the master.
I retried with the Master API and could at least send a command.
The device also sends an answer. But the computer does not get it: Error 56 occurred at RTU Data Unit.lvclass:Read ADU Packet.vi:5030001
11-22-2024 05:09 AM
I am aware of the mess with connecting devices to RS485. But the communication with another device not using Modbus RTU works fine. And I am also able to communicate with the Jo-Its if I use the app of the manufacturer.
Nevertheless I seem to have still hardware issues. If I connect the Joy-It directly tot the RS485 interface of the computer I can send commands but do not receive a reply. If I use an RS485 to USB converter everthing works fine.
But coming back to Labview. Is the CRC16 checksum automatically calculated by the Modbus VIs?
11-25-2024 02:52 AM
@Joachim.H wrote:But coming back to Labview. Is the CRC16 checksum automatically calculated by the Modbus VIs?
Yes.
11-25-2024 02:56 AM
@Joachim.H wrote:
I am aware of the mess with connecting devices to RS485. But the communication with another device not using Modbus RTU works fine. And I am also able to communicate with the Jo-Its if I use the app of the manufacturer.
Nevertheless I seem to have still hardware issues. If I connect the Joy-It directly tot the RS485 interface of the computer I can send commands but do not receive a reply. If I use an RS485 to USB converter everthing works fine.
How do you connect 'directly' to the computer?
Do you have a RS485 card in your computer?
11-25-2024 03:06 AM - edited 11-25-2024 03:07 AM
When i had to intreface RS485 devices, i was using a serial-to-usb adapter, and it turned out i had to select the RS485 mode from Windows' Device Manager!
Maybe you could take a look there.
Another thing is, i have seen many Modbus devices having 2 Stop bits, and not 1 as per default Serial Port settings.
Also, does your device have a factory program? In this case, you can sniff the serial commands flowing.
Good luck
11-25-2024 03:39 AM
Yes, I have configurable COM-ports.
11-25-2024 03:45 AM
My devices need 8N1.
Unfortunately I have no access to the source code of the manufacturer's software.