I've been banging my head against this for a while, and none of the relatively similar threads here have helped.
My setup: A WattNode Modbus power meter hooked via 2-wire RS485 to a bidirectional RS-485 to RS-232 converter, plugged into a good serial adapter. LabVIEW 2014 with basic Modbus VIs, trying to read some registers from it. Action is a very simple Modbus RTU read request.
The problem: When a read request is made, the device flashes a green light indicating that it has received a properly-formed packet addressed to it, so the outgoing signals are working fine. The RS232 adapter flashes the Rx light in addition to the Tx one, so it is also seeing data coming back from the device. LabVIEW, however, always returns an error 56 (timeout), so it either doesn't see the data or isn't recognizing the packet.
Things I've tested: The software is known to work when using a National Instruments USB-RS485 adapter, so the basic protocol and method of requesting registers from the device already checked out okay. This particular device has been read using this exact software with an RS485 adapter, so the device is okay. The serial adapter worked fine previously with RS232 devices. Port settings (speed, stop bits, etc) appear to check out, and if I intentionally set them wrong the device flashes the LED red indicating malformed packets, so that appears to confirm that the settings (and request transmitted) are correct.
When sending packets directed at another Modbus address, the device registers a correctly formed packet addressed to a different device (yellow flash of its status LED), and I do not see the Rx light on the RS232 adapter flash, indicating that I am seeing returned data, not just reflections or something.
Adding termination does not help, but the wire run is only about a foot. The RS485 converter is port-powered, but adding 5V external power (optional) did not help.
Because it's Modbus RTU, reading raw data from the port is a little harder, so I haven't been able to scan to see if the data coming back is correct or garbled.
After trying every variation of settings I can think of, the only things I can come up with are that the adapter is garbling the returned packets but not outgoing ones, that LabVIEW is not seeing the incoming packets at all due to some configuration error, or that what I'm doing just doesn't work due to duplex issues of some kind.
Anyone have any suggestions apart from getting a dedicated RS485 port instead of using an adapter?