PLC Software: Programming, Simulation, HMI & SCADA Tools Explained
"PLC software" means four different things depending on who is asking. This guide maps the whole landscape — programming IDEs, simulators, HMI/SCADA packages, and free options — and points you to the right deep-dive for each.
What "PLC software" actually covers
PLC software spans four tool families: programming IDEs for writing control logic, simulators for testing it without hardware, HMI/SCADA packages for visualising and supervising it, and supporting utilities like emulators and configuration tools. Which one you need depends on whether you are writing, testing, or visualising control logic.
The families overlap at the edges — Siemens bundles its HMI designer into the same IDE as its programming editor, and most modern IDEs ship a built-in simulator — but the distinction matters because pricing, licensing, and vendor lock-in work differently in each category. The sections below cover each family, what it costs, and where to read more.
Programming software (IDEs)
Programming IDEs are where control logic gets written — ladder diagrams, structured text, function blocks. The catch: each PLC brand requires its own IDE. Siemens controllers are programmed in TIA Portal, Allen-Bradley ControlLogix and CompactLogix in Studio 5000, and Mitsubishi in GX Works. The main exception is CODESYS, a multi-vendor environment that 500+ device manufacturers build their controllers on.
Pricing ranges from free (CODESYS engineering, OpenPLC) to several thousand dollars per seat for vendor flagships. Our software directory has pricing, system requirements, and deep dives for 23+ tools, and the 2026 programming software rankings compare them head-to-head.
Free PLC software
You do not have to spend anything to start programming PLCs. OpenPLC is the leading fully open-source option — a free IEC 61131-3 editor and runtime that turns an Arduino, Raspberry Pi, or PC into a working PLC. The CODESYS engineering environment is also free to download, and most major vendors offer trials or limited editions of their commercial IDEs.
The trade-offs are support, fieldbus coverage, and production-grade reliability — fine for learning and prototyping, worth weighing carefully for a machine that ships to customers. Our free PLC software guide ranks every no-cost option, and the complete free software list with reviews covers each in detail.
Simulation software
Simulators run your PLC program without a physical controller — either as a vendor emulator that mimics a specific CPU (Siemens PLCSIM, Studio 5000 Emulate) or as a generic environment for practising logic. They are how students learn without a hardware budget, and how working engineers test code changes before touching a live machine.
Several capable simulators cost nothing: our free PLC simulators round-up compares the no-cost options, and the complete simulator software guide covers the full landscape — vendor emulators, 3D plant simulators like Factory I/O, and browser-based trainers — with guidance on which fits learning versus pre-commissioning.
HMI & SCADA software
Once the logic runs, operators need to see and control it. HMI software builds the touchscreen panels next to a machine; SCADA platforms supervise whole plants — alarms, trends, historians, and reporting across many PLCs. Rockwell shops typically use FactoryTalk View (the ME vs SE editions serve panel and plant level respectively), Siemens plants use WinCC, and AVEVA InTouch — the platform formerly known as Wonderware — leads in process industries.
SCADA licensing is its own minefield — per-tag, per-client, and per-server models produce wildly different costs at scale. Our independent SCADA software comparison ranks the seven most-deployed platforms with pricing models and pick/skip guidance.
Which software do you actually need?
Match your situation to a starting stack — each link goes to the relevant deep-dive on this site.
| Your situation | Recommended stack | Start here |
|---|---|---|
| Student / learning PLC programming | Free simulator + OpenPLC or CODESYS — learn ladder logic and structured text without hardware | Free PLC simulators → |
| Vendor-locked plant (Siemens) | TIA Portal for S7-1200/1500, PLCSIM for offline testing, WinCC for visualisation | TIA Portal guide → |
| Vendor-locked plant (Rockwell) | Studio 5000 for ControlLogix/CompactLogix, Emulate for testing, FactoryTalk View for HMI | Studio 5000 guide → |
| OEM machine builder | CODESYS — one IDE across 500+ controller brands, free engineering environment, fieldbus stacks included | CODESYS guide → |
| Hobbyist | OpenPLC on Arduino or Raspberry Pi — free, open-source, all five IEC 61131-3 languages | OpenPLC guide → |
Frequently asked questions
What software do PLCs use?
Each PLC brand has its own programming environment: Siemens PLCs use TIA Portal, Allen-Bradley uses Studio 5000, and Mitsubishi uses GX Works. CODESYS is the main multi-vendor alternative, used by 500+ device manufacturers. All of them implement the IEC 61131-3 languages — ladder logic, structured text, and function block.
Is there free PLC software?
Yes. OpenPLC is fully free and open-source, the CODESYS engineering environment costs nothing to download, and most major vendors offer free trials or limited editions — Siemens TIA Portal trial, Rockwell CCW, Mitsubishi GX Works trial. Free simulators let you test logic without buying any hardware at all.
What is the most used PLC programming software?
There is no single winner — usage follows hardware market share. TIA Portal dominates wherever Siemens controllers are standard, and Studio 5000 dominates Allen-Bradley plants, especially in North America. CODESYS has the broadest reach across vendors, since 500+ device manufacturers build their controllers on its runtime.
Can I program a PLC without buying software?
Yes. OpenPLC gives you a free, open-source editor and runtime for Arduino, Raspberry Pi, or a PC. The CODESYS engineering environment is free to install and includes a soft PLC for testing. Vendor trials (TIA Portal, GX Works) also let you write and simulate real programs before spending anything.