Release notes for version

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

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.21.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.21.0

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

ID

Component

New feature

35704

FBD-editor

When creating an →external variable, the attributes of the global variable are transferred now.

49780

Teaming up to create applications

If different team members modify objects within the same project and independently from each other by using the Team Monitor view, it is possible that conflicts arise when modifying an object because there is a more recent version of the object on the server or the object has been deleted on the server.

New is that an additional decorator in the object icon informs that there is a more recent version on the server. The icon is displayed in the views with projects and resources.

If you download the server version of an object that you have modified without any lock (e.g. offline), logi.CAD 3 detects this conflict. The conflict is resolved as follows:

  1. logi.CAD 3 creates a backup of the local object.
    The automatically created object gets the prefix __BACKUP.

  2. logi.CAD 3 downloads the recent state of the object from the server.

Example: You have changed the FBD-object MyMotor but there is a more recent version on the server. If you select the command Download changes from server in the Team-Monitor view for the object, the backup file __BACKUP.MyMotor.iecfbd is created. The backup contains the local changes while the FBD-object MyMotor contains the state from the server.
If necessary, you can merge the changes from the backup file to the object of the server – by using "Copy & Paste" or the command Compare With and Each Other. Afterwards, you must delete the backup file yourself.

53769

TC6 XML export/import

It is now possible to export and import initialization values of variables and data types in PLCopen TC6 format. In addition, a deviation from the XML schema for initializations has been fixed.

54198

Custom data in editors

The ST-editor validates a JSON string that you define for a variable. Errors in the syntax are reported by the message Invalid JSON string.
This validation is also done in the global-variables-editor and in the enum-editor where you enter custom data as a JSON string.

Note: This validation is already provided starting with logi.CAD 3 version 3.19.0 onwards.

54230

FBD-editor

→Reference variables and →array nodes inherit now the color of the contained data type. The display affects →value fields , lines and connection points.
→Structured data types now use the color olive.

54432

Migration

When migrating ST-code from logi.CAD 3 to logi.CAD/32, calls of function blocks are also migrated. If these calls contain named inputs, their names are now converted to valid names, if necessary.

54443

Migration wizard

The migration wizard identifies referenced elements with the combination of name and UUID. If no element can be found for this combination, from now on the name alone is sufficient for identification if it is unique.

54569

Teaming up to create applications

The Team Monitor view now cyclically obtains the status of the resources, whether they are locked or not, from the team server. The view is updated according to this obtained status.

By default, the status is obtained every 30 seconds. If required, you can change this interval by using the logi.CAD 3 configuration variable lc3.git.lfs.update.cached.locks.intervall. The best practice is to use this configuration variable always together with lc3.git.lfs.connection.timeout (see ID "54580" for information on this configuration variable).

54602

Teaming up to create applications

When opening an editor for a resource from the Team Monitor view, the resource is automatically locked, if the resource is not locked by another user. If the resource cannot be locked, the editor is opened read-only.

54613

Teaming up to create applications

Objects that have been locked by another user can be unlocked by an administrator. However, this option should only be used in exceptional cases (for example, when the user who locked an object is absent for a longer time).

54624

Teaming up to create applications

After the status of the resources, whether they are locked or not, has been cyclically obtained from the team server (see ID "54569" for information on this feature). an already opened editor for a resource is refreshed, if the resource is locked by another user. This means that the editor changes to a read-only state.

If you want to save the content of the read-only editor, the message The file already exists and is locked by another user is displayed. In required, use the command Save As... in order to save the resource under a different name.

54754

Application navigator

In the application navigator, it is possible now to drag global variables into POUs which results in the creation of external variables.

54788

ST-editor,
editor for PLC-objects

logi.CAD 3 supports now partial hardware addresses, such as: %I*, %Q*, %M*

54834

Building the application for the PLC

The Build Log and Build History views provide the new button Show in editor to open the content of the file compile_result.txt in an editor.

55016

Teaming up to create applications

If you select the command Upload changes from server in the Team Monitor view for the object, the lock for the object is automatically removed.

55130

TC6 XML export/import

When a project is imported from a TC6 XML file, the created project now contains the correct library references to the system libraries of logi.CAD 3.

55142

TC6 XML export/import

When exporting and importing a TC6 XML file, PLC-objects of the project are now also considered to be able to export and import the configurations, resources, program instances, tasks and channels from these PLC-objects.

55253

IDE-documentation

The description of the f eatures as provided in version 3.20.0 has been enhanced and/or updated in the "IDE documentation" for the version 3.21.0. See " Release notes for version 3.20.0" for the list of these features .

54580,
54591

Teaming up to create applications

When opening an editor for a resource from the Team Monitor view, the status of the resource, whether it is locked or not, is obtained from the Team Server. If the resource is locked by another user, the editor is opened read-only.
The status concerning the lock is obtained when an existing resource is edited or when a new resource is created. Reason: The editor for this resource is automatically opened in both cases.

By default, logi.CAD 3 tries to establish the connection to the team server for 1000 ms, starting with the opening of the editor. If no connection can be established, it will be possible to edit the resource – even if it is locked by another user.
If required, you can change the timeout for establishing a connection by using the logi.CAD 3 configuration variable lc3.git.lfs.connection.timeout. Note that a higher timeout might delay the successful opening of the editor accordingly.

56009

ST-editor

logi.CAD 3 provides the new configuration variable lc3.var.access.default – it influences the visibility of internal variables and function block instances outside the current function block. See " Declaration of internal variables in ST " and " Declaration of function block instances in ST " for information about the optional keywords for visibility and how the configuration variable affects the default behavior.

By using the 2nd new configuration variable lc3.removeLocalVariablesFromIndexer you can increase the performance when saving editors. This configuration variable has an effect in particular if you have function blocks with private variables and private function block instances in your application.
With the value TRUE for this configuration variable, function blocks with private variables and private function block instances are not considered when updating the application. This application update is triggered automatically when the editor is saved.
Please observe that private variables and private function block instances are those elements declared with the PRIVATE keyword in the function block. If the default behavior is changed to PRIVATE, they are also those elements declared without a keyword for visibility.

New features relating to the runtime system and target systems

ID

Component

New feature



none

Fixed problems in logi.CAD 3 version 3.21.0

ID

Component

Fixed problem

27048

IDE documentation,
EXPT block

The EXPT block returns a wrong value under certain target systems in case of an invalid connection.
Note: The block description for the EXPT block contains a corresponding note to indicate this restriction for the platform "vxWorks x86".
Scenario for problem: In case of an invalid connection of the EXPT block with ANY_REAL values (see example), the block should return "Not-a-Number" (NaN). Moreover, the example checks the validity of the ANY_REAL value with the IS_VALID block because the IS_VALID block will return the value FALSE in case of "NaN". However, this is not the case for the platform "vxWorks x86".

Beispiel für ST-Code
FUNCTION_BLOCK ExampleExptInvalid2
VAR
resultRealInvalid : REAL;
END_VAR
resultRealInvalid:= EXPT(IN1 := REAL#-25.0, IN2 := REAL#0.5); (* For the built-in PLC, 'resultRealInvalid' evaluates to 'NaN' in the 'Values of Variables* view. This is not the case for vxWorks x86. *)
ASSERT(NOT IS_VALID(resultRealInvalid));
END_FUNCTION_BLOCK

41476

Migration

When migrating, the POU might become faulty and IDE might not respond anymore.
Fix: The problem when saving does not occur anymore.
Scenario for problem: After migrating an existing POU from logi.CAD/32 to logi.CAD 3, the POU will become faulty the first time when it is opened. When saving the POU, logi.CAD 3 might freeze up and not respond anymore. This might take up to 30 minutes.

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.
Fix: The migration works correctly even if logi.CAD 3 is installed in a path with spaces.
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 33 project. The migration wizard is not able to execute the required Perl tool.

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.
Fix: A variable can be renamed via the dialog for changing the variable, even if its data type would trigger a warning. Likewise, a variable can be renamed in the variable table even if its data type causes an error.
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.

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.
Fix: It is now possible to create a global variable with a data type that issues a warning when validated.
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.

54257

ST-editor

The ST Editor content assist does not provide a template for a local variables section.
Fix: The template for a section with local variables is available.
Scenario for problem: When "vl" is entered in an ST object on the correct location the template for a "VAR" section is not available in the content assist.

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.
Fix: The problem according to the following scenario does not occur anymore.
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.

54467

ST-editor

Incompatible structured datatypes are not reported.
Fix: A problem is reported in the Problems view for the following scenario.
Scenario for problem: If you create a new ST-object with the following code, no error is reported.

PROGRAM Program1
Var
v1 : ns1.MyTyp;
v2 : ns2.MyTyp;
END_VAR
 
v1 := v2;
END_PROGRAM
 
Namespace ns1
Type
MyTyp : Struct
m1 : int;
END_STRUCT;
END_TYPE
END_NAMESPACE
 
Namespace ns2
Type
MyTyp : Struct
m1 : int;
m2 : int;
END_STRUCT;
END_TYPE
END_NAMESPACE

54484

Debugging the application

Control flow debugging does not work if a workspace with space is used.
Fix: The control flow debugging works now if a workspace with a space is used.
Scenario for problem: If you use a workspace with a space, then the application does not suspend at any breakpoint.

54533

Test framework

The menu option for creating a test suite is available even though the test framework is deactivated.
Fix: This menu option is not available, if the test framework is deactivated.

54537

ST-object

An exception occurs when an interface is initialized with the value null.
Fix: The problem according to the following scenario does not occur anymore.
Scenario for problem: If you create a new ST-object with the following code, an exception occurs when the ST-object is saved.

Interface I_Test
END_INTERFACE
 
FUNCTION_BLOCK FB_Test
VAR
iitest : I_Test := NULL;
END_VAR
END_FUNCTION_BLOCK

54541

Enum-editor

An exception occurs when entering an invalid init value in the graphical enum-editor.
Fix: The problem according to the following scenario does not occur anymore.
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.

54564

FBD-editor

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

54812

PLC-object,
building the application

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

54826

IDE documentation

The user documentation contains broken links to download packages.
Fix: The user documentation has been updated so that you contact the support team of logi.cals and ask for the 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.

54848

Standard library

An error might be reported when double-clicking a file included in a standard library.
Fix: The error does not occur anymore.
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.

54874

IDE,
performance

Windows 10 Defender significantly slows down the IDE, the reason being Windows 10 Defender scanning the JAR files.
Note: The IDE documentation has been enhanced to indicate the problem and the workaround. See "What do to increase the performance?".
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

54928

List of declared variables

The variable section LOCAL is provided twice when declaring a variable by using the dialog.
Fix: The dialog provides only one variable section LOCAL.
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.

54972

Editors

The logic in opened editors might become faulty after termination and restart of IDE.
Fix: The logic in opened editors becomes not faulty for the following scenario.
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.

54980

Validating the application

An exception occurs when validating a resource containing a missing program type.
Fix: The exception does not occur for the following scenario anymore.
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".

54984

Test framework,
opening a project

An exception might occur when repeatedly opening a project in the test framework variant.
Fix:
The exception according to the following scenario does not occur anymore.
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.

55005

Enum-editor

At first, it is not possible to enter a string length with 2 or more digits in the enum-editor.
Fix: For the following scenario, it is 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.

55031

Vendor blocks

Include is missing from CustomImplementation block if a data type is only used as a return value of a function.
Fix: The problem according to the following scenario does not occur anymore – as long as the implementation stubs have not yet been generated. See the additional information after the scenario.
Scenario for problem: If a user data type is only used as the 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.
Additional information about the resulting C-/H-files: When saving the ST-object with the inputs/outputs for the CustomImplementation block, the required C-/H-files with the implementation stubs are automatically generated. If you have already saved the ST-object before the ST-object was completed, it is likely that the object will not match the generated files. Example: You have declared a CustomImplementation function with a data type as the return value of this function, you saved the ST-object and then you used the data type in the function and you saved this change. In this case, the 1st saving action creates the C-/H-files with the implementation stub, while the 2nd saving action does not update the C-/H-files with the implementation stub. In this case, you must rename the automatically generated files to another unique name (if you have already entered your code in these C-/H-files) or delete these files (if you have not entered any code in these C-/H-files yet). Then, save the ST-object again to make sure that the generated files contain the correct implementation stubs. If you renamed the C-/H-files that were generated: Transfer your code to the newly generated C-/H-files and delete the renamed C-/H-files.

55047

"Values of Variables" view

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.
Fix: The Values of Variables view displays the correct value for the input. There is no data type mismatch for the following scenario.
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.

55092

Enum-editor

An exception occurs when opening the enum editor for an invalid STRING or CHAR literal.
Fix: The exception according to the following scenario does not occur anymore. If there is such an invalid STRING or CHAR literal, the ST-editor is opened instead of the enum editor.
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.

55153

"Build Log" view

The "Build Log" view might not display all GUI-components.
Fix: The Build Log view now provides a scrollbar to scroll to the GUI-components that are not visible. The best practice to quickly see all GUI-components is to maximize the view.
Note: The same problem has been fixed for the Build History view.
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.

55183

IDE documentation,
TP block

The block description for the TP block might contain wrong information.
Fix: The block description for the TP block has been corrected in the online help for logi.CAD 3 versions after V3.16.0. The documentation files (in PDF/HTML format) included in logi.CAD 3 versions from V3.21.0 and in V3.16.2 contain the correct information for the TP block.
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.

55190

IDE documentation,
system blocks

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.
Fix: The block descriptions for the blocks do contain the information.
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.

55194

IDE documentation,
system blocks

The block description for the Compare blocks does not contain information that bitstring values are treated like unsigned integer values.
Fix: The block description for the Compare blocks contains the corresponding information.
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

55214

IDE documentation,
system blocks

The block descriptions for certain numeric and time functions do not contain the information about an existing IEC standard deviation.
Fix: The information is included in the block descriptions starting with logi.CAD 3 version 3.21.0.
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.

55218

IDE documentation,
system blocks

The block description for the block DIV does not contain any information about the truncation behavior for integers.
Fix: The block description for the block DIV contains the information according to the following scenario.
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

55244

"Build" Log view

The "Build" Log view shows Success even though the application was not built.
Fix: The Build Log view shows Metadata compile failed for the following scenario.
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.

55248

FBD-editor

The block interface for a generated file incorrectly shows an input named END_VARND_FUNCTION_BLOCK.
Fix: The block interface (according to the following scenario) shows the in-/outputs with correct names.
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.

55270

FBD-editor

The usage of a dereferenced variable is not displayed as expected.
Fix: The usage of a dereferenced variable is displayed correctly. Example: If the variable is used in a value field and the output as well as the input are connected to a different FBD-element, Write/Read is displayed as usage.
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^

55306

Validating the application

The rule "C-blocks must only be contained in libraries" does not recognize all forbidden usages of a vendor block.
Fix: The rule recognizes the usages of a vendor block according to the following scenario, too.
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).

55325

FBD-editor

Double-clicking on a message might not position to the error location in the FBD-editor.
Fix: Double-clicking on the message (according to the following scenario) does position to the correct error location.
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.

55333

Building the application

A compiler warning might occur when building an application where REAL is converted to another data type.
Fix: The compiler warning does not occur for the following scenario anymore.
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.

55348

Global variables

Global variables in a global-object with namespace cannot be used.
Fix: Now the global variables in a global-object with namespace (from the following scenario) can be used as follows:

Example of code in program type
PROGRAM MyPT1
{ INCLUDE_GLOBALS NS1.myGV1}
GVar1 := 5; (* This assignment is not highlighted as faulty anymore. *)
(The namespace is not specified in this statement. *)
END_PROGRAM

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; (* As expected: This assignment is highlighted as faulty. *)
GVar1 := 5; (* But this assignment is also highlighted as faulty. *)
END_PROGRAM

55377

FBD-editor

It is not possible to build an application when value fields contain specific operations.
Fix: It is possible to build the application according to the following problem.
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.

55394

FBD-editor

Navigating between several errors within the FBD-editor is not possible as known from the ST-editor.
Fix: Navigating between several errors within the FBD-editor is now possible.
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.

55399

FBD-editor

A connector and its continuation are of the resolved type fatal_error.
Fix: The problem does not occur anymore.
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.

55404

Libraries

Performance issues when removing an already installed library.
Fix: The removing of libraries does not block the GUI of logi.CAD 3 anymore. This change was possible because the building of all resources is done in the background now. The removing of libraries makes it necessary to build all resources.
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).

55408

"Build History" view

The "Build History" view displays umlauts wrong.
Fix: The problem does not occur anymore.
Scenario for problem: The field Compiler and Linker Output of the Build History view displays umlauts wrong in case the language is German.

55412

FBD-editor

A migrated value field shrinks to a maximum size.
Fix: The value fields can be resized as you like. This is also valid for migrated value fields.
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.

55464

Building the application,
HTML-report

The HTML-report does not contain any notice, if the application could not be built due to errors in the application.
Fix: Now the HTML-report contains the line Build result in the section Resource information. This line informs about the build result as displayed in the Build log view. If the application contains errors, this line contains the information Unknown compile result.
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 ".

55486

Vendor blocks

Vendor functions are not listed in the MRC-report when validating the application.
Fix: Vendor functions are listed in the MRC-report as well.
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.

55620

FBD-editor,
execution order

The network elements might not be evaluated correctly with regard to their processing order if the network contains only function blocks with feedback loops.
Fix: The problem has been fixed. Moreover, the rules for the order of statements within an FBD-network containing a feedback loop have been changed so that logi.CAD 3 does not consider the outputs of a function block call as evaluated anymore (until the call can actually be evaluated) but the function block call is really evaluated. Hence, logi.CAD 3 version 3.21.0 evaluates the network elements from the scenario illustration as follows:
images/download/attachments/512327895/ExutionOrder_Fix-version-1-modificationdate-1678370598118-api-v2.png
Notes:

  • The order of the statements is displayed by the execution order (= number displayed within the red rectangle).

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

  • If you are using the predecessor product logi.CAD/32: The changed behavior in logi.CAD 3 matches the one in logi.CAD/32 (regarding this aspect) because now the call of the function block being most top/left is evaluated. However, observe that there are other differences between logi.CAD/32 and logi.CAD 3 regarding the evaluation of networks in FBD; see the description " Differences: Predecessor product to current product " – the lines with the text "feedback loops" and "execution order".

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/512327895/ExutionOrder_Problem-version-1-modificationdate-1678370616284-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.

55624

LD-editor

It is not possible to build the application for an LD-program with function blocks and external variables.
Fix: The application can be built 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).

55653

Building the application

Sporadic error might occur while building the application.
Fix:
The sporadic error according to the following error does not occur anymore.
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.

55672

FBD-editor

Boolean line with an open end is not animated as expected.
Fix: Boolean lines with an open end are now 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/512327895/image-2023-02-02-16-44-59-486-version-1-modificationdate-1677166206873-api-v2.png

55895

System block EXPT,
operator

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.
Fix: The problem does not occur anymore. The correct values are returned and the ENO output returns TRUE.
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.

55996

ST-editor,
REAL / LREAL literals

The usage of REAL#-0.0 or LREAL#-0.0 might cause compiler warnings when building the application.
Fix: The problem is fixed because the cast LC_TD_REAL or LC_TD_LREAL is inserted in the automatically generated C-code.
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.

56077

Keyboard shortcuts

Ctrl+Shift+R has no impact, if a test file or the file compile_result.txt has the focus.
Fix: The keyboard shortcut can also be used when 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.

56105

Vendor block,
building th eapplication

An empty fingerprint is reported for a vendor block containing the statement extraIncludes.
Fix: The correct fingerprint is reported for the 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".

56113

Test framework

A program in a namespace cannot be tested.
Fix: A program in a namespace can be tested, if the test is started for the program itself. Do not start the test for a folder when you want to test a program.
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 safety-related 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."

56121

ST-editor

The -0.0 specification might become 0.0 in the C-code.
Fix: Now the -0.0 specification is -0.0 in the C-code as well.
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

56342

Compiler

The RTOS32 compiler reports an error in case of a specific division.
Note: The article " Effects of the compiler settings on the execution " of the IDE-documentation has been enhanced to indicate this issue.
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.

56391

Global-variables-editor

Misleading text for context menu command in the global-variables-editor.
Fix: The command has been renamed to New Variable.
Scenario for problem: The context menu in the global-variables-editor provides the command New Variable (BOOL). If a variable of data type INT is selected and this command is selected, a global variable of data type INT is created.

56484

Creating libraries

Missing information for a library element with external variables and DEPLOY:=INTERFACE
Fix: If the POU contains external variables, you now get the message when specifying DEPLOY:=OBJECT as well as DEPLOY:=INTERFACE.
Scenario for problem: If a POU contains external variables, it must not be specified with DEPLOY:=OBJECT or DEPLOY:=INTERFACE in the library configuration. A corresponding message informs you when DEPLOY:=OBJECT is specified but not when DEPLOY:=INTERFACE is specified.

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

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.

55198

IDE-documentation,
system blocks

The block description for some conversion blocks does not contain information about a deviation from the IEC-standard regarding a binary transfer.
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

IDE-documentation,
system blocks

The block description for the conversion blocks from Convert does not contain information about the behavior in case of errors that are possible according to the IEC-standard.
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 3 (provided in the Convert sub-library) is as follows: The non-overlapping value range is not considered to be an error and the higher bytes (= bytes not within the range of values) are truncated.
Observe that the following is valid for the conversion block DT_TO_DATE: The block discards the time and returns only the date. Therefore, there is no value range error.
Additional information: In contrast to the above-mentioned problem the description of the block TO_TOD (provided in the ConvertEnh sublibrary) already contains the information on the error.
Workaround: none existing

55456

Validating the application

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.

55921

DIV_TIME block

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

EXPT block

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,
workspace

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.

56204

Editors

Changes in an editor are getting lost when other projects are closed.
Scenario for problem: When a project is closed and there are changes in an opened editor, usually you are asked whether to save the changes. However, there is no prompt when other projects are closed. In this case, the editor is closed and the changes are lost (the project with the editor is not closed – this is a correct behavior).
Workaround: Use the command Save All before closing the projects.

56219

FBD-editor

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

56417

PLC,
runtime system

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.

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

This section was last updated on: 2023-06-01

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

56526

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

56530

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

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

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

56540

No more user actions might be possible after the action "Expanding all" in the "Instances" view.
Scenario for problem: It is possible to expand all levels in the "Instances* view by pressing the keyboard shortcut "*" (= the multiplier character) on the numeric keypad. It has been observed that no more user actions are possible after pressing the keyboard shortcut when a larger project has been opened or when pressing the keyboard shortcut repeatedly.
Workaround: Close and restart the IDE. Rather expand one level after the other.

56549

Missing message that a previously started version prevents the debugging.
Scenario for problem: When different versions of the IDE are started, debugging is not possible. So far the following message has been displayed: A previously started version of logi.CAD 3 prevents debugging. Please exit all versions of logi.CAD 3 – This message is not displayed in the current version of the IDE.
Workaround: none existing

56573

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

  • You create a vendor block with the CustomNameSpace property.

  • You specify this vendor block in the library configuration.

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

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

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

Additional information:

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

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

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

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

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

Workaround: Do not use the CustomNameSpace property. Or, clean the project after each change in the H or C file so that the fingerprint is updated correctly in the new library generation report for the vendor block.

56650

The editor might not display the content of the file compile_result.txt after clicking "Show in editor".
Scenario for problem: The Build Log view provides the button Show in editor to display the content of the file compile_result.txt in an editor. However in some customer versions, the error message Resource "<path>/compile_result.txt" does not exist is displayed in the editor.
Workaround: Close the editor with the error message and click the button again. Alternative: Open the file by using the keyboard shortcut Ctrl+Shift+R.

56707

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

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

Workaround: Delete the project in the project explorer before the import.

56717

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

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

The error logger displays these messages:

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

In some occurrences, the warning The Ninja dependencies file does not exist has been displayed in the error logger as well.
Workaround: Install the customer version in a path without blanks.

56757

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

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

Additional information:

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

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

Workaround: Do not specify partial addresses for global variables.

56764

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

56903

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

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

Workaround: Use SOURCE instead of DEPLOY for the library elements.

56929

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

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

Workaround: Use SOURCE instead of DEPLOY for the library elements.

56935

The user documentation on integrating external libraries for C-blocks is labelled as deprecated but it is also valid for vendor blocks.
Scenario for problem: The user documentation contains the article "Integrating external libraries for the C-blocks or C++-blocks" in the section "Integrating C-code and/or C++-code into the application". The section as well as the article is labelled as deprecated but the description in the article applies to vendor blocks that is documented in the different section "Creating vendor blocks for the application or a library".
Workaround: not existing

57092

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

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

Workaround (if sensible): Change the definitions for the height/width in the interface editor.

57096

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

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

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

Workaround: not existing

57112

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

57462

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

57474

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

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

  2. You deinstalled the library with this block.

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

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

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

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

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

Workaround: Clean the project. Try to build the application again.

57509

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

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

Workaround: Add a feedback variable in the network to change the execution order. Example:
images/download/thumbnails/512327895/57509_Workaround-version-1-modificationdate-1685618427981-api-v2.png
Reason: Such a feedback variable makes it easier to control the execution of the network elements. Additionally, feedback loops without feedback variables are not compliant with the IEC-standard because IEC-standard defines only feedback loops with feedback variables.

57550

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

57629

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

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

Additional information:

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

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

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

Checksum for components of logi.CAD 3 version 3.21.0

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

Component

Version

Checksum

Description

logi.CAD 3 IDE

version 3.21.0

---


system library Standard


version 3.3.0


---