A public journey from Software Developer to SCADA & Industrial Automation Engineer.
Hi, I'm Salim.
I'm a Software Developer transitioning into SCADA Systems, Industrial Automation, Operational Technology (OT), and Industrial Control Systems (ICS).
Instead of learning privately, I'm documenting every lesson, practical exercise, diagram, lab, and project publicly on GitHub.
My goal is to become a job-ready SCADA & Industrial Automation Engineer while building an open portfolio that demonstrates practical engineering knowledge and continuous growth.
Throughout this 365-day journey, I will:
- Learn SCADA engineering from the ground up
- Master PLC programming
- Understand industrial instrumentation
- Study industrial communication protocols
- Learn industrial networking
- Understand Industrial Cybersecurity
- Build industrial simulators
- Develop SCADA dashboards and HMIs
- Work with real-world industrial control concepts
- Create useful open-source tools for the SCADA community
- Share my progress publicly every day
- SCADA Basics
- PLC Fundamentals
- RTU Fundamentals
- HMI Basics
- PLC Scan Cycle
- Sensors & Actuators
- SCADA Architecture
- Industrial Communication
- Water Tank Automation
- Modbus RTU
- Modbus TCP
- OPC UA Basics
- Industrial Ethernet
- Managed vs Unmanaged Switches
- Network Redundancy
- Ring Topology
- Network Design
- Communication Reliability
- Modbus TCP vs Modbus RTU
- PROFINET
- Ethernet/IP
- DNP3
- MQTT
- Industrial Network Segmentation
- Network Monitoring
- Introduction to ICS Security
- Defense in Depth
- Purdue Enterprise Reference Architecture
- SCADA Alarm Management
- Historian & Data Logging
- SCADA Dashboards & Reporting
- High Performance HMI
- ISA-101 Concepts
- ISA/IEC 62443
- NIST SP 800-82
- Secure Remote Access
- OT Network Security
- Industrial Security Zones & Conduits
- Security Monitoring
- PLC Programming Fundamentals
- Ladder Logic Fundamentals
- Contacts & Coils
- AND / OR / NOT Logic
- Latching / Seal-In Circuits
- TON Timers
- TOF Timers
- Retentive Timers
- CTU Counters
- CTD Counters
- Counter Reset
- PLC Comparators
- Conditional Logic
- Hysteresis Concepts
- Analog Signals
- 4β20 mA
- 0β10 V
- Analog Input Modules
- Signal Scaling
- Engineering Units
- Analog Output Modules
- Analog Control
- Control Valves
- VFD Control Concepts
- PLC Interlocks
- PLC Permissives
- PLC Sequence Control
- PLC States & State Transitions
- PLC Sequences
- State-Based Control
- Equipment Feedback
- Fault Handling
- Advanced Control Logic
- Math Instructions
- Function Blocks
- Structured Text
- PID Control
- Advanced Sequencing
- PLC Diagnostics
- Fault Handling
- Equipment Control Strategies
Planned platforms:
- Ignition SCADA
- Siemens WinCC
- FactoryTalk View
- AVEVA InTouch
- VTScada
Topics will include:
- SCADA Tags
- HMI Screens
- Alarms
- Historian
- Trends
- Dashboards
- User Management
- Data Acquisition
- PLC-SCADA Communication
| Day | Topic | Status |
|---|---|---|
| 01 | Introduction to SCADA | β |
| 02 | PLC Fundamentals | β |
| 03 | RTU vs PLC | β |
| 04 | PLC Scan Cycle | β |
| 05 | Sensors & Actuators | β |
| 06 | SCADA Architecture | β |
| 07 | Industrial Communication | β |
| 08 | Water Tank Control System | β |
| 09 | Complete SCADA Data Flow | β |
| 10 | Industrial Ethernet | β |
| 11 | Modbus TCP vs Modbus RTU | β |
| 12 | Managed vs Unmanaged Switches | β |
| 13 | Network Redundancy | β |
| 14 | Introduction to ICS Cybersecurity | β |
| 15 | Defense in Depth | β |
| 16 | Purdue Enterprise Reference Architecture | β |
| 17 | SCADA Alarms & Event Management | β |
| 18 | SCADA Historian & Data Logging | β |
| 19 | SCADA Trends, Dashboards & Reporting | β |
| 20 | High Performance HMI Design | β |
| 21 | Introduction to PLC Programming | β |
| 22 | PLC Contacts, Coils & Logic Operations | β |
| 23 | PLC Latching / Seal-In Circuits | β |
| 24 | PLC Timers β TON, TOF & RTO | β |
| 25 | PLC Counters β CTU, CTD & Reset | β |
| 26 | PLC Comparators & Conditional Logic | β |
| 27 | Analog Signals β 4β20 mA & 0β10 V | β |
| 28 | Analog Inputs, Raw Values & Scaling | β |
| 29 | Analog Outputs & Variable Control | β |
| 30 | PLC Interlocks & Permissive Logic | β |
| 31 | PLC Sequences & State-Based Control | β |
scada-learning/
βββ README.md
β
βββ Day-01/
βββ Day-02/
βββ Day-03/
βββ ...
βββ Day-31/
β
βββ Architecture/
βββ Assets/
β βββ diagrams/
β βββ images/
β βββ screenshots/
β
βββ Case-Studies/
βββ CheatSheets/
βββ Diagrams/
βββ Labs/
βββ Projects/
βββ Resources/
β
βββ CHANGELOG.md
βββ ROADMAP.md
βββ PROJECTS.md
βββ CONTRIBUTING.md
βββ LICENSE
- SCADA Architecture Analysis
- PLC Scan Cycle Exercise
- Water Tank Process Analysis
- Industrial Communication Mapping
- Modbus Register Analysis
- Industrial Ethernet Exercise
- Network Topology Exercise
- Purdue Model Analysis
- Alarm Design Exercise
- Historian Data Flow Analysis
- Dashboard Design Exercise
- High Performance HMI Exercise
- Ladder Logic Basics
- PLC Logic Operations
- PLC Seal-In Circuit Exercise
- PLC Timer Exercise
- PLC Counter Exercise
- PLC Comparator Exercise
- Tank Level Control Logic Exercise
- Analog Signal Analysis
- 4β20 mA Signal Scaling Exercise
- 0β10 V Signal Scaling Exercise
- Analog Input Exercise
- Analog Output Exercise
- PLC Interlock Exercise
- PLC Permissive Logic Exercise
- PLC Sequence Design Exercise
- State-Based Control Exercise
- PLC Fault Handling
- PLC Diagnostic Logic
- Equipment Feedback Simulation
- Advanced Sequence Control
- Math Instructions
- Function Blocks
- Structured Text
- PID Control
- Ignition SCADA Installation
- OPC UA Lab
- Modbus TCP Lab
- SCADA Dashboard Development
- Alarm Configuration
- Historian Configuration
The following projects are planned as part of this learning journey.
| Project | Status |
|---|---|
| Tank Level Simulator | π§ Planned |
| PLC Simulator | π§ Planned |
| Modbus Simulator | π§ Planned |
| SCADA Dashboard | π§ Planned |
| Alarm Management System | π§ Planned |
| Historian Viewer | π§ Planned |
| Industrial Network Visualizer | π§ Planned |
| PLC Scan Cycle Visualizer | π§ Planned |
| OPC UA Explorer | π§ Planned |
- SCADA
- PLC
- RTU
- HMI
- Sensors
- Actuators
- Industrial Ethernet
- Modbus RTU
- Modbus TCP
- OPC UA
- MQTT
- PROFINET
- Ladder Logic
- Contacts & Coils
- Timers
- Counters
- Comparators
- Analog Inputs
- Analog Outputs
- 4β20 mA
- 0β10 V
- Signal Scaling
- Engineering Units
- Interlocks
- Permissives
- Sequence Control
- State Machines
- PID Control
- Laravel
- PHP
- JavaScript
- HTML
- CSS
- Git
- GitHub
- Docker
- OT Security
- ICS Security
- Purdue Model
- ISA-101
- ISA/IEC 62443
- NIST SP 800-82
- Defense in Depth
ββββββββββββββββββββββββββββββββ‘β‘β‘β‘β‘β‘β‘β‘β‘β‘β‘β‘β‘β‘β‘β‘β‘β‘
Day 31 / 365
Completed: 31 Days
Remaining: 334 Days
Overall Progress: 8.5%
PLC Sequences, State-Based Control & Industrial Control Logic
β
SCADA Fundamentals
β
β
Industrial Networking
β
β
Industrial Cybersecurity
β
π PLC Programming
β
π Industrial Instrumentation
β
β³ SCADA Software
β
β³ Industrial Projects
β
β³ Advanced ICS Engineering
PLC Programming β Industrial Control Logic β Sequence & State-Based Control
PLC Sequences & State-Based Control
Day 32 β PLC Fault Handling & Diagnostics
This repository contains:
- π Daily learning notes
- π§ͺ Practical exercises
- π Industrial automation concepts
- π Engineering diagrams
- π₯οΈ SCADA architecture documentation
- π Industrial communication examples
- π§ PLC programming concepts
- π ICS cybersecurity concepts
- π§ͺ Hands-on labs
- π Open-source SCADA projects
- π Case studies
- π Reference materials
- βοΈ Engineering best practices
- Fault Handling
- PLC Diagnostics
- Math Instructions
- Function Blocks
- Structured Text
- Advanced Sequencing
- PID Control
- Analog Signals
- 4β20 mA
- 0β10 V
- Transmitters
- Signal Conditioning
- Calibration
- Process Variables
- Ignition SCADA
- HMI Development
- Tags
- Alarms
- Historian
- Trends
- Dashboards
- User Management
- Modbus TCP
- OPC UA
- PROFINET
- Ethernet/IP
- MQTT
- ISA/IEC 62443
- NIST SP 800-82
- OT Network Segmentation
- Secure Remote Access
- Security Zones & Conduits
- OT Monitoring
Industrial Automation powers critical infrastructure worldwide, including:
- Manufacturing
- Energy
- Water Treatment
- Oil & Gas
- Transportation
- Utilities
- Building Automation
This repository documents my transition from Software Development into SCADA and Industrial Automation through consistent learning, practical exercises, hands-on labs, engineering projects, and open-source contributions.
My objective isn't simply to complete 365 days.
The real goal is to develop the ability to:
- Understand industrial control systems
- Read and design control logic
- Understand PLC architecture
- Understand industrial instrumentation
- Work with industrial communication
- Design SCADA architectures
- Troubleshoot automation systems
- Build practical industrial software
- Understand OT/ICS cybersecurity
| Category | Progress |
|---|---|
| π Lessons Completed | 31 |
| π§ͺ Hands-on Exercises | 28+ |
| π Industrial Topics | 31 |
| π Networking Topics | 7+ |
| π Cybersecurity Topics | 7+ |
| π» PLC Programming Lessons | 11+ |
| ποΈ Instrumentation Topics | 5+ |
| ποΈ Open Source Projects Planned | 9 |
| π― Overall Progress | 8.5% |
SCADA fundamentals and industrial architecture.
SCADA β Networking β ICS Cybersecurity β HMI concepts.
PLC programming fundamentals expanded into:
Ladder Logic
β
Logic Operations
β
Latching
β
Timers
β
Counters
β
Comparators
PLC control expanded into analog instrumentation:
Analog Input
β
Raw Value
β
Scaling
β
Engineering Units
β
PLC Logic
β
Analog Output
β
Actuator
Introduced:
Permissives
+
Interlocks
+
Feedback
β
Equipment Control
Introduced sequence and state-based control:
IDLE
β
CHECK
β
OPEN VALVE
β
START PUMP
β
FILL
β
STOP PUMP
β
CLOSE VALVE
β
COMPLETE
By Day 50, I aim to build a stronger foundation in:
- PLC programming
- Industrial instrumentation
- Industrial networking
- Control logic
- SCADA concepts
- Equipment control
- Industrial communication
- Practical automation engineering
Add your LinkedIn profile URL
If you're learning:
- SCADA
- PLC Programming
- Industrial Automation
- Operational Technology (OT)
- ICS Cybersecurity
consider:
β Starring this repository
π¨βπ» Following the journey
π¬ Sharing feedback
π€ Contributing ideas
This repository is intentionally public.
The goal is to document:
What I learn β What I build β What I get wrong β What I improve
Every day is another step toward becoming a practical SCADA & Industrial Automation Engineer.
"Engineering excellence isn't achieved overnightβit is built through consistent learning, hands-on practice, and continuous improvement."