Einbinden von externen DLLs in CoDeSys V3

Anonymous
2009-08-05
2009-08-21
  • Anonymous - 2009-08-05

    Originally created by: plivelic@metaind.de

    Hallo,

    wie kann man die externe DLLs in "SP PLCWinNT" Maschine einbinden?

    Unter Version 2.3 ging es so:

    ######################

    In einen C/C++ Template/Richtlinien eigene C/C++ Rutinen schreiben. Template mit Richtlinien hab ich vom Support bekommen. Daraus resultiert ein DLL. Z.B. "my_C_Library.dll"

    Danach in Registy registrieren:

    REGEDIT4

    [HKEY_LOCAL_MACHINE\SOFTWARE\3S-Smart Software Solutions GmbH\CoDeSys SP\PLC\IODRIVERLIST]

    "MODULE0"="my_C_Library"

    my_C_Library.dll in Directory mit der "SP PLCWinNT" Maschine kopieren. Bei neustart von der Maschine sind die im DLL vorhandene Funktionen eingebunden.

    ########################

    Wie gehet es mit der CoDeSys Version 3?

    Gruß

    Boris

     
  • David

    David - 2009-08-19

    Bibliotheken, die im Laufzeitsystem in ANSI-C implementiert sind, werden als externe Bibliotheken bezeichnet. Wobei in CoDeSys V3 nicht mehr zwischen internen und externen Bibliotheken unterschieden wird.

    In CoDeSys V3 gibt es die Möglichkeit alle extern implementierten Funktionen bzw. Methoden

    einer Bibliothek automatisch in eine Datei für das Laufzeitsystem zu exportieren. Damit sind

    Inkompatibilitäten zwischen der Bibliothek und der Implementierung im Laufzeitsystem

    nahezu ausgeschlossen.

    In dieser erzeugten Datei (genannt m4-Datei) befinden sich alle extern implementierten

    Funktionen und Methoden mit ihrem Namen (entweder wie in CoDeSys definiert oder über

    das Attribut „external_name“ festgelegt), ihrer Schnittstelle, der Version der Bibliothek und der

    Checksumme der Schnittstelle. Diese Datei muss dann mittels einem m4-Compiler zu einer

    ANSI-C Schnittstellen Header Datei übersetzt werden. Zusätzlich besteht die Möglichkeit in

    CoDeSys auch einen C-Source Rahmen für die Implementierung erzeugen zu lassen.

    Die Schnittstellen Header Datei (<bibliotheksnamen>Itf.h) und die Source Datei</bibliotheksnamen>

    (<bibliotheksnamen>.c) können dann im Laufzeitsystem als Basis für die Implementierung</bibliotheksnamen>

    einer Komponente verwendet werden, die die Implementierung der externen Funktionen bzw.

    Bausteine enthält. Diese Komponente kann dann ins Laufzeitsystem eingebunden werden.

     
  • Anonymous - 2009-08-21

    Originally created by: thomas_nienstaedt

    Super!

    Vielleicht gibt es auch ein kleines Bsp!?

     

Log in to post a comment.