Skip to main content

C-Module integrieren

Mit der CODESYS C-Code-Integration können in C entwickelte Module in ein CODESYS-Projekt als Bibliothek eingebunden werden. Das Modul wird als dynamisches Runtime-Modul zusammen mit der darin implementierten IEC-Schnittstelle in einer Bibliothek gespeichert. Dabei dürfen in einer Bibliothek mehrere Varianten eines Moduls für unterschiedliche Zielsysteme hinterlegt werden.

Die Bibliothek stellt sich für den Anwender wie jede andere IEC 61131-3 Bibliothek dar. Wenn die Bibliothek in einer Applikation verwendet wird, dann wird von CODESYS automatisch das passende Modul aus der Bibliothek auf die Steuerung geladen und vom CODESYS Control Laufzeitsystem ausgeführt.

Anwendungsbeispiele:

  • Wiederverwendung von verfügbarem C-Code

  • Einbindung von durch Modellierungstools generiertem Code, wie zum Beispiel Matlab®/Simulink®

  • Dynamische Einbindung von gerätespezifischen Funktionen, die mit C-Code realisiert wurden

Alle dynamischen Module einer Applikation werden beim Download auf das Laufzeitsystem übertragen und geladen. Hierfür muss das Laufzeitsystem dynamisches Linken unterstützen.

Lizenz für das Laufzeitsystem

Das Laufzeitsystem benötigt eine Lizenz, die das Laden von C-Modulen erlaubt. Ohne diese Lizenz können dynamische Module beim Download nicht gelinkt werden und der Download wird abgebrochen.

Die dynamischen Module sind Bestandteil der Bootapplikation und werden beim Neustart der Steuerung wieder geladen und aktiviert. Der Befehl Rest Ursprung entlädt alle C-Code-Module der Applikation. Die Befehle Reset kalt und Reset warm führen nicht zu einer erneuten Initialisierung der C-Code-Module.

CODESYS unterstützt nicht das Monitoring von Variablen in C-Code-Dateien und nicht das Setzen von Haltepunkten in C-Quellcode.

Vorkompiliertes Laufzeitmodul einem Gerät zuweisen und in einer Bibliothek speichern

Voraussetzung: Ein Bibliothek (*.library) ist in CODESYS geöffnet.

  1. Wählen Sie den Befehl Ansicht → POUs.

    Die Ansicht POUs öffnet sich und zeigt das Bibliotheksprojekt und seine Objekte an.

  2. Selektieren Sie das Bibliotheksprojekt und wählen Sie den Befehl Projekt → Objekt hinzufügen → C-implementierte Bibliothek.

  3. Klicken Sie im Dialog C-implementierte Bibliothek hinzufügen auf Hinzufügen.

    CODESYS fügt das Objekt _cds_icon_c_code_module.pngC-implementierte Bibliothek in der Ansicht POUs ein.

  4. Doppelklicken Sie das Objekt _cds_icon_c_code_module.pngC-implementierte Bibliothek.

    Das Objekt öffnet sich in seinem Editor

  5. Klicken Sie in diesem Editor auf Hinzufügen.

    Der Dialog Gerät auswählen öffnet sich.

  6. Geben Sie im Eingabefeld Objektdatei den Namen eines dynamisch ladbaren Moduls des Formats: *.dll oder *.so ein.

    Wichtig

    Die Datei *.dll muss im Namen den Titel des Bibliotheksprojekts enthalten. Beispiel: Wenn das Bibliotheksprojekt den Namen XYlib hat, dann muss die Objektdatei heißen: <Name>_XYlib.dll

  7. Wählen Sie im Fenster Gerät ein Gerät, dem Sie die Objektdatei zuweisen wollen.

  8. Klicken Sie auf Gerät auswählen.

    CODESYS zeigt die erstellte Zuweisung Gerät-Datei im Editor in der Registerkarte Kompilierte Komponenten an.

  9. Speichern Sie das Bibliotheksprojekt.

Für weitere Informationen siehe: C-implementierte Bibliothek