PROFINET-Device-Einbindung unter TwinCAT 2.10

PROFINET-Device-Einbindung unter TwinCAT 2.10 1:

Installation

Für TwinCAT 2.10 steht keine Installationsversion mehr zu Verfügung. Verwenden Sie TwinCAT 2.11 oder wenden Sie sich an den Beckhoff Support.

1. Einbindung des PROFINET-Protokoll

Zunächst muss ein RealTime-Ethernet-Gerät angefügt werden. Diese Schnittstelle muss einer Adapterklasse zugewiesen werden. Diese stellt sich aus der MAC- und IP-Adresse der Netzwerkkarte zusammen.
Soll also z. B. ein CX9000 parametriert werden, so muss zuerst via Remote-Zugriff auf das Zielsystem gegangen werden, anschließend kann der entsprechende Ethernet Port gewählt werden.

Danach wird über die rechte Maustaste ein PROFINET-Protokoll angefügt. Es kann genau ein TwinCAT-Device-Protokoll angehängt werden!

PROFINET-Device-Einbindung unter TwinCAT 2.10 2:
Einfügen PROFINET Device Protokoll

Unter dem Reiter "Protocol" ist die verwendete NetID zu finden. Sie wird z. B. für einen ADS-Zugriff benötigt. Außerdem besteht in dem Reiter "Sync Task" die Möglichkeit, eine freilaufende Task für die PROFINET-Kommunikation anzuhängen (wird empfohlen). Somit kann die RealTime- Kommunikation unabhängig einer PLC Task laufen. Aus Performance-Gründen (z. B. bei einem CX9000) kann aber auch auf die SyncTask verzichtet werden und es erfolgt das Standard Mapping, d.h. es muss z. B. eine PLC Task laufen, damit eine PROFINET-Kommunikation möglich ist.

PROFINET-Device-Einbindung unter TwinCAT 2.10 3:
Karteireiter „Sync Task“

Als nächstes wird eine Box in Form einer GSDML eingebunden (rechte Maustaste auf "PROFINET I/O Device Protocol"). In TwinCAT ist es auch möglich, mehrere virtuelle PROFINET Devices zu konfigurieren. Jedes Device ist wieder als eigener Adapter zu sehen, d.h. jedes virtuelle Gerät bekommt aus einem reservierten Bereich eine Default MAC-Adresse zugewiesen. Damit es nicht zu eventuellen Adresskonflikten kommt, kann bei den virtuellen Geräten auch die MAC-Adresse geändert werden. Der Name den das Gerät am Strang bekommen hat (oder unter Reiter "Allgemein"), wird nach einem Restart auch als PROFINET-Stationsname genommen. Anhand unterschiedlicher MAC-Adressen und Namen erkennt nun ein PROFINET Controller auch mehrere Geräte am Strang. Die einzelnen virtuellen Geräte können dann wiederum z. B. über eine PLC Task mit Klemmen aus dem E-Bus verknüpft werden. Dadurch können z. B. mehrere EL6601 Klemmen im E-Bus als einzelne PROFINET Devices konfiguriert werden.

Bei PROFINET können innerhalb eines Gerätes verschiedene Anwenderprofile definiert werden (API - Application Process Instance). In TwinCAT wird pro Gerät genau eine API zugelassen / unterstützt!

Der DAP (Device Access Point) ist nach PROFINET immer auf Slot 0 definiert. In ihm sind gerätespezifische Daten definiert. Nach PROFINET können mehrere DAPs definiert werden, aktuell gibt es in TwinCAT jedoch genau einen!

2. Prozessdaten

Ab Slot 1 können die Prozessdaten eingefügt werden. Dies erfolgt über das Einbinden der gewünschten Module in die API. Jedes Modul (Slot) verfügt im Moment über genau ein Submodul (Subslot). Die Konfiguration der Module und somit das Erstellen des Prozessdatenabbilds auf PROFINET-Seite erfolgt durch die Angabe von Datentypen / Datenbreiten (z. B. Byte, Word, DWord, Float32).

Die Bezeichnung der Ein- und Ausgänge erfolgt in TwinCAT immer aus TwinCAT-Sicht, d.h. die Eingänge sind aus PROFINET-Sicht (vom Controller) die Ausgänge! Deshalb sind die Daten des PROFINET I/O Devices wie folgt dargestellt:

PROFINET-Device-Einbindung unter TwinCAT 2.10 4:
Darstellung Ein-/ Ausgänge PROFINET I/O Device

Diese Darstellung gilt nur für das TwinCAT-PROFINET-Device, bei einem TwinCAT-PROFINET-Controller wird die Sichtweise wieder übereinstimmen!

3. Allgemeine Einstellungen

Im Karteireiter "PROFINET Devices" können die Instanz ID, die PROFINET Frame ID sowie der Client und der Server UDP-Port geändert werden. Für den Normalbetrieb sind die Default-Einstellungen jedoch ausreichend!

PROFINET-Device-Einbindung unter TwinCAT 2.10 5:
Karteireiter „Device“

Es gibt eine weitere Möglichkeit den PROFINET-Stationsnamen zu vergeben. Diese ist vergleichbar mit den Dip-Schaltern beim BK9103 und kann über eine PLC Task erfolgen. Zur Aktivierung muss "Generate Station Name from Control" aktiviert werden. Zur Verdeutlichung wird an den bisherigen Tree-Namen (Default: "tcpniodevice") eine 000 angehängt.

PROFINET-Device-Einbindung unter TwinCAT 2.10 6:

Tree-Name

Dieser Tree-Name entspricht nicht mehr dem PROFINET Stationsnamen! Zur Namensvergabe wird das Ctrl WORD des PROFINET-Protokolls zu Hilfe genommen, d.h. die eingegebene Zahl (Wertebereich 0 - 255) wird an den bisherigen Stationsnamen angehängt. Außerdem muss das Ctrl WORD mit einer Task verknüpft werden. Anschließend ist ein Neustart von TwinCAT erforderlich. Wird nun z. B. dem verknüpftem Ctrl WORD von der Task aus ein Wert von 11 vorgegeben, so ändert sich sein bisheriger Stationsname von z. B. auf "tcpniodevice" auf "tcpniodevice011". Der aktuelle Tree-Name ist weiterhin "tcpniodevice000"

Eine Überprüfung des aktuellen Stationsnamen sowie der benutzten IP-Konfiguration kann über den Karteireiter "PROFINET Diagnosis" erfolgen.

4. Zykluszeiten

Das Device kann in der durch PROFINET definierten minimalen Zykluszeit von 1 ms betrieben werden!

Wird TwinCAT im FREERUN Mode betrieben, so ist darauf zu achten, dass der eingestellte Freerun-Zyklus nicht größer als die PROFINET-Zykluszeit ist!

PROFINET-Device-Einbindung unter TwinCAT 2.10 7:
Karteireiter „Adapter“

Soll TwinCAT im RUN Mode betrieben werden, muss eine Task angelegt werden. Im einfachsten Fall ist das die bereits erwähnte SyncTask. Die Aufrufzeit der Task darf nicht größer sein als die PROFINET-Zykluszeit! Wird eine zweite Task z. B. für die PLC angelegt, kann diese auch langsamer laufen.

PROFINET-Device-Einbindung unter TwinCAT 2.10 8:
Anlegen einer Task

Bei weniger leistungsstarken Geräten (z. B. CX1000, CX9000 mit E-Bus) kann es passieren, dass die CPU-Last an ihre Grenzen gerät. Die Performance kann jedoch durch folgende Überlegungen/Maßnahmen wieder verbessert werden: