Single board controllers such as an Arduino are amazingly powerful and inexpensive maker
hardware with the potential to support industrial applications, however, by industrial standards
they are fragile and difficult to integrate with common hardware used in typical panel building.
Nonetheless, they are easy to program, and many control engineers find them a versatile solution
for small-scale projects. To solve this conundrum, AutomationDirect has developed
an industrialized controller built with housings and form factors typical of conventional PLCs.
The ProductivityOpen Arduino maker zero compatible controller is DIN rail mountable and works with
other AutomationDirect communication and IO modules to support connectivity
common to industrial control panels. This demonstration project set out to
create an industrial type application using the ProductivityOpen and associated components
to see what advantages they offer over conventional maker hardware.
Previous microcontroller projects included using an Arduino to control a flow loop and a Raspberry
Pi to perform model-based control. The project objective involved controlling a hot air heat gun
to solder large components. The gun produces about 1,500 watts of output and it directs
heat toward a copper heat spreader positioned on a special table to facilitate mounting a transistor.
The challenge is controlling the heat output at a specific steady temperature using a PID loop.
An Arduino-based controller can easily handle the data processing when provided with an
accurate temperature measurement of the copper plate using a thermocouple. AutomationDirect's
ProductivityOpen P1AM-100 CPU works with the Arduino integrated development environment
and interfaces with the Productivity 1000 series communication and IO modules
as well as maker-oriented interface shields so hardware can be combined as needed.
Adding a standard temperature input module provides the interface and data processing
for a type J thermocouple. The sensor attaches directly to the copper plate to provide robust and
responsive temperature data. The ProductivityOpen prototyping shield is used to support additional
bits of circuitry and adding a bracket and two DB9 connectors simplified the necessary connections.
The heat gun is controlled using a zero-voltage switching solid-state relay driven by a digital
output pin from the CPU to turn the gun on and off to throttle its output. The AC power line
phase is sensed by an input pin to the CPU to synchronize with the solid-state relay.
To provide a mechanism for data display and control a maker community Adafruit 772 16x2
LCD display device with push buttons communicates to the CPU via an i2C interface
using only two digital pins to drive the display and scan the push buttons. With all the control
interfaces working, the next step was creating application code including the PID algorithm. The
operator starts and stops the control algorithm as required. The simple state machine allows cycling
through each of the settings via the left and right buttons while adjusting parameters with
the up and down buttons. The select button is used to start and stop the PID control.
Two lines of 16 characters display all the necessary information
including the actual temperature in the top left with the set point immediately below.
The throttle setting is shown in the bottom center along with the current state of the state machine.
As with any loop application, PID tuning was necessary to overcome
temperature overshoot and oscillation. So, what does this project tell us about
the controller? Why use it? A conventional Arduino has many capabilities. It is inexpensive and it is
easy to program using C or C++. To many engineers this is a very clear choice but not without its
drawbacks. First, the physical fragility. Second, various interfaces such as reading a
temperature sensor or other type of industrial instrument must often be built from scratch.
A small PLC can also handle the necessary control requirements and it will have accessories designed
to act as interfaces to those external devices. It will also be more physically robust and easier
to assemble using standardized interconnections and DIN rail mounts. A PLC features specialized
software with background utilities that identify when problems are developing
and can warn the operator or shut down to a safe state. These capabilities are not part of the
native Arduino IDE. The main downside of the PLC is its higher cost combined with its ladder logic
programming environment which is foreign to a typical maker. An industrialized Arduino such
as the AutomationDirect ProductivityOpen is a useful compromise between those two extremes.
Industrial form factors overcome the fragility of unprotected boards and simplify connectivity.
Modular interfaces for industrial sensors and peripherals are available. Hardware versatility
allows use of industrial and maker devices including DIY adaptations. Programming using
C and C++ is possible along with other platforms including productivity blocks. However,
the lack of protective and housekeeping software functions available from a PLC should give an
engineer pause to ask: what could potentially happen with this system if the controller
fails? An engineer considering a small-scale project such as the one here has some critical
questions to ask but it is always helpful to have the widest variety of options available.