The Voltrus Blog

Practical guides for system integrators: SCADA deployment, Modbus TCP/RTU tutorials, PLC programming, protocol comparisons, and real project pricing. 80 articles.

80 articles

Modbus HMI: Build an Operator Panel for a Modbus TCP PLC

How a Modbus HMI works: holding registers and coils as widgets, FC03/FC06 reads and writes, Unit ID and port 502, float byte order. Step-by-step build of the panel against a Modbus TCP PLC.

Read article

NATS JetStream Explained: Streams, Consumers, KV, and Core NATS

How JetStream streams, consumers, retention, acks and replay work, plus the KV and Object stores and a table for choosing between Core NATS, a stream and a KV bucket.

Read article

NATS Client for macOS: Publish, Subscribe and Browse JetStream

Looking for a NATS client on macOS? Compare the CLI, NATS Studio, Nui, and native GUI options. How to publish/subscribe, manage JetStream streams and consumers, and browse KV/Object stores without a terminal.

Read article

Web-Based HMI vs SCADA: Browser Dashboards for Machines and Plants

How browser HMIs connect to PLCs, WebSocket vs polling, single-file deployment, and where an HMI ends and SCADA begins, with a decision framework for integrators.

Read article

HMI on Raspberry Pi: A Low-Cost Industrial Touchscreen Panel

How to run an HMI on a Raspberry Pi: kiosk mode, serving dashboards, connecting to PLCs over the network, and the watchdog + auto-start setup that makes a Pi a reliable industrial operator panel.

Read article

OEE Formula Explained with a Worked Example

The OEE formula broken down step by step. How to calculate Availability, Performance, and Quality, a full worked example, the ideal 100% benchmark, and the mistakes that inflate your score.

Read article

Manufacturing Downtime Tracking: Measure, Classify, Reduce Stops

Capture downtime automatically, derive machine state from PLC signals you already have, keep reason codes honest, and read the Pareto that shows where the minutes actually go.

Read article

Modbus Poll vs Modscan vs Modbus Slave: Which Master Tool to Use

Modbus Poll, Modscan, and Modbus Slave compared. Platform support, RTU vs TCP, master and simulator modes, pricing, and which Modbus master tool fits your workflow in 2026.

Read article

Modbus TCP vs PROFINET: Choosing the Right Industrial Ethernet

Modbus TCP vs PROFINET compared. Real-time determinism, device discovery, configuration effort, vendor ecosystem, and when to use each industrial Ethernet protocol.

Read article

How to Read Modbus Holding Registers (FC03): A Practical Walkthrough

How to read Modbus holding registers with function code 03. Slave ID, start address, quantity, the FC03 frame, 16-bit byte order, and 32-bit scaling explained.

Read article

EtherNet/IP ListIdentity: How Device Discovery Works (UDP 44818)

EtherNet/IP ListIdentity discovery explained. How a broadcast on UDP 44818 finds every CIP device, what the Identity reply contains, and how to browse devices on macOS.

Read article

CIP Explicit vs Implicit Messaging: When to Use Each

CIP explicit vs implicit messaging compared. Explicit (TCP 44818, request-response, tag reads) vs implicit (UDP 2222, cyclic I/O, RPI). Use cases, overhead, and when each wins.

Read article

EtherNet/IP Port 44818 Explained: TCP, UDP 2222, and Firewall Rules

EtherNet/IP port 44818 explained. TCP 44818 for explicit messaging, UDP 2222 for cyclic I/O, UDP 44818 for ListIdentity discovery. Firewall rules and security.

Read article

DNP3 vs IEC 60870-5-104: Power Utility Protocols Compared

DNP3 vs IEC 60870-5-104 compared. The two dominant power-utility SCADA protocols. Addressing, transport, event model, region, and which to choose for substations.

Read article

DNP3 Class 0, 1, 2, 3 Explained: Event Polling Strategy

DNP3 Class 0, 1, 2, 3 explained. Class 0 is a full snapshot; Classes 1-3 are prioritized event backlogs. How utility masters poll by class to retrieve only what changed.

Read article

DNP3 Select-Before-Operate (SBO): Safe Control Outputs

DNP3 Select-Before-Operate explained. Why SBO guards critical controls, how the select-then-operate two-step works, select timeouts, and direct operate for non-critical points.

Read article

OPC UA vs OPC Classic (DA): Why the Upgrade Matters

OPC UA vs OPC Classic (DA) compared. Platform-independent transport, built-in security, rich information model, and why migrating from COM-based OPC DA to OPC UA matters.

Read article

OPC UA Information Model Explained and How to Browse a Server

Nodes, references, the type system and companion specs, then a step-by-step walkthrough of browsing a UA server from GetEndpoints to a subscribed value, including on macOS.

Read article

OPC UA Security: Certificates, Encryption, and Auth Setup

OPC UA security explained. Security modes (None, Sign, SignAndEncrypt), security policies, X.509 certificates, mutual authentication, trust lists, and secure setup.

Read article

OPC UA Subscriptions and Monitored Items Explained

OPC UA subscriptions and monitored items explained. Publishing interval, sampling, data-change filters, and why subscribe beats poll for live monitoring.

Read article

Siemens S7-1200 vs S7-1500: Which PLC for Your Project

Siemens S7-1200 vs S7-1500 compared. Performance, memory, I/O count, motion, safety, PROFINET, price, and which Siemens PLC fits small machines vs large process lines.

Read article

S7 Protocol vs OPC UA for Siemens PLCs: Direct or Standardized

S7 protocol vs OPC UA for Siemens PLCs compared. Native direct access vs the cross-vendor standard, performance, security, setup, and when to use each.

Read article

How to Read a Siemens S7 Data Block (DB) Over the Network

How to read a Siemens S7 data block. DB number and offset addressing, data types, the rack/slot connection, enabling PUT/GET, and reading S7-1200/1500 DBs.

Read article

BLE GATT Services and Characteristics Explained: How Every BLE Device Is Structured

The GATT data model end to end: ATT vs GATT, the Profile, Service, Characteristic, Descriptor hierarchy, UUID formats, characteristic properties, the CCCD, ATT operations, and a full byte-level walk-through of the Heart Rate Service.

Read article

BLE Pairing and Bonding: Security Explained

Pairing vs bonding, LE Legacy vs LE Secure Connections (ECDH P-256), the four association models, the STK/LTK key hierarchy, AES-CCM encryption, IRK-based privacy, Security Mode 1 levels, and how to debug auth failures on macOS.

Read article

MQTT Topic Design: Best Practices for Naming and Wildcards

MQTT topic naming rules, forward-slash hierarchy, the + and # wildcards, shared subscriptions, ACL security, and the anti-patterns that bite teams in production.

Read article

OPC UA Companion Specifications: How UA Models Real Industries

How OPC Foundation collaborations with industry bodies (VDMA, PLCopen, VDW, BACnet) add typed, domain-specific information models so multi-vendor equipment interoperates without per-vendor register maps.

Read article

OPC UA vs Modbus TCP: Which Industrial Protocol to Choose

Data model, security, discovery and scalability compared, plus what gateways between the two really cost and how to secure Modbus TCP when you cannot replace it.

Read article

PROFINET vs S7 Communication: What's the Difference

PROFINET IO and S7 communication are not competing protocols: they coexist on every Siemens controller. PN-IO is the deterministic fieldbus for cyclic I/O; S7 is the acyclic read/write protocol over TCP port 102. Ports, RFC 1006, RT/IRT timing, GSDML, and macOS tooling explained.

Read article

MQTT vs HTTP vs Direct Database Writes for IoT

Why devices that INSERT straight into a database or poll an HTTP API break at fleet scale, and why an MQTT broker feeding one ingest bridge holds up. Includes where HTTP and direct writes are still the right call.

Read article

BLE Advertising Packets Explained: AD Structures, iBeacon and Eddystone

Decode a BLE advertising packet byte by byte: the 31-byte payload, AD structures, scan response, and the iBeacon and Eddystone (UID, URL, TLM) layouts, with how to read raw advertising data on macOS.

Read article

MQTT Keep Alive Explained: Tuning It and Why Clients Disconnect

MQTT keep alive explained: the CONNECT packet field, the 1.5x timeout rule, PINGREQ/PINGRESP, how brokers detect dead clients, and how to choose the right interval for IoT devices.

Read article

EtherNet/IP RPI Explained: Requested Packet Interval and Tuning

EtherNet/IP RPI (Requested Packet Interval) explained: the timing of CIP implicit I/O, how RPI differs from the CIP connection timeout, and how to choose and tune RPI values for Allen-Bradley PLCs.

Read article

Modbus 32-Bit Data Types: Register Pairs, Byte Order, Scaling

How Modbus handles 32-bit integers: two registers per value, word order (high word first vs low word first), signed vs unsigned, register pairs, and scaling examples for energy meters and drives.

Read article

Voltrus Gateway vs Kepware: Drivers, API and Licensing Compared

Kepware is a Windows OPC server licensed by driver; Voltrus Gateway is a self-hosted Rust binary with a typed gRPC API over six protocols. Platform, S7 and Allen-Bradley connectivity, licensing, and when to keep Kepware or run both.

Read article

Modbus, OPC UA and EtherNet/IP in One Binary for the Edge

How one Rust binary drives six industrial protocols behind a single gRPC API, what a protocol layer should and should not own at the edge, and why a minimal stack beats a pile of services.

Read article

Modbus Addressing: PLC Address vs Protocol Address (Off-By-One)

Why Modbus holding register 40001 is protocol address 0. The PLC address vs protocol address off-by-one confusion, the four address ranges, and how to convert between them.

Read article

Secure Remote Access to PLC Networks: WireGuard vs VPN

Outbound-only WireGuard access to PLC subnets with a self-hosted Headscale control plane: threat model, deployment steps, ACL design, comparison with IPsec and OpenVPN, and IEC 62443 and NIS2 alignment.

Read article

BACnet Objects and Properties: The Object Model Explained

BACnet models every data point as an object with typed properties (Present-Value, Units, Status-Flags). This self-description enables discovery (no external register map needed).

Read article

OPC-UA vs MQTT for Industrial IoT: Which Should You Choose

OPC-UA for rich plant-floor integration and SCADA; MQTT for lightweight multi-site telemetry. Data models, security, bandwidth, and when each protocol wins.

Read article

SCADA for Water and Wastewater: A System Integrator Guide

Remote pump stations, radio/cellular telemetry, DNP3 and Modbus, alarm management for unattended sites, and why lightweight self-hosted SCADA fits thin utility budgets.

Read article

SCADA Historian: Data Logging and Trend Analysis That Actually Helps

A historian stores full-resolution, time-stamped process data, the foundation for troubleshooting, predictive maintenance, and compliance. Build vs buy, and retention strategy.

Read article

Modbus TCP Security Risks: Why It Is Not Safe and How to Protect It

Modbus TCP has no authentication, encryption, or integrity: anyone on the network can read and write every register. Segment, firewall, and tunnel it; never expose TCP/502.

Read article

Postgres CLI Tools vs pgAdmin: When the Terminal Wins

pgAdmin is a heavy web UI that is painful over SSH. Terminal Postgres browsers like PostgresTUI start instantly, work natively over SSH, and stay out of your way for quick queries.

Read article

BACnet Explorer vs YABE: The Native macOS YABE Alternative

YABE is the free default, and a Windows .NET app that breaks on Apple Silicon and fails BACnet/IP discovery. Here is the honest feature-by-feature comparison and why a native $14.99 YABE alternative wins for Mac commissioning.

Read article

Modbus RTU Troubleshooting Guide: CRC Errors, Timeouts, and Wiring

Fix Modbus RTU communication errors. Step-by-step troubleshooting for CRC errors, timeouts, and wiring problems. How to read Modbus RTU frames and diagnose RS485 bus issues.

Read article

Best Modbus Simulator in 2026: Free and Paid Tools Compared

Need to test Modbus devices without hardware? Compare five Modbus simulators: Modbus Poll, Modbus Slave, diagslave, PyModSlave, and ModRSsim2. Covers macOS, Windows, Linux.

Read article

MQTT Sparkplug B Explained: Industrial IoT Protocol Guide (2026)

MQTT Sparkplug B explained for industrial automation. Understand topics, payloads, birth/death certificates, data types, and how Sparkplug B compares to basic MQTT.

Read article

BACnet vs Modbus for Building Automation (2026): Protocol Comparison

BACnet vs Modbus for building automation. Compare data models, discovery, scalability, and HVAC integration. When to use each protocol and how to test on macOS.

Read article

PLC Programming on a Mac: CODESYS Alternatives and Soft PLCs

How to program PLCs on a Mac without Windows: CODESYS alternatives, running a soft PLC, simulating logic without hardware, and what still needs a Windows VM.

Read article

PLC Programming Languages: The 5 IEC 61131-3 Languages Explained

The five IEC 61131-3 PLC languages compared, which to learn first, and when a PLC beats an Arduino-class microcontroller.

Read article

IEC 61131-3 Structured Text: A Practical PLC Programming Guide

Learn IEC 61131-3 Structured Text (ST), the modern way to program PLCs. Syntax, data types, function blocks, timers, counters, and real examples.

Read article

TwinCAT Alternative: PLC Development Without Beckhoff Lock-In (2026)

TwinCAT locks you into Beckhoff hardware and Windows. Compare alternatives: Voltrus PLC (macOS native, IEC 61131-3 ST, multi-vendor I/O), CODESYS, and OpenPLC.

Read article

SCADA Alarm Management: Best Practices for ISA-18.2 Compliance (2026)

SCADA alarm management guide. Reduce alarm floods, implement ISA-18.2 best practices, configure deadbands, and improve operator response. Metrics, rationalization, and shelving.

Read article

What Is Modbus? The Protocol That Runs Industrial Automation

Modbus explained for engineers: how it works, why it's still dominant after 50 years, and the difference between Modbus RTU, TCP, and ASCII.

Read article

Modbus Register Types: Coils, Inputs and Holding Registers

The four Modbus data types and their function codes. How to read coils (FC01), write registers (FC06/FC16), and avoid common addressing mistakes.

Read article

RS-232 vs RS-485 vs RS-422: Serial Communication Protocols Compared

UART, RS-232, RS-485, and RS-422 explained. Distance limits, device count, noise immunity, and which serial standard your industrial equipment uses.

Read article

Modbus RTU vs TCP, and the RTU to TCP Gateway

How Modbus RTU and TCP differ in speed, wiring and distance, and how an RTU to TCP gateway routes requests by unit ID, where its latency really comes from, and hardware vs software gateways.

Read article

S7 Communication Protocol Guide: Memory Areas, Addressing, and Data Types

How the Siemens S7 protocol accesses PLC memory. Data blocks, inputs, outputs, markers, timers, counters. Rack/slot addressing and data type mapping.

Read article

MQTT QoS Levels Explained: When to Use QoS 0, 1, or 2

MQTT QoS 0, 1, and 2 explained with practical examples. At-most-once, at-least-once, exactly-once delivery for IoT and industrial systems.

Read article

Industrial Protocol Comparison: Modbus, OPC UA, MQTT, S7, DNP3, EtherNet/IP, PROFINET

How to choose between Modbus, OPC UA, MQTT, Siemens S7, DNP3, EtherNet/IP and PROFINET, with the S7 vs Modbus TCP, DNP3 vs Modbus and EtherNet/IP vs PROFINET decisions worked through.

Read article

SCADA vs HMI: What's the Difference and Do You Need Both?

The practical difference between SCADA and HMI for system integrators. When you need one, the other, or both, and why the distinction matters for your next project.

Read article

SCADA Architecture Explained: RTU, PLC, HMI, and How They Connect

SCADA architecture from field devices to the control room. RTUs, PLCs, HMIs, and how data flows from a sensor reading to a dashboard alert.

Read article

Voltrus vs Wonderware (AVEVA): Cost and Complexity Compared

Voltrus vs AVEVA Wonderware comparison for system integrators. Pricing, deployment complexity, protocol support, and when each makes sense.

Read article

Connecting Siemens PLCs Without TIA Portal: A Practical Guide

You don't need TIA Portal to monitor Siemens S7 PLCs. How to connect S7-1200 and S7-1500 directly from your SCADA using the S7 protocol.

Read article

Ladder Logic vs Structured Text for SCADA Projects

Which PLC language to learn (ladder logic or Structured Text), and why SCADA configuration does not require either. Side-by-side comparison, examples, and a practical learning path.

Read article

Industrial Dashboard Design: 12 Principles for SCADA Screens

Twelve design rules for SCADA and factory dashboards operators actually use, plus mobile design, secure remote access and locked-down kiosk-mode operator consoles.

Read article

Self-Hosted Pastebin on Cloudflare Workers vs PrivateBin, Gist and Pastebin.com

Deploy a self-hosted pastebin on Cloudflare Workers, D1 and R2, and see how it compares to Pastebin.com, PrivateBin and GitHub Gist on data location, files, setup and cost.

Read article

How to Share Files Between Remote Servers Without Cloud Storage

Remote server file sharing without cloud storage. Transfer logs, configs, and screenshots between isolated networks using a self-hosted pastebin. No Dropbox, no Google Drive.

Read article

Best Modbus Simulator for macOS (2026): PM5560, SMA Inverter, and More

Modbus simulator with real device templates. Simulate Schneider PM5560 power meter, SMA solar inverter, ABB analyzer on macOS. No Parallels, no Windows.

Read article

Schneider PM5560 Modbus Register Map and Simulator

Complete PM5560 Modbus register map with addresses for voltage, current, power, power factor, frequency, and energy. Includes a PM5560 simulator for macOS.

Read article

Serial Terminal for macOS: screen, minicom and CoolTerm Alternatives

Best serial terminal apps for macOS in 2026. Compare screen, minicom, CoolTerm, Serial by Decisive Tactics, and MacTools. Hex view, protocol analysis, USB-RS485.

Read article

MQTT Broker on macOS: Run One Without Homebrew or Terminal

How to run an MQTT broker on macOS without Homebrew, Terminal, or mosquitto. Native MQTT broker and client with GUI for macOS.

Read article

Connect to Siemens S7-1200/1500 from macOS without TIA Portal

Read and write S7-1200/1500 data blocks from a Mac without TIA Portal or a VM. Covers enabling PUT/GET in TIA Portal, the security trade-off, and connecting over port 102.

Read article

BLE Debugging on macOS: nRF Connect vs BLE Inspector and Other Tools

Compare nRF Connect, LightBlue, Bluetooth Explorer, CLI tools and BLE Inspector for debugging BLE peripherals on a Mac, and what a complete workflow needs.

Read article

OT Security Checklist: 15 Steps to Harden Your SCADA System

Actionable security checklist based on real OT breach analysis and IEC 62443 best practices. Default credentials, network segmentation, monitoring, and more.

Read article

FDA 21 CFR Part 11 Compliance for SCADA: What Integrators Need to Know

Pharma, food, and beverage integrators need audit trails, electronic signatures, and access controls. What CFR Part 11 actually requires from SCADA, and how to deliver it without $10K+ consulting.

Read article

SCADA Software Cost in 2026: From Free to $50K

What SCADA actually costs in 2026, from AVEVA and Ignition to free tools, the hidden time cost of open source, lifetime vs subscription math, and what a sub-$1,000 budget covers.

Read article

Ignition vs Node-RED vs Voltrus: SCADA Alternatives Compared

How Ignition, Node-RED, Voltrus, OpenSCADA and ScadaBR compare for system integrators on pricing, resource use, protocols and fit by project size.

Read article

On-Premise vs Cloud SCADA: Air-Gapped, Edge and Raspberry Pi

Why connectivity, data sovereignty, latency, security and cost often favor local SCADA, and how to run it on a mini PC or Raspberry Pi.

Read article