Deklaration des Inhalts für die Bibliothek

Syntax
LIBRARY fully.qualified.name
...
FOLDER "name1" (* a folder to be included in the library *)
(* 'IEC' specifies an element to be included in the above-specified folder. Some of its values are invalid for library type 'LOGIWEB' and 'LOGISAFE', others for 'LOGICAD'. *)
IEC := fully.qualified.name1|POU-name1; (* optional_begin *), DEPLOY:=SOURCE|INTERFACE|OBJECT, VISIBILITY:=PUBLIC|PRIVATE, SiLCoverageReviewed:="<FINGERPRINT>", "Comment on reviewed coverage" (* optional_end *);
IEC := fully.qualified.name2|POU-name2;
...
(* 'FILE' specifies an additional file to be included in the above-specified folder. *) 
FILE := "path\name1"; (* Note: Paths can be entered by using: \ or / *)
FILE := "path\name2" (* optional_begin *), SOURCEPATH := "path" (* optional_end *);
...
FOLDER "name2" (* a sub-folder to be included in the library *)
IEC := fully.qualified.name3|POU-name3; (* 'IEC' and 'FILE' statements can be used as specified above. *)
FILE := "path/name3" (* optional_begin *), SOURCEPATH := "path" (* optional_end *);
...
END_FOLDER
... (* additional folders and/or sub-folders with 'IEC' and 'FILE' statements as needed *)
END_FOLDER
 
(* optional statements for 'LOGICAD', invalid for library type 'LOGIWEB' and 'LOGISAFE'. *)
BINARY_LIBRARIES FOR platform-name
FILE:= "path\name4";
FILE:= "path\name5" (* optional_begin *), SOURCEPATH := "path" (* optional_end *);
...
END_BINARY_LIBRARIES
BINARY_OBJECTS FOR BuiltInPlc
FILE := "path\name6";
   FILE := "path\name7" (* optional_begin *), SOURCEPATH := "path" (* optional_end *);
...
END_BINARY_OBJECTS
INCLUDES (* optional_begin *) FOR platform-name (* optional_end *)
FILE:= "path\name8";
FILE:= "path\name9" (* optional_begin *), SOURCEPATH := "path" (* optional_end *);
...
END_INCLUDES
SOURCES (* optional_begin *) FOR platform-name (* optional_end *)
FILE:= "path\name10";
FILE:= "path\name11" (* optional_begin *), SOURCEPATH := "path" (* optional_end *);
...
END_SOURCES
END_LIBRARY

Bedeutung

Deklaration des Inhalts für eine →Bibliothek
Die Deklarationen sind in einer Bibliothekskonfiguration innerhalb von LIBRARY und END_LIBRARY möglich. Siehe "Deklaration der Erstellungsinformationen und Referenzen für die Bibliothek" für die Möglichkeiten vor FOLDER.

images/s/b2ic8e/9012/1ca6q62/_/images/icons/emoticons/warning.svg Abhängig vom Bibliothekstyp (siehe unter "Eigene Bibliothek erstellen und bereitstellen" für Details zum Bibliothekstyp) sind bestimmte der folgenden Abschnitte/Elemente nicht zulässig. Siehe "Besonderheiten für logi.SAFE-/logi.WEB-Bibliotheken", welche Anweisungen für eine logi.SAFE- und logi.WEB-Bibliothek vorausgesetzt werden und welche nicht enthalten sein dürfen.Der Inhalt der Bibliothek ergibt sich aus diesen Abschnitten/Elementen:

Abschnitt/Element

Erläuterung

FOLDER "name"
...
END_FOLDER

ein Ordner in der Bibliothek, wobei name ein gültiger Name für den Pfad im Betriebssystem sein muss
Beispiel für Windows: Sonderzeichen, wie z.B. * oder >, müssen vermieden werden.

Spezifizieren Sie einen Abschnitt FOLDER ... END_FOLDER für jeden benötigten Ordner in der Bibliothek. Die Ordner werden im Unterordner FOLDER der Bibliothek erstellt.
Falls Unterordner benötigt werden, spezifizieren einen Abschnitt FOLDER ... END_FOLDER innerhalb eines anderen Abschnitts FOLDER ... END_FOLDER (siehe FOLDER "Testing" ... END_FOLDER im folgenden Beispiel 1).

Hinweis: Es ist möglich, die Angabe "name" für den ersten Abschnitt FOLDER ... END_FOLDER wegzulassen. Auswirkung: Die Dateien für alle Anweisungen, die in diesem ersten Abschnitt FOLDER ... END_FOLDER spezifiziert sind, werden dann direkt in den Unterordner FOLDER der Bibliothek kopiert (siehe das folgende Beispiel 2).

IEC := fully.qualified.name|POU-name
(* optional_begin *), DEPLOY:=SOURCE|INTERFACE|OBJECT,
VISIBILITY:=PUBLIC|PRIVATE, SiLCoverageReviewed:="<FINGERPRINT>", "Comment on reviewed coverage"
(* optional_end *);

das Bibliothekselement in der Bibliothek; Das Bibliothekselement ist entweder eine →POE, ein →Datentyp oder ein →Interface (Eine →Methode darf bei IEC := nicht angegeben werden. Als Alternative können Sie den Funktionsbaustein angeben, in dem die Methode deklariert ist – dieser dann nur mit DEPLOY:=SOURCE).

Bei einer logi.SAFE- oder logi.WEB-Bibliothek muss das Bibliothekselement bestimmte Vorgaben erfüllen; siehe unter "Besonderheiten für logi.SAFE-/logi.WEB-Bibliotheken".

Der anzugebende Name des Elements ist abhängig davon, ob Sie einen →Namespace beim Erstellen des Elements verwendet haben:

  • Falls ja (laut der Empfehlung von logi.cals), geben Sie den voll qualifizierten Name ein. Dies erfolgt, wie dies unter "Namespaces in ST: Verwendung" beschrieben ist.
    Beispiel: com.Musterfirma.Controller.Motor1 – wobei der Motor1 -Baustein im verschachtelten Namespace com.Musterfirma.Controller deklariert ist

  • Falls nein, geben Sie nur den POE-Namen ein.
    Beispiel: Counter für den Funktionsbaustein Control

Spezifizieren Sie eine Anweisung IEC := ... für jedes benötigte Element in der Bibliothek. Diese Anweisung ist innerhalb eines Abschnitts FOLDER ... END_FOLDER möglich.
Einschränkung: Ein →Programm mit →globalen Variablen darf nicht spezifiziert werden.

Das optionale Schlüsselwort DEPLOY definiert das Format für das Element, wie die Anweisungen des Elements in die Bibliothek kopiert werden. Alle 3 Werte sind für eine logi.CAD 3-Bibliothek möglich.

  • SOURCE – Damit werden alle Anweisungen des Elements in die Bibliothek kopiert. SOURCE ist der Standardwert und wird ohne angegebenes Schlüsselwort DEPLOY angewendet.
    Nur dieser Wert SOURCE ist für ein →Programm, einen Funktionsbaustein mit →Methoden, ein →Interface
    , eine logi.SAFE- oder logi.WEB-Bibliothek möglich.

  • INTERFACE – Damit werden nur die Schnittstellen-relevanten Anweisungen des Elements in die Bibliothek kopiert und die Zuweisungen im Element – also die eigentlichen Sourcen (der eigentliche Code oder die eigentliche Logik) – sind nicht mehr direkt im den Bibliothekselement einsehbar. Der benötigte Binärcode für das Element wird erst bei der Verwendung der Bibliothekselemente erstellt.
    Beachten Sie diese Auswirkungen:

    • Falls eine FBS-POE oder KOP-POE mit diesem Wert angegeben wird, erzeugt logi.CAD 3 für die Bibliothek ein ST-Objekt (= eine Datei mit Dateierweiterung .iecst statt einer Datei mit der ursprünglichen Dateierweiterung , z.B..iecfbd). In der bereitgestellten Bibliothek wird in Folge für das Bibliothekselement der ST-Editor statt des FBS-/KOP-Editors geöffnet. Sie dürfen aber davon ausgehen, dass diese Änderung keine Auswirkungen auf die Verwendung des Bibliothekselements hat.
      Abhängig davon, wie Sie die Bibliothek erzeugen, kann eine Bibliothek aber die Sourcen in einer passwort-geschützten Bibliothek enthalten.

    • Das angegebene Element darf keine →externe Variablen enthalten.

  • OBJECT – wie bei INTERFACE, mit diesem Unterschied: Der benötigte Binärcode für das Element wird bereits beim Erzeugen der Bibliothek erstellt. Aufgrund dieses Wert schützen Sie den Inhalt des Elements gegenüber Dritten (= Know-How-Schutz), da die Bibliothek nur mehr die Schnittstelle des Elements als Klartext enthält, aber nicht mehr den eigentlichen Code bzw. den eigentlichen Logik des Elements.
    Beachten Sie diese Auswirkungen:

    • wie bei INTERFACE – Eine FBS-/KOP-POE wird zum ST-Objekt in der Bibliothek. Die Sourcen dafür können ebenfalls in einer passwort-geschützten Bibliothek enthalten sein.

    • wie bei INTERFACE – Das angegebene Element darf keine externe Variablen enthalten.

    • Die Bibliothekskonfiguration muss zusätzlich die Anweisung SUPPORTED_PTKS:=Plattform-Name verwenden. Damit gilt die bereitgestellte Bibliothek nur für Anwendungen mit den angegebenen Plattformen. Siehe "Deklaration der Erstellungsinformationen und Referenzen für die Bibliothek" für Details zu dieser Anweisung.

Das optionale Schlüsselwort VISIBILITY definiert die Sichtbarkeit des Elements in der Bibliothek. Diese Werte sind möglich:

  • PUBLIC – Damit wird das Element zu einem öffentlichen Bibliothekselement, das ohne Einschränkung in der Bibliothek sichtbar ist. PUBLIC ist der Standardwert und wird ohne angegebenes Schlüsselwort VISIBILITY angewendet.

  • PRIVATE – Damit wird das Element zu einem privaten Bibliothekselement, das in der Bibliothek enthalten ist, aber standardmäßig nicht in logi.CAD 3 sichtbar ist (eigentlich in der grafischen Oberfläche von logi.CAD 3).
    Solche private Bibliothekselemente sind üblicherweise Hilfsfunktionen, die in öffentlichen Bibliothekselementen verwendet werden. Die Hilfsfunktionen müssen in der Bibliothek enthalten sein, damit die anderen Bibliothekselemente korrekt funktionieren. Die Hilfsfunktionen sollen aber nicht direkt in der Anwendung verwendet werden können.

Das optionale Schlüsselwort SiLCoverageReviewed definiert, dass das Bibliothekselement keine vollständige Testabdeckung für die logi.SAFE- oder logi.WEB-Bibliotheken erreichen muss. Die folgende Angaben werden dabei benötigt:

  • "<FINGERPRINT>" – Geben Sie den →Fingerprint des Bibliothekselement an. Sie finden den Fingerprint im Bibliothekerzeugungs-Bericht, der während der Erzeugung der Bibliothek erstellt wird. Suchen Sie in dieser HTML-Datei am besten nach dem Namen des Bibliothekselements und kopieren Sie darin den Fingerprint dieses Bibliothekselements in die Zwischenablage. Danach fügen Sie den Fingerprint nach SiLCoverageReviewed ein.

  • "Comment on reviewed coverage" – Geben Sie einen aussagekräftigen Kommentar an, warum eine Abweichung von der vollständigen Testabdeckung gerechtfertigt ist.

Hinweise zur Anweisung IEC:

  • Das spezifizierte Element muss im Projekt vorhanden sein, damit dieBibliothek erzeugt werden kann.

  • Falls das spezifizierte Elements andere Elemente (z.B. POE/Datentypen) verwendet, werden diese nicht automatisch in dieBibliothek kopiert. Das heißt, Sie müssen alle verwendeten Elementen ebenfalls durch die Anweisungen IEC := ... spezifizieren.

  • DieBibliothek enthält jene Datei, in der das spezifizierte Element deklariert ist. Beispiel: Falls die POE Motor1 in der Datei MyPOU1.iecst deklariert ist, enthält die Bibliothek die Datei MyPOU1.iecst.

  • Falls Sie mehrere Elemente in einem ST-Objekt deklariert haben, verwendet logi.CAD 3 nur den Inhalt, der für das betroffene Element benötigt wird.

FILE := "path/name" (* optional_begin *), SOURCEPATH := "path" (* optional_end *);

eine zusätzliche Datei in der Bibliothek, wobei path und name ein gültiger Name für den Pfad bzw. Dateinamen im Betriebssystem sein muss
Beispiel für Windows: Sonderzeichen, wie z.B. * oder >, müssen vermieden werden.

Spezifizieren Sie eine Anweisung FILE := ... für jede benötigte Datei in der Bibliothek. Diese Anweisung ist innerhalb dieser Abschnitte möglich: FOLDER ... END_FOLDER, BINARY_LIBRARIES ... END_BINARY_LIBRARIES, BINARY_OBJECTS ... END_BINARY_OBJECTS, INCLUDES ... END_INCLUDES und SOURCES ... END_SOURCES

Hinweise:

  • Die spezifizierte Datei muss im Projekt vorhanden sein, damit die Bibliothek erzeugt werden kann.

  • Geben Sie den projektrelativen Pfad an.

  • Die Datei wird mit dem spezifizierten Pfad in der Bibliothek abgelegt.

Das optionale Schlüsselwort SOURCEPATH definiert einen zusätzlichen Pfad, in dem die Datei im aktuellen Projekt gesucht wird. Dieser Pfad wird jedoch für die Ablage der Datei in der Bibliothek nicht berücksichtigt. Siehe Beispiele mit SOURCEPATH für Details.

BINARY_LIBRARIES FOR platform-name
FILE := ...
END_BINARY_LIBRARIES
BINARY_OBJECTS FOR platform-name
FILE := ...
END_BINARY_OBJECTS

Binaries für die logi.CAD 3-Bibliothek, im speziellen C-Bibliotheken (.lib) und Object-Dateien (*.o oder *.obj), die beim Linking-Vorgang der Anwendung ebenfalls gelinkt werden müssen
Statt des Attributs platform-name müssen Sie eine der Plattformen spezifizieren, die in logi.CAD 3 verfügbar sind. Die Liste der verfügbaren Plattformen finden Sie unter "SPS im SPS-Objekt konfigurieren".
Spezifizieren Sie die Abschnitte BINARIES_LIBRARIES ... END_BINARY_LIBRARIES und BINARY_OBJECTS ... END_BINARY_OBJECTS für jede Plattform, für die die Binaries benötigt werden. Die Dateien spezifizieren Sie durch die entsprechenden Anweisungen: FILE := ... (siehe oben für deren Syntax)

Die Dateien werden in den Unterordner BINARY_LIBRARIES\platform-name.PTK oder BINARY_OBJECTS\platform-name.PTK der Bibliothek kopiert.

Hinweis: Die spezifizierten Dateien werden von logi.CAD 3 beim Erstellen der Bibliothek nicht geprüft (z.B. falls falsche Binaries oder Textdateien angegeben sind). Das bedeutet, Fehler zu diesen Dateien werden erst beim Erstellen einer Anwendung gemeldet, die die Elemente aus der Bibliothek verwenden.

INCLUDES (* optional_begin *) FOR platform-name (* optional_end *)
FILE := ...
END_INCLUDES

Includes für die logi.CAD 3-Bibliothek, im speziellen Header-Dateien (*.h), die beim Compile-Vorgang gefunden werden müssen (also im Include-Pfad aufgenommen werden müssen), falls die Anwendung erstellt wird, in der die Elemente aus der erzeugten/installierten Bibliothek verwendet werden

Sie können mehrere Abschnitte INCLUDES ... END_INCLUDES spezifizieren. Die Header-Dateien spezifizieren Sie durch die entsprechenden Anweisungen: FILE := ... (siehe oben für deren Syntax).
Die Dateien werden in den Unterordner INCLUDES oder INCLUDES\platform-name.PTK der Bibliothek kopiert.
Statt des Attributs platform-name (in der optionalen Angabe FOR platform-name) können Sie eine der Plattformen spezifizieren, die in logi.CAD 3 verfügbar sind. In diesem Fall werden die Includes beim Erstellen der Anwendung für die SPS gefunden, für die die gleiche Plattform spezifiziert ist. Für eine SPS, für die eine andere Plattform spezifiziert ist. werden die Includes nicht gefunden, d.h., die Anwendung kann für diese SPS nicht erstellt werden.
Falls Sie die Bibliothek mit den gleichen Includes für verschiedene SPS mit verschiedenen Plattformen unterstützen wollen, definieren Sie am besten nur einen Abschnitt, in dem Sie den Namen der Plattform (inkl. dem Schlüsselwort FOR) weglassen.

Hinweis: Die spezifizierten Dateien werden von logi.CAD 3 beim Erstellen der Bibliothek nicht geprüft, sondern nur für den Suchpfad für Include-Dateien hinzugefügt. Das bedeutet, Fehler zu diesen Dateien werden erst beim Erstellen einer Anwendung gemeldet, die die Elemente aus der Bibliothek verwenden.

Erläuterung anhand von Beispielen, wie sich das optionale Schlüsselwort SOURCEPATH bei der Anweisung FILE := ... im Abschnitt INCLUDES FOR platform-name ... END_INCLUDES auswirkt:

  • Beispiel 1, FILE := "sys/GlobalIncludes1.h", SOURCEPATH := "src/h";: Die Datei GlobalIncludes1.h wird im Unterordner src/h/sys des Projekts gesucht und in den Ordner INCLUDES\platform-name\sys der Bibliothek kopiert.
    Konsequenz: Falls Sie diese H-Datei in einem C-Baustein innerhalb des Projekts verwenden wollen, in dem die Bibliothekt installiert ist, muss das Include-Statement mit sys/GlobalIncludes1.h erfolgen.

  • Beispiel 2, FILE := "GlobalIncludes2.h", SOURCEPATH := "src/h";: Die Datei GlobalIncludes2.h wird im Unterordner src/h des Projekts gesucht und in den Ordner INCLUDES\platform-name der Bibliothek kopiert.
    Konsequenz: Falls Sie diese H-Datei in einem C-Baustein innerhalb des Projekts verwenden wollen, in dem die Bibliothek installiert ist, muss das Include-Statement mit GlobalIncludes2.h erfolgen.

Hinweise zu beiden Beispielen: Falls Sie die H-Datei in einem C-Baustein innerhalb des Projekts verwenden wollen, in dem die Bibliothek erzeugt wird, müssen Sie diese Datei in den Einstellungen für C-Bausteine definieren. Für beide Beispielen wäre dieser Include-Pfad erforderlich: ${PROJECT_LOC}\src\hFalls Sie SOURCEPATH := ... jedoch nicht verwenden, wäre dieser Include-Pfad erforderlich: ${PROJECT_LOC}

SOURCES (* optional_begin *) FOR platform-name (* optional_end *)
FILE := ...
END_SOURCES

Quelldateien für die logi.CAD 3-Bibliothek, im speziellen C-Dateien (*.c) oder C++-Dateien (*.cpp), die beim Compile-Vorgang kompiliert und gelinkt werden müssen, falls die Anwendung erstellt wird, in der die Elemente aus der erzeugten/installierten Bibliothek verwendet werden

Sie können mehrere Abschnitte SOURCES ... END_SOURCES spezifizieren. Die Quelldateien spezifizieren Sie durch die entsprechenden Anweisungen: FILE := ... (siehe oben für deren Syntax).
Die Dateien werden in den Unterordner USER_SOURCES\GLOBAL__SOURCES\ oder USER_SOURCES\platform-name.PTK der Bibliothek kopiert.
Statt des Attributs platform-name (in der optionalen Angabe FOR platform-name) können Sie eine der Plattformen spezifizieren, die in logi.CAD 3 verfügbar sind. In diesem Fall werden die Quelldateien beim Erstellen der Anwendung für die SPS gefunden, für die die gleiche Plattform spezifiziert ist. Für eine SPS, für die eine andere Plattform spezifiziert ist. werden die Quelldateien nicht gefunden, d.h., die Anwendung kann für diese SPS nicht erstellt werden.
Falls Sie die Bibliothek mit den gleichen Quelldateien für verschiedene SPS mit verschiedenen Plattformen unterstützen wollen, definieren Sie am besten nur einen Abschnitt, in dem Sie den Namen der Plattform (inkl. dem Schlüsselwort FOR) weglassen.

Hinweis: Die spezifizierten Dateien werden von logi.CAD 3 beim Erstellen der Bibliothek nicht geprüft (z.B. falls fehlerhafte C- oder C++-Dateien angegeben sind), sondern erst kompiliert, falls das entsprechende Element in der Anwendung verwendet wird. Das bedeutet, Fehler zu diesen Dateien werden erst beim Erstellen einer Anwendung gemeldet, die die Elemente aus der Bibliothek verwenden.

Beispiel 1

Das folgende Beispiel bewirkt, dass die erzeugte Bibliothek:

LIBRARY com.Musterfirma.Controller (* Die Bibliothek wird mit dem Namen 'com.Musterfirma.Controller__1.1.0-SNAPSHOT.zip' erstellt. *)
VERSION := 1.1.0-SNAPSHOT;
PACKAGETYPE := zip;
FOLDER "Motors" (* Die Bibliothek enthält den Ordner 'Motors' und den Unterordner 'Testing'. In der ZIP-Datei existiert also: FOLDER\Motors\Testing *)
IEC := com.Musterfirma.Controller.Motor1; (* Unter 'Motors" werden die Dateien 'com.Musterfirma.Controller.Motor1' und 'com.Musterfirma.Controller.Motor2' enthalten sein. *)
IEC := com.Musterfirma.Controller.Motor2;
FILE := ".olh\com.Musterfirma.Controller.Motor1.DE.html", SOURCEPATH := "src/"; (* Die Dateien für die externe Bausteinhilfen zu 'Motor1' und 'Motor2' - in Deutsch. *)
FILE := ".olh\Motor1.png", SOURCEPATH := "src/";
FILE := ".olh\com.Musterfirma.Controller.Motor2.DE.html", SOURCEPATH := "src/";
FILE := ".olh\Motor2.png", SOURCEPATH := "src/";
FILE := ".olh\style.css", SOURCEPATH := "src/";
FOLDER "Testing" (* Unter 'Testing" werden die Dateien 'com.Musterfirma.Controller.Test1' und 'com.Musterfirma.Controller.Testr2' enthalten sein. *)
IEC := com.Musterfirma.Controller.Test1;
IEC := com.Musterfirma.Controller.Test2;
FILE := ".olh\com.Musterfirma.Controller.Test1.DE.html", SOURCEPATH := "src/"; (* Die Dateien für die externe Bausteinhilfen zu 'Test1' und 'Test2' - in Deutsch. *)
FILE := ".olh\Test1.png", SOURCEPATH := "src/";
FILE := ".olh\com.Musterfirma.Controller.Test2.DE.html", SOURCEPATH := "src/";
FILE := ".olh\Test2.png", SOURCEPATH := "src/";
FILE := ".olh\style.css", SOURCEPATH := "src/";
END_FOLDER
END_FOLDER
BINARY_LIBRARIES FOR BuiltInPlc (* Die Bibliothek wird außerdem noch einige Binaries, Include- und Source-Dateien enthalten. *)
FILE := "libs\mathlib.lib";
END_BINARY_LIBRARIES
BINARY_OBJECTS FOR BuiltInPlc
FILE := "libs\mathlib.o";
END_BINARY_OBJECTS
INCLUDES
FILE := "h\mathlib.h";
END_INCLUDES
SOURCES
FILE := "code.c" , SOURCEPATH := "c";
END_SOURCES
END_LIBRARY

Mehr Erklärungen zu den Anweisungen für die externen Bausteinhilfen finden Sie unter "Beispiel: Bibliothek mit Bausteinen inkl. Hilfe-Dateien erstellen".

Beispiel 2
LIBRARY com.MyCompany.MyLib2
...
FOLDER (* Die Bibliothek wird direkt unterhalb von 'FOLDER' die Elemente enthalten. *)
IEC := com.Musterfirma.Controller.Motor1;
IEC := com.Musterfirma.Controller.Motor2;
END_FOLDER
...
END_LIBRARY

Beispiel 3 zeigt die Bibliothekskonfiguration für eine logi.SAFE-Bibliothek:

Beispiel 3
LIBRARY com.MyCompany.MyLibSAFE
VERSION :=1.1.0;
LIBRARYTYPE:=LOGISAFE;
PTK_FOR_LIBRARY_BUILD:=SafeLibraryWindowsX86;
FOLDER "SAFE"
IEC := com.Musterfirma.Safe.Motor1;
IEC := com.Musterfirma.Safe.Motor2, SiLCoverageReviewed := "E870DD09", "defensive programming -> 70% coverage is OK";
END_FOLDER
END_LIBRARY