Handshaking and 7 vs. 8 data bits
Thad, I do applaud your willingness to crack, split, and otherwise dismantle equipment to find out how it works.
Two things jump out at me as being possible issues; DSR/DTR handshaking, and the number of Data Bits in your system settings.
By default, RS-232 Modbus Channel 1 on a Momentum CPU uses Modbus RTU protocol with 8 data bits, no parity, and one stop bit.
The protocol strings you posted are clearly Modbus ASCII protocol; the initial colon, the ASCII representation of the bytes, and the CR/LF conclusion frame are unmistakable. Modbus ASCII protocol uses 7 data bits, even parity, and one stop bit.
So I
assume that either your PLC programmer(s) changed the Momentum's channel configuration to Modbus ASCII, or you have a protocol conflict.
Your statement (and protocol trace) that the PC was able to communicate with the Momentum controller via the Modicon cable is the contradictory piece of that puzzle.
What was the software running on the PC when it communicated with the Momentum controller ? How did you trap those strings ?
The affirmative reply to a Function 05 command code in Modbus ASCII protocol is identical to the command request itself. Therefore a protocol trace that doesn't identify the direction of each string can't be conclusively said to represent functional communications instead of a loop-back or echo.
I know you are developing communications drivers, but don't you also have the programming software to configure and program the controller ? You should be able to check the configuration of the Modbus port on this controller using the programming software.
[attachment]