Skip to content

Apache PLC4X 0.13.0

Choose a tag to compare

@sruehl sruehl released this 13 Aug 07:43
· 473 commits to develop since this release

New Features

  • The CachedPlcConnectionManager now has a maxIdleTimeout time
    which defaults to 5 minutes. If a connection is not being
    used for that amount of time, the connection is closed and
    removed from the cache.
  • The CachedPlcConnectionManager now has a close method, which
    shuts down all connections.
  • The CachedPlcConnection now implements the EventPlcConnection
    interface which forwards listener registrations to the
    connection.
  • The S7 driver is now able to automatically split up large
    array requests into multiple ones and transparently merge
    them back together. It is now possible to read arrays of
    almost unlimited size.
  • Added an Optimizer to the Modbus driver, that improves read
    performance of multi-item read requests by more than 10 times.
  • Added an optimizer to the Modbus protocol, that allows reading
    multiple fields in one request.
  • Added support for Modbus encodings of BIG_ENDIAN_WORD_SWAP
    and LITTLE_ENDIAN_WORD_SWAP.
  • Modbus tags allow specifying the unit-id in order to address
    multiple devices using one serial modbus connection.
  • Added a new optimizer to the S7 protocol, that ready chunks
    of data instead of individual fields, which allows reading
    a lot more fields in one request.
  • Added a new variant of the S7 driver, called s7-light, which
    doesn't have support for subscriptions, but is less likely
    to cause connection problems.
  • Added auto-discovery to the KNX Driver in PLC4J.
  • Added auto-discovery to EIP in PLC4J.
  • Added auto-discovery to S7 in PLC4J.
  • Improved some things in the SPI, that caused issues with
    drivers under heavy load.
  • The Modbus driver uses the "Single Register Request" if a
    tag fits into one register. This can help communicating with
    devices that don't support "Multi Register Requests".

Incompatible changes

  • When reading byte arrays with the s7 driver, now the more
    efficient PlcRawByteArray type is used, that gives users
    direct access to the bytes returned from the PLC instead of
    a list of PlcValues.
  • The builders for read-, write- ans subscription.requests now
    process tags and values on a per-field level. If one field
    has an invalid address it will now only fail the one item
    related to that. Same applies to values. Only the tag who's
    value was invalid will be considered failed and no longer an
    exception should be thrown.
  • Subscription-requests now allow registering a handler for
    all fields in the subscription.
  • The addPreRegisteredConsumer method was removed and versions
    of the "addXYZ" methods were added, that allow providing
    individual consumers for each tag.

Bug Fixes