<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Александр Ларионов</title>
    <description>The latest articles on DEV Community by Александр Ларионов (@__b4cc59).</description>
    <link>https://dev.to/__b4cc59</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3933543%2Fc82ace76-d622-4a30-96fa-cf56ea32de5b.jpg</url>
      <title>DEV Community: Александр Ларионов</title>
      <link>https://dev.to/__b4cc59</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/__b4cc59"/>
    <language>en</language>
    <item>
      <title>How to Set Up a Free SCADA System in 5 Minutes (No Installation Required)</title>
      <dc:creator>Александр Ларионов</dc:creator>
      <pubDate>Sun, 17 May 2026 23:21:17 +0000</pubDate>
      <link>https://dev.to/__b4cc59/how-to-set-up-a-free-scada-system-in-5-minutes-no-installation-required-2opb</link>
      <guid>https://dev.to/__b4cc59/how-to-set-up-a-free-scada-system-in-5-minutes-no-installation-required-2opb</guid>
      <description>&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;Setting up a SCADA system for a small water treatment plant or solar farm usually means:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Spending $10K-$50K on software licenses&lt;/li&gt;
&lt;li&gt;Dedicating a Windows server&lt;/li&gt;
&lt;li&gt;Hiring a specialist for weeks of configuration&lt;/li&gt;
&lt;li&gt;Ongoing maintenance fees&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;What if you could just open a file in your browser?&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Download awtSCADA
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Download the demo (20 MB)&lt;/span&gt;
wget https://github.com/larionovavi-stack/awtscada/releases/download/v1.0-en/awtSCADA_Demo_EN.zip

&lt;span class="c"&gt;# Extract&lt;/span&gt;
unzip awtSCADA_Demo_EN.zip
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You now have:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;SCADA_IEC61850_v8.html&lt;/code&gt; - the SCADA application&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;SCADA_Gateway&lt;/code&gt; - binaries for Win/Mac/Linux&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Demo_Project.json&lt;/code&gt; - sample project&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step 2: Start the Gateway
&lt;/h2&gt;

&lt;p&gt;The gateway connects your browser to real industrial equipment.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# On macOS/Linux&lt;/span&gt;
&lt;span class="nb"&gt;chmod&lt;/span&gt; +x SCADA_Gateway_macOS
./SCADA_Gateway_macOS

&lt;span class="c"&gt;# On Windows&lt;/span&gt;
SCADA_Gateway.exe
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Gateway starts on port 8080 with a web dashboard showing all protocol connections.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Open the SCADA
&lt;/h2&gt;

&lt;p&gt;Just open &lt;code&gt;SCADA_IEC61850_v8.html&lt;/code&gt; in Chrome, Firefox, or Edge. That's it.&lt;/p&gt;

&lt;p&gt;The demo project loads automatically with a built-in equipment emulator so you can see everything working without real hardware.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4: Connect Real Equipment
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Modbus TCP (Most PLCs and sensors)
&lt;/h3&gt;

&lt;p&gt;In the Gateway config, add your device:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;modbus&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Power&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Meter"&lt;/span&gt;
    &lt;span class="na"&gt;host&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;192.168.1.100&lt;/span&gt;
    &lt;span class="na"&gt;port&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;502&lt;/span&gt;
    &lt;span class="na"&gt;unit_id&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  OPC UA (Siemens S7-1500, Beckhoff, etc.)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;opcua&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;S7-1500"&lt;/span&gt;
    &lt;span class="na"&gt;url&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;opc.tcp://192.168.1.50:4840"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  MQTT (IoT sensors)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;mqtt&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;broker&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;192.168.1.1"&lt;/span&gt;
  &lt;span class="na"&gt;port&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1883&lt;/span&gt;
  &lt;span class="na"&gt;topics&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;sensors/#"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Step 5: Build Your HMI
&lt;/h2&gt;

&lt;p&gt;The built-in editor has 65 drag-and-drop elements:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Pumps, valves, motors with animation&lt;/li&gt;
&lt;li&gt;Tanks with level indication&lt;/li&gt;
&lt;li&gt;Gauges, indicators, trend charts&lt;/li&gt;
&lt;li&gt;Pipes with flow direction&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Plus 53 function blocks for logic:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;PID controllers&lt;/li&gt;
&lt;li&gt;Timers and counters&lt;/li&gt;
&lt;li&gt;Math and comparison&lt;/li&gt;
&lt;li&gt;Interlocks and alarms&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Real-World Use Cases
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Small Water Treatment Plant (~200 tags):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;3 pumps, 2 chemical dosing, 5 level sensors&lt;/li&gt;
&lt;li&gt;Modbus TCP connection&lt;/li&gt;
&lt;li&gt;Alarm management + operator log&lt;/li&gt;
&lt;li&gt;Total setup time: 2 hours&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Solar Farm Monitoring (~500 tags):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;10 inverters via Modbus&lt;/li&gt;
&lt;li&gt;Weather station via MQTT&lt;/li&gt;
&lt;li&gt;Energy production trends&lt;/li&gt;
&lt;li&gt;Total setup time: 4 hours&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Digital Substation (~1000 tags):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Protection relays via IEC 61850&lt;/li&gt;
&lt;li&gt;Circuit breaker control via GOOSE&lt;/li&gt;
&lt;li&gt;Measurement via Sampled Values&lt;/li&gt;
&lt;li&gt;Total setup time: 1 day&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://larionovavi-stack.github.io/awtscada/" rel="noopener noreferrer"&gt;Live Demo&lt;/a&gt; - try without downloading&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/larionovavi-stack/awtscada" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; - star if useful!&lt;/li&gt;
&lt;li&gt;&lt;a href="https://larionovavi-stack.github.io/awtscada/docs/" rel="noopener noreferrer"&gt;Full Documentation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Questions? Drop a comment below or open a &lt;a href="https://github.com/larionovavi-stack/awtscada/discussions" rel="noopener noreferrer"&gt;Discussion on GitHub&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>automation</category>
      <category>iot</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Free SCADA Alternative for Small Facilities - awtSCADA vs Wonderware vs Ignition</title>
      <dc:creator>Александр Ларионов</dc:creator>
      <pubDate>Sun, 17 May 2026 23:20:50 +0000</pubDate>
      <link>https://dev.to/__b4cc59/free-scada-alternative-for-small-facilities-awtscada-vs-wonderware-vs-ignition-55m2</link>
      <guid>https://dev.to/__b4cc59/free-scada-alternative-for-small-facilities-awtscada-vs-wonderware-vs-ignition-55m2</guid>
      <description>&lt;h2&gt;
  
  
  Why I Built a Free SCADA Alternative
&lt;/h2&gt;

&lt;p&gt;Commercial SCADA systems are insanely expensive:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Wonderware (AVEVA):&lt;/strong&gt; $25,000+ license&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ignition:&lt;/strong&gt; $4,000-$50,000/year
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;WinCC (Siemens):&lt;/strong&gt; $15,000+ Windows-only&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For small water treatment plants, solar farms, or educational labs this is overkill.&lt;/p&gt;

&lt;h2&gt;
  
  
  Meet awtSCADA
&lt;/h2&gt;

&lt;p&gt;A complete SCADA/HMI that runs from a &lt;strong&gt;single HTML file&lt;/strong&gt;. No installation, no server, no license fees for the demo.&lt;/p&gt;

&lt;h3&gt;
  
  
  What Makes It Different
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;Traditional SCADA&lt;/th&gt;
&lt;th&gt;awtSCADA&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Price&lt;/td&gt;
&lt;td&gt;$10K-$100K&lt;/td&gt;
&lt;td&gt;Free demo&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Installation&lt;/td&gt;
&lt;td&gt;Days/weeks&lt;/td&gt;
&lt;td&gt;0 seconds&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Server&lt;/td&gt;
&lt;td&gt;Required&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OS&lt;/td&gt;
&lt;td&gt;Usually Windows&lt;/td&gt;
&lt;td&gt;Any browser&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;IEC 61850&lt;/td&gt;
&lt;td&gt;Add-on or none&lt;/td&gt;
&lt;td&gt;Full stack&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  9 Industrial Protocols
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;IEC 61850&lt;/strong&gt; (MMS, GOOSE, Sampled Values) - unique for browser-based SCADA&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OPC UA&lt;/strong&gt; - universal industrial connectivity&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Modbus TCP/RTU&lt;/strong&gt; - PLCs, sensors, power meters&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MQTT&lt;/strong&gt; - IoT and edge devices&lt;/li&gt;
&lt;li&gt;SNMP, BACnet, DNP3, IEC 60870-5-104, REST API&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  53 Function Blocks
&lt;/h3&gt;

&lt;p&gt;PID controllers, timers, counters, logic gates, math operations, filters, comparators, interlocks.&lt;/p&gt;

&lt;h3&gt;
  
  
  65 Graphic Elements
&lt;/h3&gt;

&lt;p&gt;Pumps, valves, motors, tanks, vessels, pipes, sensors, gauges, trends - drag and drop to build your HMI.&lt;/p&gt;

&lt;h2&gt;
  
  
  Architecture
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Browser (Single HTML)  &amp;lt;--&amp;gt;  Python Gateway  &amp;lt;--&amp;gt;  Real Equipment
        |                                            |
   SQLite DB                                    PLC / RTU / IED
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The HTML file contains the full HMI engine. The Python gateway (FastAPI + asyncio) handles communication with physical devices.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who Is This For?
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Small facilities&lt;/strong&gt; - water treatment, solar farms, building automation&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Education&lt;/strong&gt; - teach SCADA without expensive licenses&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Prototyping&lt;/strong&gt; - quick HMI mockups for client demos&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Digital substations&lt;/strong&gt; - full IEC 61850 for power utilities&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Security research&lt;/strong&gt; - safe ICS/SCADA lab environment&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Try It
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://larionovavi-stack.github.io/awtscada/" rel="noopener noreferrer"&gt;Live Demo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/larionovavi-stack/awtscada" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/larionovavi-stack/awtscada/releases/download/v1.0-en/awtSCADA_Demo_EN.zip" rel="noopener noreferrer"&gt;Download Free Demo&lt;/a&gt; (20 MB, 2-hour trial)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Full source code available on &lt;a href="https://avlarion.gumroad.com/l/mcmeyl" rel="noopener noreferrer"&gt;Gumroad&lt;/a&gt; - $5,000 one-time, no recurring fees.&lt;/p&gt;




&lt;p&gt;What SCADA system do you use? Would a browser-based alternative be useful in your workflow?&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>industrial</category>
      <category>iot</category>
      <category>python</category>
    </item>
    <item>
      <title>I Built a Full Industrial SCADA System That Runs From a Single HTML File</title>
      <dc:creator>Александр Ларионов</dc:creator>
      <pubDate>Sun, 17 May 2026 05:00:08 +0000</pubDate>
      <link>https://dev.to/__b4cc59/i-built-a-full-industrial-scada-system-that-runs-from-a-single-html-file-11fl</link>
      <guid>https://dev.to/__b4cc59/i-built-a-full-industrial-scada-system-that-runs-from-a-single-html-file-11fl</guid>
      <description>&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;Setting up a SCADA/HMI system typically requires:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Expensive proprietary software ($10K-$100K licenses)&lt;/li&gt;
&lt;li&gt;Complex server infrastructure&lt;/li&gt;
&lt;li&gt;Windows-only environments&lt;/li&gt;
&lt;li&gt;Weeks of configuration&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I wanted something different.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Solution: awtSCADA
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;awtSCADA&lt;/strong&gt; is a complete industrial SCADA/HMI system that runs entirely in your web browser. No installation. No server. Just open one HTML file.&lt;/p&gt;

&lt;p&gt;🔗 &lt;a href="https://larionovavi-stack.github.io/awtscada/" rel="noopener noreferrer"&gt;Live Demo&lt;/a&gt; | &lt;a href="https://github.com/larionovavi-stack/awtscada" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What's Inside
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;Details&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Protocols&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;IEC 61850 (MMS, GOOSE, SV), OPC UA, Modbus TCP, MQTT, SNMP — 9 total&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Function Blocks&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;53: logic, math, timers, PID, filters, interlocks&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Graphics&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;65 elements: pumps, valves, motors, tanks, pipes, gauges&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Database&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Built-in SQLite: trends, alarms, operator log&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Performance&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;10,000 tags/sec, 100ms update cycle&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Gateway&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Python — connects to real PLCs, RTUs, and IEDs via REST API&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  How It Works
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Browser (Single HTML) ←→ Python Gateway ←→ Real Equipment
         ↕                                    ↕
   SQLite DB                            PLC / RTU / IED
   (trends, alarms)                     (Modbus, OPC UA, IEC 61850)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The HTML file contains the full HMI engine with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Drag-and-drop graphic editor&lt;/li&gt;
&lt;li&gt;Function block programming&lt;/li&gt;
&lt;li&gt;Real-time trending&lt;/li&gt;
&lt;li&gt;Alarm management&lt;/li&gt;
&lt;li&gt;User authentication&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The Python gateway handles communication with physical devices.&lt;/p&gt;

&lt;h2&gt;
  
  
  Use Cases
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Education&lt;/strong&gt; — teach SCADA concepts without expensive licenses&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Prototyping&lt;/strong&gt; — quickly build HMI mockups for client demos&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Small facilities&lt;/strong&gt; — water treatment, solar farms, building automation&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Security research&lt;/strong&gt; — safe ICS/SCADA lab environment&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Digital substations&lt;/strong&gt; — full IEC 61850 stack for power utility automation&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Tech Stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Vanilla JavaScript (no frameworks, no dependencies)&lt;/li&gt;
&lt;li&gt;HTML5 Canvas for graphics&lt;/li&gt;
&lt;li&gt;Web Workers for parallel processing&lt;/li&gt;
&lt;li&gt;IndexedDB + SQLite via sql.js&lt;/li&gt;
&lt;li&gt;Python 3 for the gateway (FastAPI + asyncio)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Try It Now
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://larionovavi-stack.github.io/awtscada/" rel="noopener noreferrer"&gt;Open the live demo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Or &lt;a href="https://github.com/larionovavi-stack/awtscada/releases/download/v1.0-en/awtSCADA_Demo_EN.zip" rel="noopener noreferrer"&gt;download the zip&lt;/a&gt; (20 MB)&lt;/li&gt;
&lt;li&gt;Open the HTML file in your browser — that's it&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Why Open Source Matters for Industrial Automation
&lt;/h2&gt;

&lt;p&gt;The ICS/SCADA industry has been locked behind proprietary walls for decades. Engineers can't learn modern protocols without access to expensive software. Security researchers can't test defenses without realistic environments.&lt;/p&gt;

&lt;p&gt;awtSCADA changes that. A full-featured SCADA system that anyone can run, study, and extend.&lt;/p&gt;




&lt;p&gt;⭐ If this is useful, &lt;a href="https://github.com/larionovavi-stack/awtscada" rel="noopener noreferrer"&gt;star the repo on GitHub&lt;/a&gt; — it helps others find it.&lt;/p&gt;

&lt;p&gt;Questions? Comments? I'd love to hear how you'd use a browser-based SCADA system.&lt;/p&gt;

</description>
      <category>scada</category>
      <category>industrial</category>
      <category>opensource</category>
      <category>webdev</category>
    </item>
    <item>
      <title>I Built a Full Industrial SCADA System That Runs From a Single HTML File</title>
      <dc:creator>Александр Ларионов</dc:creator>
      <pubDate>Fri, 15 May 2026 16:24:08 +0000</pubDate>
      <link>https://dev.to/__b4cc59/i-built-a-full-industrial-scada-system-that-runs-from-a-single-html-file-4lcj</link>
      <guid>https://dev.to/__b4cc59/i-built-a-full-industrial-scada-system-that-runs-from-a-single-html-file-4lcj</guid>
      <description>&lt;h2&gt;
  
  
  How a single HTML file replaces million-dollar SCADA software
&lt;/h2&gt;

&lt;p&gt;After 20+ years in industrial automation — working with PLCs, RTUs, SCADA systems, and digital substations — I was frustrated. Every SCADA platform I used required:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Heavy installation (2-4 GB)&lt;/li&gt;
&lt;li&gt;Dedicated server infrastructure&lt;/li&gt;
&lt;li&gt;Annual license fees ($5,000-50,000/year)&lt;/li&gt;
&lt;li&gt;Vendor lock-in&lt;/li&gt;
&lt;li&gt;Windows-only deployment&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So I built &lt;strong&gt;awtSCADA&lt;/strong&gt; — a complete industrial SCADA system that runs entirely from a &lt;strong&gt;single HTML file&lt;/strong&gt;. Open it in Chrome, Firefox, or Safari — and you have a fully functional SCADA with real-time visualization, function blocks, and industrial protocol support.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx4fw3fzpaugx9iuyy7jn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx4fw3fzpaugx9iuyy7jn.png" alt="awtSCADA Overview" width="800" height="473"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What makes it unique?
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Literally one file
&lt;/h3&gt;

&lt;p&gt;The entire SCADA — graphic editor, runtime engine, 53 function blocks, 65 graphic elements — lives inside a single HTML file (~240 KB online, ~3 MB offline with embedded React). No installation. No server. No database server (SQLite is built into the Gateway).&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Full IEC 61850 support in a browser
&lt;/h3&gt;

&lt;p&gt;This is the part I'm most proud of. &lt;strong&gt;No other browser-based SCADA supports IEC 61850.&lt;/strong&gt; awtSCADA implements:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;MMS client&lt;/strong&gt; — read/write data objects, datasets, reports&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GOOSE subscriber&lt;/strong&gt; — real-time event subscription&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sampled Values receiver&lt;/strong&gt; — phasor measurement streams&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This means you can connect to digital substations directly from your browser.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. 9 industrial protocols
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;IEC 61850 (MMS, GOOSE, Sampled Values)
OPC UA (browsing, subscriptions, read/write)
OPC DA (via COM/DCOM bridge)
Modbus TCP (holding/input registers, coils)
MQTT
SNMP
REST API (15 endpoints)
WebSocket (real-time)
Custom protocols via Python Gateway
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  4. 53 function blocks
&lt;/h3&gt;

&lt;p&gt;Not just visualization — awtSCADA has a complete &lt;strong&gt;FBD (Function Block Diagram) engine&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Logic: AND, OR, NOT, XOR, SR flip-flop, edge detectors&lt;/li&gt;
&lt;li&gt;Math: add, subtract, multiply, divide, abs, min, max, formula&lt;/li&gt;
&lt;li&gt;Timers: on-delay, off-delay, pulse&lt;/li&gt;
&lt;li&gt;Counters: up, down, up/down with preset&lt;/li&gt;
&lt;li&gt;PID controller with anti-windup&lt;/li&gt;
&lt;li&gt;Filters: exponential, sliding window, RMS&lt;/li&gt;
&lt;li&gt;Comparators, limiters, multiplexers&lt;/li&gt;
&lt;li&gt;Database write, alarm generators, signal generators&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxyn4zhi5jxk943ae0n1b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxyn4zhi5jxk943ae0n1b.png" alt="Runtime Mode" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  5. 65 graphic elements
&lt;/h3&gt;

&lt;p&gt;Drag &amp;amp; drop from the palette:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Process equipment:&lt;/strong&gt; pumps, motors, fans, compressors, conveyors&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Valves:&lt;/strong&gt; gate valves, ball valves, check valves, control valves&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vessels:&lt;/strong&gt; tanks, columns, separators, heat exchangers&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Piping:&lt;/strong&gt; horizontal/vertical pipes, elbows, tees, reducers&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Electrical:&lt;/strong&gt; contactors, fuses, transformers, grounding&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sensors:&lt;/strong&gt; pressure, temperature, level, flow meters&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Indicators:&lt;/strong&gt; gauges, bar charts, traffic lights, lamps&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Displays:&lt;/strong&gt; trends, sliders, buttons, switches&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcvia2y1z149byonacto2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcvia2y1z149byonacto2.png" alt="Mimic Diagram" width="800" height="712"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Architecture
&lt;/h2&gt;

&lt;p&gt;The system has two components:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Browser (any modern browser)
└── awtSCADA HTML file
        ├── Graphic Editor (drag &amp;amp; drop, multi-page, popups)
        ├── Runtime (fullscreen, password protection, alarms)
        ├── Function Block Engine (53 blocks, 100ms cycle)
        └── WebSocket ←→ SCADA Gateway (Python)
                            ├── IEC 61850 (asyncua + custom)
                            ├── OPC UA (asyncua library)
                            ├── Modbus TCP (pymodbus)
                            ├── MQTT / SNMP
                            ├── SQLite Database
                            └── REST API (15 endpoints)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;strong&gt;Browser&lt;/strong&gt; handles all visualization and logic. The &lt;strong&gt;Python Gateway&lt;/strong&gt; handles protocol communication and database storage. They communicate via WebSocket.&lt;/p&gt;

&lt;h2&gt;
  
  
  Performance
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Scan rate&lt;/td&gt;
&lt;td&gt;10,000 tags/sec&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Update cycle&lt;/td&gt;
&lt;td&gt;100 ms minimum&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Parallel threads&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Browser tabs&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Startup time&lt;/td&gt;
&lt;td&gt;&amp;lt; 3 seconds&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;File size&lt;/td&gt;
&lt;td&gt;240 KB (online) / 3 MB (offline)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Tech stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frontend:&lt;/strong&gt; React 18, JSX, Babel (transpiled in-browser)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend:&lt;/strong&gt; Python 3.10+, asyncio, aiohttp&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Protocols:&lt;/strong&gt; asyncua (OPC UA), pymodbus, custom IEC 61850&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Database:&lt;/strong&gt; SQLite3&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Build:&lt;/strong&gt; Custom Python build script, Base64 encoding, XOR protection&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The build process
&lt;/h2&gt;

&lt;p&gt;One thing I'm particularly proud of is the build system. The JSX source (~175 KB) gets:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Base64 encoded&lt;/li&gt;
&lt;li&gt;SHA256 integrity hash computed&lt;/li&gt;
&lt;li&gt;XOR-encrypted author watermark embedded&lt;/li&gt;
&lt;li&gt;Unique Build ID and License Key generated&lt;/li&gt;
&lt;li&gt;Everything injected into the HTML template&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The result is a self-contained, tamper-protected HTML file that works offline.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it yourself
&lt;/h2&gt;

&lt;p&gt;🌐 &lt;strong&gt;&lt;a href="https://larionovavi-stack.github.io/awtscada/" rel="noopener noreferrer"&gt;Live Demo &amp;amp; Documentation&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;📥 &lt;strong&gt;&lt;a href="https://github.com/larionovavi-stack/awtscada/releases/download/v1.0-en/awtSCADA_Demo_EN.zip" rel="noopener noreferrer"&gt;Download Free Demo&lt;/a&gt;&lt;/strong&gt; — 2-hour trial, no registration&lt;/p&gt;

&lt;p&gt;💻 &lt;strong&gt;&lt;a href="https://github.com/larionovavi-stack/awtscada" rel="noopener noreferrer"&gt;GitHub Repository&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;💰 &lt;strong&gt;&lt;a href="https://avlarion.gumroad.com/l/mcmeyl" rel="noopener noreferrer"&gt;Buy Full Source Code&lt;/a&gt;&lt;/strong&gt; — complete source with build system&lt;/p&gt;

&lt;h2&gt;
  
  
  About me
&lt;/h2&gt;

&lt;p&gt;I'm an industrial automation engineer (IACS/SCADA) with 20+ years of experience:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Process automation systems design and deployment&lt;/li&gt;
&lt;li&gt;PLC/RTU programming and commissioning&lt;/li&gt;
&lt;li&gt;Network equipment configuration (Cisco, MikroTik, Huawei)&lt;/li&gt;
&lt;li&gt;SCADA/HMI development and integration&lt;/li&gt;
&lt;li&gt;IEC 61850 digital substation projects&lt;/li&gt;
&lt;li&gt;Technical documentation per industrial standards (GOST, IEC)&lt;/li&gt;
&lt;li&gt;Full-stack development (Python, JavaScript, React)&lt;/li&gt;
&lt;li&gt;AI/ML engineering (PyTorch, custom model training)&lt;/li&gt;
&lt;li&gt;AutoCAD, electrical schematics design&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I built awtSCADA because I needed a lightweight, portable SCADA that I could deploy anywhere — from a USB stick at a remote substation to a tablet on the factory floor.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's next?
&lt;/h2&gt;

&lt;p&gt;I'm currently working on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Genesis-1&lt;/strong&gt; — an AI model trained on 32 IT specializations that can autonomously manage infrastructure&lt;/li&gt;
&lt;li&gt;Expanding awtSCADA protocol support&lt;/li&gt;
&lt;li&gt;Mobile-optimized runtime&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;What do you think? Would you use a browser-based SCADA in your projects? Let me know in the comments!&lt;/em&gt;&lt;/p&gt;

</description>
      <category>scada</category>
      <category>javascript</category>
      <category>python</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
