Application StoriesPLCProductProgrammable Control

Open-Source Controllers Now Fit for the Factory

Industrial arduino

The AutomationDirect ProductivityOpen is a versatile Arduino-compatible controller designed into a tough form factor suitable for industrial environments.

Hobbyist-grade Arduinos and other microcontrollers are interesting for a variety of applications, but they are simply too frail for any type of industrial application. AutomationDirect has listened to the needs of end users, systems integrators, OEMs, makers, and hobbyists everywhere and created the ProductivityOpen P1AM-100 Arduino MKRZero-compatible controller. The ProductivityOpen provides open-source flexibility in a form factor compatible with established I/O modules and suitable for any industrial project.

In a February 2022 Control Design article authored by Doug Reneker, titled Meet the Industrial Arduino, the ProductivityOpen is applied in a real-world project to find out its  pros and cons. This project is third in a series, where first an Arduino controlled a flow loop using PID control, and second a Raspberry Pi performed model-based temperature control.

Click here to watch a video using the ProductivityOpen!

Smart Soldering Station

The sample project is based on a soldering station, which needs to control a 1500 watt hot-air heat gun to blow through a tabletop grid and maintain temperature so transistors can be soldered to a copper heat spreader. A ProductivityOpen controller would be used to operate the heat gun and maintain a stable temperature. Thermal processes are typically slow to respond, so this is a good challenge for a PID control scheme.

Pieces and parts

A thermocouple provides the temperature measurement, and a solid-state-relay is used for cycle-by-cycle control of the heater element. The controller needs to sense the power line phase, while the operator uses a footswitch so that the system will run safely, and only when the user was present. An HMI display was also needed.

The controls build consisted of (all parts AutomationDirect unless otherwise noted):

ProductivityOpen P1AM-100 CPU

The ProductivityOpen can use typical Arduino “shields” for signals and other capabilities, and it also works with standard AutomationDirect I/O modules. A thermocouple PLC input module was used, with settings determined by consulting a website (https://facts-engineering.github.io/modules/P1-04THM/P1-04THM.html), which offers a configuration tool. In this case, discrete I/O signals were routed to the controller via the P1AM-PROTO shield (using opto-isolators), and the same shield was used for I2C interface communications to the 2-line display. The following block diagram depicts the hardware configuration:

Creating the Code

Programmers can use the Arduino integrated development environment (IDE) to create programs called “sketches,” use the ProductivityBlocks graphical front end to do so in a drag-and-drop manner, or write directly using C/C++. The latter method was chosen for this project.

Functional blocks were created for each basic operation (sensing the power line, controlling the relay, etc.). The relay can be turned on or off for each of the 60 cycles in a second, effectively enabling 0% to 100% throttle control, and a 100-entry rolling table maintains the recent history of on or off cycles. A standard software library enables interface to the display, working in conjunction with a simple state machine.

Users can set the PID parameters and temperature setpoint using the HMI and associated buttons. The display constantly indicates the actual temperature, setpoint, throttle command, and system state.

The heating system initially worked as expected, but with a significant lag common to temperature control applications. After tuning and determining the proper derivative component, the system now applies 100% throttle to quickly heat the part, then throttles back to coast up to the target temperature with minimal overshoot, while continuing to provide puffs of heat to maintain temperature within a degree or so of target.

Arduino Ability

This demonstration shows that an Arduino can cost-effectively control an industrial process or item of equipment. Of course, so can a traditional PLC. An industrialized Arduino like the AutomationDirect ProductivityOpen is a useful compromise providing the best of both approaches. The industrial form factor and traditional I/O mean the ProductivityOpen can truly be used anywhere, while the ability to use shields and modern programming languages provides maximum user flexibility.

All figures courtesy of AutomationDirect