In a broad sense, a programmable automation controller (PAC) is an industrial controller that combines the functionality of a PLC with the processing capability of a PC. The term “Programmable Automation Controller” is generally accepted as having been coined by the ARC Advisory Group, which specified five characteristics that define a PAC:
- Multi-domain functionality
- A single, multi-discipline development platform
- Flexible software tools that maximize process flow across machines or processes
- An open, modular architecture
- Compatibility with enterprise networks
But with no industry-standard definition of a PAC, the distinction between PACs and PLCs is blurry. Higher-end PLCs now incorporate some of the characteristics described above and are encroaching on what was once considered PAC territory. In fact, many PLCs now include standard programming languages, the ability to expand functionality through add-on modules, and connectivity to various bus systems.
However, PACs still differentiate themselves from PLCs by employing a more open architecture and modular design. They’re also more capable than PLCs at monitoring and controlling a large number of I/O, such as in a large processing plant or a complex automation system. They do this because data can be exchanged between devices and applications in different domains, such as motion and process control. And, a programmable automation controller can send and receive data to and from other PACs, creating a distributed control system of PACs. With large memory capacity, the ability to handle complex or high-speed analog I/O, and high-speed communication capabilities, PACs are well-suited for vision applications, including vision-guided motion.
The ability of PACs to gather, store, and track large amounts of data means they can handle predictive maintenance and operations monitoring. Data is often stored and accesses through an Ethernet network or a USB storage device.
PACs use the IEC 61131-3 programming languages (ladder diagram, function block diagram, sequential function chart, instruction list, or structured text), and some include standard PC programming languages such as C/C++, so familiarity is retained and the learning curve for programming is low, regardless of prior experience or expertise.
Programming is done in an integrated development environment (IDE) that uses a single, tag-name database. This means that all the defined variables (tags) are kept in one database, which is used by all the software applications — such as HMIs, ERP systems, and vision applications. This greatly simplifies and reduces programming work and makes it easier to scale to larger systems.
In a nutshell, PACs are best suited for applications that require complex controls — in automation, this often means multi-axis, coordinated motion or circular interpolation — while PLCs work well for simple applications such as single-axis motion control.