You are not registered yet. Please click here to register!


 
 
plc storereviewsdownloads
This board is for PLC Related Q&A ONLY. Please DON'T use it for advertising, etc.
 
Try our online PLC Simulator- FREE.  Click here now to try it.

---------->>>>>Get FREE PLC Programming Tips

New Here? Please read this important info!!!


Go Back   PLCS.net - Interactive Q & A > PLCS.net - Interactive Q & A > LIVE PLC Questions And Answers

PLC training tools sale

Reply
 
Thread Tools Display Modes
Old February 12th, 2018, 11:45 AM   #1
Tpetie3509
Member
United States

Tpetie3509 is offline
 
Join Date: Apr 2017
Location: Washington
Posts: 23
Polling Sequence with RSLogix5000 and AB PLC's

Hi all,

I am setting up a PLC for data aggregation from multiple remote sites (35-50). Before I get too far into this here is the equipment and software involved.

CompactLogix L30ER 1MB Controller (Master PLC) - RsLogix5000
ML1100 Controllers (Remote Site PLC's) - RsLogix500
Wonderware as SCADA host

I have a bench station set up and have gotten to the point where I can read/write data to and from the Master to the 'slaves' on a network. Currently Wonderware is polling these sites directly and creating what I think to be a bottle neck in the network traffic since there is no way (that I have found) to sequence the polling of each site, hence why I am adding this master controller to handle messaging in a sequential pattern.

Here is my question: Is there a standard for sequencing polling from several remotes? My thought is to just use a 'master timer' that will run for a set amount of time and using EQU functions to fire each rung for each remote and then restarting the timer and so on and so forth. I can't help but to think someone, if not many of you have put something like this in place before and may have some ideas.

**I have used the 'Messaging with RsLogix5000' documentation and gotten myself up to speed on basic messaging practices.

Any input is appreciated.

Regards,

Todd
  Reply With Quote
Old February 12th, 2018, 12:06 PM   #2
OkiePC
Lifetime Supporting Member
United States

OkiePC is offline
 
OkiePC's Avatar
 
Join Date: Mar 2005
Location: ENE of Nowhere Oklahoma
Posts: 9,836
For your remote sites ... how are they connected to the master?
__________________
It's not all the variables I am most concerned with, it's the undiscovered constants.
  Reply With Quote
Old February 12th, 2018, 12:08 PM   #3
Tpetie3509
Member
United States

Tpetie3509 is offline
 
Join Date: Apr 2017
Location: Washington
Posts: 23
All remote sites are connected via 460Mhz Licensed spectrum ethernet radios.

Todd
  Reply With Quote
Old February 12th, 2018, 12:09 PM   #4
gclshortt
Member
Canada

gclshortt is offline
 
gclshortt's Avatar
 
Join Date: Dec 2014
Location: Cobourg
Posts: 2,558
What I have done is a master time that just keeps polling each of the PLC's on the network.
The program in each of the PLC's will store the data until the polling station gets the data. The information is not lost when polling does not happen.

Regards,
__________________
Garry
http://www.accautomation.ca
Connect with us on Facebook: facebook.com/accautomation/
  Reply With Quote
Old February 12th, 2018, 12:12 PM   #5
Tpetie3509
Member
United States

Tpetie3509 is offline
 
Join Date: Apr 2017
Location: Washington
Posts: 23
That is something I would like to have also, currently all of the remote PLC's don't store any data and if polling fails, the values will only populate to current when the polling is healthy again. Do you know if it's possible with ML1100 controllers to store this data?

Thanks,

Todd
  Reply With Quote
Old February 12th, 2018, 12:27 PM   #6
OkiePC
Lifetime Supporting Member
United States

OkiePC is offline
 
OkiePC's Avatar
 
Join Date: Mar 2005
Location: ENE of Nowhere Oklahoma
Posts: 9,836
I use a state engine to drive the polling. I use a timer to insert a minimum delay between each message. I use the DN and ER bits from each message to advance to the next state.

I use "config bits" to enable/disable stations. I work mostly with ML1400 and Click as the master PLC. The ML1400 will not allow online editing of rungs containing MSG instructions. By using a state engine (a series of mutually exclusive bits), My message logic is just examining a state bit and a MSG instruction. I completely control the sequence in separate logic without touching the MSG rungs so it can be done on the fly.

I will also have a timer that measures the complete poll time and I will store the fastest and slowest poll times. I like to show on the HMI the status of the polling so that you can visually tell where the hangups are happening (and they will happen!).



Attached Images
File Type: jpg Radio MSG States 000.jpg (57.0 KB, 68 views)
File Type: png Radio MSG States 001.png (35.2 KB, 69 views)
__________________
It's not all the variables I am most concerned with, it's the undiscovered constants.
  Reply With Quote
Old February 12th, 2018, 12:36 PM   #7
OkiePC
Lifetime Supporting Member
United States

OkiePC is offline
 
OkiePC's Avatar
 
Join Date: Mar 2005
Location: ENE of Nowhere Oklahoma
Posts: 9,836
Quote:
Originally Posted by Tpetie3509 View Post
That is something I would like to have also, currently all of the remote PLC's don't store any data and if polling fails, the values will only populate to current when the polling is healthy again. Do you know if it's possible with ML1100 controllers to store this data?

Thanks,

Todd
All the data in all Allen Bradley PLCs is retentive. Nothing will be lost.

For comms checking...normally, the first element of my MSG is a "Heartbeat". It is just a number that increments or a copy of the free running clock...think of it as a random number. In each slave, I will watch for this value to change.

If it doesn't change for 1 to 10 minutes (depends on situation) I will set an alarm and take appropriate action. In the master PLC I will receive a heartbeat for each slave, so that if it doesn't change, I know that PLC is not running or not communicating. So in the main PLC I will have a comms timeout alarm rung for each slave RTU. I will map those timer accumulators to tags for each slave called "data age" or something to that effect. In the HMI tooltip, where available, I will explain it as the number of seconds since the last successful read took place.

Note that a PLC can communicate just fine when it is simply faulted, so using a heartbeat rather than just relying on MSG error bits proves that not only is the RTU communicating, but it is in RUN mode.
__________________
It's not all the variables I am most concerned with, it's the undiscovered constants.

Last edited by OkiePC; February 12th, 2018 at 12:41 PM.
  Reply With Quote
Old February 12th, 2018, 01:03 PM   #8
Tpetie3509
Member
United States

Tpetie3509 is offline
 
Join Date: Apr 2017
Location: Washington
Posts: 23
Quote:
Originally Posted by OkiePC View Post
All the data in all Allen Bradley PLCs is retentive. Nothing will be lost.

For comms checking...normally, the first element of my MSG is a "Heartbeat". It is just a number that increments or a copy of the free running clock...think of it as a random number. In each slave, I will watch for this value to change.

If it doesn't change for 1 to 10 minutes (depends on situation) I will set an alarm and take appropriate action. In the master PLC I will receive a heartbeat for each slave, so that if it doesn't change, I know that PLC is not running or not communicating. So in the main PLC I will have a comms timeout alarm rung for each slave RTU. I will map those timer accumulators to tags for each slave called "data age" or something to that effect. In the HMI tooltip, where available, I will explain it as the number of seconds since the last successful read took place.

Note that a PLC can communicate just fine when it is simply faulted, so using a heartbeat rather than just relying on MSG error bits proves that not only is the RTU communicating, but it is in RUN mode.
I fully understand this portion and thank you for that. I'm not sure I understand some of the control you have set up for your messaging.

I have mine set up so that it increments to the next message with the previous done or error bit. I can also see how adding an "enable/disable bit to each station would be beneficial.

What is the purpose of the FLL instruction if you are using a message instruction anyways?

Also, is the poll time timer just a timer that starts with the message.en bit and stops with the message.dn bit, then reporting that time back before resetting during the next poll?

Thanks,

Todd
  Reply With Quote
Old February 12th, 2018, 01:16 PM   #9
gclshortt
Member
Canada

gclshortt is offline
 
gclshortt's Avatar
 
Join Date: Dec 2014
Location: Cobourg
Posts: 2,558
Quote:
Originally Posted by Tpetie3509 View Post
That is something I would like to have also, currently all of the remote PLC's don't store any data and if polling fails, the values will only populate to current when the polling is healthy again. Do you know if it's possible with ML1100 controllers to store this data?

Thanks,

Todd
In my case, I log the time and date with the values that need to be logged. This is done through indirect addressing. When polling the PLC, I read the indirect address pointer. This is the ending location. I know the starting location in memory, so I can read all of the information. I then read the indirect address pointer again. If it has not changed, I write the beginning address of the log back into it.

Regards,
__________________
Garry
http://www.accautomation.ca
Connect with us on Facebook: facebook.com/accautomation/
  Reply With Quote
Old February 12th, 2018, 01:33 PM   #10
Tpetie3509
Member
United States

Tpetie3509 is offline
 
Join Date: Apr 2017
Location: Washington
Posts: 23
Quote:
Originally Posted by gclshortt View Post
In my case, I log the time and date with the values that need to be logged. This is done through indirect addressing. When polling the PLC, I read the indirect address pointer. This is the ending location. I know the starting location in memory, so I can read all of the information. I then read the indirect address pointer again. If it has not changed, I write the beginning address of the log back into it.

Regards,
So you are logging in the remote PLC at a date and time interval? I'm a bit confused on how you get the in-between values. If I poll and don't receive anything new for a few scans, then communication returns and I get a new value, the data will fill in the blanks but it will show the last known value up until communication is reestablished. Hopefully I'm not confusing this, just trying to understand your method.

Thanks,

Todd
  Reply With Quote
Old February 12th, 2018, 02:15 PM   #11
OkiePC
Lifetime Supporting Member
United States

OkiePC is offline
 
OkiePC's Avatar
 
Join Date: Mar 2005
Location: ENE of Nowhere Oklahoma
Posts: 9,836
Quote:
Originally Posted by Tpetie3509 View Post
What is the purpose of the FLL instruction if you are using a message instruction anyways?
It just clears all the state bits before setting the next one.

Quote:
Also, is the poll time timer just a timer that starts with the message.en bit and stops with the message.dn bit, then reporting that time back before resetting during the next poll?
My poll timer gets reset on the rising edge of the last state, but first I capture the accumulator by moving it to an HMI tag and do the "high score/low score" logic to update the peak values (fastest and slowest poll times).
__________________
It's not all the variables I am most concerned with, it's the undiscovered constants.
  Reply With Quote
Old February 12th, 2018, 02:20 PM   #12
Tpetie3509
Member
United States

Tpetie3509 is offline
 
Join Date: Apr 2017
Location: Washington
Posts: 23
Quote:
Originally Posted by OkiePC View Post
It just clears all the state bits before setting the next one.



My poll timer gets reset on the rising edge of the last state, but first I capture the accumulator by moving it to an HMI tag and do the "high score/low score" logic to update the peak values (fastest and slowest poll times).

That makes sense, thanks for the explanation. I am going to try some of this and see if I can't come up with my own version that will function well with my application.

Thanks again,

Todd
  Reply With Quote
Old February 12th, 2018, 02:21 PM   #13
gclshortt
Member
Canada

gclshortt is offline
 
gclshortt's Avatar
 
Join Date: Dec 2014
Location: Cobourg
Posts: 2,558
I have set the logging up to show minute by minute of what is happening with the line. If there is nothing to bring in with the log then I read the actual current value to display.
The minute by minute log is then being stored in a database.

Hope this explains it.
__________________
Garry
http://www.accautomation.ca
Connect with us on Facebook: facebook.com/accautomation/
  Reply With Quote
Old February 13th, 2018, 09:55 AM   #14
Tpetie3509
Member
United States

Tpetie3509 is offline
 
Join Date: Apr 2017
Location: Washington
Posts: 23
Thumbs up

gclshortt and Okie, just wanted to thank you guys for the support. I am moving forward with the logic on this controller and making progress quicker thanks to you guys!
  Reply With Quote
Old February 13th, 2018, 05:19 PM   #15
harryting
Lifetime Supporting Member
United States

harryting is offline
 
harryting's Avatar
 
Join Date: May 2002
Location: Puget Sound
Posts: 1,823
I maybe going off on a tangent there, if this is for civil site monitoring application then a better system maybe "data-logger" from Campbell Scientific which is designed for radio polling data from field stations.
  Reply With Quote
Reply
Jump to Live PLC Question and Answer Forum

Bookmarks


Currently Active Users Viewing This Thread: 2 (0 members and 2 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Topics
Thread Thread Starter Forum Replies Last Post
AB Intelligent MCC Centerline support with RSlogix5000 RRoc LIVE PLC Questions And Answers 10 May 30th, 2017 04:48 PM
AB PLC5 RSLogix Frameworks Professional to RSLogix5000 grnick50 LIVE PLC Questions And Answers 4 June 3rd, 2014 10:26 AM
AB RSlogix5000 ajay34 LIVE PLC Questions And Answers 11 July 22nd, 2011 09:17 PM
AB RSlogix5000 tom_ch LIVE PLC Questions And Answers 2 September 26th, 2005 12:29 PM
Programming software for multiple AB PLCs manojvivek LIVE PLC Questions And Answers 6 July 9th, 2002 09:10 PM


All times are GMT -5. The time now is 04:12 PM.


.