Choosing an industrial controller
Choose a classic PLC when the specification asks for IEC 61131-3, certified safety or a large modular I/O rack. Choose an open-platform controller (Arduino, ESP32 or Raspberry Pi based) when you want your own code, built-in IIoT and DIN-rail I/O. Choose an industrial PC for vision, AI or SCADA, and a Linux gateway when the job is only to move data.
4 controller types · 8 criteria · When not to choose each one
The four types of industrial controller
Classic PLC
A programmable logic controller from an automation vendor, programmed in IEC 61131-3, with a cyclic scan and local or rack-based I/O.
Open-platform controller
An industrial controller built on Arduino, ESP32 or Raspberry Pi, with protected I/O on DIN rail and code you write in C/C++, Python or Node-RED.
Industrial PC (IPC)
A rugged computer with a full operating system for SCADA, vision, databases or a soft PLC runtime. It usually reaches field signals through remote I/O or a fieldbus.
Linux edge gateway
A small Linux device that reads machines over Modbus or other protocols and sends the data to MQTT, OPC UA, databases or the cloud. It does not run the machine.
Industrial controller comparison by criteria
Eight criteria that decide most projects. Each cell describes the type in general: check the exact model before you specify it.
| Criterion | Classic PLC | Open platform | Industrial PC | Linux gateway |
|---|---|---|---|---|
| I/O and expansion | Classic PLCLocal I/O plus modular racks or backplanes from the same vendor, and remote I/O over the vendor fieldbus. | Open platformFixed I/O on each unit, larger models in the same family, and remote I/O modules over Modbus RTU or TCP. | Industrial PCLittle or no field I/O of its own. Uses remote I/O, fieldbus cards or a PLC. | Linux gatewayFew or no I/O. It reads devices that already have their own I/O. |
| Communications | Classic PLCThe industrial Ethernet protocols of its ecosystem (PROFINET, EtherNet/IP and others) plus Modbus, often through extra modules. | Open platformEthernet, RS-485 (Modbus RTU), I2C and SPI on board, RS-232 on many models. Wi-Fi and Bluetooth on ESP32 and Raspberry Pi based models. LoRa or 4G as option boards. | Industrial PCWhatever the operating system and add-in cards support: OPC UA, databases, web services, fieldbus cards. | Linux gatewayProtocol conversion is its job: Modbus RTU or TCP in, MQTT, OPC UA or HTTP out, often over 4G. |
| Programming | Classic PLCIEC 61131-3 (ladder, function blocks, structured text, SFC) in the vendor IDE. | Open platformC/C++ in the Arduino IDE on microcontroller models. Python, Node-RED or C++ on Linux models. IEC 61131-3 is possible with CODESYS (Raspberry Pi) or OpenPLC. | Industrial PCAny language the OS supports, or a soft PLC runtime with IEC 61131-3. | Linux gatewayNode-RED, Python, containers and configuration files. |
| Determinism | Classic PLCCyclic scan with a defined cycle time and a watchdog by design. | Open platformMicrocontroller models (Arduino, ESP32) have no operating system: the loop is predictable if the code does not block. Linux models depend on system load. | Industrial PCNot real time by default. Hard real time needs a real-time OS or extension. | Linux gatewayNot meant for real-time control. |
| Functional safety | Classic PLCSafety PLC versions certified for safety functions exist from several vendors. | Open platformGeneral-purpose controllers. Safety functions go to a safety relay or a safety PLC. | Industrial PCNot a safety device. Safety stays in dedicated hardware. | Linux gatewayNot a safety device. |
| Certifications | Classic PLCDepends on the model: many have UL, marine or hazardous area approvals. | Open platformDepends on the model. Ask for the declaration and test documents of the exact model before you specify it. | Industrial PCDepends on the model and on the cards you add. | Linux gatewayDepends on the model. |
| Lifecycle | Classic PLCLong product availability with formal discontinuation notices and migration paths. | Open platformDepends on the availability of the base chip or board. The code is portable between models of the same platform. | Industrial PCPC components and OS versions change faster: plan updates and spare units. | Linux gatewayNeeds software and security updates during its whole life. |
| Edge and IIoT | Classic PLCUsually through an extra communication module or an external gateway. | Open platformMQTT, HTTP and Modbus TCP in the controller itself. Linux models add Node-RED, local databases and dashboards. | Industrial PCFull edge computing: analytics, vision, historians, SCADA. | Linux gatewayIts main job: collect, buffer and forward data. |
When to choose each type, and when not to
Classic PLC
Choose it when- The end customer or the plant standard requires a given PLC brand or IEC 61131-3 in its IDE.
- You need a large number of I/O in one rack, with modules you can add or replace.
- Safety functions must run in a certified safety controller.
- Maintenance teams on site only know ladder and the vendor tools.
- The project is mostly data, cloud connectivity or custom logic that is hard to write in ladder.
- You build many small machines and want to own and reuse the code.
Open-platform controller
Choose it when- You want industrial I/O on DIN rail and to write the program in C/C++, Python or Node-RED.
- Control and IIoT go together: MQTT, Wi-Fi, LoRa or 4G in the same unit.
- You move a prototype made on an Arduino, ESP32 or Raspberry Pi board to an industrial panel.
- You are an OEM and want the same code base across machines.
- The specification requires a certified safety controller or a specific PLC brand.
- Nobody on the team will maintain C/C++ or Python code.
Industrial PC (IPC)
Choose it when- The job needs heavy computing: machine vision, AI models, large databases or SCADA.
- One computer supervises several lines and the I/O is already in PLCs or remote I/O.
- The main job is direct, fast control of field signals.
- The cabinet has little space or no forced ventilation.
Linux edge gateway
Choose it when- Machines already have their own controllers and you only need their data.
- You need protocol conversion (Modbus to MQTT or OPC UA) and remote access.
- The device must switch outputs or close control loops.
When an Industrial Shields controller is not the right choice
- The safety function itself must run in the controller: use a certified safety relay or safety PLC.
- The specification names a PLC brand, an IDE or a fieldbus such as PROFINET or EtherNet/IP as the control network.
- You need hundreds of I/O in one rack with hot-swap cards.
- The project requires a certification (for example hazardous area or marine) that the model documents do not show.
- The main load is vision or AI that needs a GPU: an industrial PC fits better.
Where each Industrial Shields family fits
Data from the product sheets. Each family has several models: open the product page for the full specification.
| Family | Type | I/O | Communications | Programming | Best fit |
|---|---|---|---|---|---|
| M-Duino | TypeOpen-platform controller (Arduino Mega 2560) | I/OFrom 6 inputs and 11 outputs (19R) to 36 inputs and 22 outputs (58) | CommunicationsEthernet, RS-485, RS-232, I2C, SPI, RTC | ProgrammingArduino IDE over USB or Ethernet. OpenPLC. | Best fitMachine control and Modbus networks |
| Ardbox | TypeCompact open-platform controller (Arduino Leonardo) | I/O10 inputs and 10 outputs (Analog and Relay versions) | CommunicationsRS-485, RS-232, I2C, SPI | ProgrammingArduino IDE. OpenPLC. | Best fitSmall machines and compact panels |
| ESP32 PLC | TypeOpen-platform controller (ESP32) | I/OFrom 9 inputs and 5 outputs (14) to 37 inputs and 24 outputs (58) | CommunicationsEthernet, Wi-Fi, Bluetooth LE, RS-485, I2C. LoRa or 4G option board. | ProgrammingArduino IDE over USB or Ethernet. OpenPLC. | Best fitControl plus wireless telemetry and MQTT |
| Raspberry PLC | TypeOpen-platform controller with Linux (Raspberry Pi) | I/OFrom 6 inputs and 11 outputs (19R) to 39 inputs and 24 outputs (58). CPU-Gateway version without local I/O. | Communications2 x Ethernet, RS-485, Wi-Fi, Bluetooth LE, I2C, SPI. UPS and RTC built in. | ProgrammingPython, Node-RED, C++. IEC 61131-3 with CODESYS. | Best fitControl plus data: edge, gateways, local HMI |
| TouchBerry Pi | TypePanel PC with Raspberry Pi (7", 10.1" and 18.5") | I/O3 digital inputs, 2 analog inputs (0-10 V or 4-20 mA), 5 digital outputs | CommunicationsEthernet and serial port | ProgrammingLinux: Node-RED dashboards, Python | Best fitOperator HMI with a few I/O of its own |
| GateBerry | TypeLinux edge gateway (Raspberry Pi) for DIN rail | I/ONo field I/O: it reads other devices | CommunicationsEthernet, RS-485. 4G or LoRa as options. | ProgrammingLinux: Node-RED, MQTT | Best fitCollecting machine data and sending it to MQTT or the cloud |
To choose between M-Duino, ESP32 PLC and Raspberry PLC in detail, read Arduino PLC vs ESP32 PLC vs Raspberry Pi PLC.
Modular I/O expansion: which approach gives the most flexibility
There are four ways to grow the I/O of a control system. The right one depends on how many signals you have and where they are.
- Modular rack or backplane. Cards of each signal type on one bus. The most local expansion, typical of classic modular PLCs.
- A larger model of the same family. The M-Duino, ESP32 PLC and Raspberry PLC families go from compact models to models with about 60 I/O, all with the same programming, so the code moves with small changes.
- Remote I/O on a fieldbus. Modules near the signals, read over Modbus RTU or Modbus TCP. The moduleX remote I/O modules (digital and analog inputs and outputs) are Modbus RTU slaves on RS-485, so they work with any PLC, HMI or SCADA.
- Distributed controllers. Several controllers, each with its own logic, linked by Modbus TCP or MQTT. Useful when parts of the plant must keep running on their own.
In short: a backplane gives the most I/O in one cabinet, and remote I/O gives the most freedom over where the I/O goes. Count the signals by type, add the spare points your specification asks for, and check the bus load before you fix the architecture.
Decide in five questions
- Does the device have to run the machine? If it only reads data from controllers that already exist, a Linux gateway is enough.
- Is there a safety function or a mandatory brand in the specification? If yes, that part goes to a certified safety controller or to the required PLC.
- Count the I/O by type and where they are. Many signals in one cabinet point to a modular rack or a large model. Signals spread over the plant point to remote I/O.
- How much data and computing does it need? Pure control fits a microcontroller. Databases, dashboards and gateways fit Linux. Vision and AI fit an industrial PC.
- Who will program and maintain it in five years? If the team works in ladder, choose IEC 61131-3 (a classic PLC, or CODESYS or OpenPLC on an open platform). If it works in C/C++ or Python, an open-platform controller saves translation work.
Go deeper
- Arduino PLC vs ESP32 PLC vs Raspberry Pi PLC: which to chooseThe decision inside the open-platform family: determinism, power cuts and the three costliest selection mistakes.
- Node-RED vs CODESYS vs Arduino IDEWhich programming environment fits your team and project.
- Setting up CODESYS on a Raspberry Pi PLCIEC 61131-3 on an open-platform controller.
- Using ESP32 PLC, M-Duino and Ardbox with OpenPLCLadder and the other IEC languages on Arduino and ESP32 based PLCs.
- 4-20 mA calculatorScale analog signals and check the input range of each model.
- PLC project packsTen complete projects with code and bill of materials, one per application.
Each family in a real project
Case studies that show the engineering behind each choice, and browser simulators you can try without hardware.
- End-of-line test benchM-Duino
- Quality checks on a manufacturing lineArdbox
- Center pivot irrigation controlESP32 PLC
- Solar tracker data gatewayRaspberry PLC
- Water bottling HMITouchBerry Pi
Frequently asked questions
What is the difference between a PLC and an embedded controller?
A classic PLC is a closed controller programmed in IEC 61131-3 with a cyclic scan. An embedded controller runs code written in C/C++, Python or Node-RED on a microcontroller or a Linux processor.
An industrial embedded controller such as an Arduino, ESP32 or Raspberry Pi based PLC adds protected I/O and DIN-rail mounting, so it can do the same control job with a different programming model.
Is an Arduino, ESP32 or Raspberry Pi based controller a real industrial PLC?
It does the job of a PLC: it reads industrial inputs, runs the logic and drives outputs from a DIN-rail unit. What changes is the programming (Arduino IDE, Python, Node-RED, or IEC 61131-3 through CODESYS or OpenPLC) and the certifications, which you must check model by model against your specification.
Which modular I/O system gives the greatest expansion flexibility?
For many signals in one cabinet, a modular PLC with a backplane gives the most local expansion, because you add cards of each type. For signals spread over a plant, remote I/O on a fieldbus such as Modbus RTU or Modbus TCP gives the most flexibility, and it works with compact controllers, PLCs, HMIs and SCADA alike.
Can I program an open-platform controller in IEC 61131-3?
Yes. The Raspberry PLC runs the CODESYS runtime, and M-Duino, Ardbox and ESP32 PLC controllers can be programmed with OpenPLC. You can also use the Arduino IDE, Python or Node-RED on the same hardware.
When is an industrial PC better than a PLC?
When the main job is computing rather than switching signals: machine vision, AI models, large databases, SCADA or supervising several lines. The I/O then stays in PLCs or remote I/O and the industrial PC talks to them over the network.
Do I need a gateway if my controller already has Ethernet?
Not always. If the controller can publish MQTT or serve Modbus TCP and the network allows it, it can send its own data. A gateway makes sense when you collect data from several machines, convert protocols, buffer data during network cuts or keep remote access away from the control network.
Can these controllers handle safety functions?
Safety functions such as an emergency stop or a guard door belong in a certified safety relay or safety PLC. A general-purpose controller, open platform or not, can read the state of the safety circuit and react to it, but it should not be the safety device.
Still between two options? Write to us with your I/O list, communications and environment, and an engineer will tell you which type fits, including when it is not one of ours. Contact an engineer.