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 be 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 Remote Telemetry Unit (RTU) and has to be converted into signals, which is followed by interpreting this data that requires Human Machine Interface (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.\
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:
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.
While SCADA technology was developed somewhat later, similar monitoring systems have been in use since the 1960s. Such systems are collectively called DCS (Distributed Control System). DCS have conventionally been used for facilities like factories.
However, such systems are not effective in covering large geographical areas like those involved 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, including: manufacturing, water and sewage, electric power generation and mass transit. This is why SCADA programming plays such a crucial role in the system's development.
It can also be used for facility processes in private or public facilities, including: buildings, airports, ships, or space stations in order to monitor and control: HVAC, access control, and energy consumption management. The possibilities are endless.
Data collection begins at the PLC level and includes readings and equipment statuses that are communicated to a master as required. Data is then compiled and formatted in such a way that a control room operator using an interface terminal can make appropriate 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 distributed measurement and control systems provide manufacturers with a flexible software solution that can be tailored to meet their specific manufacturing needs.
RTUs and PLCs today are capable of controlling the operations 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 operators 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 recorded and displayed.
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 for SCADA programming
Add to this the fact that SCADA programming systems are still in the process of evolving. Industries are awakening to challenges like the possibility of terrorist strikes.
It is therefore necessary for research and development to be instrumental in creating a better, more foolproof system for both hardware and software levels to be integrated with SCADA programming.
It is therefore easy to see that SCADA programming has a lot of possibilities.