Writing software for control applications isn’t the easiest thing. It’s probably been 15 years since I had to write any actual code for a control application. I have scripted and taught training classes in PLC programming and am very familiar with ladder logic programming and Boolean instructions, although I am less familiar with the latest editing software which has become very sophisticated.
A few weeks ago, I had the opportunity to write a couple of small “C” programs in a training class and re-discovered why I don’t like to write control software. I don’t have much background in C programming. It’s not that C programming is inherently good or bad, it’s just another language. What is difficult to deal with is each controller having it’s own library of C language instructions.
It’s not that any particular language difficult, it’s that every language is iterated on different controllers and the instruction set and programming quirks have to be learned on each platform. Ladder Logic instructions have become largely standardized and the difference from one platform to another are becoming less and less significant. Turning discrete inputs and outputs on and off is pretty straightforward. Reading analog signals, doing some mathematical operations and setting analog outputs is also fairly straightforward. Even when there a lot of I/O to deal with, the knowledge base required to understand the applications of the technology are ultimately very repeatable.
The variations of how to do motion control on different platforms are very significant. Each controller company has to come up with a complete programming environment that defines how to command the controller to execute motion tasks. The creation of commands and processor executables requires coding and testing the code over man years of development. This is a complex form of knowledge capture and there are a lot of nuances as programmers come up the learning curve before good effective programming environments can be created.
This is part of the reason why the motion control field hasn’t progressed as much as other control disciplines. There is no agreement on any standard programming methods past trapezoidal move profiles. The situation becomes more complex because each motion control vendor develops its own programming environment based on the selection of processor platforms and what its programmers come up with for the programming suite. This creates a barrier to entry for new companies, and makes improved code solutions problematic.
Many of the PLC programming suites include dialog boxes that provide scripting for the motion commands in the ladder logic program. The technology is readily available to make a high level motion programming suite that is processor independent and capable of addressing 80-90% of all motion control applications. This will make motion more accessible to a wider audience and simplify the programming aspects of motion and machine control.
We need to bring the industry into the 21st century and make everyone’s lives a little easier.