Logix 5000 CIP message Where is Destination element Stored

AggieRalph

Member
Join Date
Jul 2018
Location
Georgetown
Posts
5
AB Logix 5000 Controllers
Compact Logix L24ER PLCs
Can not use Produced / Consumed (due to network / bandwidth limitations) so this is not an option

I have setup communication using msg files. I would like to simplfy the process I have by setting up the message block to update like in this document However instead of communicating with multiple controllers I want to communicate with single controller and just change the Source and Destination element dynamically in the program. Currently I am accomplishing what I need by just having multiple message instructions, but I could reduce the number of these just by editing a couple msg blocks dynamically at runtime.

The problem For example on a CIP data table read the Remote Element is located in the Message tag as a text the path is also listed as a txt I can see how to adjust the Remote element dynamically, but how do I adjust the destination element dynamically. Changing the destination element doesn't even appear to change anything within the Message tag so where does it store this?
 
Welcome to the PLCTalk forum community !

The ControlLogix operating system does not allow you to programmatically modify the destination tag reference.

I'll speculate on a handful of reasons. In general, you don't find the ability for a program to "edit itself" in the Rockwell world. Changing the argument for an instruction is pretty close.

Tag arguments for instructions are reduced to a reference to a 32 bit memory identifier when the instruction is compiled; instead of the destination being "Read_Data_Dest[0]" it becomes "@0x4536". The integrity of that Tag Database is a critical part of the Logix OS, and software that seeks to modify it has to jump through the security hoops.

Also, if a MSG were already dispatched into the OS buffers with a memory location to put the result in, they'd have to work out a way to lock the instruction from being modified until that instance completed.

And the number of users who would use such a capability to save on the number of MSG instructions they had to type out would be dwarfed by the angry troubleshooters trying to figure out why the cross reference feature can't find the MSG instruction that's changing the tag they expect.

In my opinion if you are dealing with a network with latency or reliability limitations, you want to keep your MSG logic as bone-simple as possible, even at the cost of some brute-force data entry and lengthy routines.
 
Use a UDT to hold your messages.
Make a member of the UDT an index.
The sending controller sends out a message with the target index, the receiver can check the index and handle it appropriately. You can even use the index to just copy the message into an array of the UDT structure if you like.
 

Similar Topics

hi , I need to sorry for my bad English first. I'm newbie at plc programming ,I had been asked about E/IP protocol information for some system...
Replies
3
Views
339
Hello, Wondering if the following setup would work. 1. Local PLC on the network has an array of 25 REALs 2. Supervisory PLC on the network needs...
Replies
14
Views
1,775
I have a question on a subject of etherent nodes in rslogix 5000 project tree for a project that I am working on. I am trying to read if read...
Replies
5
Views
4,596
I am trying to send an CIP MSG from a RSlogix 5000 to a 485/ethernetIp device. I have connected and got a response back giving me the vendor...
Replies
5
Views
2,912
What do I need to do to pull the Date Datatype from an E&H Ph instrument using CIP Eth I/P ? I can pull strings and integers fine but there is no...
Replies
16
Views
6,645
Back
Top Bottom