IO-Link Device Description (high level)

Mit dem Markennamen IO-Link ist ein Kommunikationssystem zur Anbindung intelligenter Sensoren und Aktoren an ein Automatisierungssystem in der Norm IEC 61131-9 unter der Bezeichnung Single-drop digital communication interface for small sensors and actuators (SDCI) normiert. Die Standardisierung umfasst dabei sowohl die elektrischen Anschlussdaten als auch ein digitales Kommunikationsprotokoll, über das die Sensoren und Aktoren mit dem Automatisierungssystem in Datenaustausch treten.

Ein IO-Link-System besteht aus einem IO-Link-Master und einem oder mehreren IO-Link-Geräten, also Sensoren oder Aktoren. Der IO-Link-Master stellt die Schnittstelle zur überlagerten Steuerung (SPS) zur Verfügung und steuert die Kommunikation mit den angeschlossenen IO-Link-Geräten.

Ein IO-Link-Master kann einen oder mehrere IO-Link-Ports haben, an jedem Port kann aber nur ein IO-Link-Gerät angeschlossen werden, wobei es mittlerweile auch kaskadierbare Geräte bzw. Hubs gibt.

Ein IO-Link-Gerät kann ein intelligenter Sensor, Aktor oder z. B. ein Hub sein, wobei auch Geräte wie z. B. Netzteile mit IO-Link-Anbindung auf dem Markt sind. Intelligent heißt im Hinblick auf IO-Link, dass ein Gerät z. B. eine Seriennummer oder Parameterdaten (z. B. Empfindlichkeiten, Schaltverzögerungen oder Kennlinien) besitzt, die über das IO-Link-Protokoll lesbar bzw. schreibbar sind. Das Ändern von Parametern kann damit z. T. im laufenden Betrieb durch die SPS erfolgen. Gerne wird IO-Link und die damit übertragenen Daten verwendet um vorbeugende Wartung und Instandhaltung zu betreiben, z. B. ist es möglich einen optischen Sensor so einzustellen daß er über IO-Link meldet wenn er zu verschmutzen droht, eine Reinigung ist dann erforderlich, jedoch muss diese nicht unnötigerweise wie früher pauschal zu früh oder gar zu spät durchgeführt werden.

Die Parameter der Sensoren und Aktoren sind gerätespezifisch, daher gibt es für jedes Gerät Parameterinformationen in Form einer IODD (IO Device Description).
[Quelle: Wikipedia]

 

Sensor vs. IO-Link Sensor (Devices)
NICHT IO-Link Sensoren haben keine eingebaute Logik, um auf ihre Umgebung zu reagieren. Bei z.B. Verschmutzung eines Sensors nimmt der Grad der Verschmutzung so lange zu, bis der Sensor ausfällt.

Ein IO-Link Sensor kann hingegen den Grad der Verschmutzung ermitteln und die Sensor-Parameter während der Laufzeit entsprechend umstellen und weitere Schritte zwecks Bereinigung der Verschmutzung in die Wege leiten. Nach der Bereinigung wird erneut eine automatische Parametrisierung vorgenommen.

Weitere Vorteile von IO-Link

  • Standardisiert nach IEC 61131-9
  • Herstellerunabhängige Integration in Feldbus
  • Unterstützt Anschlüsse (3-Polig – 2x Versorgung & 1x Signal) nach den folgenden Standards:
    • M5
    • M8
    • M12
    • Dreiadrige Kabel
  • Bidirektionale Kommunikation zwecks Device Analyse
  • Untersützung folgender Geschwindigkeiten
    • 4.8kBaud (1 Baud = 1 Symbol pro Sekunde)
    • 38,4kBaud
    • 230,4kBaud

 

High Level Architektur

An jedem Punkt des Masters wird nur ein IO-Link Device angeschlossen d.h. zwischen Device z.B. Sensor und Master liegt eine Punkt-zu-Punkt Kommunikation vor.

 

IODD
Die IODD (IO Device Description) beschreibt Sensoren und Aktoren. Sie enthält Informationen zu Identifikation, Geräteparametern, Prozess- und Diagnosedaten, Kommunikationseigenschaften und den Aufbau des Anwender-Interfaces in Engineering Tools. Sie besteht aus mehreren Dateien: Einer Hauptdatei und optionalen externen Sprachdateien (beides in XML-Format), und optionalen Bilddateien (im PNG-Format). [Quelle: Wikipedia]

Die IODD der einzelnen Devices bzw. Sensoren erhält man entweder auf der Herstellerseite oder innerhalb einer zentralen Repository: https://ioddfinder.io-link.com

Nach download der IODD *.zip Datei werden die Gerätedaten innerhalb einer *.xml Datei zur Verfügung gestellt. Die Name der *xml Datei kann frei gewählt werden.

Das obige und die nachfolgenden Code-Beispiele beziehen sich auf den DTL-C55PA-TMS-407-505 Sensor der Firma Contrinex. IODD Download Link.

IODDChecker
Die Validierung der IODD-Datei kann mit Hilfe der Anwendung IODDChecker über die Kommandozeile erfolgen:

IODD Struktur
Die Basisstruktur sieht wie folgt aus:

Wie in der Abbildung zu sehen ist, besteht die Basisstruktur aus den folgenden 6 Teilbereichen:

  1. DocumentInfo (optional)
  2. ProfileHeader
  3. ProfileBody
  4. CommNetworkProfile
  5. ExternalTextCollection
  6. Stamp

 

1. DocumentInfo

Alle Felder sind optional und sprechen für sich.

 

2. ProfileHeader

Bsp.:

<ProfileHeader>
  <ProfileIdentification>IO Device Profile</ProfileIdentification>
  <ProfileRevision>1.1</ProfileRevision>
  <ProfileName>Device Profile for IO Devices</ProfileName>
  <ProfileSource>IO-Link Consortium</ProfileSource>
  <ProfileClassID>Device</ProfileClassID>
  <ISO15745Reference>
    <ISO15745Part>1</ISO15745Part>
    <ISO15745Edition>1</ISO15745Edition>
    <ProfileTechnology>IODD</ProfileTechnology>
  </ISO15745Reference>
</ProfileHeader>

 

3. ProfileBody
Hier werden die Device spezifischen Angaben aufgeführt.

DeviceIdentity

  • vendorId: ID des Vendors
  • vendorName: Name des Vendors
  • deviceId: Vendor bzw. interne Device-ID
  • VendorText: Vendor Beschreibung
  • VendorUrl: Vendor URL
  • VendorLogo: PNG 160×90
  • DeviceName: Device Name
  • DeviceFamily: Vendor bzw. interne Device Klassifizierung
  • DeviceVariantCollection: Beschreibt die unterschiedlichen Varianten eines Produktes.

Anhand der Kombination aus ‚vendorId‘ & ‚deviceId‘ kann festgestellt werden, ob es sich bei einer IODD um eine IODD für ein neues oder bereits existierendes Device handelt.

 

DeviceFunction
Beschreibt die gesamte Funktionalität eines Gerätes.

  • Features: Beschreibt die Standard Funktionen des Gerätes
    • blockParameter: Block Parameter Unterstützung vorhanden? (true/false)
    • dataStorage: Kann das Gerät Daten speichern? (true/false)
    • profileCharacteristic: Liste an unterstützten PIDs (Profile Identifiers)
    • SupportedAccessLocks: Möglichkeiten, um auf das Gerät zuzugreifen
  • VariableCollection: Alle vom Device unterstützten Variablen
  • ProcessDataCollection: Alle Daten, die vom Device verarbeitet werden
  • EventCollection: Alle vom Gerät unterstützten Events z.B. Warnings
  • UserInterface: Alle Geräte Menüs

 

4. CommNetworkProfile
Beschreibt die Kommunikation eines des IO-Link Interfaces.

  • iolinkRevision: Die Implementierte Protokoll Version
  • compatibleWith: Wird nur angegeben, wenn das Device mit IO-Link 1.0 kompatibel ist
  • TransportLayers
    • PhysicalLayer
      • bitrate: Erlaube sind COM1-COM3
      • minCycleTime: ….
      • sioSupported: Ein IO-Link Sensor starten standardmäßig im SIO-Mode (Standard I/O Mode). Die digitale IO-Link Kommunikation muss daher aktiv gestartet werden.
      • mSequenceCapability: ….
      • Test: Informationen für das automatische Testen
  • ExternalTextCollection: Vergleichbar mit language property Datei
  • Stamp: IODDChecker kennt die beiden Modis ‚check‘ & ’stamp‘. Im ‚check‘ Modus werden gefundene Errors reported. Die Datei wird jedoch nicht überschrieben. Im ’stamp‘ Mode wird der Stempel neue gesetzt d.h. die Datei wird verändert.