Introduction

This documentation (also for download as a PDF file, b845ee9611647c5f87472624fa092fe3Hash value  )  specifies changes of the PLCnext Control firmware and SDK regarding the release 2025.0 that may be relevant to user-generated applications. 

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. This documentation has to be used together with the firmware's Change Notes of the respective PLC type.

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 Cyber Resilience Act in the European Union.

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).

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

Migration guidance

Note: Updating to firmware versions 2025.0 and newer from older firmware versions may have unexpected effects on the existing application or specific user settings.
It is strongly recommended to observe the following points before rolling out the firmware into productive operation:

For updating, follow these steps:

  • In case you tried the Preview 2024.7, uninstall it.
  • Back up the projects and configuration data.
  • Reset your controller to default settings type 1 (see the respective hardware user manual for the proper procedure).
  • Check the current firmware version:
    Coming from devices running on 2019.0 LTS up to 2021.9 firmware, first update to the 2022.0 LTS release.
  • Update your controller to 2025.0 (e. g. via Web-based Management).
    ↪ On rebooting after a successful update, a script converts the network configuration.
  • Enter the Web-based Management and set up your configurations (IP address, Date and Time, active/inactive system services).
  • Review your applications, adapt and recompile C++ programs.
    Note: RAM usage and CPU load may be higher than before, depending on active services.
  • If you're using PLCnext Technology Apps, check the PLCnext Store for versions compatible with firmware 2025.0 or newer. Due the changes regarding C++ code, many of the PLCnext Technology apps need to be adapted and recompiled, too.
  • Download your applications to your controller.
  • Validate the applications' functionality.

 

 

 


• Published/reviewed: 2025-06-06  ✿  Revision 080 •