A survey of PLC Technology

In working with IoT systems, I occasionally interface with PLCs (programmable logic controllers), so I did a brief survey of the technology behind them. This is what I learned:

  • It appears most PLCs are programmed in some variant of ladder logic.
  • Rockwell/ABB are very popular in the US
  • Rockwell software (Logix) is expensive, and in some cases difficult to deal with
  • IEC 61131-3 standard defines three graphical and two textual programming languages:
    1. Ladder diagram (LD), graphical
    2. Function block diagram (FBD), graphical
    3. Structured text (ST), textual
    4. Instruction list (IL), textual (deprecated in 3rd edition of the standard[3])
    5. Sequential function chart (SFC), has elements to organize programs for sequential and parallel control processing, graphical.
  • CODESYS
    • implements IEC 61131-3
    • supports a number of PLCs.
    • IDE is free, but license is required for runtime on PLC. Some PLC manufacturers take care of the license for you.
    • very popular for training as IDE is free to use
    • can run on Raspberry PI
    • liked because it is cross-platform – use the same environment on many PLCs
    • regarded as a power-user’s tool
  • Arduino Opta
    • developed in partnership with Finder
    • is proprietary (which is very odd from a company like Arduino built on OSS)
    • supports the 5 IEC-61131-3 languages
  • OpenPLC
    • implements IEC 61131-3
    • supports Arduino and Linux based targets
    • does not seem to be support for many mainstream industrial PLCs
    • likely not industrial grade

When building a platform that you want to scale (people/time/projects), consider the following:

  1. CODESYS appears to be a capable platform that will probably give you the most reuse. Additionally, as the tools are free to install, you can easily include more people in your organization in the development efforts without much friction. Text-based languages may give you more possibilities for reuse across projects.
  2. Arduino Opta looks interesting, but probably only applicable for one-off projects as I don’t see how this can scale.
  3. OpenPLC may be interested in your want to embed customizable PLC logic in a Linux-based platform or for education.

With modern technology, the most valuable solutions involve integrating multiple technologies. Therefore, the most scalable and flexible technologies are generally the most useful long-term. The days when we can rely on one vendor to provide a top-to-bottom vertically integration solution are past. The future belongs to decoupled flexible systems, open standards, and ultimately open-source.

New directions for PLCs

Linux-based PLCs

There is a new generation of Linux-based PLCs. This is likely critical for integration with modern connectivity protocols (e.g., remote access, MQTT, etc.). Some examples:

  • PLCnext Technology by Phoenix Contact
  • Pixsys PL700
  • Bosch Rexroth ctrlX CORE
  • WAGO PFC100/PFC200 Controllers
  • TwinCAT by Beckhoff
  • CODESYS-based SoftPLCs
  • Opto 22

Modern workflows

There are also some companies attempting to integrate modern workflows.

(see also - discussion about the PLC ecosystem)

Some quotes from the Simatic AX web page:

  • Make use of the most popular integrated development environment based on VISUAL STUDIO CODE for automation
  • Set modular standards with Object-oriented programming in STRUCTURED TEXT
  • Increase software quality trough UNIT TESTING
  • Ensure SOURCE CONTROL MANAGEMENT via NATIVE GIT integration
  • Increase efficiency and speed through a COMMAND LINE INTERFACE first approach
  • Handle complex dependencies easily with a proven PACKAGE MANAGEMENT solution
  • Ensure stable, fast, and automated release cycles with CI PIPELINES
  • Connect and deploy from anywhere thanks to our CLOUD CONNECTION
  • Foster transparency and automation through HUMAN-READABLE PLAIN TEXT source code
  • Choose your preferred work mode – native in the CLOUD or LOCAL
  • Adapt the system to your workflows with EXTENSIONS, SCRIPTS and PACKAGES provided by SIEMENS, third parties or you
  • Harness the power of a collective intelligence through an OPEN SOURCE GITHUB COMMUNITY

Siemens, Beckhoff, WAGO, Bosch, and Phoenix Contact are all German companies.