Release notes for version

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

  • 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".

Enum-Editor (53763)

The graphical enum-editor to be used to edit and create enums (= data types with named values) has been disabled in logi.CAD 3 version 3.19.0 due to known bugs. These bugs have been fixed in version 3.20.0. So the graphical enum-editor has been activated again.
As a consequence, you are able to use the enum-editor to edit and create enums.

General information for runtime system and target systems

About t he →runtime system :

If you are using logi.CAD 3 version 3.20.0, install and use the version 5 .16.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.20.0

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

images/s/b2ic8e/9012/1ca6q62/_/images/icons/emoticons/warning.svg Unfortunately due to some internal circumstances, logi.cals was not able to create or update all corresponding description of the feature in the "IDE documentation". The IDE documentation will be correspondingly enhanced and/or updated in the next versions.
Please excuse any inconvenience caused by the missing feature documentation.

ID

Component

New feature

54176

Application navigator

The folder Project blocks in the application navigator lists POUs as well as data types. Now a data type element contains an additional piece of information after the name of the data type. This piece of information indicates the type of the data type:

  • (base-type), such as (BOOL): directly derived data type

  • (DTNV:base-type): data type with named values (also identified as enums)

  • (ARRAY): ARRAY data type

  • (STRUCT): structured data type

53807

Creating custom libraries

Library elements, which use temporary variables and which are defined as DEPLOY:=INTERFACE or DEPLOY:=OBJECT, can be used now.

53755

ST-object with enums

If an ST-object contains more than one declared language element (e.g. several enums), the ST-editor will be opened instead of the enum-editor. If you want to use the enum editor for modifying an enum, it is best to create only one language element in such objects.

53584

Global-variables-editor, FBD-editor

A new line in a description or a comment for an element is stored as a different code regarding the enum-editor and the global-variables-editor or FBD-editor respectively. Details: "Which code is required for a newline in a description or comment?"

53534

List of declared variables

The character ' is now supported for a description and comment of a variable declared in a →graphical editor.

53094

Application navigator

It is possible now to assign global-objects to a program, a resource or a configuration in the application navigator. Furthermore it is possible to unassign a global variable object from a resource or a configuration.

Details: See under "Creating and using a global-object".

52441

Command line interfaces
(
headless tools )

The tool for the automated creating of logi.CAD 3 projects can now also be used to modify or delete files in existing projects. See "Automated creating or modifying of projects" for details.

52049

FBD-editor

In the FBD-editor, safe logic is now highlighted with shades of yellow so that you can visually distinguish safe logic from non-safe logic when developing safety-related applications. As usual, illegal constructs are highlighted as errors in the FBD-editor.
See "Creating application in FBD-editor" for details. This description also lists the standard blocks which are supported for developing safety-relevant applications.

Observe:

  • The highlighting of the safe logic is already provided in the current logi.CAD 3 version but – when developing safety-relevant applications – you must use a logi.CAD 3 version that is qualified for this purpose.

  • The current logi.CAD 3 version does not necessarily have to be a logi.CAD 3 version that is qualified for this purpose.
    See the documentation "Safety instructions on working with the IDE" which logi.CAD 3 version is qualified for developing safety-relevant applications and which safety instructions must be observed.

51648

Migration wizard

Now the migration wizard allows the replacement of target platforms during migration. For this replacement, a file in JSON format is necessary. Usually, this JSON file is provided by the system integrator who provides the migration wizard as well.

See "Migration wizard" for details on the migration wizard.

49012

FBD-editor

The initial width of OLT-fields is now the same as the initial width of value fields.

53949

Using custom libraries

It is possible now to create a copy of a library element which is defined as DEPLOY:=SOURCE.

53898

Migration wizard

Now the migration wizard allows to change the names of inputs and outputs during the the replacement of deprecated blocks.

53960

FBD-editor

The FBD editor now provides a Quick-fix for feedback loops. The Quick-fix creates a value field within the selected faulty line. This value field can then be placed by the user.

54508

List of declared variables

The content of the customDataJson property of a variable is now validated. It is checked if it is a valid JSON string.

New features relating to the runtime system and target systems

ID

Component

New feature



none

Fixed problems in logi.CAD 3 version 3.20.0

ID

Component

Fixed problem

52718

Enum-editor

The enum-editor displays an error icon for an incorrect namespace.
Fix: The enum-editor displays now the correct icon, that is the warning icon, for the following scenario.
Note: Moreover, a different problem for the enum-editor has been fixed here. Previously, only one message was displayed in the enum-editor, even if there have been multiple error messages or warnings. Now all messages are displayed in the enum-editor.
Scenario for problem: If you create a data type with named values (= enums) in a namespace folder and the namespace of the data type does not match the namespace folder name, a corresponding warning is displayed in the Problems view. When you double-click this message, the enum-editor opens. In this enum-editor, an error icon is displayed instead of the warning icon.
Additional information: See ID "52723" for the problem due to the symbol in an unexpected place.

52723

Enum-editor

The enum editor indicates a warning about the wrong namespace in the "Value" column.
Fix: Now the enum editor displays the messages for warnings or errors that relate to the entire enum below the list with the named elements.
Scenario for problem: If you create a data type with named values (= enums) in a namespace folder and the namespace of the data type does not match the namespace folder name, a corresponding warning is displayed in the Problems view. When you double-click this message, the enum-editor opens. In this enum editor, the problem is indicated by an icon in the Value column. However, the problem does not apply to a single value, but to the entire enum.
Additional information: See ID "52718" for the problem due to the wrong symbol.

53168

Application navigator, project explorer

The application navigator respectively the project explorer display the test files for a library with tested POU elements.
Fix: The application navigator respectively the project explorer do not display the test files for a library anymore, provided that a new version of the library has been created with the current logi.CAD 3 version and this version of the library has been installed.
Scenario for problem: A library that contains tested POU elements also contains the test files (such as test report or log files). These test files are displayed in the application navigator/project explorer, but this is not as expected.

53510

Headless tools

2 command line interfaces (also known as headless tools) return a misleading error.
Fix: This errors is not displayed anymore.
Scenario for problem: When executing 2 headless tools, the error message An internal error occurred during "Building" is displayed – actually the message is displayed twice. However, the tool action completes with a success message and the action was actually executed as expected.
Additional information:

  • The problem occurs only in logi.CAD 3 variants with the test framework.

  • The messages are also displayed in the error log of logi.CAD 3 after logi.CAD 3 has been started after executing the tool action.

These headless tools are affected by the problem:

  • tool for automated builds of PLC applications

  • tool for automated rule checking (= automated model rule checker).

53514

Headless tools

The headless tool for the automated loading of an application onto the PLC reports a wrong code image fingerprint.
Fix:
The code image fingerprint is reported correctly.
Scenario for problem: When executing the tool for the automated loading of an application onto the PLC, messages inform about the code image fingerprint before and after loading. This fingerprint is specified with 00000000 for an application based on the ST-counter-template and for which the given ST-code has not been changed. This fingerprint is wrong.

53589

FBD-editor

Resizable blocks with internal value fields behave unexpectedly.
Fix: Inputs of resizable blocks with internal value fields are placed correctly. Warnings are no longer reported.
Scenario for problem 1: If a block interface contains value fields (also identified as internal value fields) and the block is resizeable, warnings are reported for the block when it is called in the FBD-editor. In this case, the message Changed interface: Variable name is located on a different position/orientation than it is displayed in the call for name is displayed for each input with an internal value field. The warnings are still displayed after the block interface has been updated.
Scenario for problem 2: If you resize the block to its maximum size, the inputs without the internal value fields are placed on the wrong position. Subsequently, the input names might overlap. Updating of the resized block interface does not work – the block size is even reset to the default size.

53596

Enum-editor

The enum-editor might display a message about an error even though the "base code" is error-free.
Fix: The problem according to the following scenario does not occur anymore.
Scenario for problem: If you use expressions with named values as initialization values in the enum-editor (see the following example with the base code as ST code), the enum-editor displays an error for this named value. The message for this is: Ambiguous identifier "name". Found in: POE1, POE2, ...
However, the Problems view does not report a similar error for the base code.
Additional information: The problem does only occur, if the start option lc3.expensive.enum.resolving.enable has been set with the value TRUE. By default, the value FALSE is defined.

Example of the problem (ST code)
TYPE
color2 : INT(red2 := 1, blue2 := 2, green := red2 + blue2) := red2 + blue2;
END_TYPE

53606

Workspace

Using a workspace with umlauts and importing a project into the workspace spams the error log with exceptions.
Fix: When using a workspace with umlauts, no exceptions occur.
Scenario for problem: The default path for a new workspace is a subfolder of the user folder for the operating system. If the user name contains umlauts or other special characters, the path for the workspace contains these umlauts or special characters as well. When importing a project into the workspace, several exceptions occur. In this case, the error log displays many messages FrameworkEvent ERROR

53615,
part 1

Enum-editor

An exception is caused when opening/saving an enum with a constant expression including a named value from a namespace as an initialization value.
Fix: The exception according to the following scenario is not caused anymore.
Scenario for problem: If you specify an expression as initialization value for an enum in the enum-editor and this expression consists of a named element of another enum from a namespace, an operator and a literal (e.g. colors.color3#red3*2, where colors is the namespace, color3 is the enum, red is the named element, * is the operator and 2 is the literal), an exception occurs. In this case, the following message is displayed in a dialog: Could not serialize ConstBinaryExpression via backtracking. – The Error log view also displays the following message: Unhandled event loop exception
If you enter this expression in the textual ST-editor for the enum, it is not possible to open the enum-editor for the enum. Again, an exception occurs. In this case, the message Unhandled event loop exception is displayed in the error log.

53615,
part 2

Application navigator

When creating a new program instance in the application navigator, an exception might be caused.
Fix: The exception according to the following scenario is not caused anymore.
Scenario for problem: It is possible to create a new program instance in the application navigator by dragging and dropping the program type from the folder Project blocks onto the task below the configuration and resource. However, if there is a global variable in the PLC-object and this global variable uses an initial value consisting of an enum in a namespace, an operator and a literal (see the following example), the program instance will not be created because an exception occurs. In this case, the following message is displayed in the error log: Unhandled event loop exception

Example for global variable in the PLC-object
RESOURCE local ON BuiltInPlc { ON_CHANNEL := LocalChannel }
VAR_GLOBAL
GVar1 : INT := NS1.Color#Red+3;
(* 'NS1' is the namespace, 'Color#Red' is the enum, '+3' is the operator and the literal. *)
END_VAR

53619

Global-object

Copying a global-object does not rename the contained GLOBALS section as expected.
Fix:
When copying a global-object the contained GLOBALS section is renamed.
Scenario for problem: When you copy an existing global-object, a dialog appears to enter a unique name. The new name is applied to the global-object itself but not to the GLOBALS section existing in the global-objects. Subsequently, an error is reported that the identifier is already declared. This message is only reported for the new global-object.
The graphical global-variables-editor (which is the default editor for a global-object) display the original name in the status bar. This editor provides no possibility to change the original name to the new name.

53650

Application navigator

Objects can be dragged into a read-only folder.
Fix: In the application navigator, it is not possible to drag objects into a read-only folder.
Scenario for problem: It is not possible to create new objects/folders in a read-only folder within the application navigator. However, it is possible to drag existing objects into the read-only folder.

53654

Application navigator

Objects can be deleted from a read-only folder.
Fix: Objects can not be deleted from a read-only folder.
Scenario for problem: It is not possible to create new objects/folders in a read-only folder within the application navigator. However, it is possible to delete existing objects from the read-only folder.

53664

Application navigator,
Namespace,
FBD-editor

Inserting a call of a block with the same name from another namespace via Drag&Drop is not possible.
Fix: Inserting a block with the same name is possible.
Scenario for problem: It is not possible to insert the call of a block in the FBD-editor by dragging the block from the project explorer or application navigator, if this block has the same name as the current FBD-object but it is located in a different namespace.
Additional information: The same name can be used for different objects if they are declared in different namespaces.

53669

TC6 XML import

The import of a TC6 XML file from a path with blanks is not successful.
Fix: The import for the following scenario is now successful.
Scenario for problem: Importing a project from a TC6 XML file fails, if the TC6 XML file is contained in a path with spaces or special characters.

53684
(53709

Building the application,
Safe-convert functions

The application cannot be built and loaded onto the PLC, if safe-convert functions with safe data types are used.
Fix: The application for the following scenario can be built and loaded onto the PLC.
Scenario for problem: If you use safe-convert functions in the application, for example the TO_SAFEBOOL block to convert a BOOL variable to a SAFEBOOL variable, the application cannot be built.
Additional information: The safe-convert functions and safe data types are included in the logi.CAD 3 version, but they are not yet ready for use in applications. Therefore do not use these blocks/data types in your application.

53685

Application navigator,
LD-objects

The application navigator displays unexpected sub-items for LD-objects.
Fix: The unexpected elements are no longer displayed.
Scenario for problem: When an LD-object is created, the application navigator displays this LD-object under the folder Project blocks. It is possible to expand the LD-object. In this case, an unexpected sub-item with the identifer 1 is displayed. Morover, 1 also contains sub-items with the identifier 2, 3 and 4. These displayed sub-elements are also not expected for an LD-object.

53689

Application navigator,
ST-interface

An ST-interface is not displayed in the application navigator.
Fix: The ST-interface is displayed in the application navigator.
Scenario for problem: If an ST-interface (object with extension .iecif is created in the application navigator, the object is created (as it is obvious in the project explorer) but it is not displayed in the application navigator.

53693

Application navigator,
Global-object

The application navigator allows you to create a global-object in the Project blocks folder. However, these objects are not displayed there.
Fix: It is not possible to create a global-object in the application navigator anymore.
Scenario for problem: In the application navigator, it is possible to create a global-object in the Project blocks folder. However, the global-object is not displayed there. Only when switching to the project explorer, it becomes evident that the global-object was created in the corresponding project folder.

53697


Application navigator,
PLC-object

The application navigator allows to unexpectedly drag the PLC-object or its sub-elements into another folder.
Fix: Dragging the PLC-object or its sub-elements into another folder is not possible any more.

Scenario for problem: In the application navigator, it is possible to drag the PLC-object or its sub-elements into another folder. This moving action has no visible impact on the application navigator. Only when switching to the project explorer, it becomes obvious that the PLC-object has been moved from its original position to the corresponding project folder. However, the user expectation is that it is not possible to move the PLC-object or its sub-elements in the application navigator.

53701

Application navigator

Copying/pasting of an object by dragging and dropping does not work as expected.
Fix: The copy uses the newly entered name.
Scenario for problem: You can copy and paste objects by holding the Ctrl-key while dragging the objects from the original location to the new location within the application navigator. At the new location, you must release the Ctrl-key. This copying and pasting is done by dragging and dropping. As there is already an object with the original name and in order to avoid a name conflict, a dialog is displayed to enter a unique name. Even when entering a new name for the copy, the copied object is still using the original name. As a consequence, errors are displayed that the identifier is already declared.

53765

TC6 XML import

An exception is caused when importing a TC6 XML file.
Fix: The following scenario does not cause an exception.
Scenario for problem: A project is imported from a TC6 XML file but this import causes an exception. The error log displays this message: Element Project-name does not exist

53803

ST-editor

Using reference in functions leads to inconsistent error reporting.
Fix: No error message is displayed for the following scenario.
Scenario for problem: In the following example the error message References to local variables are not allowed in functions/methods. "Var1" is a local variable is displayed. Whereas for the variable refToGlobal no error is reported.

Example
TYPE
MyType : STRUCT
Var1 : USINT;
END_STRUCT;
END_TYPE
 
FUNCTION myFunction
VAR_EXTERNAL
MyTypeI : MyType;
END_VAR
VAR
pointerVariable : REF_TO USINT;
pointerStructVariable : REF_TO MyType;
END_VAR
 
pointerVariable := REF(MyTypeI.Var1);
pointerStructVariable := REF(MyTypeI);
END_FUNCTION

53934

Enum-editor

In case of lc3.expensive.enum.resolving.enable, a syntax error might be inserted when changing enums in the enum-editor.
Fix: The problem according to the following scenario does not occur anymore because the ST-editor is opened when there are several enums in one object (see release note for ID "53755").
Scenario for problem: If you have defined 2 enums in one object (see the following example with the base code as ST code), the opened enum-editor for the 2nd complex enum error1 displays the error Unexpected character '.'. The column Value for the 2nd named value newVal displays error1.value + 1 instead of the specified code value + 1. If you change the enum (e.g. insert a comment) and save the change, the value error1.value + 1 will be applied and reported as an error.

Example of the problem (ST code)
TYPE
enum : int(value := 1); // simple enum type
error1 : int(value := 3, newVal := value + 1); // complex enum type
END_TYPE

Additional information: The problem does only occur, if

  • the start option lc3.expensive.enum.resolving.enable has been set with the value TRUE. By default, the value FALSE is defined.

  • a constant expression with operators is entered as a value. Example: value + 1

  • the value is expanded for unique addressing. In this case, the wrong separator . is inserted instead of the correct separator #. Referring to the example, error1 : int(value := 3, newVal := value + 1); becomes: error1 : int(value := 3, newVal := error1.value + 1;

53982

Project explorer

The project explorer might not update the selection to the object being edited.
Fix: The project explorer updates the selection to the object being edited, even if the folder with the object is collapsed.
Scenario for problem: In the case of the enabled button Link with Editor in the project explorer, the project explorer does not update the selection to the object being edited, when changing the active editor and the folder with the object is collapsed.

54218

"Instances" view

The fingerprint for the resource might change when a project is cleaned.
Fix: The fingerprint for the resource does not change anymore for the following scenario.
Scenario for problem: The Instances view displays a fingerprint for the resource. When a project is cleaned, it is expected that the same fingerprint is displayed after the cleaning has been finished. However, a different fingerprint is displayed after the cleaning of some projects.
Additional information: These projects contain 2 structured data types with the same name in different namespaces.

54043

FBD-editor

Not all attributes of a variable are transferred, when a variable is pasted into another FBD-editor.
Fix: All attributes are transferred correctly now.
Scenario for problem: When a value field containing a variable is copied to the clipboard and then this value field is pasted into another FBD-editor, the value field is inserted and the variable is added in the other FBD-editor. However, only the initial value of the variable has been transferred. All other attributes for the variables (e.g. comment, description) have not been transferred to the other FBS-editor.

53945

Creating projects, customer versions

A wrong product name is displayed in a customer version.
Fix: The product name is correct in the following scenario.
Scenario for problem: If you select the default project template in the start dialog of the project wizard, the project wizard displays another dialog to select the actual project template. The name of the project template also contains the product name that is not customized for the customer versions.

54277

FBD-editor

It is possible to create an external variable with an initial value.
Fix: It is not possible anymore to specify an initial value for an external variable.
Scenario for problem: If you specify an initial value in the dialog when declaring external variables, it is not possible to create the variable. Reason: External variables cannot be initialized.
However, if you open the dialog for a new variable, it is incorrectly possible to first enter the initialization value, then change the section to EXTERNAL and save this change. When saving the FBD-editor a message will indicate the problem.

54281

Interface editor

It's not possible to create internal value fields in the interface of functions or function blocks.
Fix:
The command Create Value Field won't be disabled anymore.
Scenario for problem: When you open the context menu on an input in the interface editor, the command Create Value Field will be disabled after a short moment.

54305

ST-editor

Breakpoints are not displayed in the ST-editor.
Fix: Breakpoints are displayed correctly.
Scenario for problem: When placing breakpoints in the ST-editor, the breakpoint icons are not visible.

Known problems in logi.CAD 3 version 3.20.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

52694

Migration wizard

The migration wizard does not export the POUs into the migrated project when logi.CAD 3 incl. the migration wizard is installed in a path with blanks.
Scenario for problem: When logi.CAD 3 incl. the migration wizard is installed in a path with blanks, the POUs are missing in the migrated logi.CAD 3 project. The migration wizard is not able to execute the required Perl tool.
Workaround: Install logi.CAD 3 incl. the migration wizard into a path without blanks. Start the migration anew.

53502

List of declared variables,
FBD-editor,
Validate the application

A variable cannot be renamed, when it uses an illegal data type that is reported as a warning by the validation.
Scenario for problem: The validation for the application provides a rule to report the usage of illegal data types. When this rule is activated (the default severity of the rule is "WARNING"), there are warnings when there are variables with the data type REAL or LREAL. The list of the declared variables also displays a warning icon for the variables.
Now when you are trying to rename such variables, this renaming action is not successful because:

  1. The dialog for changing the variable provides a disabled button OK and an error icon is displayed.

  2. An error icon with the message Invalid variable name is displayed when trying to rename the variable in the column Name provided in the list of the declared variables.

Additional information: The moving of a value field containing the variable with the illegal data type (without saving the change) has the effect that the validation is reset. If keeping the unsaved state for 2 minutes (or longer), it might become possible to rename the variable, even if the list of the declared variables displays the warning icon. But it has also been observed that the renaming action could still not be executed.
Workaround: Deactivate the corresponding rule or change the data type of the variable so that a legal data type is used.

53720

Global-variables-editor

The data type of a global variable cannot be changed to an illegal data type, if this data type would be reported as a warning by the validation.
Scenario for problem: The validation for the application provides a rule to report the usage of illegal data types. When this rule is activated (the default severity of the rule is "WARNING"), there are warnings when there are variables with the data type REAL or LREAL.
Subsequently, it is not possible in the global-variables-editor to create global variables that are based on one of these data types. An error icon with the message Invalid data type is displayed when you are trying to change the data type.

Workaround:

  1. Create a global variable with an allowed data type, for example INT.

  2. Save the change and close the global-variables-editor.

  3. Open the textual editor and correct the data type from INT to the appropriate data type, e.g. REAL.

  4. Save the change and close the textual editor.

  5. Open the global-variables-editor.
    Result: The variable is correctly displayed with a warning icon because it is declared with an illegal data type.

53941

Namespaces

It is not possible to use language elements with a same name from the global namespace, if a language element with the same name exists in the current namespace.
Scenario for problem: It is possible to insert the call of a block e.g. in the FBD-editor by dragging the block from the project explorer or application navigator. If this block is located in the global namespace and the current block is located in a declared namespace in which there is also a block with the same name as the inserted block, then logi.CAD 3 changes the call of the block from the global namespace to the one from the same namespace.
Example: The block TestMotor1 exists in the global namespace, in the namespace NS1 the blocks Testing and TestMotor1 exist. If you insert TestMotor1 from the global namespace into the Testing block, TestMotor1 from the NS1 namespace will be used instead.
Additional information:

  • This change is only noticeable after you have saved, closed and reopened the FBD-editor.

  • At present, the user documentation contains a corresponding restriction that it is not possible to use language elements with the same name from the global namespace.

Workaround (recommendation if you are developing safety-related applications/libraries): Do not use namespaces. Or define strict naming conventions/guidelines, if you want to use namespaces.

54458

Using custom libraries

A library element with a public variable is highlighted as faulty in a library when DEPLOY:=INTERFACE or DEPLOY:=OBJECT is used. Furthermore the public variable cannot be used.
Scenario for problem: If a library element, with a public variable, which is defined as DEPLOY:=INTERFACE or DEPLOY:=OBJECT, then this library element is marked as faulty when you open the library element.
Workaround: Do not use a public variable or use DEPLOY:=SOURCE when generating the library.

54533

Test framework

The menu option for creating a test suite is available even though the test framework is deacivated.
Workaround: none existing

54541

Enum-editor

An exception occurs when entering an invalid init value in the graphical enum-editor.
Scenario for problem: If you enter "1x" as initial value for a data type with named values with type INT and you close the graphical enum-editor by clicking "OK" an exception occurs.
Workaround: none existing

54537

ST-object

An exception occurs when an interface is initialized with the value null.
Scenario for problem: If you create a new ST-object with the following code, an exception occurs when the ST-object is saved.

Example of the problem (ST code)
Interface I_Test
END_INTERFACE
 
FUNCTION_BLOCK FB_Test
VAR
iitest : I_Test := NULL;
END_VAR
END_FUNCTION_BLOCK

Workaround: Do not specify the value null as this is the default anyway.

54874

Performance

Windows 10 Defender significantly slows down the IDE, the reason being Windows 10 Defender scanning the JAR files.
Scenario for problem: If you experience any performance issues when using the new version of logi.CAD 3, a likely cause is the Windows 10 Defender. Windows 10 Defender is scanning the JAR files included in logi.CAD 3 and significantly slows logi.CAD 3.
Additional information: logi.CAD 3 is based on the 2022-03 release of the Eclipse Foundation. The problem regarding the Windows 10 Defender has been reported as an Eclipse issue under: https://bugs.eclipse.org/bugs/show_bug.cgi?id=548443images/images/icons/linkext7.gif
Workaround: Add the logi.CAD 3 root folder to Windows 10 Defender's exclusion list:
1. Open Windows 10 settings.
2. Search for Virus & threat protection and open it.
3. Now click on Manage settings under Virus & threat protection settings section.
4. Now click Add or remove exclusions under Exclusions section.
5. Now click Add an exclusion then select Folder.
6. Point to logi.CAD 3 Root directory and press Select Folder.

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

This section was last updated on: 2023-03-16

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

54564

The quick fix for feedback loops in the FBD editor may render the block unusable under certain circumstances.
Scenario for problem: Using the quick fix for feedback loops on lines that contain a connection point may render the block unusable.
Workaround: None.

54812

VAR_CONFIG sections do not impact the application fingerprint.
Scenario for problem: If you add, modify or delete a VAR_CONFIG section, the application fingerprint does not change.

54826

The user documentation contains broken links to download packages.
Scenario for problem: The user documentation contains links e.g. to download logi.CAD 3. When following these links, an error 404 Page not found is displayed.
Workaround: Contact the support team of logi.cals and ask for the download package.

54848

An error might be reported when double-clicking a file included in a standard library.
Scenario for problem: When double-clicking a text file or an HTML-file that is included in a standard library (e.g. the text file V3.2.11.txt that contains information on the library), the file is opened but an error is reported.
A dialog displays this message:

An error has occurred. See error log for more details.
class com.logicals.library.libref.LibraryFileStorage cannot be cast to class org.eclipse.core.resources.IFile (com.logicals.library.libref.LibraryFileStorage is in unnamed module of loader org.eclipse.osgi.internal.loader.EquinoxClassLoader @3b4ef59f; org.eclipse.core.resources.IFile is in unnamed module of loader org.eclipse.osgi.internal.loader.EquinoxClassLoader @53d30d23)

Moreover, the error log displays the following message: Problems occurred when invoking code from plug-in: "org.eclipse.ui.workbench".
Additional information: The problem occurred in a logi.CAD 3 project that has been created when using the test framework.
Workaround: none existing

54928

The variable section LOCAL is provided twice when declaring a variable by using the dialog.
Scenario for problem: When you select the command New Variable... in the list of declared variables, a dialog opens providing the variable section for the new variable. In this list, LOCAL is provided twice. Both items seem to work the same.
Workaround: none existing

54980

An exception occurs when validating a resource containing a missing program type.
Scenario for problem: When you validate the elements of a resource and the specified program type does not exist, the validation causes an exception. In this case, the following message is displayed in a dialog and the error log:

An internal error occurred during: "Validating object".

Workaround: Specify an existing program type before validating the resource.

55005

At first, it is not possible to enter a string length with 2 or more digits in the enum-editor.
Scenario for problem: When you declare an enum in the enum-editor and you select the data type STRING, an input field to enter the string length is added. When navigating into this field by using the Tab-key, it is possible to enter a string length with 1 digit. However, more digits are not accepted. Example: It is not possible to enter a string length of 80.
Workaround: Use the up/down buttons (beside of the input field) to increase the string length. Or enter a string length with one digit (e.g. 8), then click right of the first digit 8 and enter the second digit 0.

55031

Include is missing from CustomImplementation block if a data type is only used as a return value of a function.
Scenario for problem: If a user data type is only used as return value of a CustomImplementation function, the generated H-file for the data type is not included in the resulting H-file for the function itself.
Subsequently, the application cannot be built because of this missing include.
Workaround: Use the data type also in the function itself. Example: Declare a variable based on this data type.

55047

The "Values of Variables" view reports a data type mismatch when a variable with the same name but a different data type is declared in a different POU.
Scenario for problem: The Values of Variables view reports a data type mismatch by mistake for the following scenario:

  • Create 2 function blocks in an application. Declare an input in one function block, with e.g. the name IN1 and the data type INT.

  • Build and load the application onto the PLC.

  • Insert the input IN1 of the first function block in the Values of Variables view by dragging it from the Instances view into the Values of Variables view.
    Result: The correct value is displayed for this input.

  • In the other POU, declare an input with the same name but with a different data type, e.g. name IN1 and data type DINT. Save the changes.
    Result: The "Values of Variables" view reports the error The data type in the saved application does not match the data type on the PLC.

Workaround: Delete the input IN1 from the "Values of Variables" view and insert it again.

55092

An exception occurs when opening the enum editor for an invalid STRING or CHAR literal.
Scenario for problem: For an enum with an invalid STRING or CHAR literal (see the following example), it is not possible to open the enum editor from within the application navigator. Instead, an exception occurs. In this case, the message Unhandled event loop exception is displayed in the error log.

Example for ST-code
TYPE
test : STRING[80] (Name1:='Test1', Name2:='Test2') := 'Test-Änderung';
(* The reason for the invalid literal here is the special character, i.e. the umlaut "Ä". *)
END_TYPE

Additional information:

  • The Error view reports the problem using the message Invalid STRING or CHAR literal. Double-clicking on this message also fails to open the enum editor and the exception condition also occurs.

  • The problem also occurs, when the literal itself has been defined correctly but the additional pieces of information (e.g. comment, description) contains the special character.

Workaround: Open the ST-editor and correct the literal so that it is valid.

Beispiel für ST-Code
TYPE
test : STRING[80] (Name1:='Test1', Name2:='Test2') := 'Test-Aenderung';
END_TYPE

Alternative: Enter the appropriate combinations of 3 characters, starting with the dollar sign ($) and followed by 2 hex digits for the special character. Example: 'Test-$C4derung' – More details about these combinations can be found in the logi.CAD 3 user documentation, under "→Character string literal" and "Examples for character string literals".

55153

The "Build Log" view might not display all GUI-components.
Scenario for problem: When logi.CAD 3 has been started with a default size, the button Show in editor under the field Compiler and Linker Output in the Build Log view is not visible. Likewise, the content of Compiler and Linker Output is not visible.
Workaround: Make the Build Log view larger, e.g. maximize the view.

55244

The "Build" Log view shows Success even though the application was not built.
Scenario for problem: The Build Log view displays the information Success to indicate that the application was successfully built, although the following message is displayed in the error log and in a dialog:

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

The message in the error log and dialog takes precedence over what is displayed in the Build Log view.
Additional information: The problem occurs e.g. with Controllinos/Arduinos if the generation of the metadata has failed.
Workaround: none existing

55248

The block interface for a generated file incorrectly shows an input named END_VARND_FUNCTION_BLOCK.
Scenario for problem: When inserting a block call, the interface shows an input END_VARND_FUNCTION_BLOCK at the lowest position. However, this input has not been declared.
Additional information: The file for the block contains comments that had Unicode characters in them. The file was generated based on an Excel file – in the process, the Unicode characters were included.
Workaround so that only the actual inputs are visiable in the block interface: Delete the Unicode characters from the file. Save the changes and insert the block call again.

55270

The usage of a dereferenced variable is not displayed as expected.
Scenario for problem: The list of declared variables displays Unused for a dereferenced variable even though it is entered in one or more value fields.
Additional information: Accessing the content of reference variables is known as dereferencing. This is done by the character ^ that follows the name of the reference variable. Example: REFVAR1^
Workaround: none existing

55306

The rule "C-blocks must only be contained in libraries" does not recognize all forbidden usages of a vendor block.
Scenario for problem: The rule C-blocks must only be contained in libraries checks whether the used C-blocks (such as vendor blocks) are contained in libraries. The validation does indeed report the call of a vendor block that is located in the current project itself. However, if the same vendor block is used e.g. in statements only, this usage is not reported. It is possible that other usages of the vendor block are neither reported (e.g. the call of a vendor block in a value field).
Workaround: none existing

55333

A compiler warning might occur when building an application where REAL is converted to another data type.
Scenario for problem: When an application converts REAL to another data type (e.g. by calling the TO_UDINT block with a connected REAL variable), the following compiler warning might be displayed when building the application:

warning: implicit conversion from 'float' to 'double' to match other operand of binary expression [-Wdouble-promotion]

Additional information:

  1. The problem occurs only, if the compiler option -Wdouble-promotion has been activated by the system integrator. The problem does not occur for the built-in PLC.

  2. The compiler warning is listed in the Build Log view, under Compiler and Linker Output.

Workaround: none existing

55348

Global variables in a global-object with namespace cannot be used.
Scenario for problem: If you declare global variables in a global-object and the declaration is done in a declared namespace, it is not possible to use these global variables in a program type, although the reference to the GLOBALS section has been correctly inserted in the program type using {INCLUDE_GLOBALS ....

Example of code in global-object
NAMESPACE NS1
GLOBALS myGV1
VAR_GLOBAL
GVar1 : INT := 3;
END_VAR
END_GLOBALS
END_NAMESPACE
Example of code in program type
PROGRAM MyPT1
{ INCLUDE_GLOBALS NS1.myGV1}
NS1.GVar1 := 5; (* This assignment is highlighted as faulty. *)
GVar1 := 5; (* This assignment is also highlighted as faulty. *)
END_PROGRAM

Workaround: Declare the global variable in the global namespace – that is, without the NAMESPACE NS1 and END_NAMESPACE statements in the global-object.

Example of code in global-object (workaround)
GLOBALS myGV1
VAR_GLOBAL
GVar1 : INT := 3;
END_VAR
END_GLOBALS
Example of code in program type (workaround)
PROGRAM MyPT1
{ INCLUDE_GLOBALS myGV1}
GVar1 := 5;
END_PROGRAM

54972

The logic in opened editors might become faulty after termination and restart of IDE.
Scenario for problem: When one or several FBD-editors are opened and logi.CAD 3 is closed by using the task manager, a restarted logi.CAD 3 might highlight the contents of the opened FBD-editor as faulty.
Workaround: Close all FBD-editors and reopen them.

54984

An exception might occur when repeatedly opening a project in the test framework variant.
Scenario for problem: If you use a logi.CAD 3 variant with the test framework and open and close a project in it, an exception might occur. In this case, a dialog with these messages appears:

Multiple problems have occurred
See 'Details' for more information
Library specification generation problem

Here the details:

Problem occurred during generating libdoc for 'com.logicals.lc3.testframework.robot.keywords.Keywords' library located at '<path>\<project>'.
Following exception has been thrown:
Exception: Importing test library 'com.logicals.lc3.testframework.robot.keywords.Keywords' failed: ModuleNotFoundError: No module named 'com'

Additional information: The problem was observed when the project was closed and opened several times in a row.
Workaround: none existing

55183

The block description for the TP block might contain wrong information.
Scenario for problem: The block description for the TP block contains this information in the online-help up to V3.16.0:

Output ET returns the expired time since turning input IN on, until the value entered at PT is reached and as long as the input IN is turned on.

However, the correct information is:

Output ET returns the expired time since turning input IN on, until the value entered at PT is reached.

Additional information:

  • The documentation files (in PDF/HTML format) included in logi.CAD 3 versions up to and including V3.20.0 also contain the wrong information for the TP block.

  • The illustration in the block description shows the correct behavior of the TP block. This illustration is correct in all versions of the online help and in the delivered documentation files.

Workaround: none existing

55190

The block description for the blocks ROL, ROR, SHL and SHR does not contain any information about a deviation from the IEC-standard for negative values of the input N.
Scenario for problem: The IDE documentation does not contain any information about this block behavior:
If a negative value is connected to the N input of the ROL, ROR, SHL and SHR blocks, an opposite rotation or shift is performed. Example: For SHR, no bitwise shift to the right but a bitwise shift to the left is performed.
This behavior is a deviation from the IEC-standard. The "Table 30 - Bit shift functions" of the standard defines that values < 0 for input N are an error. The IDE-documentation also contains no information that the blocks deviate from the IEC-standard in this respect.
Workaround: none existing

55194

The block description for the Compare blocks does not contain information that bitstring values are treated like unsigned integer values.
Scenario for problem: The IDE documentation does not contain any information about the behavior that the compare functions treat bitstring values (= ANY_BIT values} like unsigned integer values.
This behavior is consistent with this specification from the IEC standard:

Comparisons of bit string data shall be made bitwise from the leftmost to the rightmost bit, and shorter bit strings shall be considered to be filled on the left with zeros when compared to longer bit strings; that is, comparison of bit string variables shall have the same result as comparison of unsigned integer variables.

The behavior applies to the following blocks:

  • EQ

  • GE

  • GT

  • LE

  • LT

  • NE

Workaround: none existing

55198

The block description for some conversion blocks does not contain information about a 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_CHAR – with input data type BYTE

  • 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

Workaround: none existing

55202

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.
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 result 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 33 (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.
Workaround: none existing

55214


The block descriptions for certain numeric and time functions do not contain the information about an existing IEC standard deviation.
Scenario for problem: The block descriptions for certain blocks do not contain the information that the block behavior is not IEC standard compliant in the case of an overflow. The information is missing for the following blocks:

  • Numeric functions:

    • ADD block

    • DIV block

    • EXPT block

    • MOD block

    • MUL block

    • SUB block

  • Time functions:

    • ADD_TIME block

    • CONCAT_DATE_TOD block

    • MUL_TIME block

    • SUB_DT_DT block

    • SUB_TIME block

Additional information:

  • For these blocks, invalid connections are not checked by logi.CAD 3. Therefore, enter code in your application to detect invalid connections (e.g. IF-statements). See the IDE-documentation (under "IEC-blocks for the application" for information what the consequences of an invalid connection might be.

  • The information is missing in the block descriptions up to logi.CAD 3 version 3.20.0.

Workaround: none existing

55218

The block description for the block DIV does not contain any information about the truncation behavior for integers.
Scenario for problem: The IDE documentation for the block DIV} does not contain any information that the result of the division of integers is an integer of the same type with truncation toward zero (there is no rounding).
Examples:

  • The division 7/3 returns the value{{2}}. The decimal part 0,333... is truncated

  • The division (-7)/3 returns the value -2. The decimal part 0,333... is truncated

Workaround: none existing

55325

Double-clicking on a message might not position to the error location in the FBD-editor.
Scenario for problem: Double-clicking on a message does position to an error location in the FBD-editor. However, this might not work in the case of a faulty value field. The FBD-editor is opened but the error is not visible. In particular, this problem has been reported when double-clicking on this error message: Variable "name" is not accessible in this context.
Workaround: Use the keyboard shortcut Ctrl+. to go to the next error in the editor.

55377

It is not possible to build an application when value fields contain specific operations.
Scenario for problem: If you enter an expression with an operator in a value field, it is possible that the application cannot be built. No errors are reported before the application is built. Afterwards, messages similar to this one appear in the Problems view: implicit declaration of function 'lcfu_iec61131_EXPT__INT__INL'; did you mean ''lcfu_iec61131__TO_INT__INT'? -Werror=implicit-function-declaration
Additional information: The problematic operators are the operators for which there are equivalent system blocks. But only the following operators are affected:

Operator

The equivalent system block

**

EXPT block

/

DIV block

OR

OR block

XOR

XOR block

NOT

NOT block

MOD

MOD block

&

AND block

AND

AND block

Thus, the problem occurs, when an expression such as 2**3 is entered in the value field.
Workaround (if sensible): Use other expressions that return the same value.

55394

Navigating between several errors within the FBD-editor is not possible as known from the ST-editor.
Scenario for problem: In order to quickly navigate between several errors within the ST-editor, the commands Next Annotation and Previous Annotation or the keyboard shortcuts Ctrl+. and Ctrl+, can be used. The commands are provided in menu Navigate, if an ST-editor is active and contains errors. The commands and keyboard shortcuts are not provided for the FBD-editor.
Workaround: Double-click the messages listed in the Problems view.

55399

A connector and its continuation are of the resolved type fatal_error.
Scenario for problem: When saving an FBD-object and problems while resolving a type have occurred, fatal_error has been entered as the resolved type for a connector and its continuations. This problem has been detected after a customer project has been migrated from the predecessor product to logi.CAD 3. However, the migration is not the crucial factor but the saving of the FBD-object is.
Workaround: none existing

55404

Performance issues when removing an already installed library.
Scenario for problem: The removing of an already installed library for a project might take longer than expected. No user actions are accepted in the meantime. There have been reports that logi.CAD 3 is busy up to 10 minutes after unchecking an installed library in the properties of the project (under the group LibraryLibraries).
Workaround: none existing

55408

The "Build History" view displays umlauts wrong.
Scenario for problem: The field Compiler and Linker Output of the Build History view displays umlauts wrong in case the language is German.
Workaround: none existing

55412

A migrated value field shrinks to a maximum size.
Scenario for problem: The maximum size of a value field differs between the predecessor product and the current product logi.CAD 3. During the migration to a logi.CAD 3 project, value fields might be created that are taller than logi.CAD 3 allows them to be created in the graphical FBD-editor. When you resize such a value field, it is automatically resized to the maximum size in logi.CAD 3.
Workaround: none existing

55456

The description of the model rule configuration does not contain some details for specific changes.
Scenario for problem: It is possible the 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.

Workaround:

  1. Instead of changing the project.rule file: Change the basic configuration of the rules. i.e. the files included in the corresponding sub-folder of plugins of the logi.CAD 3 installation folder.

  2. In addition to changing the value overridable to false: Specify only one value under allowedValues.

55464

The HTML-report does not contain any notice, if the application could not be built due to errors in the application.
Scenario for problem: The HTML-report that is generated when the application is built (also called build report) does not contain any indication, when it was not possible to build the application due to errors in the application (e.g. syntax errors). The section with the errors and warnings displays the text None suggesting that the application was built. The messages in the Problems view and in the error log take precedence.
Additional information: In the variant of logi.CAD 3 that is used to develop safety-relevant applications, the Build Log view contains a link to an HTML-report containing information about the built application and its components (e.g. fingerprint of the elements of the application). This HTML-report (also called build report) must be checked when building safety-related applications – as specified in the documentation "Safety instructions on working with the IDE ".
Workaround: When building safety-related applications and checking the contents of the build report, also check the contents of the Problems and Error log views. If errors are listed there, fix them and repeat all workflow phases as specified in the documentation "Safety instructions on working with the IDE" and required by the change of the application. In the case that there are only warnings and/or infos in the views, contact the system integrator and clarify the necessary course of events.

55486

Vendor functions are not listed in the MRC-report when validating the application.
Scenario for problem: The generated MRC-report (a report with the file extension .mrclog) contains information about the executed static code analysis. In particular, the names and the fingerprints of each application element is listed in this MRC-report. However, a vendor function (= a vendor block declared as function) is not listed in the MRC-report.
Workaround: none existing

55620

The network elements might not be evaluated correctly with regard to their processing order if the network contains only function blocks with feedback loops.
Scenario for problem: If a network contains only function blocks with feedback loops (see the following figure), the processing order is not displayed as expected according to the description in the IDE documentation.
The following illustration shows the expected execution order with the numbers (in the black circle) in contrast to the assigned execution order with the numbers (in the red rectangle):
images/download/attachments/504366435/ExutionOrder_Problem-version-1-modificationdate-1678201434670-api-v2.png

Additional information: logi.CAD 3 should behave like this (according to the description in the IDE documentation):

  • As not one of the statements within the network can be evaluated, there is a feedback loop.

  • First logi.CAD 3 tries to reduce the sum of the statements to be evaluated: logi.CAD 3 will ignore all statements which follow the feedback loop and do not contain any other feedback loop. This leaves the 2 left function blocks that are supplied with a value from one and two respectively.

  • As there are no assignments in these remaining statements, logi.CAD 3 selects the call of the function block being most top/left. This is the function block that is supplied with a value from one. logi.CAD 3 considers the outputs of this call as evaluated until the call can actually be evaluated.
    Now this function block and the function block right next to it can be evaluated.

  • As several calls can be evaluated, logi.CAD 3 determines the graphical position of these calls to each other: The call most top/left is evaluated (top is applied before left). This is the function block which is highlighted with the number 1 in the illustration. Thus, this function block is evaluated as the 1st function block.
    Now only the leftmost function block can be evaluated.

  • logi.CAD 3 evaluates the leftmost function block, because it is the only element that can be evaluated. This function block is highlighted with the number 2 in the illustration. Thus, this function block is evaluated as the 2nd function block.
    Now no further element is evaluable. Details:

    • The rightmost function block highlighted with the number 3 (in the red rectangle) in the illustration cannot be evaluated because its input y has not been evaluated yet.

    • The lower left function block that is supplied with a value from two cannot be evaluated because there is a feedback loop.

  • logi.CAD 3 tries again to reduce the sum of instructions to be evaluated. For this purpose, the instructions that follow the feedback loop and that do not contain another feedback loop are ignored again. This leaves the lower function block that is supplied with a value from two.

  • logi.CAD 3 considers the outputs of this call as evaluated until the call can actually be evaluated.
    Now this function block and the function block right next to it can be evaluated.
    According to the description in the IDE documentation, the function block right next to it should now be evaluated as the 3rd element – as highlighted with the number 3 (in the black circle) in the illustration. However, the rightmost function block is incorrectly evaluated as the 3rd element. This function block is highlighted with the number 3 (in the red rectangle) in the illustration.

Workaround: none existing

55624

It is not possible to build the application for an LD-program with function blocks and external variables.
Scenario for problem: When the application consists of an LD-program containing function blocks and external variables, it is not possible to build the application and/or load it onto the PLC. These errors 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: none existing

55653

Sporadic error might occur while building the application.
Scenario for problem: When building an application, it is possible that a sporadic error might occur. In this case, the following message is displayed in the error log:

Exception while dispatching event com.logicals.lc3.api.events.BinaryBuildEvent ...
null <block-name>

Additional Information: One effect of the sporadic error is that the button Show in editor is not available in the Build Log view.
Workaround: none existing

55624

It is not possible to build the application for an LD-program with function blocks and external variables.
Scenario for problem: When the application consists of an LD-program containing function blocks and external variables, it is not possible to build the application and/or load it onto the PLC. These errors 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: none existing

55653

Sporadic error might occur while building the application.
Scenario for problem: When building an application, it is possible that a sporadic error might occur. In this case, the following message is displayed in the error log:

Exception while dispatching event com.logicals.lc3.api.events.BinaryBuildEvent ...
null <block-name>

Additional Information: One effect of the sporadic error is that the button Show in editor is not available in the Build Log view.
Workaround: none existing

55672

Boolean line with an open end is not animated as expected.
Scenario for problem: By default, Boolean lines are animated within an FBD-editor with instance context as follows:

  • A thick, red line indicates the value TRUE.

  • A thick, dark-blue line indicates the value FALSE.

However, when the Boolean line with the value TRUE has an open end (see the following illustration), this line is not displayed with the color "red" as expected (according to the above-mentioned animation).
images/download/attachments/504366435/image-2023-02-02-16-44-59-486-version-1-modificationdate-1678201550343-api-v2.png
Workaround: none existing

55895

The EXPT block and the operator do not work as expected for large values. This is valid for the negative return values exceeding ≤ -2**32.
Scenario for problem: The EXPT block and the corresponding ST-operator ** do not work as expected in the case that the following values should be returned:

  • Wrong values are returned when a return value between -2**32 and -2**63 should be returned. In this case, the ENO output is not reset to FALSE but TRUE is returned. So unfortunately there is no pointer to this type of problem.
    Observe that such a return value can be calculated by different block inputs or operands respectively. Here are some samples how the block might be supplied with input values:

    IN1 (see: NOTE 1)

    IN2 (as the exponent)

    -1291

    3

    -74

    5

    -22

    7

    -11

    9

    -8

    11

    NOTE 1: The specified value for IN2 is the limit. This value and higher values will cause the above-mentioned problem.

  • Moreover, the calulation of -2**63 resets the ENO output to FALSE. This indicates that an error has occurred for the block. Actually, the correct result is returned.

Workaround: Avoid the usage of the EXPT block and the corresponding ST-operator to returns such values.

55921

The result of a DIV_TIME block might not be as expected.
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.
TIME#2999d23h59m51s808ms
Workaround, if you want to calculate precise values: Connect the input IN2 of the DIV_TIME block with a LREAL value.

55951

The EXPT block might return an incorrect result.
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.
Workaround: Avoid the usage of the EXPT block for the calculation 0**0.

55983

Importing the project allows copying the project into a workspace with a space.
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.
Workaround: Do not copy the project into the workspace – no matter whether the workspace contains a blank or not. Reason: This ensures that projects will not be deleted by mistake – if you have to delete the workspace e.g. due to troubleshooting instructions.

55996

The usage of REAL#-0.0 or LREAL#-0.0 might cause compiler warnings when building the application.
Scenario for problem: When REAL#-0.0 or LREAL#-0.0 is used in ST-code as typed literal, the cast LC_TD_REAL or LC_TD_LREAL is omitted in the automatically generated C-code and the literal in the C-code is always of type double (= LREAL).
This may lead to implicit casts in the C-code which in turn may lead to compiler warnings when building the application.

Example for ST-code
PROGRAM Program1
VAR
Var1, Var2 : REAL;
END_VAR
 
Var1 := LN(REAL#-1.0); // OK: The cast 'LC_TD_REAL' is not omitted in the C-code.
Var2 := LN(REAL#-0.0); // Not OK: The cast 'LC_TD_REAL' is omitted in the C-code.
END_PROGRAM

Additional information: Observe the additional problem with the ID "56121" that the usage of -0.0 might cause 0.0 in the C-code.
Workaround: Call the conversion block TO_REAL. Relating to the above example, this would result in the following ST-code:

Var2 := LN(TO_REAL(-0.0));

56077

Ctrl+Shift+R has no impact, if a test file or the file compile_result.txt has the focus.
Scenario for problem: The keyboard shortcut Ctrl+Shift+R can be used to quickly switch to a resource/file. The keyboard shortcut does not work, if a test file or the file compile_result.txt has the focus.
Workaround: Switch to a view (e.g. the project explorer) or an editor (e.g. the ST-editor). Then press Ctrl+Shift+R to open the dialog to search for a resource or a file.

56105

An empty fingerprint is reported for a vendor block containing the statement extraIncludes.
Scenario for problem: When using a vendor block that contains the statement extraIncludes in the application, the build report contains the following message: The extra include "name" with checksum "" could not be verified – The message contains an empty fingerprint for the H-file that has been specified by the statement extraIncludes.
Additional information: This problem is in particular relevant when developing a safety-relevant application because the fingerprint of each application element listed in the build report must be checked. The empty fingerprint makes it impossible to continue with the workflow as specified in the document "Safety instructions on working with the IDE".
Workaround: Use the H-file that has been specified by the statement extraIncludes so that it is linked. Build the application anew so that a new build report is generated.

56113

A program in a namespace cannot be tested.
Scenario for problem: When testing a program declared in a namespace, the following message is displayed in the console: An error occurred while processing Head: 'NoneType' object has no attribute 'has_head_row_occurred' – The test is not executed and the test report does not contain a fingerprint for the program.
Additional Information: This issue is especially relevant when developing a security-sensitive application because the fingerprint of the program is missing from the test report. A missing fingerprint makes it impossible to continue with the workflow, as described in the English document "Safety instructions on working with the IDE."
Workaround (recommendation if you are developing safety-related applications/libraries): Do not use namespaces for programs. Run the test again so that the test report contains the fingerprint of the program.

56121

The -0.0 specification might become 0.0 in the C-code.
Scenario for problem: If -0.0 is entered in the ST-code, the - character may be missing in the automatically generated C-code.

Example for ST-code
PROGRAM Program1
VAR
Var1, Var2, Var3, Var4, Var5 : REAL;
END_VAR
 
Var1 := -0.0; // Result in C-code: (LC_TD_REAL)0.0 - Error: "-" is missing here.
Var2 := LN(-0.0); // Result in C-code: (LC_TD_REAL)0.0 - Error: "-" is missing here.
Var3 := REAL#-0.0; // Result in C-code: -0.0 - Here "-" is not missing, but the cast 'LC_TD_REAL' is missing; see ID "55996".
Var4 := LN(REAL#-0.0); // Result in C-code: -0.0 - Here "-" is not missing, but the cast 'LC_TD_REAL' is missing; see ID "55996".
Var5 := LN(TO_REAL(-0.0)); // Result in C-code: (LC_TD_REAL)0.0 - Error: "-" is missing here.
END_PROGRAM

Workaround: none existing

56342

The RTOS32 compiler reports an error in case of a specific division.
Scenario for problem: The RTOS32 compiler reports an error when the application contains a specific division (see the following ST-code).

Example for ST-code
PROGRAM Program1
DIV(DINT#-2_147_483_648, DINT#-1);
END_PROGRAM

When the application containing the ST-code is built, the compilers report the expected warning overflow in constant division, undefined behavior. But the RTOS32 compiler also reports an error divide or mod by zero. Other compilers do accept the code – only the mentioned warning is reported. Thus, the error on the division is only reported by the RTOS32 compiler.
Workaround when you are using the RTOS32 compiler: Avoid a division with the above-mentioned negative integers.

56417

The PLC or runtime system is terminated unexpectedly in case of a certain division.
Scenario for problem: In the case of the following division (see the following ST-code), the PLC or runtime system is 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 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

Workaround: Stop and restart the PLC or the runtime system, remove the error in the ST-code with the division and load the application anew onto the PLC.
If loading the application onto the PLC is not possible, you probably need to delete the RTSCode or RTSCode.dll file. See the troubleshooting article "PLC cannot be addressed. The runtime system is slow to respond or does not respond at all." for details on where to find this file.