Maximizing RTAC Performance
Maximizing RTAC Performance
INTRODUCTION
The SEL Real-Time Automation Controller (RTAC) family of products combines a powerful
IEC 61131 logic engine with industry-standard protocols to perform tasks such as data
concentration, front-end processing, custom automation schemes, human-machine visualization,
and remote control applications. The RTAC family includes a variety of form-factor devices
which provide the flexibility to automate almost any application, from recloser or automated
switch controls in poll top applications, to a complete data acquisition, automation, and control
system in a substation or processing plant.
This application guide provides SEL RTAC application ideas that you can use to greatly enhance
the performance of any system. By understanding some basic concepts in greater depth, you can
make more informed decisions on how to configure your RTAC project and maximize RTAC
performance. We divide our discussion into the following five areas:
1. Project Execution: Overall operation of the RTAC system, including project execution
time, process execution order, and common issues that affect overall system performance.
2. Intelligent Electronic Device (IED) Communication: Client and server
communication, including general protocol details that can affect performance, and
settings you should consider during configuration and system planning.
3. Background Process Execution: Background processes, as used in this document, refer
to those processes that either run in the background or are part of a project but not
directly configurable by the user. These processes can have a significant effect on web
responsiveness and CPU usage on the RTAC.
4. Analysis Tools: Tools included in the ACSELERATOR RTAC® SEL-5033 Software that
provide you with details regarding communication and RTAC project performance.
5. The RTAC Platform: There are many form factors in the SEL RTAC family and various
amounts of memory and processing power. Choosing the right RTAC product for your
particular project ensures you achieve the best performance.
PROJECT EXECUTION
Task Cycle
An RTAC is an open automation platform with no preset or purpose-built processes pre-
programmed in the system. You can define and configure tasks and processes as a group (referred
to as a “project”), such as custom user logic, IED polling, and reporting to a supervisory control
and data acquisition (SCADA) system. A task manages the execution of each of these processes,
also called Program Organizational Units (POUs). All POUs run within a task. For comparison,
you can think of a task as a main program and each POU as a subtask called by the main
program. Within a project there are two default tasks:
1. Main Task: By default, it contains all user-configured tag lists and POUs, such as
protocols, logic, etc.
2. Automation Task: By default, it remains blank, but you are permitted to assign POUs
and tag lists to this task.
Each task executes on a configurable cycle, referred to as the “task cycle time.” By default, the
Main Task is configured to execute every 100 ms. Unless you are using the Automation Task
cycle, you should leave the configured Automation Task cycle time at the default value of
1000 ms. The Automation Task is a higher priority task that is designed for a separate, faster
processing cycle, if needed.
For example, let us assume we have a requirement to process received MIRRORED BITS®
communications in IEC 61131 user logic every 8 ms, and we also have a requirement to process
IED and SCADA communications every several seconds. To meet the 8 ms requirement, we can
speed up the Main Task cycle time, but that would create an unnecessary burden on the RTAC
system. A more efficient solution would be to move the user logic into the Automation Task
cycle, configure this task to execute every 8 ms, and leave the SCADA communication in the
Main Task cycle at a configured task cycle time of 1000 ms.
Configure task cycle times in the Main Controller Options window, as shown in Figure 1. The
configurable task cycle time allows you to establish deterministic operation of processes within
the RTAC.
4. Tag Processor Mapping: The RTAC maps output values to output IED tags in the Tag
Processor.
5. Send Outputs: A DNP3 client sends the output values to connected IEDs.
See Figure 3 for a diagram of a possible process order. Note that the actual order of the processes
does not match the desired logic flow in the previous numbered list. Based on this less-than-
optimal process order, we predict that the user logic will not reach the correct output conclusions
until several task-cycle executions to collect, evaluate, and move all the required data. In this
example, you should reorder the processes to align with the intended control scheme logic flow,
listed in the previous numbered list (1 through 5), to achieve optimum processing.
Send Outputs
Task
Read IED Data
Cycle
IED COMMUNICATION
IED communication is the configured protocol interaction between IEDs and SCADA; it includes
event collection, polling, and unsolicited data reporting. Although most protocols have unique
characteristics, there are common configurable behaviors that can greatly affect communication
and processing performance.
Event Collection
When a relay detects an event, such as an overcurrent condition indicating a fault, the relay can
create a record with fault information and waveform data that provides a record of power system
conditions before, during, and after the fault. Event records are quite large compared to normal
SCADA data and there are often multiple event records to report when an event occurs.
Collecting event records is desirable and a necessary part of operation, but collecting event
records may place a significant burden on the communications channel. When designing a
communications scheme on a channel that includes event collection, plan for potential delays in
other ASCII data collection when large numbers of event records are collected.
Polling Rate
Polling is the process of an RTAC requesting data from a connected IED and the IED reporting
the data to the RTAC through a supported protocol. Polling is also the process of a SCADA
master requesting data from an RTAC and the RTAC reporting that information. Polling rate is
the frequency with which the client (the device asking for information) requests the data.
Most protocols request data at a configurable rate. It may seem that the highest possible polling
frequency is the best communications configuration, but you must consider several factors when
configuring polling to ensure the best performance of the overall system.
Factors
• IED Response Time. Every device, no matter how powerful, is limited by processing
power, system burden, and the physics of how quickly it receives, processes, and replies
to a request. In addition, most IEDs are not strictly communications devices. For
example, meters, relays, device monitors, and other dedicated electronic devices, though
they have the ability to communicate, have a primary, higher-priority task other than
communication. Polling at a rate faster than the IED can reliably reply causes non-
response conditions which usually trigger poll retries. Retries make this condition worse
by causing more non-response conditions, lost data, and offline indications on the RTAC.
• Data Transmission Speed. Every data channel transfers data at a limited rate. When
configuring poll rates and poll timeout periods, you must consider how long it takes to
physically transmit the maximum number of bits in a message. Polling for data faster
than that data can physically move across a wire can result in polling errors, data delays,
and overall slower updates.
• IED Data Update Rate. If an IED updates analog values once per second, then polling at
a rate faster than once per second wastes bandwidth and increases the burden on the
RTAC, the IED, and potentially on other equipment on the same communications
channel.
• Data Processing Rate. Similar to IED data update rate, the polling device (SCADA,
RTAC, etc.) has a specified processing rate. If a client device polls an IED faster than the
client device can process the data, then not only is there no benefit, but the extraneous
polls further burden the communications network, the polled IEDs, and the client.
In summary, configuring a device such as an RTAC to poll IEDs too quickly causes sporadic or
continuous offline conditions on the communications channel, delayed data updates, and delays in
control operations. You should configure polling at a rate that meets your required data update
rate, but no faster.
Example
Configure an RTAC with a processing cycle of 150 ms, with 10 clients, all multi-dropped on an
EIA-485 loop, and all communicating using the Modbus® protocol. Configure each Modbus IED
client instance in the RTAC project to poll 200 registers from each IED every 100 ms at 9600 bps
with a 100 ms timeout. Consider the following issues in this example:
• Issue 1. During each task cycle, the RTAC evaluates the timers in each protocol POU to
determine if enough time has elapsed to warrant queuing a poll. Polls are scheduled every
100 ms, but the timer is only evaluated at each task interval, which in this case is every
150 ms. As a result, the most frequent that polls can be sent is every 150 ms.
• Issue 2. Every 100 ms, every poll for every configured IED in this project is supposed to
be queued to transmit. Issue 1 shows that polling will actually occur every 150 ms.
However, because the IEDs are multi-dropped, only one IED can be polled at a time. The
RTAC polls one IED, waits for a reply, and then polls the next one. This implies that, if
every poll were successful, and if we do not consider reply times or other delays, then
each IED would reply, at most, once every 1.5 seconds (150 ms • 10 IEDs = 1500 ms). In
any case, the value of the POU pin labeled Buffer Overflow will increase on each IED
instance in the RTAC project because the POU attempts to queue polls faster than they
can be sent out and processed.
• Issue 3. Even if only one IED were configured in this manner, it would be impossible for
the client to send the poll to the IED, the IED to receive and process the poll, the IED to
reply to the poll, and then for the IED to transmit more than 3200 bits (200 registers •
16 bits/register + 16 bits CRC + header) back to the client every 150 ms. When the
RTAC does not detect a reply within the configured 100 ms timeout, it marks the poll as
failed and will retry a configured number of times. As the retries are performed at the
same speed as the original poll, they too will fail, and the RTAC will mark the channel as
offline. This causes the channel to go into Slow Poll mode, which means the Slow Poll
Multiplier is multiplied by the poll rate. The slower poll rate may result in some
successful polls, and the status of the channel may momentarily change to online.
Immediately, however, the process will repeat itself.
Tag Quantity
Polling for more data than is needed wastes bandwidth and processing capacity on the client and
on the server, and it can introduce delays in control operations. For example, if an IED has 500
analog values and you only need to see 35 of them, you can configure the RTAC to only poll for
the needed 35 points, or you can configure the IED to only deliver the 35 points, depending on
the protocol you are using. Conversely, if you are using a protocol such as Modbus that polls for
contiguous lists of registers, it may actually be more efficient to configure a single poll that does
include some unwanted data rather than configure multiple polls to retrieve a few registers each.
However, if there are large gaps in the register ranges that you want to poll, it is better to
configure one poll to access one contiguous group of registers and another poll to access a second
contiguous group of registers to avoid an excessively large single poll that may exceed protocol
or timing restrictions. Figure 7 gives an example of using multiple polls for polling three sublists
of a Modbus map rather than configuring one very large, monolithic poll.
Deadbanding
Under real-world conditions, change data can cause the change poll response to grow so large that
it will not fit in one response message. Binary change data can cause varying response message
lengths, though typically binary changes are not so great as to cause communications issues.
Analog changes, however, are determined based on a configured deadband value. The deadband
value can be a set quantity of counts, a percent of change, or another change detection method,
depending on the protocol and implementation. In basic terms, an analog value that changes in
relation to a deadband value is considered significant by the protocol driver, insomuch that the
protocol creates an event containing that value. When the IED is queried for any changes, it
replies with all events, binary and analog, from the time the last query was processed. The analog
event contains the time at which that analog value excursion beyond the deadband occurred, as
well as the analog value at the time of the excursion. Setting the deadband value to 0, or to a very
low number, results in excessive analog change values queuing to the next poll reply.
Consider an IED with 100 analog points, each with a deadband value of 0. If each analog value
stays the same, the change request poll will result in 100 analog values. For each change in value,
the IED creates another event. For example, if the Phase A current increases by a value of one,
and if it does so 15 times between the last change poll and the present change poll, then the IED
will reply with all 100 analogs, as well as 15 change events, for the one analog that changed.
Typically, most analogs change by at least one count between polls, so the change poll response
from the IED can rapidly grow to an enormous number and completely block all other
communications on that channel.
Note that the polling system does not typically use analog event values. Usually, SCADA or
communications gateways only display the latest present value. Unless the polling system is
archiving the analog events, only the latest change is used; the others are disregarded. If the
polling system uses the analog values in a logic scheme, it is not usually desirable to process all
change data from the time of the last poll, but rather to only apply the latest value to the logic
algorithm. Excessive analog changes, and the resulting large poll responses, often cause
communications timeouts, channels toggling between online and offline, delayed data gathering,
and delays in control operations.
Consider the source of the analog point to determine the likelihood of rapid changes when
configuring an analog deadband. Above all, consider what data your system needs and why you
are using analog deadbands. For example, setting a deadband to a value of 1 on a line voltage
may be excessive because changes this small may be of no consequence to the system. Any
changes in frequency, however, may be of great consequence to the system and should be
reported immediately. In some cases, a user may want to receive immediate notice of any binary
changes and a steady update of all static analog values. As we observed, setting analog deadbands
at small values will not necessarily result in immediate retrieval of the values because the amount
of change data returned may be so great as to cause update delays or even cause the channel to go
offline.
The following steps are the preferred method of obtaining binary event change data, as well as all
the latest static analog values for an IED (using DNP3 as an example):
Step 1. Configure each analog deadband value in the IED at a number that is large enough
so that it is not exceeded.
Step 2. Configure the client to poll the IED with a Class 1, 2, 3 poll every second.
Step 3. Configure the client to poll the IED with a custom analog input poll (static data
only) at the desired interval.
Unsolicited Reporting
Excessive traffic from events is not limited to poll and reply scenarios. Consider protocols that
support unsolicited messaging, such as DNP3. The IED reports changes to the RTAC without
being polled and only when something significant occurs. This may seem efficient during
commissioning, but consider that when an event occurs which is significant enough to affect
values on one IED, that it will also likely affect many values on many other IEDs. Furthermore, if
these IEDs are on a multi-drop network, a storm of unsolicited responses could cause message
collisions as all of the devices try to communicate at the same time. Even with collision
avoidance algorithms, the multiple iterations of retries and collisions could introduce significant
delays and the potential for loss of event data.
If, instead, the client polls each IED in-turn, then we can avoid communications collisions and
gather all data deterministically. Placing each client on a separate communications channel also
reduces the potential for communications collisions.
The IEC 61850 GOOSE protocol is a good example of an unsolicited protocol that can sometimes
be efficient but can also cause excessive communications issues. For example, GOOSE sends out
a multicast message when a significant change of data occurs. It does not get a reply, but rather it
continues to send the same message at intervals until the timeout expires or GOOSE must report
another change. This way, GOOSE is more likely to ensure that the recipient receives the
message. When a significant event occurs, however, IEDs using GOOSE messaging can start a
storm of network traffic that actually hampers the ability for GOOSE message subscribers to
receive messages in a timely manner. This situation can also cause a loss of event data because
packets are dropped by attached network devices. Correct message triggers (such as analog
deadbands) that limit data to what is needed, as well as appropriate GOOSE message
configuration, are all critical when using GOOSE protocol.
Network Global Variable Lists (NGVLs) are user-defined lists of variables that the RTAC sends
to predefined broadcast addresses. By this means, the RTAC can communicate data to another
RTAC or group of RTACs over Ethernet on a cyclic basis or triggered by data change. As
previously discussed with reference to GOOSE, NGVL data traffic may be acceptable during
testing, but when real-world events trigger the sending of many NGVL messages, the RTAC can
flood the network, causing communications and CPU usage issues. As with any protocol, do not
configure NGVLs to transmit messages more frequently than they can be processed by the target
devices. For example, if you configure RTAC A to transmit NGVL messages to RTAC B on a
cyclic basis, ensure the transmit cycle is not faster than the configured task cycle time on
RTAC B. Otherwise, you will cause needless network bandwidth usage as well as potential buffer
overflow issues on RTAC B.
EtherCAT
EtherCAT®1 is a protocol used to transfer information between SEL Axion® I/O modules and an
RTAC (e.g., an SEL-2240). Although EtherCAT runs within the process cycle, its execution is
not configurable by the user beyond the configuration of individual I/O modules. The EtherCAT
train communicates with all I/O modules at a given rate, regardless of the user-configured task
cycle time. Because of this high rate of message processing, it is possible, therefore, that a project
1
EtherCAT is a registered trademark and patented technology, licensed by Beckhoff Automation
GmbH, Germany.
executes well within the configured task cycle, but that CPU usage on the RTAC appears quite
high (i.e., near or at 100 percent).
Take, for example, an Axion project configured with only one 16 AI card, a few small programs,
and a small HMI configured at a 1000 ms task cycle time. The total task cycle time is 3.7 ms,
which is too small to appear as a percent of task cycle usage on the Dashboard, as Figure 8 shows.
EtherCAT drives CPU burden higher than normal. Because you cannot adjust EtherCAT usage,
you should focus on task cycle time, poll rates, number of IEDs, and number of tags in your
RTAC project to reduce CPU usage. Generally, the quantity of tags configured with Live Data
enabled in the Tag Processor is the only user setting that affects traffic on the RTAC web
interface. As expected, viewing SOE logs or event data in the Event Collection window also adds
traffic burden while the pages populate their respective web interface views.
Indirect Tagging
In some HMI projects, you may have many similar diagrams that display data for many different
devices. For example, consider a group of buildings on a college campus, each building with an
electric meter and each meter with an HMI diagram. Tags from each meter in the RTAC project
are used directly in each corresponding component of the diagram and are then repeated for each
building. The result is the following:
• Number of Diagrams = (number of meters)
• Number of HMI tags = (number of meters) • (number of tags per meter)
The following is an example of this type of RTAC HMI project:
• Buildings, each with a single meter = 50
• Tags per meter = 110
• HMI polling interval = 2 seconds (default)
• Number of individual HMI diagrams = 50
• Number of individual imported meter images as PNG files = 50
The result is an initial HMI load burden of 50 screens with 50 imported images and a tag update
of 5500 values every 2 seconds. Most likely, this amount of burden will cause a lag in
performance.
Alternatively, there is a method referred to as “shared tags” or “indirect tagging” that can greatly
improve HMI responsiveness. You can create a single diagram that represents one building.
Using the example RTAC project above, follow these steps:
Step 1. Create a single set of virtual tags in the RTAC project that represents all the
required tags from one meter. In this example, there would be 110 virtual tags.
Step 2. Map the virtual tags to the components on the single diagram instead of mapping
them directly to a particular meter.
Step 3. Create a binary control for each meter or building to provide the user a means of
selecting which meter values populate on the HMI.
Step 4. Program conditional mapping in the RTAC to populate the virtual tag list with
values from Meter 1, Meter 2, etc., as the specified by the user in the HMI.
The following illustrates the improvement of the RTAC HMI project using indirect tagging:
• Buildings, each with single meter = 50
• Tags per meter = 110
• HMI polling interval = 2 seconds (default)
• Number of individual HMI diagrams = 1
• Number of individual imported meter images as PNG files = 1
The result is an initial HMI load burden of 1 screen with 1 imported image and a tag update of
110 values every 2 seconds. The result is a vast improvement over the traditional HMI project,
with faster initial HMI load timers, faster tag updates, better screen responsiveness, and less CPU
burden on the RTAC.
Figure 9 exemplifies selectively mapping meter tags to virtual tags. You can select the control tag
global_building1 from the HMI. The Tag Processor assigns tags from the SEL_735_1 meter to
the virtual tags. If you select the control global_building2, then the Tag Processor assigns
SEL_735_2 meter values. The actual HMI diagram displayed does not change, but the values
change to correspond to the requested meter. The diagram title also changes to display the value
from tag HMI_Tags.Building_Name.
Note that this is a basic example. You can expand the capabilities of this basic indirect tagging
method by assigning the Visible attribute of various images (such as other meter PNG files) to the
control tag; this way, the picture of the specific meter in use on the single HMI diagram appears
or disappears depending on which building you select.
ANALYSIS TOOLS
The RTAC includes several statistical tools that can aid you in analyzing overall processing
burden. These tools have been referred to at different points throughout this document; in this
section, we describe these tools in more detail, including how you can use them as a way of
evaluating RTAC project performance.
Task Timers
While online with a project, select Tags from the Device Tree. Figure 10 shows the overall
SystemTotal_task_timer, which displays how long it takes (in microseconds) to execute all
processes in the Main Task cycle. Note that in your project max_us will most likely have a much
higher value than average_us. The reason for this is the extra time needed during startup. Click in
the Prepared value column on the row labeled reset_all_task_timers, set the Value to TRUE,
and force the value by pressing <F6> on your keyboard. Press <Shift+F6> to unforce it. This
resets the timers so max_us more accurately reflects the maximum number of microseconds each
task iteration uses. Check that all timers are momentarily set to 0 and that they have repopulated
with presently computed values.
Task Usage numbers are 100 percent or more, your project is not configured efficiently enough to
execute all the processes in the configured task cycle times. Note that the number of users logged
in includes any Open Database Connectivity (ODBC) connections, which includes
ACSELERATOR RTAC connections and web interface connections.
CPU Usage
As mentioned previously, you can view the average CPU burden of an online project by selecting
SystemTags from the Device Tree, clicking Tags, and then viewing CPU_Burden_Percent
(a snapshot burden percent) and CPU_Burden_Percent_5_Second_Average. A high CPU
burden may indicate that the task is having difficulty processing the configured tasks, but not
necessarily. High polling rates, fast protocols (such as MIRRORED BITS or GOOSE), large
numbers of IED connections, and faster task cycle times all contribute to CPU burden. Often,
however, high CPU burden is a result of web or HMI usage; CPU burden also increases when
EtherCAT is running. A high percentage of task cycle time usage, as indicated on the RTAC web
interface Dashboard page (Figure 12), results in increased CPU usage. If the RTAC does not have
an HMI and is not using EtherCAT, if no users are logged into the web interface, and if the
percentage of task cycle time is sufficiently low, then high CPU burden may indicate excessive
protocol traffic and processing. As stated previously, this is most often caused by insufficient
deadband values on analog points and the resulting large quantity of analog event data. You can
verify if IEDs are sending large quantities of event data by using the Comm Monitor, described in
Comm Monitor on page 18 and in the ACSELERATOR RTAC Instruction Manual.
Protocol Statistics
When working on a project online, you can view protocol statistics in the Controller tab of the
individual protocol you are attempting to analyze. POU pins are the inputs that control the
process and the outputs that result from that process. The Controller tab shows the actual values
of all the input and output POU pin settings that have Visible set to TRUE in the POU Pin
Settings tab (see Figure 13). For example, while online, you can view many different POU pin
values, including the following:
• Message_Sent_Count. The number of messages or polls the RTAC sent to an IED.
• Message_Received_Count. The number of replies received from the IED.
• Offline. The IED is failing to communicate.
• Auto_Configuration_Pending. In SEL protocol, polling has not yet started because
automatic configuration is not yet complete.
Some POU pins are common between protocols but many are unique to a specific protocol. For
example, DNP3 client has a POU pin called IIN_2_3_Buffer_Overflow. This is a Boolean value
transmitted by the polled device and indicates that the device is queuing events more frequently
than they are being polled, received by the client, and acknowledged. The usual cause of this
situation is misconfigured analog input deadbands on the IED.
Comm Monitor
When you suspect a protocol issue or another communications issue, the best approach to
analyzing the problem is to view it. You can view raw communications data by using the Comm
Monitor. While online with an RTAC project, select Comm Monitor from the Home ribbon.
Select the connection type from Capture Source drop-down menu, and then select the device
(see Figure 14). A window displays the transmit-and-receive byte stream for the selected device.
You can stop the capture and open it in Wireshark for data analysis. Wireshark is a free, open-
source protocol analysis tool that you can download from the internet (see wireshark.org).
Step 4. Stop both Comm Monitor sessions when SCADA determines that the control was
successful.
Step 5. In the Comm Monitor (or Wireshark), view the time stamp of the command from
SCADA, the time stamp of the command from the RTAC to the IED, and the time
stamp of the indication reply from the IED. By evaluating the relationships of these
message time stamps, you can determine whether the delay occurred after the
RTAC received the control or after the RTAC sent the control to the IED; you can
also determine if the control feedback from the IED was delayed rather than that
the control itself was delayed.
have to consider additional burden, but the preliminary configuration will at least give you an
idea if what you require is feasible with the platform you are testing.
CONCLUSION
The SEL RTAC family provides powerful and flexible automation platforms that can gather data
from IEDs, manipulate data to create useful information, perform custom control logic, and report
data to polling entities such as SCADA systems through industry-standard protocols, email and
text messaging, and through visualization in a web-based HMI. Our recommended best practices
for RTAC configuration, as discussed in this application guide, include the following:
• Poll for data only as frequently as necessary
• Poll for only the data you need
• Report only the data you need
• Process the data (per task cycle time) only as fast as necessary
By following these basic RTAC guidelines, you can improve overall system performance, ensure
correct execution of user logic, and improve web responsiveness.
FACTORY ASSISTANCE
We appreciate your interest in SEL products and services. If you have questions or comments,
please contact us at:
Schweitzer Engineering Laboratories, Inc.
2350 NE Hopkins Court
Pullman, WA 99163-5603 U.S.A.
Tel: +1.509.332.1890
Fax: +1.509.332.7990
selinc.com
info@selinc.com
*AG2017-01*
SEL products appearing in this document may be covered by
U.S. and Foreign patents.