v2.6.13-pre Large changes to Modbus, fairness testing

13 views
Skip to first unread message

Kyle

unread,
Dec 1, 2025, 8:16:29 PMDec 1
to libplctag

This release has new tests for fairness for tag operations. Fairness is measured to ensure that all tags get a fair amount of time to send requests and get responses. As part of that, there have been many changes to the Modbus code.

30+ integration tests are now run on all tier 1 platforms:

  • Ubuntu Linux 24.04 on x86, x64, Aarch64, and x64 + the musl C runtime library,
  • macOS 14 and 15 on x64 and Aarch64,
  • Windows with MSVC on x64, x86, and Aarch64,
  • Windows with MinGW on x64 and x86,
  • Alpine Linux on X64 and Aarch64 (uses musl C library).

Other builds include:

  • Ubuntu/Debian Arm32 v6 and Arm32 v7hf

Other changes:

  • Test/experimental packages are available for Ubuntu, Debian, Redhat, and Alpine Linux. These are experimental!
  • The included Modbus server code in src/tests/modbus_server has been completely rewritten to use a new event-based core library that I hope to use to replace most of the current platform/HAL code over time. This has been tested extensively with and without Valgrind and ASAN/UBSAN memory checks.
  • By using the new fairness tests, I was able to find a race condition when aborting a tag while it had an operation in flight that would result in a double abort and an unexpected error indicating that abort was not implemented. This is now passing my tests, but it is a race condition, so please check your own code with this release carefully.

Contributed changes include:

  • User Ruben donated a patch set to make it possible to use MinGW to compile for Windows on a Linux host.
  • User Ruben donated a patch set to update the recognized CIP data types to include a few missing ones from the newer releases of Rockwell's software/firmware.

This is a big enough change that I am doing a prerelease for people to test with. After letting this "bake" for a while, I will release it if it looks stable enough.

See the prerelease page to get this.
Reply all
Reply to author
Forward
0 new messages