There are 3 "methods" you can use to exchange data between Logix5000 controllers :-
1. Produce/Consume
2. MSG Write
3. MSG Resd
I dislike MSG Write, because you lose traceability in the receiving controller - in other words, you have no idea where the data is coming from.
As an example of the relative merits of the remaining two methods, I once worked on a large project involving 7 or 8 ControlLogix controllers.
One of them was set up as a "data-concentrator", and harvested data from the other controllers for production data, batch reporting, alarm reporting etc. Most of the network was Ethernet, but there were a couple of controllers on ControlNet. The harvester was the only controller allowed on the corporate network, and was interrogated by SQL Servers and Historians.
In order to minimise network traffic, we set up a single DINT produced tag in each of the remote controllers, all consumed by the harvester. Each bit in each DINT was used as a trigger for the harvester to MSG Read the respective data block from the remote controller. We didn't even need to monitor for the bits coming on either, the consumed tag was used to fire an Event task, which was used to derive our MSG Read initiators.
So, we had a system that incorporated both produce/consume and messaging, tailored to our needs. Network traffic was minimal, by only Reading data when told it was valid, i.e. no cyclic messaging continually reading the same data repeatedly, just to pick up the changes every now and again.
I like analogies - and apologies to any "Brummies" who may read this, suppose you had a hammer and a screwdriver in your toolbox...
What could you use to put a screw in ?
What must you use to put a nail in ?
Nearly everyone in the UK is familiar with a "Birmingham Screwdriver"
1. Produce/Consume
2. MSG Write
3. MSG Resd
I dislike MSG Write, because you lose traceability in the receiving controller - in other words, you have no idea where the data is coming from.
As an example of the relative merits of the remaining two methods, I once worked on a large project involving 7 or 8 ControlLogix controllers.
One of them was set up as a "data-concentrator", and harvested data from the other controllers for production data, batch reporting, alarm reporting etc. Most of the network was Ethernet, but there were a couple of controllers on ControlNet. The harvester was the only controller allowed on the corporate network, and was interrogated by SQL Servers and Historians.
In order to minimise network traffic, we set up a single DINT produced tag in each of the remote controllers, all consumed by the harvester. Each bit in each DINT was used as a trigger for the harvester to MSG Read the respective data block from the remote controller. We didn't even need to monitor for the bits coming on either, the consumed tag was used to fire an Event task, which was used to derive our MSG Read initiators.
So, we had a system that incorporated both produce/consume and messaging, tailored to our needs. Network traffic was minimal, by only Reading data when told it was valid, i.e. no cyclic messaging continually reading the same data repeatedly, just to pick up the changes every now and again.
I like analogies - and apologies to any "Brummies" who may read this, suppose you had a hammer and a screwdriver in your toolbox...
What could you use to put a screw in ?
What must you use to put a nail in ?
Nearly everyone in the UK is familiar with a "Birmingham Screwdriver"