Introduction

This documentation (also for download as a PDF file, Hash valueHash value0c993ef7c67a1acd51b74715b096e16a ) specifies changes of the PLCnext Control firmware and SDK regarding the upcoming release 2025.0 that may be relevant to user-generated applications. The description also applies to the Preview 2024.7 which is a public alpha version for evaluation.

The major change is the non-compliance of the binary compatibility to former SDKs. A recompile of user code that is based on any pre-2025 SDK is mandatory. Furthermore, some code adjustments might become necessary, which are mostly indicated through deprecated warnings.

Firmware 2025.0 comes with some fundamentally updated parts of the underlying Linux® operating system and adapts the PLCnext Runtime System to those changes. This is intended to improve the long-term compatibility of binary files from C++ or MATLAB®/Simulink® programs, as well as components and apps.

The updates to the Linux® system will facilitate future updates to the kernel, the installation of new technologies and, above all, the security hardening of the system to be prepared for the upcoming Cyber Resilience Act in the European Union.

Adjustments are to be made publicly available in 2025. In parallel, the current 2024.0 LTS based on the familiar foundation of PLCnext Technology will get security-related fixes for an extended period (details see Schedule).

Note: Up to the 2025.0 release, interfaces and other details may change without prior notice.

General advantages

The 2025.0 release will implement the following optimizations and lays the foundations for later implementation:

  • Increased stability due to adjustments of internal system functions
  • Implementing long-term binary-compatible interfaces so we can continuously develop new RSC services
  • Simplified implementation of user applications by means of standardized interfaces
  • Several Linux® adaptations:
    • Increased security by splitting into separate processes and better use of Linux® capabilities
    • Removal of Linux® packages with high potential for security vulnerabilities
    • Switch to Linux® systemd for a better adaptation to new technology
    • Faster boot process due to parallel start of Linux® services
  • New system monitoring for CPU, RAM, flash memory, and processes
  • Implementation of interfaces to add WBM configuration pages for user components
  • Support for versioning of user components
  • Improved diagnostics by splitting into different log files
  • Deep and secure integration of OCI containers for firmware functions and apps
  • Newly designed Web-based Management:
    • single sign-on with OAuth2 allows for easy but secure access 
    • modern layout based on Angular.io that adapts to display sizes ("responsive")

Changes regarding application development

The substantial changes from developers' view are:

  • The C++ standard is elevated to the more modern C++ 20 (formerly C++ 17) and standardized data types
  • Library Arp.System.Core is substituted by the new library Arp.Base.Core
  • The public classes of Arp.System.Acf were moved to the new library Arp.Base.Acf.Commons
  • Refactoring of Logging substruction
  • Removed RTLD_GLOBAL flag while loading shared libraries
  • Update of several external libraries, e.g.:
    • CppFormat upgrade to libfmt 10.2.1
    • boost update to version 1.84 (but see boost version for details)

Schedule

(Subject to change
without prior notice)

Schedule of firmware releases from 2024.0 LTS up tp 2026.0 LTS

 

Preview 2024.7

The public Preview 2024.7 contains most of the upcoming changes already. It will be made available in September 2024 as a simulation that runs out of the PLCnext Engineer software as a simulated AXC F 2152 or AXC F 3152 controller. Developers are invited to inspect that code base and begin testing their applications in that environment.

For all details, see How to start up the Preview 2024.7.


• Published/reviewed: 2024-10-30   ☀  Revision 074 •