Arduino was first introduced in 2005 aiming to provide a low-cost and easy way for novices and professionals to create devices that interact with their environment using sensors and actuators.
Before Arduino was introduced, the embedded design was viewed as a complex subject and hobbyists (or engineers) had to find a professional to get a working model for their problem. Like if you want a simple 3D printer then you have to get professional help as there are thousands of controllers with their compatible IDE. And the hobbyist cannot learn about all microcontrollers and their programming ways. This situation came to an end when universally accepted ARDUINO was introduced. And with this, the hobbyists or engineers can design and develop their own projects without much professional help.
And the reason for it becoming so universally accepted because it is an open-source electronics platform based on easy-to-use hardware and software. Arduino boards are able to read inputs like light on a sensor, a finger on a button and turn it into a programmable output such as activating a motor, turning on an LED and publishing something online.
Over the years Arduino has become more popular and with that many advanced boards with similar purposes are developed like Raspberry PI, Panda, etc. Arduino is used as the brain in thousands of projects, from everyday objects to complex scientific instruments. Students, hobbyists, artists, programmers, and professionals around the world have gathered around this open-source platform and developed many projects thereby amassing an incredible amount of knowledge that can be of great help to novices and experts alike.
With the amassed knowledge and recent introduction of IoT, the hype on Arduino took another forward step thereby becoming a necessary tool of learning for engineers and hobbyists. Now Arduino board started changing to adapt to new needs and challenges like IoT applications, wearable, 3D printing, embedded environments and lastly PLC (Programmable Logic Controller). Here in this article, we will learn about What is PLC and how Arduino can be used as PLC.
Introduction to PLC (Programmable Logic Controller)
First, let us understand the term Industrial Automation before going for PLC. As we all know using machines for work in industries is more cost-effective than using humans since machines do not need money, holidays or breaks so if machines are used in place of humans than the industries can produce their products 24*7 without an issue. Now, this setup of replacing humans with machines or robotic arms is called Industrial Automation.
PLC is a controller unit specially designed to operate the machines used for Industrial Automation. They are designed to be reliable under harsh industrial environments (like extreme temperatures, humid, wet, dusty conditions). PLC applications can be seen at the manufacturing plant’s assembly line, an ore processing plant, robotic welding, CNC carving, etc. Since this equipment is designed for high efficiency and the rugged environment they are costly for both installing and repairing.
PLC (Programmable Logic Controller) has many features similar to our personal computer at home. They both have a power supply unit, a CPU (Central Processing Unit), Inputs & Outputs (I/O) ports, RAM and ROM memory, and control software. The biggest difference between the two is PLC can perform discrete and continuous functions in a harsh environment which a PC cannot do. You can also read difference between PLC and microcontroller to get an overview of its comparision with microcontrollers.
There are many different types of PLC in the market according to the requirements of the customer. Although there are many types of PLC present they do follow certain standards for the user to choose easily.
Basic Function of PLC
For understanding the basic PLC working let us assume a simple example as shown below.
Let us say in this setup we have to turn ON the bulb for the first fifty seconds and turn OFF the bulb for the following twenty seconds then we have to use the switch in the circuit to close and open the loop continuously. This is a simple but very tiresome task for a human and it is not cost-productive to buy a timer relays for this type of issue every single time. In all those cases we can use a single PLC to solve the problem.
Here you can see a PLC is connected in the loop of the setup while keeping the switch closed. We can use the programming to set the timer for the PLC in the circuit. Once it is done the PLC can close and open the loop continuously which replaces the need for human intervention. Once the PLC starts executing the program it will not stop until an interrupt is given.
This is just a simple setup and a PLC has the ability to control much larger and more complex processes like PWM control, Sensing, etc. A PLC is usually designed in a way for the customer so that he/she will be able to customize the PLC functioning depending on the application and need.
Block Diagram of PLC
Now let us look at the important modules present in the PLC.
Power Supply Module: This module is sometimes placed as a separate setup like an adapter and in other cases, it will be designed directly on the main PCB. The function of the module is to provide the required power to the whole PLC (Programmable Logic Controller) setup. The module is a converter that converts available AC power to DC power which is required by the CPU and other modules. Usually, PLC works on 12V and 24V power rail.
Central Processing Unit: This module is the most protected as it is the core of functioning for the entire PLC. CPU module consists of a microprocessor or microcontroller, program memory, flash memory & RAMS memory. Flash memory or ROM memory stores operating system, driver and application program. RAM is used by the microprocessor to access data and information.
The function of CPU is to execute the program stored in the memory and act according to the written instructions. So basically CPU reads the input data from sensors to process and finally sends an appropriate response based on the program.
Input and Output Module: Input module is used for establishing a link between various sensors and keypads to the CPU and the Output module is used by the processor for providing a response to the outside world.
Programming Device Module: This module is used for establishing communication between PC and PLC. The basic function is to reprogram the microprocessor of PLC.
Types of PLC (Programmable Logic Controller)
The PLC is divided into two types namely fixed (or compact PLC) and modular PLC.
1. Compact or Fixed PLC: It is usually a low-end PLC which is popular in many industries. Compact PLC has a fixed number of I/O modules and external I/O cards and they cannot be extended later to make a more complex setup. You can see a fixed PLC in the below figure.
2. Modular PLC: Modular PLC permits multiple expansions by stacking ‘Modules’ parallel. I/O ports of the modular PLC can be increased for more complex operations in the industry. Modular PLC is also easier to use because each component is independent of each other. This type of PLC is popular in many industries
Arduino vs PLC (Programmable Logic Controller)
As we mentioned earlier the important modules of a PLC are similar to a PC (Personal Computer) and are even more similar to single board computers like Arduino. So internally at a certain level working of both the PLC and Arduino are the same and we can use this Arduino to design a PLC (Programmable Logic Controller). The Arduino PLCs are already present in the market and are available cheaper compared to conventional PLC. So Arduino-PLC is becoming popular these days and its applications will increase more in the future. These are certain differences between the Arduino PLC & conventional PLC and a few of them are mentioned below.
Arduino PLC |
PLC (Programmable Logic Controller) |
Needed External Components to Work as PLC |
Does not need additional external components |
Universally accepted |
Promoted mainly in Industries |
Low cost |
High cost |
Need to learn basic programming to rewrite the Arduino program |
Only needed basic operating technique for reprogramming the PLC |
Reprogramming is relatively difficult |
Reprogramming is relatively easy |
Satisfactory performance |
High performance |
Cannot work in harsh conditions |
Can work on harsh conditions |
Compact and Small |
Bulky and heavy |
Stacking cannot be used to further the PLC operation of Arduino PLC |
Stacking can be used to further the PLC operation of normal PLC |
More communication options |
Less communication options |
Easy to replace and repair |
Hard to replace and repair |
Lesser options for choosing |
Many options for choosing |
Now let us discuss briefly about popular Arduino based PLCs that are presently in the market.
1. Industrial Shields Arduino PLCs
Industrial Shields is a popular company that provides Arduino based PLC shields for many industrial applications. The shields that are popularly used are briefly discussed below.
Industrial Shields ARDBOX:
ARDBOX is an Arduino based PLC designed for small and medium-scale industrial applications. The picture of ARDBOX is shown below.
The ARDBOX is designed based on ARDUINO LEONARO so basically, all the technical specifications of ARDBOX are LEONARO specifications. The basic features and technical specifications of ARDBOX are given below.
Input Voltage |
12Vor 24V |
Rated Power |
30Watt |
Maximum Current |
1.5A |
Clock Speed |
16MHz |
Size |
100x45x115 mm |
Programming language |
Arduino IDE. |
Flash Memory |
32KB of which 4KB are used by bootloader |
SRAM |
2.5KB |
EEPROM |
1KB |
Communications |
I2C -- USB -- RS232 -- RS485 -- SPI -- TTL
|
TOTAL Input points |
10 |
TOTAL Output points |
10 |
PWM Isolated Output |
to 24Vdc I max: 70 mA Galvanic Isolation Diode Protected for Relay Rated Voltage: 24Vdc |
Industrial Shields M-Duino:
M-DUINO is an Arduino based PLC designed for small and medium-scale industrial applications. The picture of the PLC is shown below.
The M-DUINO is designed based on the ARDUINO MEGA board, so all the technical specifications of the MEGA board are M-DUINO specifications. The basic features and technical specifications of M-DUINO are given below.
Input Voltage |
12V or 24V |
Rated Power |
40Watt |
Maximum Output Current |
0.5A |
Clock Speed |
16MHz |
Size |
101x119x70mm |
Programming language |
Arduino IDE. |
Flash Memory |
32KB of which 0.5KB are used by the boot loader |
SRAM |
2KB |
EEPROM |
1KB |
Communications |
I2C1 – Ethernet Port – USB – RS485 – SPI – (3x) Rx, Tx (Arduino pins) |
TOTAL Input points |
13,26,36 |
TOTAL Output points |
8,16,22 |
PWM Isolated Output |
24Vdc (3,6,8) I max: 70 mA |
2. PLDuino Arduino PLCs
PLDuino is an Open Source Arduino based Programmable Logic Controller (PLC) from Digital Loggers that is available in the market for about $150. This PLC combines the Arduino Mega (ATmega2560) with ESP8266 Wi-Fi module and a 2.4” TFT Touch Screen, in order to make it suitable for Industrial IoT Applications and other factory robotics applications.
PLDuino can be easily programmed by using a simple USB cable, also along with the popular Arduino IDE the PLDuino can also be programmed using Lua, GNU or even AVR Studio. PLDuino also provides demonstration codes and libraries to help beginners quickly get started development. For advanced users, PLDuino has also made it possible to pop the cover and explore inside the PLC so as to customize the hardware as required for their application, the full schematics and component specs are also available online. The complete specifications of PLDuino is show in the picture below
3. Controllino Arduino PLCs
Controllino is nothing but an industrialized Arduino. It combines the flexibility and open-source nature of the Arduino ecosystem with the safety and reliability of industrial-grade PLCs.
The company provides three modules which are designed based on three Arduino boards.
Controllino MINI:
It is designed on Arduino Uno board.
Input Voltage |
12V or 24V |
Operating temperature |
5ºC to 55ºC |
Maximum Relay Current |
6A |
Clock Speed |
16MHz |
Size |
36x90x60 mm |
Programming language |
Arduino IDE. |
Flash Memory |
32KB of which 0.5KB are used by the boot loader |
SRAM |
2KB |
EEPROM |
1KB |
Communications |
I2C1– USB – SPI |
TOTAL Input points |
8 |
TOTAL Output points |
8 |
Controllino MAXI:
This is designed on ATMEGA2560 Atmel microcontroller or on the Arduino Mega board.
Input Voltage |
12V or 24V |
Operating temperature |
0ºC to 55ºC |
Maximum Output relay Current |
6A |
Clock Speed |
16MHz |
Size |
72x90x62mm |
Programming language |
Arduino IDE |
Flash Memory |
256KB |
SRAM |
8KB |
EEPROM |
4KB |
Communications |
I2C1,Ethernet Port, USB ,SPI |
TOTAL Input points |
12 |
TOTAL Output points |
12, relay output-10 |
Controllino Mega:
Mega PLC is designed on ATMEGA2560 Atmel microcontroller or on Arduino Mega board.
Input Voltage |
12V or 24V |
Operating temperature |
0ºC to 55ºC |
Maximum Output relay Current |
6A |
Clock Speed |
16MHz |
Size |
107x90x62mm |
Programming language |
Arduino IDE |
Flash Memory |
256KB |
SRAM |
8KB |
EEPROM |
4KB |
Communications |
I2C1,Ethernet Port, USB ,SPI |
TOTAL Input points |
21 |
TOTAL Output points |
24, relay output-16 |
Advantages of Arduino PLC
- Can be purchased at a low cost.
- Can be programmed using Arduino IDE software.
- High compatibility.
- High room for adjustments.
- Easy to replace compared to conventional PLC.
Disadvantages of Arduino PLC
- Very few choices are available for selection.
- Not suitable for high scale applications.
- Sensitive compared to conventional PLC.
- Required more maintenance.
- Less professional.