Hi, All. I’m running a PAC project in an Epic that involves moving a head back and forth using a Parker motor drive. The Epic communicates with the drive via RS485 Modbus RTU so I’ve imported the Modbus library into my project. The program continually reads and writes coils to the drive but when it needs to make a move it also writes holding registers (function 16, O22Modbus16PresetMultipleRegistersWithInt) that contain the parameters of the move (position, speed, etc.). If the write is successful, via the status parameter in the library, the program activates the move by turning on the appropriate coil. It then waits for the move to complete before loading the next move.
However, more often than not the status parameter is not ok. It’s a 4 which is described as “Slave Device Failure” in the library. Since it’s not ok, the program doesn’t activate the move. It does keep trying though and eventually the write does succeed and the move happens. The effect of this is that the head does move back and forth but sometimes there are pauses between moves anywhere from less than a second to 2 or 3 seconds.
Does anybody know what this error code refers to specifically? Is it an error in the protocol (bad checksum or some such) or is it specifically returned by the drive to say that the write failed for some reason?
Any help is appreciated. Thanks.