100% found this document useful (2 votes)
260 views

Build A Simple PLC Using Arduino

This document discusses building a simple programmable logic controller (PLC) using an Arduino board. It describes using optocouplers and relays to build input and output modules that interface with sensors and actuators. Circuit diagrams and code examples are provided to interface digital inputs and outputs and emulate basic PLC ladder logic functions. The goal is to demonstrate how to program simple PLC behaviors like AND, OR, and NOT gates using Arduino code by mapping ladder logic to input processing, program execution, and output processing loops.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (2 votes)
260 views

Build A Simple PLC Using Arduino

This document discusses building a simple programmable logic controller (PLC) using an Arduino board. It describes using optocouplers and relays to build input and output modules that interface with sensors and actuators. Circuit diagrams and code examples are provided to interface digital inputs and outputs and emulate basic PLC ladder logic functions. The goal is to demonstrate how to program simple PLC behaviors like AND, OR, and NOT gates using Arduino code by mapping ladder logic to input processing, program execution, and output processing loops.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 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