Release-Notes für Version

Dieser Artikel enthält die Release-Notes für logi.CAD 3 Version 3.16.2.

Aktuellste Informationen in der Online-Version

Bitte informieren Sie sich in der Online-Version (unter http://help.logicals.com/), ob seit dem Publizieren dieses Benutzerhandbuchs (als PDF/HTML/Word) neue Informationen für die Version hinzugekommen sind; z.B. neue Probleme in den Release-Notes oder neue Troubleshooting- und FAQ-Artikel.
Die Online-Version der Release-Notes für logi.CAD 3 ist hier verfügbar: https://help.logicals.com/lco3docu/latest/user-documentation/de/release-notes-fuer-version – Die Liste mit den Versionen (überhalb des Inhaltsverzeichnisses) hilft Ihnen zur relevanten Version von logi.CAD 3 zu wechseln.


Release-Notes für frühere Versionen von logi.CAD 3 sind nur in der Online-Version unter https://help.logicals.com/lco3docu/latest/user-documentation/de/release-notes-fuer-version verfügbar.

Allgemeine Informationen

Zur Kompatibilität:

Falls Sie eine frühere Version von logi.CAD 3 verwendet haben und die aktuelle Version verwenden wollen, lesen Sie unter "Sind meine Projekte aufwärts- und abwärtskompatibel?" nach, welche Punkte Sie beachten müssen.

  • logi.CAD 3 wird für 32-Bit-Windows-Systeme nicht mehr unterstützt.

  • Für Projekte , die Funktionsbausteine mit Ein-/Ausgangsvariablen (= VAR_IN_OUT) enthalten und mit Version 3.1.0 (oder einer nachfolgenden Version) erstellt oder darin importiert und bereinigt wurden, sind einige Schritte nach dem Importieren des Projekts in Versionen < 3.1.0 erforderlich. Siehe "Funktionsbausteine mit VAR_IN_OUT aus Version < 3.1.0 verhindern das Erstellen der Anwendung".

  • Für Projekte , die mit Version 3.0.0 (oder einer nachfolgenden Version) erstellt oder darin importiert wurden, sind einige Schritte nach dem Importieren des Projekts in Versionen < 3.0.0 erforderlich. Siehe "Sind meine Projekte aufwärts- und abwärtskompatibel?".

  • FBS-Objekte, die mit Version 2.5.0 oder einer nachfolgenden Version gespeichert werden, können in Versionen < 2.5.0 nicht mehr geöffnet werden.

Zur Log4j-Sicherheitslücke:

Siehe "Ist die IDE von der Log4j-Sicherheitslücke (Dezember 2021, CVE-2021-44228, Log4Shell) betroffen?".

Zu den Systembibliotheken:

Siehe "Release-Notes für Systembibliotheken".

Zur Version 3.16.2

Aufgrund des Problems laut der ID "108185" empfiehlt Ihnen logi.cals, die qualifizierte Version 3.23.2 statt Version 3.16.2 zu verwenden.
Mehr Informationen zu den verfügbaren Releases finden Sie unter "Release-History".

Allgemeine Informationen für Laufzeitsystem und Zielsysteme

Zum

→Laufzeitsystem:

Bei der Verwendung von logi.CAD 3 Version 3.16.2, installieren und verwenden Sie die Version 5.14.0 des Laufzeitsystems .
Das Installationspaket für das Laufzeitsystem ist im Lieferumfang von logi.CAD 3 enthalten.

images/s/b2ic8e/9012/1ca6q62/_/images/icons/emoticons/warning.svg Falls Sie eine ältere Version des Laufzeitsystems verwenden, ist es u.U. nicht möglich, sich zum Zielsystem aus logi.CAD 3 heraus erfolgreich zu verbinden (siehe Troubleshooting-Artikel "Keine Verbindung zum Zielsystem, stattdessen werden Fehlermeldungen angezeigt.").
images/s/b2ic8e/9012/1ca6q62/_/images/icons/emoticons/information.svg Informieren Sie sich im FAQ-Artikel "Wann ist die Version des Laufzeitsystems auf der SPS zu aktualisieren?", falls Sie kontrollieren wollen, ob die zu logi.CAD 3 passende Version des Laufzeitsystems auf der SPS verwendet wird.

Zu →Raspberry Pi:

Lesen Sie in der Kurzanleitung "Raspberry Pi in Betrieb nehmen" nach, welche →Raspbian-Version für die Verwendung von logi.cals empfohlen wird.

Neuigkeiten in logi.CAD 3 Version 3.16.2

Die Neuigkeiten für V3.16.0 finden Sie im Artikel " Release-Notes" für V3.16.0 .

ID

Komponente

Neuigkeiten

keine

Neuigkeiten in Verbindung für Laufzeitsystem und Zielsysteme

ID

Komponente

Neuigkeiten

keine

Behobene Probleme in logi.CAD 3 Version 3.16.2

Die behobenen Probleme für V3.16.0 finden Sie im Artikel " Release-Notes" für V3.16.0 .

ID

Komponente

Behobenes Problem

53067
(51356)

Anwendung validieren

Bei aktivierter Regel "Für Projekte/Ordner/Objekte dürfen nur Bezeichner laut Vorgaben verwendet werden" wird eine Ausnahmebedingung beim Anlegen eines Gerät-Objekts verursacht.
Behebung: Das Problem laut dem folgenden Szenario tritt nicht mehr auf.
Szenario für Problem: Wenn Sie die Regel Für Projekte/Ordner/Objekte dürfen nur Bezeichner laut Vorgaben verwendet werden aktivieren, ist es nicht möglich, ein neues Gerät-Objekt zu erstellen, da eine Ausnahmebedingung verursacht wird. In diesem Fall zeigt der Dialog zum Erstellen des Objekts keine aktivierte Schaltfläche Fertigstellen an und das Fehlerprotokoll zeigt die Meldungen Unhandled event loop exception an.

53388
(51290)

Anwendung validieren

Bei einer instanzbezogenen Validierung mit der aktivierten Regel "Verbotene elementare Datentypen dürfen nicht verwendet werden" ist es möglich, dass eine Ausnahmebedingung auftritt.
Behebung: Die Ausnahmebedingung tritt für das folgende Szenario nicht mehr auf.
Szenario für Problem: Wenn Sie die Elemente einer Ressource validieren und diese Elemente enthalten einen Typ mit Rekursion, wird bei der Validierung mit der aktivierten Regel Verbotene elementare Datentypen dürfen nicht verwendet werden eine Ausnahmebedingung verursacht. In diesem Fall wird diese Meldung in einem Dialog und im Fehlerprotokoll angezeigt:

Während "Objekt wird validiert" ist ein interner Fehler aufgetreten.

53401

Anwendung erstellen

Eine Ausnahmebedingung tritt möglicherweise auf, falls die Anwendung für die integrierte SPS erstellt wird.
Behebung: Die Ausnahmebedingung für das folgende Szenario tritt nicht mehr auf.
Szenario für Problem: Es ist möglich, dass die Anwendung für die integrierte SPS nicht erstellt werden kann, obwohl die Anwendung keine Fehler enthält. In diesem Fall enthält das Fehlerprotokoll die folgende Meldung: Cannot invoke "com.logicals.lc3api.model.Project.getProgramOrganiationUnit(String)" because the return value of "com.logicals.projectindex.db.DbDataType.getProject()" is null
Details zur Ursache des Problems sind nicht vorhanden.

54980

Anwendung validieren

Eine Ausnahmebedingung tritt auf, wenn eine Ressource mit einem fehlenden Programmtyp validiert wird.
Behebung: Die Ausnahmebedingung tritt für das folgende Szenario nicht mehr auf.
Szenario für Problem: Wenn Sie die Elemente einer Ressource validieren und der angegebene Programmtyp ist nicht vorhanden, wird bei der Validierung eine Ausnahmebedingung verursacht. In diesem Fall wird diese Meldung in einem Dialog und im Fehlerprotokoll angezeigt:

Während "Objekt wird validiert" ist ein interner Fehler aufgetreten.

55306

Anwendung validieren

Die Regel "C-Bausteine dürfen nur in Bibliotheken enthalten sein" erkennt nicht alle verbotenen Verwendungen eines Vendor-Bausteins.
Behebung: Die Regel erkennt auch die Verwendungen eines Vendor-Bausteins laut dem folgenden Szenario.
Szenario für Problem: Die Regel C-Bausteine dürfen nur in Bibliotheken enthalten sein prüft, ob die verwendeten C-Bausteine (wie Vendor-Bausteine) in Bibliotheken enthalten sind. Die Validierung meldet tatsächlichen den Aufruf eines Vendor-Bausteins, der aus dem aktuellen Projekt selbst stammt. Wenn der gleiche Vendor-Bausteins jedoch z.B. nur in Zuweisungen verwendet wird, wird die Verwendung nicht gemeldet. Es ist möglich, dass andere Verwendungen des Vendor-Bausteins ebenfalls nicht gemeldet werden (z.B. der Aufruf eines Vendor-Bausteins in einem Wertfeld).

55333

Anwendung erstellen

Beim Erstellen der Anwendung kann eine Compilerwarnung auftreten. Der Grund ist, dass REAL in einen anderen Datentyp konvertiert wird.
Behebung: Die Compilerwarnung tritt für das folgende Szenario nicht mehr auf.
Szenario für Problem: Wenn eine Anwendung REAL in einen anderen Datentyp konvertiert (z.B. durch den Aufruf des TO_UDINT-Bausteins mit einer verbundenen REAL-Variable), ist es möglich, dass beim Erstellen der Anwendung die folgende Compiler-Warnung angezeigt wird:

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

Zusätzliche Informationen:

  1. Das Problem tritt nur auf, wenn die Compiler-Option -Wdouble-promotion vom Systemintegrator aktiviert wurde. Das Problem tritt nicht bei der integrierten SPS auf.

  2. Die Compiler-Warnung wird in der Sicht Build-Log unter Ausgabe von Compile- und Linker angezeigt.

55486

Anwendung validieren

Vendor-Funktionen werden bei der Validierung der Anwendung nicht im MRC-Bericht angeführt.
Behebung: Vendor-Funktionen werden ebenfalls im MRC-Bericht angeführt.
Szenario für Problem: Der erzeugte MRC-Bericht (ein Bericht mit der Dateiendung .mrclog) enthält Informationen über die durchgeführte statische Code-Analyse. Insbesondere werden in diesem MRC-Report die Namen und die Fingerprints der einzelnen Anwendungselemente angeführt. Eine Vendor-Funktion (= eine als Funktion deklarierter Vendor-Baustein) wird jedoch nicht im MRC-Report aufgeführt.

55895

Systembausteine

Der EXPT-Baustein und der Operator funktionieren bei großen Werten nicht wie erwartet. Dies gilt für negative Ergebniswerte ≤ -2**32.
Behebung: Das Problem tritt nicht mehr auf. Es werden die korrekten Werte zurückgegeben und die Ausgabe von ENO liefert TRUE.
Szenario für Problem: Der Baustein EXPT und der entsprechende ST-Operator ** funktionieren nicht wie erwartet, wenn die folgenden Werte zurückgegeben werden sollen:

  • Falsche Werte werden zurückgegeben, wenn ein Ergebniswert zwischen -2**32 und -2**63 zurückgegeben werden soll. In diesem Fall wird der ENO-Ausgang nicht auf FALSE zurückgesetzt, sondern es wird TRUE zurückgegeben. Es gibt also leider keinen Hinweis auf diese Art von Problem.
    Beachten Sie, dass ein solcher Ergebniswert durch verschiedene Bausteineingänge bzw. Operanden berechnet werden kann. Hier sind einige Beispiele für die Versorgung des Bausteins mit so Eingangswerten:

    IN1 (siehe: HINWEIS 1)

    IN2 (als Exponent)

    -1291

    3

    -74

    5

    -22

    7

    -11

    9

    -8

    11

    HINWEIS 1: Der angegebene Wert für IN2 ist der Grenzwert. Dieser Wert und höhere Werte führen zu dem oben erwähnten Problem.

  • Zusätzlich wird bei der Berechnung von -2**63 wird der Ausgang ENO auf FALSE zurückgesetzt. Dies zeigt an, dass bei dem Baustein ein Fehler aufgetreten ist. Tatsächlich wird aber der korrekte Ergebniswert geliefert.

54218

Sicht "Instanzen"

Der Fingerprint für die Ressource kann sich ändern, wenn ein Projekt bereinigt wird.
Behebung: Der Fingerprint für die Ressource ändert sich für das folgenden Szenario nicht mehr.
Szenario für Problem: In der Sicht Instanzen wird ein Fingerprint für die Ressource angezeigt. Wenn ein Projekt bereinigt wird, wird normalerweise derselbe Fingerprint angezeigt, nachdem die Bereinigung abgeschlossen ist. Nach dem Bereinigen von einigen Projekten wird jedoch ein unterschiedlicher Fingerprint angezeigt.
Zusätzliche Informationen: Diese Projekte enthalten 2 strukturierte Datentypen mit gleichen Namen in unterschiedlichen Namespaces.

Bekannte Probleme in logi.CAD 3 Version 3.16.2

ID

Komponente

Bekanntes Problem

49494

Applikationsnavigator,
ST-Objekt

Wenn mehrere Funktionsbausteine im gleichen ST-Objekt erstellt worden sind, löscht der Befehl "Löschen" im Applikationsnavigator alle Funktionsbausteine in diesem ST-Objekt ohne vorherige Information.
Szenario für Problem: Es ist möglich, mehrere Sprachelemente, wie z.B. Funktionsbausteine, im gleichen ST-Objekt anzulegen. Wenn Sie im Applikationsnavigator den Befehl Löschen für eines dieser Sprachelemente auswählen, werden alle Sprachelemente im ST-Objekt gelöscht, da das gesamte ST-Objekt gelöscht wird. Vor dem Löschvorgang wird nicht darüber informiert, dass andere Elemente von dem Löschvorgang betroffen sind.
Zusätzliche Information: Das analoge Problem tritt bei einem Verschiebe-Vorgang auf. Das bedeutet: Falls Sie ein Element verschieben, werden auch die anderen Elemente im ST-Objekt verschoben.
Abhilfe: Bevor Sie ein Element löschen, empfiehlt es sich zu prüfen, ob es noch andere Elemente im gleichen Objekt enthalten sind. Falls ja, löschen Sie das Element besser im ST-Objekt (d.h. im ST-Editor).

49498

Applikationsnavigator

Der Befehl "Gehe in" im Applikationsnavigator verhält sich nicht wie erwartet.
Szenario für Problem: Mit Hilfe des Befehls Gehe in sollte auf den ausgewählten Ordner fokussiert werden. Falls der Befehl aber im Applikationsnavigator ausgewählt wird (z.B. für den Ordner Projektbausteine), wird nicht nur der Inhalt dieses Ordners angezeigt, sondern es werden auch alle Projekte, die derzeit geöffnete Projekte sind, in diesem Ordner angezeigt. Dieses Verhalten im Applikationsnavigator entspricht nicht der Erwartung.
Abhilfe: nicht vorhanden

49514

Sicht "Variablenwerte"

Eine externe Variable kann in der Sicht "Variablenwerte" nicht geforct werden, falls die zugehörige globale Variable eine Programm-globale Variable ist.
Szenario für Problem: Wenn Sie eine externe Variable forcen, für die die entsprechende globale Variable im Programm deklariert ist, erscheint diese Meldung im Fehlerprotokoll: Zugriff auf die Variable wurde verweigert. (Fehlercode: 0x10308 (66312)} – Die externe Variable wird nicht geforct.
Abhilfe: Forcen Sie die Programm-globale Variable statt der externen Variable. Beachten Sie jedoch, dass die Sicht Variablenwerte den Force-Status der zugehörigen externen Variablen nicht korrekt anzeigt. Es fehlen die folgenden, zusätzlichen Force-Informationen für die externe Variable:

  • der Force-Wert in der Spalte Vorbereiteter Wert

  • das vorangestellte Symbol images/download/thumbnails/457572887/ForcedValue-version-2-modificationdate-1612253482976-api-v2.png in der Spalte Wert

49535

Liste der deklarierten Variablen

Der Befehl "Neue Variable..." verwendet nicht den richtigen Eintrag für einen Datentyp mit benannten Werten, der in einem Namensraum deklariert ist.
Szenario für Problem: Wenn Sie in der Liste der deklarierten Variablen eine Variable und dann den Kontextmenübefehl Neue Variable... auswählen, verwendet der Dialog den Datentyp der ausgewählten Variable, um schnell eine neue Variable mit einem ähnlichen Namen zu erstellen. Wenn die ausgewählte Variable jedoch auf Basis eines Datentyps mit benannten Werten innerhalb eines Namensraumes deklariert wurde, wird der Datentyp der benannten Werte nicht korrekt eingetragen. In der Folge ist die Schaltfläche OK des Dialogs deaktiviert und die neue Variable kann nicht erstellt werden.
Beispiel: Der Dialog schlägt den Datentyp Colors anstelle des korrekten Datentyps NS1.Colors vor. Die Variable kann nicht erstellt werden, weil der Namespace NS1 für den vorgeschlagenen Datentyp fehlt.
Abhilfe: Löschen Sie das letzte Zeichen des vorgeschlagenen Datentyps (löschen Sie also das Zeichen s von Colors), um eine Liste mit Vorschlägen für den Datentyp zu erhalten. Wählen Sie in dieser Liste den richtigen Datentyp, z.B. NS1.Colors. Dann ist die Schaltfläche OK des Dialogs aktiviert.

49539

Liste der deklarierten Variablen

Der Befehl "Neue Variable..." verwendet einen nicht-gespeicherten Eintrag für einen Datentyp. Allerdings erfolgt die Validierung auf Basis des gespeicherten Eintrags.
Szenario für Problem: Wenn Sie in der Liste der deklarierten Variablen eine Variable und dann den Kontextmenübefehl Neue Variable... auswählen, verwendet der Dialog den Datentyp der ausgewählten Variable, um schnell eine neue Variable mit einem ähnlichen Namen zu erstellen. Wenn der Name des Datentyps im ST-Editor geändert wurde, aber die Änderung nicht gespeichert wurde, wird der ursprüngliche Name des Datentyps als Datentyp im Dialog vorgeschlagen, allerdings ist die Schaltfläche OK des Dialogs deaktiviert. Falls Sie den Namen des Datentyps im Dialog auf den neuen Namen des Datentyps ändern, wird die Schaltfläche OK des Dialogs aktiviert. Falls Sie den Editor mit der erstellten Variable (auf Basis des neuen Datentyp-Namens) speichern, aber die Änderungen im ST-Editor bleiben ungespeichert, wird die erstellte Variable als fehlerhaft gemeldet, da die Validierung auf Basis des gespeicherten Eintrags (= dem ursprünglichen Namen des Datentyps) erfolgt.
Beispiel: Der Datentyp myINT wurde im ST-Editor auf myINT2 korrigiert, diese Änderung wurde aber noch nicht gespeichert. Der Dialog für die neue Variable (z.B. im FBS-Editor) schlägt weiterhin den Original-Datentyp myINT vor, aber OK ist deaktiviert. Erst wenn Sie den Datentyp von myINT auf myINT2 korrigieren, ist es möglich, die Variable auf Basis von myINT2 zu erstellen. Nach dem Speichern des Editors mit der erstellten Variable wird diese Variable aber als fehlerhaft gemeldet, da der ST-Editor mit myINT2 noch nicht gespeichert ist.
Abhilfe: Speichern Sie auch die Änderungen im ST-Editor, damit ein konsistenter Stand für die Validierung verwendet wird.

49543

Liste der deklarierten Variablen

Ein fehlender Datentyp einer Variablen kann möglicherweise im Dialog nicht korrigiert werde. Oder das Fehlersymbol wird für die Variable mit einem fehlenden Datentyp nicht angezeigt.
Szenario für Problem: Wenn der Datentyp einer Variablen in einem grafischen Editor fehlt, wird dieser Fehler in der Liste der deklarierten Variablen durch ein Fehlersymbol images/s/b2ic8e/9012/1ca6q62/_/images/icons/emoticons/error.svg vor dem Variablennamen hervorgehoben (so ist es in der Benutzerdokumentation erwähnt). Es ist möglich, dieses Problem in der Liste der deklarierten Variablen zu beheben. z.B. durch Doppelklicken auf die Variable, um einen Dialog zur Korrektur der Daten für diese Variable zu öffnen.
Es wurden jedoch Fälle beobachtet, in denen:

  • das Feld Datentyp im Dialog deaktiviert war. In diesem Fall ist es dann nicht möglich, den Datentyp im Dialog zu korrigieren.

  • die Variable mit dem fehlenden Datentyp nicht mit dem Fehlersymbol images/s/b2ic8e/9012/1ca6q62/_/images/icons/emoticons/error.svg hervorgehoben wurde.

Abhilfe, wenn das Feld Datentyp im Dialog deaktiviert ist: Verwenden Sie den Kontextmenü-Befehl Typ bearbeiten, um den Datentyp zu korrigieren.
Abhilfe, wenn das Fehlersymbol fehlt: Suchen Sie in der Sicht Fehler nach Fehlermeldungen, die den fehlenden Datentyp melden. Doppelklicken Sie auf diese Fehlermeldung, um zur entsprechenden Variable in der Liste der deklarierten Variablen zu wechseln. Korrigieren Sie den Datentyp.

50847

FBS-Editor

Das Kopieren/Einfügen von Inhalten auf mehreren Seiten funktioniert nicht, wenn eine der Zielseiten fehlt.
Szenario für Problem: Wenn Sie in einem FBS-Editor, der aus mehreren Seiten besteht, den gesamten Inhalt auswählen, ist es möglich, die Auswahl in die Zwischenablage zu kopieren. Es ist jedoch nicht möglich, den Inhalt in einen anderen FBS-Editor einzufügen, der weniger Seiten enthält. In diesem Fall wird nur die Vorschau der eingefügten Elemente angezeigt, aber es wird nichts eingefügt. Außerdem erscheint keine Meldung, die über die mögliche Problemursache informiert.
Abhilfe: Stellen Sie sicher, dass alle Zielseiten vorhanden sind, bevor Sie den Inhalt einfügen. Oder kopieren und fügen Sie nur die Elemente einer Seite ein.

50924

FBS-Editor

Es ist nicht möglich, eine Linienverzweigung zu erzeugen, wenn eine Fortsetzung mit einem Eingang eines zweiten Bausteins verbunden wird.
Szenario für Problem: Wenn Sie auf eine bestehende Linie zeigen, die primäre Maustaste drücken und halten, den Mauszeiger auf einen freien Bausteineingang bewegen und die primäre Maustaste loslassen, wird eine Linienverzweigung (inkl. eines Verbindungspunkt) erzeugt. Dabei ist die Linie an den Bausteineingang angeschlossen. Falls die bestehende Linie jedoch mit einer Fortsetzung verbunden war und der freie Eingang der eines zweiten Bausteins war, kann die Linie nicht erstellt werden.
Beispiel: Hier kann die Linienverzweigung von der Fortsetzung C1 zum Eingang des unteren OR-Bausteins nicht erstellt werden (ignorieren Sie die Fehlersymbole; sie sind für dieses Problem nicht relevant):

images/download/attachments/512951550/50924_Problem-version-1-modificationdate-1673446432852-api-v2.png


Abhilfe: Erstellen Sie die Linie in der anderen Richtung. Dies bedeutet:

  • Erstellen Sie den Verbindungspunkt auf der bestehenden Leitung (durch Doppelklick auf die Linie).

  • Zeigen Sie auf den freien Bausteineingang.

  • Drücken und halten Sie die primäre Maustaste.

  • Bewegen Sie den Mauszeiger auf den Verbindungspunkt.

  • Lassen Sie die primäre Maustaste los.

50969

FBS-Editor

Es ist nicht möglich, ein neues Wertfeld mit einem TIME_OF_DAY- oder DATE_AND_TIME-Literal zu erstellen.
Szenario für Problem: Wenn Sie die Inhaltshilfe verwenden, um ein neues Wertfeld mit einem TIME_OF_DAY- oder DATE_AND_TIME-Literal zu erstellen, wird der angegebene Wert nicht akzeptiert.
Beispiel für solche Werte: TOD#13:33:17, DT#1999-03-12-01:20:41.500
Abhilfe: Erstellen Sie zuerst ein Wertfeld mit dem Wert TRUE. Bearbeiten Sie dann das Wertfeld und fügen Sie den gewünschten Wert ein.

51230

KOP-Editor

Die Statusleiste des KOP-Editors enthält keine Informationen über die POE.
Szenario für Problem: Laut der Benutzerdokumentation sollte die Statusleiste eines KOP-Editors Informationen über die POE enthalten, wie z. B. den POE-Typ und den POE-Namen. Die Statusleiste ist jedoch leer.
Abhilfe: nicht vorhanden

51266

Anwendung validieren

Bei einer instanzbezogenen Validierung wird die Regel "Die Verwendung von Bausteinen wird vollständig oder auf vorgegebene Typen eingeschränkt" auch auf Objekte angewendet, die nicht im Instanzkontext enthalten sind.
Szenario für Problem: Wenn Sie die Elemente einer Ressource validieren, sollte die Validierung für alle Objekte durchgeführt werden, die ausgehend von der Ressource verwendet werden. Das heißt, Objekte, die nicht im Instanzkontext der Ressource enthalten sind, sollten nicht validiert werden. Die Regel Die Verwendung von Bausteinen wird vollständig oder auf vorgegebene Typen eingeschränkt wird jedoch auch auf die Objekte angewendet, die nicht im Instanzkontext der Ressource enthalten sind.
Zusätzliche Informationen: Dieses Problem tritt auf, wenn ein ST-Objekt sowohl Objekte enthält, die im Instanzkontext enthalten sind, als auch Objekte, die nicht im Instanzkontext enthalten sind.
Abhilfe: Verschieben Sie die Objekte in verschiedene ST-Objekte, wenn dies für Sie sinnvoll ist.

51281

Anwendung validieren

Bei einer instanzbezogenen Validierung wird die Regel "Verbotene elementare Datentypen dürfen nicht verwendet werden" auch auf Objekte angewendet, die nicht im Instanzkontext enthalten sind.
Szenario für Problem: Wenn Sie die Elemente einer Ressource validieren, sollte die Validierung für alle Objekte durchgeführt werden, die ausgehend von der Ressource verwendet werden. Das heißt, Objekte, die nicht im Instanzkontext der Ressource enthalten sind, sollten nicht validiert werden. Die Regel Verbotene elementare Datentypen dürfen nicht verwendet werden wird jedoch auch auf die Objekte angewendet, die nicht im Instanzkontext der Ressource enthalten sind.
Zusätzliche Informationen: Dieses Problem tritt auf, wenn ein ST-Objekt sowohl Objekte enthält, die im Instanzkontext enthalten sind, als auch Objekte, die nicht im Instanzkontext enthalten sind.
Abhilfe: Verschieben Sie die Objekte in verschiedene ST-Objekte, wenn dies für Sie sinnvoll ist.

51294

Eigene Bibliothek erzeugen

Der Link zum Öffnen des Validierungsberichts funktioniert nicht, wenn das Projekt außerhalb des Arbeitsbereichs liegt.
Szenario für Problem: Wenn Sie eine Bibliothek erzeugen, wird die Bibliothek in einigen Varianten von logi.CAD 3 automatisch validiert. In den anderen Varianten von logi.CAD 3 ist es möglich, die Bibliothek selbst zu validieren. Wenn eine solche Validierung durchgeführt wird, informiert die Sicht Validieren darüber, dass dieser Validierungsbericht erstellt wurde. Wenn Sie auf die entsprechende Meldung doppelklicken, wird der Validierungsbericht in logi.CAD 3 geöffnet. Wenn logi.CAD 3 mit einem Arbeitsbereich gestartet wurde, der ein Leerzeichen enthält, muss das Projekt außerhalb des Arbeitsbereichs erstellt werden. In diesem Fall wird dann der Validierungsbericht nicht geöffnet. Stattdessen zeigt das Fehlerprotokoll die Meldungen Unable to create part und Cannot determine URI for 'path/library-name.lib.mrclog' an.
Die letzte Meldung wird auch in dem Bereich angezeigt, in der der Bericht angezeigt werden soll.
Abhilfe: Öffnen Sie den Validierungsbericht über den Projektexplorer.

51303

FBS-Editor

Es ist möglich, ein Wertfeld zu erstellen, indem die Variable mit einem ungültigen Datentyp aus der Liste der deklarierten Variablen gezogen wird.
Szenario für Problem: Falls eine Variable mit einem ungültigen Datentyp deklariert ist, enthält die Ansicht Fehler eine Meldung, die auf das Problem hinweist. Es ist jedoch möglich, ein Wertfeld für diese Variable zu erstellen, indem diese Variable aus der Liste der deklarierten Variablen in das Zeichenfeld gezogen wird. Die Folge ist, dass das Wertfeld eine fehlerhafte Variable verwendet.
Zusätzliche Informationen:

  1. Der Datentyp ist möglicherweise ungültig, weil der Datentyp nach der Deklaration der Variable gelöscht wurde.

  2. Die Inhaltshilfe enthält die Variable mit dem ungültigen Datentyp nicht.

Abhilfe: nicht vorhanden

51364

FBS-Editor

Das Refactoring eines Datentyps hat keinen Einfluss auf Variablen, die im FBS-Editor deklariert/verwendet werden.
Szenario für Problem: Es ist möglich, einen Datentyp umzubenennen. Variablen, die mit diesem Datentyp deklariert sind, werden korrekt auf den neuen Namen des Datentyps geändert - aber nur, wenn die Variable im ST-Editor deklariert ist. Das Refactoring wird nicht durchgeführt, wenn die Variable im FBS-Editor deklariert ist.
Abhilfe: Doppelklicken Sie auf die Fehlermeldung, die den fehlenden Datentyp meldet. Ändern Sie den Datentyp der Variablen im FBS-Editor selbst.

images/s/b2ic8e/9012/1ca6q62/_/images/icons/emoticons/information.svg Falls Sie Ihr Problem in dieser Liste nicht angeführt finden, kontrollieren Sie diese Abschnitte: Troubleshooting und FAQ

Zusatz: Bekannte Probleme aus Nachfolge-Versionen von logi.CAD 3 Version 3.16.2 oder nach der Freigabe

Dieser Abschnitt wurde zuletzt aktualisiert am: 2024-03-29

Für Probleme, die nach der Freigabe von logi.CAD 3 Version 3.16.2 entdeckt wurden, beachten Sie bitte die Release-Notes der Nachfolge-Versionen. Sowohl die Liste der bekannten Probleme als auch die Liste der behobenen Probleme könnte Beschreibungen von Problemen enthalten, die für logi.CAD 3 Version 3.16.2 relevant sind.
Probleme, die bei der Erstellung von sicherheitsrelevanten Applikationen besonders zu beachten sind, finden Sie in der nachfolgenden Liste zusätzlich noch mal angeführt.


ID

Komponente

Bekanntes Problem

53941

Namespaces

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

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

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

Abhilfe (Empfehlung, falls Sie sicherheitsrelevante Anwendungen/Bibliotheken entwicklen): Verwenden Sie keine Namespaces. Oder definieren Sie strenge Benennungskonventionen/Richtlinien, falls Sie Namenspaces verwenden wollen.

55031

Anwendung erstellen,
Vendor-Bausteine

Include fehlt im CustomImplementation-Baustein, wenn ein Datentyp nur als Ergebniswert einer Funktion verwendet wird.
Szenario für Problem: Wenn ein Benutzerdatentyp nur als Ergebniswert einer CustomImplementation-Funktion verwendet wird, ist die generierte H-Datei für den Datentyp nicht in der resultierenden H-Datei für die Funktion selbst enthalten.
In der Folge ist kann die Anwendung aufgrund dieses fehlenden Includes nicht erstellt werden.
Zusätzliche Information zur resultierenden H-/C-Datei: Beim Speichern des ST-Objekt mit dem Ein-/Ausgängen für den CustomImplementation-Baustein werden die benötigten C-/H-Dateien mit den Implementierungs-Stubs automatisch erzeugt. Wenn Sie das ST-Objekt bereits vor der Fertigstellung des ST-Objekts gespeichert haben, ist es wahrscheinlich, dass das Objekt nicht mit den erzeugten Dateien übereinstimmt. Beispiel: Sie haben eine CustomImplementation-Funktion mit einem Datentyp als Ergebniswert dieser Funktion deklariert, das ST-Objekt gespeichert und danach den Datentyp in der Funktion verwendet und diese Änderung gespeichert. In diesem Fall werden beim 1. Speichern die C-/H-Dateien mit den Implementierungs-Stub erzeugt, beim 2. Speichern werden die C-/H-Dateien mit den Implementierungs-Stub nicht aktualisiert. In diesem Fall müssen Sie die automatisch erzeugten Dateien auf einen anderen eindeutigen Namen umbenennen (falls Sie bereits Ihren Code in diesen C-/H-Dateien erfasst haben) oder diese Dateien löschen (falls Sie noch keinen Code in diesen C-/H-Dateien erfasst haben). Dann speichern Sie das ST-Objekt erneut, um sicherzustellen, dass die erzeugten Dateien die richtigen Implementierungs-Stubs enthalten. Falls Sie die zuerst erzeugten C/H-Dateien umbenannt haben: Übertragen Sie noch Ihren Code in die neu erzeugten C-/H-Dateien und löschen Sie die umbenannten C-/H-Dateien.
Abhilfe, sofern die Implementierungs-Stubs noch nicht erzeugt wurden: Verwenden Sie den Datentyp auch in der Funktion selbst. Beispiel: Deklarieren Sie eine Variable auf Basis dieses Datentyps.

55214

IDE-Dokumentation,
Systembausteine

Die Baustein-Beschreibungen für bestimmte Numeric- und Time-Funktionen enthält keine Informationen über eine vorhandene IEC-Norm-Abweichung.
Szenario für Problem: Die Baustein-Beschreibungen für bestimmte Bausteine enthalten keine Informationen, dass das Baustein-Verhalten bei einem Überlauf nicht IEC-Norm-konform ist. Die Information fehlt bei den folgenden Bausteinen:

  • Numeric-Funktionen:

    • ADD-Baustein

    • DIV-Baustein

    • EXPT-Baustein

    • MOD-Baustein

    • MUL-Baustein

    • SUB-Baustein

  • Time-Funktionen:

    • ADD_TIME-Baustein

    • CONCAT_DATE_TOD-Baustein

    • MUL_TIME-Baustein

    • SUB_DT_DT-Baustein

    • SUB_TIME-Baustein

Zusätzliche Informationen:

  • Bei diesen Bausteinen werden ungültige Beschaltungen von logi.CAD 3 nicht geprüft. Geben Sie deshalb Code in Ihrer Anwendung ein (z.B. IF-Anweisungen), mit denen ungültige Beschaltungen erkannt werden. Lesen Sie in der IDE-Dokumentation (unter "IEC-Bausteine für die Anwendung") nach, welche Auswirkungen eine ungültige Beschaltung haben könnte.

  • Die Information fehlt in den Baustein-Beschreibungen bis inkl. logi.CAD 3 Version 3.20.0.

Abhilfe: nicht vorhanden

55377

Anwendung erstellen

Eine Anwendung kann nicht erstellt werden, wenn Wertfelder bestimmte Operationen enthalten.
Szenario für Problem: Wenn Sie einen Ausdruck mit einem Operator in ein Wertfeld eintragen, ist es möglich, dass die Anwendung nicht erstellt werden kann. Vor dem Erstellen der Anwendung werden keine Fehler gemeldet. Danach erscheinen Meldungen ähnlich zu dieser in der Sicht Fehler: implicit declaration of function 'lcfu_iec61131_EXPT__INT__INL'; did you mean ''lcfu_iec61131__TO_INT__INT'? [-Werror=implicit-function-declaration
Zusätzliche Information: Die problematischen Operatoren sind jene, für die es entsprechende Systembausteine gibt. Davon sind aber nur diese Operatoren betroffen:

Operator

Der entsprechende Systembaustein

**

EXPT-Baustein

/

DIV-Baustein

OR

OR-Baustein

XOR

XOR-Baustein

NOT

NOT-Baustein

MOD

MOD-Baustein

&

AND-Baustein

AND

AND-Baustein

Das Problem tritt also aus, falls im Wertfeld ein Ausdruck, wie 2**3, eingetragen ist.
Abhilfe (falls möglich): Verwenden Sie andere Ausdrücke, die den gleichen Wert liefern.

55464

Anwendung erstellen,
Build-Bericht

Der HTML-Bericht enthält keinen Hinweis, falls die Anwendung aufgrund von Fehlern in der Anwendung nicht erstellt werden konnte.
Szenario für Problem: Der HTML-Bericht, der beim Erstellen der Anwendung erstellt wird (auch Build-Bericht genannt), enthält keinen Hinweis, wenn die Anwendung aufgrund von Fehlern in der Anwendung (z.B. Syntax-Fehler) nicht erstellt werden konnte. Im Abschnitt mit den Fehlern und Warnungen wird der Text Keine bzw. None angezeigt, wodurch vermutet wird, dass die Anwendung erstellt wurde. Die Meldungen in der Sicht Fehler und im Fehlerprotokoll sind der tatsächliche Hinweis, dass die Anwendung nicht erstellt werden konnte. Es gelten diese Meldungen in der Sicht Fehler und im Fehlerprotokoll.
Zusätzliche Information: In der Variante von logi.CAD 3, mit der sicherheitsrelevante Anwendungen entwickelt werden, enthält die Sicht Build-Log einen Link auf einen HTML-Bericht, in denen Informationen über die erstellte Anwendung und deren Bestandteile enthalten sind (z.B. Fingerprint der Elemente der Anwendung). Dieser HTML-Bericht (auch Build-Bericht genannt) muss beim Erstellen von sicherheitsrelevanten Anwendungen geprüft werden – wie in der englischen Dokumentation "Sicherheitshinweise zum Arbeiten mit der IDE " vorgeschrieben.
Abhilfe: Beim Erstellen von sicherheitsrelevanten Anwendungen prüfen Sie zusätzlich zum Inhalt des Build-Reports auch den Inhalt der Sichten Fehler und Fehlerprotokoll. Falls dort Fehler angeführt sind, beheben Sie diese und wiederholen Sie alle Workflow-Phase, die in der englischen Dokumentation "Safety instructions on working with the IDE " vorgeschrieben sind und die aufgrund der Änderung der Anwendung erforderlich sind. Falls in den Sichten nur Warnungen und/oder Infos enthalten sind, setzen Sie sich mit dem Systemintegrator in Verbindung und klären Sie die notwendige Vorgehensweise.

55190

IDE-Dokumentation,
Systembausteine

Die Baustein-Beschreibung für die Bausteine ROL, ROR, SHL und SHL enthält keine Information über eine Abweichung von der IEC-Norm bei negativen Werten des Eingangs N.
Szenario für Problem: Die IDE-Dokumentation enthält keine Information zu diesem Baustein-Verhalten:
Falls ein negativer Wert beim Eingang N der Bausteine ROL, ROR, SHL und SHL anliegt, wird eine umgekehrte Rotierung bzw. Verschiebung ausgeführt. Beispiel: Bei SHR wird dann keine Verschiebung nach rechts, sondern eine Verschiebung nach links ausgeführt.
Dieses Verhalten ist eine Abweichung von der IEC-Norm. Die "Table 30 – Bit shift functions" der Norm definiert, dass Werte < 0 für den Eingang N zu einem Fehler führen. Die IDE-Dokumentation enthält auch keine Information, dass die Bausteine diesbzgl. von der IEC-Norm abweichen.
Abhilfe: nicht vorhanden

55194

IDE-Dokumentation,
Systembausteine

Die Baustein-Beschreibung für die Compare-Bausteine enthält keine Information darüber, dass Bitstring-Werte wie Integer-Wert ohne Vorzeichen behandelt werden.
Szenario für Problem: Die IDE-Dokumentation enthält keine Information zu dem Verhalten, dass die Vergleichsfunktionen Bitstring-Werte (= ANY_BIT-Werte} wie Integer-Werte ohne Vorzeichen behandeln.
Dieses Verhalten stimmt mit dieser Vorgabe aus der IEC-Norm überein:

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.

Das Verhalten gilt für die folgenden Bausteine:

  • EQ

  • GE

  • GT

  • LE

  • LT

  • NE

Abhilfe: nicht vorhanden

55198

IDE-Dokumentation,
Systembausteine

Die Baustein-Beschreibung für einige Konvertierungsbausteine enthält keine Information über eine Abweichung von der IEC-Norm bzgl. eines Binär-Transfers.
Szenario für Problem: Die IDE-Dokumentation enthält keine Information zu diesem Verhalten von Konvertierungsbausteinen:

  • Die Konvertierung des Werts wird als semantische Interpretion durchgeführt.

  • REAL- und LREAL-Werten werden ebenfalls interpretiert.

Dieses Verhalten ist eine Abweichung von der IEC-Norm. Die Norm definiert, dass die Datentyp-Konvertierung als Binär-Transfer erfolgt. Die IDE-Dokumentation enthält auch keine Information, dass die Bausteine diesbzgl. von der IEC-Norm abweichen.

Die folgenden Bausteine sind davon betroffen:

  • TO_BOOL

  • TO_BYTE – mit Eingangsdatentyp CHAR

  • TO_CHAR – mit Eingangsdatentyp BYTE

  • TO_DWORD – mit Eingangsdatentyp CHAR und LREAL

  • TO_LREAL – mit Eingangsdatentyp LWORD

  • TO_LWORD – mit Eingangsdatentypen CHAR und LREAL

  • TO_REAL – mit Eingangsdatentyp DWORD

  • TO_WORD – mit Eingangsdatentyp CHAR

Beispiel mit ST-Code für das Baustein-Verhalten
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

Abhilfe: nicht vorhanden

55202,
Teil 1

IDE-Dokumentation,
Systembausteine

Die Baustein-Beschreibung für die Konvertierungsbausteine aus Convert enthält keine Information über das Verhalten bei Fehlern, die laut der IEC-Norm möglich sind.
Szenario für Problem: Die IDE-Dokumentation enthält keine Information zu dem Verhalten der Konvertierungsbausteine, wenn der anliegende Wert nicht im gemeinsamen Wertbereich des Eingangsdatentyps und des Ergebniswerts liegt. Die IEC-Norm definiert, dass dies ein Fehler ist, aber es sich dabei um ein implementiererspezifisches Verhalten handelt.
Die Konvertierungsbausteine in logi.CAD 3 (in der Unterbibliothek Convert verfügbar) verhalten sich prinzipiell so: Der nicht-übereinstimmende Wertbereich wird nicht als ein Fehler betrachtet und die höherwertigen Stellen (= jene Stellen, die nicht im gemeinsamen Wertbereich liegen) werden abgeschnitten.
Beachten Sie, beim Konvertierungsbaustein DT_TO_DATE gilt: Der Baustein verwirft die Uhrzeit und liefert nur das Datum. Daher kann kein Fehler im Wertbereich auftreten.
Zusätzliche Information: Im Gegensatz dazu enthält die Beschreibung des Bausteins TO_TOD (dieser ist in der Unterbibliothek ConvertEnh verfügbar) bereits Informationen über den Fehlerfall.
Abhilfe: nicht vorhanden

55202, Teil 2

IDE-Dokumentation,
Systembausteine

Die Baustein-Beschreibung für die TRUNC-Bausteine enthält keine Information über das Verhalten der Bausteine bei einem nicht-übereinstimmenden Wertbereich.
Szenario für Problem: Die IDE-Dokumentation enthält keine Information zu dem Verhalten der TRUNC-Bausteine, wenn der anliegende Wert nicht im gemeinsamen Wertbereich des Eingangsdatentyps und des Ergebniswerts liegt. Die IEC-Norm definiert, dass dies ein Fehler ist, aber es sich dabei um ein implementiererspezifisches Verhalten handelt.
Beachten Sie: Das Verhalten der TRUNC-Bausteine bei einem nicht-übereinstimmenden Wertbereich ist abhängig vom Compiler und Zielsystem. Das bedeutet, die TRUNC-Bausteine können einen unterschiedlichen Ergebniswert für einen Eingangswert aus dem nicht-übereinstimmenden Wertbereich und bei unterschiedlichen Compilern/Zielsystemen liefern. Geben Sie deshalb Code in Ihrer Anwendung ein (z.B. IF-Anweisungen im ST-Code), mit denen ein nicht-übereinstimmender Wertbereich erkannt wird.
Abhilfe: nicht vorhanden

55218

IDE-Dokumentation,
Systembausteine

Die Baustein-Beschreibung für den Baustein DIV enthält keine Information über das Abschneide-Verhalten bei Integers.
Szenario für Problem: Die IDE-Dokumentation für den Baustein DIV enthält keine Information, dass bei Division von ganzen Zahlen (Integers) das Ergebnis eine ganze Zahl desselben Typs ist und dabei der Nachkomma-Anteil gegen Null abgeschnitten wird (es wird nicht gerundet).
Beispiele:

  • Die Division 7/3 ergibt den Wert 2. Der Nachkomma-Anteil 0,333... wird abgeschnitten.

  • Die Division (-7)/3 ergibt den Wert -2. Der Nachkomma-Anteil 0,333... wird ebenfalls abgeschnitten.

Abhilfe: nicht vorhanden

55456

Anwendung validieren

Die Beschreibung der Modellregelkonfiguration enthält einige Details zu spezifischen Änderungen nicht.
Szenario für Problem: Es ist möglich, die Konfiguration der Modellregeln zu ändern, indem Werte in Dateien für die Modellregeln geändert werden. Zum Beispiel ist es möglich, eine Modellregel so zu konfigurieren, dass ihre Werte nicht in der GUI geändert werden können. Es ist unklar, warum die Modellregeln in der GUI von den folgenden Änderungen nicht betroffen sind:

  1. Die Konfiguration wurde in der Datei project.rule geändert.

  2. Der Wert overridable wurde von true auf false geändert.

Zusätzliche Informationen:

  • Die Konfiguration in den Dateien ist nicht in der Referenzdokumentation der IDE beschrieben. Starthinweise sind in der englische Dokumentation "Administrator's Manual" enthalten und Details zu den Dateien sind in der englischen API-SDK-Dokumentation enthalten. Die Auswirkungen der oben genannten Änderungen sind in diesen Dokumentation nicht beschrieben.

  • Die GUI listet möglicherweise überhaupt keine Modellregeln auf. Dies bedeutet, dass die Eigenschaften-Seite Validierung möglicherweise leer ist.

Abhilfe:

  1. Anstatt die Datei project.rule zu ändern: Ändern Sie die Grundkonfiguration der Regeln, d.h. jene Dateien, die im entsprechenden Unterordner von plugins des logi.CAD 3-Installationsordners liegen.

  2. Zusätzlich zum Ändern des Wertes overridable auf false: Geben Sie nur einen Wert unter allowedValues an.

55620

FBS-Editor

Die Netzwerke-Elemente werden möglicherweise nicht korrekt hinsichtlich ihrer Abarbeitungsreihenfolge ausgewertet, wenn das Netzwerk nur Funktionsbausteinen mit Rückkopplungsschleifen enthält.
Szenario für Problem: Falls ein Netzwerk nur Funktionsbausteine mit Rückkopplungsschleifen enthält (siehe die folgende Abbildung), wird die Abarbeitungsreihenfolge nicht so angezeigt, wie dies laut der Beschreibung in der IDE-Dokumentation erwartet wird.
Die folgende Abbildung zeigt die erwartete Abarbeitungsreihenfolge mit den Nummern (im schwarzen Kreis) im Gegensatz zur vergebenen Abarbeitungsreihenfolge mit den Nummern (im roten Rechteck):
images/download/attachments/512951550/ExutionOrder_Problem-version-1-modificationdate-1676891044069-api-v2.png

Zusätzliche Information: Laut der Beschreibung in der IDE-Dokumentation sollte logi.CAD 3 sich so verhalten:

  • Da keine einzige Anweisung im Netzwerk auswertbar ist, liegt eine Rückkopplungsschleife vor.

  • Zuerst versucht logi.CAD 3 die Summe der auszuwertenden Anweisungen zu reduzieren. Dazu werden die Anweisungen ignoriert, die der Rückkopplungsschleife nachfolgen und die keine weitere Rückkopplungsschleife enthalten. Dadurch verbleiben 2 linken Funktionsbausteine, die mit einem Wert von eins bzw. zwei versorgt werden.

  • Da keine Zuweisungen in diesen verbleibenden Anweisungen enthalten sind, wird der Aufruf des Funktionsbausteins ausgewählt, der am weitesten oben/links liegt. Das ist der Funktionsbaustein, der mit einem Wert von eins versorgt wird. logi.CAD 3 betrachtet die Ausgänge dieses Aufrufs als ausgewertet, bis der Aufruf tatsächlich ausgewertet werden kann.
    Nun ist dieser Funktionsbaustein und der Funktionsbaustein gleich daneben auswertbar.

  • Da mehrere Aufrufe auswertbar sind, bestimmt logi.CAD 3 die grafische Position dieser Aufrufe zueinander: Der Aufruf am weitesten oben/links wird ausgewertet (oben gilt vor links). Das ist der Funktionsbaustein, der in der Abbildung mit der Nummer 1 versehen ist. Somit wird dieser Funktionsbaustein als 1. Funktionsbaustein ausgewertet.
    Nun ist nur der ganz linke Funktionsbaustein auswertbar.

  • logi.CAD 3 wertet den ganz linken Funktionsbaustein aus, da er als einziges Element auswertbar ist. Dieser Funktionsbaustein ist in der Abbildung mit der Nummer 2 versehen. Somit wird dieser Funktionsbaustein als 2. Funktionsbaustein ausgewertet.
    Nun ist kein weiteres Element auswertbar. Details:

    • Der ganz rechte Funktionsbaustein, der in der Abbildung mit der Nummer 3 (im roten Rechteck) versehen ist, kann nicht ausgewertet werden, da sein Eingang y noch nicht ausgewertet wurde.

    • Der untere linke Funktionsbaustein, der mit einem Wert von zwei versorgt wird. kann nicht ausgewertet werden, da eine Rückkopplungsschleife vorliegt.

  • logi.CAD 3 versucht wieder die Summe der auszuwertenden Anweisungen zu reduzieren. Dazu werden wieder die Anweisungen ignoriert, die der Rückkopplungsschleife nachfolgen und die keine weitere Rückkopplungsschleife enthalten. Dadurch verbleibt der untere Funktionsbaustein, die mit einem Wert von zwei versorgt wird.

  • logi.CAD 3 betrachtet die Ausgänge dieses Aufrufs als ausgewertet, bis der Aufruf tatsächlich ausgewertet werden kann.
    Nun ist dieser Funktionsbaustein und der Funktionsbaustein gleich daneben auswertbar.
    Laut der Beschreibung in der IDE-Dokumentation sollte nun der Funktionsbaustein gleich daneben als 3. Element ausgewertet werden – wie durch die Nummer 3 (im schwarzen Kreis) in der Abbildung versehen. Tatsächlich wird aber fälschlicherweise der ganz rechte Funktionsbaustein als 3. Element ausgewertet. Dieser Funktionsbaustein ist in der Abbildung mit der Nummer 3 (im roten Rechteck) versehen.

Abhilfe: nicht vorhanden

55921

Systembausteine

Das Ergebnis eines DIV_TIME-Bausteins entspricht möglicherweise nicht den Erwartungen.
Szenario für Problem: Der DIV_TIME-Baustein dividiert den TIME-Wert am Eingang IN1 mit einem numerischen Wert am Eingang IN2 und liefert das Ergebnis dieser Division im Format TIME. Falls ein REAL-Wert am Eingang IN2 anliegt, ist es möglich, dass der Ergebniswert nicht den Erwartungen entspricht. Dies hat den technischen Hintergrund darin, dass für die interne Berechnung ein LREAL-Wert verwendet wird (statt eines REAL-Werts). Damit wird da eine höhere Rechengenauigkeit erreicht, als es eigentlich für REAL benötigt wird.
Beispiel: Bei einem REAL-Wert für IN2 wird das Ergebniswert TIME#3000d irrtümlich berechnet. Diese irrtümliche Berechnung erfolgt aufgrund der höhere Rechengenauigkeit. Im Vergleich: Falls der gleiche Wert für IN2 anliegt, aber mit dem Datentyp LREAL, wird der erwartete Wert TIME#3000d berechnet.
Bei einer internen Berechnung mit REAL würde der Wert TIME#2999d23h59m51s808ms geliefert. Dieser Wert entspricht hier der Erwartungshaltung für REAL-Werte.
Abhilfe, falls Sie exakte Werte berechnen wollen: Beschalten Sie den Eingang IN2 des DIV_TIME-Bausteins mit einem LREAL-Wert.

55951

Systembausteine

Der EXPT-Baustein liefert möglicherweise ein falsches Ergebnis.
Szenario für Problem: Der Baustein EXPT liefert das Ergebnis 1 für die Berechnung 0**0 . Das ist ein mathematisch falsches Ergebnis.
Zusätzliche Information: In diesem Fall wird der ENO-Ausgang von EXPT nicht auf FALSE zurückgesetzt, sondern es wird TRUE zurückgegeben. Es gibt also leider keinen Hinweis auf diese Art von Problem.
Abhilfe: Vermeiden Sie die Verwendung des Bausteins EXPT für die Berechnung 0**0.

55996

ST-Editor,
C-Code,
Anwendung erstellen

Die Verwendung von REAL#-0.0 oder LREAL#-0.0 kann zu Compiler-Warnungen beim Erstellen der Anwendung führen.
Szenario für Problem: Wenn REAL#-0.0 oder LREAL#-0.0 in ST-Code als typisiertes Literal verwendet wird, wird der Cast LC_TD_REAL oder LC_TD_LREAL im automatisch erstellten C-Code weggelassen und das Literal im C-Code ist immer vom Typ double (= LREAL).
Dies kann zu impliziten Casts im C-Code führen, was wiederum zu Compiler-Warnungen bei der Erstellung der Anwendung führen kann.

Beispiel für ST-Code
PROGRAM Programm1
VAR
Var1, Var2 : REAL;
END_VAR
 
Var1 := LN(REAL#-1.0); // OK: Der Cast 'LC_TD_REAL' wird im C-Code nicht weggelassen.
Var2 := LN(REAL#-0.0); // Nicht OK: Der Cast 'LC_TD_REAL' wird im C-Code weggelassen.
END_PROGRAMM

Zusätzliche Information: Beachten Sie das zusätzliche Problem mit der ID "56121", dass die Verwendung von -0.0 zu 0.0 im C-Code führen kann.
Abhilfe: Rufen Sie den Konvertierungsbaustein TO_REAL auf. Bezogen auf das obige Beispiel würde dies zu folgendem ST-Code führen:

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

56105

Vendor-Bausteine,
Anwendung erstellen

Ein leerer Fingerprint wird für einen Vendor-Baustein gemeldet, der die Anweisung extraIncludes enthält.
Szenario für Problem: Wenn ein Vendor-Baustein, der die Anweisung extraIncludes enthält, in der Anwendung verwendet wird, enthält der Build-Bericht (= der HTML-Bericht, in denen Informationen über die erstellte Anwendung und deren Bestandteile enthalten sind) die folgende Meldung: Das Extra-Include "Name" mit der Prüfsumme "" konnte nicht verifiziert werden – Die Meldung enthält einen leeren Fingerprint für die H-Datei, die in der Anweisung extraIncludes angegeben wurde.
Zusätzliche Informationen: Dieses Problem ist insbesondere bei der Entwicklung einer sicherheitsrelevanten Anwendung relevant, da der Fingerprint jedes Anwendungselements, das im Build-Report angeführt wird, überprüft werden muss. Ein leerer Fingerprint macht es unmöglich, mit dem Arbeitsablauf fortzufahren, wie im englischen Dokument "Safety instructions on working with the IDE" beschrieben.
Abhilfe: Verwenden Sie die H-Datei, die durch die Anweisung extraIncludes angegeben wurde, so dass sie verlinkt ist. Erstellen Sie die Anwendung erneut, sodass ein neuer Build-Bericht erstellt wird.

56121

ST-Editor,
C-Code

Die Angabe -0.0 wird möglicherweise zu 0.0 im C-Code.
Szenario für Problem: Wenn -0.0 im ST-Code eingegeben wird, fehlt das Zeichen - möglicherweise im automatisch erstellten C-Code.

Beispiel für ST-Code
PROGRAM Program1
VAR
Var1, Var2, Var3, Var4, Var5 : REAL;
END_VAR
 
Var1 := -0.0; // Ergebnis im C-Code: (LC_TD_REAL)0.0 - Fehler: Hier fehlt "-".
Var2 := LN(-0.0); // Ergebnis im C-Code: (LC_TD_REAL)0.0 - Fehler: Hier fehlt "-".
Var3 := REAL#-0.0; // Ergebnis im C-Code: -0.0 - Hier fehlt "-" zwar nicht, aber der Cast 'LC_TD_REAL' fehlt; siehe ID "55996"
Var4 := LN(REAL#-0.0); // Ergebnis im C-Code: -0.0 - Hier fehlt "-" zwar nicht, aber der Cast 'LC_TD_REAL' fehlt; siehe ID "55996"
Var5 := LN(TO_REAL(-0.0)); // Ergebnis im C-Code: (LC_TD_REAL)0.0 - Fehler: Hier fehlt "-".
END_PROGRAM

Abhilfe: nicht vorhanden

56113

Testframework

Ein Programm in einem Namespace kann nicht getestet werden.
Szenario für Problem: Beim Testen eines Programms, das in einem Namespace deklariert ist, wird die folgende Meldung in der Konsole angezeigt: An error occurred while processing Head: 'NoneType' object has no attribute 'has_head_row_occurred' – Der Test wird nicht ausgeführt und der Testbericht enthält keinen Fingerprint für das Programm.
Zusätzliche Informationen: Dieses Problem ist insbesondere bei der Entwicklung einer sicherheitsrelevanten Anwendung relevant, da der Fingerprint des Programms im Testbericht fehlt. Ein fehlender Fingerabdruck macht es unmöglich, mit dem Arbeitsablauf fortzufahren, wie im englischen Dokument "Safety instructions on working with the IDE" beschrieben.
Abhilfe (Empfehlung, falls Sie sicherheitsrelevante Anwendungen/Bibliotheken entwicklen): Verwenden Sie keine Namespaces für Programme. Führen Sie den Test erneut aus, damit der Testbericht den Fingerprint des Programms enthält.

56417

SPS,
Laufzeitsystem

Die SPS bzw. das Laufzeitsystem wird im Fall einer bestimmten Division unerwartet beendet.
Szenario für Problem: Bei der folgenden Division (siehe den folgenden ST-Code) wird bei der Ausführung Ihrer Anwendung die SPS bzw. das Laufzeitsystem unerwartet beendet. In Folge werden keine Werte für die Anwendung in der Sicht Variablenwerte angezeigt und der Zustand Offline wird in der Sicht Instanzen angezeigt.

Beispiel für ST-Code
PROGRAM Program1
VAR
dintm1 : DINT := DINT#-1;
dintVar : DINT;
END_VAR
dintVar := DIV(DINT#-2_147_483_648, dintm1);
END_PROGRAM

Abhilfe: Stoppen und starten Sie die SPS bzw. das Laufzeitsystem, entfernen Sie den ST-Code mit dieser Division und laden Sie die Anwendung erneut auf die SPS.
Falls das Laden der Anwendung auf die SPS nicht möglich ist, müssen Sie wahrscheinlich die Datei RTSCode oder RTSCode.dll löschen. Informieren Sie sich am besten im Troubleshooting-Beitrag "Die SPS ist nicht ansprechbar. Das Laufzeitsystem reagiert langsam oder gar nicht." über Details, wo diese Datei zu finden ist.

56573

Vendor-Bausteine

Der Fingerprint eines Vendor-Bausteins mit der Eigenschaft CustomNameSpace wird nicht korrekt aktualisiert.
Szenario für Problem: Falls ein Bibliothekselement geändert und die Bibliothek neu erstellt wird, wird der Fingerprint des Elements aktualisiert. Im folgenden Szenario wird der Fingerprint jedoch nicht korrekt aktualisiert:

  • Sie erstellen einen Vendor-Baustein mit der Eigenschaft CustomNameSpace.

  • Sie spezifizieren diesen Vendor-Baustein in der Bibliothekskonfiguration.

  • Sie erstellen die Bibliothek auf Basis der Bibliothekskonfiguration.
    Ergebnis: Der Bibliothekerzeugungs-Bericht enthält den Fingerprint für den Vendor-Baustein.

  • Sie ändern die H- oder die C-Datei für den Vendor-Baustein.

  • Sie erstellen die Bibliothek erneut (auf Basis der gleichen Bibliothekskonfiguration).
    Ergebnis: Der neue Bibliothekerzeugungs-Bericht enthält weiterhin den ursprünglichen Fingerprint für den Vendor-Baustein.

Zusätzliche Informationen:

  • Das gleiche Problem gilt für die Berichte, die beim Validieren, Testen und Erstellen der Anwendung erzeugt werden.

  • Das Problem ist insbesondere für Systemintegratoren und bei der Entwicklung einer sicherheitsrelevanten Anwendung relevant. Gründe:

    • Vendor-Bausteine werden üblicherweise von Systemintegratoren erstellt und in Bibliotheken bereit gestellt.

    • Bei der Entwicklung einer sicherheitsrelevanten Anwendung muss der Fingerprint jedes Elements, das im Bericht angeführt wird, überprüft und mit den Fingerprints in anderen Berichten verglichen werden (z.B. den SiL-/PiL-Test-Berichten). Ein unterschiedlicher oder falscher Fingerprint macht es unmöglich, mit dem Arbeitsablauf fortzufahren, wie im englischen Dokument "Safety instructions on working with the IDE" beschrieben.

  • Die Angabe bei CustomNameSpace wird als Teil des Namen der erzeugten H-/C-Datei verwendet.

Abhilfe: Verwenden Sie die Eigenschaft CustomNameSpace nicht. Oder bereinigen Sie das Projekt nach jeder Änderung der H- oder C-Datei, damit der Fingerprint in den Berichten für den Vendor-Baustein korrekt aktualisiert wird.

56764

Vendor-Bausteine

Der Fingerprint eines Vendor-Bausteins mit der Eigenschaft implementationName wird nicht korrekt aktualisiert.
Szenario für Problem inkl. zusätzliche Informationen: Wie für ID "56573", jedoch für die Eigenschaft implementationName.
implementationName bestimmt, dass ein anderer Bausteinnamen als Bestandteil des Dateinamens verwendet wird – sowohl für die H-Datei als auch für die C-Datei (falls die Definition functionHasCFile ebenfalls angegeben ist)
implementationName ist insbesondere dann sinnvoll, falls mehrere identische Funktionen in derselben Datei implementiert werden sollen.
Abhilfe: Wie für ID "56573", jedoch für die Eigenschaft implementationName.

59209

Datentypen,
Anwendung erstellen

Eine Änderung der automatisch generierten C-/H-Datei für einen Datentyp wird nicht geprüft.
Szenario für Problem: Bei einer Änderung des Inhalt einer C-Datei, die automatisch für einen Datentyp erzeugt wird, der von Ihnen im ST-Editor deklariert wurde, enthält der Build-Bericht (= der HTML-Bericht, in denen Informationen über die erstellte Anwendung und deren Bestandteile enthalten sind) keinen Fehler oder einen anderen Hinweis, dass die C-Datei bearbeitet wurde und nicht mit der Deklaration im ST-Editor übereinstimmt. Das gleiche Problem trifft bei einer Änderung der automatisch erzeugten H-Datei auf.
Zusätzliche Informationen: Dieses Problem ist insbesondere bei der Entwicklung einer sicherheitsrelevanten Anwendung relevant, da der Build-Report für solche Anwendungen überprüft werden muss.
Abhilfe: Bearbeiten Sie keine C-/H-Dateien, die automatisch für Datentypen erzeugt werden.

62166

IDE-Dokumentation

Die Online-Hilfe, die lokale HTML-Hilfe und die PDF-Dateien enthalten möglicherweise nicht die vollständige Liste der Bausteine mit interner Fehlerdiagnose.
Szenario für Problem: Der Artikel " Ausführungssteuerung: EN, ENO " enthält eine Liste der Bausteine mit interner Fehlerdiagnose. Diese Liste ist möglicherweise nicht vollständig, sondern es können Bausteine nach dem TO_TOD-Baustein fehlen. Bei diesen fehlenden Bausteinen kann es sich um die folgenden Bausteine handeln:

  • TO_UDINT-Baustein

  • TO_UINT-Baustein

  • TO_ULINT-Baustein

  • TO_USINT-Baustein

  • TO_WORD-Baustein

  • UDP_Close-Baustein

  • UDP_Open-Baustein

  • UDP_Receive-Baustein

  • UDP_Send-Baustein

Zusätzliche Information: Das Problem betrifft die Online-Hilfe vor dem 10. Oktober 2023 aber auch die lokalen HTML-Hilfen und die PDF-Dateien, die für diese Version und/oder vorhergehende Versionen erstellt wurden.

Abhilfe (nach dem 10. Oktober 2023 möglich): Gehen Sie zum Artikel https://help.logicals.com/lco3docu/latest/user-documentation/de/referenzdokumentation/anwendung-erstellen/anwendung-im-st-editor-erstellen/ausfuehrungssteuerung-en-enoimages/images/icons/linkext7.gif in der Online- Hilfe und wechseln Sie zur entsprechenden Version. Der Artikel enthält die vollständige Liste.

107650

Sicherheitsrelevanten Anwendungen, Anwendung erstellen

Der Baustein SEL_DWORD kann nicht in sicherheitsrelevanten Anwendungen verwendet werden.
Szenario für Problem: Wenn eine sicherheitsrelevante Anwendung den Baustein SEL_DWORD verwendet und diese Anwendung erstellt wird, wird eine Fehlermeldung ausgegeben, dass sich die Fingerprints von SEL_DWORD unterscheiden.
Zusätzliche Informationen: Der Baustein SEL_DWORD fehlt im englischen Dokument "Safety instructions on working with the IDE" in der Liste der nicht-unterstützten Bausteine. Daher sollte dieser Baustein in sicherheitsrelevanten Anwendungen verwendet werden können.
Abhilfe: Verwenden Sie den Baustein SEL_DWORD nicht in sicherheitsrelevanten Anwendungen.

107784

Sicherheitsrelevanten Anwendungen, Informationen für den Anwender, IDE-Dokumentation, Dokument "Sicherheitshinweise zum Arbeiten mit der IDE"

Das englische Dokument "Safety instructions on working with the IDE" (Version 2.0) enthält eine Einschränkungen nicht.
Szenario für Problem: Das englische Dokument "Safety instructions on working with the IDE" (Version 2.0) enthält die folgende Information nicht:

  • Der Abschnitt BINARY_LIBRARIES ... END_BINARY_LIBRARIES (für das Erstellen von eigenen Bibliotheken mit Anwenderbausteinen) wird nicht unterstützt.

Auch wenn das oben genannte Element nicht im englischen Abschnitt "List of unsupported and restricted element" des Dokuments in Version 2.0 aufgeführt sind, dürfen Sie den angegebenen Abschnitt bei der Entwicklung sicherheitsrelevanter Anwendungen nicht verwenden.
Abhilfe: nicht vorhanden

108185

Anwendung erstellen, sicherheitsrelevante Anwendungen

Falscher C-Code wird erzeugt, falls Sie eine Funktionsbaustein-Instanz aufrufen, die als eine Ein-/Ausgangsvariable deklariert ist. In Folge kann Speicher auf der SPS überschrieben werden.
Szenario für Problem: Falls Sie eine Funktionsbaustein-Instanz aufrufen, die als eine Ein-/Ausgangsvariable (= VAR_IN_OUT) deklariert ist (siehe Beispiel), kann die Anwendung zwar erstellt werden. Allerdings wird falscher C-Code erzeugt, wodurch möglicherweise Speicher auf der SPS überschrieben werden kann.

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

Abhilfe 1: Deklarieren Sie keine Funktionsbaustein-Instanz als eine Ein-/Ausgangsvariable.
Abhilfe 2: Verwenden Sie die kommende logi.CAD 3 Version 3.23.2 oder Version 3.24.0, in der das Problem behoben sein wird.

108609

IDE-Dokumentation, Datentypen

Die IDE-Dokumentation enthält falsche Informationen: Die Untergrenze und die Obergrenze für den Datentyp BOOL nicht korrekt angegeben.
Szenario für Problem: Der Artikel "Unterstützte Datentypen (in ST)" in der IDE-Dokumentation spezifiziert die unterstützten Datentypen, ihre Initialierungswerte, Untergrenzen und Obergrenzen. Die Untergrenze und die Obergrenze für den Datentyp BOOL sind in der IDE-Dokumentation nicht korrekt angegeben. Beachten Sie, dass die deutsche und die englische Sprache der IDE-Dokumentation falsche Informationen enthalten.
Der folgende Text über die untere Grenze und die obere Grenze ist die korrekte Information für den Datentyp BOOL:

Standard-Initialierungswert (I): 0 oder FALSE
Untergrenze (U): wie Standard-Initialisierungswert (I)
Obergrenze (O): 1 oder TRUE

Abhilfe: nicht vorhanden

Prüfsumme für Bestandteile von logi.CAD 3 Version 3.16.2

Bestandteil

Version

Prüfsumme

Beschreibung

logi.CAD 3 IDE

Version 3.16.2

305ff77e4845eb7910f29c42f2f134ea

Prüfsumme aus configuration\com.logicals\application.md5 (bezogen auf den Installationsordner von logi.CAD 3)

Systembibliothek Standard


Version 3.2.8.1


9b96615a7ba362044256a304576886c2

Prüfsumme aus index.md5, enthalten in plugins\com.logicals.library.lc3lib_3.16.2\libautoinstall\com.logicals.lc3.library.standard__3.2.8.1.ZIP (bezogen auf den I nstallationsordner von logi.CAD 3)