
Explore building small-scale industrial automation with Arduino as an io buffer interfacing a soft plc over Modbus TCP via an Ethernet shield, enabling control of relays, contactors, and vfds.
Compare PLC and soft PLC, focusing on inputs, outputs, and IO modules, and learn how Arduino provides external IO via Modbus TCP.
Understand why we need a communication protocol and how Modbus RTU and Modbus TCP/IP enable efficient industrial automation using Arduino, soft PLCs, VFDs, relays, and Ethernet switches.
Explore Modbus master-slave topologies, comparing soft PLC and Arduino as master or slave. Prefer a single master (soft PLC) with Arduino as slave to avoid double-write conflicts.
Discover Modbus TCP fundamentals by linking a soft PLC master to an Arduino slave, using read/write channels for integers and bits and address mapping.
Shift the Modbus read and write channel addresses to avoid overlap, starting the write channel at address three for unique addresses and to prevent self-reading.
download and install Codesys, a free PLC programming platform, to practice six languages and simulate PLC projects, but it cannot connect to a real PLC without a paid license.
Create a project in the Cutts platform, select a soft PLC, and build a ladder logic motor circuit with a start push button and a normally closed stop button, simulate.
Relays act as a protective buffer in industrial panels between PLCs and equipment, using isolated coil and contact circuits to switch COM to NO/NC, including timer relays.
Learn to implement latch-unlatch control in a plc using set and reset coils with start and stop push buttons, and edge-detection contacts (p and n) to prevent unintended latch.
Explore counters in PLC design, including an up counter with pulse input, preset value, reset, and Q and CV outputs, plus countdown counters with load.
Discover two timer types: on-delay timers that start when input activates and off-delay timers that hold the output after the input turns off, with presets and outputs.
Explore boolean operations in PLC programming by building and testing and, or, xor blocks with multiple inputs and outputs, and create truth tables to map input combinations to outputs.
Use the move block to copy an integer from signal one to signal two, controlled by a boolean activation signal that gates the copy.
Use the limit block to enforce upper and lower bounds on a VFD frequency input, clamping values to zero and fifty, and apply it to analog sensor readings.
Explore conditional blocks in plc programming using comparison operators like greater than, less than, greater than or equal, equal, and not equal to latch outputs on coils.
Explore arithmetic blocks that perform addition, subtraction, multiplication, and division with variables and networks. Learn to prevent division by zero by checking the divisor and moving a safe value.
Create and reuse functional blocks in ladder logic to compare values, with inputs, outputs, and inner signals, generating boolean flags for greater than, less than, and equal.
Learn why two timer blocks with the same instance name cause unpredictable behavior, and how renaming each block instance and its activation signal ensures reliable operation in function blocks.
Explore data types in depth, from booleans and integers to floating point, bit calculations, and type conversion using blocks to safely use mixed types in projects.
Learn to build a visualization page that lets the operator control a one-motor machine with start and stop buttons, indicators, and overload protection, linked to PLC variables.
Visualize analog control of motor speed using a variable frequency drive, with a soft plc outputting an analog signal from a user interface frequency input via scroll bar and meter.
Create and save your Arduino sketch, then add two files from the lecture description to your project directory to prevent a compilation error that the library does not exist.
Understand holding registers as the memory map between the plc and the Arduino. Read addresses 0–124 and write addresses 125–249 map to holding registers, showing why 250 are needed.
Explore Arduino as a Modbus slave by configuring IP, MAC, and holding registers, and building a small menu to fill and read registers via the Modbus library and Ethernet shield.
Implement Arduino slave mode by reading serial input to a menu that prints all holding registers or fills them with random values, then run the Modbus server with NB.run.
Set up the Codesys master on Windows, add the ethernet card and Modbus TCP master, configure the Arduino as a slave, and define read and write channels with IO mapping.
Set up read and write blocks in the PLC program to transfer values between data channels, define variables, and prepare data for Arduino communication over Modbus TCP.
Upload the Arduino program, enable auto reconnect on the master bus, and perform a read/write int simulation by writing values to four registers and reading them back from Katz's.
Master bit masking to set and clear individual bits within a word for Arduino, using masks, left shifts, and bitwise operations on holding registers.
Learn to read a specific bit by right-shifting the word by the bit position, masking with one, and storing the result without altering the original word, for Arduino.
Learn to write bits with masking by setting and resetting bit five in word zero, avoiding address zero to separate bit values from integer values in Arduino to Gotsis communication.
Design a real-world automated crushing and conveyance system using Arduino and PLC concepts in a Modbus TCP environment, featuring conveyors, a crusher, a pneumatic gate, sensors, relays, and VFD-driven motors.
Learn to wire an electrical panel with an Arduino Uno and Ethernet shield to control three VFDs via relays and Modbus, using A0/A1 inputs and 24/5 V supplies.
Master soft-PLC programming with ladder logic to design and implement a conveyor-crusher control sequence, including tag setup, start/stop latch, sensors, gate, timers, and fault handling, plus simulation.
Set up Arduino to communicate with a PLC using Modbus TCP master/slave, configure Ethernet, map words and bits, and define input/output channels and registers, preparing for visualization.
Create a visualization page by adding objects and an image pool, with an 800 by 600 layout and visibility-linked motor, conveyor, and gate indicators.
Build and visualize a PLC interface by adding start/stop buttons and frequency fields, labels, and Modbus-linked variables while simulating conveyors, crushers, and gates.
Develop an Arduino sketch for Modbus TCP control, reading fault and level sensor values, masking bits, and using input pullups to drive four coils, three VFDs, and the gate valve.
Explore soft testing and simulation of an Arduino sketch for a crusher system, verifying fill and fault signals, motor control, gate timing, and conveyor operation before hardware testing.
Test the relay card without Arduino using a simple setup and external 5V supply to verify relays; then drive pins 2–9 with a sketch, noting inverted behavior.
Demonstrates using a real electrical panel with PLC, Arduino, and HMI to control two VFDs for a crusher and conveyor, including 0–1024 to 0–50 Hz scaling and fill/empty signaling.
Link an Arduino with plc hardware via simulation and Modbus TCP to model a water deposit with two pumps and a pressure sensor, plus a Schneider 3512 hardware demo.
Explore the schematic of an Arduino-based industrial control setup, wiring a 20 milliamp pressure sensor in a 24-volt loop with a 220-ohm resistor and relays that drive two VFDs.
Master Modbus addressing syntax for the visual HMI by defining word addresses with %MW and addressing bits with %MW address:bit. Learn to implement these rules as you design the HMI.
Create a new Modbus TCP HMI project, define tags and variables with IEC 6131 syntax, and set up pumps, sensors, and indicators for a water deposit.
Design and implement an hmi for a pressure pump system, creating a menu, numeric display linked to a pressure sensor, and high/low limit inputs via keypad.
Design an algorithm using a finite state machine to regulate a pump with high and low limits in auto mode, based on pressure values.
Learn how to design and implement a finite state machine in an Arduino sketch to control a pump based on water pressure using switch-case states and transitions.
Write an Arduino sketch that implements a finite state machine to control pumps via Modbus, reads a pressure sensor and limits, and drives VFD PWM with fault feedback for HMI.
Practice soft testing by simulating pressure and fault signals with an Arduino, scaling a 0–30 bar sensor, and writing back to Modbus to validate HMI and pump fault logic.
Upload the HMI program to the hardware, ensure the 24 volt DC supply is connected, and plug in the USB cable; then download to USB and complete the upload.
Demonstrates wiring and programming a small electrical panel using Arduino and HMI to control two VFD pumps, adjust frequency, and simulate pressure with a potentiometer.
Size a DC power supply for industrial control by summing device currents and applying a 25% startup margin. Ensure it delivers the required current at 12 or 24 V DC.
Explore motor driving techniques from direct three-phase connection to overload protection with contactors, and from delta-wye circuits to soft starters and VFDs, including ramp control, speed, and current monitoring.
Operate a Schneider ATV 12 VFD to run a small motor, adjust frequency from 0 to 50 Hz, and switch between local and remote modes.
Adjust a VFD's acceleration and deceleration times, exit local mode to access the configuration menu, and observe how motor size influences optimal ramp times from zero to full speed.
Operate a VFD remotely by wiring a rotary switch to a digital input and a potentiometer to an analog input, enabling remote start and speed control up to 25 Hz.
Demonstrates wiring two 24-volt indicators to a vfd using a relay with common and normally open to show run (green) and stop (red) states.
Wiring a second digital input reverses motor direction on a vfd. Enabling reverse rotation via parameter menu and configuration steps demonstrates forward, neutral, and reverse states.
Explore proximity sensors, including capacitive and inductive types, their detection ranges and 24 volt dc outputs, with PLC integration to detect plastics or metals.
Learn how pressure sensors measure gas and liquid pressure in pipes, preventing explosions by monitoring pressure and triggering shutdowns. Explore mounting, strain gauges, and voltage or 4–20 mA outputs.
This course provides hands-on Step by Step experience to integrate, Arduino, PLC and HMI using Modbus TCP by implementing real industrial projects.
Real projects will be designed step by step to help you grasp the concepts.
By the end of this course, you will be able to integrate various technologies to control industrial automation projects in multiple ways, like using Soft-PLC with Arduino and using HMI with Arduino.
The materials also contain a lot of videos that will teach you various skills. Stuff like, Ladder logic programming, HMI design, VFD driving and many other cool lectures that you can use to expand the Arduino integration in real industrial automation projects.
You will use technologies and brands like :
Arduino
CodeSys
Schneider Electric
Modbus TCP
VFD (Industrial motor drivers)
And the best part is you will be able to simulate and integrate most of the things without having to buy any expensive industrial automation hardware. However, if you plan to buy the equipment, then you will be able to design your projects since this course will walk you through Programming and schematic of two complete integration projects.
This course will be based on the famous industrial protocol Modbus TCP, where you will learn how to use it in integrating almost any Modbus TCP supported device with Arduino, and just to note, this protocol supported by over 70% of the industrial automation devices and equipment.
What you need is:
Arduino UNO
Arduino Ethernet shield
PC/Laptop with Windows
Some wires and potentiometer
Optional (8-CH Arduino Relay external card with 5v 700mA minimum power supply)
All software we will use are free so you don't need to worry about obtaining any of them, all the links will be provided, noting that these are very highly professional software used by the biggest companies around the world and are by no mean poorly developed ones.
Skills you will learn in this course:
Arduino Integration with CodeSys Soft PLC systems
Arduino integration with HMI
Learning how to use Modbus TCP with multiple equipment
Basic VFD driving using Arduino
Design HMI screens in two different software
Designing in Ladder Logic
Handling Classical VFD devices (Industrial motor drivers)
Using Arduino to simulate small size industrial automation projects
The two projects designed from scratch in this course w are designed step by step. And besides, by the end of each project, an electrical panel-based demonstration video will be shown to let you see the result not only in simulation but also with real industrial automation electrical hardware.
An Arduino is NOT a replacement for a PLC system, though it can be deployed for small scale projects.