← All Posts

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:

  1. Read inputs — scan physical input terminals (24V digital, 4-20mA analog) and copy values into memory.
  2. Execute program — run the control logic (ladder, ST, function blocks) using the input values.
  3. Write outputs — update physical output terminals based on program results.
  4. Housekeeping — check communication buffers, update diagnostics, run the watchdog timer.
  5. 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.

Rule of thumb: If your process can tolerate ±10ms jitter, a SoftPLC on a modern computer works fine. If you need microsecond determinism, use a hardware PLC or a real-time Linux kernel. Most test, education, and IoT applications are firmly in the "SoftPLC is fine" category.

SoftPLC vs Hardware PLC: Side-by-Side

Factor
Hardware PLC
SoftPLC
When It Matters
Cost
$200–$5,000+
Free to $30 (ide); $0 hardware
Learning and small projects
Determinism
Microsecond jitter
1-10ms jitter typical
Motion control, high-speed counting
Setup time
Hours (wiring, config)
Seconds (open app, run)
Prototyping and testing
I/O
Physical terminals, fieldbus
Network drivers (Modbus, EIP, OPC-UA)
Depends on connectivity needs
Portability
Fixed hardware
Runs on any computer
Development and demos
Git / version control
Vendor-locked binary projects
Plain-text .st files
Team development, code review
macOS support
Requires vendor IDE (Windows)
Native Apple Silicon
Mac-using engineers

Why SoftPLCs Are the Future of PLC Development

Three trends are pushing SoftPLCs from niche to mainstream:

  1. 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.
  2. 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.
  3. 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-stc compiler 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:

  1. Download Voltrus PLC from voltrus.id/voltrus-plc. ~11MB download, Apple Silicon native, installs in seconds. v1.0 available now — $29.99 one-time.
  2. Write a program in the ST editor. Start with the example: a motor start/stop with overload protection.
  3. Compile — the diagnostics panel shows any errors.
  4. Run — the SoftPLC starts executing. Watch variables update in the watch table.
  5. 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

Further Reading