NetSCADA Logo
Login
Home
Products
Support
Site Map
FAQ's
Web Demo
Resources
Links
Search
Company Info

  Organizing your PLC/RTU Data for Efficient Polling     

This article deals with organizing your SCADA database for efficient communications to the PLCs and RTUs on your SCADA system. Many SCADA systems are plagued with inefficient communications that result in slow response times or even erroneous operation. A system that is marginally working when all of the PLCs/RTUs are communicating may slow dramatically or even halt operation if several PLCs/RTUs experience communications problems. This article will outline some strategies that should help make your SCADA system communicate as efficiently as possible.

Subjects include:


Factors that contribute to inefficient SCADA communications    To top of page
 

Some system integrators blame low SCADA system communications performance to inadequate bandwidth. In some cases this analysis may be correct. However, in my career, I have found the lack of database organization in the PLC/RTU to be the largest contributor to poor system communications performance. I have seen PLC systems where 20+ polls of a single PLC by the SCADA application was necessary to acquire all of the PLC’s data. Put that PLC out on a half duplex 1200 baud radio system and the screen updates will probably slow to a crawl. Throw in 10 more PLCs on that same radio system and communications performance will get even worse, maybe even stalling out completely. And what if one of these PLC fails to communicate due to a problem? I hope you get the picture.

The best strategy I have found is where the SCADA database for the RLL (Relay Ladder Logic) for the PLC is completed to execute the applications control functionality, add RLL rungs to organize the data necessary for the SCADA application in consecutive PLC registers. We can call these target PLC registers for SCADA data the scannable range. Most PLCs have the capability to do some sort of LET statements in their RRL syntax that allows the integrator to organize the data necessary for SCADA in consecutive registers in the PLCs memory (However, note that some older PLC/RTU devices may not allow the mapping of I/O points to another different location in memory). By doing this your SCADA application may be able to acquire all necessary data in one or two scans vs. up to 20+ scans. Many PLCs SCADA protocols allow reading up to 100+ registers with a single poll. It takes much less time to acquire 100 resisters of data with a single poll vs., for example, 5 polls at 20 registers/poll. Take advantage of the protocol's ability to handle long, multiple-register packets.

Below is an example of how organizing your PLC/RTU database can make your SCADA communications more efficient.


Drawbacks of an Unorganized PLC/RTU Database    To top of page
 

In this case the integrator let the data reside in the PLC memory where it fell out when the RLL code was written. In this example, we are utilizing a radio system operating at 9600 baud half duplex. Note that it takes 7 polls and 4.5 seconds to acquire all of the PLCs data vs. 1 poll and 0.78 seconds for the organized example.


Example of an Unorganized PLC/RTU Database    To top of page
 
Poll #Type Data requiredAmount of Data RequiredRequest poll from host msRadio key time-msData trans time - msProtocol Overhead - msTotal poll time - ms
12-64 point Discrete Input card status8 registers (16 bit)500 ms100 ms14 ms10 ms624 ms
21-32 point Discrete Output card status4 registers (16 bit)500 ms100 ms7 ms10 ms617 ms
34-16 point Analog Input card values64 registers (16 bit)500 ms100 ms107 ms10 ms717 ms
41-8 point Analog Output card values8 registers (16 bit)500 ms100 ms14 ms10 ms624 ms
516 point Discrete internals from RLL logic1 registers (16 bit)500 ms100 ms3 ms10 ms613 ms
612 registers Analog internals from RLL logic- integers12 registers (16 bit)500 ms100 ms21 ms10 ms631 ms
76 registers Analog internals from RLL logic- reals12 registers (16 bit)500 ms100 ms21 ms10 ms631 ms
8Totals109 reg.3500 ms700 ms187 ms70 ms4457 ms


Benefits of an Organized PLC/RTU Database    To top of page
 

In this case the integrator organized the SCADA data in the PLC memory from where it fell out when the RLL code was written to consecutive PLC registers (a scannable range). In this example we are also utilizing a radio system operating at 9600 baud half duplex. Note that it takes 1 poll and 0.78 seconds to acquire all of the PLCs data vs. 7 polls and 4.5 seconds for the unorganized example. By organizing your PLC/RTU database in to in consecutive PLC registers (a scannable range) the integrator cut the amount of time necessary to acquire the SCADA data from the PLC by 82% as well as reduced the amount of traffic on the radio system by 86%! Additionally if you factor in the probability of all 7 polls in the inefficient example being successful additional gains will be achieved by organizing your SCADA database in your PLCs and RTUs.


Example of an Organized PLC/RTU Database    To top of page
 
Poll #Type Data requiredAmount of Data RequiredRequest poll from host time & turnaround time-msRadio key time-msData trans time-msProtocol Overhead (CRC + header+ tailer ) -msTotal poll time-ms
1Mix of I/O + internals109 registers (16 bit)500 ms100 ms187 ms10 ms797 ms


A Sample Specification to Define a Scannable Range    To top of page
 

Adopting a specification to define a scannable range could be one solution that may improve system communications performance. If your systems integrators adheres to a spec such as the below when developing RLL applications, SCADA systems communications will not suffer due to unorganized data. The below example assumes that the SCADA protocol allows maximum reads of 120 16 bit registers with a single poll. It also assumes that registers used by the RLL application are in the low register area and the spec allows start of the SCADA data in higher, unused 16 bit registers.

The specification is an example only, and it will probably be necessary to resize the allowable data type allowances for registers to fit your applications. Additionally, your PLC protocol will probably require you to use different registers numbers than I have used here.

The specification is designed to allow for a single poll to read the entire database from a typical small to midsize PLC system. See the second table for larger systems. For systems that have multiple distinct applications running in the same PLC, the specification may be used to poll each application as a separate poll. This will help separate data for the different applications minimizing confusion.

A point to be made is that I would recommend that the specification be used for wire or cable media as well as wireless communications.


Example of a Specification to Define a Scannable Range - Poll #1    To top of page
 
Poll#Type Data requiredAmount of Data AllowedStart RegisterStop Register# of Points allowedTotal Registers in Poll #1
1Discrete Input card status12 registers (16 bit)410004101119212
1Discrete Output card status4 registers (16 bit)41012410156416
1Discrete internals from RLL logic2 registers (16 bit)41016410173218
1Discrete internals from PLC diagnostic registers2 registers (16 bit)41018410193220
1Analog Input card values64 registers (16 bit)41020410836484
1Analog Output card values8 registers (16 bit)4108441091892
1Analog internals from RLL logic- integers12 registers (16 bit)410924110312104
1Analog internals from RLL logic- reals12 registers (16 bit)411044111512116
1Analog internals from PLC diagnostic registers5 registers (16 bit)41116411205120


Example of a Specification to Define a Scannable Range - Poll #2    To top of page
 
Poll#Type Data requiredAmount of Data AllowedStart RegisterStop Register# of Points allowedTotal Registers in Poll #2
2Discrete Input card status12 registers (16 bit)411214113219212
2Discrete Output card status4 registers (16 bit)41133411366416
2Discrete internals from RLL logic2 registers (16 bit)41137411383218
2Discrete internals from PLC diagnostic registers2 registers (16 bit)41139411403220
2Analog Input card values64 registers (16 bit)41141412046484
2Analog Output card values8 registers (16 bit)4120541212892
2Analog internals from RLL logic- integers12 registers (16 bit)412134122412104
2Analog internals from RLL logic- reals12 registers (16 bit)412254123612116
2Analog internals from PLC diagnostic registers5 registers (16 bit)41237412415120


Organize your Data for Efficient Polling    To top of page
 

Include in the specification for your RLL program the organization your PLC/RTU data into sequential registers so they may be polled with the fewest number of polls from your host. Failure to do so is the single most frequent cause of poor performance in SCADA systems. Many integrators fail to take the time to organize the process database in these PLCs or RTUs. They rely on making the host system scan the remotes multiple times to get required data for the user's application. This may be tolerable on fast, hardwired systems but will usually not work on systems where wireless media has been deployed. I have seen systems that required the host to poll a single PLC >20 times to acquire all of the SCADA data. The SCADA data was mapped into a sequential group of some unused registers which allowed the host to acquire the data in 2 scans or a 10 fold improvement. Many PLC and RTU protocols support the reading of 100 or more registers with a single poll. Take advantage of this capability to make your system as efficient as possible!


How is NetSCADA designed to make PLC/RTU communications efficient?    To top of page
 

NetSCADA is designed to work with all media types and has special features that make communications to remote PLCs & RTUs easy and efficient. NetSCADA allows each communications drop and poll to be configured individually to take into consideration poll frequency, communications time-out time, media delays, and bandwidth. Additionally, NetSCADA is designed to allow the developer to organize the PLC & RTU database to facilitate efficient communications when using limited bandwidth media such as radios. NetSCADA promotes organization of the PLC/RTU database to minimize the number of communication polls necessary to acquire data from or control a PLC/RTU. Click here to see more on how to set up NetSCADA for efficient PLC/RTU communications.


Definitions    To top of page
 
  • Request poll from host time & turnaround time – This include the amount of time that it takes for the host to the insert the poll into its queue, for the radio to transmit the poll, and for the remote PLC/RTU to process the request for the data.
  • Radio key time – May also be called radio key delay time or possibly called RTS-CTS delay time . This include the amount of message time that it takes for the radio to key the transmitter and become ready to transmit data. This time typically can be from 10ms to 100ms for data radios. Check your radios specification for the proper setting for radio key delay.
  • Data trans time - This include the amount of message time that it takes for the bytes for the requested remote’s SCADA data.
  • Protocol overhead (CRC + header+ tailer) – This include the amount of message time that it takes for the host or remote to calculate error checking bytes such as a CRC or Check Sum, these error checking bytes, plus with typical header and tailer bytes in the packets.

Additional Resources   To top of page

 

 To top of page

 
 
Home | Products | Support | Resources | FAQ's | Links | Search
Web Demo | Site map | Company Info
 

Last updated: January 4, 2005
© 1999 - 2005 by NetSCADA, Inc.,   All Rights Reserved
For more information, E-mail   info@netscada.com
Send web site comments to our  Webmaster
Contact NetSCADA at (337) 839-1020.