Best way for Control/CompactLogix to talk to a MicroLogix?

Epy

Lifetime Supporting Member
Join Date
Jul 2012
Location
no
Posts
376
While there's a few options, I just assume that the the Control/CompactLogix should be able to push/pull information over EtherNet/IP, correct? Exactly how an HMI panel communicates with the MicroLogix (1400).

This is the most straightforward way, yes? Otherwise I was going to use Modbus TCP/IP.

Thanks for your suggestions.
 
Set your control/compactlogix to read and write data (MSG) from/to the ML1400, use a PV+ terminal connected to the same comm switch and communicate your PV+ with both ML and CLX at the same time. All over Ethernet/IP.
 
I don't see a role for Modbus/TCP between these two controllers.

MSG instructions easily transfer data from CompactLogix to MicroLogix 1400 using the native EtherNet/IP transport and the native 'SLC Type Read' and 'SLC Typed Write' function codes.

The MSG instruction is well documented in the Online Help, in the General Instruction Set Reference, and in many RA Knowledgebase Articles and PLCTalk threads.

There is often some confusion if you haven't done this before, because ControlLogix family controllers can do a different form of cyclic communication called a 'Produced/Consumed Tag'. This data is configured for automatic timed exchange between the controllers, as opposed to using the MSG instruction for program-triggered exchanges of data.

MicroLogix controllers do not support Produced/Consumed Tags, so the MSG instruction is required.
 
Thanks Ken. This is the first time I've had to do this so I needed it spelled out for me. MSG it is.
 
The modern CompactLogix have more or less the same messaging abilities as the older ones.

The principal technical difference is that the Ethernet port is considered part of the CPU, so you don't have to include it in the CIP Path.

An older CompactLogix CIP path to a MicroLogix 1100 would be something like "1,1,2,192.168.1.10", while a modern 5530 series CompactLogix would just have "2,192.168.1.10".

You do not put the MicroLogix into the I/O tree of the CompactLogix or ControlLogix. Just write the CIP paths by hand.
 
I had setup the CompactLogix as a CIP Read with the N36 in the MicroLogix as the source. I created a tag as a DINT with the "2, 192.168.1.229" as the Destination. I still got an error saying something about the instance was not recognized (sorry not at work right now). I had read somewhere where the newest CompactLogixs don't require the "LocalENB" part and just the "2, 192.168.1.229". Thank you very much for your time and reply.
 
Soccernut43, if you’re communicating to/from a CompactLogix to any MicroLogix (or SLC) you use “SLC Typed Read / SLC Typed Write”. I don’t know if you can make the CIP message types work or not but I don’t see any reason to use them (not saying there isn’t a reason, I just don’t know of one).
 
Nice catch !

Firejo is of course correct; you need to specify an SLC Typed Read or Typed Write, not a CIP Read or Write.
 
soccernut43 said:
I had setup the CompactLogix as a CIP Read with the N36 in the MicroLogix as the source. I created a tag as a DINT...

"CIP Read" could mean they used a "Message Type" of "CIP Data Table Read", or it could mean they used "SLC Typed Read" with the "Communication Method" set to "CIP"?

But if I had to guess, I'd agree that it's most likely the former here.

While a "Message Type" of "CIP Data Table Read" or "CIP Data Table Write" is not compatible with the MicroLogix/SLC/PLC5E, etc., a "Message Type" of "CIP Generic" is and can be used to achieve the same results while messaging from a Logix controller to a MicroLogix/SLC/PLC5E, etc.

It is somewhat cumbersome in comparison as you have to properly format the PCCC command. So why would you use it instead of "SLC Typed..."?

If, for instance, a Logix controller needs to access the Status (S2) of an SLC, or the Real Time Clock (RTC) in a MicroLogix, then you can use the CIP Generic Message Type to achieve this more "abnormal" request.

I'll leave it there.

soccernut43,

Also, from the above quote...

The MicroLogix stores integers in the 16 bit 2's complement binary data type. If you are reading 16 bit integer data to a Logix controller then it's best to use destination tags of Data Type INT (16 bit), not DINT (32 bit).

Regards,
George
 
Hi, not sure if anyone is still watching this thread or not....

Having an issue MSG read/write to a MicroLogix 1100. (From CompactLogix L24)

I am successfully talking to multiple 1400's, but cannot get the 1100 to work. Code identical, just the path changed. (Using the SLC Typed READ/WRITE). Memory I am Read/Write to is set up, all looks good.

Error I get is

Error code: 16#0001 extended error code: 16#0000_0109
Error Text: "Connection Failure"

The 1100 does sit behind a different router/switch, but I can PING it, go online, HMI can talk to it...... all no issue.

I have a feeling I'm missing something simple, but can't figure out what?!?

Any ideas?
 
Get online with the Micrologix 1100 and look at the Channel Status. On the Channel 1 tab, check the number of connections. I believe the 1100 is more limited in the number of connections than the 1400, but I might be mistaken. The status window should tell you the maximum allowed. This is a WAG, since your other devices can connect, it is really not too likely that you have hit the connection limit, but it is easy to look at this and rule it out.

The router might be doing something to inhibit traffic...I will defer to the experts to dig into the details of that possibility.
 
Thanks Okie PC.

I've just found the issue...... (And I need to wipe the egg off my face).

I have several MSG's working to several PLC's, a mix of 1400's and CompactLogix.

I cut and past the MSG for the new 1100 from a CompactLogix MSG, then changed it to suit.
Despite it looking identical to the 1400 MSG's after the changes, it clearly has hangups.

So lesson to me: create a blank MSG data type and enter from scratch. DON'T cut and paste!

Thanks all for helping.
 
Egg on face or food for thought?...

GraemeTownsend said:
...So lesson to me: create a blank MSG data type and enter from scratch. DON'T cut and paste!...

Lesson to all you mean! I would advise always creating and configuring MSG instruction instances from scratch. Too often in the past had I encountered troublesome messages after taking such shortcuts only to later realize that a fresh instance resolved the issue.

Unexpected operations, after copying and pasting MSG instruction based logic, has long been an admitted but unresolved anomaly by Rockwell Automation. They will often to always advise you to recreate MSG instructions in these situations, if the advisor is properly informed, that is.

One explanation a Rockwell contact once gave me was that the MSG instruction's configuration data does not copy and paste well. For instance, often the MSG backing tags become corrupted, hence requiring recreation of the MSG instruction instance to reestablish the backing tag references.

There's "some" percentage chance that copying and pasting MSG instruction logic will or will not cause issue. What that percentage is, I have no idea? Maybe some are just luckier than others? I just default to never doing it. If you have been doing so, and will continue to do so, then that's A-OK. At least if you've read this thread you might remember it should the need ever arise. However, for me, the fact that a modern L24 CompactLogix controller, with more recent firmware on board, is still capable of producing this anomaly, would further dissuade me from reverting to type.

GraemeTownsend said:
...And I need to wipe the egg off my face...

Don't wipe it off. Lick it off. Taste it. It is an acquired taste. It is the delectable flavour of having learned something valuable, the hard way. Enjoy it. Savour it. Then you will be sure to remember it.

Regards,
George
 

Similar Topics

I have S7 1512C controler for controlling 48 PID temperature loop, the output is PWM. Please I need the best, most efficient way to write the...
Replies
5
Views
212
I am doing a system where I have to control a heater on a mold. I will use a PID lood with a PWM output to a SSR to control the heater. The...
Replies
15
Views
4,320
I just installed 3 PowerFlex 755 VFDs for a customer's fresh water booster pumps, and converted the three PowerFlex 400 well pump VFDs over to...
Replies
14
Views
5,323
I'm starting on a project that will soon involve controlling two large water pumps (4160 VAC, not sure the HP). I'm curious: what generic "best...
Replies
14
Views
4,464
Could experienced PLC programmer take a look at these lines of code? It is for controlling a stepper servo motor, as you will see some familiar...
Replies
5
Views
2,518
Back
Top Bottom