libplctag - a library for PLC communication

Logo

libplctag web site

View My GitHub Profile

libplctag

PLC Communications

This set of open source C library for Linux, Android, Windows and macOS uses EtherNet/IP or Modbus TCP to read and write tags in PLCs. The library has been in production since early 2012 and is used by multiple organizations for many tasks including controlling radio telescopes, large and precision manufacturing, controlling fitness equipment, food handling and many, many more.

WARNING - DISCLAIMER

Note: PLCs control many kinds of equipment and loss of property, production or even life can happen if mistakes in programming or access are made. Always use caution when accessing or programming PLCs!

We make no claims or warrants about the suitability of this code for any purpose.

Be careful!

Features

High Level Features

Detailed Features

PLC Support

Components

The following components are part of the libplctag organization. The core C library provides low level access to PLCs and performs all networking and PLC-specific protocol handling. Alternate wrappers in other languages provide higher-level APIs and more convenient programming.

Go to the specific project below for language/project-specific information.

  1. libplctag - This is the core C library. It can be used directly in C or C++ or wrapped in other languages with some sort of FFI system. The API provided by this library is low level.
  2. libplctag.NET - This library wraps the C core library for C# and VB. It can also be used from Nuget. It includes the native C DLLs for multiple platforms.
  3. PLCTag.jl - A Julia language wrapper for the core C library. It is available in the Julia package manager.
  4. libplctag4j - A Java language wrapper for the core C library. It includes native DLLs for multiple platforms as well. Also available for Android as an AAR. Soon to be available from JCenter.
  5. libplctag4android - A minimal example application demonstrating use of libplctag and libplctag4j from Android.

Contact and Support

There are two ways to ask for help or contact us.

libplctag Forum

If you have general questions or comments about the library, its use, or about one of the wrapper libraries, please join the Google group libplctag!

The forum is open to all, but is by request only to keep the spammers down. The traffic is fairly light with usually a small number of emails per month. It is our primary means for users to ask questions and for discussions to happen. Announcements about released happen on the forum.

GitHub

If you find bugs or need specific features, please file them on GitHub’s issue tracker for the specific project.