Control Logix processor to processor messaging over Ethernet

Paul351W

Member
Join Date
Mar 2008
Location
Northern Illinois
Posts
154
I apologize if this has been asked before, but I didn't find anything right away.

I am going to have a control setup with 2 L62 processors, one doing facility control, and another one doing high speed hydraulic controls. They will both be on the same local ethernet with the Panelviews and remote racks for the facility control processor.

How exactly do I go about sending data from one processor to the other? The only example in the help file talks about resetting a module status or something to that effect and it didn't help me. I have tags set up in both processors, but I think I'm getting hung up on the Path, as I'm getting a 16#0004 error on the communications tab.
 
Nevermind, I figured it out. I was trying to put the ethernet communication card in the path field, but I needed to have the target PLC in there instead.
 
Sounds like you're off to a good start.

The two manuals you want to have at hand when using Ethernet communications with Logix are:

ENET-UM001 EtherNet/IP Modules in Logix 5000 Control Systems

1756-RM003 Logix 5000 Controllers General Instructions

I use both of these extensively as reminders and references when doing MSG instructions and using Produced/Consumed Tags.
 
Error 16#00FF (MSG command between Compactlogix and ControlLogix)

Hi...

I'm having problem using MSG command recently. I need to read data from ControlLogix. The data type for the source element is BOOL. That means I need to set my data type for destination element is BOOL also. But i can't make it. Error occurred when i verify the program. I only can set my destination element's data type to INT. Error 16#00FF occured during online.

How to solve this problem.. Please help me
 
If you are not going to do Produce/Consume tags over Ethernet (Which is my fav way of Ethernet Messaging) then the minimum amount of data a MSG instruction can read is an INT. You will have to move your bool you want to read to a bit of an INT and use that as your read tag.
 
enquiry about MSG command

Hi..

I have one question regarding MSG command. Can we read a real data type using MSG command? What is the best way to read a real data type? please advise me.
thanks.
 
Depending on what version of OS you're running on the L62s you can read any data type you want. As was mentioned earlier, you can't read any thing less than a bool but that's only the minimum. If you have a large amount of data or data of various types(including Bools), I'd recommend creating a UDT to encapsulate your data and then when you do a CIP message read or write, you'd just select your number of elements as being 1. To optimize memory, you need to group like data types together in the UDT but that's all. This requires the UDT to be in both processors but its a great way of keeping track of data through tag names rather than through tag descriptions.
 
Sounds like you're off to a good start.

The two manuals you want to have at hand when using Ethernet communications with Logix are:

ENET-UM001 EtherNet/IP Modules in Logix 5000 Control Systems

1756-RM003 Logix 5000 Controllers General Instructions

I use both of these extensively as reminders and references when doing MSG instructions and using Produced/Consumed Tags.
I came across your post as I was researching this. Are these produced tags just multicast Class I Ethernet IP data? Could I just use my standard Ethernet IP Master to listen to this data?
 
Produced Tags are a little different from numbered Assemblies as far as the connection method goes.

What do you consider a "standard EtherNet/IP Master", if not a Logix-family controller ?

A wild guess: this recent thread might be of interest to you.
 
Produced Tags are a little different from numbered Assemblies as far as the connection method goes.

What do you consider a "standard EtherNet/IP Master", if not a Logix-family controller ?

A wild guess: this recent thread might be of interest to you.
Substitute "non-Rockwell product" for "standard Ethernet/IP Master". What I'd like to do is initiate controller-controller communications between an AB PLC and non AB controller using Produced-Consumed tags, and I was concerned that this method might be a proprietary communications method. The thread you mentioned is helpful. Additionally, a partner company of ours has been working on AB's EDS AOP. If that works out, then implementing controller-controller communications between AB and non-AB controllers should be as easy as it is for AB and AB.
Thanks for your help - I appreciate it.

Joe
 
If you are not going to do Produce/Consume tags over Ethernet (Which is my fav way of Ethernet Messaging) then the minimum amount of data a MSG instruction can read is an INT. You will have to move your bool you want to read to a bit of an INT and use that as your read tag.

Can you explain this statement further.

"You will have to move your bool you want to read to a bit of an INT and use that as your read tag"

I am trying to understand how you move boolean data in a MSG instruction, if that can even be done?
 
Can you explain this statement further.

"You will have to move your bool you want to read to a bit of an INT and use that as your read tag"

I am trying to understand how you move boolean data in a MSG instruction, if that can even be done?

The suggested method is to use the bit level of an int instead of a standalone bit (ie, INT1.0 instead of BOOL1), and message the int. On the recieving end, you just use the bool out of the int you brought in.
 
The suggested method is to use the bit level of an int instead of a standalone bit (ie, INT1.0 instead of BOOL1), and message the int. On the recieving end, you just use the bool out of the int you brought in.

I understand sending the dint and looking at the bit level of the int message that you send. But on the receiving end how do I pull the info out of the dint that I want? Do I use a mask instruction or move instruction to take that information (for example Dint =4 sent which is 0100 in binary, how do I pull out the bit that is equal to one in this dint)
 
I understand sending the dint and looking at the bit level of the int message that you send. But on the receiving end how do I pull the info out of the dint that I want? Do I use a mask instruction or move instruction to take that information (for example Dint =4 sent which is 0100 in binary, how do I pull out the bit that is equal to one in this dint)

Ok, you're missing the point here. Lets say I have DINT1. Bit 1 of DINT1 would be DINT1.0. If I use

-|I.0 |--------------( DINT1.0 )-


Then message DINT1 to another controller into RECEIVED_DINT, I can access this bit as RECEIVED_DINT.0


-| RECEIVED_DINT.0|-------------------------------------(DATA_RECIEVED_BOOL)-


In your example, you're using .2, you don't need to know the numerical value of the dint at this point.
 
Last edited:

Similar Topics

So I have an interesting question. I work with sites that don't have controls tech's and wanted to know if its possible for a processor to be...
Replies
10
Views
1,173
i'm looking to do 2 Control Logix Processor Upgrades in my plant. just after some general info as i have not done this before. i could engage...
Replies
5
Views
3,043
Hey everyone, I'm taking on a project that requires me to take data from a dxf file (an AutoCAD drawing) and provide it to a control logix...
Replies
7
Views
3,733
Is it possible to set up a Control Logix Processor as an Ethernet/IP Adapter? I have a device that I want to communicate with a CLX but the...
Replies
6
Views
2,077
I am trying to find a little info on changing out a control logix processor We are going to change a l55 to a l71 I know the program has 16.21...
Replies
7
Views
2,843
Back
Top Bottom