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.
In PLC input module use Voltage 24VDC and PLC output module use
relay.
This image about defference PLC and 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
https://program-plc.blogspot.com/2015/01/build-simple-plc-using-arduino.html 2/7
24/9/2017 Build a 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
https://program-plc.blogspot.com/2015/01/build-simple-plc-using-arduino.html 4/7
24/9/2017 Build a Simple PLC using Arduino
https://program-plc.blogspot.com/2015/01/build-simple-plc-using-arduino.html 5/7
24/9/2017 Build a Simple PLC using Arduino
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
void setup() {
//Input Pin Setup
pinMode(i00pin, INPUT);
pinMode(i01pin, INPUT);
pinMode(i02pin, INPUT);
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;
}
//3.Output processing
digitalWrite(o00pin, o00);
digitalWrite(o01pin, o01);
}
https://program-plc.blogspot.com/2015/01/build-simple-plc-using-arduino.html 7/7