Language is what we use to describe reality. When we design machinery and write control programs, we use specialized languages to describe the desired behavior we are trying to achieve. And this is the beginning of problems. There is no single solution that describes everything in the control domain. And this condition is aggravated by the fact that each of the many unique disciplines of control has grown within its respective area of expert knowledge.
Ultimately, machine control is about translating the high level language of the programming into the correct manipulation of zero’s and one’s in the control system electronics. And this fact has numerous implications that are not obvious. The biggest issue being, the person that wrote the original executable code or firmware that the processor is executing, probably was not a domain expert in the application that was being programmed.
This should not be a surprise. Being expert in how a microprocessor language is structured, how to write code for that processor, and the infrastructure tools that go with it is a big enough task. Being expert in the application at the same time is not a likely combination. As a result, some of the nuances of things like motion control can get lost in the “translation”. Which means that there needs to be more teamwork between the people writing the code and the people who are actual experts in the application.
There are many descriptive languages that have developed over the years. Ladder logic is a result of describing the large relay cabinets of that were the primary means of control in the 1960’s. With the availability of inexpensive microprocessors, it became more cost effective and reliable to create an electronic representation that mimics the behavior of those systems.
So when we talk about control systems, we are talking about behavior. And every field of control, PLC, CNC, Process Control, you name it. It’s all about behavior. So there is a lot of effort required to make control systems that truly embody the behaviors required from a given discipline. The complexity of trying describe many different control disciplines is evidenced by the number of programming languages. Ladder diagram editors have had to expand their capability to incorporate function block diagrams that can deal with functions that are not native to the PLC, for example. And PLC’s have had to re-invent themselves to handle the ever increasing need for interface with data systems where massive amounts of data are required by other applications.
Most of the executing power is a by-product of the massive speed of the microprocessor. With 50 million instructions per second, you can get a lot of work done with efficient languages, even if everything has to be converted to zero’s and one’s. But the proliferation of cheap silicon also leads to lots of options about what device to use, what language and what support systems.
And at the end of the day, the real question is; “Is there any one language that can support all control applications?”