On the surface, microcontrollers and PLCs look like they can basically do the exact same things, right? We feed an input, a program does things, and we get an output. They work continually and quickly, acting in milliseconds and faster than a traditional computer could. Why is there such a vast price difference? Why choose the more expensive option?
Programmable Logic Controllers are nearly custom built for their industries. There are a myriad list of testing and certification processes for these products. There are extensive engineering processes to prove “XYZ is physically impossible with this product.” This is all to meet workplace safety and keep the facility running with as little down time as possible.
For example, we checked the documentation for a random PLC in our inventory, and it had the following ‘general’ certifications: IEC 60068-2-14, 60068-2-1, 60068-2-2, 60068-2-14, UL840, MIL STD 810C method 514.2, EC60068-2-6, JIS C60068-2-6, MIL STD 810C Method 516.2, IEC 60068-2-27, JIS C60068-2-27, NEMA ICS 3-304, EN 6100-4-2, EN 6100-4-3, EN6100-4-4, EN 6100-4-5, EN 6100-4-6, EN 6100-4-8, EN 55011:1998 Class A, UL508, and CE EN 61131-2. That was just the quick summary. There are further certifications when you get into everything that plugs into that PLC, all its expansion modules and accessories.
Microcontrollers aren’t necessarily so heavily tested. They’re designed and produced by the same standards as the rest of the tech industry, which generally comes down to: it won’t interfere with radio signals and it won’t catch fire when we plug it in. This does not mix well with businesses, who’ll be stuck with liability if anything they bought was found to be unsafe or the cause of an accident. Some out there may be, but the well known ones are certainly not so well tested.
Part of the certification process includes designing equipment to go through hell. PLC’s are certified for their working environments. This can include extreme temperatures, vibration, dust, static shock build up, chemical exposure, G-forces, and more. The manufacturer will design it for a given environment, and in that setting, it will thrive every day of operation.
This level of built for hell extends to entire families of PLCs in a predictable way. The logical boards are certified for conditions XYZ, and with a particular enclosure, might resist explosions, water, or corrosive chemicals, with a well known, minimal failure rate. Everything involved is built to that specific controller so everything is tested, known, and guaranteed.
By contrast, the microcontroller industry isn’t generally concerned with this sort of durability. Their major users are building consumer products like TV’s and coffee machines, or are hobbyists building their own creations. Microcontrollers haven’t gotten traction as they are, for industrial use and their manufacturers don’t design them with such durability in mind.
The key feature of both platforms is their programmability. They can be adjusted to fit into any scenario, but even here they are not equal. PLC’s use their ladder diagram language at large, which makes them fast and easy for near any electrician to work on. This is a graphical programming language that resembles electrical diagrams. The existing on-site electricians and maintenance staff can generally look at, read, and understand their PLC’s programming for on-site trouble shooting.
There is however, a bit of a weakness to the ladder diagram: it isn’t a very flexible language. Abstract concepts like memory management are handled for the user and there aren’t any accomodations for clever developers or security. Variables in ladder diagram are not protected as they are in other languages like C. There are function blocks used for mathematical operations, that can interfere with recorded variables, making complex algorithms a nightmare to implement. This ties in with some struggles controlling the program at-large. PLC logic wants to be very rigid and predictable, but in applications where timings and rates are more fluid, it can be difficult to compensate for.
Microcontrollers on the other hand, reign supreme in their adaptability. They are machines which will execute instructions and at the end of the day, that means anything is possible. You can code a raytracing algorithm that will draw a shaded object onto an array of lights, using cross-hatches and dithering to create shading effects. You can manually code a system to send and receive individual bits to a memory card for data recovery. The programming is much, much harder to do, but the skies are also about the limit.
This is an area where the trade offs really show through. You can have something any of your electricians can work on, but maybe isn’t always easy to apply, or you can have a machine capable of anything, but it takes multiple specialists to make it work.
At the moment, PLCs are the dominant control solution for buildings and industrial settings. They have proprietary standards and drop in solutions to integrate with other parts of your building or manufacturing process. These are meant to be a quick, drop-in solution. On the opposing end, micro controllers haven’t made inroads into this market.
This isn’t to say that PLCs are better, because that skips over the context that matters. In terms of logic, either platform can get the job done, but only one was engineered with an industrial ecosystem, of certifications and simpler operation in mind. For most building and process control settings, the PLC was built to do the job, while a microcontroller is restrained, it’s capable, but not given the necessary support and ecosystem to be applied.