Free PLC programming software for education

Available programmable logic controller (PLC) software that is free for users is crucial for users and students who can't currently access a lab. See table with a breakdown.

By Jon Breen January 26, 2021

With the pandemic measures and schools transitioning to remote education professors looking for ways to get students hands-on experience using programmable logic controllers (PLCs) without a lab. I’ve also been looking for ways to present PLC programming concepts in a way that people can follow along at home without having to buy expensive hardware and software, so I thought I’d share what I’ve found here.

This article is the first step by identifying free software with the requisite functionality.  The next step was to actually teach the programming concepts, which I’ve been doing on a growing playlist on YouTube, which demonstrate programming concepts in a way that’s deliberately vendor independent. Downloadable example files are also linked on the videos.

Learn more about “The PLC programming playbook.”

Six important aspects

I’ve got a lot of opinions and preferences when it comes to PLC programming software, but I’ve paired this down to a few main points that I think are relevant to education.

  • Free
  • Tag-based
  • IEC 61131 language support
  • User-defined type (Struct) support
  • Code reuse features like functions and add-on instructions
  • Built-in simulation.

Eight free PLC programming softwares to consider

I looked for all the free programming software I could find and listed it here. I’ve worked with some of these extensively. The rest, I downloaded and tried for the sake of this article. Here’s the software, in no particular order.

  1. Connected components workbench
  2. Machine expert basic
  3. TwinCAT 3
  4. Productivity
  5. Do-more
  6. CoDeSys
  7. Open PLC
  8. Sysmac Studio

Connected components workbench

I’ve used this software to program PLCs, HMIs, and configure drives. My impression is always that it’s a little clunky, but that’s from the perspective of trying to maximize work efficiency. From the perspective of trying to learn PLC programming, I think this is a reasonable option.

CCW only supports three of the IEC 61131 languages, but they’re the right three in my opinion (LD, ST, FBD). The latest version (v12) includes simulation in the free version as well. The biggest downside for education is more advanced programming features are not available in the free version.

A final thought here: This is made by Allen Bradley, but it’s based on Microsoft Visual Studio.  It’s laid out differently than typical AB environments, so experience with CCW isn’t likely to translate into RS5000 or RSLogix500. This environment is a little closer to some other Visual Studio based applications, so there’s still some transfer to other brands.

Machine expert basic

Modicon is known as one of the first PLC manufacturers. It’s now owned by Schneider Electric, and continues to make PLCs. Their Machine Expert (formerly known as SoMachine) comes in a free version (“Basic”) that’s good enough to service an existing machine. One thing I found interesting is their implementation of the IEC 61131 languages allowed automatic conversion between the languages (with some limitations).

A ladder logic routine could be displayed and edited as instruction list, for example. This could be a handy tool for learning languages, although it probably wouldn’t show how a human would write code in the different languages.

My impressions after using the software is that it’s pretty simple to use, but still feels foreign compared to most others. For example, Allen Bradley has a normal layout and way of doing things, then many other manufacturers will have a layout and feel somewhere between that and Beckhoff.  Machine Expert feels like it’s outside that continuum, and I think that’s my only complaint from an educational perspective. It’s easy to use, and has the easiest simulation mode I’ve seen.  Certainly worth considering for class use.

TwinCAT 3

Beckhoff is a little unusual in industrial automation. All of their PLCs are actually industrial PCs (IPCs). The programming environment is based on Microsoft Visual Studio, so it looks a little like CCW, but it’s more refined and powerful. Beckhoff licenses the runtime (the part that lives on the IPC), not the IDE (the programming environment), so the software is free with the full set of features.

This is the most powerful programming environment I’m aware of for industrial automation, and it’s nice to have access to all that power for free.  However, some of that power comes at the cost of being different than what a person is likely to see in the US automation industry. This is a great programming environment for programmers, but may be too complicated for a maintenance technician that will have minimal programming responsibilities.  For this reason, I can’t recommend it for general programming education.

Productivity suite

AutomationDirect targets the low-cost market, so free software is often a part of that.  The Productivity line of PLCs is their high-end offering in that space. The software doesn’t have advanced functionality, but is fairly polished for what it does.  I’ve used this on a real project, and wouldn’t mind using it again. It’s worth consideration as a learning platform. The downsides include few advanced features, ladder logic only programming, and no simulation.


This is AutomationDirect’s middle line of PLCs. It appears to be similar to the Productivity line, but address based.  The big selling point for this application in education is the built in simulation. It’s a ladder logic only platform.  That’s fine for learning the basics, but I think PLC education should include structured text and function block as well.


Smart Software Solutions (S3) develops CoDeSys for use on other company’s hardware, so that’s where the licensing happens. The benefit is that this software is fairly flexible and matches a lot of use cases. CoDeSys is mostly used on smaller hardware brands, large brands whose primary focus isn’t PLCs, and peripheral devices.

Sometimes the hardware manufacturer will offer customized versions of the CoDeSys environment, and the vanilla version is available free on the CoDeSys website. I haven’t worked with this on real projects, but I have played with it a bit for curiosity’s sake. It appears to be fully featured, easy to use, and it has an easy to use simulator. This is probably a good option for learning PLC programming. As a bonus, this package includes HMI programming, as well.


This is a new player in the PLC space.  As the name suggests, it’s open source and free to download.  It implements all five languages of IEC 61131 and has a built-in simulator.  I’m impressed that such a young open-source project looks as good as this does.  That being said, in my tinkering with it, I don’t think it’s ready for prime time yet.

Omron Sysmac Studio

I’ve worked with Omron’s Sysmac Studio quite a bit in the field. It’s PLC, HMI, and robot programming all wrapped in one. It’s easy to use, feels familiar when comparing to other big names, and has built in simulation. It doesn’t support instruction list or sequential function chart, which is fine with me. The problem is there isn’t necessarily a free version, but there’s a free online version of Sysmac Studio. This runs in a virtual machine in the cloud and allows 30 minutes of access at a time. You can upload files to the VM, so this could probably work in a class setting.

Table: PLC software breakdown

Brand Software Free Full/Partial IEC 61131 Tag based Struct Code reuse Simulation
AB CCW Partial (Standard edition) Partial: LD, ST, FBD Yes. Clumsy with IO Paid version Paid version Paid version
Modicon MachineExpert Basic Partial (Basic edition) Yes Yes Function and Function Block Yes, not sure if in Basic
Beckhoff TwinCAT 3 Full Yes Yes Yes Yes Complicated
Automation Direct Productivity Suite Full No.  Ladder only Yes Limited Limited No
Automation Direct Do-more Full No.  Ladder only No Limited Limited Yes
3S CoDeSys Full Yes Yes Yes Function and Function Block Yes
OpenPLC Full Yes Yes Yes


This article originally appeared on Breen Machine Automation Services’ blog. Edited by Chris Vavra, web content manager, Control Engineering, CFE Media and Technology,

Original content can be found at

Author Bio: Jon Breen, owner, Breen Machine Automation Services, LLC