Termination on both ends - even on short (as in 30cm) cables?
Maybe the VFD and the adapter already have termination built-in 🤔
Wouldn't I also need VCC for a bias network? I only have A, B and GND.
The RS485 to USB adapter is just wired 1:1.
It's just A, B and GND and should be half duplex.
(Attachment Link)
If you have neither termination nor biasing, then idle state is high-impedance and picks up any random noise, even in good conditions. You rarely see a functional RS485 with no biasing nor termination at all. The receiver just sees random data all the time.
Maybe termination is internally available? RTFM or measure with a multimeter. An idle bus should read 50-60 ohms or so with the two terminations.
Termination may be enough to seemingly fix the issue as it brings the line impedance down by pulling the two lines semi strongly together. Whether it is enough then depends on the actual transceiver ICs used (their hysteresis levels) and amount of noise in the environment (i.e., might fail in presence of lot of noise). To make it more reliable even under normal conditions you then need to either add biasing or use special snowflake (biasing-free) transceivers on ALL nodes. Latter isn't usually possible as RS485 is meant for interconnecting existing devices with design not under your control. Even then, RS485 noise performance is an order of magnitude worse than often claimed.
No Vcc available? Can't bias then. Still need biasing as you usually do? Tough luck, it won't work at all or reliably. RS485 is a total disaster and utter failure, and you need to understand it and cope. It is sometimes said to be resilient in noisy conditions even with poor wiring, but in reality performance is total crap because of the biasing brainfart. Noise performance seems good on paper
during transmission but real protocols like Modbus completely depend on detecting start conditions during line idle, and
even with biasing the noise margin is an order of magnitude less than during transmit, some tens of mV. Without biasing, noise margin is negative i.e., if anything works at all, it's all due to luck.
CAN bus fixed all that crap in one go even though it uses very similar signalling by combining biasing and termination in two resistors per bus. And yes, if you try to run CAN with no termination at all, it will fail, too, and it has nothing to do with lacking
termination - it's due to lacking biasing (double duty of the resistors).
And RS485 by definition is half-duplex. 1:1 (A->A, B->B, GND->GND) wiring might be a problem because the USB adapter might use different A/B notation compared to the device. As I said, there are two conflicting definitions so only way is to test swapping A/B. The problem here is, if you
also test some other things, you need to repeat A/B swapping for each test case, i.e., run through all the combinations.
RS422 is fine because it's a single unidirectional link where transmitter can be kept active all the time so noise performance is excellent and no biasing is needed.
RS485 in industrial hardware environment is like Java or XML were in software world - a good job opportunity to keep field engineers who fix stuff that break employed.