An introduction to SCADA programming for monitoring remote telemetry

Previous: What is SCADA and how to learn it

"SCADA" vs. "DCS"

SCADA technology is a more modern version of network alarm monitoring tech that's been used since the 60's. The broader term defining those systems is "DCS" (Distributed Control System). Factories are big users of these systems.

The trouble with DCS, however, was that it wasn't meant to cover a large area. Think "single plant" rather than "gas distribution network".
SCADA, on the other hand, was built to meet the need of large area usage (or even an entire nation).
This opened up new doors and remote-management options in several industries, including: manufacturing, water and sewage, electric power generation and mass transit.For this reason, SCADA programming is a very important skill in the modern economy.

Real-world conditions must be switched to machine language and then into signals that humans can read, record, and analyze. Therefore, SCADA system development involves programming at various levels.

In SCADA programming, data is collected at the Remote Telemetry Unit (RTU) and has to be changed into signals, which is followed by reading this data that requires a Human Machine Interface (HMI). Often, this data also has to be grouped and stored (history databases) for trend and analysis work. As a result, unique database systems have to be developed. Networks and communication systems bring in more varied requirements.

How SCADA Works - Components and System

A SCADA system, at the machine level, consists of a central station for gathering data and managing the overall operation. It also has sensors (these could be RTUs, or PLCs) placed near to where the action is. The RTU or the PLC collects the information locally and then passes it on to the central station. This can be located several miles away.

RTUs and PLCs today are capable of controlling the actions within their range of vision through closed loop feedback systems. The central station oversees the overall performance of the one or more RTUs/ PLCs under its control. SCADA systems also allow staff or supervisors to change the settings as appropriate at the level of the RTU or the central station. Alarming conditions like high temperature can then be stored and displayed.

Real World SCADA system example:

One of our clients came to DPS with the following requirements where we proposed a follow up solution:

List of Requirements

  • SCADA system needs to manage water flow and quality in a pipeline approx 2 miles long.
  • The pipe is 36" in diameter and already has SCADA controlled valves installed. (Unknown valve brand and quantity at this time but they are new.)
  • The pipe has existing threaded access holes for sensors (quantity, hole size, tooth count, and pitch unknown at this time).
  • Sensors for the following needed: flow rate & salinity (possible pH and temp as well but not sure).
  • SCADA system must also remotely turn on/off and manage electric-based water pump motor rpm for flow control.
  • Communication between RTUs and T/MONs would be IP Ethernet based (via VPN WANs or LANs).
  • High-availability and redundant T/MONs and RTUs not initially needed.
  • A central office (NOC) will be hosting the T/MON.
  • RTUs will be installed in field-based communication "shacks" using local solar-based DC power stations using typical battery systems.
  • Number of sensors: approx 4.
  • Number of valves: approx 2-4.
  • Number of electric pumps: approx 2.

Basic Solution Includes:

  • An RTU at each end of the pipeline (2) to connect with the sensors and valves.
  • One T/MON to support the two RTUs.
  • Water flow sensors (maybe 2).
  • Water quality sensors (maybe 2).
  • Water pump electric motor RPM sensors (maybe 1-2).
  • Relays or something similar to interface with the existing SCADA-based actuated valves.
  • Field shack sensors: air temp sensors, voltage (power) level sensors.
  • Relays or something similar to interface with the electric water pump motors.
  • Recommended backup/spare parts and components.
The T/Mon master station and NetGuardian RTUs would need to be "programmed" (configured/provisioned) in their own interfaces to complete this SCADA installment.

While SCADA technology was developed somewhat later, similar monitoring systems have been in use since the 1960s. Such systems are called DCS (Distributed Control System). DCS have been used for facilities like factories.

However, such systems are not effective in covering large areas like those used in gas transport systems.

SCADA has been specifically developed to meet requirements covering large territories. Therefore, such a system can be used in various industries and for industrial processes. This includes: manufacturing, water and sewage, electric power generation and mass transit. This is why SCADA programming plays such a big role in the system's development.

It can also be used for facility processes in private or public facilities. This includes: buildings, airports, ships, or space stations. This is done to monitor and control: HVAC, access control, and energy use management. The possibilities are endless.

A Practical Approach To SCADA

Even with all this being said, SCADA systems are being put into use with a greater regularity in today's competitive manufacturing world.

SCADA systems are used to perform data collection and control at the supervisory level. HMI's are typically seen as local user interfaces that allow staff to control the machine or process locally and perform SCADA programming work to customize the system.
SCADA Diagram

Data collection begins at the PLC level and includes readings and gear statuses that are communicated to a master when needed. Data is then compiled and formatted in such a way that a control room operator using an interface terminal can make supervisory decisions that may be required to adjust or override normal PLC controls. The tags (data) are collected locally in the SCADA software database or into a Historian (distributed database) to allow trending and other analytical work. SCADA programming by a technician adjusts the system as needed.

These dispersed measurement and control systems provide manufacturers with a flexible software solution that can be tailored to meet their exact manufacturing needs.

What is involved in Supervisory Control and Data Acquisition (SCADA) programming?

With more and more SCADA systems being deployed globally, the odds are increasing that you may be called on someday to program a system. So what will that involve?

How exactly you'll do your programming depends on the system. In some setups, you'll be designing logic chains to be carried out when certain "trigger events" occur. This is common in manufacturing. If you work with a large-scale network (telco, power utility, railway, government, etc.), it's more likely that you'll be working in simpler interfaces and won't really be "programming" in the traditional sense. You won't be writing code on a dark terminal somewhere; you'll simply be using an RTU's web interface.

An RTU web interface is a great example of "configuring" a SCADA implementation rather than "programming".

After you've wired some inputs into the RTU, you'll have to tell the RTU (via its web interface) what to call each item. Did you wire in a temperature sensor? A generator voltage? Something else?

Higher up the chain, you'll need to perform similar programming of your master station (HMI). This is important, because your master station brings together all of your RTU/PLC elements into a single view. "Programming" in a master/HMI context involves creating maps or diagrams that provide a view of your system in an emergency.
You want to see exactly WHERE a problem is, not some code number or label.

Software Languages used in SCADA Programming

Most SCADA systems are now programmed using standard interfaces whenever possible, i.e. C or a derived programming language.

You shouldn't have to dig that deep unless you are a really advanced user.

As a SCADA professional, you are required to maintain the software programs on your SCADA systems. This includes updating software and applying bug fixes and enhancements. You won't typically be working with the program code itself.

Next: SCADA tutorial from SCADA experts

Download the complete SCADA White Paper now (PDF)

SCADA White Paper

The Fast Introduction to SCADA Fundamentals and Implementation by Bob Berry is a quick, 12-page introduction to SCADA. This guide shows how you can use SCADA effectively and profitably. Concrete applications and examples are included as illustration and to reinforce best practices.

Get Answers to All of Your SCADA Questions

At DPS, we're totally focused on remote monitoring (SCADA). We've worked on thousands of projects that involve SCADA in one form or another.

That experience means that we have SCADA experts on staff. Send us a quick online message (or just give us a call) and we'll answer any SCADA question you have.

Get a Custom Application Diagram of Your Perfect-Fit Monitoring System

There is no other network on the planet that is exactly like yours. For that reason, you need to build a monitoring system that's the right fit for you.

"Buying more than you need" and "buying less than you need" are real risks. You also have to think about training, tech support, and upgrade availability.

Send me a quick online message about what you're trying to accomplish. I'll work with you to build a custom PDF application diagram that's a perfect fit for your network.