plc4x

PLC4X The Industrial IoT adapter

APACHE-2.0 License

Stars
1.2K
Committers
98

Bot releases are visible (Hide)

plc4x - Apache PLC4X 0.12.0 Latest Release

Published by sruehl 8 months ago

New Features

  • API: Made several bits of information available via the API
    allowing tools to provide more content assist when dealing
    with PLC4X connections.
  • S7: The S7 driver now supports reading of STRING and
    WSTRING data-types without providing a maximum length.
  • Build: Worked on making PLC4X provide reproducible builds.
  • Added "Ping" functionality to: ADS, EIP, KNX, Mock, Modbus
    and Simulated drivers.
  • The OPC-UA Java driver now support certificate-based
    authentication and encryption.

Incompatible changes

  • Java 8 is no longer officially supported and Java 11 is the
    new base-line.
  • Renamed the PlcDriverManager method listDrivers to
    getProtocolCodes
  • Renamed the PlcDriverMetadata method canDiscover to
    isDiscoverySupported
  • Renamed the PlcConnectionMetadata methods canRead, canWrite
    canSubscribe and canBrowse to isReadSupported,
    isWriteSupported, isSubscribeSupported and isBrowseSupported
  • The configuration syntax for configuring transport-related
    config options in the connection-string was updated to be
    now prefixed with the transport name the option belongs to.

Bug Fixes

  • S7: Several bugs and issues regarding supporting various
    duration, date and time data-types.
  • S7: Implemented the missing 64bit (L-) types.
  • KNX: Fixed an issue with decoding 16 bit floating point
    numbers.
  • NiFi-Integration: The NiFi integration module was greatly
    improved.
  • Core: Fixed several leaks of open threads.
plc4x - rel/0.12

Published by sruehl 8 months ago

What's Changed

New Contributors

Full Changelog: https://github.com/apache/plc4x/compare/rel/0.11...rel/0.12

plc4x - rel/0.12

Published by sruehl 8 months ago

What's Changed

New Contributors

Full Changelog: https://github.com/apache/plc4x/compare/rel/0.11...rel/0.12

plc4x - rel/0.11

Published by sruehl about 1 year ago

What's Changed

New Contributors

Full Changelog: https://github.com/apache/plc4x/compare/rel/0.10...rel/0.11

plc4x - Apache PLC4X 0.11.0

Published by sruehl about 1 year ago

New Features

  • IEC-60870-5-104 driver
  • Completely rewritten EIP driver that should now support
    Allen-Bradley controllers
  • Completely rewritten the ADS driver that now supports
    Auto-Discovery, Browse, UDOs and auto-configuration of
    remote AMS routes
  • Support for S7 200 subscriptions
  • Added a docker-compose setup in a preparation for reproducible
    builds
  • Added SBOM generation
  • Improved Apache NiFi support
  • Added support for the latest ETS version in KNX
  • Started implementing the ping() method for some drivers
  • Greatly updated Apache NiFi integration

Incompatible changes

  • We've updated the APIs of both PLC4J and PLC4Go to be more in
    sync. We also refined some of the terminology.
  • We've also re-written the connection-cache, which now replaces
    both the old connection-pool and the old connection-cache.
  • The UI module has been removed as it relied on JavaFX, which is
    no longer bundled with the JDK and therefore the LGPL license
    renders is dad for Apache projects.
  • The Apache Camel integration was moved over to the Apache Camel
    project.
  • The prototype-driver for PROFINET was completely updated
  • Due to the extreme refactoring of S7, ADS and EIP, the Go versions
    of these drivers are currently not going to work as well as before
    (We're going to address these issues in the next phase after the
    release)
  • Changed the return type of the PLC4J Ping method to return more
    information on if the ping was successful

Bug Fixes

Fixed issues with memory leaks in the ConnectionManager

Fixed multiple issues reported for the handling of data-types in
S7, Modbus and ADS protocols when reading and writing.

plc4x - rel/0.10

Published by sruehl almost 2 years ago

What's Changed

New Contributors

Full Changelog: https://github.com/apache/plc4x/compare/rel/0.9...rel/0.10

plc4x - Apache PLC4X 0.10.0

Published by sruehl almost 2 years ago

A lot of the work in this version went into refactoring and
cleaning up our code generation. The code generation itself is
now a lot cleaner and simpler as well as the code generated
for Java. We also added a number of new field-types to allow
implementing more sophisticated protocols. PLC4C now should
also support all of the constructs mspec has to offer.

New Features

  • Implemented a PLC4X-Server and PLC4X-Driver that allows
    using the server as a proxy for communicating with PLCs.
  • The Modbus driver is now also available in the variants:
    "modbus-rtu" and "modbus-ascii" (Both using Serial
    communication, which however can be tunneled through a
    "tcp" and "udp" transport)
  • The KNX driver in Java now supports reading "knxproj" files
    exported from the new ETS version 6.

Incompatible changes

  • The name of the Modbus TCP driver was changed from "modbus"
    to "modbus-tcp".
  • Removed the Apache Edgent (incubating) integration and
    examples related, as Edgent is abandoned and there were
    CVEs reported, which will not be fixed.
  • We have replaced the BitString types with BYTE, WORD, DWORD,
    and LWORD which generally match their unsigned integer
    counterparts. So we are no longer returning lists of boolean
    values for any of these types.

Bug Fixes

  • Fixed a big bug in the KNX Datapoint decoding, which caused
    byte-aligned data types to parse with an offset of 8 bit.
    (This bug affected both the Java and the Go driver)
plc4x - rel/0.9

Published by sruehl about 2 years ago

What's Changed

New Contributors

Full Changelog: https://github.com/apache/plc4x/compare/rel/0.8...rel/0.9

plc4x - rel/0.8

Published by sruehl about 2 years ago

What's Changed

New Contributors

Full Changelog: https://github.com/apache/plc4x/compare/rel/0.7...rel/0.8

plc4x - rel/0.7

Published by sruehl about 2 years ago

What's Changed

New Contributors

Full Changelog: https://github.com/apache/plc4x/compare/rel/0.5...rel/0.7

plc4x - rel/0.6

Published by sruehl about 2 years ago

What's Changed

New Contributors

Full Changelog: https://github.com/apache/plc4x/compare/rel/0.5...rel/0.6

plc4x - rel/0.5

Published by sruehl about 2 years ago

What's Changed

New Contributors

Full Changelog: https://github.com/apache/plc4x/compare/rel/0.4...rel/0.5

plc4x - rel/0.4

Published by sruehl about 2 years ago

What's Changed

New Contributors

Full Changelog: https://github.com/apache/plc4x/compare/rel/0.3...rel/0.4

plc4x - rel/0.3

Published by sruehl about 2 years ago

What's Changed

New Contributors

Full Changelog: https://github.com/apache/plc4x/compare/rel/0.2...rel/0.3

plc4x - rel/0.2

Published by chrisdutz about 2 years ago

What's Changed

Full Changelog: https://github.com/apache/plc4x/compare/rel/0.1...rel/0.2

plc4x - rel/0.1

Published by sruehl about 2 years ago

What's Changed

New Contributors

Full Changelog: https://github.com/apache/plc4x/commits/rel/0.1

plc4x - release/0.5.0

Published by sruehl about 2 years ago

plc4x - 0.9.1

Published by sruehl almost 3 years ago

plc4x - Apache PLC4X 0.9.0

Published by chrisdutz about 3 years ago

This is an ordinary PLC4X release, containing changes that accumulated
over time. It doesn't have an explicit focus on a particular topic.

New Features

  • The OPC UA driver has been replaced with a native driver. Previously
    Eclipse Milo was being used.
  • Permit customized package names for code generation
  • Added an initial draft of a Discover and Browse API to PLC4J
  • Replaced the OPC-UA driver using Eclipse Milo with a our own, fully
    generated, version
  • PLC4Go now supports many more drivers
  • PLC4Go received a huge internal refactoring and cleanup
  • Major cleanup of PLC4C
  • S7 Driver now supports event and alarm handling on some S7 models

Incompatible changes

Bug Fixes

PLC4X-200 OPC-UA Driver not connecting if params string is not provided
PLC4X-201 OPC-UA PlcList underlying type not compatible with Eclipse Milo
PLC4X-202 OPC-UA Driver cannot write Unsigned Types
PLC4X-276 [S7] The most of the supported types don't work correctly
PLC4X-278 Double Reading Error
PLC4X-279 nioEventLoopGroup thread proliferation
PLC4X-280 ADS route request swapped positions of route name and address
PLC4X-291 DefaultPlcSubscriptionField cannot be cast to class OpcuaField
PLC4X-298 [S7] When writing REAL values the Write
operation fails with an internal error
PLC4X-299 Modbus - Kafka Connect Configuration
PLC4X-312 CAN NOT READ STRING FROM S7 PLC
PLC4X-314 CAN NOT WRITING MANY DATA TO S7 ONE TIME

plc4x - Apache PLC4X 0.8.0

Published by chrisdutz over 3 years ago

This is an ordinary PLC4X release, containing changes that
accumulated over time. It doesn't have an explicit focus on
a particular topic.

New Features

  • The KNXnet/IP Driver now supports writing of values.
  • The Modbus driver now supports more common notations of
    Modbus addresses using a pure-numeric notation.
  • The ADS, KNX, Modbus, S7 and simulated drivers have been
    updated to support the IEC 61131-3 data-types.
  • We are now including PLC4Go as PLC4X implementation in
    the programming language Go(lang)
  • Integration with the Milo OPC UA Server is now available.
  • Kafka Connect workers have been updated source and sink connectors
    are now included.

Incompatible changes

  • The syntax of the S7 addresses changed slightly allowing to
    provide a string length. Without this, a STRING datatype will
    read 254 characters, by adding the size in round brackets to
    the type name will use the specified number.

    Examples:

    Read one String which is max 10 chars long:
    %DB2:30:STRING(10)

    Read an array of 3 Strings where each is max 10 chars long:
    %DB2:30:STRING(10)[3]

  • The PLCValue types have been refactored to align with the types
    defined in IEC 61131-3 (https://en.wikipedia.org/wiki/IEC_61131-3)
    directly using the older Java types (PlcBoolean) is no longer
    possible.

Bug Fixes

A lot of testing was done regarding the IEC 61131-3 data-types.
This resulted in numerous bugfixes in many protocols.

  • PLC4X-132 [S7] Communication to S7 PLC dies in some situations
  • PLC4X-206 When writing short values exceptions are thrown
    while preparing the write request.
  • PLC4X-207 No registered handler found for message TPKTPacket[],
    using default decode method - Communication with S7
    and Modbus device hangs
  • PLC4X-209 [S7] When writing INT and DINT values the Write
    operation fails with an internal error
  • PLC4X-210 [KNX] When running a KNX Tunneling Subscription
    for a longer time there are packets that kill
    the connection
  • PLC4X-211 PlcValues seem to always return "true" on the
    isXYZ" checks.
  • PLC4X-212 When writing multiple values in one request the
    item status is not correctly set
  • PLC4X-213 [Modbus] The Modbus driver doesn't handle error
    responses gracefully
  • PLC4X-214 [Modbus] Holding register addresses have an offset
    of 1 (Not reading the correct address)
  • PLC4X-215 Drivers using the BaseOptimizer
    (SingleFieldOptimizer) don't handle error responses
    gracefully
  • PLC4X-218 [Scraper] After stopping the scraper still the
    statistics are logged and the application doesn't
    terminate
  • PLC4X-239 Read DTL (Date and Time)
  • PLC4X-240 Protocol error in reading string
  • PLC4X-246 S7 driver hangs on read
  • PLC4X-245 [Modbus] Apache NiFi processor throws
    java.io.IOException after a while
  • PLC4X-255 Kafka Connector Source Task doesn't block within poll()
    resulting in high CPU usage.
  • PLC4X-261 Pooled connection manager returns a connection that isn't
    connected in some situations.
  • PLC4X-272 When splitting up large requests, too big sub-requests
    are generated (S7)
  • PLC4X-256 ReadBuffer truncate last byte of even small payloads
  • PLC4X-262 Error in reading Array
  • PLC4X-270 Ads driver does not accept double-digit array indexes
Package Rankings
Top 6.96% on Repo1.maven.org
Top 4.7% on Proxy.golang.org
Badges
Extracted from project README
Maven central License Jenkins Build Status Last commit Twitter Java Platform compatibility Go Platform compatibility C Platform compatibility Python Platform Compatibility