The application is a simple closed-loop control of flow generated by a pump. A sensor measures flow for the Arduino, which adjusts a control valve actuator to maintain the specified setpoint. The software uses proportional and integral control (the PI part of a PID loop).
Although the Arduino has a good selection of I/O pins, it doesn’t have common I/O capabilities you’d expect in an industrial controller. For example, the flow meter used in the demo produces a current proportional to flow ranging from 4 mA to 20 mA. That’s a very common set up in an industrial device since current loops are able to handle long wire runs, along with other reasons. [Doug] found he had to create a converter to get the data to the Arduino. He also needed a way to convert the Arduino’s PWM output to a 4-20 mA output, which was even more complicated.
Of course, the PLC had all of these options already, along with a user interface suitable to the task. From that [Doug] drew the conclusion that while the basic hardware was cheaper, it was a wash by the time you added the ancillary components. He also felt that the engineering time to build the Arduino version of the project swamped all the costs of using the PLC.
In general, we don’t disagree. However, it depends on what you are trying to accomplish. While a hammer is good at driving nails, it isn’t good with screws. You need the right tool for the job. If you really had 4-20 mA gear and needed a PLC-like user interface, then, of course, the PLC is probably the right choice. However, if you had started with the Arduino, you could have selected better flow monitoring and actuator choices, provided better power, and used a user interface more suited for the Arduino and gotten a better result.
Don’t get us wrong. PLCs have a place. So do Arduinos. So do ARM chips, Raspberry PIs, and 555 timers. For [Doug’s] project a PLC was clearly the right answer. That doesn’t mean it is always the right answer. However, we did think seeing the comparison between the two might help PLC experts understand the Arduino better and vice versa.
Although most PLCs are proprietary, we’ve covered OpenPLC before. Maybe the best idea isn’t to pick one or the other, but use both and play to their strengths.