.

Release Notes: CODESYS V3.5 SP22 Patch 3

Key Issue Type Summary Resolution Note
CDS-98688 Bug

CLONE - Compiler: Unexpected Full onlinechange in specific project

Fixed [[GENERAL]]
CompilerVersion >= 3.5.22.30
CDS-98620 Bug

CLONE - ProjectCompare: Takes too long after committing changes

Fixed
CDS-98599 Bug

CLONE - SysShmLinux: write access for group is missing on created shared memory file

Fixed [[COMPATIBILITY_INFORMATION]]
Shared memory files on Linux systems now get following permissions:
User, Group: Read/Write
Other: None
CDS-98595 Bug

CLONE - Customer project: Download not completing, OPC UA server becomes unreachable

Fixed
CDS-98571 Bug

CLONE - Address will not be displayed in VAR_CONFIG in online mode

Fixed
CDS-98564 Improvement

CLONE - Remove old versions of libraries migrated to BASLIB package from setup

Fixed [[GENERAL]]
The latest version of the libraries "Net Base Services", "Common Behaviour Model", "Element Collections" and "SharedData Utilities for MultiCore" are shipped with the CODESYS Base Libraries package.
CDS-98563 Improvement

CLONE - Removal of old "3S" library versions

Fixed
CDS-98532 Bug

CLONE - Redundancy: Standby PLC doesn't wait for status message and switches to standalone

Fixed
CDS-98498 Bug

CLONE - CmpLog: Disabled logger instance is displayed online

Fixed
CDS-98497 Improvement

CLONE - ComponentManager: enable hook diagnosis / profiling via setting (not via compile switch)

Fixed [[GENERAL]]
The Startup and exit profiler of the component manager can be activated via cfg-file:
[CmpLog]
Logger.1.Name=Profiler
Logger.1.Enable=1

=>All executed init hooks and exit hooks are logged in a separate logger named "Profiler".
=>By default, the SysOut backend is activated and so the profiler log messages are displayed in console window.

To enable profiler specific logger backends, you can use the standard backend configuration:
Logger.1.Backend.0.ClassId=0x0000010B ;sends logger messages to SysOut
Logger.1.Backend.1.ClassId=0x00000104 ;writes logger messages in a file

HINT:
- The profiling code can be activated by the following compiler switch:
CM_ENABLE_PROFILING
=>This define is set by default for non RTS_COMPACT and non RTS_SIL2 runtimes and can be enabled by the setting above!
- The profiling code can be disabled with the following compiler switch "CM_DISABLE_PROFILING"
CDS-98495 Bug

CLONE - NetVars: Exception when modifying linked file

Fixed
CDS-98494 Bug

CLONE - PLCHandlerLinkOPC.vcxproj corrupted

Fixed
CDS-98493 Bug

CLONE - CmpOPCUAServer: Racecondition on detection of available notifications could lead to stall of data change notifications

Fixed
CDS-98487 Bug

CLONE - LibMan: for Library Parameters of sub-libraries, settings ,specified by the project, should also be retained when the library is updated/changed

Fixed [[GENERAL]]
Only relevant if an implementation of ILibraryMappingProvider is active in the current installation.
The library parameters were stored with a wrong key containing a fixed version.
This caused problems when installing a newer version of the library.
Now the library parameters will be stored using a version-free key.

[[KNOWN_LIMITATIONS]]
For existing projects, the values have to be changed again, then the values will be stored correctly.
Only after a modification of the library parameters the correct key will be used.
CDS-98485 Bug

CLONE - CmpUserMgr/CmpOpenSSL: RSA key lengths are not limited to reasonable values

Fixed [[GENERAL]]
Introduces the following changes pertaining to the RSA key length in the Device Security Settings:
- The Device Security Setting `RSAMinKeyLen` in `CmpOpenSSL` has been renamed to `RSAKeyLenMin`.
The old setting is automatically migrated to the new setting on startup.
- The Device Security Settings `RSAKeyLenMin` and `UserLogin_RSAKeyLen` in `CmpUserMgr` are now selectable settings.
- A new setting `RSAKeyLenMax` has been introduced, which limits the effective range of valid RSA key sizes to RSAKeyLenMin <= requested key length <= RSAKeyLenMax
This new setting can be used by device manufacturers to set a global upper limit < 4096 on devices with limited resources.
- Outdated/unsecure 1024 bit RSA keys are not supported anymore.
CDS-98470 Bug

CLONE - TargetVisu: Security issues in Qt versions before 6.11.1

Won't Fix [[GENERAL]]
This issue had to be postponed from V3.5 SP22 P3 to a later patch due to technical reasons.
CDS-98469 Bug

CLONE - SVG-Renderer: Security issues in OSS versions before (libcurl 8.20.0)

Cannot Reproduce [[GENERAL]]
The issue CDS-97951 already did the update of libcurl to 8.20.0
CDS-98468 Bug

CLONE - CmpOpenSSL: Security issues in OpenSSL versions before 3.5.7

Fixed
CDS-98467 Bug

CLONE - CODESYSControl: Security issues in Expat versions before 2.8.1

Fixed
CDS-98466 Bug

CLONE - SecureChannel: Communication certificate is not re-created in all rename scenarios

Fixed [[GENERAL]]

In the following cases, the certificate for encrypted communication is regenerated. The previous certificate is not deleted in the process:

- If the setting `SYSTARGETKEY_STRING_GET_NODENAME` has been changed via any online service (CODESYS before V3.5.17.0).
- If the PLC node name has been changed via the `SRV_DEV_SET_NODE_NAME` online service (CODESYS V3.5.17.0 or newer).
- If the PLC node name has changed due to renaming the host in the operating system *(recognized only after restarting the PLC)*.
- If the setting `SYSTARGETKEY_STRING_GET_NODENAME` or `SYSTARGETKEY_WSTRING_GET_NODENAME_UNICODE` has been changed in the `CODESYSControl.cfg` file *(recognized only after restarting the PLC)*.
CDS-98421 Bug

CLONE - Exception when change editors while online

Fixed
CDS-98420 Improvement

CLONE - Compiler: Support RemoveLanguageModelOfObject(applicationGuid) to remove all language model of application

Fixed
CDS-98402 Bug

CLONE - save projectarchive throw exception if language is set to pt-BR

Fixed
CDS-98401 Improvement

CLONE - Hook for a read-only mode for concurrent access to projects

Fixed [[GENERAL]]
Introduce OEM Customization to suppress the creation of .~u file when the project is in use.
Section: Engine
Key: SuppressConcurrentUsageCheck
Type: Func<int, string, bool>
The first parameter is the project handle and the second one the project path.
If the handle is -1 the handle can be ignored and the path should be evaluated.
If the path is null the handle is valid.

[[KNOWN_LIMITATIONS]]
Since ~u file will be written every 5 seconds, implementations must not use time consuming operations. Use cached results instead.
CDS-98390 Bug

CLONE - CmpLog: Logger backends cannot be configured via setting other than standard logger

Fixed
CDS-98389 Improvement

CLONE - CmpAuditLog does not request LT_DUMP_SYSFILE_FLUSH flag

Fixed
CDS-98388 Bug

CLONE - Linux SocketCAN: wrong argument in case of synchronous send

Fixed
CDS-98358 Bug

CLONE - CmpHilscherCIFX : Possible race condition leading to Page Fault

Fixed
CDS-98357 Bug

CLONE - SysFileVxWorks.c: SysFileOpen_ does not compile if UNBUFFERED_FILE_IO is defined

Fixed
CDS-98343 Improvement

CLONE - Offer OEM-Customization hook for number of items in cross ref list

Fixed [[GENERAL]]
Section = "CrossReferences"
Key = "MaxCrossRefItems"
CDS-98342 Bug

CLONE - Communication Tab: simple mode does not recognize a change of the node name

Won't Fix [[GENERAL]]
This issue cannot be fixed individually because it duplicates CDS-97989. And the fix for CDS-97989 is too risky for a short term patch. A full regression test is needed and a longer period of internal usage in our developer community.
CDS-98314 Bug

CLONE - Compiler: Operator __CURRENTTASK generates Internal Error when used in library

Fixed [[GENERAL]]
Compilerversion >= 3.5.22.30
CDS-98310 Bug

CLONE - Options: Text Editor: Changing number of digits for monitoring leads to error message

Fixed
CDS-98309 Bug

CLONE - Synchronized Files are opened/executed without any warning

Fixed
CDS-98257 Bug

CLONE - Project Archive: not possible to login onto existing plant without download

Fixed [[GENERAL]]
Compiler Version >= 3.5.22.30
CDS-98256 Bug

CLONE - Compile: Internal error with variable length arrays

Fixed [[GENERAL]]
Compiler Version >= 3.5.22.30
CDS-98241 Bug

CLONE - CmpOPCUAProviderIecVarAccess: Sampling of MaxStringLength property does not work

Fixed
CDS-98239 Bug

CLONE - Compiler: No compile errors (from implicit?) POUs if application (previously compiled without errors) contains ambiguous identifiers

Won't Fix [[GENERAL]]
Won't fix. The original issue is too risky to fix.
CDS-98238 Bug

CLONE - Compiler: Precompile false positives in case of duplicate POU in PrecompileContext

Fixed [[GENERAL]]
CompilerVersion >= 3.5.22.30
CDS-98199 Bug

CLONE - Compiler: IPreCompileContext.FindSubelements does not return unused properties

Fixed
CDS-98197 Bug

CLONE - Compiler: Stackoverflow with recursive enumeration

Fixed [[GENERAL]]
Compilerversion >= 3.5.22.30
CDS-98095 Bug

CLONE - Linux Targetvisu: Segmentation fault if Targetvisu size is set in runtime configuration

Fixed
CDS-98094 Bug

CLONE - CmpSchedule: If multicore is deactivated in devdesc download failed without license

Fixed
CDS-98003 Bug

CLONE - open project may throw exceptions from libman if executed by serveral instances

Fixed
CDS-97989 Bug

CLONE - Encrypted Communication: Login not possible when using “Store Communication Settings in Project” and renaming controller

Won't Fix [[GENERAL]]
The fix for this issue is too risky for a short term patch. A full regression test is needed and a longer period of internal usage in our developer community.
CDS-97988 Improvement

CLONE - CmpSecureChannel: Common name (CN) has to be optionally configurable

Won't Fix [[GENERAL]]
The CN of a certificate for the TLS encrypted CODESYS communication protocol shall always mach to the node name of the runtime.
Therefore, the issue was replaced by:
CDS-98466: Correct situations, in which the runtime provides a certificate, which did not match the node name
CDS-97989: Allows the user to login, even if the CN is not equal to the runtimes node name.
CDS-97950 Bug

CLONE - [Component Manager] ScheduledCopyOperations do not use robust file copy in all methods

Fixed
CDS-97947 Bug

CLONE - CmpApp / Linux: Sporadic "invalid result package" at reset all applications

Fixed

 

CODESYS AddOns Version
CODESYS Automation Server Connector 1.38.0.0
CODESYS Base Libraries 4.0.1.0
CODESYS SoftMotion 4.20.2.0
CODESYS Security Agent 1.5.0.0
CODESYS Core Dump 4.2.0.0
CODESYS Code Generator ARM 4.0.3.0
CODESYS Code Generator ARM64 4.0.1.0
CODESYS Code Generator Cortex M3 4.0.2.0
CODESYS Code Generator PowerPC 4.0.2.0
CODESYS Code Generator TriCore 4.0.1.0
CODESYS Compiler Versions Archive 4.0.0.0
CODESYS Communication 4.8.0.0
CODESYS RISC Front End 4.0.2.0
CODESYS Target Settings Export 4.0.0.0
CODESYS Trace 4.4.0.0
CODESYS IO-Link 4.4.0.0
CODESYS Safety Support 4.1.0.0
CODESYS Redundancy Configuration 4.3.0.0
CODESYS NetX 4.1.0.0
CODESYS Memory Tools 4.1.0.0
CODESYS Modbus 4.6.0.0
CODESYS Ethernet Adapter 4.2.0.0
CODESYS EtherCAT 4.11.0.0
CODESYS CANopen 4.4.0.0
CODESYS EDS Import 4.3.0.0
CODESYS EtherNetIP 4.9.1.0
CODESYS PROFIBUS 4.2.0.0
CODESYS SAE J1939 4.2.0.0
CODESYS PROFINET 4.7.2.0
CODESYS Scripting 4.2.0.0
CODESYS Recipes 4.7.0.0
CODESYS Embedded Runtime Extension 4.1.0.0
CODESYS Device Reader 4.0.0.0
CODESYS Visualization Support 4.7.0.0
CODESYS Visualization 4.10.0.0
CODESYS CFC 4.5.0.0
CODESYS Application Composer 4.5.0.0
CODESYS LD FBD 4.7.0.0
CODESYS SFC 4.4.0.0
CODESYS Ladder 1.2.0.0
CODESYS Usage Analysis 1.2.0.0
CODESYS String Libraries 4.1.0.0
CODESYS Library Dependency Inspection 1.1.0.0
CODESYS Math Libraries 4.0.0.0