Skip to main content

Dynamische Komponenten hinzufügen

Die Konfiguration der CODESYS Control Win erfolgt mit Hilfe einer Konfigurationsdatei (CODESYSControl.cfg).

Die cfg-Datei im Installationspfad enthält nur einen Verweis auf die eigentliche Konfigurationsdatei CODESYSControl.cfg im Arbeitsverzeichnis:

[SysFile]
Windows.WorkingDirectory=C:\ProgramData\CODESYS\CODESYSControlWinV3x64\801BFF8C

In die cfg-Datei im Arbeitsverzeichnis können Sie die gewünschten zusätzlichen Komponenten (Treiber) eintragen. Diese werden dann bei einem Neustart der CODESYS Control Win immer mit geladen.

Sie tragen eine neue Komponente in der Sektion [ComponentManager] ein. Wichtig ist, dass eine lückenlose Nummerierung aller Komponenteneinträge entsteht:

[ComponentManager]
...
Component.6=SysCpuBreakpoints
Component.7=<Neue Komponente>
...

Sehen Sie im Folgenden, welche Komponenten Sie hinzufügen können.

Unterstützung optionaler Feldbuskarten

Treiber CmpHilscherCIFX

Diese Komponente unterstützt eine NetX PC-Karte der Fa. Hilscher. Dazu müssen Sie nur die Komponente „CmpHilscherCIFX“ in der Konfigurationsdatei der CODESYS Control Win wie folgt eintragen:

[ComponentManager]
Component.<n>=CmpHilscherCIFX

Nach dem Einbau der Karte müssen Sie beim Starten des Betriebssystems nur noch den Treiber SysDrv3S.sys installieren. Dieser liegt im CODESYS Installationsverzeichnis unter $\GatewayPLC\Driver für ein 32Bit Windows Betriebssystem, oder unter $\GatewayPLC\Driver\x64 für ein 64bit Windows Betriebssystem.

Hinweis: Der Hilscher Konfigurator SyCon bzw. SYCON.net und der Hilscher Treiber dürfen nicht parallel zu CODESYS betrieben werden!

Treiber CmpSoftingProfibus

Diese Komponente ist notwendig, wenn Sie eine PROFIBUS Master USB Schnittstellenkarte der Firma Softing Industrial Automation GmbH mit CODESYS in einer IEC-Applikation verwenden wollen. Sie stellt dabei die Schnittstelle zwischen dem Laufzeitsystem und dem proprietären Treiber von Softing dar, die von unserer Treiberbibliothek IoDrvSoftingPROFIusb verwendet wird. In CODESYS wird diese Bibliothek automatisch im Bibliotheksverwalter aufgenommen, wenn Sie ein Gerät PROFIusb im Gerätebaum einfügen. Dadurch können Sie das CODESYS-Laufzeitsystem auf einem Windows PC als PROFIBUS Master verwenden und entsprechend konfigurieren. Für weitere Informationen siehe: Hinzufügen eines USB-Interfaces für PROFIBUS

Treiber CmpBACnet

Die Komponente ist notwendig, wenn Sie die BACnet IP-Anbindung der CODESYS Control Win nutzen wollen. In der Konfigurationsdatei ist dazu nur folgender Eintrag nötig:

[ComponentManager]
Component.<n>=CmpBACnet

Treiber CmpPCANBasicDrv

Diese Komponente implementiert die Anbindung von Peak CAN Hardware mittels PCAN Basic API. Installationsanleitung siehe Onlinehilfe. Keine Konfigurationsdateieinträge nötig.

Treiber CmpCAACanL2

Diese Komponente bietet eine Hardware unabhängige Schnittstelle zum Senden und Empfangen von CAN-Nachrichten. Folgende Konfigurationsdateieinträge sind optional:

[CmpCAACanL2]
;If setting PersistentBaudrate is enabled (0: disabled; 1: enabled)
;the baudrate will be stored into Net.X.DefaultBaudrate (where X equals NetId) when opening the driver.
PersistentBaudrate=1
;Default baudrate for CAN network 0. This baudrate will be used when the network is opened (e.g from CmpBlkDrvCan or CANopen) with the baudrate set to 0.
Net.0.DefaultBaudrate=1000

In der Konfigurationsdatei kann per CAN-Netzwerk (=physikalischer CAN-Anschluss) eine Standard-Baudrate hinterlegt werden. Diese Standard-Baudrate wird immer dann verwendet, wenn die CL2-Funktion DriverOpenH mit Baudrate 0 aufgerufen wird und der Treiber bisher noch nicht offen ist. Wenn dieser Konfigurationsdatei-Eintrag fehlt, dann wird in dem genannten Fall ein Fehler gemeldet, da die Baudrate unbekannt ist.

Wirklich sinnvoll ist der Eintrag erst im Zusammenhang mit der Funktionalität PersistenBaudrate, die standardmäßig abgeschaltet ist. Wenn PersistentBaudrate=1, dann schreibt CODESYS bei jedem Aufruf von DriverOpenH mit einer konkreten Baudrate, diese Baudrate mittels der Funktion CmpSettings in die Konfigurationsdatei. Dies bewirkt beispielsweise, dass der Eintrag Net.0.DefaultBaudrate verändert wird. Das ist besonders nützlich, wenn eine Steuerung über den CAN-Blocktreiber kommuniziert. Wenn im CmpBlkDrvCanServer die Baudrate auf 0 steht (0.Baudrate = 0), dann kann der Anwender mittels Ändern der Baudrate im Projekt, Herunterladen der Applikation und Neustart der Steuerung die Baudrate der Blocktreiber-Kommunikation ändern.

Treiber CmpCAASdoClient

Diese Komponente implementiert das CANopen SDO Client Protokoll. Optionale Konfigurationseinträge:

[CmpCAASdoClient]
MaxSegmentsPerCycle=0 ; for block download: maximum of sent segments per cycle; 0 means infinity

Hiermit können Sie die Anzahl der CAN-Nachrichten reduzieren, die bei einem Blocktransfer pro Zyklus verschickt werden. Dies ist nötig, wenn eine Steuerung Probleme mit einer Folge von vielen CAN-Frames auf derselben ID hat. Allerdings schränkt dies auch die Performance ein, weshalb ein Blocktransfer länger dauert.

Treiber CmpCAASDOServer

Diese Komponente implementiert das CANopen SDO Server Protokoll. Optionale Konfigurationsdateieinträge:

[CmpCAASdoClient]
MaxSegmentsPerCycle=0 ; for block download: maximum of sent segments per cycle; 0 means infinity

Hier kann die Anzahl der CAN-Nachrichten reduziert werden, die bei einem Blocktransfer pro Zyklus verschickt werden.

Treiber CmpEL6751CanDrv

Diese Komponente implementiert die Anbindung der Beckhoff EL6751 CAN/EtherCAT Gateway-Klemme. Da die Komponente einen CAN-Minitreiber implementiert, können Sie die CANL2-Komponente und alle CODESYS CAN-basierten Stacks verwenden. Keine Konfigurationsdatei-Einträge nötig.

Optionale Kommunikationskanäle

Treiber CmpBlkDrvCanClient

Diese Komponente implementiert einen CODESYS-Blocktreiber zur Kommunikation eines CODESYS Gateways mit einer CODESYS-Steuerung via CAN (Service-Kommunikation). Die Kommunikation wird mittels des CANopen SDO-Protokolls („Segmented“ oder „Block Transfer“) realisiert. Die Komponente CmpBlkDrvCanClient wird auf Gatewayseite benötigt, sowie CAN-Hardware von der Firma Peak (besipielsweise ein PCAN USB Dongle).

Eine typische Konfiguration in der Gateway-Konfigurationsdatei sieht wie folgt aus:

[ComponentManager]
Component.1=CmpBlkDrvCANClient
Component.2=CmpCAASdoClient
Component.3=CmpCAACanL2
Component.4=CmpPCANBasicDrv

[CmpBlkDrvCanClient]
CycleTimeMs=1
NumChannels=1               ; Number of block driver instances
0.Name=BlkDrvCanClient
0.NetId=0                   ; CANbus Network Id (0..n)
0.Baudrate=1000             ; CANbus Baudrate in kbit/s
0.NodeId=1                  ; unique NodeId of Gateway
0.BlockTransfer=1           ; Use block transfer for more performance

[CmpCAASdoClient]
MaxSegmentsPerCycle=0       ; for block download: maximum of sent segments per cycle; 0 means infinity
[CmpBlkDrvCanClient]
CycleTimeMs=1
NumChannels=1               ; Number of block driver instances
0.Name=BlkDrvCanClient
0.NetId=0                   ; CANbus Network Id (0..n)
0.Baudrate=1000             ; CANbus Baudrate in kbit/s
0.NodeId=1                  ; unique NodeId of Gateway
0.BlockTransfer=1           ; Use block transfer for more performance

[CmpCAASdoClient]
MaxSegmentsPerCycle=0       ; for block download: maximum of sent segments per cycle; 0 means infinity

Treiber CmpBlkDrvCanServer

Diese Komponente implementiert einen CODESYS-Blocktreiber zur Kommunikation eines CODESYS-Gateways mit einer CODESYS-Steuerung via CAN (Service-Kommunikation). Die Kommunikation wird mittels des CANopen SDO-Protokolls („Segmented“ oder „Block Transfer“) realisiert. Die Komponente CmpBlkDrvCanServer wird auf Steuerungsseite benötigt, sowie ein entsprechender CAN-Minitreiber. Eine typische Konfiguration in der Steuerungskonfigurationsdatei sieht wie folgt aus:

[Components]
Component.1=CmpAnyCANMiniDriverComponent ; TODO: Replace component name by your CAN Mini driver component
Component.2=CmpBlkDrvCanServer
[Components]
Component.1=CmpAnyCANMiniDriverComponent ; TODO: Replace component name by your CAN Mini driver component
Component.2=CmpBlkDrvCanServer

[CmpCAACanL2]
;If setting PersistentBaudrate is enabled (0: disabled; 1: enabled)
;the baudrate will be stored into Net.X.DefaultBaudrate (where X equals NetId)
;when opening the driver.
PersistentBaudrate=1
;Default baudrate for CAN network 0. This baudrate will be used when the network 
;is opened (e.g from CmpBlkDrvCan or CANopen) with the baudrate set to 0.
Net.0.DefaultBaudrate=1000

[CmpBlkDrvCanServer]
CycleTimeMs=1
0.NetId=0
0.Baudrate=0 ; 0 means: use setting from CmpCAACanL2 section
0.NodeId=10

[CmpCAASdoServer]
MaxSegmentsPerCycle=0 ;for block upload: maximum of sent segments per cycle
;0 means infinity