While considering the nature of control we tend to focus on the two big issues; hardware and software. This is very understandable since hardware selection has a lot to do with cost and functionality. Software has more to do with how we program the hardware to execute the tasks that the control system is intended for.
There is a complex interaction between the two that is often not expressed. The hardware has “firmware” that defines the exact capabilities of the hardware. The software is a tool for users to create programs that the hardware executes. These programs are the embodiment of the useful behavior that the process or machine is intended to accomplish.
So is machine control hardware or software? It’s both. The hardware is only capable of executing instructions that we built into it by it’s microprocessor and firmware. Those instructions are merely a library of possible functions. The user program calls those firmware functions in an organized manner to accomplish some beneficial result.
There are a couple of really significant issues that are often overlooked. One is experience. A lot of experience is required to make good product selections. The application of control systems involves understanding the application requirements and matching those requirements to specific hardware. Motion systems that do “high speed registration” for example, require very specific hardware to capture the input signal to define where the registration target is, and then to turn off so that input noise is filtered out. This is a very specific feature, and if you don’t have it, you generally can’t create it.
Complex control requirements like coordinated motion are both hardware and software dependent. The simplest example is to draw a circle with two linear axes. In order to know how to deal with this application the control system must have a dedicated motion controller either as a stand-alone element or embedded within the control architecture. Most high end PLC’s offer a 4-Axis dedicated controller card that do this.
After all the wrangling is done to get the application and hardware properly scoped out, after all the software development work is done, there is still an aspect of control that is missing from this discussion. It is the external wiring of power, power protection, and safety systems. These circuits are separate from the control system hardware and software, and yet embody elements of control that are sometimes necessitated by the hardware itself.
Variable frequency drives and some servomotor drives require time to charge their capacitors. Most drives has interlocks that will prevent operation until the caps are charged. PLC processors require a time delay to insure that the I/O devices are powered before the processor “wakes up”. If not, the processor will immediately fault. The wiring of emergency stop circuits are physically separate and frequently use reverse power logic, they are energized when “off”, to all detection of broken wires.
All of these behaviors are part of the control system but generally not considered in the early phases of system design. Yet all are required in order to make safe, working systems.