Like the Tower of Babel, control system programming in the past was the domain of many disparate languages that did not interact across disciplines. Programming has been a crucial element of control systems since the inception of automation itself. The early days of the PLC were built on the language of electrical wiring diagrams used to document relay control systems. Relays as a source for control have serious limitations.
The history of the last 60 years of control evolution has been segmented by the type of machine or process being controlled. Refining of petrochemicals depended on SCADA systems with widely distributed PID control hardware and software. Machine tools use completely different hardware and software to perform tasks at high speed and high precision through mechanical actuators. These two forms of control have almost no resemblance to each other. Is it any wonder then, that the controls industry has been slow in evolving into a universal programming environment.
In the last few years, the controls industry has seemingly migrated, almost unintentionally, to a position in which any controller can control anything, process or discrete. The PLC migrated to the PAC, automation controller, and with the proliferation of hardware and software for these systems, became adopted into complex applications that far exceeded the ability of relay based control system.
These trends are easy to understand. Hardware has evolved to the point that today’s cell phone with quad processor has almost unlimited compute power for control applications. In the past, control hardware was gated by speed, not only of executing instructions, but also the speed with which inputs and outputs were sensed. In analog inputs and outputs, sampling rates can still be a concern in some applications. However, where speed was once a limitation for most control system applications, today’s processor platforms and networking update in microseconds.
Control descriptive languages have also migrated. IEC 61131-4 incorporates function block programming. Some suppliers offer the function block to enable custom programming and most vendors offer a suite of function blocks to support motion control. Having overcome these barriers, the relay logic programming environment can handle any application from custom production machinery to robots. Control system programming was once divided into many unique languages is finally migrating into a few high level environments and becoming more cross functional and intuitive.