We have Danfoss VLT FC360. We want to fetch data on serial communication. The communication is established but we are still getting zero as a value in Modbus POLL Software. Not able to identify the issue.
Can the forum help on this?
There's the serial settings on the drive.
I see in the programming manual
page 70, there are a number of serial settings in the 8-3* Port settings
8-30 should be code 2 for Modbus RTU?
8-31 is the code for the drive Modbus slave node ID, which is ?
8-32 is the code for the drive's baud rate, which is ?
8-33 is the code for parity/stop bits, which is ?
8-35 is the minimum response delay, which is?
On page 10 it shows the RS-485 wiring terminals, 68 and 69 for the driver lines and 61 for the signal common
Note that the signal common is NOT directly connected to the chassis ground, it is a signal common.
The wiring diagram on page 10 shows a switch labeled S801 that switches in bias voltage and a termination resistor.
Note 4 confirms that, stating: 4) Switch S801 (bus terminal) can be used to enable termination on the RS-485 port (terminals 68 and 69)
I haven't a clue where switch S801 is located, but termination/bias should be enabled only if the drive is an end point on the RS-485 bus.
Page 70 references the Serial communication via RS-485 Interface section in the Design Guide.
The Modbus slave register table/map is on pages 70 and 71.
The drive is presumably in auto mode, not manual mode. Try reading coil #42 (decimal), which indexed to zero has hex address as 29h. In auto mode, the reply should be a value 1.
I'd suggest using a generic Modbus master on a Windows box to establish communication.
Here's Modscan's Comm setup in Modscan32
Here's a screen shot of what a poll to coil 42 (decimal) looks like. Without a drive on the other end, the response is a Time-Out.
Things to consider:
1. For a generic master on a Windows box, when using a USB/485 converter, which virtual COM port did the device install on? Check Windows control panel > Device Manager > Ports to find the virtual COM port. Wrong COM port, no RS-485 communications
2. Labeling of RS-485 driver lines varies from manufacturer to manufacturer. Wiring should be A to A, B to B, or (+) to (+), (-) to (-), but if comm can't be established, try swapping the driver lines on one end. Backwards connections do not damage the driver lines, but comm won't work.
3. A master might use decimal addressing which is one based (starts counting from one) or use zero based addressing. address/registers entered in hex are almost always zero based (but not always). So, there's the possibility of a one offset in addressing.
4. If termination is turned on (Switch S408) on a multidrop 485 network, comm will have problems.
5. Serial comm settings have to be IDENTICAL on both ends - both the drive and the master.
6. The drive has a slave node ID number. Are you querying/polling/addressing the correct slave ID from the master? Slaves are silent unless spoken to. Address a slave that doesn't exist and there'll never be a reply.