BitSCADA IEC 61850 v8
Complete User Manual
System Overview
BitSCADA is a browser-based industrial-grade SCADA system for supervisory control and data acquisition. It provides process visualization, data collection from controllers, actuator control, historian archiving, and alarm management.
| File | Size | Description |
|---|---|---|
SCADA_IEC61850_v8.html | ~240 KB | Client-side application (SCADA) |
SCADA_Gateway.exe | ~25 MB | Server-side application (Gateway + Emulator) |
No additional software installation required. No internet connection required.
System Requirements
- CPU: x86-64, 2 cores
- RAM: 2 GB
- Disk: 50 MB
- Browser: Chrome / Firefox / Edge
- CPU: x86-64, 4 cores
- RAM: 4 GB
- Disk: 500 MB (with 30-day historian DB)
- Latest version of Chrome
| Component | Requirement |
|---|---|
| OS | Windows 7/10/11, Linux, macOS |
| Browser | Chrome 90+, Firefox 90+, Edge 90+ |
| Python (.py build only) | 3.11 |
| Python (.exe build) | Not required |
| Network | Not required (localhost) |
Installation
C:\BitSCADA\
SCADA_IEC61850_v8.html (or offline build), SCADA_Gateway.exe, and a demo project .json file
Gateway Auto-Start (Recommended)
To automatically start the Gateway when the computer boots:
# Open the startup folder
Win+R → shell:startup → Enter
# Place a shortcut to SCADA_Gateway.exe here
Quick Start
SCADA_Gateway.exe. Wait for the All servers running! message in the console. Do not close the window.
SCADA_IEC61850_v8.html. The browser will open automatically.
Config received from SCADA.
http://localhost:8088Graphical Editor
The editor opens by default. SCADA projects are created here:
| Action | How To |
|---|---|
| Add block / shape | Drag from the palette on the left |
| Select | Click on element |
| Multi-select | Ctrl + click |
| Connect wire | Click output port → click input port |
| Zoom | Mouse wheel (0.2x – 3x) |
| Pan | Middle mouse button or Shift + LMB |
| Delete | Delete |
| Save | Ctrl + S |
| Auto-layout | ⚡ button in the header |
| Context menu | Right-click: delete, duplicate, layer |
Properties panel (right side, 280px) — settings for the selected block: name, parameters, bindings.
Debug panel (bottom, 56px) — event log. Hidden in Runtime mode.
Function Blocks (53)
Inputs (12)
| Block | Outputs | Description |
|---|---|---|
| Analog Input | v | Analog signal emulation (sine wave) |
| Discrete Input | v | Discrete signal 0/1 |
| Constant | v | Fixed constant value |
| Generator | v | Sine, square, sawtooth, triangle, ramp, random |
| OPC UA Read | v, q | Read IEC 62541 variables |
| Modbus Read | v, ok | Read Modbus TCP registers (FC 3/4) |
| MMS Read | v, q | Read IEC 61850-8-1 variables |
| GOOSE Sub | v, st | GOOSE IEC 61850-8-1 subscription |
| SV Sub | ia, ib, ic | Sampled Values IEC 61850-9-2 (3-phase) |
| OPC DA Read | v, q | Read via OpenOPC/DCOM |
| InTouch Read | v, q | Read Wonderware InTouch |
| WinCC Read | v, q | Read Siemens WinCC |
Logic (9)
| Block | Inputs → Outputs | Description |
|---|---|---|
| AND | a, b → q | Logical AND |
| OR | a, b → q | Logical OR |
| NOT | a → q | Logical NOT |
| XOR | a, b → q | Exclusive OR |
| Comparator | a, b → gt, eq, lt | Comparison: greater than, equal, less than |
| TON | en → q, et | On-delay timer |
| Counter | pu, rst → cv, q | Pulse counter with preset |
| MUX | a, b, sel → q | Multiplexer |
| SR | s, r → q | SR flip-flop |
Computation (7)
| Block | Inputs → Outputs | Description |
|---|---|---|
| Math Operation | a, b → r | +, −, ×, ÷, pow, min, max |
| Scale | v → r | Linear range scaling |
| PID Controller | pv, sp → out, err | PID with Kp and output limiting |
| Formula | x, y → r | Arbitrary expression (sin, cos, sqrt, PI) |
| Filter | v → r | Exponential low-pass filter |
| RMS | v → r | Root Mean Square value |
| Limiter | v → r | Range clamp lo/hi |
Programs (5)
| Block | Description |
|---|---|
| Script | Arbitrary JavaScript (i1, i2 → o1, o2) |
| SQL Write | Write value to SQLite log |
| SQL Read | Read latest value from historian trends |
| DB Write | Auto-classification: >80 = alarm, >60 = warning |
| Auto-Print | Automatic report printing |
Outputs (10)
| Block | Description |
|---|---|
| Analog / Discrete Output | Simple output |
| OPC UA / Modbus / MMS Write | Protocol write operation |
| GOOSE Pub | Publish GOOSE event (d1, d2) |
| OPC DA / InTouch / WinCC Write | Write via OPC DA |
| Alarm Sound | WebAudio: alarm/warn/info/siren + custom URL |
Displays (10 — visible in Runtime)
| Block | Description |
|---|---|
| Analog Gauge | SVG 270° arc, auto-color by threshold |
| Numeric Indicator | Digital readout with engineering units |
| Bar Graph | Vertical scale with fill |
| Indicator | Round lamp, on/off by threshold |
| Trend | 3 channels, cursor, historian, PNG export, print |
| Slider | Operator control knob |
| Button | Toggle 0/1 |
| Text | Value substitution display |
| Alarm Panel | 4 channels with color-coded status |
| Event Log | Latest operator events |
Graphic Elements (65)
Pumps, gate valves, control valves, motors, variable frequency drives, fans, compressors, heaters, coolers, heat exchangers, filters, mixers, conveyors, agitators, dampers, screw feeders, furnaces, flare stacks, and others
Tanks, cylindrical vessels, horizontal vessels, drain vessels, sumps, separators, hoppers, columns
Circuit breakers, contactors, transformers, fuses, grounding
LED (green, red, yellow), lamp, siren, traffic light, flame/flare
Pipelines (5): horizontal pipe, vertical pipe, tee, elbow, reducer.
Primitives (5): line, rectangle, circle, text, polygon.
Connections (Wires)
Connections are created by clicking the output port of a block (right side), then clicking the input port of another block (left side). Wires are rendered as Bezier curves.
- Input ports — on the left side of the block
- Output ports — on the right side of the block
- Delete wire — select + Delete
Multi-Page Projects
A project can contain a main page and any number of additional pages:
- + button in the header — add a new page
- Tabs — switch between pages
- Each page has its own set of blocks and shapes
Popups
Popups are pages that open as modal windows in Runtime when an equipment element is clicked. They are used to display detailed parameters for a specific node.
Runtime Environment
Toggle: Runtime button in the header.
- Scan cycle: 50–1000 ms (default 100 ms)
- Only displays and graphics are shown (logic is hidden)
- Full-screen mode — F11
- Access protection for the editor via login/password
- Auto-start Runtime on load (option)
- Operator log with timestamps
- Slider and button control
- Click on equipment → popup with details
Trends & Historian
The Trend block supports 3 channels with configurable colors and names. Real-time buffer — 200 data points.
Viewing Historian Data
Alarm Notifications
The Alarm Sound block generates audio via the WebAudio API:
| Type | Frequency | Character |
|---|---|---|
| Warning | 660 Hz | Soft tone |
| Alarm | 880/440 Hz | Sharp intermittent |
| Information | 520 Hz | Short click |
| Siren | 600/900 Hz | Rising/falling wail |
| Custom sound | — | URL of mp3/wav file |
Protocol Overview (9)
| Protocol | Standard | Mode | Library |
|---|---|---|---|
| MMS | IEC 61850-8-1 | REAL / EMU | Emulation |
| GOOSE | IEC 61850-8-1 | REAL / EMU | Emulation |
| SV | IEC 61850-9-2 | REAL / EMU | Emulation |
| OPC UA | IEC 62541 | REAL / EMU | asyncua |
| Modbus TCP | Standard | REAL / EMU | pymodbus |
| OPC DA | DCOM | REAL / EMU | OpenOPC |
| InTouch | Wonderware | REAL / EMU | OPC DA |
| WinCC | Siemens | REAL / EMU | OPC DA |
| SQL | SQLite | REAL | sqlite3 |
IEC 61850 (MMS / GOOSE / SV)
Read/write IED variables. Control and monitoring.
Fast event transfer (4 ms). Protection automation.
Instantaneous three-phase current values. Digital substations.
OPC UA
OPC UA (IEC 62541) — universal data access. The Gateway starts a server at opc.tcp://hostname:4840.
Configuration: SCADA → Settings → OPC UA → endpoint, port, security mode.
Modbus TCP
Standard industrial protocol. Gateway: port 502 (or 1502 if in use). Supported function codes: FC 3 (Read Holding Registers), FC 4 (Read Input Registers), FC 6 (Write Single Register), FC 16 (Write Multiple Registers).
OPC DA / InTouch / WinCC
Classic OPC DA via DCOM. Windows required. Supports Kepware, Wonderware InTouch (Wonderware.InTouch.OPCServer), Siemens WinCC (OPCServer.WinCC).
SCADA Gateway
The Gateway is the server-side component of the system. It runs 12 parallel protocol processing threads.
| Thread | Port | Function |
|---|---|---|
| HTTP Dashboard | 8088 | Web management panel |
| WebSocket Bridge | 8089 | SCADA communication link |
| OPC UA Server | 4840 | OPC UA emulation |
| Modbus TCP Server | 502 | Modbus emulator |
| MMS Server | 102 | MMS emulator |
| GOOSE Publisher | 239.0.0.1:61850 | Multicast GOOSE |
| SV Publisher | 239.0.0.2:61851 | Multicast SV |
| Emulator | — | Data generation |
| OPC UA Client | — | Real hardware |
| Modbus Client | — | Real PLCs |
| OPC DA Client | — | Kepware/InTouch/WinCC |
| SQL Engine | — | SQLite: event log, trends |
Dashboard (6 Tabs)
Access: http://localhost:8088
Cards for 9 protocols, EMU/REAL mode, R/W operations, connected projects, verification
Addresses for all endpoints: WebSocket, OPC UA, Modbus, MMS, REST API
Rolling window, max records, statistics, cleanup, last 50 records
OPC UA and OPC DA tag tree with current tag values
CRUD operations, 3 roles: Operator, Engineer, Admin. SHA256 passwords
Full event log with color-coded severity levels
Database (SQLite)
File: scada_journal.db (created automatically in the same folder as the Gateway).
| Table | Description |
|---|---|
| journal | Event log: timestamp, source, severity, tag, value, message |
| trends | Historian: timestamp, tag, value (recorded every 5 seconds) |
| alarms | Alarms: start, end, tag, severity, message, acknowledgement |
| users | Users: name, role, SHA256 password, date |
Retention: rolling 30-day window, max 100,000 records. Volume: ~2 MB/day.
Users & Roles
| Role | Permissions |
|---|---|
| Operator | Runtime, view only |
| Engineer | + Editor, settings |
| Admin | + User management, database |
REST API (15 Endpoints)
| Method | Endpoint | Description |
|---|---|---|
| GET | /api | Protocol status |
| GET | /api/db/stats | Database statistics |
| GET | /api/db/last | Last 50 records |
| GET | /api/users | User list |
| GET | /api/opc/browse | OPC tag browser |
| GET | /api/trends/history | Historical trends |
| GET | /api/trends/tags | Available tags |
| POST | /api/emu/toggle | EMU ON/OFF |
| POST | /api/config | Configuration from SCADA |
| POST | /api/db/clear | Clear database |
| POST | /api/db/cleanup | Delete old records |
| POST | /api/db/config | Storage settings |
| POST | /api/users/add | Add user |
| POST | /api/users/delete | Delete user |
| POST | /api/log/clear | Clear event log |
Projects
| Action | How To |
|---|---|
| Save | 💾 → enter name → localStorage |
| Load | 📂 → select project |
| Export | ⤓ → download JSON |
| Import | 📂 → Import → select JSON |
Format: JSON, includes blocks, shapes, wires, settings, and pages.
Settings (9 Tabs)
SCADA → Settings button in the header:
| Tab | Parameters |
|---|---|
| General | Scan cycle (ms), auto-start, full screen, login/password |
| OPC UA | Endpoint, port, security mode |
| OPC DA | DCOM server, ProgID |
| Modbus | TCP port, timeout |
| MMS | Port, version, TSEL, TLS |
| GOOSE | AppID, VLAN, interface |
| SV | Interface, sampling rate |
| InTouch | Server, Access Name |
| WinCC | Server, Connection |
Connecting to Real Hardware
asyncua, pymodbus, OpenOPC) at startup.Backup
| Data | Storage | Backup Method |
|---|---|---|
| SCADA Projects | Browser localStorage | Export to JSON |
| Trends & Event Log | scada_journal.db | Copy the file |
| Gateway Settings | scada_gateway.json | Copy the file |
Troubleshooting
Verify that SCADA_Gateway.exe is running (look for All servers running!). Ensure port 8089 is not blocked by antivirus software.
This is normal for the standalone package. The Gateway operates in emulation mode — all data is generated by the built-in emulator.
Check for the green GW indicator in the header. If absent — the Gateway is not connected. Click Runtime again after starting the Gateway.
localStorage is full. Delete unused projects or export them to JSON.
Security
- Trial mode: 2-hour operation with anti-tamper protection
- Integrity: SHA256 hash of JSX code, verified on load
- Base64: source code is encoded inside the HTML file
- Editor protection: login/password in settings
- Roles: Operator / Engineer / Admin
- Passwords: SHA256 hash stored in SQLite
Licensing
Built-in licensing system with no activation servers required. Each build contains:
- Build ID — 16-character SHA256 hash
- License Key — 4 groups of 8 characters (MD5)
- Integrity Hash — SHA256 checksum
Contacts
© 2026 BitSCADA — ATW Technologies. All rights reserved.
Application submitted for registration in the Russian Software Registry (Ministry of Digital Development).