Skip to content

Repository files navigation

🚀 365 Days to SCADA Engineer

A public journey from Software Developer to SCADA & Industrial Automation Engineer.

GitHub last commit Progress Status Current Focus


👋 About Me

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.


🎯 Objectives

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

🗺️ Learning Roadmap

✅ Phase 1 — SCADA Fundamentals

  • 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

✅ Phase 2 — Industrial Networking

Completed

  • Industrial Ethernet
  • Managed vs Unmanaged Switches
  • Network Redundancy
  • Ring Topology
  • Network Design
  • Communication Reliability
  • Modbus TCP vs Modbus RTU

Coming Soon

  • PROFINET
  • Ethernet/IP
  • DNP3
  • MQTT
  • Industrial Network Segmentation

🔄 Phase 3 — Industrial Cybersecurity

Completed

  • 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

Coming Soon

  • ISA/IEC 62443
  • NIST SP 800-82
  • Secure Remote Access
  • OT Network Security
  • Industrial Security Zones & Conduits
  • Security Monitoring

🔄 Phase 4 — PLC Programming

Completed

  • 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

Current Focus

  • Analog Signals
  • 4–20 mA
  • 0–10 V
  • Analog Input Modules
  • Signal Scaling
  • Engineering Units

Coming Soon

  • Math Instructions
  • Function Blocks
  • Structured Text
  • PID Control
  • PLC State Machines
  • Advanced Sequencing

⏳ Phase 5 — SCADA Software

  • Ignition SCADA
  • Siemens WinCC
  • FactoryTalk View
  • AVEVA InTouch
  • VTScada

📚 Learning Progress

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

📂 Repository Structure

scada-learning/

├── README.md
│
├── Day-01/
├── Day-02/
├── Day-03/
├── ...
├── Day-26/
│
├── Architecture/
├── Assets/
│   ├── diagrams/
│   ├── images/
│   └── screenshots/
│
├── Case-Studies/
├── CheatSheets/
├── Diagrams/
├── Labs/
├── Projects/
├── Resources/
│
├── CHANGELOG.md
├── ROADMAP.md
├── PROJECTS.md
├── CONTRIBUTING.md
└── LICENSE

🧪 Hands-on Labs

Completed

  • 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

🔬 Upcoming Labs

  • Analog Signal Simulation
  • 4–20 mA Signal Scaling
  • 0–10 V Signal Scaling
  • PLC Analog Input Exercise
  • Ignition SCADA Installation
  • OPC UA Lab
  • Modbus TCP Lab
  • PLC Timer Exercises
  • PLC Counter Exercises
  • Alarm Configuration
  • Historian Configuration
  • SCADA Dashboard Development
  • PID Control Lab

🚀 Open Source Projects

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

🛠️ Technologies

Industrial

  • SCADA
  • PLC
  • RTU
  • HMI
  • Sensors
  • Actuators
  • Industrial Ethernet
  • Modbus RTU
  • Modbus TCP
  • OPC UA
  • MQTT
  • PROFINET

PLC & Automation

  • Ladder Logic
  • Timers
  • Counters
  • Comparators
  • Analog Signals
  • 4–20 mA
  • 0–10 V
  • Signal Scaling
  • PID Control

Software

  • Laravel
  • PHP
  • JavaScript
  • HTML
  • CSS
  • Git
  • GitHub
  • Docker

Cybersecurity

  • OT Security
  • ICS Security
  • Purdue Model
  • ISA-101
  • ISA/IEC 62443
  • NIST SP 800-82
  • Defense in Depth

📈 Progress Dashboard

██████████████████████████□□□□□□□□□□□□□□□□□□□□

Day 26 / 365

Completed: 26 Days

Remaining: 339 Days

Overall Progress: 7.1%

Current Focus

PLC Analog Signals, 4–20 mA, 0–10 V & Signal Scaling


🧭 Current Learning Path

✅ SCADA Fundamentals
        ↓
✅ Industrial Networking
        ↓
✅ Industrial Cybersecurity
        ↓
🔄 PLC Programming
        ↓
⏳ Industrial Instrumentation
        ↓
⏳ SCADA Software
        ↓
⏳ Industrial Projects

Current Stage

PLC Programming → Analog Signals & Instrumentation

Next Topic

Day 27 — Analog Signals & Scaling


📖 What You'll Find Here

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

🚀 Coming Soon

Over the coming weeks, this repository will include:

PLC

  • Analog Inputs
  • Analog Outputs
  • Signal Scaling
  • Timers
  • Counters
  • Comparators
  • Math Instructions
  • PID Control
  • Function Blocks
  • Structured Text

SCADA

  • Ignition SCADA
  • HMI Development
  • Tags
  • Alarms
  • Historian
  • Trends
  • Dashboards
  • User Management

Industrial Communication

  • Modbus TCP
  • OPC UA
  • PROFINET
  • Ethernet/IP
  • MQTT

Cybersecurity

  • ISA/IEC 62443
  • NIST SP 800-82
  • OT Network Segmentation
  • Secure Remote Access
  • Security Zones & Conduits

🎯 Why This Repository Exists

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, design, troubleshoot, and build practical industrial control and SCADA systems.


📅 Current Statistics

Category Progress
📘 Lessons Completed 26
🧪 Hands-on Exercises 18+
🏭 Industrial Topics 26
📊 Networking Topics 7+
🔐 Cybersecurity Topics 7+
💻 PLC Programming Lessons 6
🏗️ Open Source Projects Planned 9
🎯 Overall Progress 7.1%

🏆 Milestones

✅ First 10 Days

SCADA fundamentals and industrial architecture.

✅ First 20 Days

SCADA → Networking → ICS Cybersecurity → HMI concepts.

🔄 Day 26

PLC programming fundamentals now include:

Ladder Logic
      ↓
Logic Operations
      ↓
Latching
      ↓
Timers
      ↓
Counters
      ↓
Comparators
      ↓
Analog Signals

🎯 Day 50 Goal

Build a stronger foundation in:

  • PLC programming
  • Industrial instrumentation
  • Industrial networking
  • SCADA concepts
  • Practical automation logic

🤝 Connect With Me

GitHub

https://github.com/binsani

LinkedIn

Add your LinkedIn profile URL

X (Twitter)

https://x.com/salimbinsani


⭐ Support

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


📌 Learning in Public

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."

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors