What Is a SoftPLC? Run PLC Programs on Your Mac Without Hardware
To learn PLC programming, traditional advice says: buy a starter PLC ($400+), install the vendor IDE on a Windows PC, connect everything, and start blinking lights. That's a $500+ entry barrier before you write your first line of code.
A SoftPLC eliminates the hardware. It's a PLC runtime that runs on your computer — your MacBook, your Linux box, your Windows laptop. Write IEC 61131-3 Structured Text, compile it, run it in a cyclic scan, watch variables update in real-time. All in software. No PLC hardware required. And when you're ready to talk to real devices, the SoftPLC connects to physical I/O over Modbus TCP, EtherNet/IP, or OPC-UA. This guide explains what SoftPLCs are, how they work, and how to start using one on your Mac today with Voltrus PLC.
How a Hardware PLC Works
To understand SoftPLCs, you need to understand what a hardware PLC actually does:
- Read inputs — scan physical input terminals (24V digital, 4-20mA analog) and copy values into memory.
- Execute program — run the control logic (ladder, ST, function blocks) using the input values.
- Write outputs — update physical output terminals based on program results.
- Housekeeping — check communication buffers, update diagnostics, run the watchdog timer.
- Repeat — go back to step 1. This is the cyclic scan. Typical scan times are 1-100ms.
The scan cycle is the defining characteristic of a PLC. Unlike a PC program that runs once and exits, a PLC program runs continuously — the same logic, over and over, as long as the PLC is in RUN mode. This guarantees predictable, repeatable behavior for machine control.
What a SoftPLC Does Differently
A SoftPLC does exactly the same thing — but instead of using dedicated PLC hardware with a real-time operating system, it runs on your standard computer OS (macOS, Windows, Linux):
- Same cyclic scan — read inputs, execute logic, write outputs, repeat.
- Same IEC 61131-3 languages — Structured Text, ladder logic, function blocks.
- Same data model — variables, timers, counters, function blocks.
- Software I/O — instead of physical terminals, I/O comes from network drivers (Modbus TCP, EtherNet/IP, OPC-UA) that talk to remote I/O racks or simulated devices.
The key difference is determinism. A hardware PLC with a real-time OS guarantees scan times within microseconds. A SoftPLC on macOS or Windows has scan-time jitter because the host OS may decide to run Spotlight indexing or a Chrome update mid-scan. For development, testing, education, and many non-critical applications, this jitter doesn't matter. For a CNC machine cutting at 50,000 RPM — use hardware.
SoftPLC vs Hardware PLC: Side-by-Side
Why SoftPLCs Are the Future of PLC Development
Three trends are pushing SoftPLCs from niche to mainstream:
- Engineers use Macs. Field engineers, IoT developers, and students increasingly carry MacBooks. They're not going to buy a Windows laptop just to test PLC code. A SoftPLC that runs natively on macOS eliminates that barrier.
- Development velocity matters. Waiting for hardware to arrive, wiring it up, and configuring it before you can test a single line of code is a 1990s workflow. Write code, compile, run in software — that's the 2026 expectation for any development tool.
- CI/CD for PLC code is coming. If your PLC program is plain-text ST, you can test it in CI — compile, run a SoftPLC with simulated inputs, verify outputs. The same way backend engineers test APIs. Hardware PLCs make this impossible; SoftPLCs make it trivial.
The SoftPLC in Voltrus PLC
Voltrus PLC includes a built-in SoftPLC runtime. It's a bytecode virtual machine (VM) that executes compiled IEC 61131-3 programs in a cyclic scan. Here's what that means in practice:
- Compile → Run pipeline — write ST in the editor, click Compile (the
mt-stccompiler parses your code and emits bytecode), click Run (the VM starts executing). Errors appear in the diagnostics panel with line numbers. - Configurable scan cycle — set the scan interval from 1ms to 1 second. The runtime runs your program, sleeps for the remaining interval, then runs again. Watch the scan-time histogram to understand jitter.
- Live watch table — monitor any variable's value in real-time as the scan runs. See inputs change, logic execute, outputs update. This is the same debugging experience you'd get with a hardware PLC.
- Modbus TCP I/O — map ST variables to Modbus registers. The runtime reads those registers every scan (inputs) and writes them every scan (outputs). Your SoftPLC program controls real Modbus devices — relays, remote I/O modules, VFDs.
- Run / Stop / Step — runtime controls: Run (continuous scan), Stop (halt execution), Step (single scan, then stop). Essential for debugging.
From SoftPLC to Real PLC
A common question: can I deploy my SoftPLC program to a real PLC? The answer depends on the target:
- Same ST code, different runtime: IEC 61131-3 Structured Text is a standard. A well-written ST program will run on any IEC 61131-3 compliant PLC — CODESYS, TwinCAT, TIA Portal — with minimal changes. The logic is portable.
- I/O mapping differs: the Modbus register addresses and I/O configuration are hardware-specific. You'll need to remap them for the target PLC, but the control logic stays unchanged.
- SoftPLC as the target: for many applications — test stands, lab setups, IoT gateways, small machines — a SoftPLC on an industrial PC or even a Raspberry Pi is the production target. No hardware PLC needed at all.
The SoftPLC-to-hardware workflow: prototype and test on your Mac using the SoftPLC + simulated Modbus I/O → deploy to a hardware PLC by copying the ST code and remapping I/O → the logic that worked in the SoftPLC works on the hardware. This saves days of bench testing with real PLCs.
Getting Started with a SoftPLC on macOS
The fastest way to start using a SoftPLC on macOS:
- Download Voltrus PLC from voltrus.id/voltrus-plc. ~11MB download, Apple Silicon native, installs in seconds. v1.0 available now — $29.99 one-time.
- Write a program in the ST editor. Start with the example: a motor start/stop with overload protection.
- Compile — the diagnostics panel shows any errors.
- Run — the SoftPLC starts executing. Watch variables update in the watch table.
- Connect I/O — map a variable to a Modbus register. The SoftPLC reads and writes that register every scan. Connect to a real Modbus TCP device and watch the values flow.
No PLC hardware. No Windows VM. No license activation. Write, compile, run — on your Mac, in 30 seconds.
Frequently Asked Questions
What is a SoftPLC?
A SoftPLC (Software PLC) is a PLC runtime that runs on a general-purpose computer instead of dedicated PLC hardware. It executes IEC 61131-3 programs in a cyclic scan — read inputs, run logic, write outputs, repeat — just like a hardware PLC but in software. SoftPLCs are used for development, testing, simulation, and increasingly for production control on industrial PCs.
Can I run PLC programs without hardware?
Yes. A SoftPLC lets you write, compile, and execute IEC 61131-3 programs entirely in software. Voltrus PLC includes a built-in SoftPLC runtime for macOS. Write ST programs, run them in a cyclic scan, monitor variables in real-time, and connect to real Modbus TCP devices — all without a physical PLC.
What's the difference between a SoftPLC and a hardware PLC?
A hardware PLC is a dedicated industrial computer with real-time OS and physical I/O terminals — determinism within microseconds. A SoftPLC runs the same logic on a standard computer with software-based I/O drivers — scan times have 1-10ms jitter. Hardware PLCs are for production control with strict timing; SoftPLCs excel at development, testing, education, and non-critical applications.
Can a SoftPLC replace a hardware PLC in production?
Sometimes. For non-critical monitoring, IoT gateway control, lab automation, and small machines where ±10ms timing jitter is acceptable, a SoftPLC on a dedicated industrial PC works well. For high-speed motion control, safety systems, or any application requiring microsecond determinism, use a hardware PLC.
Run PLC Programs on Your Mac — No Hardware Required
Voltrus PLC includes a built-in SoftPLC runtime. Write IEC 61131-3 Structured Text, compile, run, and connect to real Modbus devices — all native on macOS. v1.0 available now — $29.99 one-time.
Download for Mac