Release notes for version

This article contains the release notes for logi.CAD 3 version 3.22.0.

Up-to-date informationen within online-version

Please check the online-version (provided under http://help.logicals.com/) whether new pieces of information have been added since this user manual (as PDF/HTML/Word) has been published; e.g. the release notes quote new problems or there are new articles in the troubleshooting- or FAQ-section.
The online-version of the release notes for logi.CAD 3 is available under: https://help.logicals.com/lco3docu/latest/user-documentation/de/release-notes-fuer-version – Use the version picker (above the table of contents) to switch to the relevant version of logi.CAD 3.


Release-Notes for previous versions of logi.CAD 3 are provided in the online-version under https://help.logicals.com/lco3docu/latest/user-documentation/en/release-notes-fuer-version only.

General information

About compatibility:

If you have used a previous version of logi.CAD 3 and you want to use the current version, see "Are my projects upwards and downwards compatible?" for important information. Recommended, if you are using projects that have been created in a previous version of logi.CAD 3: Clean the imported projects.

  • logi.CAD 3 is not supported for 32-bit Windows systems any longer.

  • For projects that are containing function blocks with in-out variables (= VAR_IN_OUT) and that have been created or imported and cleaned in version 3.1.0 (or a later version), some steps are required after the projects have been imported within versions < 3.1.0. See "Functions blocks with VAR_IN_OUT from version < 3.1.0 prevent the building of the application".

  • For projects created or imported in version 3.0.0 (or a later version), some steps are required after the projects have been imported within versions < 3.0.0. See "Are my projects upwards and downwards compatible?".

  • FBD -objects that have been saved in version 2.5.0 or a following version cannot be opened in versions < 2.5.0 anymore.

On the Log4j security vulnerability:

See "Is the IDE affected by the Log4j security vulnerability (December 2021, CVE-2021-44228, Log4Shell)".

About system libraries:

See "Release notes for system libraries".

About the illustrations in the IDE documentation:

Depending on the configuration of your logi.CAD 3 version, the FBD-editor and its elements might be displayed differently in your logi.CAD 3 version than illustrated in the IDE documentation. This is the case, if logi.cals or the system integrator has changed the styles for the FBD-editor. Subsequently, the illustration in the IDE documentation are symbolic images and the representation in your logi.CAD 3 version takes precedence for the valid representation. In case of doubts, please contact logi.cals or your system integrator.

See "Color and style for FBD-elements determined by data type" for details.

General information for runtime system and target systems

About t he →runtime system :

If you are using logi.CAD 3 version 3.22.0, install and use the version 5 .17.0 of the runtime system.
The installation package for the runtime system is included in the delivery range of logi.CAD 3.

images/s/b2ic8e/9012/1ca6q62/_/images/icons/emoticons/warning.svg If you are using an older version of the runtime system, it might not be possible to successfully connect to the target system from within logi.CAD 3 (see troubleshooting article "No connection to the target system, but there are error messages)".
images/s/b2ic8e/9012/1ca6q62/_/images/icons/emoticons/information.svg See the FAQ article "When to update the version of the runtime system on the PLC?", if you need information on how to check whether the runtime system version appropriate for logi.CAD 3 is used on the PLC.

About →Raspberry Pi :

See the tutorial "Putting Raspberry Pi into operation" which version is recommended by logi.cals for usage.

New features in logi.CAD 3 version 3.22.0

This section informs you about the latest new features for this version.

ID

Component

New feature

38827

Teaming up to create applications

The IDE documentation contains information on the following:

  • putting the team server into operation and configuring it

  • creating the SSH key and access token for the team server

  • creating a project on the team server

The best practice is to start with the articles "Defining the team server" and "Importing a project from the team server". Follow the instructions and/or references in these articles.

55284

Creating custom libraries,
vendor blocks,
building the application

If you type-code the FORCEMRK block in a 2nd function block (e.g. by a corresponding statement in the ST code), the use of the 2nd function block in the project was and is possible without further problems.
However, if you provided the 2nd function block in a user-defined library with DEPLOY:=INTERFACE and used it in another project, the application using the function block could not be built successfully. This problem is now fixed in version 3.22.0 – provided that you create, deploy and install a new version of the library for the project. In this case, it is not necessary to adjust the existing code or logic of the function block.

This issue also applies if you use a vendor function block with ANY inputs in a 2nd vendor function block and deploy both vendor function blocks in a custom library.
As a background explanation, the FORCEMRK block is a function block with ANY inputs and thus corresponds in behavior to a vendor function block with ANY inputs.
In order to use the 2nd vendor function block from the library in a project and build the application successfully, these steps are necessary:

  1. Enhance the ST object for the 2nd vendor function block with the new specification concreteType – namely, that line where the instance of the 1st vendor function block is declared (see the following example).

    Example of declaration in previous versions
    {CustomImplementation}
    FUNCTION_BLOCK MyVendorBlock2
    { ImplementationProperties ( functionHasCFile;) }
    VAR
    var1 : str; (* 'str' is a user-defined data type. *)
    fb1 : MyVendorBlock1; (* 'MyVendorBlock1' is the vendor function block with an input 'IN1' of data type 'ANY'. *)
    END_VAR
    END_VAR
    END_FUNCTION_BLOCK
    Example of enhanced declaration in current version
    {CustomImplementation}
    ...
    fb1 : MyVendorBlock1{concreteType:=str;};
    (* By additionally specifying 'concreteType' and the type 'str', the necessary type-coding information is taken into account when creating the library. *)
    ...
  2. Create a new version of the library, deploy this version and install the new version in the project.

Note that library creation in version 3.22.0 takes longer than known from the previous versions. This applies to all libraries – not just those libraries that contain library elements with DEPLOY:=INTERFACE.

56113

Test framework

Now a program in a namespace can also be tested, if the test is started for the folder containing the program. So far you had to start the test for the program itself.

56737

Command line interfaces

The IDE provides a tool for the automated import of a project based on a TC6 XML file. The import is done into the defined project path. Without the project path, the import is done into the workspace of the IDE.

57671

Hardware configuration

A hardware parameterization is possible in the safety parameter editor. Observe that the safety parameter editor is not provided in all variants of logi.CAD 3.
See the section "Hardware parameterization using the safety parameter editor" for details on the safety parameter editor.

New features relating to the runtime system and target systems

ID

Component

New feature



none

Fixed problems in logi.CAD 3 version 3.22.0

ID

Component

Fixed problem

53941

Namespaces

Die Verwendung von Sprachelementen mit einem gleichen Namen aus dem globalen Namespace ist nicht möglich, falls ein Sprachelement mit dem gleichen Namen im aktuellen Namespace vorhanden ist.
Hinweis: Die Einschränkung zur Verwendung von Sprachelementen mit einem gleichen Namen aus dem globalen Namespace gilt weiterhin. Die Benutzerdokumentation enthält mehr Informationen, um die bestehende Einschränkung zu präzisieren.
Szenario für Problem: Es ist möglich, den Aufruf eines Bausteins z.B. im FBS-Editor durch das Ziehen des Bausteins aus dem Projektexplorer oder Applikationsnavigator einzufügen. Falls dieser Baustein im globalen Namespace liegt und der aktuelle Baustein liegt in einem deklarierten Namespace, in dem auch ein Baustein mit dem gleichen Namen wie der reingezogene Baustein vorhanden ist, dann ändert logi.CAD 3 den Aufruf des Bausteins aus dem globalen Namespace auf jenen aus dem gleichen Namespace.
Beispiel: Der Baustein TestMotor1 existiert im globalen Namespace, im Namespace NS1 existieren die Bausteine Testing und TestMotor1. Wenn Sie TestMotor1 aus dem globalen Namespace in den Baustein Testing einfügen, wird stattdessen TestMotor1 aus dem Namespace NS1 verwendet.
Zusätzliche Informationen:

  • Diese Änderung ist erst bemerkbar, nachdem Sie den FBS-Editor gespeichert, geschlossen und wieder geöffnet haben.

  • Die Benutzerdokumentation enthält derzeit eine entsprechende Einschränkung, dass die Verwendung von Sprachelementen mit einem gleichen Namen aus dem globalen Namespace nicht möglich ist.

55161

IDE documentation,
predecessor product

Missing information in migration documentation on differences of the system blocks in predecessor product to current product.
Fix: The article in the IDE-documentation has been enhanced so that the different behavior between the products is described.
Scenario for problem: The article "Differences: System blocks in predecessor product to current product" in the IDE-documentation does not contain any information on the different behavior when converting negative REAL/LREAL values by conversion blocks, such as the ATOWORD block of the predecessor product.
The behavior in the predecessor product is:

  • If a negative value of a variable of the data type REAL or LREAL is connected to the input, the block does not return the value 0.

  • If a negative value of a constant of the data type REAL or LREAL is connected to the input, the block returns the value 0.

The behavior in logi.CAD 3 is:

  • If a negative value of the data type REAL or LREAL is connected to the input, the block returns the value 0.

55198

IDE-documentation,
system blocks

The block description for some conversion blocks does not contain information about a deviation from the IEC-standard regarding a binary transfer.
Fix: The IDE documentation for the conversion blocks (in the context of the data types as defined by the IEC-standard) contains information about the deviation from the IEC-standard regarding a binary transfer.
Scenario for problem: The IDE documentation does not contain any information about this behavior of conversion blocks:

  • The conversion of the value is performed as a semantic interpretation.

  • REAL and LREAL values are also interpreted.

This behavior is a deviation from the IEC-standard. The standard defines that the data type conversion is done as a binary transfer. The IDE documentation also contains no information that the blocks deviate from the IEC-standard in this respect.

The following blocks are affected:

  • TO_BOOL

  • TO_BYTE – with input data type CHAR

  • TO_DWORD – with input data type CHAR und LREAL

  • TO_LREAL – with input data type LWORD

  • TO_LWORD – with input data types CHAR and LREAL

  • TO_REAL – with input data type DWORD

  • TO_WORD – with input data type CHAR

Example with ST-code for the block behavior
PROGRAM Program1
VAR
Var1, Var2, Var3 : WORD;
Var4, Var5 : BOOL;
END_VAR
 
Var1 := TO_WORD('1'); // The result is the hexadecimal value '16#0001' but a binary transfer (according to IEC-standard) would result in the hexadecimal value '16#0031' .
Var2 := TO_WORD(49); // The result is the hexadecimal value '16#0031'.
Var3 := TO_WORD(1.0); // The result is the hexadecimal value '16#0001' but a binary transfer (according to IEC-standard) would result in a different hexadecimal value.
Var4 := TO_BOOL(2#0001); // The result is the value 'TRUE' because the last digit is '1'.
Var5 := TO_BOOL(2#0010); // The result is the value 'TRUE' but a binary transfer (according to IEC-standard) would result in the value "FALSE" because of the last digit '0'.
END_PROGRAM

55202,
part 1

IDE-documentation,
system blocks

The block description for the conversion blocks from Convert does not contain information about the behavior in case of errors that are possible according to the IEC-standard.
Fix: IDE documentation for the conversion blocks (in the context of the data types as defined by the IEC-standard) contains information about this behavior.
Scenario for problem: The IDE documentation does not contain information about the behavior of the conversion blocks when the connected value is not within the range of values overlapping for the data type of the input and for the return value. The IEC-standard defines that the behavior in the case of such an error is implementer specific.
The general behavior of the conversion blocks in logi.CAD 3 (provided in the Convert sub-library) is as follows: The non-overlapping value range is not considered to be an error and the higher bytes (= bytes not within the range of values) are truncated.
Observe that the following is valid for the conversion block DT_TO_DATE: The block discards the time and returns only the date. Therefore, there is no value range error.
Additional information: In contrast to the above-mentioned problem the description of the block TO_TOD (provided in the ConvertEnh sublibrary) already contains the information on the error.

55202,
part 2

IDE-documentation,
system blocks

The block description for the TRUNC blocks does not contain information about the behavior in case of values that are not in the common range of values.
Fix: IDE documentation for the TRUNC blocks contains information about this behavior.
Scenario for problem: The IDE documentation does not contain information about the behavior of the TRUNC blocks when the connected value is not within the range of values overlapping for the data type of the input and for the return value. The IEC-standard defines that the behavior in the case of such an error is implementer specific.
Please observe: The behavior of the TRUNC blocks in case of a range of values not overlapping depends on the compiler and the target system. This means that the TRUNC blocks might return different return values for an input value that is not in the common range of values and in case of different compilers and the target systems. Therefore, enter code in your application to detect a range of values not overlapping (e.g. IF-statements in the ST-code).

55456

Validating the application

The description of the model rule configuration does not contain some details for specific changes.
Fix: Now the administrator's manual and the API SDK documentation contains some notes how to correctly change the model rule configuration for the following 2 aspects.
Scenario for problem: It is possible to change the model rule configuration by changing values in files for the model rules. For instance, it is possible to configure a model rule so that its values cannot be changed in the GUI. It is unclear why the model rules in the GUI are not affected by the following changes:

  1. The configuration has been changed in the project.rule file.

  2. The value overridable is changed from true to false.

Additional information:

  • The configuration in the files is not described in the reference documentation of the IDE. Starting pointers are included in the administrator's manual and details on the files are included in the API SDK documentation. The impact of the above-mentioned changes is missing in the manual or API SDK documentation.

  • The GUI might even not list any model rules at all. This means that the property page Validation might be empty.

55921

DIV_TIME block

The result of a DIV_TIME block might not be as expected.
Note: The behavior for the DIV_TIME block still applies. The user documentation contains the corresponding information in the description of the DIV_TIME block. The calculation of values with a lower calculation precision for REAL values is not supported.
Scenario for problem: The DIV_TIME block divides the TIME value at input IN1 by a numerical value at input IN2 and returns the result of this division in format TIME. If a REAL value is connected to input IN2, it is possible that the return value will not be as expected. The technical reason for this is that a LREAL value is used for the internal calculation (instead of a REAL value). Thus, a higher calculation precision is achieved than is actually required for REAL.
Example: With a REAL value for IN2, the value TIME#3000d is calculated by mistake. This erroneous calculation is executed due to the higher calculation precision. In comparison, if the same value is connected to IN2 but with data type LREAL, the expected value TIME#3000d will be calculated.
In case of an internal calculation with REAL, the value TIME#2999d23h59m51s808ms would be returned. Here this value is as expected for REAL values.

55951

EXPT block

The EXPT block might return an incorrect result.
Note: The behavior for the calculation 0**0 still applies. The user documentation contains the corresponding information in the description of the EXPT block.
Scenario for problem: The EXPT block returns the result 1 for the calculation 0**0. This is a mathematically incorrect result.
Additional information: In this case, the ENO output of EXPT is not reset to FALSE but TRUE is returned. So unfortunately there is no pointer to this type of problem.

55983

Importing the project,
workspace

Importing the project allows copying the project into a workspace with a space.
Fix: It is not possible to import the project into a workspace with a space (as described in the following scenario).
Scenario for problem: It is not possible to create a new project inside the workspace when the workspace contains a space. The reason for this is that logi.CAD 3 will not be able to load the application onto the PLC (due to the space in the path).
However, when the project is imported, it is possible to check the setting Copy projects into workspace to copy the imported projects into the current workspace – even when the workspace contains a space.

56204

Editors

Changes in an editor are getting lost when other projects are closed.
Fix: If other projects are close, the editor of the not-affected project is kept open. Hence, the unsaved changes are not lost.
Scenario for problem: When a project is closed and there are changes in an opened editor, usually you are asked whether to save the changes. However, there is no prompt when other projects are closed. In this case, the editor is closed and the changes are lost (the project with the editor is not closed – this is a correct behavior).

56219

FBD-editor

The context menu in the FBD-editor might not be opened at the expected position.
Fix: The context menu in the FBD-editor is opened at the expected position for the following scenario.
Scenario for problem: Usually, the context menu in the FBD-editor is opened next to the mouse pointer location. There are customer reports when this is not the case but the context menu is opened in a different place. The problem occurs when using a 4K monitor and a higher display setup that 100% for the size (e.g. 175 %).

56417

SAFETY

PLC,
runtime system

The PLC or runtime system might be terminated unexpectedly in case of a certain division.
Fix: The problem no longer occurs according to the following scenario. To fix this, the behavior of the DIV block has been changed as follows: When dividing the minimum value for a data type by -1 and for a return value of the same data type, the result of the division has changed. Now the result is 0 and the output ENO of the block is set to the value FALSE. This does not depend on the data type of the inputs and the return value of DIV – but as mentioned, the inputs and the return value must be of the same data type. This change applies to the new version 3.4.0 of the Standard library.

For the comparison of the block behavior, here is the behavior in the previous versions of the library Standard:

  • For the SINT data type of the inputs and the return value of DIV, the result of the division was -128 and the output ENO of the block was not set to the value FALSE.

  • For "larger" data types, e.g. for DINT and LINT, the problem occurred according to the following scenario.

  • For these "larger" data types and for certain compilers, it has been possible that a compile error occurred as well (which did not cause the problem according to the following scenario).

Scenario for problem: In the case of the following division (see the following ST-code), the PLC or runtime system might be unexpectedly terminated during the execution of your application. As a result, no values for the application are displayed in the Values of Variables view and the Instances view displays the state Offline.

Example ST code
PROGRAM Program1
VAR
dintm1 : DINT := DINT#-1;
dintVar : DINT;
END_VAR
dintVar := DIV(DINT#-2_147_483_648, dintm1);
END_PROGRAM

56526

Building the application,
LD-editor

It might not be possible to build the application when using an LD function block with function blocks is used.
Fix: It is possible to build the application for the following scenario.
Scenario for problem: When you are using an LD function block in the application and this LD function block is using function blocks, it is not possible to build this application. This problem only occurs, if the configuration variable -Dlc3.fbdDebugMemory=FALSE has been set to deactivate the debugging feature for FBD programs and FBD function blocks.

56530

Loading the application,
workspace

It is not possible to load the application onto the PLC when the workspace contains an umlaut.
Note: The restriction for the workspace still applies. The user documentation contains the following information:

Make sure that the workspace does not contain any special characters (such as umlauts, e.g. ä, ö, ü). If anyway, logi.CAD 3 will not be able to load the application onto the PLC.
For the workspace, letters A – Z or a – z, numbers 0 – 9, dots (character .), underlines (character _), dashes (character -) and blanks are allowed.

Scenario for problem: When you are using a workspace with an umlaut (e.g. because the user name contains an umlaut, such as Müller), it is not possible to load an application onto the PLC. In this case, the error log displays the following message:

Error loading code image (Error code: 0x10103 (65795) )

Workaround: Use a different workspace that does not contain any umlauts.

56540

"Instances" view

No more user actions might be possible after the action "Expanding all" in the "Instances" view.
Fix: To avoid blocking the following user actions, the action "Expanding all" by pressing the keyboard shortcut "*" is no longer supported if the levels are currently being expanded or if more than 50,000 objects have already been expanded. If more than 5,000 objects have been expanded, expanding is possible but the focus and selection in the Instances view will be removed to improve the performance when expanding.
Scenario for problem: It is possible to expand all levels in the "Instances* view by pressing the keyboard shortcut "*" (= the multiplier character) on the numeric keypad. It has been observed that no more user actions are possible after pressing the keyboard shortcut when a larger project has been opened or when pressing the keyboard shortcut repeatedly.

56549

Debugging the application

Missing message that a previously started version prevents the debugging.
Note: The user documentation contains the corresponding information that debugging is not possible in the later started version. The message is still not displayed.
Scenario for problem: When different versions of the IDE are started, debugging is not possible. So far the following message has been displayed: A previously started version of logi.CAD 3 prevents debugging. Please exit all versions of logi.CAD 3 – This message is not displayed in the current version of the IDE.

56573

Vendor blocks,
creating a custom library

The fingerprint of a vendor block with CustomNameSpace property is not updated correctly.
Fix: The fingerprint is updated correctly for the following scenario.
Scenario for problem: If a library element is changed and the library is created anew, this fingerprint is updated. However, in the following scenario, the fingerprint is not updated correctly:

  • You create a vendor block with the CustomNameSpace property.

  • You specify this vendor block in the library configuration.

  • You create the library based on the library configuration.
    Result: The library generation report contains the fingerprint for the vendor block.

  • You change the H or the C file for the vendor block.

  • You create the library anew (based on the same library configuration).
    Result: The new library generation report still contains the original fingerprint for the vendor block.

Additional information:

  • The same problem is valid for reports that are created when validating, testing and building the application.

  • The problem is in particular relevant for system integrators and when developing a safety-relevant application. Reasons:

    • Usually, vendor blocks are created and deployed in libraries by system integrators.

    • The fingerprint of each element listed in the report must be checked and compared with the fingerprints in other reports (e.g. the SiL/PiL test reports). The different or wrong fingerprint makes it impossible to proceed with the workflow as described in the English document "Safety instructions on working with the IDE."

  • The specification for CustomNameSpace is used as part for the name of the generated H/C file.

56650

"Build Log" view

The editor might not display the content of the file compile_result.txt after clicking "Show in editor".
Fix: The editor displays the content of the file correctly.
Scenario for problem: The Build Log view provides the button Show in editor to display the content of the file compile_result.txt in an editor. However in some customer versions, the error message Resource "<path>/compile_result.txt" does not exist is displayed in the editor

56707

TC6 XML import

An exception might occur when a project is importing from a TC6 XML file.
Fix: The exception does not occur for the following scenario anymore.
Scenario for problem: When you export a project to a TC6 XML file, rename the exported project and import the project from the TC6 XML file, an exception occurs. In this case, the following message is displayed:

An internal error occurred during: "project build settings update job"

56717

Building the application

Building of the application might not be successful when a customer version has been installed in a path with blanks.
Note: The restriction for the installation path still applies. The user documentation contains the following information:

No blanks or special characters in project name and installation path
Make sure that there are no blanks or special characters (such as umlauts, e.g. ä, ö, ü) in a project name and in the installation path. If anyway, logi.CAD 3 will not be able to load the application onto the PLC.
For the paths and project names, letters A – Z or a – z, numbers 0 – 9, dots (character .), underlines (character _) and dashes (character -) are allowed. Examples for allowed project names: my.project, my-project, my_Project_01

Scenario for problem: When an application is built and the building is not successful in the customer version, a possible reason for this problem is that the customer version has been installed in a path with blank. In this case, the following messages are displayed:

The application for the PLC (resource "<name>", platform toolkit "<name>") cannot be created/loaded. Check the views "Error Log" and "Problems" for more information.
An error occurred during compiling or linking the code image (error code: 1).

The error logger displays these messages:

The application for the PLC (resource "<name>", platform toolkit "<name>") cannot be created/loaded. Check the views "Error Log" and "Problems" for more information.
<Project-Path>\target\<configuration-name>\<resource-name>.<platform-name>\usRTS_APP.elf

In some occurrences, the warning The Ninja dependencies file does not exist has been displayed in the error logger as well.

56757

ST-editor.
building the application

An application cannot be built, if it contains global variables using a partial address.
Fix: The application can be built for the following scenario.
Scenario for problem: If partial addresses are specified for global variables (see the following example), it is not possible to build the application although the user documentation contains the information that the definition of not yet fully specified locations has no impact on the execution of the application. In this case, the following messages are displayed:

Faulty source files. The application for the PLC (resource "name1", platform toolkit "name2") cannot be created/loaded. Check the views "Error Log" and "Problems" for more information.
The IEC hardware address "%I" is not valid for variable "GV-name1": missing byte offset.
The IEC hardware address "%Q" is not valid for variable "GV-name2": missing byte offset.
The IEC hardware address "%I" is not valid for variable "GV-name3": missing byte offset.
Example
PROGRAM Program1
VAR_GLOBAL
GVar1 AT %I*: BOOL;
GVar2 AT %Q*: INT;
GVar3 AT %M*: BOOL;
END_VAR
END_PROGRAM

Additional information:

  1. The user documentation for the error message about the "missing byte offset" refers to the usage of an IO-provider and/or IO-services (by a specification IO_IMPORT within the PLC-object). But this information does not apply to the above-described scenario. So the specified solutions in the user documentation for the error message do not apply.

  2. The partial addresses have been introduced as a preparation so that it will be possible to specify the storage location in a future tool to configure the IOs. At present, the specification of partial addresses for global variables is not fully supported.

56764

Vendor blocks,
creating a custom library

The fingerprint of a vendor block with implementationName property is not updated correctly.
Fix: The fingerprint is updated correctly for the following scenario.
Scenario for problem incl additional information: As for ID "56573" but for the implementationName property.
implementationName determines a different POU name as part of the file name for the H-file as well as for the C-file (if the definition functionHasCFile is specified as well)
This definition is useful in particular if several identical functions are to be implemented within the same file.

56903

Creating a custom library

Depending on the customer platform, an exception might occur when creating a library containing library items with DEPLOY
Fix: The exception no longer occurs for the affected customer platform.
Scenario for problem: If you create a library containing library items with DEPLOY and the library is included in an application that is built for a specific customer platform, it is possible that an exception occurs. In this case, the error log contains the following messages:

Unhandled event loop exception
Cannot invoke "com.logicals.lc3.api.model.Resource.getConfiguration()" because "resource" is null

56929

Project explorer

No more user actions might be possible after going into a folder.
Fix: The problem does not occur anymore.
Scenario for problem: The command Go Into in the context menu of the project explorer refocuses the project explorer to the currently selected folder. However, if the IDE-version contains a CDT (= a C/C++ Development Toolkit), an exception occurs and no more user actions are possible for the project explorer. In this case, the message Unhandled event loop exception is displayed.

56935

IDE documentation

The user documentation on integrating external libraries for C-blocks is labelled as deprecated but it is also valid for vendor blocks.
Fix: In order to avoid any confusion on the integration of external libraries, the section "Creating vendor blocks for the application or a library" now contains an article describing this integration.
Scenario for problem: The user documentation contains the article "Integrating external libraries for the C-blocks or C++-blocks" in the section "Integrating C-code and/or C++-code into the application". The section as well as the article is labelled as deprecated but the description in the article applies to vendor blocks that is documented in the different section "Creating vendor blocks for the application or a library".

57092

Interface editor

Resizing an extensible function block might cause an exception.
Fix: The exception for the following scenario does not occur anymore.
Scenario for problem: Resizing an extensible function block with definitions for the height/width (in the interface editor) might display the following message in the error log: An exception was ignored during command execution
In this case, the resizing does not work as smoothly as expected.
Additonal information: The problem occurred with the following properties for the interface editor (here the extract of the textual editor – for the sake of a summary):

expandableGUI;
minHeight := 58;
maxHeight := 198;
height := 188;

57096

Validating the application

The content of templates and the .log folder are checked when validating the application.
Fix: The contents of templates and the .log folder are no longer checked when validating the application.
Scenario for problem: When you validate an application, the contents of templates and the .log folder are also checked. In case of rule violations, messages are reported in the Problems view. This is not as expected, since:

  • The contents of templates (= objects that exist below the templates folder) should not be checked and no errors/problems should be reported for them.

  • The content of the .log folder is automatically generated and should not be checked.

57112

Interface editor

Unsaved changes are immediately reported when the interface editor is opened.
Fix: The * marker for the interface editor is only displayed if unsaved changes are actually included.
Scenario for problem: If the interface editor is opened for a block, the * mark for unsaved changes is immediately displayed next to the block name (in the tab). When closing the interface editor, the prompt appears asking whether the changes should be saved, although no changes were made at all.

57462

Instance data in the FBD-editor

The initialization values of instance data are not applied to arrays.
Fix: The problem does not occur anymore.
Scenario for problem: When reading the instance data via the API, the initialization values of instance data of a function block in arrays are not applied.
Additional information: Usually, instance data elements exist only for function blocks within a library provided by a system integrator. If you want to enter instance data elements for a block within the graphical user interface of the IDE, you require an IDE variant that has been enhanced by a system integrator.

57474

Creating/using custom libraries,
building the application

After replacing an installed library, the application may not be built.
Fix: The problem according to the following scenario no longer occurs.
Scenario for problem: In the following scenario it is not possible to build the application:

  1. You install 2 libraries in the project,
    One of the installed libraries uses a block from the other library that is installed.

  2. You uninstalled the library with this block.

  3. You install a replacement library that also contains this block.
    It is not possible to build the application.

Additional information: The original library and the replacement library contain the same library elements but they have been created with the different settings SOURCE or INTERFACE for the DEPLOY value.
It is not relevant to the problem whether the original library was created with SOURCE or INTERFACE and whether the replacement library was created with INTERFACE or SOURCE.

If the application cannot be built due to the replacement, the following messages are displayed – either in the error log, in the Problems view, in the Build Log view (in the "Compiler and Linker Output" field), and/or in the compile_result.txt file:

  • The application for the PLC (resource "name", platform toolkit "name") cannot be created/loaded. Check the views "Error Log" and "Problems" for more information

  • Messages with the text undefined reference – Example: allmd.sys-gen.o:(.rismd+0x10b44): undefined reference to `lcmd_type_UDINTx2BFORCEMRK'

57485

Teaming up to create applications

No useful message when trying to create a new object in a project imported from the team server.
Fix: In case of missing privileges for the project, the object wizard displays the more meaningful message You are not allowed to create objects in the project now. When trying to lock an object, the additional message part You are not allowed to push code to this project from the team server is displayed.
Scenario for problem: After a project has been imported from the team server, this import is successful. However, it is not possible to create an object in this project. The object wizard displays a message that the file already exists and has been locked by a different user. But this is not the case because checking the project on the team sever proved that no such object exists in the project.
When trying to lock an existing object, a message is displayed that the locking failed. This message contains this unclear information: exit status 1
Additional information: The actual cause for the problem is that the team member does not have sufficient privileges to edit the project. According to the GitLab server documentation, at least the "Developer" role is required to lock files or commit changes to the server. Guests or reporters are not allowed to do this.

57505

Validating the application

Errors/warnings reported for open templates are still reported after the template is closed.
Fix: If a template is opened in an editor, the rule violations are still reported by a validation. As soon as the editor for the template is closed, the messages are now removed from the view.
Scenario for problem: If the editor is opened for a template (a template is an object that exists below the templates folder) and this template contains rule violations, errors/warnings detected during the validation are displayed in the Problems view. After closing the editor, these messages are still displayed. This display that remains is not as expected.
Additional information: When you validate an application, the content of closed templates is not checked to keep the project error-free. Reason: the templates are not used in the project, so information about their errors/warnings is not required for the project. However, as a convenience, the IDE reports errors/warnings for open templates.

57509

SAFETY

FBD-editor

The network elements are not evaluated as expected if the network contains a feedback loop without a feedback variable but with a function block and a function.
Fix: The rules for the order of statements within an FBD network containing a feedback loop have been changed to restore the behavior of V3.20.0. This means that the outputs of a function block call are again considered as executed until the call can actually be executed. Thus the problem according to the following scenario is fixed.
Important: Due to this change it is possible that the C-code automatically generated in version 3.22.0 changes e.g. when cleaning the projects, even if you do not change the content of the FBD editor yourself. The reason is the changed execution of the network elements in the new version. Note that when the application is loaded, this changed code will be loaded onto the PLC.
More notes in the context of the fix:

  • Additionally, a problem has been detected that a detail has not been applied as documented when resolving feedback loops. This detail is: "Immediately following assignments are put on hold concerning the evaluation until the call has actually been evaluated." This problem has also been fixed as part of ID "57509". Thus, this detail is now applied as expected as well.

  • The problem with ID "55620", which has been fixed in the context of network element evaluation for version 3.21.0, is still fixed.

  • The IDE-documentation for version 3.22.0 contains the updated description of the rules and of examples; see "Order of statements within an FBD-network".

  • If you know the execution order of the predecessor product logi.CAD/32 and you want to activate this order in logi.CAD 3, set the new configuration variable -Dlc3.fbdStatementSortLC32=TRUE. Refer to the release notes for ID "57550" for information about the behavior of this new configuration variable.

Scenario for problem: If a network contains a function block and a function that are located in a feedback loop (see the following figure), the execution order is not displayed as expected.
The following figure shows a simplified network with the assigned execution order with the numbers (in the red rectangle):
images/download/thumbnails/516827034/57509_Problem-version-1-modificationdate-1685083994899-api-v2.png

The problem is that the function block gets executed before the function and the output value of the function is initialized with the default value when the function block gets executed with that value.
Additional Information: The problem has been introduced due to a change in the rules for the order of statements in version 3.21.0. For more information about this change, see the release notes for version 3.21.0, ID "55620".
In previous versions, the above example was executed as follows (according to the expectation):
images/download/thumbnails/516827034/57509_V3190_Behavior2-version-1-modificationdate-1685083994745-api-v2.png

57550

FBD-editor

When using the configuration variable -Dlc3.fbdPreserveFunctionOutputs=TRUE, the network elements are not evaluated as expected if the network contains a feedback loop without a feedback variable but with a function block and a function.
Fix: Analogous to the fix for ID "57509", the rules for the order of statements within an FBD network containing a feedback loop have been changed to restore the behavior of V3.20.0. Thus the problem according to the following scenario is fixed.
Important: Due to this change it is possible that the C-code automatically generated in version 3.22.0 changes e.g. when cleaning the projects, even if you do not change the content of the FBD editor yourself. The reason is the changed execution of the network elements in the new version. Note that when the application is loaded, this changed code will be loaded onto the PLC.
More notes in the context of the fix:

  • Analogous to ID "57509", an additional problem has been detected that a detail has not been applied as documented when resolving feedback loops. This detail is: "Immediately following assignments are put on hold concerning the evaluation until the call has actually been evaluated." This problem in the context of the configuration variable -Dlc3.fbdPreserveFunctionOutputs=TRUE has also been fixed as part of ID "57550". Thus, this detail is now applied as expected as well.

  • The problem with ID "55620", which has been fixed in the context of network element evaluation for version 3.21.0, is still fixed.

  • The IDE-documentation for version 3.22.0 contains the updated description of the rules and of examples; see "Order of statements within an FBD-network".

  • The difference for the network element evaluation without and with the configuration variable -Dlc3.fbdPreserveFunctionOutputs=TRUE is as follows:

    • Without the configuration variable, feedback loops for functions without a variable in between are highlighted as errors.
      No execution order is shown for these network elements and it is not possible to build and load the application onto the PLC.

    • With the configuration variable, feedback loops for functions without a variable in between are highlighted as warnings. Then the execution order is displayed for these network elements as well. Provided there are no other errors in the application, it is possible to build and load the application onto the PLC.
      Additionally, this configuration variable also changes the behavior of functions in case of EN=FALSE. If you are interested in this detail, consult the IDE documentation. In this case, search for the text lc3.fbdPreserveFunctionOutputs in the IDE documentation.

  • If you know the execution order of the predecessor product logi.CAD/32 and you want to activate this order in logi.CAD 3, set the new configuration variable -Dlc3.fbdStatementSortLC32=TRUE. Without this configuration variable, there are differences between logi.CAD/32 and logi.CAD 3 regarding the evaluation of networks in FBD; see the description "Differences: Predecessor product to current product" – the lines with the text "feedback loops" and "execution order".
    Note: The behavior in logi.CAD 3 modeled on the predecessor product corresponds to the behavior in the predecessor product with the environment variable LC32_SORTORDER_TAR_DEP_CHECK=1. Details about this behavior can be found in the documentation of the predecessor product "Documentation for logi.CAD/logi.DOC-Administrators", in the article "Defining Processing Variant Concerning Variables Used as Array Index".

Scenario for problem: The problem is analogous to that with ID "57509": If a network contains a function block and a function that are located in a feedback loop, the execution order is not displayed as expected. However, the configuration variable -Dlc3.fbdPreserveFunctionOutputs=TRUE is defined here so that the variables and a possibly existing result value of the functions retain the last values assigned to them.
Here the problem is that the function has a lower priority than he function block although the functions and function blocks should be treated the same due to the set configuration variable.
Additional Information: The problem has been introduced due to a change in the rules for the order of statements in version 3.21.0. For more information about this change, see the release notes for version 3.21.0, ID "55620".

57598

Building the application,
creating/using custom libraries,
vendor blocks

Building the application for a project with outdated libraries might cause an exception.
Fix: It is still not possible to build the application for the outdated libraries in which the type information is missing. But now the following message is displayed to indicate the missing type information: The statement "concreteType" as type information is missing for the variable "name1" in the POU "name2".
Scenario for problem: When building the application for a project that uses outdated libraries, an exception might occur. In this case, the following messages are displayed:

The application for the PLC (resource "name1", platform toolkit "name2") cannot be created/loaded. Check the views "Error Log" and "Problems" for more information.
Variable name3 is not resolved

The problem has been traced back to a library element that is a vendor function block with ANY inputs. The application cannot be built because of missing type information. Starting with logi.CAD 3 version 3.22.0, the type information can be added by the statement concreteType for the instance declaring the vendor function block with ANY inputs. Details on this statement concreteType are provided in the IDE user documentation.
As a consequence, all libraries using such library elements must be generated and installed anew starting with version 3.22.0.

57629

FBD-editor,
instance data

An exception occurs when an exponential value is specified for the instance data.
Fix: The exception for the following scenario does not occur anymore.
Scenario for problem: When an exponential value, such as -1.0333E-03, is specified as a value in the instance data for an element, an exception occurs. In this case, the following message is displayed in the error log.

Cannot invoke "com.logicals.lc3.api.model.st.pou.Variable.getName()" because "currentVariable" is null

Additional information:

  • After the exception, it is not possible to specify other instance data in the POU. Reason: Either the context menu with the command to edit the instance data or the dialog to edit instance data can be opened.

  • Usually, instance data elements exist only for function blocks within a library provided by a system integrator. If you want to enter instance data elements for a block within the graphical user interface of the IDE, you require an IDE variant that has been enhanced by a system integrator.

Workaround: Close and reopen the POU containing the instance data.

58652

Displayed messages

Messages about different fingerprints and missing verification are reported as warnings.
Fix: The messages are now reported as errors in the error log and in the build report.
Scenario for problem: When building a safety-relevant application, the following warnings inform you that the fingerprint is different or that files could not be verified:

Fingerprints do not match for POU "name". Expected "number" but was "number".
The source file "name" with checksum "number" could not be verified.

Both messages should rather be reported as errors, as this is relevant when creating a safety-relevant application. These messages are displayed in the error log and in the build report.

Changes affecting the code generation

The following changes in logi.CAD 3 version 3.22.0 affect the automatically generated C-code (and thus the built application), even if you do not make any changes in the application yourself. Observe that when you load the application, the changed code will be loaded onto the PLC.

Change

Starting with version

More information on the change

Changed specification -0.0 in the C-code (when -0.0 has been entered in the ST-code) SAFETY

V3.21.0

See ID " 56121 " in the release notes of the specified version

Inserted cast LC_TD_REAL or LC_TD_LREAL in the automatically generated C-code (when REAL#-0.0 or LREAL#-0.0 has been entered in the ST-code as typed literal)SAFETY

V3.21.0

See ID " 55996 " in the release notes of the specified version

Changed result when dividing the minimum value for a data type by -1 and for a return value of the same data type SAFETY

V3.22.0

See ID "56417" in the release notes of the specified version

Changed order for statements within an FBD network with a feedback loop (in the default configuration) SAFETY

V3.22.0

See ID "57509" in the release notes of the specified version

Changed order for statements within an FBD network with a feedback loop (in the case of -Dlc3.fbdPreserveFunctionOutputs=TRUE)

V3.22.0

See ID "57550" in the release notes of the specified version

Note: The flag SAFETY means that the change must be taken into account in particular when developing safety-relevant applications. A change without this flag applies to a functionality/configuration which is not supported for the development of safety-relevant applications.

Known problems in logi.CAD 3 version 3.22.0

ID

Component

Known problem

49494

Application navigator,
ST-object

When several function blocks have been created in the same ST object, the command "Delete" in the application navigator deletes all function blocks in this ST object without any previous information.
Scenario for problem: It is possible to create several language elements, such as function blocks, in the same ST-object. When in the application navigator, you are selecting the command Delete for one of these language elements, all language elements in the ST-object are deleted because the entire ST-object is deleted. There is no information before the delete action that other elements will be affected by the delete action.
Additional information: The same problem occurs in case of a moving action. This means: If one element is moved, the other elements within the ST-object are moved as well.
Workaround: Before you delete an element, you might want to check whether there are other elements in the same object. If yes, rather delete the element in the ST-object (i.e. in the ST-editor).

49498

Application navigator

The command "Go Into" in the application navigator does not behave as expected.
Scenario for problem: The command Go into should refocus the view to the currently selected folder. However, if the command is selected in the application navigator (for example, for the folder Project blocks), the view does not display the contents of only this folder, but all projects that are currently open will be displayed in that folder as well. This behavior in the application navigator is not as expected.
Workaround: none available

images/s/b2ic8e/9012/1ca6q62/_/images/icons/emoticons/information.svg If your problem is not listed in this list, check these sections: Troubleshooting and FAQ

Addendum: Known issues after the release of logi.CAD 3 version 3.22.0

This section was last updated on: 2023-09-14

For issues discovered after the release of logi.CAD 3 version 3.22.0, please refer to the release notes of the successor versions. Both the list of known problems and the list of fixed problems might contain descriptions of problems that are relevant for logi.CAD 3 version 3.22.0.

Issues that have been reported after the successor version has been released are listed below. This list is updated at regular intervals (see the date after the section heading). If you need more up-to-date information, please contact logi.cals .

ID

Known problem

56591

A ladder diagram cannot be saved under a different name.
Scenario for problem: It is not possible to save the logic in the LD-editor under a different name.
Workaround: none available

59175

The automatically generated H-/C-files for vendor blocks are not automatically locked. The editor for them is not opened in a read-only mode.
Scenario for problem: If you open an existing object from within the view Team Monitor, the IDE automatically locks this object. If the IDE cannot lock the object, the editor is opened in read-only mode. This is true for a vendor block itself but not for the H-/C-files that are automatically generated for the vendor block.
Workaround: Lock the H-/C-files yourself by opening the context menu for these files within the project explorer and selecting the command Lock selected files.

59209

A change in the automatically generated C/H file for a data type is not checked.
Scenario for problem: If the content of a C-file is changed and this C-file has automatically been generated for a data type that you have declared in the ST editor, the build report (= the HTML report that contains information about the built application and its components) does not contain an error or any other indication that the C-file has been edited and does not match the declaration in the ST editor. The same problem is valid when the automatically generated H-file is changed.
Additional information: This problem is in particular relevant when developing a safety-relevant application because the build report must be checked for such applications.
Workaround: Do not edit C/H files that are automatically generated for data types.

59213

The fingerprint of the application is not updated in the "Instances" view when changing C-sources.
Scenario for problem: When changing the contents of a C-file of a vendor block and saving this change, the fingerprint of the application is not updated in the Instances view.
Workaround: Clean the project to update the fingerprint in the Instances view.

59222

Resizing of the build log does not work as expected.
Scenario for problem: When the Build Log view is made larger, the content of the view is not adapted to the new size. There might be an empty area below the displayed GUI-components rather than the GUI-components are filling up the available space.
Workaround: none existing

59264

A PDF file within a library cannot be opened.
Scenario for problem: When creating a library, a PDF-file was included in the library. When double-clicking this PDF-file in the installed library, the PDF-file is not opened.
Workaround: none available

59268

The LD-editor for an LD-object already locked by a different user is not opened in a read-only mode.
Scenario for problem: If you open an existing object from within the view Team Monitor, the IDE automatically locks this object. If the IDE cannot lock the object (e.g. because the object is already locked by a different user), the editor is opened in read-only mode. This is true for an FBD-object and an ST-object but not for an LD-object.
Workaround: none existing

59272

An expression for an input for a function block cannot be entered as expected.
Scenario for problem: According to the user documentation, the LD-editor allows to enter expressions, such as AND(varBool, true), for the in-/outputs of the function or function block . This is not true. Variables are accepted for the in-/outputs but not a combination of variables, operators and literals.
Workaround: none existing

59356

An exception might occur when a global-object is renamed in the application navigator.
Scenario for problem: When you try to rename a global-object in the application navigator, an exception might occur. In this case, the following message is displayed in the error log: Unhandled event loop exception
Workaround: Rename the global-object in the project explorer.

59755

A changed physical address in a global-object might not be correctly considered for the C-code.
Scenario for problem: When you change a physical address for a global variable declared in a global-object and this global-object is referenced in a configuration, the automatically generated C-file contains the original physical address.
Workaround: Clean the project. Or minimally change the PLC-object containing the configuration (e.g. insert a blank) and save this change.

59816

The test coverage is not calculated correctly due to an empty line after the statement.
Scenario for problem: For a partially covered ST-code, the following message is displayed as detail on the test coverage when you point to the ST-code:

Partially Covered: Cannot analyze branch info: branch 0 was taken -1 times, branch 1 was taken 33 times"

The information -1 times does not match the expectations. The reason is that the test coverage is not calculated correctly due to an empty line after the statement.
Workaround: none existing

59863

The test coverage for assignments with array elements may not match the expectations.
Scenario for problem: The ST-editor only displays partial test coverage for an assignment of an array element or an assignment to an array element. However, full test coverage was expected.
Additional information: For full test coverage for the mentioned assignments with array elements, a test for access to an invalid array index must have been executed. Without this test, only partial test coverage will be displayed within the ST-editor.
Workaround: none existing

59900

Comments within the ST-editor may be considered for the representation of the test coverage.
Scenario for problem: The test coverage within the ST-editor is not displayed as expected in an ST-code with comments after statements. The reason for the problem is that comments after statements are considered for the representation of the test coverage, even though the comments do not affect the tested code at all.
Workaround: none existing

60029

The re-dragging of the global-object within the application navigator causes an exception.
Scenario for problem: In order to be able to use the global variables within the application, drag a global-object onto the corresponding object within the application navigator - e.g. onto a configuration. If you drag the global-object onto the configuration several times, an exception occurs. In this case, the entry Unhandled event loop exception occurs in the error log.
Workaround: The best approach is to avoid re-dragging the global-object.

60109

Vendor blocks or other library elements with the suppressWarning statement cannot be used within the application.
Scenario for problem: Using the suppressWarning statement makes it possible to suppress warnings for rule violations regarding the ST-code when validating the application. This suppression is supported for the ST-objects of the project. If you insert this statement in an ST-object or a vendor block and use this ST-element or vendor block in a library, the statement then causes a syntax error in the installed library. If you try to use the faulty element from the library within the application, the application cannot be created and loaded onto the PLC.
Workaround: none existing

60370

The article "The structure of the needed H-file" in the English IDE documentation contains German text.
Scenario for problem: For the article "The structure of the needed H-file", only German text is available in both language versions of the IDE documentation.
Workaround: none existing

60374

The article "Showing/hiding not connected in-/outputs" contains wrong information.
Scenario for problem: Parts of the description in the example of the article "Showing/hiding not connected in-/outputs" are reversed. The information in the text is therefore incorrect.
Workaround: none existing

60453

Building an application might lead to linker warnings.
Scenario for problem: Depending on the used toolchain, linker warnings might occur when building an application. The warnings are caused by a discrepancy between extern declarations and the definition of symbols.
Workaround: Ignore the warnings.

Checksum for components of logi.CAD 3 version 3.22.0

This section is not relevant for logi.CAD 3 version 3.22.0 .

Component

Version

Checksum

Description

logi.CAD 3 IDE

version 3.22.0

---


system library Standard


version 3.4.0


---