Paolo_911

MES push or pull data?

3 posts in this topic

Here is our setup, QJ71MES96US module in a PLC rack connected to an Ethernet switch. Also connected to this switch are several PLCs (Q03UDECPU) through an Ethernet QJ71E71-100 module with which we hope to collect data. 

There are two different ideas floating around, one being that upon a trigger the MES pulls data from each PLC. So each PLC would need to be added as a device inside the MES workbench software. The second idea is that we place a CPU locally in the rack with the MES module and the MES only pulls data from the one PLC. In this second scenario each PLC, if possible, would push data through the Enet switch onto the one local PLC. I imagine this may be possible, but I'm not familiar with how. In another area of our plant this is the way we do it, but through a GOT, which I didn't want to do again. The reason it uses a GOT in that area to push data upon a trigger is because we are connecting to older PLC CPUs (A-series I think).

My thought is that it would be easier to just pull data from all the several PLCs, even though I believe my manager and I.T. department are leaning to do it the other way, granted they don't know PLCs or PLC programming. We are all open to weighing our options though, so would anyone be able to chime in on advantages and disadvantages or even touch on simplicity to compare these two options?  

Share this post


Link to post
Share on other sites

I always "collect" data from the sub-PLC's like you want to do. That way you have one "master" and one place to keep code. But it can depend:

  • Do you also need to "push" data to the sub-PLC's from the MES-PLC (not just pull, but also push)?
  • At which speed do you need this done (pushing data from sub-PLCs to MES-PLC can be a little bit faster than pulling)

So if there is no need for both ways, and if speed is not critical then "obviously" go with your suggestion; collect data from the sub-PLC's. But a little more information would be helpful to pinpoint your exact needs. Bare in mind that the number of "sub-PLC connections" are limited to your license (at least in Europe). You might need to add device-licenses.

And as a "killer-blow" for going with "collect": Always think DRY ("Don't repeat yourself") when developing any kind of code. I'm mentioning this because a setup where sub-PLC's send data to the MES-PLC involves the same code in all sub-PLC's (with regards to the comms). If you, now or in the future, find a bug in the code, you'll need to update the code on all sub-PLC's, while if you collect data you have "one" place for the source comms-code; the MES-PLC.

Share this post


Link to post
Share on other sites

Wow! Thank you for the reply as it is all great information. I hadn't considered your last point regarding DRY, but that is very helpful in developing this! Speed isn't an issue as we are merely collecting a set of registers or different sets of registers for data collection purposes every couple hours on a given machine. It is a collection of data all at once. We may run into a scenario where we attempt to collect data on multiple machines at once, but we are more considered with reliability and ease of setup & future use. I think I decided we are going to pull data from each PLC via a master, once it is signaled to do so based on your last point about repetitive code change (DRY). I was also made aware that the MES module is limited in the number of devices it can connect to. I did not realize, nor do I quite understand what you mean by a limitation on sub PLC connections, but I'll cross that bridge when I get to it. Thanks! 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now