MSG in AOI - Yea or Nay?

TheWaterboy

Lifetime Supporting Member + Moderator
Join Date
May 2006
Location
-27.9679796,153.419016
Posts
1,923
I have to set up a new polling station, 75 MSG's over Radio with some stats taken, i.e. MSG duration, success failure counters stuff like that.

If you have done it, should I pursue creating this using a MSG in an AOI or create all the individual MSG in ladder as per usual.

Seems on the surface to be a good use of AOI but embedding a MSG in it brings some trepidation.
 
Are the 75 MSGs to different targets or all to one destination? If the former, would imply the message path is in input parameter, or can be created at runtime with a parameter. I wonder if/how this can be done?
 
you could use a subroutine and it wouldn't really function any differently than an AOI except I think you can make more on-line changes to a subroutine than you could an AOI
 
TheWaterboy said:
MSG in AOI - Yea or Nay?...Seems on the surface to be a good use of AOI but embedding a MSG in it brings some trepidation...

If you can, have a look here for sample code and gotchas...

629170 - MSG within an AOI
Access Level: TechConnect

TheWaterboy said:
...should I pursue creating this using a MSG in an AOI or create all the individual MSG in ladder as per usual...

It might not be an ideal solution to be honest and could be as much work in the end. My gut says ladder, but I would be intrigued to see someone have a go.

Regards,
George
 
Can you even modify all the msg parameters at run time? I don't use compact/contrologix much. If its in an AOI then you'd need to be able to pass all that in as parameters.

The other thing to consider is synchronization of these 75 msg instructions. Especially over radio. You would need a way to ensure that they get executed sequentially to avoid collisions or saturating the main radio's transmit buffer.

I have built a polling engine for modbus in a Schneider M340 before. Essentially i would add the address to be polled into a FIFO for reading and one for writing, using timers. Writes took precidence. The equivalent of a msg instruction would unload the next address to be polled after the last one succeeded. I had an array which i used to store comms fail status and time of last response, the index being the address you've just unloaded.

It worked (think i had about 20 slaves?) But it took a fair bit of tweaking to make it robust. You might need to think about how to balance your traffic. If you need to poll each remote every 5 minutes, you don't want every site in the fifo at once or your channel will be very busy for the first 2 minutes then idle for three.

You might also want to consider a manual poll FIFO which takes second preference after write instructions so a user doesn't need to wait 2 minutes for an update if they are actively monitoring a particular site.

I strongly advocate the use of DNP3 but with a rockwell PLC based control system that's not so easy; only the ML1400 speaks it as far as I know.
 
Saffa said:
Can you even modify all the msg parameters at run time? I don't use compact/contrologix much. If its in an AOI then you'd need to be able to pass all that in as parameters...

From the technote...

...all MSG parameters must be configured externally of the AOI, then pass into AOI via references...

There's a bit of external work in that alone. So again, is it worth it going the AOI route?

Saffa said:
...The other thing to consider is synchronization of these 75 msg instructions. Especially over radio. You would need a way to ensure that they get executed sequentially to avoid collisions or saturating the main radio's transmit buffer...

...I strongly advocate the use of DNP3 but with a rockwell PLC based control system that's not so easy; only the ML1400 speaks it as far as I know.

Yes, only the MicroLogix 1400 supports DNP3. But the DF1 Radio Modem Protocol is quite efficient at these tasks and these type applications are what it is designed to do within the Logix 5000 world.

As for "synchronization" - this would require standard good practices in MSG queuing within Logix 5000 controllers. What added impact using radio would have on those practices would have to be tested and tweaked accordingly. But the Logix controller would normally be the Master in a half-duplex radio modem configuration and would normally only execute one MSG instruction at a time. If using all full-duplex radio modems, you can configure a masterless peer-to-peer radio network where each modem can handle full-duplex buffering and collision avoidance. They can also store and forward messages not intended for them. This way each node can initiate communications to any other node at any time. As long as the buffers at each node can handle the throughput, it can work quite well. But our friend does not want masterless here. It's one-to-many. So a Master/Slave configuration would be best.

G.
 
My main reason for advocating DNP3 is the ability to buffer data during periods of communications loss. This is becoming more and more important for water utilities where continuous records of compliance data are required.

The DF1 radio protocol is a good option if using all Rockwell controllers as it doesn't have the "redundant" ACK message from the master back to the remote after receiving a valid response.
 
Yes, the DF1 radio modem protocol excludes ACKs, NAKs, ENQs, or poll packets. The CRC checksum verifies the data integrity.

If all the radio modem equipment is non AB, except the master node, the DF1 Radio Modem driver can still be used in a pseudo Master/Slave mode with any radio modems, as long as the designated master node is the only node that initiates MSG instructions, and as long as only one MSG instruction is triggered at a time.

G.
 
geo, that is the technote I saw where it appears to be missing some guidance and with that in mind it doesn't look like its a better idea at the moment. I'll have to absorb it a little more.

I'm a fan of subroutines as long as the next guy can figure out whats going on. Thats not always the case since the data cant be followed so easily so the AOI was a better option. But plain old ladder is easier still.

the sequential messaging is simple enough, made even better since it also appears that in the CLX world, changing the value in the the .unconnectedtimeout tag of the MSG really will kill the MSG process and free the port unlike the .TO bit in the PLC5 .

I wanted to try DNP3 but its not well supported in the CLX platform and thats all this will be comprised of.
 

Similar Topics

Hi all. Long time lurker, first time poster. I'm working on a project to write a program to monitor the diagnostics data in a number of Stratix...
Replies
22
Views
7,634
Hi, I'm currently trying to create an AOI (Add-On Instruction) to process possible faults on some of my equipment. To do so, I need to read the...
Replies
7
Views
6,255
Is it possible to insert an MSG instruction into an AOI? It look like it would work but when inserted into an AOI it does not give me access to...
Replies
7
Views
3,917
Hallo ! Did somebody ever make an AOI with a MSG Instruction ?? regards Bernd
Replies
1
Views
2,404
I have an 1769-L16ER that I use to test code and I just found that I can't create MSG tags at the local program scope - they have to be done at...
Replies
4
Views
188
Back
Top Bottom