← All Posts

PLC Programming on Mac: Write, Run, and Test Without Windows

If you searched for "PLC programming on Mac" you already hit the wall. Every major PLC IDE is Windows-only. CODESYS? Windows. TIA Portal? Windows. TwinCAT? Windows. Studio 5000? Windows. Engineers who carry MacBooks — and today that's a lot of field engineers, students, and IoT developers — have three bad options: buy a separate Windows laptop, run a sluggish VM, or give up and use whatever the IT department issued.

None of those are good answers. This guide covers every option for PLC programming on macOS in 2026, from VMs to CLI tools to the one native IDE that actually works: Voltrus PLC.

The State of PLC Programming on Mac in 2026

Industrial automation has a platform problem. The dominant PLC programming environments — CODESYS, TIA Portal, TwinCAT, Studio 5000 — all assume you're running Windows. Not because Windows is technically superior. Because these tools were built 15-25 years ago when Windows dominated engineering workstations, and the vendors never ported them.

Meanwhile, the hardware landscape shifted. Apple Silicon Macs are the best laptops you can buy for engineering work — 20-hour battery life, no fan noise, instant wake. Field engineers increasingly carry MacBooks. Students learn on Macs. The disconnect between what engineers carry and what PLC tools support has never been wider.

Here's where every option stands in 2026:

Option
macOS Native
Cost
Real I/O
Voltrus PLC
Yes — Apple Silicon + Intel
$29.99 one-time
Modbus TCP now, EIP/OPC-UA coming
CODESYS in Parallels
No — Windows VM required
$99/yr VM + runtime licensing
Depends on VM USB passthrough
TIA Portal in Parallels
No — 20GB VM overhead
€2K–€20K+ license
Siemens PLCs only
OpenPLC Editor
Yes — cross-platform
Free (open source)
Limited, hobbyist-focused
IronPLC (VS Code)
Yes — VS Code extension
Free (open source)
Not yet — compiler only

Why Running CODESYS in a Windows VM Is a Bad Trade

The standard answer to "how do I program PLCs on my Mac" is: install Parallels Desktop, run Windows, run CODESYS. Here's what that actually costs in 2026:

  • Parallels Desktop costs $99/year (subscription, not one-time).
  • CODESYS IDE is free, but the runtime license for your target device costs €50–500 per device.
  • Windows license adds another $139–199.
  • RAM overhead: Windows 11 + CODESYS eats 6-8 GB RAM minimum. On an 8 GB MacBook Air, that leaves nothing for anything else.
  • USB and serial passthrough is unreliable on Apple Silicon. FTDI and CH340 USB-to-RS485 adapters frequently disconnect inside VMs, crashing your debugging session mid-test.
  • CODESYS itself has problems: 15-20 minute freezes on incremental compile, multi-monitor support is broken, .project files are binary (unmergeable in git), and configuration is undocumented.
The bottom line: Running CODESYS on a Mac via Parallels costs $238+ in year one just for the VM and Windows license, plus €50–500 per target device for the runtime. You're paying more for a worse experience.

What About TIA Portal? TwinCAT? Studio 5000?

Same problem, worse numbers:

  • TIA Portal (Siemens) requires a 20GB+ installation and a Windows PC that engineers on Siemens' own forum call "gaming-class." License costs range from €2,000 to €20,000+. And it's Siemens PLCs only — total vendor lock-in.
  • TwinCAT 3 (Beckhoff) installs a kernel-mode driver that can literally BSOD your Windows VM. Updates sometimes break your runtime. It's powerful but fragile, and it's Beckhoff-only.
  • Studio 5000 (Rockwell/Allen-Bradley) is completely closed. No API. No command-line build. No macOS — not even a Linux version. Just Windows. Rockwell's openness score is 0 out of 9.

None of these are realistic options for a Mac user. You're not just buying Windows — you're buying into an ecosystem that doesn't want you on macOS.

Voltrus PLC: The Native macOS Option

Voltrus PLC is a native macOS PLC development environment. It includes an IEC 61131-3 Structured Text editor, a compiler that emits bytecode, and a softPLC runtime that executes your program in a cyclic scan — all running natively on your Mac. No Windows. No VM. No Parallels.

What you get:

  • IEC 61131-3 Structured Text editor with syntax highlighting (CodeMirror 6), inline error squiggles, and autocomplete for keywords, types, and standard functions.
  • ST compiler (mt-stc) that parses IEC 61131-3 ST via iecst and emits bytecode. Errors and warnings appear in a diagnostics panel with source location.
  • Bytecode VM runtime (mt-plc-runtime) that executes your program in a configurable cyclic scan. Run, stop, step, single-scan debugging.
  • Watch table with live variable monitoring — see variable values update in real-time as the scan runs.
  • Modbus TCP I/O driver — map variables to Modbus registers and talk to real devices directly from your ST program.
  • Dark and light themes — because you're coding at 2 AM or in a sunlit control room, and one size doesn't fit both.
  • Tiny footprint: ~30MB download. Compare to CODESYS (2GB), TIA Portal (20GB), TwinCAT (4GB).

It's not trying to be CODESYS. It's the PLC tool for the 30-minute task — write a quick ST program, test a Modbus device, teach IEC 61131-3, or prototype control logic without a rack of hardware.

Write, Compile, Run — All on Your Mac

The Voltrus PLC workflow is three steps:

  1. Write — Open the editor, write Structured Text. Full IEC 61131-3 syntax: IF...THEN...ELSE, CASE...OF, FOR...DO, WHILE...DO, function blocks, timers, counters.
  2. Compile — Hit Compile. The ST compiler parses your code and emits bytecode. Errors and warnings appear in the diagnostics panel with line numbers. Fix, recompile, repeat.
  3. Run — Hit Run. The softPLC VM starts executing your program in a cyclic scan. Watch variables update in real-time. Connect to real Modbus devices and see I/O values flow.

No Windows. No VM. No license server. No dongle. Just your Mac, the editor, and the runtime.

IEC 61131-3 Structured Text on macOS

If you're new to PLC programming or coming from ladder logic, Structured Text is one of the five IEC 61131-3 languages. It looks like Pascal or a simplified C — IF temperature > 80.0 THEN cooling := TRUE; END_IF — and it's the most natural language for anyone who's written code before.

Voltrus PLC supports the core ST language: variables (BOOL, INT, REAL, STRING), arrays, structs, function blocks, programs, standard functions (math, conversion, string), timers (TON, TOF, TP), and counters (CTU, CTD, CTUD). Direct address support (%IX0.0, %QW100, %MW200) maps ST variables to physical I/O.

Talk to Real Devices — Modbus TCP Driver

An IDE without I/O is a text editor. Voltrus PLC includes a Modbus TCP driver that lets your ST program read and write real Modbus devices. Map a variable to a holding register, and the runtime reads it every scan. Write to a coil from your ST program, and the Modbus device responds.

This is what makes Voltrus PLC more than an academic exercise. You can write a motor control program in ST, compile it, run it on the softPLC, and have it actually toggle a relay on a Modbus TCP remote I/O module. All from your Mac.

EtherNet/IP (for Allen-Bradley) and OPC-UA drivers are on the roadmap for v0.2 and v0.4.

Why This Matters for Field Engineers

Field engineers increasingly carry MacBooks. They're light, they last all day on battery, and they wake instantly. But commissioning a PLC with a MacBook has always meant either carrying a second Windows laptop or suffering through a VM.

Voltrus PLC changes the equation. You can:

  • Write and test ST programs on the plane or train, then load them onto the actual PLC when you arrive.
  • Simulate Modbus devices to verify your control logic before connecting to real hardware.
  • Debug I/O mapping by watching live register values from Modbus devices while your ST program runs.
  • Keep everything in git — .st files are plain text. Diff, merge, branch, review. No binary .project files.

For Students and Educators

PLC programming is traditionally hard to learn because you need expensive hardware. A Siemens S7-1200 starter kit costs $400+. A CODESYS-compatible PLC costs €200-500. And you need a Windows PC to run the IDE.

Voltrus PLC runs on the MacBook you already own. The softPLC runtime is free — no hardware required. Write programs, run them, watch variables, and learn IEC 61131-3 without spending a cent on PLC hardware. When you're ready to talk to real devices, connect to a $30 Modbus TCP relay board and watch your code control physical outputs.

What Voltrus PLC Doesn't Do (Yet)

Honesty matters. Voltrus PLC is at v0.1 and does not yet have:

  • Ladder Diagram (LD) or Function Block Diagram (FBD) — these graphical IEC 61131-3 languages are planned for v2.0. v0.1 is Structured Text only.
  • Full IEC 61131-3 compliance — the core ST language works, but edge cases and less-common constructs are being filled in.
  • Multi-file projects — v0.1 works with single ST files. Multi-file projects with proper save/load come in v0.2.
  • Breakpoints and stepping — these debugging features are planned for v0.4. v0.1 has watch table monitoring and compile diagnostics.

See the full roadmap for what's coming in each release.

AI-Assisted PLC Programming — Coming in v0.3

This is the differentiator. No PLC IDE on the market today ships with integrated AI. Beckhoff's CoAgent (2025) is the first mover, but it's Windows-only. Voltrus PLC v0.3 will include:

  • AI code generation — describe logic in natural language, get ST code.
  • AI error fix — click on a compiler diagnostic, get a suggested fix with validation.
  • Context-aware AI — every prompt includes current POU, variables, I/O map, and diagnostics for accurate suggestions.
  • Safety-first workflow — every AI suggestion shows a diff, runs the compiler, and passes basic simulation tests before applying.

This is the wedge. PLC programming hasn't changed much in 30 years. AI assistance for writing, debugging, and testing control logic — integrated into a native Mac app — is something no one else ships.

Frequently Asked Questions

Can you program PLCs on a Mac?

Yes. Voltrus PLC is a native macOS PLC IDE with an IEC 61131-3 Structured Text editor and built-in softPLC runtime. It runs on Apple Silicon and Intel Macs without Windows or virtualization. Write ST code, compile it, run it on the softPLC, and connect to real Modbus TCP devices — all on your Mac.

What PLC software runs on macOS?

The only native macOS PLC IDE with a built-in softPLC runtime and real I/O drivers is Voltrus PLC. CODESYS, TIA Portal, TwinCAT, and Studio 5000 are Windows-only. OpenPLC Editor is cross-platform but education-focused. IronPLC is a Rust-based compiler (open source, early stage). For professional work on macOS, Voltrus PLC is the only practical option.

Do I need Windows to write PLC programs?

Not anymore. While the dominant IDEs are Windows-only, Voltrus PLC provides a complete ST editing, compilation, and execution environment that runs natively on macOS. You can write, test, and run PLC programs without touching Windows.

Can I run CODESYS on my MacBook?

CODESYS does not have a macOS version. The only way to run it on a Mac is through Parallels Desktop ($99/year) or another Windows VM, which adds cost, RAM overhead, and unreliable USB/serial passthrough. Voltrus PLC is a native macOS alternative that eliminates the VM entirely.

Can I connect to real PLC hardware from macOS?

Yes. Voltrus PLC includes a Modbus TCP driver that lets your ST programs read and write real Modbus devices. Map ST variables to Modbus registers and the softPLC handles the communication. EtherNet/IP (Allen-Bradley), OPC-UA, and Siemens S7 drivers are on the roadmap.

Voltrus PLC v1.0 — Available Now

Native macOS PLC IDE with IEC 61131-3 Structured Text editor, compiler, softPLC runtime, and Modbus TCP I/O. No Windows, no VM, no Parallels. $29.99 one-time, no subscription.

Download for Mac

Further Reading