Modbus RTU Serial Connection to GE LM90-30

Hello All,

I have an old GE LM90-30 PLC which is a spare unit for one of my clients. I am attempting to communicate with it using the serial port located on the PLC rack’s power supply,. This connection works for GE’s Proficy v9.5 PLC programming software.

I have installed the Modbus Serial RTU Gateway module to Ignition and configured the connection, which shows OK in both the Gateway Config page and also PLC Metadata tag “PLC_Is_Connected” returns a value of 1 (good quality).

However, I am unable to read a holding register (GE address %R00003) using the Ignition tag address format [PLC]HR3, as indicated in the latest User Manual Modbus instructions. This tag address returns “null, Bad” status instead.

Does the Ignition Modbus Serial Module adhere to the same Modbus addressing conventions as the Modbus TCP modules?

Best regards,

Craig Bransfield
Bakersfield, CA, USA.

Yes, same addressing format.

Being “Connected” with the Modbus RTU/Serial driver means nothing more than Ignition was able to open the serial port on the machine Ignition is running on.

It still leaves many possibilities for your connection not working - incorrect baud rate or parity, a Modbus slave not actually being present or running on the other end, etc…

Thanks, Kevin. Just to confirm, the serial comm parameters for the Modbus RTU Device are identical to those which work for the GE Proficy software.

BTW, I am running both the Proficy and Ignition apps in separate VMWare v15 Pro clients, Win10 v1909 host and client OS’es.

It’s difficult to troubleshoot serial connections because there is essentially no feedback.

Support has used this tool with some success: https://freeserialanalyzer.com

If you see requests from Ignition but no response then assuming you have the correct address (and slave/unit id!) your efforts would be better spent looking at the device rather than Ignition.

Thanks again, Kevin. Nice try on the serial analyzer, however it seems unable (for the moment) to recognize the virtual COM2 port created by VMWare client.

Also, Proficy confirms that the PLC is running, and a changing integer value exists at address %R00003.

Will continue troubleshooting and report back results.

Since I don’t know anything about the device you’re working with, my first questions would be:

  1. does this device even have the ability to act as a Modbus slave?
  2. can it act as a slave on this port that is meant for programming?
  3. is Modbus slave functionality something that has to be enabled somehow?

I may be wrong but I dont think you will be able to talk to that port with a modbus master. You will need a cmm311 card configured to be modbus rtu to talk modbus to that plc.

1 Like

Thanks diat150, that appears to be the problem. From the GE Series 90 PLC Serial Comm User's Manual:

"All Series 90–30 CPUs have a standard SNP serial port that is accessed through a connector on
the PLC power supply. This serial port only supports the SNP Slave and SNP–X Slave
protocols."

Also, the GE programming cable is apparently customized to meet the SNP port translation requirements vs the standard PC COM port.

Will proceed to try again with a standard serial cable attached to a CMM card.

Status update: still unable to establish communications through the CMM311 card. First attempt was a simple “null modem” cable (DB9F to DB25M). No indications on the port traffic LED.

I’m now using the “qModMaster” Modbus troubleshooting tool, and I’ve configured the CMM311 card to have Port 1 as SNP (Proficy protocol) and Port 2 as RTU (Modbus protocol).

Will continue fiddling with the cables until I can get the CMM311 card to respond.

are you using the splitter cable? If I remember right the 25 pin on the card itself actually has 2 serial ports pinned out in it. You need a special cable to plug in and split it into 2 serial ports.

Roger that - I have the splitter cable. Despite the system’s age, the client has an excellent cache of PLC repair parts. I’m just trying to set up a convenient low-cost off-site development platform to help promote replacement of their PC-XT-based proprietary HMI system.

As an aside, I’ve already added a CMM321 Ethernet card to the production PLC for a remote SCADA connection. This works for Modbus so long as the CPU and CMM321 firmware versions are recent enough. An Ignition HMI will of course be using Modbus/TCP, however we don’t have a spare CMM321 at this time.

the only other thing I can add is maybe jumping rts and cts. I dont remember if that old plc gave the option to turn off flow control or not. I want to say it didnt use flow control but it wouldnt hurt to try if you cant get it to work.

Another status update: I’ve confirmed that the cable is now the problem. The recommended GE !C690CBL702 unit is obsolete, and barely mentioned in the aftermarket (only offer price $350!). However, the GE docs do show a pinout diagram which indicates non-standard use of hardware handshaking. Specifically, the GE cable ties the CMM311’s DTR back to the PC’s CTS, and does not use the CMM311’s RTS signal at all.

While the Startech (Chinese) general-purpose null-modem cable was lifeless, I do see incoming traffic on the CMM311 using an Allen-Bradley 1747/1756-CP3 cable (DB9F-DB9F) with a DB9M-DB25M straight adapter. This is a symmetrical null-modem cable where DTR is sent across to DSR and DCD, and RTS is sent across to CTS. Allen-Bradley uses this cable with their RSLinx comm software to communicate with SLC and ControlLgix PLC’s. Best of all, this cable is commonly (and cheaply!) available in the aftermarket.

Will spend some time exercising all possible software settings options and report back.

Looks like the end of the line here - I find that I get an “Unsupported Configuration Feature” controller fault from Proficy whenever I restart the PLC using any config setting on the CCM311 card other than “CCM protocol on both ports”. BTW - this card is so old, it has a battery with pigtail connector installed which does not appear in the available documentation.

I will check with GE Tech Support to see if this version of the CMM311 card is too old to support Modbus RTU protocol.