Projects / PLCIO


The PLCIO library reads and writes data to a variety of programmable logic controllers (PLC). Now in its 20th year, PLCIO is a stable platform allowing the programmer to address PLC memory by their tag names for different data types, regardless of the computer architecture, with the PLC linked either directly or remotely. PLCIO abstracts the application and communications layers so that the programmer of the business and database logic need not worry about the communication details. Full source code is included, as are samples and a CGI interface for PLC access from a Web browser. It runs under Linux, HP-UX, Solaris, and QNX, and can be used as a replacement for the aging Interchange software by Allen-Bradley. PLCIO supports the Serial DF1 and Ethernet protocols of the Allen-Bradley PLC-5, SLC 500, ControlLogix, CompactLogix, and MicroLogix PLCs (using the CIP protocol), the Modicon Quantum PLC, the Wago 750-842 PLC, the Siemens Step5 PLC (using the AS511 serial protocol or via Ethernet using the INAT Echolink), and the Siemens Step 7 200, 300, and 400-series CPUs. It also supports communicating directly with an I/O bus terminal such as the Beckhoff BK9105 or the Phoenix Contact FL IL 24 BK ETH/IP-PAC.

Operating Systems

Last announcement

20th year anniversary! 07 Jul 2011 16:37

We are celebrating our 20th year of PLCIO as a leader in UNIX-to-PLC communications. We have revamped our website to reflect this achievement. Here's what's new on * We've got a brand new home page with much more useful information about the library. * Find out how PLCIO got started 20 years ago with the new "History of PLCIO" section! * We've revised our HTML documentation to sync up with the latest 4.3.1 source release.

Recent releases

  •  28 Feb 2011 16:32

    Release Notes: This release adds support for applications to receive simultaneous multipart PCCC messages from PLC5 and ControlLogix. It also fixes compiling with HP-UX's native C compiler and enhances enipd's reliability over a faulty local Ethernet network.

    •  27 Jan 2011 22:22

      Release Notes: This release reintroduces support for the serial DF1 protocol for Allen-Bradley PLC5 and SLC5/00 PLCs. This release also adds support for Siemens S7-200 series PLCs, rack selection for S7-300 and -400 PLCs, and ASCII file types on PLC5 and SLC5/00 PLCs.

      •  14 Jun 2010 20:29

        Release Notes: This release adds support for Allen-Bradley ControlLogix PLCs that have been upgraded to firmware version 18.

        •  03 Jan 2010 23:20

          Release Notes: This release adds support for communicating directly with I/O Bus Terminals (such as the Beckhoff BK9105 and Phoenix Contact FL IL 24 BK ETH/IP-PAC). It also adds new API functionality to poll for PLC events in unsolicited mode using select().

          •  09 Jan 2008 18:45

            Release Notes: This release adds support for Siemens Step 7 400-series CPUs. Also included are bugfixes for addressing timers and counters in the 'abeth' module.


            Project Spotlight


            A Fluent OpenStack client API for Java.


            Project Spotlight

            TurnKey TWiki Appliance

            A TWiki appliance that is easy to use and lightweight.