Releases: apache/plc4x
relt/0.9
What's Changed
- Added Pool2 (now called Connection Cache) to develop Branch by @JulianFeinauer in #217
- Some doc about the Julian plc4x-pool2 by @foxpluto in #209
- PLC4X-207 When a Handler Timeout occurs cancel the read future to not… by @JulianFeinauer in #170
- PLC4X-265 Support for hex mapping of byte/byte[] values in XML test by @splatch in #213
- added strtok_s define for windows by @thomas169 in #228
- Fix for opcua subscription by @hutcheb in #227
- Feature/string enum mspec by @hutcheb in #230
- feat: Add read/write support for string types within the Java dataio classes by @hutcheb in #235
- Update S7Field.java by @Meng5 in #239
- regress: removed string support for modbus by @hutcheb in #236
- Abstract field's getter doesn't get get declared in base type by @hutcheb in #240
- Remove merge button when merging PR's, this forces the use of squash by @hutcheb in #238
- plc4go: fixed passing parameters incorrectly, resulting in a null pointer by @hongjinlin in #243
- Address string with tokenisation, refactoring, loopback s7 c example added. s7c write variable works by @thomas169 in #233
- plc4c: memory plumbing by @thomas169 in #244
- [PLC4X-299] Fix for array handling in the Kafka source connector by @hutcheb in #255
- Fix link : plc4j getting start, graphviz by @shblue21 in #256
- Feature/native opua client by @hutcheb in #253
- PLC4X-307 Add support for custom generator options / customized packages by @splatch in #263
- fixing timer leaks by @shaunco in #267
- S7event by @glcj in #264
- changed delimiter of opc ua from : to ; by @nalim2 in #258
- plc4x: major dependency updates by @sruehl in #252
- build(deps): bump karaf-maven-plugin from 4.3.0 to 4.3.2 by @dependabot in #245
- Bump zookeeper from 3.4.13 to 3.4.14 by @dependabot in #270
- Bump milo.version from 0.6.1 to 0.6.3 by @dependabot in #269
- build(deps): bump gmavenplus-plugin from 1.6.2 to 1.12.1 by @dependabot in #246
- build(deps): bump junit.jupiter.version from 5.7.0 to 5.7.2 by @dependabot in #251
- build(deps): bump logback.version from 1.2.3 to 1.2.5 by @dependabot in #271
- Change PLC4GO docs read syntax by @NiklasMerz in #276
- PLC4X-294 / PLC4X-296 Reorganization of stack configurer / events support in public api by @splatch in #241
New Contributors
- @thomas169 made their first contribution in #228
- @Meng5 made their first contribution in #239
- @shblue21 made their first contribution in #256
- @shaunco made their first contribution in #267
- @glcj made their first contribution in #264
Full Changelog: relt/0.8...relt/0.9
Apache PLC4X 0.8.0
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
relt/0.8
What's Changed
- Feature/plc simulator by @JulianFeinauer in #157
- [SITE] Add Logo Column. Add pragmatic minds and pragmatic industries … by @JulianFeinauer in #159
- have rat ignore .java-version files from jenv since we need java kung… by @ottobackwards in #160
- Updated Eclipse Milo to 0.3.7 by @patrickse in #158
- Updated the codecentric adopters page entry by @chrisdutz in #162
- C-Code-Generation (Please don't merge ... this is used for allowing code-reviews) by @chrisdutz in #161
- IndustryFusion as PLC4X adopter by @KonstantinKe in #165
- Added some test cases for OPC UA by @nalim2 in #164
- Adopter ISW addition by @nalim2 in #167
- Feature/c code generation tagged unions by @chrisdutz in #168
-
- Started working on the parser and serializer code ... WIP by @chrisdutz in #163
- Team addition strljic by @nalim2 in #166
- [PLC4X-216]update IoTDB JDBC example and session API example; add the related doc on website by @jixuan1989 in #171
- Feature/modbus add additional address formats and change lowest register to 1. by @hutcheb in #172
- Fix documentation with updates to README by @ottlinger in #173
- See issue reported by Stefano Bossi. by @JulianFeinauer in #175
- Feature/extended register read by @hutcheb in #174
- PLC4X-223 Fix exception on Pool usage for all drivers due to syntax c… by @JulianFeinauer in #176
- Use Gradle with compiled library by @foxpluto in #183
- PLC4X-244 Support for variable length padding fields. by @splatch in #182
- PLC4X-248 Permit more locations for MSpec comments. by @splatch in #185
- Modbus/update documentation by @hutcheb in #184
- Feature/plc4c by @chrisdutz in #181
- Feature/write extended registers by @hutcheb in #190
- Modbus Data Type Documentation by @hutcheb in #188
- Refactor Field Handler Classes by @hutcheb in #192
- Add an OPC UA Server by @hutcheb in #194
- Beckhoff Device Discovery structures by @splatch in #195
- PLC4X-252 Support passing of PlcField in read/write builders. by @splatch in #198
- Opcaua server updates by @hutcheb in #196
- Record Evolution text adjustment by @markope in #199
- PLC4X-255 Fix for Kafka Source CPU Usage by @hutcheb in #200
- Bug/simulated device data types by @hutcheb in #204
- Update/GitHub metadata by @hutcheb in #205
- Test ASF file by @hutcheb in #206
- Feature/kafkasink - Add a kafka sink by @hutcheb in #202
- Fix for connection pool, unable to reconnect after failed connection. by @hutcheb in #207
- Update/opcua server by @hutcheb in #208
- Fix ToAnsi method : bufferoverflow by @JohannaMillet in #178
- poll loop fetches data in a continous loop by @gg587998 in #67
- CANopen over socketcan transport by @splatch in #211
- Add ConnectorIO as Apache PLC4X adopter by @splatch in #212
- Bug/driver opcua read arrays [PLC4X-202] by @hutcheb in #210
- Add enum's for opc ua driver in mspec by @hutcheb in #214
- Bug/close connection by @hutcheb in #221
- Add confluent package to deployment so it appears in Nexus. by @hutcheb in #222
- Updated Notice and License files. by @hutcheb in #223
- Add encryption handler for OPC UA - Minor fix for Kafka Connector by @hutcheb in #225
New Contributors
- @patrickse made their first contribution in #158
- @KonstantinKe made their first contribution in #165
- @ottlinger made their first contribution in #173
- @markope made their first contribution in #199
- @JohannaMillet made their first contribution in #178
Full Changelog: relt/0.7...relt/0.8
Apache PLC4X 0.7.0
This version is the first after a major refactoring of the driver
core. All previous driver versions are now considered deprecated
and have been replaced by versions using the new driver structure
and generated driver codebase.
New Features
- Drivers now support structured types using PlcValues
- The EIP (EtherNet/IP) driver no longer requires an external
library and is implemented fully in the PLC4X project - The Modbus driver no longer requires an external library
and is implemented fully in the PLC4X project - The new S7 Driver supports writing multiple entries in one
request (The API allowed this from the beginning now not
every item is wrapped in a single request. It should bring
significant performance gains when writing multiple vlaues) - S7 Driver now supports String datatypes.
- OSGi : Implementation of Drivers/Transports as OSGi services
to be able to use them in an OSGi container. - New Firmata protocol driver
Incompatible changes
- Due to the refactoring of the driver core there might be issues
running drivers built against older core versions. - This version doesn't provide a Beckhoff AMS/ADS driver as this
driver is still being ported to the new mspec format. - All drivers connection strings now follow the same pattern:
{protocol-code:(transport-code:)?//{transport-config}(?{params})?
Please check the drivers documentation on our website:
https://plc4x.apache.org/users/protocols/s7.html - The karaf-feature modules are removed as the drivers now all
provide both a feature.xml as well as akar
bundled archive
Bug Fixes
PLC4X-174 UDP Transport does not accept ports containing 0
PLC4X-134 S7 is terminating the connection during handshake
PLC4X-192 Support for conversion of complex connection string
parameters
relt/0.7
What's Changed
- Improve carousel for small and medium screen sizes by @dominikriemer in #114
- Introduced a new optional "slaveId" parameter to the modbus driver by @acs in #118
- [fix] ported to new base version by @nalim2 in #120
- PLC4X-176 resolve issues round running on linux platforms by @ottobackwards in #121
- Fix typo he -> we by @turbaszek in #126
- Update link for PLC4J in README by @turbaszek in #125
- Use existing base image in Dockerfile by @turbaszek in #123
- Change (P)PMC to PMC on team page by @NiklasMerz in #122
- [WIP] Refactor PlcDriverManager as context manager by @turbaszek in #124
- [fix] Transfer bug fixes from rel/0.6 to 0.7+ which includes correct … by @nalim2 in #131
- Change repo URLs from incubator-plc4x to plc4x by @NiklasMerz in #139
- remove Bnd-LastModified header that is not reproducible by @hboutemy in #137
- move structure defs into private header by @ottobackwards in #142
- c and clion git ignore by @ottobackwards in #144
- flatten includes, remove addr sample, use <> includes by @ottobackwards in #145
- PLC4X-192 Support for connection string parameter conversion. by @splatch in #140
- C api m4 feedback by @ottobackwards in #146
- add plc4c_data type by @ottobackwards in #147
- integrate writes with plc_data by @ottobackwards in #149
- complex object members should not leak to external entities, add apis… by @ottobackwards in #150
- add CODE_CONVENTIONS by @ottobackwards in #151
- More work on access to _t internals by @ottobackwards in #152
- Feature/c api subscriptions by @chrisdutz in #153
- Feature/osgi by @etiennerobinet in #154
- PLC4X-197 do not stop the global timer, remove and cancel the Timeouts instead by @ottobackwards in #155
New Contributors
- @turbaszek made their first contribution in #126
- @etiennerobinet made their first contribution in #154
Full Changelog: relt/0.6...relt/0.7
Apache PLC4X 0.6.0
This is the last release of PLC4X with the "handwritten" drivers.
This Minor release will thus receive updates and fixes until
most users have switched to 0.7 and above (with generated drivers).
If you are using the S7 Driver you should update to this Version
as the critical (memory leak) bug PLC4X-163 is fixed.
New Features
- PLC4X-168 A shorter S7 Field Syntax is Introduced.
This release contains no further features and mostly stabilization.
Incompatible changes
- Moved the C++, C# and Python drivers into the
sandbox
Bug Fixes
- Fixed Promise Chain for InternalPlcWriteRequest
- PLC4X-45 Add float support to Modbus Protocol
- PLC4X-164 Fix wrong NOT FOUND exception in OPC UA Driver
- PLC4X-166 Fixed Download Page
- PLC4X-163 Fixed Netty ByteBuf Leaks for S7 Driver
- PLC4X-158 Added Warning if no Pooled Driver is used for Scraper
relt/0.6
What's Changed
- PLC4X-146 - Problem when using examples/hello-integration-edgent with… by @chrisdutz in #93
- Fixed a problem causing the karaf feature module not to sign the feat… by @chrisdutz in #95
- Fixed a problem with running the elasticsearch example as updating el… by @chrisdutz in #94
-
- Moved the plc4cpp, plc4net and plc4py into the sandbox by @chrisdutz in #98
- add iotdb integration example. for just saving one field for a PLC. by @jixuan1989 in #99
- Feature/reproducible builds by @chrisdutz in #100
- Bump org.eclipse.paho.client.mqttv3 from 1.2.0 to 1.2.1 in /plc4j/examples/hello-cloud-google by @dependabot in #96
- Bump jackson.version from 2.9.9 to 2.10.0 by @dependabot in #97
- Fix streampipes adapters by @tenthe in #101
- Ab eth station address parameter by @vemmert in #102
- PLC4X-160: Fix css to make links to Apache events and ASF homepage work again by @dominikriemer in #104
- Feature/ams ads mpsec by @sruehl in #107
- Plc4 x 157 opc ua disablediscovery by @nalim2 in #105
- PLC4X-45 Add float support to Modbus protocol by @acs in #109
- Fix future chain for InternalPlcWriteRequest by @amrod- in #110
- improve comment matching by @sruehl in #111
- PLC4X-164: Fix wrong NOT FOUND exception in OPC-UA driver by @acs in #112
- Fixes in ADS protocol by @amrod- in #103
- PLC4X-163 Fixed Netty Buffer Leaks for S7 Driver. by @JulianFeinauer in #116
- [PLC4X-168] Shorter S7 Field Syntax by @JulianFeinauer in #113
- PLC4X-158 Add Warning if Scraper is not used with Pooled Driver Manager. by @JulianFeinauer in #115
- [fix] wrong Parameter handling by @nalim2 in #128
- PLC4x-142 OPC-UA read variables by @nalim2 in #130
- Feature/plc4 x 185 cert support opc ua by @JulianFeinauer in #132
- Feature/port simotion by @vemmert in #197
- Update license and notice file for derived works by @hutcheb in #224
New Contributors
Full Changelog: relt/0.5...relt/0.6
release/0.5.0
Full Changelog: relt/0.5...release/0.5.0
relt/0.5
What's Changed
- PLC4X-129 Improve version detection macro. by @splatch in #71
- fixed a typo on the plc4py/README.md by @martinLim45 in #74
- Fixed a typo on the index page by @jbarop in #73
- fix bug in opc ua driver response handling when fields are not found by @stefah in #75
- PLC4X-139 close the worker thread on connection abortion to avoid thr… by @JulianFeinauer in #76
- Feature/improve scraper tim by @JulianFeinauer in #77
- Example MSpec for the DF1 protocol added to the website by @vemmert in #79
- PLC4X-86 - Fix and re-enable tests that were disabled for Java 11 support by @thomasdarimont in #78
- A few fixes required to build Elastic example in a containerized environment by @rvs in #80
- Feature/implement logstash integration by @till1993 in #82
- Simplifying inheritance of shade plugin configurations by @rvs in #81
- Optimizing JRE for size and adding dynamic option setting for example jar by @rvs in #83
- [fixed] OPC UA Subscription item name is null by @nalim2 in #84
- Feature/logstash plugin improved fields by @stefah in #85
- Adding OSGi processing to the pom for java modules by @cschneider in #87
- Ab eth data types and doc by @vemmert in #86
- Migrate README to Github flavored markdown page by @dominikriemer in #88
- Update bit-io to newest version with OSGi support by @cschneider in #90
- Feature/resolve split package osgi by @JulianFeinauer in #89
- PLC4X-144 - When requesting invalid addresses, the DefaultS7MessagePr… by @chrisdutz in #91
- Update the Thrift version to the just released 0.13.0 to make it compatible with Boost again (Also bumped the Boost version to the latest 1.71.0) by @chrisdutz in #92
New Contributors
- @martinLim45 made their first contribution in #74
- @jbarop made their first contribution in #73
- @stefah made their first contribution in #75
- @thomasdarimont made their first contribution in #78
- @rvs made their first contribution in #80
- @till1993 made their first contribution in #82
- @cschneider made their first contribution in #87
Full Changelog: relt/0.4...relt/0.5
relt/0.4
What's Changed
- Minor changes on getting-involved.adoc by @cptblaubaer in #45
- PLC4X-88: Add Triggering to PLC Scraper by @timbo2k in #46
- Extend field with type information by @JulianFeinauer in #47
- Correcting two typos in contributing.adoc by @cptblaubaer in #48
- INFRA-18056 by @clambertus in #49
- Preparing a little more complex PR for figuring out the Sync issues. by @chrisdutz in #50
- Added the content for Sebastian Rühl to the team page. by @chrisdutz in #51
- Yet another PR merge test by @chrisdutz in #52
- Moded the web-client unpacking to the maven prepare-package phase by @chrisdutz in #53
- Another PR by @chrisdutz in #54
- Hopefully the last to get PRs working by @chrisdutz in #55
- Feature/plc4 x 108 ping method by @JulianFeinauer in #57
- Feature/alternate plc4 x 108 by @chrisdutz in #59
- Feature/plc4 x 111 interop server by @JulianFeinauer in #60
- Feature/plc4net by @bjoernhoeper in #61
- Fix link to banner by @NiklasMerz in #62
- Add FOSSA hackathon to event list by @NiklasMerz in #63
- [Fixed] DefaultPlcWriteRequest wrong return item for DefaultPlcWriteRequest.Builder addItem on Type Byte[] by @nalim2 in #65
- fixed typo in S7PlcConnection by @gg587998 in #69
- Feature/opcua by @nalim2 in #66
New Contributors
- @cptblaubaer made their first contribution in #45
- @clambertus made their first contribution in #49
- @bjoernhoeper made their first contribution in #61
Full Changelog: relt/0.3...relt/0.4