Be sure to verify your downloads by these procedures using these KEYS for any Apache release.

Current Releases

0.5.0 Official source release [ SHA512 ] [ ASC ]

This is the first release containing our new generated drivers (AB-ETH)

New Features
  • Implemented a new Apache Kafka Connect integration module

  • Implemented a new Apache NiFi integration module

  • Implemented a new Logstash integration module

  • Implemented a driver for the AB-ETH protocol

  • Implemented Apache Karaf features for S7 OSGI drivers

  • PLC4X-121 Develop Code Generation to allow Generated Drivers in multiple Languages

Sandbox (Beta-Features) - Implemented a new BACnet/IP passive mode driver - Implemented a new Serial DF1 driver

Incompatible changes
Bug Fixes
  • PLC4X-104 S7 Driver Datatype TIME_OF_DAY causes ArrayOutOfBoundException

  • PLC4X-134 S7 is terminating the connection during handshake

  • PLC4X-139 PLC4X leaks sockets in case of connection problems

  • PLC4X-141 String with real length of greater 127 throw an exception

  • PLC4X-144 When requesting invalid addresses, the DefaultS7MessageProcessor produces errors

Previous Releases

0.4.0 Official source release [ SHA512 ] [ ASC ]

This is the first release of Apache PLC4X as top-level project.

New Features
  • The PlcConnection now supports a ping method to allow checking if an existing connection is still alive.

  • Support of the OPC-UA protocol with the opc-ua-driver.

  • Other Languages Support: — Added first versions of a C# .Net PLC4X API (plc4net) — Added first versions of a Python PLC4X API (plc4py)

  • Added an Interop server which allows to relay requests from other languages to a Java Server

Incompatible changes
  • ElasticSearch example was updated to use ElasticSearch 7.0.1, this might cause problems with older Kibana versions.

Bug Fixes

Incubating Releases

0.3.1 (incubating) Official source release [ SHA512 ] [ ASC ]

New Features
  • No new features

Incompatible changes
  • No incompatible changes.

Bug Fixes
  • The S7 driver didn’t correctly handle "fill-bytes" in multi-item read-responses and multi-item write-requests

  • Fixed NPE when reading odd-length array of one-byte base types

  • Renamed flags "F" to Siemens Standard "M" (Marker)

  • Fixed a bug in the DefaultS7MessageProcessor which didn’t correctly merge together split up items

0.3.0 (incubating) Official source release [ SHA512 ] [ ASC ]

New Features
  • Object PLC Mapping (OPM) now has a Alias Registry to allow variable substitution at runtime and write support

  • New module plc-scraper for applications that have to scrape a lot of sps fields with high frequency

  • New integration apache-karaf to enable plc4j in a karaf runtime environment

Incompatible changes
  • The 'plc4j-core' module has been merged into 'plc4j-api'. So there is no 'plc4j-core' module anymore. Just remove that dependency.

  • The driver artifact names have changed so if you were using a plc4j-protocol-{name} you now need to change this to plc4j-driver-{name}

Bug Fixes
  • Fixing dependency to the wrap url-handler

  • When receiving responses with more than 512 byte, the IsoOnTcp protocol doesn’t work

  • When the last item in a request is a DINT, the DefaultS7MessageProcessor dies

  • Write operations seem to fail

  • Fixed a Bug where S7 was not able to read arrays.

0.2.0 (incubating) Official source release [ SHA512 ] [ ASC ]

  • Changed API: instead of passing request object to read({read-request}), write({write-request}) or subscribe({subscribe-request}) methods now the execute() method is called on the request itself

  • New Connection Pool component

  • New OPM (Object PLC Mapping) component (JPA for PLCs)

  • Bug fixes

0.1.0 (incubating) Official source release [ SHA512 ] [ ASC ]