Sie sind auf Seite 1von 24

Festo CECC_IO-Link_3 Bibliothek

Inhaltsverzeichnis
1 Wichtige Hinweise .............................................................................................................................. 1
1.1 Bestimmungsgemäße Verwendung ............................................................................................. 1
1.1.1 Zielgruppe ......................................................................................................................... 1
1.1.2 Service .............................................................................................................................. 1
1.2 Sicherheitshinweise ..................................................................................................................... 1
1.3 Wichtige Benutzerhinweise .......................................................................................................... 1
1.3.1 Gefahrenkategorien .......................................................................................................... 1
1.4 Kennzeichnung spezieller Informationen ..................................................................................... 2
1.4.1 Piktogramme..................................................................................................................... 2
1.4.2 Textkennzeichnungen ....................................................................................................... 2
1.4.3 Weitere Konventionen....................................................................................................... 2

2 Übersicht ............................................................................................................................................. 3
2.1 Einbindung der Bibliothek ............................................................................................................ 3
2.2 Standard Ein-/Ausgänge der Funktionsblöcke ............................................................................. 3

3 Masterport ........................................................................................................................................... 4
3.1 General ........................................................................................................................................ 4
3.1.1 Funktionsblock GetMode .................................................................................................. 4
3.1.2 Funktionsblock SetMode................................................................................................... 4
3.1.3 PORT_MODE Enumeration .............................................................................................. 4
3.1.4 Funktionsblock GetCounterInfo ........................................................................................ 5
3.1.5 Funktionsblock HardwareErrorCheck ............................................................................... 5
3.1.6 Funktionsblock SetValidation ............................................................................................ 5
3.1.7 VALIDATION_MODE Enumeration ................................................................................... 6
3.2 Prozessdaten ............................................................................................................................... 7
3.2.1 Funktionsblock GetIOLProcessData ................................................................................. 7
3.2.2 Funktionsblock SetIOLProcessData ................................................................................. 7
3.2.3 Funktionsblock GetSIOProcessData ................................................................................ 8
3.2.4 Funktionsblock SetSIOProcessData ................................................................................. 8
3.3 Parameter .................................................................................................................................... 9
3.3.1 Funktionsblock ReadParameter........................................................................................ 9
3.3.2 Funktionsblock WriteParameter ........................................................................................ 9
3.3.3 READ_WRITE_STATUS Enumeration .......................................................................... 10
3.4 Events ........................................................................................................................................ 11
3.4.1 Code ............................................................................................................................... 11
3.4.2 STRUCT EVTPARAM_IOLinkEvent ............................................................................... 11
3.4.3 IOLinkEvent_Instance Enumeration ............................................................................... 11
3.4.4 IOLinkEvent_Mode Enumeration .................................................................................... 12
3.4.5 IOLinkEvent_Type Enumeration ..................................................................................... 12
3.4.6 IOLinkEvent_InternalEventCode Enumeration ............................................................... 12

4 Deviceport ......................................................................................................................................... 13
4.1 Allgemein ................................................................................................................................... 13
4.1.1 Funktionsblock DeviceConnected................................................................................... 13
4.2 Parameter .................................................................................................................................. 13
4.2.1 Funktionsblock SetRedirectionSettings .......................................................................... 14
4.2.2 Funktionsblock ReadResponse ...................................................................................... 14
4.2.3 Funktionsblock WriteResponse ...................................................................................... 14
4.2.4 Funktionsblock ReadError .............................................................................................. 15
4.2.5 Funktionsblock WriteError............................................................................................... 15
4.2.6 STRUCT EVTPARAM_IOLinkParameterAccess ............................................................ 15
4.2.7 ACCESS_TYPE Enumeration ........................................................................................ 16
4.2.8 STANDARD_ADDITIONAL_ERRORCODE Enumeration .............................................. 16

iii
Inhaltsverzeichnis

4.3 Events ........................................................................................................................................ 17


4.3.1 Funktionsblock EnqueueEvent ....................................................................................... 17

5 Converter .......................................................................................................................................... 18
5.1 Funktionsblock INT_TO_BYTEARRAY ...................................................................................... 19
5.2 Funktionsblock BYTEARRAY_TO_INT ...................................................................................... 19

6 Glossar .............................................................................................................................................. 20

iv
Festo CECC_IO-Link_3 Bibliothek

1 Wichtige Hinweise
1.1 Bestimmungsgemäße Verwendung
Die beschriebenen Funktionsblöcke (FB) dieser Bibliothek dienen zur Steuerung und Parametrierung des
zugehörigen Geräts. Mit ihrer Hilfe können Sie die vielfältigen Funktionen des jeweiligen Geräts
komfortabel in ihr Programm einbinden. Die gleichzeitige Verwendung anderer Funktionsblöcke zur
Steuerung desselben Geräts ist unzulässig.
Beachten Sie die "Sicherheitstechnischen Hinweise" sowie den bestimmungsgemäßen Gebrauch der
jeweiligen Geräte, Baugruppen und Module. Beim Anschluss handelsüblicher Zusatzkomponenten, wie
Sensoren und Aktoren, sind die angegebenen Grenzwerte für Drücke, Temperaturen, elektrische Daten,
Momente usw. einzuhalten.

1.1.1 Zielgruppe
Diese Beschreibung wendet sich ausschließlich an ausgebildete Fachleute der Steuerungs- und
Automatisierungstechnik.

1.1.2 Service
Bitte wenden Sie sich bei technischen Problemen an Ihren lokalen Service von Festo
( http://www.festo.com).

1.2 Sicherheitshinweise
Bei der Inbetriebnahme und Programmierung von Positioniersystemen sind unbedingt die in den
Beschreibungen und Bedienungsanleitungen zu den eingesetzten Komponenten gegebenen
Sicherheitsvorschriften zu beachten.
Der Anwender hat dafür Sorge zu tragen, dass sich niemand im Einflussbereich der angeschlossenen
Aktoren bzw. der Achssysteme aufhält. Der mögliche Gefahrenbereich muss durch geeignete Maßnahmen
wie Absperrungen oder Warnhinweise gesichert werden.

Warnung
Pneumatische und elektrische Achsen können mit großer Kraft und Geschwindigkeit verfahren.
Kollisionen können zu schweren Verletzungen oder zur Zerstörung von Bauteilen führen.
• Stellen Sie sicher, dass niemand in den Einflussbereich der Achsen sowie anderer
angeschlossener Aktoren greifen kann und sich keine Gegenstände im Verfahrbereich
befinden, solange das System an Energiequellen angeschlossen ist.

Warnung
Fehler bei der Parametrierung können Personen- und Sachschäden verursachen.
• Geben Sie den Regler nur dann frei, wenn das Achssystem fachgerecht installiert und
parametriert ist.

1.3 Wichtige Benutzerhinweise


1.3.1 Gefahrenkategorien
Dieses Dokument enthält Hinweise auf mögliche Gefahren, die bei unsachgemäßem Einsatz des Produkts
auftreten können. Diese Hinweise sind mit einem Signalwort (Warnung, Vorsicht, usw.) gekennzeichnet,
grau hinterlegt und zusätzlich durch ein Piktogramm gekennzeichnet. Folgende Gefahrenhinweise werden
unterschieden:

Warnung
... bedeutet, dass bei Missachten schwerer Personen- oder Sachschaden entstehen kann.

Vorsicht
... bedeutet, dass bei Missachten Personen- oder Sachschaden entstehen kann.

Hinweis
... bedeutet, dass bei Missachten Sachschaden entstehen kann.

1
Festo CECC_IO-Link_3 Bibliothek

1.4 Kennzeichnung spezieller Informationen


1.4.1 Piktogramme
Folgende Piktogramme kennzeichnen Textstellen, die spezielle Informationen enthalten.
Information: Empfehlungen, Tipps und Verweise auf andere Informationsquellen.

Zubehör: Angaben über notwendiges oder sinnvolles Zubehör zum Festo Produkt.

Umwelt: Informationen zum umweltschonenden Einsatz von Festo Produkten.

1.4.2 Textkennzeichnungen
1. Ziffern kennzeichnen Tätigkeiten, die in der angegebenen Reihenfolge durchzuführen sind.
• Der Auflistungspunkt kennzeichnet Tätigkeiten, die in beliebiger Reihenfolge durchgeführt werden
können.
– Spiegelstriche kennzeichnen allgemeine Aufzählungen.

1.4.3 Weitere Konventionen


[Projekt] [Neu] Menüeinträge sind in eckigen Klammern eingerahmt, z. B. öffnet im Menü [Projekt] der
Befehl [Neu ...] ein neues Projekt.
"OK" Namen von Fenstern, Dialogen und Schaltflächen, z. B. "Meldefenster", "Projekt
dearchivieren", "OK" sowie Bezeichnungen werden in Anführungszeichen dargestellt.
CTRL Namen von Tasten auf der PC-Tastatur werden im Text mit Großbuchstaben
dargestellt (z. B. EINGABETASTE, STRG, C, F1, usw.).
CTRL+C Für einige Funktionen müssen zwei Tasten gleichzeitig gedrückt werden. Halten Sie z.
B. die STRG-Taste gedrückt und drücken Sie zusätzlich die C-Taste. Dies wird im Text
mit STRG+C beschrieben.
Wird einfach von "Klicken" oder "Doppelklick" gesprochen, so ist immer die linke
Maustaste gemeint. Falls die rechte Maustaste benutzt werden soll, wird ausdrücklich
darauf hingewiesen.

2
Festo CECC_IO-Link_3 Bibliothek

2 Übersicht
Die Bibliothek Festo_CECC_IOLink_3 enthält Funktionsblöcke (FB) für die Festo Steuerung CECC-LK.
Mit diesen Funktionsblöcken können Sie die 4 IO-Link Masterports und den IO-Link Deviceport bedienen.

2.1 Einbindung der Bibliothek


Die Bibliothek Festo_CECC_IOLink_3 finden Sie bei CoDeSys V3 pbF im Bereich "Bibliotheksverwalter".
• Verwenden Sie zur Einbindung der Bibliothek das Kommando "Bibliothek hinzufügen".
Alle Elemente aus dieser Bibliothek sind dem Namensraum "IOL" zugeordnet.

2.2 Standard Ein-/Ausgänge der Funktionsblöcke


Die Bibliothek basiert auf dem Verhaltensmodel der CAA. Darin wird ein Teil der Ein-/Ausgänge der
Funktionsblöcke beschrieben. Die folgende Liste enthält die Standard Ein-/Ausgänge, die in vielen
Funktionsblöcken vorkommen.
Ein-/Ausgang Typ Bemerkung

xEnable BOOL – TRUE: Aktion läuft


– FALSE: Aktion angehalten
Ausgänge 'xDone', 'xBusy', 'xError', 'iError' sind zurückgesetzt
xExecute BOOL – Steigende Flanke: Aktion starten
– Fallende Flanke: Setzt die Ausgänge zurück sobald die
fallende Flanke auftritt, auch wenn die Aktion noch nicht
abgearbeitet wurde.
Ansonsten arbeiten die Ausgänge normal und werden
zurückgesetzt, wenn die Aktion abgeschlossen ist oder ein
Fehler auftritt. In diesem Fall werden die entsprechenden
Fehlerausgänge (xDone, xError, eError) für genau einen
Zyklus ausgegeben.
xBusy BOOL Funktionsblock aktiv
xDone BOOL Aktion erfolgreich abgeschlossen
xError BOOL TRUE: Fehler ist aufgetreten
eError ERROR ID des Fehlers ( Fehlercode Enumeration)
byPort BYTE IO-Link Masterport 0 ... 3
Eingang eines Funktionsblocks, der für einen bestimmten IO-Link
Masterport vorgesehen ist.

Tabelle: Standard Ein-/Ausgänge der Funktionsblöcke

Funktionsblöcke, die weder 'xEnable' noch 'xExecute' implementieren, arbeiten ohne Zustand,
wann immer sie aufgerufen werden.

3
Festo CECC_IO-Link_3 Bibliothek

3 Masterport
3.1 General
3.1.1 Funktionsblock GetMode
Überprüft, in welchem Modus sich ein IO-Link Port befindet und ob ein Sensor angeschlossen ist.

Bild: Funktionsblock GetMode

Ausgang Typ Kommentar

eMode PORT_MODE  PORT_MODE Enumeration


xSensorConnected BOOL – TRUE = Sensor ist angeschlossen und die Verbindung
ist im OPERATE Modus.
– FALSE = PREOPERATE Modus.

3.1.2 Funktionsblock SetMode


Bestimmt den Modus, in dem sich der IO-Link Port befindet.

Bild: Funktionsblock SetMode

Eingang Typ Kommentar

eMode PORT_MODE  PORT_MODE Enumeration

3.1.3 PORT_MODE Enumeration


Name Wert Kommentar

RESET 0 Inaktiv, läuft nicht.


IOLINK 1 Normaler IO-Link Modus.
Verbindung wird bei Abbruch automatisch wieder hergestellt.
SIO_INPUT 3 Standard digitaler Eingangs-Modus.
SIO_OUTPUT 4 Standard digitaler Ausgangs-Modus.
FALLBACK 5 Schickt Masterkommando an das Gerät, um vom IO-Link in den SIO
Modus zu schalten.
PD_OUT_VALID 6 Schickt Masterkommando an das Gerät, um zu signalisieren, dass die
Prozessdaten gültig sind.
PD_OUT_INVALID 7 Schickt Masterkommando an das Gerät, um zu signalisieren, dass die
Prozessdaten ungültig sind.
OPERATE 8 Schickt Masterkommando an das Gerät, um es vom PREOPERATE in
den OPERATE Modus umzuschalten.

4
Festo CECC_IO-Link_3 Bibliothek

3.1.4 Funktionsblock GetCounterInfo


Zeigt den internen Zähler der IO-Link Kommunikation.

Bild: Funktionsblock GetCounterInfo

Ein-/Ausgang Typ Kommentar

xReset BOOL Setzt die Zähler zurück


dwCycles DWORD Kommunikationszyklen
wRetries WORD Anzahl von erneut versandten Datenpaketen, z. B. wegen
einer ungültigen Checksumme.
wAborts WORD Anzahl von Kommunikationsabbrüchen mit erneutem
Wake-up auf der Leitung.

3.1.5 Funktionsblock HardwareErrorCheck


Überwacht die Hardware der IO-Link Ports, z. B. Temperaturüberschreitung.

Bild: Funktionsblock HardwareErrorCheck

Ausgang Typ Kommentar

wError WORD Fehler tritt auf, wenn der Rückgabewert nicht 0 ist.

Die Bits maskieren folgende Fehler:


Bit Fehler

16#01 C/Q line receive error (FPGA)


16#02 PHY error
16#04 ST 24V L+ line driver overheat
16#80 General error

3.1.6 Funktionsblock SetValidation


Mit Hilfe des Funktionsblocks SetValidation kann die Art der Validierung des Geräts beim Starten
eingestellt werden.
Dieser Funktionsblock muss aufgerufen werden, bevor der Port mit Hilfe des Funktionsblocks Setmode in
den IOLink Modus versetzt wird. Sollte die Validierung fehlschlagen, erfolgt kein Austausch von
Prozessdaten; außerdem wird das Event S_WRONGSENSOR ausgelöst.

Bild: Funktionsblock SetValidation

5
Festo CECC_IO-Link_3 Bibliothek

Ein-/Ausgang Typ Kommentar

eMode VALIDATION_MODE  VALIDATION_MODE Enumeration


uiVendorID UINT Vendor ID, die zur Validierung verwendet wird.
uiDeviceID UINT Device ID, die zur Validierung verwendet wird.
sSerialNumber POINTER TO Zeiger auf den Anfang eines Feldes (STRING) zur
STRING Speicherung der Seriennummer, die zur Validierung
verwendet wird.
wError WORD Ein Fehler tritt auf, wenn an den Eingängen ungültige
Werte anliegen. In diesem Fall ist der Rückgabewert != 0
(<>0).

3.1.7 VALIDATION_MODE Enumeration


Übersicht der Modi, die für die Validierung eines Device beim Starten mit SetValidation eingestellt werden
können.
Name Wert Kommentar

NONE 0 Keine Validierung.


COMPATIBLE 1 Validierung mit Vendor ID und Device ID.
IDENTICAL 2 Validierung mit Vendor ID, Device ID und Seriennummer.

6
Festo CECC_IO-Link_3 Bibliothek

3.2 Prozessdaten
Es gibt 4 Funktionsblöcke, um auf Prozessdaten an IO-Link Masterports zu zugreifen. Jeder Port wird
durch einen Slot in der CoDeSys GUI dargestellt.
Für die Slots sind folgende Belegungen möglich:
– IO-Link Gerät
– SIO
– leer (keine Belegung)
Mit dem Funktionsblock SetMode kann der Benutzer einen leeren oder SIO Port in den IO-Link Modus
schalten. In diesem Fall werden IO-Link Prozessdaten nicht SPS-Hardware-Adressen zugeordnet.
Umgekehrt, wenn ein Slot mit einem IO-Link Gerät konfiguriert ist, kann es über den FALLBACK Befehl
zum SIO-Modus wechseln. Danach werden die IO-Link Prozessdaten nicht mehr aktualisiert. Die SIO-
Werte können über Funktionsblöcke aufgerufen werden

3.2.1 Funktionsblock GetIOLProcessData


Mit Hilfe des Funktionsblocks GetIOLProcessData kann eine Kopie der IO-Link Prozessdaten byteweise
ausgelesen werden.

Bild: Funktionsblock GetIOLProcessData

Ein-/Ausgang Typ Kommentar

pbyData POINTER TO Pointer auf den Anfang eines Feldes (ARRAY OF BYTE),
BYTE in den die Prozessdaten kopiert werden.
byLength BYTE Länge der Prozessdaten in Bytes.
xValid BOOL Zeigt an, ob die empfangenen Prozessdaten beim Aufruf
des Funktionsblocks gültig sind.

3.2.2 Funktionsblock SetIOLProcessData


Mit Hilfe des Funktionsblocks SetIOLProcessData können IO-Link Prozessdaten geschrieben werden.
Dieser Funktionsblock kann nur verwendet werden, wenn der Masterport unter CoDeSys V3 pbF unbelegt,
somit "leer" ist.

Bild: Funktionsblock SetIOLProcessData

Ein-/Ausgang Typ Kommentar

pbyData POINTER TO Pointer auf den Anfang eines Feldes (ARRAY OF BYTE),
BYTE von dem die Prozessdaten gelesen werden.
byLength BYTE Länge der Prozessdaten in Bytes.
xValid BOOL Zeigt an, ob die gesetzten Prozessdaten gültig sind.

7
Festo CECC_IO-Link_3 Bibliothek

3.2.3 Funktionsblock GetSIOProcessData


Mit Hilfe des Funktionsblocks GetSIOProcessData können SIO Prozessdaten ausgelesen werden.

Bild: Funktionsblock GetSIOProcessData

Ausgang Typ Kommentar

xValue BOOL Aktueller Wert des digitalen Eingangs.

3.2.4 Funktionsblock SetSIOProcessData


Mit Hilfe des Funktionsblocks SetSIOProcessData können SIO Prozessdaten geschrieben werden. Dieser
Funktionsblock kann nur verwendet werden, wenn der Masterport unter CoDeSys V3 pbF unbelegt, somit
"leer" ist.

Bild: Funktionsblock SetSIOProcessData

Eingang Typ Kommentar

xValue BOOL Neuer Wert des digitalen Ausgangs.

8
Festo CECC_IO-Link_3 Bibliothek

3.3 Parameter
3.3.1 Funktionsblock ReadParameter
Liest einen Parameter von einem IO-Link Device.

Bild: Funktionsblock ReadParameter

Ein-/Ausgang Typ Kommentar

wIndex WORD Parameterindex


bySubindex BYTE Parameter Subindex (= 0 falls nicht verwendet)
pbyData POINTER TO BYTE Zeiger auf den Anfang eines Feldes (ARRAY OF
BYTE) zur Speicherung von Daten, die von einem
IO-Link Device gelesen werden.
Diese Daten werden im IEC Datenformat benötigt
 Converter.
byLength BYTE Anzahl der gelesenen Bytes.
eStatus READ_WRITE_STATUS  READ_WRITE_STATUS Enumeration
byErrorCode BYTE Fehlercode, der vom Gerät zurückgegeben wird.
byAdditionalErrorCode BYTE Zusätzlicher Fehlercode, der vom Gerät
zurückgegeben wird.

3.3.2 Funktionsblock WriteParameter


Schreibt einen Parameter in ein IO-Link Device.

Bild: Funktionsblock WriteParameter

Ein-/Ausgang Typ Kommentar

wIndex WORD Parameterindex


bySubindex BYTE Parameter Subindex (= 0 falls nicht verwendet)
pbyData POINTER TO BYTE Zeiger auf den Anfang eines Feldes (ARRAY OF
BYTE) zur Speicherung von Daten, die auf das IO-
Link Device geschrieben werden.
Diese Daten werden im IODD Datenformat benötigt
 Converter.
byLength BYTE Anzahl der zu schreibenden Bytes.
eStatus READ_WRITE_STATUS  READ_WRITE_STATUS Enumeration
byErrorCode BYTE Fehlercode, der vom Gerät zurückgegeben wird.
byAdditionalErrorCode BYTE Zusätzlicher Fehlercode, der vom Gerät
zurückgegeben wird.

9
Festo CECC_IO-Link_3 Bibliothek

3.3.3 READ_WRITE_STATUS Enumeration


Name Wert Kommentar

READ_OK 0 Lesen erfolgreich.


READ_ERROR 1 Lesen fehlgeschlagen, Fehlercode und zusätzliche Fehlercodes
überprüfen.
WRITE_OK 2 Schreiben erfolgreich.
WRITE_ERROR 3 Schreiben fehlgeschlagen, Fehlercode und zusätzliche
Fehlercodes überprüfen.
RUNNING 5 Parameter wird übertragen.
INVALID_REQUEST 136 Ungültiger Zugriff, z. B. in einem reservierten Indexbereich.
BUSY 137 Ein weiterer Funktionsblock liest/schreibt einen Parameter auf den
Ein-/Ausgang des Masterports.
NOT_ACTIVE 138 Ein-/Ausgang des Masterport läuft nicht im IO-Link Modus.

10
Festo CECC_IO-Link_3 Bibliothek

3.4 Events
Zur Verwendung eines Events, das im IO-Link Masterstack auftritt oder von einem angeschlossenen IO-
Link Device ausgelöst wird, kann unter CoDeSys V3 pbF eine Funktion im IEC-Steuerungsprogramm
registriert werden.
• Legen Sie hierfür eine Callback Funktion an ( Online-Hilfe CoDeSys V3 pbF).

3.4.1 Code
FUNCTION IOLinkEventCallback : INT
VAR_INPUT
evtparam : POINTER TO IOL.EventParam;
END_VAR

VAR
iolevent : POINTER TO IOL.EVTPARAM_IOLinkEvent;
END_VAR
iolevent := evtparam^.pParameter;
• Registrieren Sie diese Funktion in der Initialisierungsroutine des PLC Programms.
res, handle : UDINT;
handle := IOL.EventOpen(IOL.EVTID_IOLinkDrv_Event, IOL.CMPID_IOLinkDrv, res);
IOL.EventRegisterCallbackFunction(handle, ADR(IOLinkEventCallback));

Alle Event-Daten sind im STRUCT EVTPARAM_IOLinkEvent enthalten.

3.4.2 STRUCT EVTPARAM_IOLinkEvent


Name Typ Kommentar

byPort BYTE IO-Link Port 0 ... 3


eInstance IOLinkEvent_Instance  IOLinkEvent_Instance Enumeration
(Kann normalerweise ignoriert werden.)
eMode IOLinkEvent_Mode  IOLinkEvent_Mode Enumeration
eType IOLinkEvent_Type  IOLinkEvent_Type Enumeration
xPDValid BOOL Zeigt die Gültigkeit der Prozessdaten.
xLocal BOOL Event innerhalb Masterstack
TRUE = lokales Event
FALSE = nicht lokal - Event von einem IO-Link Device
wEventCode WORD Eventcode
– Wenn lokal  IOLinkEvent_InternalEventCode
Enumeration
– Wenn nicht lokal  Beschreibungsdatei oder
Hersteller-Handbuch des des IO-Link Device.

3.4.3 IOLinkEvent_Instance Enumeration


Instanz in der das Event ausgelöst wurde.
Name Wert Kommentar

UNKNOWN 0 Unbekannte Event-Instanz


PHL 1 Physikalische Schicht
DL 2 Sicherungsschicht
AL 3 Anwendungsschicht
APPL 4 Anwendung

11
Festo CECC_IO-Link_3 Bibliothek

3.4.4 IOLinkEvent_Mode Enumeration


Modus eines IO-Link Events.
Name Wert Kommentar

UNKNOWN 16#00 Unbekannter Event-Modus


SINGLE 16#40 Momentanes Event ohne Start- oder Endpunkt
COMING 16#C0 Kontinuierliches Event (Start)
GOING 16#80 Kontinuierliches Event (Stopp)

3.4.5 IOLinkEvent_Type Enumeration


Typen von IO-Link Events.
Name Wert Kommentar

UNKNOWN 16#00 Unbekannter Event-Typ


ERROR 16#30 Fehler
WARNING 16#20 Warnung
MESSAGE 16#10 Nachricht

3.4.6 IOLinkEvent_InternalEventCode Enumeration


Interne Events des Masterstacks. Nur die wichtigsten sind dokumentiert.
Name Wert Kommentar

S_DEVICELOST 16 – Mode COMING: Kommunikation wurde abgebrochen.


– Mode GOING: Gerät wurde angeschlossen.

S_WRONGSENSOR 26 Validierung ist fehlgeschlagen.


M_PREOPERATE 36 Das Gerät befindet sich jetzt im PREOPERATE Modus.

12
Festo CECC_IO-Link_3 Bibliothek

4 Deviceport
4.1 Allgemein
4.1.1 Funktionsblock DeviceConnected
Zeigt an, ob der CECC als IO-Link Device aktuell mit einem IO-Link Master verbunden ist.

Bild: Funktionsblock DeviceConnected

4.2 Parameter
Der Zugriff auf IO-Link Parameter ist standardmäßig in der Firmware einer SPS implementiert. Zugriffe auf
Parameter eines IEC-Steuerungsprogramms können jedoch mit einer Callbackfunktion umgeleitet werden.
Dabei ist es möglich, zusätzliche Parameter anzubieten und/oder die bestehenden Parameter zu
überschreiben.
Der empfohlene Index-Bereich für eigene Parameter liegt nach IO-Link Spezifikation zwischen
256 und 16383 (16#0100 – 16#3FFF).

• Legen Sie hierfür eine Callback Funktion an ( CoDeSys V3 pbF).


Code
FUNCTION IOLinkParameterAccess : INT
VAR_INPUT
evtparam : POINTER TO IOL.EventParam;
END_VAR

VAR
paramAccess : POINTER TO IOL.EVTPARAM_IOLinkParameterAccess;
END_VAR
paramAccess := evtparam^.pParameter;

• Registrieren Sie diese Funktion in der Initialisierungsroutine des PLC Programms.


res, handle : UDINT;
handle := IOL.EventOpen(IOL.EVTID_IOLinkDeviceDrv_ParameterAccess,
IOL.CMPID_IOLinkDeviceDrv, res);
IOL.EventRegisterCallbackFunction(handle, ADR(IOLinkParameterAccess));

Alle Informationen, um einen Parameterzugriff zu beantworten, befinden sich in der Struktur


IOL.EVTPARAM_IOLinkParameterAccess.
Jeder Zugriff auf einen Parameter muss ausdrücklich in der Callbackfunktion beantwortet werden, indem
eine der dafür vorgesehenen, folgenden Methoden aufgerufen wird.
– ReadResponse
– WriteResponse
– ReadError
– WriteError.

13
Festo CECC_IO-Link_3 Bibliothek

4.2.1 Funktionsblock SetRedirectionSettings


Legt fest welche Parameterzugriffe ins IEC Programm umgeleitet werden (Standard: keine).

Bild: Funktionsblock SetRedirectionSettings

Ein-/Ausgang Typ Kommentar

xReadRequests BOOL Leitet lesende Zugriffe weiter.


xWriteRequests BOOL Leitet schreibende Zugriffe weiter.
xAll BOOL True: Leitet alle Zugriffe weiter (Index > 1).
FALSE: Leitet nur die Zugriffe weiter, die nicht schon nativ
implementiert sind.

4.2.2 Funktionsblock ReadResponse


Schließt den lesenden Zugriff auf einen Parameter mit einer gültigen Antwort ab.

Bild: Funktionsblock ReadResponse

Ein-/Ausgang Typ Kommentar

pbyData POINTER TO Pointer auf ein Byte Array, das die Antwort enthält.
BYTE
byLength BYTE Anzahl der Bytes der Antwort.

4.2.3 Funktionsblock WriteResponse


Schließt den schreibenden Zugriff auf einen Parameter mit einer gültigen Antwort ab. Für diesen
Funktionsblock werden keine Eingangsparameter benötigt.

Bild: Funktionsblock WriteResponse

14
Festo CECC_IO-Link_3 Bibliothek

4.2.4 Funktionsblock ReadError


Schließt den lesenden Zugriff auf einen Parameter mit einer Fehlermeldung ab.

Bild: Funktionsblock ReadError

Ein-/Ausgang Typ Kommentar

byErrorCode BYTE Globale Variable


– IOL.STANDARD_ERROR_CODE := 16#80
oder
– IOL.DEVICE_ERROR_CODE := 16#81

byAdditionalErrorCode BYTE  IOL.STANDARD_ADDITIONAL_ERRORCODE Enumeration


oder ein eigener Fehlercode.

4.2.5 Funktionsblock WriteError


Schließt den schreibenden Zugriff auf einen Parameter mit einer Fehlermeldung ab.

Bild: Funktionsblock WriteError

Ein-/Ausgang Typ Kommentar

byErrorCode BYTE Globale Variable


– IOL.STANDARD_ERROR_CODE := 16#80
oder
– IOL.DEVICE_ERROR_CODE := 16#81

byAdditionalErrorCode BYTE  IOL.STANDARD_ADDITIONAL_ERRORCODE Enumeration


oder ein eigener Fehlercode.

4.2.6 STRUCT EVTPARAM_IOLinkParameterAccess


Name Typ Kommentar

eType ACCESS_TYPE  ACCESS_TYPE Enumeration


wIndex WORD Index des zugegriffenen Parameters.
bySubIndex BYTE Subindex des zugegriffenen Parameters.
byLength BYTE Bei schreibendem Zugriff: Anzahl der Bytes im Datenpuffer
(sonst 0).
pbyData POINTER TO Bei schreibendem Zugriff: Daten die auf den Parameter
BYTE geschrieben werden.

15
Festo CECC_IO-Link_3 Bibliothek

4.2.7 ACCESS_TYPE Enumeration


Dient zur Anzeige, wie auf einen IO-Link Parameter zugegriffen wird.
Name Wert Kommentar

READ 0 Lesender Zugriff


WRITE 1 Schreibender Zugriff

4.2.8 STANDARD_ADDITIONAL_ERRORCODE Enumeration


Zusätzliche Fehlercodes aus der IO-Link Spezifikation.
Name Wert Kommentar

APP_DEV 16#00 Geräte Applikationsfehler (keine Details).


IDX_NOTAVAIL 16#11 Index nicht verfügbar.
SUBIDX_NOTAVAIL 16#12 Subindex nicht verfügbar.
SERV_NOTAVAIL 16#20 Service temporär nicht verfügbar.
SERV_NOTAVAIL_LOCCTRL 16#21 Service temporär nicht verfügbar – lokale Kontrolle.
SERV_NOTAVAIL_DEVCTRL 16#22 Service temporär nicht verfügbar – Geräte Kontrolle.
ACCESS_DENIED 16#23 Zugriff verweigert.
PAR_VALOUTOFRNG 16#30 Parameterwert außerhalb des gültigen Bereichs.
PAR_VALGTLIM 16#31 Parameterwert über der Grenze.
PAR_VALLTLIM 16#32 Parameterwert unter der Grenze.
VAL_LEN_OVRRUN 16#33 Parameterlänge überschritten.
VAL_LEN_UNDRUN 16#34 Parameterlänge unterschritten.
FUNC_NOTAVAIL 16#35 Funktion nicht verfügbar.
FUNC_UNAVAILABLETEMP 16#36 Funktion temporär nicht verfügbar.
PAR_SETINVALID 16#40 Ungültiger Parametersatz.
PAR_SETINCONSIST 16#41 Inkonsistenter Parametersatz.
APP_DEVFAULT 16#81 Applikationsfehler.
APP_DEVNOTRDY 16#82 Applikation nicht bereit.

16
Festo CECC_IO-Link_3 Bibliothek

4.3 Events
4.3.1 Funktionsblock EnqueueEvent
Erstellt ein neues Event, das vom CECC-LK als IO-Link Device an den IO-Link Masterport einer
übergeordneten Steuerung signalisiert wird. Der Rückgabewert ist != 0 (<>0) falls die Eventschlange voll
ist.

Bild: Funktionsblock EnqueueEvent

Eingang Typ Kommentar

byQualifier BYTE Beschreibt den Event entsprechend der Spezifikation.


Kombination aus IOL.IOLinkEvent_Mode und IOL.IOLinkEvent_Type
Enumerationen.
wEventCode WORD Eventcode

Beispiel
qualifier:=IOL.IOLinkEvent_Mode.SINGLE OR IOL.IOLinkEvent_Type.WARNING;
EnqueueEvent(qualifier, 16#4500);

17
Festo CECC_IO-Link_3 Bibliothek

5 Converter
Bei der Arbeit mit CoDeSys V3 pbF und der Bibliothek Festo_CECC_IOLink_3 gibt es potenziell
2 Datenformate:
– IODD
– IEC
Die Darstellung dieser Datenformate ist sehr unterschiedlich. Die Funktionsblöcke ReadParameter und
WriteParameter können nur das Datenformat IODD zurückgeben.
Zur Konvertierung des Datenformats IEC in IODD stehen in dieser Bibliothek eine Reihe von
Funktionsblöcken zur Verfügung.
Ausgang IEC Datenformat IODD Datenformat Bitlänge

BOOL_TO_BYTEARRAY BOOL Bit 1


BYTEARRAY_TO_BOOL
LINT_TO_BYTEARRAY LINT IntegerT 33 ... 64
BYTEARRAY_TO_LINT
DINT_TO_BYTEARRAY DINT IntegerT 17 ... 32
BYTEARRAY_TO_DINT
INT_TO_BYTEARRAY INT IntegerT 9 ... 16
BYTEARRAY_TO_INT
SINT_TO_BYTEARRAY SINT IntegerT 0 ... 8
BYTEARRAY_TO_SINT
ULINT_TO_BYTEARRAY ULINT UIntegerT 33 ... 64
BYTEARRAY_TO_ULINT
UDINT_TO_BYTEARRAY UDINT UIntegerT 17 ... 32
BYTEARRAY_TO_UDINT
UINT_TO_BYTEARRAY UINT UIntegerT 9 ... 16
BYTEARRAY_TO_UINT
USINT_TO_BYTEARRAY USINT UIntegerT 0 ... 8
BYTEARRAY_TO_USINT
REAL_TO_BYTEARRAY REAL Float32T 32
BYTEARRAY_TO_REAL
STRING_TO_BYTEARRAY STRING StringT Variabel
BYTEARRAY_TO_STRING

Zu näheren Erläuterung werden die Converter für eine Variable des Typs INT betrachtet.

18
Festo CECC_IO-Link_3 Bibliothek

5.1 Funktionsblock INT_TO_BYTEARRAY


Um Daten des regulären Datentyps INT auf ein IOLink-Device zu schreiben, müssen diese mit Hilfe des
Funktionsblocks INT_TO_BYTEARRAY konvertiert werden.

Bild: Funktionsblock INT_TO_BYTEARRAY

Ein-/Ausgang Typ Kommentar

value INT Der zu konvertierende Wert.


data POINTER TO Zeiger auf den Anfang eines Feldes (BYTE ARRAY), in
BYTE das die konvertierten Daten geschrieben werden.
INT_TO_BYTEARRAY BYTE Anzahl der Bytes, die in das Byte Array kopiert werden
(in diesem Fall 2).

Nach der Konvertierung können die Daten am Eingang 'byData' des Funktionsblocks WriteParameter
verwendet werden.

5.2 Funktionsblock BYTEARRAY_TO_INT


Wenn ein entsprechender Wert über den Funktionsblock ReadParameter zurückgelesen wird, kann dieser
Wert anschließend mit Hilfe des Funktionsblocks BYTEARRAY_TO_INT zurückkonvertiert werden.

Bild: Funktionsblock BYTEARRAY_TO_INT

Ein-/Ausgang Typ Kommentar

data POINTER TO Zeiger auf den Anfang eines Feldes (BYTE ARRAY),
BYTE das die zu konvertierenden Daten enthält.
BYTEARRAY_TO_INT INT Konvertierter Wert.

19
6 Glossar

C
CAA: Richtlinie zur Verwendung von Variablennamen.

D
Deviceport: Schnittstelle zum Anschluss des CECC an einen übergeordneten IO-Link Master.

E
Enumeration: Liste von Konstanten die eine bestimmte Bedeutung haben.

F
FB: Funktionsblock

I
IEC: Weltweite Normkennzeichnung und betrifft hier die IEC 61131-3. Es handelt sich um die weltweit
gültige Norm für Programmiersprachen von speicherprogrammierbaren Steuerungen und definiert
die folgenden fünf Sprachen: AWL = Anweisungsliste (englisch: IL = Instruction List); KOP =
Kontaktplan (englisch: LD = Ladder Diagramm); FBS = Funktionsbaustein-Sprache (englisch:
Function Block Diagramm); AS = Ablaufsprache (englisch: SFC = Sequential Function Chart); ST
= Strukturierter Text (englisch: ST = Structured Text).

M
Masterport: Schnittstelle zum Anschluss eines IO-Link Devices am CECC.

P
POU: CoDeSys-Abkürzung: POU bezeichnet eine "Program Organization Unit" = "Programm-
Organisationseinheit". Mit Hilfe von POUs kann ein Steuerungsprogramm zusammengesetzt
werden. Ein POU Objekt kann ein Programm, eine Funktion, ein Funktionsblock (FB) oder auch
eine Methode, Aktion, Interface, DUT (Data Unit Type, Datentyp) oder eine externe Datei
beliebigen Formats sein.

S
SPS: Speicherprogrammierbare Steuerung

W
Wake-up: Start der Kommunikation mit einem Device

20