Release notes for version

This article contains the release notes for logi.CAD 3 version 3.23.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.23.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.23.0

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

ID

Component

New feature

50673

Validating an application

The existing rule Connections from an output of a function block are not allowed to a VAR_IN_OUT variable has been renamed to An output of a function block must not be assigned to a VAR_IN_OUT variable. Likewise, the description of the rule and the message reported for the respective rule violations has been adjusted.

The behavior of the rule itself has not been changed.

57018

Artifact identity

The new feature "artifact identity" provides the ability to check all relevant artifacts regarding their identity and integrity. With this feature enabled, one identity per artifact (also known as artifact identity) is automatically created when the artifact is saved in a qualified editor of the IDE.

If the artifact is created or modified outside the IDE, the IDE informs you of the non-matching artifact identity during the following actions:

  • opening the artifact in the qualified editor of the IDE

  • building the application in which the artifact is used

  • creating/using the library in which the artifact is used – if the library configuration contains the CORRUPTION_DETECTION_MODE := ARTIFACTIDENTITY; statement

The feature assists in ensuring that only checked changes to the relevant artifacts of an application are loaded onto a target system or provided in a library. The feature is especially useful when developing safety-related applications and is usually enabled, provided and possibly enhanced by system integrators.

Details about the feature: See " Checking the identity and integrity of artifacts "
Details on the new CORRUPTION_DETECTION_MODE statement for library configurations: See " Declaration of information on creation and references for the library " .

57969

Access control

Use the new feature "access control" to regulate access to individual features of the IDE. Mind the following: When access control is activated, it applies to all projects that are newly created in the IDE version.

See "Controlling the access by using the access control" and the articles below it for details about the feature, how to activate it, and how to use it.

58943

System blocks

Now you can use blocks from the new library PLCopen Safety in your applications.
These blocks are based on the technical specification "TC5 - Safety, Version 2.01 – Official Release, Part 1 - Concepts and Function blocks" (© PLCopen).
Details on the blocks: See " PLCopen blocks " .

Observe that the library PLCopen Safety is not provided in all variants of the IDE.

59547

FBD-editor

If you want to create a new variable in the FBD-editor, you can use the new command Variable(s)... The command opens the dialog for creating variables, which you may already know from the list of declared variables. After you have specified the data for the variables (e.g. the name and the data type), click OK. Then position the value field with the new variable in the drawing field.

You can find the new command in the context menu for the drawing field under Create.

59594

List of the declared variables

The dialog for declaring variables has been improved as follows:

  • The field for the data type has been changed to a combo box. This opens a sorted list of all data types. If you specify one or more letters, the corresponding data type is selected.

  • Subsequent changes to the selection are possible, e.g. by completing an array declaration.

  • When selecting a STRING data type, STRING

    [80]

    is automatically entered. If you need a different length, simply overwrite 80 in the field for the data type.

  • The order of the data types in the list is now as follows:
    1. the elementary data types (see article " Supported data types (in ST) ")
    2. the safe data types
    3. all other data types, e.g. other system data types and user-defined data types

59655

Building the application

Previously, it was only possible to build the application for a resource because the Build Application button in the Instances view was only enabled when a resource was selected. Now the button is also enabled when a configuration is selected in the Instances view. Hence you are able to build the applications for the resources of a configuration in one go.

59792

Safety parameter editor

The safety parameter editor has been revised for IDE version 3.23.0. The most important changes are:

  • The usual dirty flag * in the tab makes you aware of unsaved changes in the editor. When closing such an editor, you have the option to save or discard the unsaved changes.

  • The layout and content of the safety parameter editor have been revised. For example, fewer columns are displayed. The corresponding information is now displayed as a tooltip when you hover over this element.

  • The yellow background color is now only set for the currently changed parameter values. As soon as you confirm the change (e.g. by pressing the Enter-key), the background color reverts back to white. As a result, the already mentioned dirty flag * is set in the register to draw your attention to the unsaved changes in the editor.

  • The buttons Accept group and Accept all have been renamed to Save group and Save all, as these save the changes.

  • For the German IDE version, all GUI components and messages have received German names. So for example, the previously mentioned buttons are now: Gruppe speichern and Alles speichern

The current behavior of the safety parameter editor is described in the section " Hardware parameterization using the safety parameter editor " .

59828

Validate application

The standard package of the IDE provides 4 new rules:

  • The usage of expressions in value fields is restricted to literals, constants or variables.

  • Connectors or continuations must not be used.

  • Elements in an interface of a function block or a function must not overlap.

  • Instances of function blocks must not be called multiple times.

By default, these rules are not activated so the behavior to date is still valid. As usual for rules, you can change the configuration of rules.

59936

PLC-object

The limit for the target system parameters in the PLC-object has been increased from 1024 characters to 4096 characters.
As a consequence, you are able to enter longer specifications between TARGET and END_TARGET in the editor for PLC-object, after you have cleaned the project at least once.

60048

ST-editor, interface, building the application

If an →interface uses complex data types, such as →structured data types, the relevant Include statement for the data type is now inserted into the auto-generated H-file.
This makes it possible to use the interface in →vendor blocks without having to insert the Include statement for the data type into the H-file yourself.

In order for an existing project to be affected by this change, you need to clean the existing project. By cleaning, the H-file with the Include statement is created again.
Mind the following: If you build and load the application onto the PLC after cleaning, the changed code will be loaded onto the PLC. In this case, however, it is not to be expected that the change within the H-file affects the execution of the application.

60061

Safety-relevant applications, system blocks

The following blocks of the system library Standard are supported when using a version ≥ 3.23.0 that is qualified for developing safety-relevant applications and/or libraries:

  • IAND block

  • IOR block

These blocks are not supported for previous versions.

More information:

60072, part 1

Safety-relevant applications, system blocks

The SIZEOF block of the system library Standard is supported when using a version ≥ 3.23.0 that is qualified for developing safety-relevant applications and/or libraries.
This block is not supported for previous versions.

More information:

Moreover, the SIZEOF block has been revised as follows:

  1. In the current version, the size of the returned memory (in byte) is determined by the data type of the block input IN. In previous versions, the size has been determined by the transferred element (for instance, the connected variable or the connected literal). As a consequence, the block is now returning the same value for connected Boolean variables and Boolean literals.
    Here the different behavior:

    • In previous versions, a different value might have been returned for connected Boolean variables and Boolean literals.
      The possibly different returned value has been caused by this different behavior in the previous versions:

      1. If a BOOL literal has been connected to the block input, the returned memory has depended on the used compiler.

      2. If a BOOL variable has been connected to the block input, the returned memory has depended on the used platform.

    • In the current version, the returned memory for Boolean elements always depends on the used platform – no matter whether a BOOL literal or a BOOL variable is connected to the block input. Usually, the value 1 is returned for a Boolean element. But observe that a different value might be returned when using a PLC based on the vxWorks platform. The block description " SIZEOF block " contains an example of the block usage with a Boolean literal.

  2. The SIZEOF block has also been restricted in its usage. See ID "60072" (part 2) for more information.

60072, part 2

System blocks

The following blocks have been restricted in their usage:

  • SIZEOF block

  • MEMCMP block

  • MEMCPY block

  • MEMSET block

Instances of function blocks with a →generic data type (such as ANY) cannot be used as inputs of these blocks anymore. If you do it anyway, there will be a linking error when building the application.
This restriction has been introduced in order to avoid an unexpected or possibly unnoticed faulty execution of applications using these blocks. In previous versions, the respective block returned an incorrect result that has been caused by considering too few bytes for the block functionality.

As a consequence of the restriction, the following system blocks cannot be used as block input of the above-mentioned system blocks: LIMITER_O, LIMITER_U, FORCEMRK, MAX_HOLD and MIN_HOLD
Observe that the restriction also applies to any vendor blocks that have been declared with a generic data type.

60335

Application navigator, global variables

The IDE provides an easier method to declare an external variable (VAR_EXTERNAL) in the FBD-editor so that it is not necessary to know the name and data type of the basic global variable anymore. Just drag the global variables that are displayed under the folder Resource-Global Variables within the application navigator into the FBD-editor. Mind the following difference:

  • If the target of the dragging action is the list of the declared variables, the external variables are automatically declared in the POU.

  • If the target of the dragging action is the drawing field, value fields are additionally created in the POU (one value field is created per variable).

If the POU already contains an external variable with the same name, the IDE updates the respective external variable according to the specifications of the global variable.

See " Declaring external variables by dragging and dropping global variables into POUs " for details.

60586

Building the application, SDK API

A suboptimal definition of the values for true and false has been improved: The defines LC__EL__true and LC__EL__false in the file lc3tdiectypes.h have been revised (this file is included in the SDK API of logi.CAD 3/logi.RTS). This does not change anything in the generated code, but it may change the binary code because the compiler might generate more efficient code due to the change.
As a consequence, you might get fewer warnings during the compile/link process. Observe that these reported warnings depend on the used platform toolkit for the PLC.

New features relating to the runtime system and target systems

ID

Component

New feature



none

Fixed problems in logi.CAD 3 version 3.23.0

ID

Component

Fixed problem

56591

LD-editor

A ladder diagram cannot be saved under a different name.
Fix: A ladder diagram can 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.

59209

Data types, building the application

A change in the automatically generated C/H file for a data type is not checked.
Fix: The automatically generated C/H file for a data type is now checked when building an application. If these files have been changed, the message Fingerprints do not match for POU "name". Expected "number1" but was "number2". – This message is reported as error in the build report for safety-relevant applications and is also valid for data types.
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.

59222

Build log

Resizing of the build log does not work as expected.
Fix: When resizing of the build log, the content of the view is adapted to the new size.
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.

59237

Licensing

A wrong license may be used, although the configuration variable -Dlc3.cm.serial is set correctly.
Fix: Now the local CodeMeter license whose serial number is specified by the configuration variable -Dlc3.cm.serial is used.
Scenario for problem: By using the configuration variable -Dlc3.cm.serial, you can specify a serial number of a local CodeMeter license so that exactly this license is used for the IDE. However, the specified CodeMeter license may not have been used if several local CodeMeter licenses were plugged into the computer.

59264

Creating custom libraries

A PDF file within a library cannot be opened.
Fix: A PDF file within a library can 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.

59268

LD-editor

The LD-editor for an LD-object already locked by a different user is not opened in a read-only mode.
Fix: The problem does not occur for LD-objects anymore.
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.

59272

LD-editor

An expression for an input for a function block cannot be entered as expected.
Note: The user documentation has been updated. It is possible to enter variables or literals but it is not possible to enter expressions, such as AND(varBool, true).
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.

59356

Application navigator, global-object

An exception might occur when a global-object is renamed in the application navigator.
Fix: The exception does not occur for the following scenario anymore.
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

59755

ST-editor

A changed physical address in a global-object might not be correctly considered for the C-code.
Fix: The change of the physical address in the global-object is 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.

59816

Test framework

The test coverage is not calculated correctly due to an empty line after the statement.
Fix: The test coverage for the following scenario is calculated correctly.
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.

59863

Test framework

The test coverage for assignments with array elements may not match the expectations.
Fix: The IDE documentation has been enhanced to include the corresponding information that full test coverage is displayed only if a test for access to an invalid array index has been executed.
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.

59900

Test framework

Comments within the ST-editor may be considered for the representation of the test coverage.
Fix: The comments after statements are no longer considered for the representation of the test coverage, as expected.
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.

60029

Application navigator, global-object

The re-dragging of the global-object within the application navigator causes an exception.
Fix: This exception does not occur any longer.
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.

60109

Validating an application, building the application

Vendor blocks or other library elements with the suppressWarning statement cannot be used within the application.
Fix: Vendor blocks or library elements with the suppressWarning statement can be used within the application. Note that when the library element included in the installed library is opened, rule violations are reported even if the warnings for rule violations were suppressed with the suppressWarning statement. However, these warnings for rule violations do not prevent the library item from being 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.

60370

IDE Documentation

The article "The structure of the needed H-file" in the English IDE documentation contains German text.
Fix: The English IDE documentation has been corrected so that the article is provided in English.
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.

60374

IDE Documentation

The article "Showing/hiding not connected in-/outputs" contains wrong information.
Fix: The article has been corrected. Additional information has been added to make the description clearer.
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.

60453

Building the application

Building an application might lead to linker warnings.
Fix: The problem does not occur anymore.
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.

60690

Test framework

A test with a typed literal for an initial value is not executed correctly.
Fix: The problem does not occur any longer. Therefore, executing a test with a typed literal for an initial value is possible.
Scenario for problem: If a test contains a typed literal for an initial value (e.g. INT#12 or 16#0000 for WORD), the test is not executed correctly. Instead, this message is displayed: [ ERROR ] An error occurred while processing finish: "Init row for variable 'name' specifies 'typed_value' but 'value' was used for the actual initialization."

60852

Test framework

An exception is caused when executing a test if the POU is located in a namespace.
Fix: The exception does not occur for the following scenario anymore.
Scenario for problem: An exception is caused for a POU in a namespace when executing its test. In this case, this message is displayed:

Incomplete data acquisition (one or more variables do not exist in the PLC). (Error code: 0x10303 (66307).)

Changes affecting the code generation

The following changes in logi.CAD 3 version 3.23.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

Changed determination of the memory size for the SIZEOF block: new determination by the data type of the input IN, formerly: determination by the transferred element

V3.23.0

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

Restricted usage for the SIZEOF block, MEMCMP block, MEMCPY block and MEMSET block

V3.23.0

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

Improvement of a suboptimal definition of the values for true and false; This does not change the generated code but it is possible that a different binary code is generated.

V3.23.0

See ID "60586" 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.23.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

59175

Teaming up to create applications, vendor blocks

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.

59213

"Instances" view, vendor blocks

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.

59774

Building the application

Changed applications for PTK GCC 10.2.x may fail to build.
Scenario for problem: Building the changed application with platform toolkits that use GCC 10.2.x may fail with the following message:

ninja: error: FindFirstFileExA(c/:/prj/bur/saturn/runtime-spdesigner/counter1/src-gen): The filename, directory name, or volume label syntax is incorrect.

Additional information: The problem occurs only if the platform toolkit does not contain the forceRebuild setting or the setting is set to FALSE.
Workaround: Clean the project before building the changed application

60255

FBD-editor, "Problems" view

The quick fix to resolve errors in the"Problems" view may not work.
Scenario for problem: The context menu for messages in the Problems view may contain the command Quick Fix to perform a quick correction of the problem. In this case, a quick fix is not available:

  1. You are inserting the call for an ST function block into an FBD-editor.

  2. You insert a new input into the ST function block.
    Result: The call is highlighted as a warning. The warning in the Problems view contains the disabled command Quick Fix.

Workaround: none existing

60268

Test framework

A test suite with a name that is too long cannot be exported to Excel.
Scenario for problem: By using the export wizard, it is possible to export a test suite to Excel. However, if the name of at least one testcase is longer than 30 characters, this export is not possible. In this case, the following messages are displayed in a dialog:

'Exporting test suite to Excel' has encountered a problem.
An internal error occurred during: 'Exporting test suite to Excel'
Cannot invoke 'org.osgi.framework.BundleContext.getBundle()' because the return value of 'com.logicals.lc3.api.common.BundleInformation.getBundleContext()' is null

Workaround: Shorten the name of the test suite.

60703

Validating the application

Syntax errors might be caused when using the content assist to suppress warnings for rule violations.
Scenario for problem: The IDE documentation contains information to use the content assist when trying to suppress the warning for a rule violation (based on a specified example in the documentation). But when doing this, an error about an unexpected character is caused for the following 2 rules:

  • Namespaces of language elements must match the identifier of the parent namespace folder.

  • Namespace folders need a unique identifier.

Workaround: none existing

60726

IDE

The changed file association is ignored for opening a data type from a library configuration.
Scenario for problem: The user preferences allow to change file associations for data types. However, if you delete the Editor for data types association assigned to the data type .iecst, the graphical enum-editor continues to be opened when opening a data type from a library configuration.
Workaround: none available

60771

Migration

The migration of constants may cause an error in the target project.
Scenario for problem: If you migrate a project of the predecessor product and an FBD-editor contains a value field with the constant "1.0E-6", the graphical FBD-editor cannot be opened for the migrated object with the value field. The reason for this is a syntax error as the value field contains the wrong value _1.0E-6.
Workaround: Correct the error in the textual FBD-editor and save the change.

60776

LD-editor

No emphasis is displayed when reconnecting existing link elements within the LD-editor.
Scenario for problem: The possible logic elements (e.g. contacts and coils) should be emphasized when reconnecting existing link elements to indicate that you can reconnect the link element to one of these logic elements. However, this emphasis is not displayed within the LD-editor.
Workaround: none existing

60783

Access rights

A dialog for saving the changes is displayed by mistake.
Scenario for problem: If you change the content of an FBD-editor without saving yet, then disable the access rights for the group Application and save the change in the FBD-editor despite the disabled features (by using the button Save all), you receive the correct information that the content cannot be saved due to the missing permissions for the access control, but that it can be saved under a different name. If you select No here to not save the content, a dialog will be displayed by mistake offering to save the content of the FBD-editor, not to save the content or to cancel the saving action itself.
Additional information: The same problem may occur if you use a version with team server function.
Workaround: Click on Do not save in the dialog that is opened by mistake to close the FBD-editor and not save the changes.

60825

Interface editor

The preview of the interface editor is not updated correctly when undoing the creation of a value field.
Scenario for problem: When you create a value field within the interface editor (such value fields are also known as internal value fields), it seems that it is not possible to undo this creation. In fact, the created value field is deleted but the preview of the interface editor continues to display the value field. When selecting this value field in the preview, error messages are displayed within the error log.
Workaround: Save the interface editor, close and re-open it.

60829

Interface editor

It may not be possible to undo the creation of a comment field within the interface editor.
Scenario for problem: If you create a comment field within the interface editor and cancel entering the text in the comment field by pressing the ESC-key, it is not possible to undo this creation.
Workaround: Delete the created comment field within the interface editor.

60833

Interface editor

The deletion of elements within the interface editor may need to be undone twice.
Scenario for problem: If you delete a value field, a comment field, or the instance name within the interface editor, and then want to undo this deletion, the deleted element is not restored. You must execute the undo action one more time for the deleted element to be restored.
Workaround: Execute the undo action two times in total.

60996

Application navigator

Renaming a program instance may also change the name of the PLC-object.
Scenario for problem: If you rename a program instance in the application navigator (by pressing the F2-key), the name of the PLC-object (i.e. the .iecplc file) will be changed as well.
Workaround: none existing

61082

Access control

It is possible to delete resources without the appropriate access control rights when using the quick access search bar.
Scenario for problem: Without the access right Delete application objects, it is not possible to delete an object. However, when using the quick access search bar to delete an object, either an exception is caused or the object is actually deleted.
In the case of the exception, a dialog with the text com.logicals.common.accesscontrol.NoPermissionException is displayed.
Workaround: none existing

61094

Opening help

The local help is not opened for the PLCopen blocks.
Scenario for problem: When pressing the F1-key for a PLCopen block that has been selected in the editor, the HTML help is not opened for this block although the block description is included in the HTML files.
Workaround: Open the HTML-files by selecting Help Contents in the menu Help or go to the online help. Search for the relevant block description of the PLCopen block within the opened HTML files or within the online help.

61158

Access control

It is possible to open the project settings without the appropriate access control rights when using the quick access search bar.
Scenario for problem: Without the access right Edit project settings, it is not possible to open the project settings. However, when using the quick access search bar to open the project settings, the settings are actually opened.
Workaround: none existing

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

This section was last updated on: 2023-12-13

For issues discovered after the release of logi.CAD 3 version 3.23.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.23.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

60476

The order of 2 illustrations in an article of the IDE documentation is wrong.
Scenario for problem: The article "Inserting a call of a block or value field into existing lines" in the IDE documentation contains 2 illustrations in the last section that are in the wrong order.
Workaround: none existing

61086

It is possible to rename resources without the appropriate access control rights when using the quick access search bar.
Scenario for problem: Without the access right Rename application objects, it is not possible to rename an object. However, when using the quick access search bar to rename an object, either an exception is caused or the object is actually renamed.
In the case of the exception, a dialog with the text com.logicals.common.accesscontrol.NoPermissionException is displayed.
Workaround: none existing

61162

The access control configuration of one project with the deactivated feature "Edit access control configuration" can be manipulated after copying files from a different project with activated feature.
Scenario for problem: Without the access right Edit access control configuration, it is not possible to configure the access rights for the project. However, after copying the files for the access control incl. the files for its artifact identity from a different project with the enabled feature Edit access control configuration, it is again possible to configure the access rights for the first project. Reason: Both projects are using the access control configuration of the second project.
Workaround: none existing

61171

The "Team Monitor" view does not determine the status changes on the team server at the expected interval.
Scenario for problem: The upper list under Changed on master of the Team Monitor view shows which changes of the project are available on the team server. If the local files differ from the status of the master, this view should be updated automatically every 30 seconds. However, the list is not updated but it remains empty.
Workaround: Refresh the list yourself by selecting Refresh in the context menu for the list or by pressing the F5-key.

61175

It is possible to turn a folder into a namespace folder and vice versa without the appropriate access control rights to edit the application logic.
Scenario for problem: Without the access right Edit application logic, it is not possible to edit the application logic. However, it is possible to:

  • turn a folder into a namespace folder by selecting Assign Namespace in the context menu for a folder within the application navigator.

  • remove the namespace assignment and namespaces for objects by selecting Unassign Namespace in the context menu for a namespace folder within the application navigator.

Workaround: none existing

61179

An exception is caused when selecting the command "Access Rights..." in the application navigator.
Scenario for problem: When selecting the command Access Rights... for the folder Project blocks in the application navigator, an exception is caused.
Workaround: Use the command Access Rights... in the menu Project or in the context menu of the project (displayed in the project explorer).

61183

It is possible to assign a USING instruction for accessing a namespace folder and delete this instruction without the appropriate access control rights to edit the application logic.
Scenario for problem: Without the access right Edit application logic, it is not possible to edit the application logic. However, it is possible to:

  • assign a USING instruction for accessing the objects of a different namespace folder existing in the application navigator.

  • delete such a USING instruction in the application navigator.

Workaround: none existing

61187

The artifact identity is not created/updated when turning a folder into a namespace folder or assigning a USING instruction for accessing a namespace folder.
Scenario 1 for problem: The file with the artifact identity is not created, if you turn a folder into a namespace folder by selecting Assign Namespace in the context menu for a folder within the application navigator.
Scenario 2 for problem: If there is a file with the artifact identity (see "Workaround") and you assign a USING instruction for accessing a different namespace folder, the file with the artifact identity is not updated.
Additional information: The problems only occur, if you are using the feature "artifact identity". The missing/outdated file with the artifact identity is not reported to the user. The problems become only obvious if the user tries to execute an actions with the namespace folder (e.g. moving the namespace folder is not possible).
Workaround after any action regarding a namespace folder: Locate the file .iecproperties in the namespace folder. Observe that this file is hidden in the project explorer and application navigator by default. Therefore, uncheck the filter for .* resource to display the file in the project explorer. Then open the file .iecproperties in a text editor of the IDE, make a minimal change (e.g. add a blank) and save the change in order to create/update the artifact identity.

61191

In case of the deactivated feature "Edit application logic", the file for the artifact identity is not created when saving an already changed editor under a different name.
Scenario for problem: If you have changed the application logic in an editor and then the feature Edit application logic is deactivated, it is not possible to save the editor containing the changed application logic anymore. However, you are able to save the changed application logic under a different name. But if you do so, a message informs you that the file with the artifact identity has not been found.
Additional information: The problem only occurs, if you are using the feature "artifact identity".
Workaround: Temporarily activate the feature "Edit application logic" again and save the editor with the different name in order to create the missing file for the artifact identity.

61203

An exception might be caused when importing an existing access rights configuration.
Scenario for problem: If a project is closed in the workspace and an existing access rights configuration is imported into an opened project, an exception is caused. In this case, the text java.util.NoSuchElementException: No value present is displayed in the error log.
Workaround: none existing

61395

An exception is caused when creating a project, if the IDE was started with enabled access control and with the -noSplash option.
Scenario for problem: If you are using logi.CAD 3 with access control enabled, start logi.CAD 3 with the -noSplash option and create a project, an exception is caused and the project is not created correctly. In this case the following message is displayed: java.lang.NullPointerException: Cannot invoke "String.toUpperCase(java.util.Locale)" because "userName" is null
Workaround: none existing

62166

The online help, local HTML help, and PDF files might not contain the complete list of blocks with internal error diagnostics.
Scenario for Problem: The article "Execution control: EN, ENO" contains a list of blocks with internal error diagnostics. This list might not be complete because blocks after the TO_TOD block might be missing. These missing blocks might be:

  • TO_UDINT block

  • TO_UINT block

  • TO_ULINT block

  • TO_USINT block

  • TO_WORD block

  • UDP_Close block

  • UDP_Open block

  • UDP_Receive block

  • UDP_Send block

Additional information: The problem affects the online help prior to October 10th, 2023 but also local HTML helps and PDF files created for this release and/or previous releases.
Workaround (possible after October 10th, 2023): Go to the online help article https://help.logicals.com/lco3docu/latest/user-documentation/en/referenzdokumentation/anwendung-erstellen/anwendung-im-st-editor-erstellen/ausfuehrungssteuerung-en-enoimages/images/icons/linkext7.gif in the online help and change to the appropriate version. The article contains the complete list.

62735

A STRING variable cannot be changed in the dialog.
Scenario for problem: If a STRING variable is declared and you open the dialog for changing the name, data type and initial value of the declared variable (e.g. by double-clicking onto the variable in the list of declared variables), there is no entry for data type in the dialog. Therefore, it is not immediately possible to change the STRING variable. This is because the OK button is not available due to the missing data type.
Workaround: In the dialog, enter the data type STRING including the necessary string length, e.g. STRING[80]). Alternatives: Click onto the field Initial value of the STRING variable once, use the command Edit initial value provided within the context menu or press Ctrl+I.

62748

The list of the declared variables might still display the changed data type although the change for the data type has been undone.
Scenario for problem: If you drag a variable into the drawing field (e.g. from the list of the declared variables), change the data type of this variable and you undo this change, the list of the declared variables still displays the changed data type. The dialog for the variable shows the correct (i.e. the original) data type.
Additional information: The same problem occurs, if you drag a global variable from the application navigator into the FBD-editor that contains an external variable with the same name but a different data type. Here the data type of the external variable is automatically changed. If you undo the dragging, the list of the declared variables still displays the changed data type.
Workaround: Save the POU, close and re-open it to display the correct data type in the list.

62759

Dragging and dropping a global variable with a physical address onto the POU within the application navigator creates a faulty external variable.
Scenario for problem: The error in the POU occurs when a variable with a physical address is dragged and dropped from the global-object into a FBD-POU within the application navigator. When you open the FBD-POU in the textual FBD-editor, you will see that an external variable with a physical address (as indicated by the keyword "AT") has been created by mistake.
Workaround: Remove the physical address from the file in the textual FBD-editor.

62764

Information are not transferred to the external variable, if a global variable is dragged into the FBD-editor.
Scenario for problem: If you drag a global variable from the application navigator into the FBD-editor that contains an external variable with the same name but a different data type, the data type of the global variable is correctly transferred to the external variable. However, other information of the global variable, such as the comment or the description, are not transferred to the external variable as this should be the case according to the IDE documentation.
Workaround: none existing

62769

Deleting a global-object causes the PLC-object (containing a reference) to be highlighted as faulty.
Scenario for problem: When you drag a global-object from below the folder Global variables onto the resource Resource-Global Variables, the PLC-object is enhanced by the necessary reference INCLUDE_GLOBALS. If you then delete the global-object under Global variables, the reference in Resource-Global variables is not removed. As a result, the entire PLC-object is highlighted as faulty in the application navigator.
Workaround: Delete the reference INCLUDE_GLOBALS in the PLC-object and save the change.

62839

Special characters within OLT fields are not evaluated as expected when debugging an application.
Scenario for problem: When debugging an application, if you enter special characters, such as umlauts or texts with several lines, using the three-character combination (starting with the dollar sign ($) and followed by 2 hexadecimal digits), the entry is not evaluated as the expected character.
Examples: The entry $0a is not evaluated as a new line. The entry f$FCr is not evaluated as "für".
Additional information: The field Initial value for a STRING variable displays this three-character combination in the list of the declared variables.
Workaround 1: Enter the desired special character directly in the field for the OLT-field by using the keyboard, several lines can be added by pressing Shift + Enter.
Workaround 2: Stop the debugging, and correct the initial value of the variable within the FBD-editor so that it contains the desired special character. Save the changes, create the application and load it onto the PLC.

62893

When pasting a value field with a variable for an existing FBD-element, the IDE documentation differs from the implementation.
Scenario for problem: The IDE documentation describes the behavior differently than it is actually implemented.
Described is:

If you paste a value field with a variable but there is already a different FBD-element with the name of the variable, the pasted value field is highlighted as faulty.
Example: You paste a value field with the variable Motor1. As there is already a connector named Motor1, the pasted value field Motor1 is highlighted as faulty.

In reality, the existing FBD-element is highlighted as faulty, namely the connector Motor1.
Workaround: none available

63454

Overlapping lines prevent the clear determination of the connected FBD-elements.
Scenario for problem: With automatic line routing, it is possible that lines from/to different FBD-elements might overlap so you cannot determine which FBD-elements are connected to each other based on the logic.

images/download/attachments/525370444/63454_Problem-version-1-modificationdate-1700125026972-api-v2.png
Workaround: Have the lines routed in a way so that they do not overlap. To do this, move one or several of the FBD-elements. Or create a connection point on a line and move this connection point by pressing and holding the Alt-key.

106944

The initial value of declared variables might not be changed.
Scenario for problem: If a variable is declared based on a structured data type, it is not possible to enter or change the initial value for this variable by clicking on the Initial value field in the list of the declared variables. It is also not possible to enter or change the initial value by using the command Edit Initial Value or Ctrl+I.
Workaround: Open the dialog to change the name, data type and initial value of the declared variable (e.g. by double-clicking on the list of the declared variables) and enter or change the initial value in this dialog.

106952

The application cannot be built if the characters * / are contained in a property field in FBD.
Scenario for problem: The application cannot be built if the characters * / are contained in a property field in FBD. 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.
An error occurred during compiling or linking the code image (error code: 1).

Workaround: Do not use the characters * / in the string literal on the right side of the assignment operator ":=".

106958

The application cannot be built if the characters */ are contained in a property field in ST.
Scenario for problem: The application cannot be built if the characters */ are contained in a property statement in ST. 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.
An error occurred during compiling or linking the code image (error code: 1).

Workaround: Do not use the characters */ in the string literal on the right side of the assignment operator ":=".

107041

A global-object can be renamed to an invalid name in the application navigator.
Scenario for problem: It is possible to rename a global-object in the application navigator so that the name contains an invalid character (e.g. umlauts) or corresponds to an already used name if the name uses upper/lower case letters differently. As a result, the renamed global-object is correctly reported as faulty.
Additional information: The IDE prevents the creation of a global-object if the name contains an invalid character or corresponds to an already used name (regardless of the use of upper/lower case letters in the name).
Workaround: Rename the faulty global-object so that the object has a unique name (observe that a different use of upper/lower case letters does not make the name unique) and it is also a valid IEC-identifier.

107075

The call of a block can be enlarged, although this should not be possible.
Scenario for problem: If the setting Fixed Size is checked within the interface editor, it is not possible to make a call of the block larger or smaller according to the IDE documentation. In reality, you can enlarge the call if you adjust the size of several FBD-elements in one go by using the commands Layout and Same Size. Reducing the size is not possible in this way, as mentioned in the IDE documentation.
Workaround: none existing

107232

The call of a function block in a value field is incorrectly highlighted as safe logic.
Scenario for problem: If you enter the call of a function block in a value field, the value field is incorrectly displayed with a shade of yellow. Actually, the value field should be displayed with the same background color as the call of the function block itself is displayed.
Example: When entering RS1 in a value field, the value field is incorrectly displayed with a yellow background color while the graphical element for the function block call of RS1 is correctly displayed with a blue background color.
Additional information: The problem is relevant in particular if you are using a version that has been qualified for the developing safety-relevant applications. There, safe logic is highlighted with shades of yellow.
Workaround: none existing

107327

The global-variables-editor might not display the expected icon for some variables.
Scenario for problem: The IDE documentation for the global-variables-editor contains the information that the icon images/download/thumbnails/414778154/VarUserDT-version-1-modificationdate-1534238223509-api-v22.png is displayed for global variables with a user-defined data type. However, it also possible that a different icon is incorrectly displayed, if the variable is declared on the basis of one of the following data types:

  • data type with named values (enums)

  • directly derived data type

This means that the icon images/download/thumbnails/414778154/VarUserDT-version-1-modificationdate-1534238223509-api-v22.png or images/download/thumbnails/413893074/VarGlobal-version-1-modificationdate-1533808466516-api-v2.png is displayed for such variables in the global-variables-editor. But only the icon images/download/thumbnails/414778154/VarUserDT-version-1-modificationdate-1534238223509-api-v22.png should be used for this.
Workaround: none existing

107379

The IDE documentation differs from the implementation in a special case for replacing a block call.
Scenario for problem: The IDE documentation describes special cases when replacing a block call. Example 1 in the section "Behavior when replacing: Instance name is not used" shows that:

  1. the access to a variable of the original block is not automatically updated to the name of the new block.
    The implementation and IDE documentation match here.

  2. the access is highlighted as faulty.
    The implementation and IDE documentation do not match here: Actually, the access is not highlighted as faulty. The reason for this is that the variable of the original block is no longer deleted automatically, as this has been the case in previous versions.

Here is the illustration from the IDE documentation in which the value field with the access SR1.Q1 became faulty after a block SR has been replaced by a block TON:
images/download/thumbnails/413893345/ReplaceBlockInstanceName1c-version-1-modificationdate-1533816454291-api-v2.png
However, this value field will not be highlighted as faulty.
Additional information: The English IDE documentation contains a 2nd image for the example 1 that does not illustrate the replacement from SR by TON, but it repeatedly displays the 1st image with the block SR. The German IDE documentation contains the correct image of the replacement.
Workaround: none existing

107391

It might not be possible to build the application due to a called method.
Scenario for problem: If a method of a function block is called and this call is done using a global array function block instance, no errors are reported for the ST syntax. Nevertheless, the application cannot be built. 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.
An error occurred during compiling or linking the code image (error code: 1).

After the attempt to build the application, the messages are displayed in the Problems view. Here are the messages for the customer scenario in which the problem occurred:

'LC_VD_GAUC_TESTARRAYGLOBALVAR' undeclared (first use in this function)
expected expression before 'LC_TD_FunctionBlock_APPLICATIONCOREx2EFB_TESTFB'
expected expression before 'LC_TD_FunctionBlock_APPLICATIONCOREx2EFB_TESTFB'
implicit declaration of function 'LC_GV_ACCESS_ARRAY'; did you mean 'LC_GV_ACCESS_FB'? [-Werror=implicit-function-declaration]

Workaround: none existing

107403

Moving/copying a subfolder into a namespace folder does not update the namespace for the included objects.
Scenario for problem: If you use a namespace folder, the IDE is updating the namespace during actions in the application navigator. This update takes place when moving/copying objects into a namespace folder, but not when moving/copying a subfolder with objects into a namespace folder. After the move/copy action for the subfolder, deviations are reported because the namespace in the objects of the subfolder and the namespace folder do not match.
Workaround: Only move or copy objects into a namespace folder, but not subfolders.

107419

Objects in nested namespace folders do not have a nested namespace.
Scenario for problem: If you create a namespace folder as a subfolder in an existing namespace folder, the objects in the subfolder are only declared in the namespace of this subfolder. However, the expectation is that the objects are declared in a nested namespace, as nested namespaces for ST-objects and FBD-objects are possible according to the IDE documentation and the IDE-documentation for the namespace folders does not contain any information whether nested namespaces are possible for nested folders.
Example: The namespace folder NS1 contains the subfolder NS2 that is also a namespace folder. The objects in the namespace folder NS2 are declared in the namespace NS2. However, the expectation is that the objects are declared in the nested namespace NS1.NS2.
Workaround: none existing

107430

Undoing/Redoing the delete action for all sections does not work as expected.
Scenario for problem: When you delete all sections in the global-variables-editor, but then you undo and redo this delete action, the sections are not deleted as expected.
Workaround: Save and reopen the global-variables-editor. Now the sections are deleted as expected.

107660

Information about particular DiagCode is not included in the HTML help for 3 PLCopen blocks.
Scenario for problem: Information on certain states (= DiagCode) is missing in the HTML help for the following PLCopen blocks:

  • SF_EDM block: The information about C410, C420, C430, C450, C460 is missing. For C010, C020, C070 and C080, the information is missing which states the other EDMs must have.

  • SF_TwoHandControlTypeII block: The information about C010 and C020 is missing.

  • SF_TwoHandControlTypeIII module: The information about C010 and C020 is missing.

Additional information: The information is not included in the HTML help for V3.23.0 and V3.23.1. However, it was added to the online help as of V3.23.1 in the middle of November.
Workaround: If the online-help for V3.23.1 is available: Open this online-help and search for the relevant block description of the PLCopen block.

108185


Wrong C-code is generated, if you call a function block instance declared as an in-out variable. Subsequently, it is possible that memory on the PLC is overwritten.
Scenario for problem: If you call a function block instance that has been declared as an in-out variable (= VAR_IN_OUT) as illustrated in the following example, the application can be built. However, wrong C-code is generated. This might cause the problem that memory on the PLC is overwritten.

Example
FUNCTION_BLOCK MyFBwithIO
VAR_IN_OUT
iMyFB1 : MyFB1; (* The function block 'myFB1' is used as type for the function block instance declared as in-out variable. *)
END_VAR
iMyFB1(); (* Here the function block instance is called. *)
END_FUNCTION_BLOCK
 
FUNCTION_BLOCK MyFB1
...
END_FUNCTION_BLOCK

Workaround 1: Do not declare a function block instance as an in-out variable.
Workaround 2: Use the upcoming logi.CAD 3 version 3.23.2 or version 3.24.0 where the problem will be fixed.

Checksum for components of logi.CAD 3 version 3.23.0

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

Component

Version

Checksum

Description

logi.CAD 3 IDE

version 3.23.0

---


system library Standard


version 3.5.0


---