You are on page 1of 7

24/9/2017 Build a Simple PLC using Arduino

Build a Simple PLC using Arduino

This article about build a simple PLC for simple ladder diagram
programming.
Ladder diagram for this simple PLC only:
LD,LDI,AND,ANI,OR,ORI,OUT.

For CPU PLC using Arduino, and Input/Output Module use


optocoupler and relay.

In PLC input module use Voltage 24VDC and PLC output module use
relay.

This image about defference PLC and Simple PLC using Arduino:

Hardware is needed to build a simple PLC:


https://program-plc.blogspot.com/2015/01/build-simple-plc-using-arduino.html 1/7
24/9/2017 Build a Simple PLC using Arduino

1. Optocoupler TLP521
2. 5V Active Low Relay Board Module
3. Arduino UNO
4.Power Supply 24VDC
5. AC Adaptor with Output 9VDC for power to Arduino UNO
6. Switch / Push Button

Build 24VDC Input Modules:


1. Resistor 3.3K ohm
2. Resistor 10K ohm
3. Optocoupler TLP521

https://program-plc.blogspot.com/2015/01/build-simple-plc-using-arduino.html 2/7
24/9/2017 Build a Simple PLC using Arduino

Build Relay Output Modules:


1. Resistor 560 ohm
2. Optocoupler TLP521
3. 5V Active Low Dual Channel Relay Board Module

Hardware of Simple PLC using Arduino:

https://program-plc.blogspot.com/2015/01/build-simple-plc-using-arduino.html 3/7
24/9/2017 Build a Simple PLC using Arduino

How to Convert from PLC Ladder Diagram to Arduino


Programming?
1. Check link about the duty cycle of PLC http://program-
plc.blogspot.com/2010/02/scan-time-of-plc.html

There are 3 cycles of PLC:


- Input Processing
- Program Execution
- Output Processing

2. PLC ladder diagram for simple PLC using Arduino:

https://program-plc.blogspot.com/2015/01/build-simple-plc-using-arduino.html 4/7
24/9/2017 Build a Simple PLC using Arduino

Example: PLC Ladder Diagram of Allen Bradley MicroLogix 1000

3. PLC Ladder Diagram to Arduino Programming:


3.1. Input Processing:
use code: digitalRead(pin)
example: i00 = digitalRead(i00pin)

3.1. Program Execution:

https://program-plc.blogspot.com/2015/01/build-simple-plc-using-arduino.html 5/7
24/9/2017 Build a Simple PLC using Arduino

3.3. Output Processing:


use code: digitalWrite(pin, value)
example: digitalWrite(o00pin, o00)

See the Results:

Download Project File:


1. PLC Ladder Diagram for MicroLogix 1000, click here
2. Arduino project file, click here

Arduino Code:
//Input/Output Pin
const int i00pin = 2; //Connect to Push Button
const int i01pin = 3; //Connect to Push Button
const int i02pin = 4; //Connect to Push Button
const int o00pin = 8; //Connect to Relay
const int o01pin = 9;//Connect to Relay

//Variable Name for Input/Output


boolean i00;
boolean i01;
boolean i02;
boolean o00;
boolean o01;

void setup() {
//Input Pin Setup
pinMode(i00pin, INPUT);
pinMode(i01pin, INPUT);
pinMode(i02pin, INPUT);

//Output Pin Setup


pinMode(o00pin, OUTPUT);
pinMode(o01pin, OUTPUT);
}

void loop()
{
//The duty cycle of PLC http://program-
plc.blogspot.com/2010/02/scan-time-of-plc.html

//1.Input processing
i00 = digitalRead(i00pin);
i01 = digitalRead(i01pin);
i02 = digitalRead(i02pin);
o00 = digitalRead(o00pin);
o01 = digitalRead(o01pin);

https://program-plc.blogspot.com/2015/01/build-simple-plc-using-arduino.html 6/7
24/9/2017 Build a Simple PLC using Arduino

//2.Program execution
//(I:0/0 OR O:0/0 ) AND NOT I:0/2
if ((i00 || o00) && !i02) {
o00 = true;
}else {
o00 = false;
}

//((O:0/0 AND I:0/1 ) OR O:0/1) AND NOT I:0/2


if (((o00 && i01) || o01) && !i02) {
o01 = true;
}else {
o01 = false;
}

//3.Output processing
digitalWrite(o00pin, o00);
digitalWrite(o01pin, o01);
}

https://program-plc.blogspot.com/2015/01/build-simple-plc-using-arduino.html 7/7

You might also like