In the most general sense, a controller receives some type of input and produces outputs for some device, most commonly an electric motor. More specifically, machine control, unlike a more specific type of controller such as a motion controller, refers to the control of an entire stand-alone machine such as a CNC machine, packaging machine, or even a vending machine.
The machine controller’s primary operations include scanning I/O, updating output and process control. After an initialization phase, the controller will continuously read inputs, calculate control parameters for the machine process using application-specific logic based on the input data, and then update outputs to the machine. If the controller is turned off, some shutdown process may be completed.
The central part of a machine controller is the controller itself, which can take on several forms. For single machine control, a programmable logic controller (PLC) or a programmable automation controller (PAC) is usually sufficient to handle the job. PLCs are usually programmed using ladder logic or sequential function charts. The controller receives various sensor data, processes this information and executes controls via some combination of digital and/or analog I/O signals to turn on or off processes, actuate or stop movement, and take user or environmental input and make decisions based on these inputs. Machine controllers will generally work together with some type of human-machine interface (HMI). These can be either integrated with the controller as one piece or can be stand-alone units that communicate with the controller.
More recently, machine control has seen a move to PACs because they can offer better performance and a wider range of functions than traditional PLCs. For instance, PACs can support high-speed data acquisition and processing, as well as motion control and vision functions.
In order to take advantage of all the features and capabilities of a PAC, the application code must be well designed, balancing and coordinating various controller processes such as I/O, process control logic, communication to an HMI unit and other tasks.
There are a number of considerations to keep in mind when selecting a machine controller. One of the most important is the number and type (i.e. analog or digital) of I/O the controller will have to handle. Also, do the speed requirements of the machine match up with the controller’s capabilities? For instance, some machine controllers may be tasked with closing servo loops and thus must be capable of handling such a task.
Another consideration is the type of communication link needed. The machine may have special demands or may be wired to accommodate a specific networking protocol, so ensure that the controller can communicate with the machine. Related to the communication link is the programming environment. Is the controller simple to program? Can programs be edited quickly and easily? Lastly, consider any environmental factors in which the machine will have to operate such as shock and vibration, extreme temperatures, and moisture or humidity.