IO-Link mittels Prozessdatenzuordnung

Um IO-Link-Geräte an die SPS anzuschließen sind spezielle Erweiterungskarten notwendig, die auch als IO-Link-Master bezeichnet werden. Wohingegen die angebundenen Sensoren Slaves genannt werden.
Phoenix Contact bietet Master sowohl als Feldbusgerät (z.B. FLM IOL4) sowie als Funktionsklemme (z.B. IB IL 24 IOL) an.
Der folgende Text beschreibt das Vorgehen bei einer Funktionsklemme. Bei einem Feldbusgerät wird es ähnlich funktionieren. Es wird davon ausgegangen, dass die IO-Link-Klemme bereits in die Buskonfiguration eingefügt wurde.
Wenn dies erfolgt ist, kann die Klemme in der Buskonfiguration doppelt angeklickt werden. In dem Fenster mit der Überschrift "Gerätedetails" können unter dem Reiter "Geräteparameter" für jeden IO-Link-Port verschiedene Einstellungen vorgenommen werden. Für uns interessant ist nur die Einstellung "Betriebsart". Hier gibt es drei Optionen:

PC WORX - Buskonfiguration>Gerätedetails>Geräteparameter

  1. Digitaler Eingang - In diesem Modus arbeitet der Port als normaler Eingang. Es besteht keine Verbindung zum Sensor über IO-Link.
  2. Digitaler Ausgang - In diesem Modus arbeitet der Port als normaler Ausgang. Es besteht keine Verbindung zum Sensor über IO-Link.
  3. Scan Mode - In diesem Modus ist die IO-Link-Funktion aktiv. Der Master stellt eine Verbindung zum Sensor her und ermöglicht so die Verwendung von IO-Link-Funktionen.

IO-Link Sensoren stellen 16 Bit Eingangsdaten und 16 Bit Ausgangsdaten zur Verfügung. In der Prozessdatenzuordnung können diese Daten mit Variablen verbunden werden, um sie im Programm verfügbar zu machen. Dazu geht man in die Prozessdatenzuordnung und wählt die IO-Link-Klemme aus. Es stehen folgende Optionen zur Verfügung (X ist der Port):

  • Wenn in der Parametrierung "Digitaler Eingang" gewählt wurde, kann der Schaltzustand des Sensors über "SIO IN X" abgerufen werden. Es können nur BOOL-Variablen mit diesem Prozessdatum verbunden werden.
  • Wenn in der Parametrierung "Digitaler Ausgang" gewählt wurde, kann der Schaltzustand über "SIO OUT X" an den Aktor übertragen werden. Hier können ebenfalls nur BOOL-Variablen verbunden werden.
  • Wenn in der Parametrierung "Scan Mode" gewählt wurde, dann können die Eingangsprozessdaten des IO-Link-Gerätes über "IOL X IN" und die Ausgangsprozessdaten über "IOL X OUT" abgerufen werden. Beide Prozessdaten können nur mit Variablen vom Typ WORD verbunden werden.

Prozessdatenzuordnung:
PC WORX - Prozessdatenzuordnung, IO-Link Eingangsdaten

Sensorkommunikation im SPS-Programm

Für die Kommunikation mit dem IO-Link-Gerät im Programmablauf sind unter PC WORX die Bibliotheken FunctionModules und AsynCom notwendig. Sie können von der Phoenix Contact Website bezogen werden.

Es muss bei der Verwendung beachtet werden, wie der IO-Link-Master angeschlossen ist. Das untenstehende Beispiel zeigt die Kommunikation über PROFINET. Der AsynCom_PN-Baustein stellt dabei die Verbindung zum IO-Link-Master her. Die dwNodeID kann in der Buskonfiguration für den IO-Link-Master abgelesen werden. Sie wird dort als "Knoten ID" bezeichnet.

Achtung: Wenn sich der Busaufbau ändert, kann es sein, dass die Knoten ID von PC WORX neu berechnet wird. Das bedeutet, dass sie auch am AsynCom_PN-Baustein geändert werden muss!

Kernstück der Kommunikation ist der Baustein IOL_COM aus der Bibliothek FunctionModules. Im untenstehenden Beispiel wird am xTrigger-Eingang etwa alle 3 Sekunden ein kurzer Impuls angelgt, der den Baustein dazu veranlasst Daten von einem IO-Link-Teilnehmer auzulesen bzw. reinzuschreiben. Der Baustein hat jeweils einen Einausgang für Lese- und Schreibdaten. Im Beispiel liegen daran die Variablen TemperatureRAW_read und TemperatureRAW_write an. Die beiden Arrays werden an anderer Stelle im Programm mit Daten gefüllt bzw. ausgelesen. Am Eingang iPort des Bausteins liegt die Nummer des IO-Link-Ports, über den der Teilnehmer am Master angeschlossen ist, an. Wie in den Grundlagen beschrieben, erfolgt der Zugriff auf Parameter des Teilnehmers über Indizes und Subindizes. Am IOL_COM-Baustein sind für diesen Zweck die Eingänge wIndex und bSubIndex vorgesehen. Außerdem muss dem Baustein bei Schreibzugriff auf den IO-Link-Teilnehmer über den Eingang iWriteLength mittgeteilt werden, wie viele Bytes aus dem Schreibdatenarray an den Teilnehmer übertragen werden sollen.

Achtung: Werden mehr Daten geschrieben, als unter dem gegebenen Index und Subindex möglich, geht der Baustein in einen Fehlerzustand.

Beispiel für PROFINET:

PC WORX - Kommunikation über IO-Link

Zuletzt geändert: Montag, 22. Mai 2017, 13:45