Practice industrial protocols.
No hardware required.

A browser-based training lab for Modbus TCP, SCADA, and HMI development. Simulated devices, real protocols, full register maps.

modbus-read · Bay 1, Unit 1
$ read holding 0-12, unit 1

reg[0] status 1 loading
reg[1] bay 1
reg[2] gross_gal 3847.5 float32
reg[4] net_gal 3845.1 float32
reg[6] flow_gpm 598.3 float32
reg[8] temp_f_x10 651 ×0.1 = 65.1°F
reg[9] density 745.2 float32
reg[11] alarm_code 0 none
reg[12] heartbeat 4218
Modbus TCP Holding registers Input registers Coils & discrete inputs UINT16 / INT16 / FLOAT32 ABCD / CDAB word order
Components

Three tools, one lab

Everything runs in the cloud. Students open a browser and start working — nothing to download or install.

Data Maker

Modbus TCP device simulator with a web-based editor. Loading bays, linked storage tanks, configurable register maps, fault injection, and real-time state machines.

lab.itotlab.com

FUXA HMI

Open-source SCADA/HMI editor. Build dashboards with gauges, charts, and controls. Connect to simulated Modbus devices and visualize live process data.

hmi.itotlab.com

Modbus TCP

Real Modbus protocol on port 5020. Multiple unit IDs, holding registers, coils, and standard data types. Compatible with any Modbus client or polling tool.

pymodbus 3.6.9
RegisterNameTypeDescription
0statusuint160 = idle, 1 = loading, 2 = complete, 3 = alarm
1bayuint16Bay number
2–3gross_galfloat32Gross gallons loaded this batch
4–5net_galfloat32Temperature-corrected net gallons
6–7flow_gpmfloat32Current flow rate in GPM
8temp_f_x10int16Temperature (°F × 10)
9–10densityfloat32Product density (kg/m³)
11alarm_codeuint16Active alarm (0 = none, 5 = high temp, 6 = tank empty)
12heartbeatuint16Increments each tick (0–65535)
100stop_cmduint16Write 1 to stop current batch
How it works

From zero to reading registers in 60 seconds

No installs, no configuration files, no licensing. The lab is always on.

Open the lab

Go to lab.itotlab.com. Enter your email and a one-time code. You're in.

Explore the devices

The Data Maker runs four loading bays and two linked storage tanks. Register values update in real time as bays load and tanks drain.

Build an HMI

Open the FUXA editor and connect to Modbus devices. Drag in gauges, trend charts, and controls.

Inject faults

Trigger word-swap errors, sensor freezes, and equipment failures. Practice troubleshooting like you would on a real plant floor.

Use cases

Built for training, ready for practice

Instructor-led training

Run a class with a shared lab environment. All students work against the same simulated plant. No hardware to ship or maintain.

Self-paced learning

Students log in on their own time and follow structured lab exercises. Practice Modbus reads, HMI design, and fault diagnosis.

IT/OT integration

Bridge the gap between IT and OT teams. Practice reading industrial data, understanding register maps, and building operator interfaces.

Security training

Study Modbus protocol behavior, inject faults, and observe how bad data propagates through HMI displays.

Ready to start?

Request access and get into the lab in minutes.

Request Access