An introduction to SCADA programming for telemetry systems

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

The trouble with DCS, however, was that it wasn't intended to cover a large geographic area. Think "manufacturing plant" rather than "gas distribution network".

SCADA, on the other hand, was built to meet the need of covering a large territory (or even an entire nation). This opened up new doors and remote-management possibilities 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 physical conditions must translated into 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 RTU and has to be converted into signals, which is followed by interpreting this data that requires HMI. Often, this data also has to be compiled and stored (history databases) for recognizing trends and analysis work. As a result, customized database systems have to be developed. Networks and communication systems bring in more varied requirements.

SCADA Systems White Paper
Download this SCADA White Paper

What is involved in 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 sequences to be executed 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 configuration interfaces and won't really be "programming" in the traditional sense. You won't be writing code on a dark terminal somewhere.

An RTU web interface is a great example of "configuring" a SCADA implementation rather than "programming". After you've wired various 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 provisioning of your master station (HMI). This is important, because your master station brings together all of your disparate RTU/PLC elements into a single view. "Programming" in a master/HMI context involves creating maps or diagrams that provide important situational awareness in an emergency. You want to see exactly WHERE a problem is, not some cryptic code number or label.

Software Languages used in SCADA Programming

Most commercial SCADA systems are now programmed using standard interfaces whenever possible. Most programs are written in C, or a derived programming language, but you shouldn't have to dig that deep unless you're a really advanced user. As a SCADA professional, you are required to maintain the software programs on your SCADA systems, including updating software and applying bug fixes and enhancements, but you won't typically be working with the program code itself.

SCADA configuration example:
One client came to DPS with the following requirements:

  • Need to have a SCADA system to manage water flow and quality in a pipeline approx 2 miles long
  • Pipe is 36" in diameter and already has SCADA-actuated valves installed (unknown valve brand and quantity at this time but they are new)
  • 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
A basic solution for this scenario would include:
  • An RTU at each end of the pipeline (2) to communicate with the sensors and valves
  • One T/MON of appropriate size to support the two RTUs
  • Water flow sensors (maybe 2)
  • Water quality combination 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: ambient 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 respective interfaces to complete the deployment of this particular SCADA implementation.

Recommended White Paper:

The DPS Telecom SCADA Guide is a tutorial that teaches the fundamentals of SCADA with a practical focus. This guide also recommends product features that you can ask vendors about when you are expanding your monitoring.

SCADA Systems White Paper
Download this SCADA Systems White Paper

Mac Smith - DPS Sales
Mac Smith
I can help you with the information above.
Ask me anything:
Get Your Questions Answered




Give Us a Call!

To find out more about this and other DPS applications, give us a call at our toll-free number and talk to one of our network specialists. They'll help you put together a perfect fit solution for your network!

Sales: 1-800-693-0351 · Fax: 559-454-1688