PLC Programming on Linux in 2026: What Actually Works
TIA Portal on Wine? Studio 5000 on CrossOver? Codesys on Raspberry Pi? Honest breakdown of every Linux PLC programming option in 2026 — with the wins, the dead ends, and the right tool for each job.
Linux is a great operating system for industrial software engineering — stable, scriptable, open. It's also an operating system for which no major PLC vendor ships an IDE. The pain of running TIA Portal, Studio 5000, or GX Works on Ubuntu, Fedora, Arch, or Debian is legendary, and most Linux users who need PLC programming end up carrying a second laptop.
This guide walks through every option in 2026 — including some genuinely native Linux tools that are often overlooked — with honest notes on where each fails.
Table of Contents
- Why No Native Linux Vendor PLC Software?
- Option 1: Wine / CrossOver
- Option 2: VirtualBox / QEMU + Windows
- Option 3: Dual-Boot
- Option 4: Native Linux PLC Tools — OpenPLC, Beremiz, Codesys Runtime
- Option 5: Browser-Based PLC Simulators
- Distro-Specific Notes
- Running PLC Code on a Raspberry Pi
- Practical Recommendations
Why No Native Linux Vendor PLC Software?
The same reasons as Mac, plus one extra: Linux fragmentation. Every major vendor would need to pick distros (Ubuntu LTS? RHEL? both?), choose a packaging format (deb, rpm, AppImage, Flatpak, Snap), and commit to supporting it through kernel updates, libc changes, and desktop-environment variations. The combined engineering cost is significant for a market that has historically been small — professional automation engineers overwhelmingly use Windows at work.
The exception is Codesys. Codesys Runtime (the thing that runs the PLC logic) is genuinely cross-platform and has native Linux, Raspberry Pi, ARM, and BeagleBone targets. The Codesys Development System (the thing you write PLC code in) is Windows-only, and that asymmetry tells you exactly how vendors view the two populations: runtime users are engineers deploying code to weird hardware; IDE users are engineers sitting at a workstation, which the vendors assume is Windows.
Option 1: Wine / CrossOver
Wine is a free-software compatibility layer that runs Windows executables on Linux by translating Windows API calls to Linux equivalents. CrossOver is a paid commercial product from CodeWeavers built on top of Wine with vendor-validated configurations.
Honest status of each major vendor IDE under Wine/CrossOver in 2026:
TIA Portal:
- V13, V15: Install and run on Wine 8+ with effort. Usable for small projects. Editor works, PLCSIM works, project load/save works. Large projects (>500 rungs) develop stability issues.
- V17, V18: Partial success. Installation completes on Ubuntu 22.04 + Wine 8+ and some Fedora/Arch setups. Editing and compiling work. Downloading to a real PLC is unreliable because Wine's USB-over-Ethernet passthrough is fragile.
- V19, V20: Not working reliably at time of writing. Installation fails or the program hangs at first launch on most Wine versions.
- Siemens does not support any of this. If something breaks you're on your own.
Studio 5000 / RSLogix 5000:
- Largely doesn't work. The installer fails before completing on most Wine configurations. A handful of forum posts claim success on specific CrossOver bottle templates but reproducing them is difficult and the results are fragile.
- Rockwell has no official Wine support and will not assist.
Codesys IDE:
- Installs and runs better than Siemens or Rockwell under Wine, but still not officially supported.
- Better alternative: use Codesys Runtime on Linux (see Option 4 below) and run the IDE in a small Windows VM only for editing.
GX Works 2/3, Sysmac Studio, Machine Expert:
- Largely do not work under Wine. Not worth the time.
Factory IO:
- Works under Wine with 3D performance issues. Usable for light scenarios.
Verdict on Wine/CrossOver in 2026: a serious time-sink with high failure rates. Not a recommended path unless you already have strong Wine skills and are willing to debug.
Option 2: VirtualBox / QEMU + Windows
The mainstream answer. Run a Windows 11 VM on your Linux host; install vendor PLC software inside the VM.
What works well:
- VirtualBox is stable, free, and reliable. Performance on modern hardware is within 10–15 % of native.
- QEMU with KVM acceleration is even faster; typical performance overhead is 5–10 %.
- TIA Portal, Studio 5000, Codesys, Factory IO — all install and run normally.
- USB passthrough for programming cables works, though occasionally requires tuning.
What's awkward:
- Windows licence required (~$200 Home, $300 Pro).
- Disk space: typical Windows 11 VM after TIA Portal + project files is 50–80 GB.
- RAM: allocate at least 8 GB to the VM; 16 GB preferred for TIA Portal. Your Linux host wants another 8 GB.
- Ethernet-to-PLC for online debugging works but requires bridged networking setup, which is a 30-minute task the first time.
Cost: Free hypervisor + ~$200 Windows licence + vendor PLC licence (unchanged).
This is the sanest paid Linux path for serious vendor PLC work.
Option 3: Dual-Boot
Install Linux and Windows on the same machine, pick at boot. Familiar, reliable.
When it makes sense: You already planned to run Windows for other reasons. PLC work amortises the Windows cost.
Downsides:
- Rebooting to switch OS means no access to your Linux tools during Windows sessions.
- Managing partitions, bootloaders (GRUB on most distros), Windows-Update-surviving strategies.
- File sharing between Linux and Windows partitions is awkward (typically via a FAT32 or NTFS shared partition).
In 2026 most Linux users who would dual-boot should instead virtualise — the performance gap is small, the hassle saving is large.
Option 4: Native Linux PLC Tools
These are genuinely native-Linux and often overlooked. They are not replacements for Siemens/Rockwell/Mitsubishi vendor work, but they are real tools for real jobs:
OpenPLC (openplcproject.com): Open-source IEC 61131-3 runtime and editor originating at the University of Alabama in Huntsville. The editor is desktop-based (Linux, Windows, Mac) and supports LD, ST, FBD, SFC, IL. The runtime targets Raspberry Pi, Arduino, ESP32, x86 Linux, and BeagleBone. Active community, strong in academic / research / maker contexts, and increasingly used in ICS security research.
Beremiz (beremiz.org): Another open-source IEC 61131-3 IDE, also native Linux, sharing the Matiec compiler with OpenPLC. The UI is rougher than OpenPLC's and documentation is scattered, but for Linux purists it's a legitimate option.
Codesys Runtime (codesys.com): The closed-source-but-free-for-development Codesys SoftPLC runs natively on Linux, including Raspberry Pi and BeagleBone. Paired with the Windows Codesys IDE in a small VM, you get a workflow that runs real PLC code on Linux hardware with an occasional Windows editing session.
scadapy / OpenModbus / Node-RED for PLC-like work: Not real PLCs, but for protocol-driven industrial data acquisition jobs, these native-Linux tools cover significant ground.
Use cases where native Linux tools are genuinely the right answer:
- Academic research and ICS security testing (OpenPLC + Raspberry Pi is essentially the standard research platform).
- Low-budget automation projects where Codesys-on-Raspberry-Pi is cheaper than a commercial PLC.
- Learning IEC 61131-3 on real hardware without vendor licence cost.
- Hobbyist and maker projects.
Where they're not the right answer: any job that requires deploying to a Siemens, Rockwell, Mitsubishi, or Omron PLC. Those need vendor tools and vendor runtime.
Option 5: Browser-Based PLC Simulators
Native Linux support without Wine, without a VM, without a Windows licence: a browser-based simulator runs on Chromium, Firefox, or Edge regardless of distro or init system.
For learning and practice — especially across dialects — this is the fastest path in 2026. IEC 61131-3, Allen-Bradley-style, and Siemens-style practice coexist in one tool, running natively on whatever Linux distro you're on.
The caveat is the same as on Mac: browser simulators don't ship to real vendor PLCs. They build fluency and cover practice, they don't replace TIA Portal for production work.
Distro-Specific Notes
Quick notes from community threads on specific distros:
Ubuntu LTS (22.04, 24.04): Best Wine compatibility for TIA Portal older versions. Good KVM/QEMU support out of the box. The default choice for someone who just wants things to work.
Fedora: Mostly fine with Wine and VM options. Occasionally newer glibc / wine combinations break things that Ubuntu has stabilised.
Arch / Manjaro: Bleeding-edge Wine is readily available, which helps with some TIA Portal versions and hurts with others. Plan to roll back Wine when something breaks.
Debian Stable: Older Wine lags behind what TIA Portal V17+ needs. Use backports or install Wine-Staging manually.
Pop!_OS / System76: Ubuntu-derived, inherits Ubuntu's strengths. Adds nothing unique for PLC work.
NixOS: Pinning Wine versions is easier than anywhere else. Getting Windows-side USB passthrough working is the hardest part and takes serious Nix skill.
Distros nobody should use for this: minimal server distros without desktop environments (Alpine, headless Debian). If you're trying to run a desktop IDE, run a distro with a desktop.
Running PLC Code on a Raspberry Pi
One Linux-PLC workflow deserves separate mention because it's genuinely great: developing PLC logic on your Linux laptop in Codesys IDE (running in a small Windows VM), deploying it to Codesys Runtime on a Raspberry Pi for real-hardware testing. For learners, hobbyists, or anyone building low-cost automation, this gets you from idea to a running PLC in a weekend for under $100.
A typical Pi-PLC setup:
- Raspberry Pi 4 or 5 with 4GB RAM (~$50-75).
- Codesys Runtime Control RTE for Raspberry Pi (free trial, ~€50 for perpetual licence).
- An inexpensive I/O board — Ph I/O Hats from Revolution Pi, or even direct GPIO.
- Codesys IDE for editing (in a Windows VM).
- Ethernet connection between laptop and Pi.
OpenPLC does the same job without needing a Windows VM at all — the OpenPLC editor is native Linux, and the runtime flashes directly to the Pi. Less polished than Codesys, but entirely open-source and licence-free.
See our OpenPLC tutorial and Codesys tutorial for full walkthroughs.
Practical Recommendations
You are a Linux enthusiast learning PLC programming: Combine OpenPLC on a Raspberry Pi for real-hardware work + a browser-based simulator for cross-dialect practice + an occasional Windows VM for any specific vendor exercise. This covers 90 % of a self-taught syllabus without leaving Linux for long.
You are a controls engineer whose day job is Siemens or Rockwell work: Run Windows in a VM (VirtualBox + Windows 11 + vendor PLC licence). Accept the 50-80 GB disk hit and keep the VM focused on PLC work. Don't fight Wine for production tools.
You work across vendors as a consultant: VirtualBox + Windows VM for vendor-specific work. Browser simulator for quick cross-vendor concept work. Codesys on Raspberry Pi for hands-on IEC 61131-3 teaching. All three have legitimate roles; the VM handles the billable Windows-only portion.
You are a security researcher or academic: OpenPLC on Raspberry Pi is your primary environment. Native Linux, open source, auditable, flashable. Browser simulators for cross-vendor concept work. Windows VM for specific commercial-tool testing.
You want to teach yourself IEC 61131-3 and don't care which vendor yet: Browser-based simulator for day-to-day practice + OpenPLC on a Pi when you want real hardware. Zero Wine frustration, zero Windows licence, $50 of hardware if you want to go physical.
Key Takeaways
- No major vendor PLC IDE ships native Linux support in 2026.
- Wine and CrossOver results for TIA Portal and Studio 5000 are inconsistent; not a recommended path for serious work.
- VirtualBox + Windows is the reliable paid path. KVM/QEMU if you want better performance.
- Native Linux PLC tools exist and are real: OpenPLC, Beremiz, and Codesys Runtime cover learning, research, and low-cost deployment well.
- Raspberry Pi + Codesys or OpenPLC is an excellent real-hardware Linux learning setup.
- Browser-based simulators run natively, with no Wine, no VM, no licence.
Related Reading
If you want to skip the Wine experimentation entirely, a browser PLC simulator runs natively on any distro — free tier, no install, no licence, today.


