AL1326 - Industrielle Automatisierung IFM - Kostenlose Bedienungsanleitung
Finden Sie kostenlos die Bedienungsanleitung des Geräts AL1326 IFM als PDF.
Benutzerfragen zu AL1326 IFM
0 Frage zu diesem Gerät. Beantworten Sie die, die Sie kennen, oder stellen Sie Ihre eigene.
Eine neue Frage zu diesem Gerät stellen
Laden Sie die Anleitung für Ihr Industrielle Automatisierung kostenlos im PDF-Format! Finden Sie Ihr Handbuch AL1326 - IFM und nehmen Sie Ihr elektronisches Gerät wieder in die Hand. Auf dieser Seite sind alle Dokumente veröffentlicht, die für die Verwendung Ihres Geräts notwendig sind. AL1326 von der Marke IFM.
BEDIENUNGSANLEITUNG AL1326 IFM
Betriebsanleitung
IO-Link Master mit Ether
Net/IP-Schnittstelle
DataLine
AL1326
Inhaltsverzeichnis
1 Vorbemerkung 6
1.1 Rechtliche Hinweise 6
1.2 Verwendete Symbole 6
1.3 Warnhinweise 6
1.4 Änderungshistorie 7
2 Sicherheitshinweise 8
2.1 Cyber-Sicherheit 8
2.2 Sicherheitssymbol auf dem Gerät 8
3 Bestimmungsgemäße Verwendung 9
4 Funktion 10
4.1 IO-Link 10
4.1.1 IO-Link Versorgung.... 10
4.2 Parametrierung 10
4.3 Optische Signalisierung 10
4.4 Ether
Net/IP 10
4.5 ifm IoT-Core 11
4.6 Digitale Eingänge 11
5 Montage 12
5.1 Überblick.... 12
5.2 Gerät montieren 12
6 Elektrischer Anschluss 13
6.1 Generelle Anschlusshinweise 13
6.1.1 Anschlusstechnik 13
6.2 Ethernet-Ports....13
6.3 IO-Link Ports (Class A) 14
6.3.1 IO-Link Devices (Class A) anschließen 14
6.3.2 IO-Link Devices (Class B) anschließen 14
6.4 Funktionserdung 15
6.5 Spannungsversorgung 15
7 Bedien- und Anzeigeelemente 16
7.1 LEDs.... 16
7.1.1 Status 16
7.1.2 Ethernet 16
7.1.3 IoT 16
7.1.4 IO-Link Ports (Class A) 17
7.1.5 Spannungsversorgung 17
8 Inbetriebnahme.... 18
9 Einstellungen 19
9.1 Parametriersoftware 19
9.1.1 Unterstützte Parametriersoftware 19
9.1.2 Verbindung zum Gerät herstellen 19
9.1.2.1 Online-Parametrierung 20
9.1.2.2 Offline-Parametrierung 20
9.1.3 IoT-Schnittstelle 20
9.1.3.1 Zugriffsrechte konfigurieren.... 20
9.1.3.2 IP-Einstellungen konfigurieren 21
9.1.3.3 Schnittstelle zu Monitoring-Software konfigurieren 21
9.1.4 Feldbus-Schnittstelle....22
9.1.4.1 Ether
Net/IP-Schnittstelle konfigurieren 22
9.1.4.2 ▷ Ether
Net/IP-▶ Konfigurationsmodus einstellen.... 23
9.1.5 IO-Link Ports 24
9.1.5.1 Datenübertragung zu Monitoring-Software einstellen 24
9.1.5.2 Betriebsart Pin 4 (US) einstellen 24
9.1.5.3 Zykluszeit einstellen 25
9.1.5.4 Gerätevalidierung und Datenspeicherung einstellen 25
9.1.5.5 ▶ Rückfallwerte einstellen 27
9.1.6 Geräteinformationen 27
9.1.6.1 Identifikationsinformationen lesen 27
9.1.7 Gerätesteuerung 28
9.1.7.1 Gerät auf Werkseinstellungen zurücksetzen 28
9.1.7.2 Gerät neu starten 28
9.1.7.3 Firmware aktualisieren 28
9.1.8 Firmware aktualisieren 29
9.1.9 IO-Link Devices parametrieren 29
9.2 ifm IoT-Core REST API.... 31
9.2.1 ifm IoT-Core: Allgemeine Informationen 31
9.2.1.1 Auf den ifm IoT Core zugreifen 31
9.2.2 Erste Schritte 32
9.2.3 Allgemeine Funktionen 32
9.2.3.1 Beispiel: Eigenschaften eines Elements lesen 33
9.2.3.2 Beispiel: Teilbaum ausgeben 34
9.2.3.3 Beispiel: Einen Parameterwert ändern 36
9.2.3.4 Beispiel: Mehrere Elemente sequenziell lesen 37
9.2.3.5 Beispiel: Gerätebeschreibung durchsuchen 38
9.2.4 IoT: Zugriffsrechte konfigurieren 38
9.2.5 IoT: IP-Einstellungen konfigurieren 38
9.2.6 IoT: Sicherheitsmodus konfigurieren 39
9.2.6.1 Beispiel: Sicherheitsmodus aktivieren 40
9.2.6.2 Beispiel: Anfrage mit Authentifikation 40
9.2.6.3 Beispiel: Passwort zurücksetzen.... 41
9.2.7 IoT: ▷ Schnittstelle zur Monitoring-Software einstellen 41
9.2.8 Fieldbus: Ether
Net/IP-Schnittstelle konfigurieren 42
9.2.9 Fieldbus: Ether
Net/IP-Konfigurationsmodus einstellen 42
9.2.10 Fieldbus: Rückfallwerte der Ausgänge einstellen 43
9.2.11 Ports: Betriebsart Pin 4 (US) einstellen.... 43
9.2.12 Ports: Gerätevalidierung und Datenspeicherung konfigurieren 44
9.2.12.1 Beispiel: Datenspeicher eines IO-Link Ports klonen 45
9.2.13 Ports: Datenübertragung zu Monitoring-Software einstellen 47
9.2.14 Ports: Prozessdaten lesen / schreiben 47
9.2.14.1 Beispiel: IO-Link Prozesswert lesen (Betriebsart "IO-Link"). 47
9.2.14.2 Beispiel: IO-Link Prozesswert schreiben (Betriebsart "IO-Link") ..... 48
9.2.14.3 Beispiel: Digitalen Eingangswert lesen (Betriebsart "DI") 49
9.2.14.4 Beispiel: Digitalen Ausgangswert schreiben (Betriebsart "DO"). 49
9.2.15 Ports: Port-Events lesen 50
9.2.16 Timer: Zeitgeber konfigurieren 50
9.2.16.1 Zählintervall einstellen....50
9.2.17 IO-Link Devices: Auf Parameter zugreifen 51
9.2.17.1 Beispiel: Parameterwert eines IO-Link Devices lesen 51
9.2.17.2 Beispiel: Parameterwert eines IO-Link Devices schreiben.... 52
9.2.18 IO-Link Devices: Geräteinformationen lesen und schreiben 52
9.2.19 IO-Link Devices: IO-Link Events lesen 53
9.2.20 Gateway: Anwendungskennung einstellen 54
9.2.21 Gateway: Firmware aktualisieren 54
9.2.22 Gateway: Zustands- und Diagnoseinformationen lesen 54
9.2.23 Gateway: Geräteinformationen lesen 55
9.2.24 Gateway: Gerät zurücksetzen, neu starten und lokalisieren 55
9.2.25 Benachrichtigungen 55
9.2.25.1 Ereignisgesteuerte Benachrichtigungen 56
9.2.25.2 Zeitgesteuerte Benachrichtigungen.... 56
9.2.25.3 Beispiel: Benachrichtigung abonnieren 56
9.2.25.4 Beispiel: Benachrichtigung ändern 58
9.2.25.5 Beispiel: Benachrichtigung im CSV-Format abonnieren 58
9.2.25.6 Beispiel: Benachrichtigung abmelden 59
9.2.25.7 Beispiel: Benachrichtigung prüfen.... 59
9.2.25.8 MQTT-Unterstützung 60
9.2.25.9 WebSocket-Untertsützung 64
9.3 IoT-Core Visualizer 66
9.3.1 IoT-Core Visualizer starten 66
9.3.2 Benachrichtigungen verwalten 67
9.3.2.1 Neue Benachrichtigung erstellen.... 67
9.3.2.2 Benachrichtigung löschen 67
9.3.3 Elemente des IoT Core suchen.... 68
9.3.4 IO-Link Master konfigurieren....69
9.3.5 Auf Prozessdaten zugreifen 70
9.3.6 Firmware aktualisieren 71
9.4 Ether
Net/IP 72
9.4.1 Hinweis: Startup Packages 72
10 Wartung, Instandsetzung und Entsorgung 73
10.1 Gehäuseoberfläche reinigen 73
10.2 Firmware aktualisieren 73
11 Anhang 74
11.1 ifm IoT-Core 74
11.1.1 Profile 74
11.1.2 Typen 74
11.1.3 Dienste 75
11.1.3.1 Dienst: factoryreset 75
11.1.3.2 Dienst: getblobdata....75
11.1.3.3 Dienst: getdata 75
11.1.3.4 Dienst: getdatamulti 75
11.1.3.5 Dienst: getelementinfo 76
11.1.3.6 Dienst: getidentity 76
11.1.3.7 Dienst: getsubscriberlist 76
11.1.3.8 Dienst: getsubscriptioninfo 77
11.1.3.9 Dienst: gettree....77
11.1.3.10 Dienst: install.... 78
11.1.3.11 Dienst: iolreadacyclic 78
11.1.3.12 Dienst: iolwriteacyclic 78
11.1.3.13 Dienst: querytree....79
11.1.3.14 Dienst: reboot 79
11.1.3.15 Dienst: reset 79
11.1.3.16 Dienst: setblock....79
11.1.3.17 Dienst: setdata 80
11.1.3.18 Dienst: setelementinfo.... 80
11.1.3.19 Dienst: signal 80
11.1.3.20 Dienst: start....80
11.1.3.21 Dienst: start_stream_set 81
11.1.3.22 Dienst: stop....81
11.1.3.23 Dienst: stream_set 81
11.1.3.24 Dienst: subscribe 81
11.1.3.25 Dienst: unsubscribe....82
11.1.3.26 Dienst: validation useconnecteddevice.... 82
11.2 Ether
Net/IP 84
11.2.1 Parameter....84
11.2.1.1 Configuration Assembly (Instance 199)....84
11.2.2 Zyklische Daten 87
11.2.2.1 Input Assembly (Instance 100) 87
11.2.2.2 Input Assembly (Instance 101) 93
11.2.2.3 Input Assembly (Instance 102) 97
11.2.2.4 Output Assembly (Instance 150)....101
11.2.2.5 Output Assembly (Instance 151)....103
11.2.3 Azyklische Daten 105
11.2.3.1 Azyklischer Kommandokanal 105
11.2.3.2 Azyklische Kommandos .....110
11.2.4 Objektverzeichnis 115
11.2.4.1 CIP-Objektklassen 115
11.2.4.2 CIP-Klassen- und Instanzdienste 115
11.2.4.3 Identity Object (Class Code: 0x01) .....116
11.2.4.4 Message Router Object (Class Code: 0x02)....117
11.2.4.5 Assembly Object (Class Code: 0x04) .....118
11.2.4.6 Connection Manager Object (Class Code: 0x06) .....119
11.2.4.7 Device Level Ring Object (Class Code: 0x47).....120
11.2.4.8 Quality Of Service Object (Class Code: 0x48).....121
11.2.4.9 IO-Link Request Object (Class Code: 0x80) .....122
11.2.4.10 TCP/IP Object (Class Code: 0xF5) .....126
11.2.4.11 Ethernet Link Object (Class Code: 0xF6) .....129
1 Vorbemerkung
Anleitung, technische Daten, Zulassungen und weitere Informationen über den QR-Code auf dem Gerät / auf der Verpackung oder über documentation.ifm.com.
1.1 Rechtliche Hinweise
© Alle Rechte bei ifm electronic gmbh. Vervielfältigung und Verwertung dieser Anleitung, auch auszugsweise, nur mit Zustimmung der ifm electronic gmbh.
Alle verwendeten Produktnamen, Bilder, Unternehmen oder sonstige Marken sind Eigentum der jeweiligen Rechteinhaber.
1.2 Verwendete Symbole
√ Voraussetzung
▶ Handlungsanweisung
Reaktion, Ergebnis
[...] Bezeichnung von Tasten, Schaltflächen oder Anzeigen
→ Querverweis

Wichtiger Hinweis
Fehlfunktionen oder Störungen sind bei Nichtbeachtung möglich

Information
Ergänzender Hinweis
1.3 Warnhinweise
Warnhinweise warnen vor möglichen Personen- und Sachschäden. Dadurch wird der sichere Umgang mit dem Produkt ermöglicht. Warnhinweise sind wie folgt abgestuft:

WARNUNG
Warnung vor schweren Personenschäden
▷ Tödliche und schwere Verletzungen sind möglich, wenn der Warnhinweis nicht beachtet wird.

VORSICHT
Warnung vor leichten bis mittelschweren Personenschäden
▷ Leichte bis mittelschwere Verletzungen sind möglich, wenn der Warnhinweis nicht beachtet wird.
ACHTUNG
Warnung vor Sachschäden
▷ Sachschäden sind möglich, wenn der Warnhinweis nicht beachtet wird.
1.4 Änderungshistorie
| Ausgabe | Thema | Datum |
| 00 | Neuerstellung des Dokuments | 02 / 2023 |
| 01 | Geändert: Identity Object (Class Code: 0x01) ( → ☐ 116)Entfernt: REST API – DNS-Unterstützung Hinzugefügt: WebSocket-Untertsützung ( → ☐ 64) | 07 / 2023 |
| 02 | Geändert: Kapitel "Masseverbindung", Funktionserdung ( → ☐ 15)Geändert: Beschreibung und Beispiel MQTT-Kommandokanal, MQTT-Unterstützung ( → ☐ 60)Hinzugefügt: Hinweis zu UL-Anwendungen, Anschlusstechnik ( → ☐ 13) | 07 / 2024 |
| 03 | Hinzugefügt: Beschreibung ifm IoT-Core -Dienst setelementinfo, Dienst: setelementinfo ( → ☐ 80)Hinzugefügt: Unterstützte Webbrowser, IoT-Core Visualizer ( → ☐ 66) | 0? / 2024 |
2 Sicherheitshinweise
- Das beschriebene Gerät wird als Teilkomponente in einem System verbaut.
– Die Sicherheit dieses Systems liegt in der Verantwortung des Erstellers.
- Der Systemersteller ist verpflichtet, eine Risikobeurteilung durchzuführen und daraus eine Dokumentation nach den gesetzlichen und normativen Anforderungen für den Betreiber und den Benutzer des Systems zu erstellen und beizulegen. Diese muss alle erforderlichen Informationen und Sicherheitshinweise für den Betreiber, Benutzer und ggf. vom Systemersteller autorisiertes Servicepersonal beinhalten.
- Dieses Dokument vor Inbetriebnahme des Produktes lesen und während der Einsatzdauer aufbewahren.
- Das Produkt muss sich uneingeschränkt für die betreffenden Applikationen und Umgebungsbedingungen eignen.
- Das Produkt nur bestimmungsgemäß verwenden (→ Bestimmungsgemäße Verwendung).
- Die Missachtung von Anwendungshinweisen oder technischen Angaben kann zu Sach- und / oder Personenschäden führen.
- Für Folgen durch Eingriffe in das Produkt oder Fehlgebrauch durch den Betreiber übernimmt der Hersteller keine Haftung und keine Gewährleistung.
- Montage, elektrischer Anschluss, Inbetriebnahme, Bedienung und Wartung des Produktes darf nur ausgebildetes, vom Anlagenbetreiber autorisiertes Fachpersonal durchführen.
- Geräte und Kabel wirksam vor Beschädigung schützen.
2.1 Cyber-Sicherheit
ACHTUNG
Betrieb des Geräts in einer ungeschützten Netzwerkumgebung
▷ Unzulässiger Lese- oder Schreibzugriff auf Daten möglich.
▷ Unzulässige Beeinflussung der Gerätefunktion möglich.
▶ Zugriff auf autorisierte Nutzer beschränken (z. B. passwortgeschützter Zugang).
▶ Sichere Verfahren wählen, um sich mit dem Gerät zu verbinden (z. B. VPN).
▶ Verschlüsselte Datenübertragung nutzen (z. B. https / TLS)
2.2 Sicherheitssymbol auf dem Gerät

Sicherheitssymbol auf dem Gerät:
▶ Für den sicheren Betrieb des Geräts die Betriebsanleitung beachten.
3 Bestimmungsgemäße Verwendung
Das Gerät darf für folgende Zwecke eingesetzt werden:
• IO-Link Master für die Konfiguration, Verwaltung und den Betrieb von IO-Link Devices
• Gateway zwischen IO-Link Devices und einem übergeordneten Ether
Net/IP-Steuerungssystem
Das Gerät ist für den schaltschranklosen Einsatz im Anlagenbau konzipiert.
4 Funktion
4.1 IO-Link
Das Gerät stellt folgende IO-Link Funktionen bereit:
• IO-Link Master (IO-Link Revision 1.0 und 1.1)
4.1.1 IO-Link Versorgung
Das Gerät bietet Versorgungen für 8 IO-Link Devices (Sensoren, Aktuatoren).
Die Ports X01... X08 sind Ports Class A.
Das Gerät gewährleistet den Brandschutz für angeschlossene IO-Link Devices durch Bereitstellung eines energiebegrenzten Stromkreises an den Ports (nach IEC61010-1 und Class 2 nach UL1310).
4.2 Parametrierung
Das Gerät kann mit folgenden Optionen parametriert werden:
- Parametriersoftware
- ifm moneo|IloT Core Cloud (Art.-Nr. QCM100)
- ifm moneo|IloT Core On-Premises (Art.-Nr. QM9112)
- ifm moneo|configure free
- ifm IoT-Core
- REST API
- ifm IoT-Core Visualizer
- Ether
Net/IP
- Projektierungssoftware
4.3 Optische Signalisierung
Das Gerät bietet folgende optische Anzeigen:
- Status- und Fehleranzeige des Ether
Net/IP-Gateways und des Systems
• Status der Spannungsversorgung US - Status- und Aktivitätsanzeige der Ethernet-Verbindungen
• Status der IoT-Verbindung - Status- und Fehleranzeige der IO-Link Ports (Class A)
4.4 Ether
Net/IP
Das Gerät unterstützt folgende Ether
Net/IP-Funktionen:
• Geräteprofil: Ether
Net/IP Device
• 2-Port-Switch für den Zugriff auf die Feldbus-Schnittstelle
• Min. Zykluszeit: 1 ms (RPI)
- Unterstützte Verbindungsklassen: 1, 3
- Unterstützte Verbindungstypen:
- Exclusive Owner
- Input Only
- Listen Only
• UCMM-Unterstützung
• Vordefinierte Feldbusobjekte
– Identity Object (0x01)
- Message Router Object (0x02)
- Assembly Object (0x04)
- Connection Manager (0x06)
- DLR Object (0x47)
- QoS Object (0x48)
– IO-Link Request Object (0x80)
- TCP/IP Interface Object (0xF5)
– Ethernet Link Object (0xF6)
- Unterstützte Protokolle: DHCP, BOOTP, ACD, DLR
• Gerätebeschreibung: EDS-Datei
4.5 ifm IoT-Core
• Abbildung der Daten, Events und Dienste des Geräts auf ein Objektmodell (ifm IoT-Core)
• Einbindung des Geräts in IIoT-Anwendungen
- Zugriff auf den ifm IoT-Core:
- Browserbasierte Schnittstelle (IoT-Core Visualizer)
- REST-API
• Cyber-Security-Funktionen
- Sichere Datenübertragung über verschlüsselte Verbindung (Secure Layer Transport - TLS)
– Zugriffsschutz per Authentifizierung
- Unterstützte Protokolle: HTTP(S), TCP, JSON, MQTT, Websockets
4.6 Digitale Eingänge
Die Ports X01... X08 verfügen über je einen zusätzlichen digitalen Eingang (Typ 2 nach EN 61131-2). Die digitalen Eingänge liegen an Pin 2.
Die digitalen Eingänge werden über US versorgt. Sie beziehen sich auf das Potential von US (Pin 3).
5 Montage
5.1 Überblick

1: Obere Befestigungslasche
2: Untere Befestigungslasche
5.2 Gerät montieren

▶ Anlage vor Montage spannungsfrei schalten.
▶ Zur Montage eine plane Montageoberfläche verwenden.
▶ Maximales Anzugsdrehmoment beachten.
▶ Modul auf der Montagefläche mit 2 Montageschrauben und Unterlegscheiben Größe M5 befestigen (Anzugsdrehmoment: 1,8 Nm).
6 Elektrischer Anschluss
6.1 Generelle Anschlusshinweise
Das Gerät darf nur von einer Elektrofachkraft installiert werden.
▶ Nationale und internationale Vorschriften zur Errichtung elektrotechnischer Anlagen befolgen.
Gerät ist nur für den Betrieb an SELV/PELV-Spannungen geeignet.
▶ Hinweise zur IO-Link-Beschaltung beachten!
Das Gerät enthält Bauelemente, die durch elektrostatische Entladung (ESD) beschädigt oder zerstört werden können.
▶ Notwendige Sicherheitsmaßnahmen gegen elektrostatische Entladung beachten!
Die Stromkreise sind untereinander und zu berührbaren Oberflächen des Geräts isoliert mit Basisisolierung nach EN61010-1 (Sekundärstromkreis mit maximal 30 V DC, abgeleitet von Netzstromkreis bis 300 V der Überspannungskategorie II).
Die Kommunikationsschnittstellen sind untereinander und zu berührbaren Oberflächen des Geräts getrennt mit Basisisolierung nach EN61010-1 (Sekundärstromkreis mit maximal 30 V DC, abgeleitet von Netzstromkreis bis 300 V der Überspannungskategorie II). Sie sind ausgelegt für Netzwerkumgebung 0 nach IEC TR62102.
6.1.1 Anschlusstechnik
Die Gewindeanschlüsse im Gerät entsprechen dem M12-Standard. Für die Einhaltung der spezifizierten Schutzart dürfen nur Kabel verwendet werden, die diesem Standard entsprechen. Bei selbst konfektionierten Kabeln ist der Systemersteller für die Schutzart verantwortlich.
▶ Steckverbindungen mit vergoldeten Kontakten verwenden.
▶ Die Verschraubung 2 Wochen nach der Montage prüfen und falls notwendig mit dem richtigen Drehmoment nachziehen.
▶ Steckverbindungen bei der Montage senkrecht aufsetzen, damit die Überwurfmutter nicht das Gewinde beschädigt.
▶ Vor dem Anschluss der Steckverbindung prüfen, ob in der Buchse ein unbeschädigter O-Ring vorhanden ist.
▶ Codierung der Steckverbindungen bei der Montage beachten.
▶ Nicht belegte Anschlüsse mit Schutzkappen verschließen. Drehmoment: 1,3 ± 0,1 Nm
Für UL-Anwendungen:

VORSICHT
Kurzschluss zwischen den Sensoreingängen der IO-Link-Ports
▷ Brandgefahr / Stromschlaggefahr
▶ Anschlüsse nicht miteinander verbinden.
▶ Für den Anschluss des Geräts und der IO-Link Devices nur UL-zertifizierte Kabel der Kategorie CYJV oder PVVA mit einer Mindesttemperatur von 80°C verwenden (75°C bei einer maximalen Umgebungstemperatur von 40°C).
6.2 Ethernet-Ports
Über die Ethernet-Ports wird das Gerät mit dem Ether
Net/IP-Netzwerk verbunden (z. B. Ether
Net/IP-Steuerung, zusätzliches Ether
Net/IP-Gerät).
Anschlussbelegung:

1: TX+
2: RX+
3: TX-
4: RX-
5: n.c.
▶ Das Gerät über die Ports X21, X22 mit Ether
Net/IP-Netzwerk verbinden.
▶ Für den Anschluss M12-Steckverbindungen verwenden (min. Schutzart: IP65 / IP66 / IP67).
▶ Kabelstecker mit 1,3 ± 0,1 Nm verschrauben.
6.3 IO-Link Ports (Class A)
An den IO-Link Ports werden die IO-Link Devices (Sensoren, Aktuatoren) angeschlossen.
Die IO-Link Ports erfüllen die Anforderungen der IO-Link Spezifikation 1.0 bis 1.1.2.
Die Ports verfügen über eine Kurzschlusserkennung (US).
Die Ports verfügen über einen zusätzlichen digitalen Eingang (Typ 2, gemäß IEC 61131-2).
Anschlussbelegung:

1: L+ (US)
2: IN DI2
3: L- (US)
4: MP1 DO1/DI1(IO-LINK
5: n.c.
6.3.1 IO-Link Devices (Class A) anschließen
Hinweise zur Beschaltung:
- Die Spannungsversorgung der angeschlossenen IO-Link Devices darf ausschließlich über den IO-Link Master erfolgen.
▶ IO-Link Devices mit Ports X01... X08 verbinden. Maximale Leitungslänge pro Port: 20 m.
▶ Für den Anschluss M12-Steckverbindungen verwenden (min. Schutzart: IP65 / IP66 / IP67).
▶ Kabelstecker mit 1,3 ± 0,1 Nm verschrauben.
6.3.2 IO-Link Devices (Class B) anschließen
Hinweise zur Beschaltung:
- Der Anschluss von IO-Link Devices (Class B) erfordert die Zuführung einer zusätzlichen Hilfsspannung UA. Die Zuführung erfolgt mithilfe eines Y-Verbindungskabels (→ Zubehör).

VORSICHT
Nichtbeachtung der galvanischen Trennung der Stromkreise
▷ Brandgefahr
▶ Sicherstellen, dass die externe Versorgung UA vom Stromkreis des Geräts galvanisch getrennt ist durch Basisisolierung (gemäß IEC 61010-1, Sekundärstromkreis mit max. 30 V DC, abgeleitet von Netzstromkreis bis 300 V der Überspannungskategorie II).
▶ Sicherstellen, dass IO-Link Device und genutzte Verbindungstechnik die galvanische Trennung unterstützen.
- Beim Anschluss eines IO-Link Devices (Class B) ist der zusätzliche digitale Eingang an Pin 2 des Ports nicht verfügbar.
▶ IO-Link Devices über Y-Verbindungskabel mit Ports X01... X08 verbinden.
▶ Y-Verbindungskabel anschließen an Versorgungsspannung 24 V DC (20...30 V SELV/PELV)
▶ Für den Anschluss M12-Steckverbindungen verwenden (min. Schutzart: IP65 / IP66 / IP67).
▶ Kabelstecker mit 1,3 ± 0,1 Nm verschrauben.
6.4 Funktionserdung
Das FE-Potential liegt an folgenden Punkten des Geräts an:
• Obere Befestigungslasche des Gehäuses
Alle Punkte sind im Gerät miteinander verbunden.
▶ Mindestens einen FE-Anschluss des Geräts mit der Erdung der Anlage oder GND der Versorgung verbinden.
Um den elektrischen Störschutz, die bestimmungsgemäße Funktion und den sicheren Betrieb des Geräts zu gewährleisten, für die FE-Verbindung immer den kürzesten Weg wählen.
6.5 Spannungsversorgung
Über den Port X31 wird das Gerät an die Versorgungsspannung US angeschlossen.
Die Versorgungsspannung US versorgt das Gerät und die an den Ports X01... X08 angeschlossenen Geräte.
Der Port X31 verfügt über einen Verpolungsschutz (US, UA).
Anschlussbelegung:

1: L+ (US)
2: n.c.
3: L- (US)
4: n.c.
▶ Anlage spannungsfrei schalten.
▶ Gerät über Port X31 anschließen an 24 V DC (20...30 V SELV/PELV; gemäß IEC 61010-1, Sekundärstromkreis mit max. 30 V DC, abgeleitet von Netzstromkreis bis 300 V der Überspannungskategorie).
▶ Für den Anschluss eine A-codierte M12-Steckverbindung nutzen (min. Schutzart: IP65 / IP66 / IP67).
▶ Kabelbuchsen nach den Drehmoment-Angaben des Kabelherstellers verschrauben. Maximal zulässiges Drehmoment: 0,8 Nm
Empfohlene max. Leitungslänge: 25 m.
▶ Bei Leitungslängen größer 25 m den eintretenden Spannungsabfall und die notwendige minimale Versorgungsspannung von 20 V beachten!
7 Bedien- und Anzeigeelemente
7.1 LEDs
7.1.1 Status
| LED | Beschreibung | Farbe | Zustand | Beschreibung |
| RDY | Gateway-Status | -- | aus | Nicht aktiv oder startet neu |
| grün | blinkt (5 Hz) | Fehler | ||
| blinkt (200 ms ein, 800 ms aus) | Firmware-Update läuft | |||
| ein | OK | |||
| NET | Netzwerk-Status | -- | aus | Not powered, no IP address: Gerät hat keine IP-Adresse oder keine Spannung anliegend oder anliegende Spannung zu niedrig |
| grün / rot | blinkt | Self test: Gerät im Selbsttest nach Start (→ MOD-LED) | ||
| grün | blinkt (1 Hz) | No connection: keine CIP-Verbindung hergestellt und keine Zeitüberschreitung bei Exclusive-Owner-Verbindung | ||
| ein | Connected: Gerät hat IP-Adresse und mind. eine CIP-Verbindung hergestellt und keine Zeitüberschreitung bei Exclusive-Owner-Verbindung | |||
| rot | blinkt (1 Hz) | Connection Timeout: Gerät hat IP-Adresse und Zeitüberschreitung bei Exclusive-Owner-Verbindung | ||
| ein | Duplicate: IP-Adresse doppelt vergeben | |||
| MOD | Ether Net/IP-Modul-Status | -- | aus | No power: keine Spannung anliegend oder anliegende Spannung zu niedrig |
| grün / rot | blinkt | Self test: Gerät im Selbsttest | ||
| grün | blinkt (2 Hz) | Standby: Gerät noch nicht konfiguriert (keine IP-Adresse) | ||
| ein | Device operational: Gerät arbeitet fehlerfrei (Normalbetrieb) | |||
| rot | blinkt (1 Hz) | Major recoverable fault: Schwerer, behebbarer Fehler (z. B. inkorrekte Konfiguration) | ||
| ein | Major unrecoverable fault: Schwerer, nicht behebbarer Fehler (z. B. Modul ausgefallen) |
7.1.2 Ethernet
| LED | Beschreibung | Farbe | Zustand | Beschreibung |
| LNK | Status der Verbindung | grün | aus | keine Ethernet-Verbindung |
| ein | Ethernet-Verbindung hergestellt | |||
| ACT | Status der Datenübertragung | gelb | aus | keine Datenübertragung |
| blinkt | Datenübertragung |
7.1.3 IoT
| LED | Beschreibung | Farbe | Zustand | Beschreibung |
| LNK | Status der Verbindung | grün | aus | keine Ethernet-Verbindung |
| LNK | Status der Verbindung | grün | ein | Ethernet-Verbindung hergestellt |
| IoT | Geräteidentifizierung | grün | blinkt | Geräteidentifizierung aktiv |
| ACT | Status der Datenübertragung | gelb | aus | keine Datenübertragung |
| blinkt | Datenübertragung |
7.1.4 IO-Link Ports (Class A)
| LED | Beschreibung | Farbe | Zustand | Beschreibung |
| Status des IO-Link Ports (Pin 4) | gelb | aus | Port-Mode DI / DO: Pin 4 (C/Q) = OFF | |
| ein | Port-Mode DI / DO: Pin 4 (C/Q) = ON | |||
| grün | blinkt (1 Hz) | Port-Mode IO-Link: kein IO-Link Device gefunden | ||
| blinkt (5 Hz) | Port-Mode IO-Link: Zustand „PREOPERATE“ | |||
| ein | Port-Mode IO-Link: Zustand „OPERATE“ | |||
| rot | blinkt (1,2 Hz) | IO-Link Kommunikationsfehler | ||
| ein | Port-Konfigurationsfehler oder Kurzschluss / Überlast an US | |||
| DI | Status des digitalen Ein-gangs (Pin 2) | gelb | aus | Digitaler Eingang: Pin 2 = OFF |
| blinkt (5 Hz) | Digitaler Eingang: Pin 2 = ON |
7.1.5 Spannungsversorgung
| LED | Beschreibung | Farbe | Zustand | Beschreibung |
| US | Status der Versorgungs-spannung US | grün | aus | keine Versorgungspannung anliegend oder anlie-gende Spannung zu niedrig |
| ein | Versorgungsspannung liegt an |
8 Inbetriebnahme
▶ Gerät ordnungsgemäß montieren.
▶ Gerät ordnungsgemäß elektrisch anschließen.
▷ Nach dem Anschluss an die Versorgungsspannung startet das Gerät.
▷ Die LEDs zeigen Status und Fehlerzustände.
▷ Das Gerät ist betriebsbereit.
▷ Das Gerät kann konfiguriert werden.
9 Einstellungen
9.1 Parametriersoftware
9.1.1 Unterstützte Parametriersoftware
Unterstützte Parametrieroptionen:
- ifm moneo|IloT Core On-Premises (Art.-Nr. QM9112)
- ifm moneo|IloT Core Cloud (Art.-Nr. QCM100)
- ifm moneo|configure free

▶ Für die korrekte Installation: Installationsanleitung ifm moneo beachten.
▶ Die gewünschte Parametriersoftware installieren.
▶ Die für den Betrieb notwendigen Lizenzen aktivieren.
▷ Die installierte Software kann für die Parametrierung des Geräts genutzt werden.
9.1.2 Verbindung zum Gerät herstellen
Voraussetzungen:
√ Laptop / PC ist direkt oder über ein geeignetes Netzwerkkopplungselement (z. B. Switch) mit dem IoT-Port (X23) des Geräts verbunden.

▷ Ansicht [Geräte konifgurieren] erscheint.
▶ Netzwerk nach Geräten scannen.
▷ ifm moneo erkennt den IO-Link Master.
▶ Optional: IP-Einstellungen des IO-Link Masters anpassen.
9.1.2.1 Online-Parametrierung
Das Gerät unterstützt die Parametrierung während des laufenden Betriebs (Online-Parametrierung). Während des Parametriervorgangs bleiben der IO-Link Master und die angeschlossenen IO-Link Devices im Arbeitsbetrieb. Sie führen ihre Funktionen mit den bestehenden Parametern weiter aus, bis die Parametrierung abgeschlossen ist.
Bei Änderung während des Betriebs wird die Funktionsweise der Anlage beeinflusst.
▶ Sicherstellen, dass es nicht zu Fehlfunktionen in der Anlage kommt.
9.1.2.2 Offline-Parametrierung
Das Gerät unterstützt die Parametrierung vor dem Einbau und der Inbetriebnahme (Offline-Parametrierung). Dabei erstellt der Anwender eine Konfiguration für den IO-Link Master und die angeschlossenen IO-Link Devices, ohne mit dem Gerät verbunden zu sein. Die erstellte Konfiguration kann als Datei (*. Irp) gespeichert und später auf das Gerät geladen und aktiviert werden.
9.1.3 IoT-Schnittstelle
Das Menü [IoT] bietet Zugriff auf die Parameter der IoT-Schnittstelle.
9.1.3.1 Zugriffsrechte konfigurieren
Das Gerät kann parallel in eine Feldbus-Umgebung sowie in eine IT-Netzwerkstruktur für IIoT-Anwendungen integriert werden („Y-Weg“). Um konkurrierende Zugriffe auf Parameter und Prozessdaten zu vermeiden, müssen die Rechte der Instanzen eingestellt werden.
Verfügbare Parameter:
| Parameter | Beschreibung | Wertebereich | Zugriff |
| [Access rights] | Zugriffsrechte auf Parameter, Prozessdaten und Alarme / Events des Geräts | • [Fieldbus + IoT]:– Feldbus und ifm IoT-Core haben Lese- und Schreibrechte auf Parameter und Prozessdaten– Feldbus und ifm IoT-Core haben Leserechte auf Ereignisse / Alarme• [Fieldbus + IoT (read only)]:– Feldbus hat Lese- und Schreibrechte auf Parameter und Prozessdaten– Feldbus hat Leserechte auf Ereignisse / Alarme– ifm IoT-Core hat Leserechte auf Parameter, Prozessdaten und Ereignisse / Alarme• [IoT only]:– ifm IoT-Core hat Lese- und Schreibrechte auf Parameter und Prozessdaten– ifm IoT-Core hat Leserechte auf Ereignisse / Alarme– Feldbus hat keine Zugriffsrechte | rw1 |
1 lesen und schreiben
Bei der Parametrierung der Zugriffsrechte in ifm moneo|configure folgende Hinweise beachten:
- Wenn die Zugriffsrechte in Feldbus-Projektierungssoftware und ifm moneo|configure auf den Wert [Fieldbus + IoT] eingestellt sind, dann gelten immer die feldbusseitig eingestellten Parameterwerte.
- Für einen exklusiven Zugriff auf das Gerät über ihm moneo|configure die Zugriffsrechte auf den Wert [IoT only] setzen und in der Feldbus-Projektierungssoftware die Zugriffsrechte auf [Keep settings] setzen.
- Wenn die Zugriffsrechte auf den Wert [Fieldbus + IoT (read only)] eingestellt sind, dann können die Zugriffsrechte in ifm moneo|configure nicht mehr geändert werden. Um mit ifm moneo|configure wieder Schreibzugriff zu erhalten, in der Feldbus-Projektierungssoftware die Zugriffsrechte auf den Wert [Fieldbus + IoT] setzen.
Um die Zugriffsrechte zu konfigurieren:
Voraussetzungen:
√ Parametriersoftware ist gestartet.
√ Verbindung zum Gerät ist hergestellt.
▶ Menü [IoT] wählen.
▷ Menüseite zeigt aktuelle Einstellungen.
▶ Zugriffsrechte einstellen.
▶ Geänderte Werte auf das Gerät schreiben.
▶ Gerät neu starten.
▷ Geänderte Zugriffsrechte sind aktiv.
9.1.3.2 IP-Einstellungen konfigurieren
Für die Kommunikation mit dem IT-Netzwerk müssen die IP-Parameter der IoT-Schnittstelle konfiguriert sein.
Verfügbare Parameter:
| Parameter | Beschreibung | Wertebereich | Zugriff |
| [DHCP] | DHCP-Client aktivieren / deaktivieren | • [Static IP]: DHCP-Client deaktiviert; IP-Parameter werden vom Anwender gesetzt• [DHCP]: DHCP-Client aktiviert; IP-Parameter werden vom DHCP-Server des Netzwerks gesetzt. | r w 1 |
| [IP address] | IP-Adresse der IoT-Schnittstelle | z. B. 192.168.1.100• 169.254.x.x (Default) | r w 1 2 |
| [Subnet mask] | Subnetzmaske des Ethernet-Netzwerks | z. B. 255.255.255.0• 255.255.0.0 (Default) | r w 1 2 |
| [Default gateway IP address] | IP-Adresse des Netzwerk-Gateways | z. B. 192.169.1.1• 0.0.0.0 (Default) | r w 1 2 |
| [MAC address] | MAC-Adresse der IoT-Schnittstelle | z. B. 00:02:01:05:66:C1 | r o 3 |
1 lesen und schreiben
2 nur änderbar, wenn DHCP deaktiviert
3 nur lesen
Um die IoT-Schnittstelle zu konfigurieren:
Voraussetzungen:
√ Parametriersoftware ist gestartet.
√ Verbindung zum Gerät ist hergestellt.
√ Detailansicht des Geräts ist aktiv.
▶ Menü [IoT] wählen.
▷ Menüseite zeigt aktuelle Einstellungen.
▶ IP-▶ Parameter einstellen.
▶ Geänderte Werte auf das Gerät schreiben.
▷ IP-Einstellungen der IoT-Schnittstellen sind konfiguriert.
9.1.3.3 Schnittstelle zu Monitoring-Software konfigurieren
Um die Übertragung der Prozessdaten des IO-Link Master zu einer Monitoring-Software (z. B. ifm moneo suite) zu ermöglichen, muss die Schnittstelle entsprechend konfiguriert werden.
Verfügbare Parameter:
| Name | Beschreibung | Wertebereich | Zugriff |
| [IP address LR Agent or SMARTOBSERVER] | IP-Adresse der Monitoring-Software | z. B. 255.255.255.255 (Default) | rw 1 |
| [Port LR Agent or SMARTOBSERVER] | Portnummer der Monitoring-Software | 0: 0...35100: 35100 (Default)...65535: 65535 | rw 1 |
| [Interval LR Agent or SMARTOBSERVER] | Intervall für die ▷ Datenübertragung zur Monitoring-Software (Wert in ms) | [Disabled]: keine Übertragung (Default)500: 500 ms...2147483647: 2147483647 ms | rw 1 |
| [Application Tag] | Quellenbezeichner des Geräts in der Monitoring-Software (max. 31 Zeichen) | z. B. factory 2 plant 1 | rw 1 |
1 lesen und schreiben
Um die Schnittstelle zur Monitoring-Software einzustellen:
Nach der Änderung der Parameter [Port LR Agent or SMARTOBSERVER] oder [Application Tag] kann es 120 Sekunden dauern, bis das Gerät erneut eine TCP-Verbindung aufbaut.
Um die Verzögerung zu vermeiden:
▶ Nach der Änderung des Parameters das Gerät neu starten.
Voraussetzungen:
√ Parametriersoftware ist gestartet.
√ Verbindung zum Gerät ist hergestellt.
√ Detailansicht des Geräts ist aktiv.
▶ Menü [IoT] wählen.
▷ Menüseite zeigt aktuelle Einstellungen.
▶ Parameter der Schnittstelle einstellen.
▶ Geänderte Werte auf das Gerät schreiben.
▷ Schnittstelle zur Monitoring-Software ist eingestellt.
9.1.4 Feldbus-Schnittstelle
Das Menü [Fieldbus] bietet Zugriff auf die ▶ Parameter der Ether
Net/IP-Schnittstelle.
9.1.4.1 Ether
Net/IP-Schnittstelle konfigurieren
Für die Kommunikation mit dem Ether
Net/IP-Netzwerk müssen die IP-Parameter der Ether
Net/IP-Schnittstelle konfiguriert sein.
Verfügbare Parameter:
| Name | Beschreibung | Wertebereich | Zugriff |
| [DHCP] | DHCP-Client des Geräts aktivieren / deaktivieren | • [Static IP]: IP-Parameter werden vom Anwender eingestellt• [DHCP]: IP-Parameter werden von einem DHCP-Server im Netzwerk eingestellt• [BOOTP]: IP-Parameter werden über Bootstrap Protocol (BOOTP) eingestellt | rw 1 |
| [IP address] | IP-Adresse der Ether Net/IP-Schnittstelle | z. B. 192.168.82.100192.168.1.250 (Default) | rw 1 |
| [Subnet mask] | Subnetzmaske des Ether Net/IP-Netzwerks | z. B. 255.255.0.0• 255.255.255.0 (Default) | rw 1 |
| [Default gateway IP address] | IP-Adresse des Netzwerk-Gateways | z. B. 192.168.82.1• 0.0.0.0 (Default) | rw 1 |
| [Hostname] | Ether Net/IP-Name des Geräts (max. 240 Zeichen) | z. B. iol12.plant1 | rw 1 |
| [MAC address] | MAC-Adresse der Ether Net/IP-Schnittstelle des Geräts | z. B. 00:02:01:0f:c8:8f | ro 2 |
| [Fieldbus firmware] | Version der Feldbus-Firmware | z. B. 5.3.0.10 (Ether Net/IP Adapter) | ro 2 |
1 lesen und schreiben
2 nur lesen
Voraussetzungen:
√ Parametriersoftware ist gestartet.
√ Verbindung zum Gerät ist hergestellt.
√ Detailansicht des Geräts ist aktiv.
▶ Menü [Fieldbus] wählen.
▷ Menüseite zeigt aktuelle Einstellungen.
▶ Parameter der Ether
Net/IP-Schnittstelle einstellen.
- ▶ Änderungen auf dem Gerät speichern.
▷ IP-Einstellungen der Schnittstelle sind konfiguriert.
9.1.4.2 Ether
Net/IP-Konfigurationsmodus einstellen
Das Gerät unterstützt die Ether
Net/IP-Konfigurationsmodi "Top-Down" und "Independent". Für den Konfigurationsmodus „Independent“ kann der Anwender zusätzlich den Verbindungstypen wählen.
Verfügbare Parameter:
| Parameter | Beschreibung | Wertebereich | Zugriff |
| [Independent mode] | Ether Net/IP-Konfigurationsmodus | • [Independent mode off]: Konfiguration über Feldbus-SPS• [Independent mode on]: Konfiguration über Gerät | rw12 |
| [Process data length] | Länge der Prozessdaten (pro IO-Link Port) | • [2 Bytes Input 2 Bytes Output]: 2 Bytes Eingangsdaten, 2 Bytes Ausgangsdaten• [4 Bytes Input 4 Bytes Output]: 4 Bytes Eingangsdaten, 4 Bytes Ausgangsdaten• [8 Bytes Input 8 Bytes Output]: 8 Bytes Eingangsdaten, 8 Bytes Ausgangsdaten• [16 Bytes Input 16 Bytes Output]: 16 Bytes Eingangsdaten, 16 Bytes Ausgangsdaten• [32 Bytes Input 32 Bytes Output]: 32 Bytes Eingangsdaten, 32 Bytes Ausgangsdaten | rw12 |
| [Swap] | Reihenfolge der Bytes im Daten-Wort der Prozessdaten tauschen | • [off]: als Array of Bytes• [on]: als Integer16-Wert; bei Aktualisierung der Prozessdaten werden Bytes getauscht | rw12 |
1 lesen und schreiben
2 lesen und schreiben; Parameter nur änderbar, wenn keine Verbindung zu Feldbus-Steuerung aktiv ist
Voraussetzungen:
√ Parametriersoftware ist gestartet.
√ Verbindung zum Gerät ist hergestellt.
√ Detailansicht des Geräts ist aktiv.
▶ Menü [Fieldbus] wählen.
▷ Menüseite zeigt aktuelle Einstellungen.
▶ Konfigurationsmodus einstellen.
▶ Optional: Verbindungstyp wählen.
▶ Anordnung der Bytes in Prozessdaten einstellen.
- ▶ Änderungen auf dem Gerät speichern.
▷ Ether
Net/IP-Konfigurationsmodus ist eingestellt.
9.1.5 IO-Link Ports
Die Menüs [Port x] (x: 1...8) bieten Zugriff auf die Parameter der IO-Link Ports X01... X08.
9.1.5.1 Datenübertragung zu Monitoring-Software einstellen
Verfügbare Parameter:
| Name | Beschreibung | Wertebereich | Zugriff |
| [Transmission to LR Agent or SMARTOBSERVER] | Übertragung der Prozessdaten des Ports zur Monitoring-Software aktivieren / deaktivieren | • [Disabled]: Prozessdaten werden nicht übertragen• [Enabled]: Prozessdaten werden übertragen | rw1 |
1 lesen und schreiben
Um die Datenübertragung einstellen:
Voraussetzungen:
√ Parametriersoftware ist gestartet.
√ Verbindung zum Gerät ist hergestellt.
√ Detailansicht des Geräts ist aktiv.
√ Schnittstelle zur Monitoring-Software ist konfiguriert, Schnittstelle zu Monitoring-Software konfigurieren (→ 21).
▶ Menü [Port x] (x = 1...8) wählen.
▷ Menüseite zeigt aktuelle Einstellungen.
▶ Parameter einstellen.
▶ Geänderte Werte auf das Gerät schreiben.
▷ Datenübertragung zur Monitoring-Software ist eingestellt.
9.1.5.2 Betriebsart Pin 4 (US) einstellen
Verfügbare Parameter:
| Parameter | Beschreibung | Wertebereich | Zugriff |
| [Mode Pin4 US] | Betriebsart des Pin 4 (C/Q) des Ports | • [Disabled]: Port deaktiviert• [DI]: Digitaler Eingang• [DO]: Digitaler Ausgang• [IO-Link]: IO-Link Prozessdaten | rw1 |
1 lesen und schreiben
Voraussetzungen:
√ Parametriersoftware ist gestartet.
√ Verbindung zum Gerät ist hergestellt.
√ Detailansicht des Geräts ist aktiv.
▶ Menü [Port x] (x = 1...8) wählen.
▷ Menüseite zeigt aktuelle Einstellungen.
▶ Betriebsart einstellen.
- ▶ Änderungen auf dem Gerät speichern.
▷ Betriebsart für Pin 4 (C/Q) des Ports ist eingestellt.
9.1.5.3 Zykluszeit einstellen
In der Betriebsart IO-Link kann zusätzlich die Zykluszeit des Ports eingestellt werden.
Verfügbare Parameter:
| Parameter | Beschreibung | Wertebereich | Zugriff |
| [Cycle time actual] | Aktuelle Zykluszeit zwischen IO-Link Master und IO-Link Device (Wert in μs) | 0: bestmögliche Zykluszeit...132800: 132800 μs | ro 1 2 |
| [Cycle time preset] | Zykluszeit zwischen IO-Link Master und IO-Link Device (Wert in μs) | 0: bestmögliche Zykluszeit1: 1 μs...132800: 132800 μs | rw 3 2 |
| [Bitrate] | Übertragungsrate zwischen IO-Link Master und IO-Link Device | COM1: 4,8k BaudCOM2: 38,4 kBaudCOM3: 230,4 kBaud | ro 1 2 |
1 nur lesen
2 Parameter nur verfügbar, wenn Betriebsart Pin 4 (US) = IO-Link und IO-Link Device an Port angeschlossen ist
3 lesen und schreiben
Voraussetzungen:
√ Parametriersoftware ist gestartet.
√ Verbindung zum Gerät ist hergestellt.
√ Detailansicht des Geräts ist aktiv.
√ Betriebsart des Pin 4 des Ports ist "IO-Link".
▶ Menü [Port x] > [IO-Link] (x = 1...8) wählen.
▶ Zykluszeit einstellen.
▶ Geänderte Werte auf das Gerät schreiben.
▷ Zykluszeit des IO-Link Ports ist eingestellt.
9.1.5.4 Gerätevalidierung und Datenspeicherung einstellen
Das Gerät unterstützt die Funktionen ▷ Gerätevalidierung und Sicherung / Wiederherstellung von Parameterdaten der angeschlossenen IO-Link Devices.
Folgende Optionen sind verfügbar:
| Option | Validierung des angeschlossenen IO-Link Devices | Sicherung der Parameterwerte | Wiederherstellung der Parameterwerte |
| [No check and clear] | Nein | Nein | Nein |
| [Type compatible V1.0 device] | Ja, Prüfung auf Kompatibilität zu IO-Link Standard V1.0 | Nein | Nein |
| [Type compatible V1.1 device] | Ja, Prüfung auf Kompatibilität zu IO-Link Standard V1.1 | Nein | Nein |
| [Type compatible V1.1 device with Backup + Restore] | Ja, Prüfung auf Kompatibilität zu IO-Link Standard V1.1 und Baugleichheit (Vendor ID, Device ID) | Ja, automatische Sicherung der Parameterwerte; Änderungen der aktuellen Parameterwerte werden gespeichert | Ja, Wiederherstellung der Parametwerte bei Anschluss eines baugleichen IO-Link Devices im Auslieferungszustand |
| [Type compatible V1.1 device with Restore] | Ja, Prüfung auf Kompatibilität zu IO-Link Standard V1.1 und Baugleichheit (Vendor ID, Device ID) | Nein, keine automatische Sicherung; Änderungen der Parameterwerte werden nicht gespeichert | Ja, Wiederherstellung der Parametwerte bei Anschluss eines baugleichen IO-Link Devices im Auslieferungszustand |
Gerätevalidierung und Sicherung / Wiederherstellung der Parameterwerte sind nur verfügbar, wenn die Betriebsart „IO-Link“ des Ports aktiviert ist.
Für Optionen [Type compatible V1.1 device with Backup + Restore] und [Type compatible V1.1 device with Restore]: Bei Änderungen der Parameter [Vendor ID] oder [Device ID] im Online-Modus wird der Datenspeicher gelöscht und eine neue Sicherung der Parameterwerte des angeschlossenen IO-Link Devices im IO-Link Master erzeugt.
Verfügbare Parameter:
| Name | Beschreibung | Wertebereich | Zugriff |
| [Validation / Data Storage] | Validierung der angeschlossenen IO-Link Devices und automatische Wiederherstellung der Parametersätze des IO-Link Devices | • [No check and clear]:– keine Validierung– keine Datenspeicherung und Datenwiederherstellung• [Type compatible V1.0 device]:– Validierung (IO-Link V1.0)– keine Datenspeicherung und Datenwiederherstellung• [Type compatible V1.1 device]:– Validierung (IO-Link V1.1)– keine Datenspeicherung und Datenwiederherstellung• [Type compatible V1.1 device with Backup + Restore]:– Validierung (IO-Link V1.1)– Datenspeicherung und Datenwiederherstellung• [Type compatible V1.1 device with Restore]:– Validierung (IO-Link V1.1)– Datenwiederherstellung– keine Datenspeicherung | r w12 |
| [Vendor ID] | Hersteller-ID des IO-Link Devices, gegen die validiert werden soll | z. B. 310: ifm electronic gmbh | r w12 |
| [Device ID] | Geräte-ID des IO-Link Devices, gegen die validiert werden soll | z. B. 1129: TCC501 (ifm-Temperatursensor) | r w12 |
1 lesen und schreiben
2 Parameter nur verfügbar, wenn Betriebsart Pin 4 (US) = IO-Link und IO-Link Device an Port angeschlossen ist
Um die Gerätevalidierung und die Sicherung / Wiederherstellung von Parameterwerten zu konfigurieren:
Voraussetzungen:
√ Parametriersoftware ist gestartet.
√ Verbindung zum Gerät ist hergestellt.
√ Detailansicht des Geräts ist aktiv.
√ Betriebsart des Pin 4 des Ports ist "IO-Link".
▶ Menü [Port x] > [IO-Link] (x = 1...8) wählen.
▷ Menüseite zeigt aktuelle Einstellungen.
▶ Parameter für Gerätevalidierung und Sicherung / Wiederherstellung der Parameterwerte einstellen.
▶ Optional: Hersteller-ID und Geräte-ID eingeben.
- ▶ Änderungen auf dem Gerät speichern.
▶ Gerätevalidierung und Sicherung / Wiederherstellung der Parameterwerte sind konfiguriert.
9.1.5.5 Rückfallwerte einstellen
Der Anwender kann für den Konfigurationsmodus "Independent" die Rückfallwerte der Ausgänge der IO-Link-Ports einstellen. Die Rückfallwerte werden bei einer Unterbrechung der Ether
Net/IP-Verbindung aktiv.
Verfügbare Parameter:
| Parameter | Beschreibung | Wertebereich | Zugriff |
| [Fail-safe digital out] | Rückfallwert für des Ausgangs für Betriebsart "Digitaler Ausgang (DO)" | • [Reset]: Defaultwert• [Old]: letzter aktiver Prozesswert• [Set]: HIGH-Pegel | rw12 |
| [Fail-safe IO-Link] | Rückfallwert des Ausgangs für Betriebsart "IO-Link" | • [Off]: Fail-safe deaktiviert• [Reset]: Fail-safe aktiviert – Defaultwert• [Old]: Fail-safe aktiviert - letzter aktiver Prozesswert• [Pattern]: Fail-safe aktiviert - Bytefolge | rw12 |
1 lesen und schreiben
2 lesen und schreiben; Parameter nur änderbar, wenn keine Verbindung zu Feldbus-Steuerung aktiv ist
Voraussetzungen:
√ Parametriersoftware ist gestartet.
√ Verbindung zum Gerät ist hergestellt.
√ Detailansicht des Geräts ist aktiv.
√ Konfigurationsmodus "Independent" ist aktiv.
▶ Menü [Port x] (x = 1...8) wählen.
▷ Menüseite zeigt aktuelle Einstellungen.
▶ Rückfallwerte einstellen.
▶ Geänderte Werte auf das Gerät schreiben.
▷ Rückfallwerte sind konfiguriert.
9.1.6 Geräteinformationen
Das Menü [Info] bietet Zugriff auf die Identifikationsinformationen des Geräts.
9.1.6.1 Identifikationsinformationen lesen
Verfügbare Informationen:
Um die Geräteinformationen zu lesen:
Voraussetzungen:
√ Parametriersoftware ist gestartet.
√ Verbindung zum Gerät ist hergestellt.
√ Detailansicht des Geräts ist aktiv.
▶ Menü [Info] wählen.
▷ Menüseite zeigt die Identifikationsinformationen.
9.1.7 Gerätesteuerung
Das Menü [Firmware] bietet Zugriff auf Funktionen zur Steuerung des Geräts.
9.1.7.1 Gerät auf Werkseinstellungen zurücksetzen
Voraussetzungen:
√ Parametriersoftware ist gestartet.
√ Verbindung zum Gerät ist hergestellt.
√ Detailansicht des Geräts ist aktiv.
▶ Menü [Firmware] wählen.
▶ Auf [Factory Reset] klicken.
▷ Gerät wird auf Werkseinstellungen zurückgesetzt.
▷ Alle Parameter werden auf ihre Default-Werte gesetzt.
▷ Gerät wird neu eingelesen.
9.1.7.2 Gerät neu starten
Voraussetzungen:
√ Parametriersoftware ist gestartet.
√ Verbindung zum Gerät ist hergestellt.
√ Detailansicht des Geräts ist aktiv.
▶ Menü [Firmware] wählen.
▶ Auf [Reboot] klicken.
▷ Gerät wird neu gestartet.
▷ Alle eingestellten Parameterwerte bleiben erhalten.
9.1.7.3 Firmware aktualisieren
Um die Firmware des Geräts zu aktualisieren:
Voraussetzungen:
√ Neue Firmware wurde heruntergeladen: documentation.ifm.com
√ Parametriersoftware ist gestartet.
√ Verbindung zum Gerät ist hergestellt.
√ Detailansicht des Geräts ist aktiv.
▶ In Kopfzeile: Auf ↑ klicken.
▷ Dialogfenster erscheint.
▶ Auf [Firmware-Datei importieren] klicken.
▷ Datei Explorer erscheint.
▶ Firmware-Datei (.bin) wählen und auf [Öffnen] klicken.
▷ Neue Firmware-Datei ist ausgewählt.
▶ Auf [OK] klicken.
▷ Firmware des Geräts wird aktualisiert.
▷ Status des Aktualisierungsvorgangs wird angezeigt.
▷ Firmware des Geräts ist aktualisiert.
9.1.8 Firmware aktualisieren
Um die Firmware des Geräts zu aktualisieren:
Voraussetzungen:
√ Neue Firmware wurde heruntergeladen: documentation.ifm.com
√ Parametriersoftware ist gestartet.
√ Verbindung zum Gerät ist hergestellt.
√ Detailansicht des Geräts ist aktiv.
▶ In Kopfzeile: Auf ↑ klicken.
▷ Dialogfenster erscheint.
▶ Auf [Firmware-Datei importieren] klicken.
▷ Datei Explorer erscheint.
▶ Firmware-Datei (.bin) wählen und auf [Öffnen] klicken.
▷ Neue Firmware-Datei ist ausgewählt.
▶ Auf [OK] klicken.
▷ Firmware des Geräts wird aktualisiert.
▷ Status des Aktualisierungsvorgangs wird angezeigt.
▷ Firmware des Geräts ist aktualisiert.
9.1.9 IO-Link Devices parametrieren
Das Gerät unterstützt den Zugriff auf die angeschlossenen IO-Link Devices (Sensoren, Aktuatoren).

Informationen zu den Parametern des IO-Link Devices:
→ Betriebsanleitung IO-Link Device
→ IODD-Beschreibung des IO-Link Devices
Voraussetzungen:
√ ifm moneo|configure ist gestartet.
√ Betriebsart Pin 4 (US) des Ports mit dem IO-Link Device ist „IO-Link“.
√ IoT besitzt Lese- und Schreibrechte für den IO-Link Master.
√ IO-Link Device ist korrekt mit einem IO-Link Port des Geräts verbunden.
√ Lokale IODD-Bibliothek von ifm moeno|configure enthält die IODD des IO-Link Devices.
▶ Netzwerk nach Geräten scannen. ▷ ifm moneo|configure erkennt den IO-Link Master.
▶ Verbindung zum IO-Link Master herstellen. ▷ Parametriersoftware erkennt das angeschlossene IO-Link Device.
▶ In der Zeile des IO-Link Device: Auf 🔒 klicken. ▷ Detailansicht des IO-Link Devices erscheint. ▷ Detailansicht zeigt die aktuellen Parameterwerte des IO-Link Devices.

Abb. 1: Beispiel: Detailansicht des Sensors MVQ101
▶ IO-Link Device parametrieren.
▶ Geänderte Konfiguration auf dem IO-Link Device speichern.
▷ IO-Link Device ist parametriert.
9.2 ifm IoT-Core REST API
9.2.1 ifm IoT-Core: Allgemeine Informationen
Das Gerät verfügt über den ifm IoT-Core. Der ifm IoT-Core repräsentiert die Funktionalität des Geräts. Die Funktionalität besteht aus einer Menge aus Daten, Diensten und Ereignissen. Die Elemente des ifm IoT-Core sind in einem JSON-Objekt in einer hierarchischen Baumstruktur angeordnet. Der ifm IoT-Core stellt diese Elemente über Standard-Schnittstellen (z. B. HTTP) der Außenwelt zur Verfügung stellt. So können der Anwender und andere Geräte auf Daten (Parameter, Prozessdaten), Ereignisse (Events) und Funktionen (Dienste) des Geräts zugreifen.
9.2.1.1 Auf den ifm IoT Core zugreifen
Der Zugriff auf ein Element des ifm IoT-Core erfolgt über dessen Adresse (z. B. root/port1/pin2). Die Adresse setzt sich zusammen aus dem zum Element führenden Pfad (root/port1) und dem Identifier des Elements (pin2).
Der Anwender kann über HTTP-Requests auf den ifm IoT-Core zugreifen. Folgende Methoden werden unterstützt.
POST-Methode
Zugriff: lesend, schreibend
Syntax der Anfrage (Request):
{
"code": "code_id",
"cid": id,
"adr": "data_point/service",
"data": {req_data},
"auth": {"user": "usr_id", "passwd": "password"}
}
| Feld | Parameter | Beschreibung |
| code | code_id | Dienstklasserequest: Anfragetransaction: Transaktionevent: Ereignis |
| cid | id | Correlation ID für die paarweise Zuordnung von Anfrage und Rückgabe; vom Nutzer frei zu vergebende Kennung |
| adr | data_point | Datenpunkt inkl. Pfad, auf den zugegriffen werden soll |
| service | Dienst, mit den Datenpunkt zugegriffen werden soll | |
| data 1 | req_data | Daten, die an den ifm IoT Core gesendet werden (z. B. neue Werte); Syntax abhängig vom Dienst |
| auth 2 | usr_id | Nutzername (BASE64-codiert); Default: administrator |
| password | Passwort (BASE64-codiert) |
1 optional; nur erforderlich bei Diensten, die Daten an den ifm IoT Core senden (z. B. setdata)
2 optional; nur erforderlich, wenn Sicherheitsmodus aktiviert ist
Syntax der Antwort (Response):
{
"cid": id,
"data": {resp_data},
"code": diag_code
}
| Feld | Parameter | Beschreibung |
| cid | id | Correlation ID für die Zuordnung von Anfrage und Rückgabe (→ Request) |
| data1 | resp_data | Werte, die vom ifm IoT Core zurückgegeben werden; Syntax abhängig vom Dienst |
| code | diag_code | Diagnosecode |
1 optional; nur verfügbar bei Diensten, die Daten vom ifm IoT Core empfangen (z. B. getdata)
Beim fehlerhaften azyklischen Zugriff auf angeschlossene IO-Link Devices werden gerätespezifische Fehlercodes ausgegeben.
Syntax der Antwort (Response) bei fehlerhaftem Zugriff:
{
"cid": id,
"error": err_code,
"code": diag_code
}
| Feld | Parameter | Beschreibung |
| cid | id | Correlation ID für die Zuordnung von Anfrage und Rückgabe (→ Request) |
| error | err_code | gerätespezifischer Fehlercode (→ IO Device Description (IODD) des IO-Link Devices) |
| code | diag_code | Diagnosecode |
Beispiel: POST-Request
Anfrage (Request):
{
"code": "request",
"cid": -1,
"adr": "devicetag/applicationtag/getdata"
}
Antwort (Response):
{
"cid": -1,
"data": {"value":"Do not use"},
"code": 200
}
9.2.2 Erste Schritte
Um die Gerätebeschreibung des Geräts zu lesen:
▶ Folgende POST-Anfrage an den ifm IoT Core senden: {"code":"request","cid):-1,"adr":"gettree"}
▷ ifm IoT Core gibt die Gerätebeschreibung als strukturiertes JSON-Objekt zurück.
▶ In der Baumstruktur des JSON-Objekts alle Unterstrukturen und die enthaltenen Datenpunkte identifizieren.
▶ Die anwendbaren Dienste für den Zugriff auf Unterstrukturen und darin enthaltene Datenpunkte identifizieren.
9.2.3 Allgemeine Funktionen
Das Gerät besitzt den Typ device (→ Typen ☐ 74). Auf das Wurzelelement des Gerätebaums können folgende Dienste angewendet werden:
| Dienst | Beschreibung |
| ../gettree | Gesamtbaum oder Teilbaum der Gerätebeschreibung (JSON) ausgeben |
| ../getidentity | Identifikationsinformationen des Geräts lesen |
| ../getdatamulti | Mehrere Elemente sequenziell lesen |
| ../getelementinfo | Detaillierte Informationen eines Elements lesen |
| ../getsubscriberlist | Liste mit allen aktiven Benachrichtigungsabonnements ausgeben |
| ../querytree | Gerätebeschreibung nach spezifischen Elementen durchsuchen |
Auf Elemente vom Typ data können in Abhängigkeit von den gesetzten Zugriffsrechten folgende Dienste angewendet werden:
| Dienst | Beschreibung |
| ../getdata | Wert des Elements lesen |
| ../setdata | Wert des Elements schreiben |
9.2.3.1 Beispiel: Eigenschaften eines Elements lesen
Aufgabe: Datentyp und Wertebereich des Parameters accessrights bestimmen
Lösung: Mit Dienst getelementinfo die Eigenschaften des Elements iotsetup/accessrights lesen. Die Felder "type" (Datentyp) und "valuation" (Wertebreich) enthalten die benötigten Informationen.
Anfrage (Request):
{
"code": "request",
"cid": 4711,
"adr": "getelementinfo",
"data": {"adr": "iotsetup/accessrights"}
}
Antwort (Response):
{
"cid":4711,
"data":{
"identifier":"accessrights",
"type":"data",
"profiles":["parameter"],
"format":{
"type":"enum",
"namespace":"json",
"encoding":"integer",
"valuation":{
"valuelist":{
"0":"Fieldbus + IoT",
"1":"Fieldbus + IoT (read-only)",
"3":"IoT only"
}
}
},
"code":200
}
Der Parameter accessrights hat den Datentyp ENUM mit den gültigen Werten "Fieldbus + IoT", "Fieldbus + IoT (read only)" und "IoT only".
9.2.3.2 Beispiel: Teilbaum ausgeben
Aufgabe: Alle direkten Unterelemente des Knotens firmware ausgeben.
Lösung: Mit Dienst gettree den gewünschten Teilbaum ausgeben (Wurzelknoten: firmware, zu zeigende Unterebenen: 1)
Anfrage (Request):
{
"code": "request",
"cid": 4711,
"adr": "gettree",
"data": {
"adr": "firmware",
"level": 1
}
}
Antwort (Response):
{
"cid":4711,
"data":{
"identifier":"firmware",
"type":"structure",
"profiles":["software","software/uploadablesoftware"],
"subs":[{
"identifier":"version",
"type":"data",
"profiles":["parameter"],
"format":{
"type":"string",
"namespace":"json",
"encoding":"UTF-8"
}
},
{
"identifier":"type",
"type":"data",
"format":{
"type":"string",
"namespace":"json",
"encoding":"UTF-8"
}
},
{
"identifier":"install",
"type":"service"
},
{
"identifier":"factoryreset",
"type":"service"
},
{
"identifier":"signal",
"type":"service"
},
{
"identifier":"container",
"type":"data",
"format":{
"type":"binary",
"namespace":"json",
"encoding":"base64"
}
},
{
"identifier":"reboot",
"type":"service"
}
]
},
"code":200
}
9.2.3.3 Beispiel: Einen Parameterwert ändern
Aufgabe: Der Parameter Application Tag des Geräts soll mit dem Wert „Do not use“ geschrieben werden. Der neue Wert soll nur bis zum nächsten Neustart des Geräts gültig sein.
Lösung: Mit Dienst setdata den neuen Wert des Elements /devicetag/applicationtag schreiben. Um den neuen Wert nur bis zum nächsten Neustart des Geräts zu halten, die Option "duration" mit dem Werte uptime übergeben.
Anfrage (Request):
{
"code":"request",
"cid":4711,
"adr":"/devicetag/applicationtag/setdata",
"data":{
"duration":"uptime",
"newvalue":"Do not use"
}
}
Antwort (Response):
{
"cid":4711,
"code":200,
}
9.2.3.4 Beispiel: Mehrere Elemente sequenziell lesen
Aufgabe: Folgende aktuelle Werte des Geräts sollen nacheinander gelesen werden: Temperatur, Seriennummer
Lösung: Die aktuellen Parameterwerte mit dem Dienst getdatamulti lesen (Datenpunkt Temperatur: /processdatamaster/temperature; Datenpunkt Seriennummer: /deviceinfo/serialnumber)
Anfrage (Request):
{
"code": "request",
"cid": 4711,
"adr": "/getdatamulti",
"data": {"datatosend": [
"/processdatamaster/temperature",
"/deviceinfo/serialnumber"]
}
}
Antwort (Response):
{
"cid":4711,
"data":{
"processdatamaster/temperature":{
"code":200,
"data":44
},
"deviceinfo/serialnumber":{
"code":200,
"data":"000174210147"
}
},
"code":200
}
9.2.3.5 Beispiel: Gerätebeschreibung durchsuchen
Aufgabe: Alle Elemente mit dem Profil "timer" auflisten.
Lösung: Mit dem Dienst querytree die Gerätebeschreibung mit dem Parameter "timer" (profile) durchsuchen.
Anfrage (Request):
{
"cid":4711,
"code":"request",
"adr":"querytree",
"data":{
"profile":"timer"
}
}
Antwort (Response):
{
"cid":4711,
"data":{
"adrList":[
"device/timer[1]",
"device/timer[2]"
]
},
"code": 200
}
9.2.4 IoT: Zugriffsrechte konfigurieren
Das Gerät kann parallel in eine Feldbus-Umgebung sowie in eine IT-Netzwerkstruktur für IIoT-Anwendungen integriert werden („Y-Weg“).

Änderungen des Datenpunkts accessrights sind erst wirksam nach einem Neustart des Geräts: Gateway: Gerät zurücksetzen, neu starten und lokalisieren (→ ☐ 55)
Unterstruktur: iotsetup
Verfügbare Datenpunkte:
Bei der Parametrierung der Zugriffsrechte mit dem ifm IoT Core folgende Hinweise beachten:
- Wenn die Zugriffsrechte in Feldbus-Projektierungssoftware und im ifm IoT Core auf den Wert [Fieldbus + IoT] eingestellt sind, dann gelten immer die feldbusseitig eingestellten Parameterwerte.
- Für einen exklusiven Zugriff auf das Gerät über den ifm IoT Core die Zugriffsrechte auf den Wert [IoT only] setzen und in der Feldbus-Projektierungssoftware die Zugriffsrechte auf [Keep settings] setzen.
- Wenn die Zugriffsrechte im ifm IoT Core auf den Wert [Fieldbus + IoT (read only)] eingestellt sind, dann können die Zugriffsrechte über den ifm IoT Core nicht mehr geändert werden. Um mit dem ifm IoT Core wieder Schreibzugriff zu erhalten, in der Feldbus-Projektierungssoftware die Zugriffsrechte auf den Wert [Fieldbus + IoT] setzen.
9.2.5 IoT: IP-Einstellungen konfigurieren
Unterstruktur: iotsetup/network
Verfügbare Datenpunkte:
| Name | Beschreibung | Wertebereich | Zugriff |
| ../dhcp | DHCP-Modus aktivieren / deaktivieren | static ip: DHCP-Client deaktiviert; IP-Parameter werden vom Anwender gesetztdhcp: DHCP-Client aktiviert; IP-Parameter werden vom DHCP-Server des Netzwerks gesetzt | rw1 |
| ../ipaddress | IP-Adresse der IoT-Schnittstelle | z. B. 192.68.1.100169.254.x.x (Default) | rw1 |
| ../subnetmask | Subnetzmaske des Ethernet-Netzwerksegments | z. B. 255.255.255.0255.255.0.0 (Default) | rw1 |
| ../ipdefaultgateway | IP-Adresse des Netzwerk-Gateways | z. B. 192.169.1.10.0.0.0 (Default) | rw1 |
1 lesen und schreiben
Anwendbare Dienste:
| Name | Beschreibung |
| ../setblock | alle Datenpunkte der Unterstruktur blockweise schreiben |

Die Datenpunkte der Unterstruktur nur mit dem Dienst setblock schreiben!
9.2.6 IoT: Sicherheitsmodus konfigurieren
Das Gerät bietet einen Sicherheitsmodus. Der Sicherheitsmodus ermöglicht es, den Zugriff auf IO-Link Master und angeschlossene IO-Link Devices aus dem IT-Netzwerk heraus zu schützen. Bei aktiviertem Sicherheitsmodus gelten folgende Einschränkungen:
- Zugriff nur per Authentifizierung (Passwortschutz)
- Zugriff nur über verschlüsselte Verbindung (TLS – Transport Layer Security)

Der Sicherheitsmodus schützt nur den Zugriff und die Datenübertragung über die IoT-Schnittstelle.
▷ Der Nutzername administrator ist nicht änderbar.
▷ Das gesetzte Passwort kann nicht mit getdata gelesen werden.
Der aktuelle Status des Sicherheitsmodus kann mit dem Dienst getidentity (→ Dienst: getidentity ☐ 76) gelesen werden.
Für die Authentifizierung muss der Anwender den POST-Requests zusätzlich das Feld auth mit gültigem Nutzername und Passwort übergeben. Nutzername und Passwort werden als Base64-codierte Zeichenketten dargestellt.
Folgende Anfragen können bei aktiviertem Sicherheitsmodus auch ohne Authentifizierung ausgeführt werden:
- getidentity
• deviceinfo/vendor/getdata
• deviceinfo/productcode/getdata
Unterstruktur: iotsetup
Verfügbare Datenpunkte:
| Name | Beschreibung | Wertebereich | Zugriff |
| ../security/securitymode | Sicherheitsmodus aktivieren / deaktivieren | disabled: Sicherheitsmodus deaktiviertenabled: Sicherheitsmodus aktiviert | rw 1 |
| ../security/password | Passwort für Authentifizierung (Base64-codiert) | wo 2 |
1 lesen und schreiben
2 nur schreiben

Gültiger Zeichensatz für die Base64-Kodierung / Dekodierung des Passworts: UTF-8
Online-Werkzeug für Kodierung / Dekodierung: www.base64encode.org
9.2.6.1 Beispiel: Sicherheitsmodus aktivieren
Aufgabe: Der Sicherheitsmodus der IoT-Schnittstelle soll aktiviert werden. Als gültiges Passwort soll "password" gesetzt werden (BASE64-codiert: cGFzc3dvcmQ=).
Lösung: Den Sicherheitsmodus über den Datenpunkt iotsetup/security/securitymode aktivieren. Das gewünschte Passwort auf den Datenpunkt iotsetup/security/password schreiben.
Sicherheitsmodus aktivieren
Anfrage (Request):
{
"code": "request",
"cid": 1,
"adr": "/iotsetup/security/securitymode/setdata",
"data": {"newvalue": 1}
}
Antwort (Response):
{
"cid": -1,
"code": 200
}
Passwort setzen
Anfrage (Request):
{
"code": "request",
"cid": 2,
"adr": "/iotsetup/security/password/setdata",
"data": {"newvalue":"cGFzc3dvcmQ="}
}
Antwort (Response):
{
"cid": 2,
"code": 200
}
9.2.6.2 Beispiel: Anfrage mit Authentifikation
Aufgabe: Die Temperatur des IO-Link Masters soll gelesen werden. Die Sicherheitsfunktion ist aktiviert (aktuelles Passwort: password).
Lösung: Den Datenpunkt processdatamaster/temperature lesen. Die Anfrage muss mit https gesendet werden. Nutzername und Passwort werden als BASE64-codierte Zeichenketten übergeben ("administrator" = "YWRtaW5pc3RyYXRvcg==", "password" = "cGFzc3dvcmQ=").
Anfrage (Request):
{
"code": "request",
"cid": 1,
"adr": "processdatamaster/temperature/getdata",
"auth": {
"user": "YWRtaW5pc3RyYXRvcg==",
"passwd": "cGFzc3dvcmQ="
}
}
Antwort (Response):
{
"cid": 1,
"data": {"value": 37},
"code": 200
}
9.2.6.3 Beispiel: Passwort zurücksetzen
Aufgabe: Das existierende Passwort soll rückgesetzt werden.
Lösung: Um ein Passwort rückzusetzen, den Sicherheitsmodus deaktivieren. Den Sicherheitsmodus über den Datenpunkt iotsetup/security/securitymode deaktivieren Für die Deaktivierung ist die Eingabe des Nutzernamens und des Passworts notwendig (Felder "user" und "passwd").
Anfrage (Request):
{
"code": "request",
"cid": -1,
"adr": "iotsetup/security/securitymode/setdata",
"data": {"newvalue": 0},
"auth": {
"user": "YWRtaW5pc3RyYXRvcg==",
"passwd": "SW9UNG1mbQ==""
}
}
Antwort (Response):
{
"cid": -1,
"code": 200
}
9.2.7 IoT: Schnittstelle zur Monitoring-Software einstellen
Um die Übertragung der Prozessdaten des IO-Link Master zu Monitoring-Software (z. B. ifm moneo suite) zu ermöglichen, muss die Schnittstelle entsprechend konfiguriert werden.
Unterstruktur: iotsetup
Verfügbare Datenpunkte:
| Name | Beschreibung | Wertebereich | Zugriff |
| ../smobip | IP-Adresse der Monitoring-Software | z. B. 255.255.255.255 (Default) | rw1 |
| ../smobport | Portnummer der Monitoring-Software | 0: 0...35100: 35100 (Default)...65535: 65535 | rw1 |
| ../smobinterval | Intervall für die Datenübertragung zur Monitoring-Software (Wert in Millisekunden) | 0: Off - keine Übertragung (Default)500: 500 ms...2147483647: 2147483647 ms | rw1 |
1 lesen und schreiben
9.2.8 Fieldbus: Ether
Net/IP-Schnittstelle konfigurieren
Für die Kommunikation mit dem Ether
Net/IP-Netzwerk muss die Ether
Net/IP-Schnittstelle konfiguriert werden.
Unterstruktur: fieldbussetup
Verfügbare Datenpunkte:
| Name | Beschreibung | Werte | Zugriff |
| ../network/dhcp | Status des DHCP-Clients | 0: Statische IP-Adresse1: DHCP (Dynamic Host Configuration Protocol)2: BOOTP (Bootstrap Protocol) | rw1 |
| ../network/ipaddress | IP-Adresse der Ethernet-Schnittstelle | z. B. 192.200.0.100192.168.1.250 (Default) | rw12 |
| ../network/subnetmask | Subnetzmaske des Netzwerksegments | z. B. 255.255.192.0255.255.255.0 (Default) | rw12 |
| ../network/ipdefaultgateway | IP-Adresse des Netzwerk-Gateways | z. B. 192.200.63.10.0.0.0 (Default) | rw12 |
| ../network/macaddress | MAC-Adresse der Ethernet-Schnittstelle | z. B. 00:02:01:0E:10:7C | ro3 |
| ../hostname | Ether Net/IP-Hostname | z. B. alxx2x | rw1 |
| ../fieldbusfirmware | Feldbus-Firmware | z. B. 5.3.0.10 (Ether Net/IP Adapter) | ro3 |
| ../connectionstatus | Status der Feldbusverbindung | 0: Nicht verbunden1: Verbunden | ro3 |
1 lesen und schreiben
2 lesen und schreiben; Parameter nur änderbar, wenn keine Verbindung zu Feldbus-Steuerung aktiv ist
3 nur lesen
Anwendbare Dienste:
| Name | Beschreibung |
| ../network/setblock | alle Werte der Unterstruktur blockweise schreiben |

▶ Die Parameter in der Unterstruktur network nur blockweise mit dem Dienst setblock ändern!
9.2.9 Fieldbus: Ether
Net/IP-Konfigurationsmodus einstellen
Das Gerät unterstützt die Ether
Net/IP-Konfigurationsmodi „Top-Down Mode“ und „Independent Mode“.
Unterstruktur: fieldbussetup/configuration
Verfügbare Datenpunkte:
| Name | Beschreibung | Wertebereich | Zugriff |
| ../independentmode | Konfigurationsmodus | 0: Independent Mode aus1: Independent Mode ein | r w12 |
| ../explicitmodepd | Verbidnungstypen (Input Assembly, Output Assembly) | 0: Explicit Process Data Mode aus1: Explicit Process Data Mode mit IO-Link I/O + Acyclic + Diag2: Explicit Process Data Mode mit IO-Link I/O + Acyclic3: Explicit Process Data Mode mit IO-Link I/O | r w12 |
| ../processdataconfiguration | Länge der Prozessdaten | 0: 2 Bytes Input 2 Bytes Output1: 4 Bytes Input 4 Bytes Output2: 8 Bytes Input 8 Bytes Output3: 16 Bytes Input 16 Bytes Output4: 32 Bytes Input 32 Bytes Output | r w12 |
| ../swap | Tausch der Bytes in Prozessdaten | 0: aus1: ein | r w12 |
1 lesen und schreiben
2 lesen und schreiben; Parameter nur änderbar, wenn keine Verbindung zu Feldbus-Steuerung aktiv ist
9.2.10 Fieldbus: Rückfallwerte der Ausgänge einstellen
Für den Fall einer Unterbrechung der Ether
Net/IP-Verbindung können Rückfallwerte für die konfigurierten Ausgänge der Ports eingestellt werden.
Unterstruktur: fieldbussetup/configuration/port[x] (x:1...8)
Verfügbare Datenpunkte:
| Name | Beschreibung | Wertebereich | Zugriff |
| ../failsafedigitalout | Rückfallwert für digitalen Ausgang – Pin 4 (DO) | 0: Failsafe – Reset value: Defaultwert1: Failsafe – Old value: letzter aktiver Wert2: Failsafe - Set value: HIGH-Pegel | r w12 |
| ../failsafeiolink | Rückfallwert für IO-Link Ausgangs-daten – Pin 4 (IO-Link) | 0: No Failsafe: Fail-safe deaktiviert1: Failsafe - Reset value: Fail-safe aktiviert - Defaultwert2: Failsafe – Old value: Fail-safe aktiviert – letzter aktiver Prozesswert3: Failsafe with Pattern: Fail-sage aktiviert - Bytefolge | r w12 |
1 lesen und schreiben
2 lesen und schreiben; Parameter nur änderbar, wenn keine Verbindung zu Feldbus-Steuerung aktiv ist
9.2.11 Ports: Betriebsart Pin 4 (US) einstellen
Der Pin 4 der Ports X01... X08 unterstützt folgende Betriebsarten:
- Deaktiviert: keine Datenübertragung an Pin 4 (C/Q) des Ports
• Digitaler Eingang: binäres Eingangssignal an Pin 4 (C/Q) des Ports
• Digitaler Ausgang: binäres Ausgangssignal an Pin 4 (C/Q) des Ports
• IO-Link: IO-Link-Datentransfer über Pin 4 (C/Q) des Ports
Die eingestellte Betriebsart muss zum Betriebsmodus des am Port angeschlossenen Geräts passen (Sensor, Aktuator, IO-Link Device).
Unterstruktur: iolinkmaster/port[x] (x: 1...8)
Verfügbare Datenpunkte:
| Name | Beschreibung | Wertebereich | Zugriff |
| .../mode | Betriebsart des Pin 4 (US) des Ports | 0: Disabled - Port deaktiviert1: DI - Digitaler Eingang2: DO - Digitaler Ausgang3: IO-Link - IO-Link-Daten | rw12 |
| ../mastercycletime_actual | Aktuelle Zykluszeit der Datenübertragung zwischen Port und IO-Link Device (Wert in μs) | 0: bestmögliche Zykluszeit1: 1 μs...132800: 132800 μs | ro3 |
| ../comspeed | Aktuelle Übertragungsrate zwischen Port und IO-Link Device | 0: COM1 - 4,8 kBaud1: COM2 - 38,4 kBaud2: COM3 - 230,4 kBaud | ro3 |
| ../mastercycletime_preset | Zykluszeit der Datenübertragung zwischen Port und IO-Link Device (Wert in μs); nur in Betriebsart IO-Link | 0: Bestmögliche Zykluszeit automatisch einstellen1: 1 μs...132800: 132800 μs | rw12 |
1 lesen und schreiben
2 lesen und schreiben; Parameter nur änderbar, wenn keine Verbindung zu Feldbus-Steuerung aktiv ist
3 nur lesen
9.2.12 Ports: Gerätevalidierung und Datenspeicherung konfigurieren
Das Gerät unterstützt die Funktionen Gerätevalidierung und Sicherung / Wiederherstellung von Parameterdaten der angeschlossenen IO-Link Devices.
Folgende Optionen sind verfügbar:
| Option | Validierung des angeschlossenen IO-Link Devices | Sicherung der Parameterwerte | Wiederherstellung der Parameterwerte |
| [No check and clear] | Nein | Nein | Nein |
| [Type compatible V1.0 device] | Ja, Prüfung auf Kompatibilität zu IO-Link Standard V1.0 | Nein | Nein |
| [Type compatible V1.1 device] | Ja, Prüfung auf Kompatibilität zu IO-Link Standard V1.1 | Nein | Nein |
| [Type compatible V1.1 device with Backup + Restore] | Ja, Prüfung auf Kompatibilität zu IO-Link Standard V1.1 und Baugleichheit (Vendor ID, Device ID) | Ja, automatische Sicherung der Parameterwerte; Änderungen der aktuellen Parameterwerte werden gespeichert | Ja, Wiederherstellung der Parametwerte bei Anschluss eines baugleichen IO-Link Devices im Auslieferungszustand |
| [Type compatible V1.1 device with Restore] | Ja, Prüfung auf Kompatibilität zu IO-Link Standard V1.1 und Baugleichheit (Vendor ID, Device ID) | Nein, keine automatische Sicherung; Änderungen der Parameterwerte werden nicht gespeichert | Ja, Wiederherstellung der Parametwerte bei Anschluss eines baugleichen IO-Link Devices im Auslieferungszustand |
Gerätevalidierung und Sicherung / Wiederherstellung der Parameterwerte sind nur verfügbar, wenn die Betriebsart „IO-Link“ des Ports aktiviert ist.
Für Optionen [Type compatible V1.1 device with Backup + Restore] und [Type compatible V1.1 device with Restore]: Bei Änderungen der Parameter [Vendor ID] oder [Device ID] im Online-Modus wird der Datenspeicher gelöscht und eine neue Sicherung der Parameterwerte des angeschlossenen IO-Link Devices im IO-Link Master erzeugt.
Unterstruktur: iolinkmaster/port[x] (x: 1...8)
Verfügbare Datenpunkte:
| Name | Beschreibung | Wertebereich | Zugriff |
| ../validation_datastorage_mode | Verhalten des Ports beim Anschluss der eines neuen IO-Link Devices | 0: No check and clear1: Type compatible V1.0 device2: Type compatible V1.1 device3: Type compatible V1.1 device with Backup + Restore4: Type compatibe V1.1. device with Restore | rw12 |
| ../validation_vendorid | IO-Link-ID des Herstellers, der validiert werden soll | 0...655535 | rw12 |
| ../validation_deviceid | IO-Link-ID des Geräts, das validiert werden soll | 0...16777215 | rw12 |
| ../datastorage | Struktur für Data Storage des Ports | - | rw12 |
| ../datastorage/maxsize | maximale Größe des Data-Storage-Inhalts (in Bytes) | z. B. 2066: 2066 Bytes | ro3 |
| ../datastorage/chunksize | Größe eines Datensegments (in Bytes) | z. B. 256: 256 Bytes | ro3 |
| ../datastorage/size | Größe der Data-Storage-Inhalts (in Bytes) | z. B. 1024: 2 Bytes | ro3 |
1 lesen und schreiben
2 lesen und schreiben; Parameter nur änderbar, wenn keine Verbindung zu Feldbus-Steuerung aktiv ist
3 nur lesen
Anwendbare Dienste:
| Name | Beschreibung |
| ../validation_useconnecteddevice | IO-Link Device validieren |
| ../datastorage/getblobdata | Inhalt des Data-Storage-Bereichs lesen |
| ../datastorage/stream_set | Einzelnes Datensegment übertragen |
| ../datastorage/start_stream_set | Sequenzielle Übertragung mehrerer Datensegmente starten |
9.2.12.1 Beispiel: Datenspeicher eines IO-Link Ports klonen
Aufgabe: Der Datenspeicher des Ports 2 von IO-Link Master 1 soll nach IO-Link Master 2 geklont werden.
Lösung: Das Klonen besteht aus 2 Schritten. Im ersten Schritt wird der Datenspeicher des Ports von IO-Link Master 1 gelesen. Im zweiten Schritt werden die gelesenen Daten in den Datenspeicher des Ports von IO-Link Master 2 gespeichert.
Datenspeicher lesen
▶ Segmentgröße des Data Storage lesen (h = Anzahl der Bytes)
{
"code": "request",
"cid": -1,
"adr": "/iolinkmaster/port[2]/datastorage/chunksize/getdata"
}
Beispiel: h = 256
▶ Gesamtgröße des Data Storage lesen (g = Anzahl der Bytes)
{
"code": "request",
"cid": -1,
"adr": "/iolinkmaster/port[2]/datastorage/size/getdata"
}
Beispiel: g = 550
▶ Anzahl der Leseschritte n berechnen: n = erster ganzzahliger Wert, für den gilt: g < n*h
Beispiel: n= 3, da 550 < 3*256
▶ Segmentweise den Data Storage lesen ("pos" gibt den Byte-Offset an, an dem mit der Länge "length" der Lesevorgang startet).
{
"code": "request",
"cid": -1,
"adr": "/iolinkmaster/port[2]/datastorage/getblobdata",
"data": {"pos": 0, "length": h}
}
{
"code": "request",
"cid": -1,
"adr": "/iolinkmaster/port[2]/datastorage/getblobdata",
"data": {"pos": h, "length": h}
}
{
"code": "request",
"cid": -1,
"adr": "/iolinkmaster/port[2]/datastorage/getblobdata",
"data": {"pos": 2 * h, "length": h}
}
...
{
"code": "request",
"cid": -1,
"adr": "/iolinkmaster/port[2]/datastorage/getblobdata",
"data": {"pos": n * h, "length": h}
}
Beispiel:
- Lesebefehl: pos = 0, length = 256
- Lesebefehl: pos = 256, length = 256
- Lesenebefehl: pos = 512, length = 256
Jedes Segment wird als BASE64-codierter String zurückgegeben.
▶ Segmente verbinden (konkatenieren).
Datenspeicher wiederherstellen
▶ Größe des gesicherten Data-Storage-Inhalts ermitteln (n = Anzahl der Bytes).
Beispiel: n = 550
▶ Segmentgröße lesen (s = Anzahl der Bytes)
{
"code": "request",
"cid": -1,
"adr": "/iolinkmaster/port[1]/datastorage/chunksize/getdata"
}
Beispiel: s = 256
▶ Segmentweises Schreiben des Data-Storage-Strings starten ("size" = Größe des gelesenen Data Storage)
{
"code": "request",
"cid": -1,
"adr": "/iolinkmaster/port[1]/datastorage/start_stream_set",
"data": {"size": n}
}
Beispiel: size = 550
▶ Segmentweise Data-Storage-String übertragen ("value" = String-Wert mit Länge s)
{
"code": "request",
"cid": -1,
"adr": "/iolinkmaster/port[1]/datastorage/stream_set",
"data": { "value": "aWZtfgIAAABBTDF4NXhfY25faXRfdDIuMi43Nw..." }
}
9.2.13 Ports: Datenübertragung zu Monitoring-Software einstellen
Unterstruktur: iolinkmaster/port[x] (x: 1...8)
Verfügbare Datenpunkte:
| Name | Beschreibung | Wertebereich | Zugriff |
| ../senddatatosmob | Übertragung der Prozessdaten zur Monitoring-Software aktivieren / deaktivieren | 0: Disabled – Prozessdaten werden nicht übertragen1: Enabled – Prozessdaten werden übertragen | rw 1 |
1 lesen und schreiben
9.2.14 Ports: Prozessdaten lesen / schreiben
Unterstruktur: iolinkmaster/port[x] (x: 1...8)
Verfügbare Datenpunkte:
| Name | Beschreibung | Wertebereich | Zugriff |
| ../pin2in | Digitaler Eingang (Pin 2) | 0: OFF1: ON | ro 1 |
| ../iolinkdevice/pdin | Eingangsdaten (Pin 4) | Betriebsart "DI":0x00: OFF0x01: ONBetriebsart "IO-Link":Prozesswert in Hexadezimaldarstellung | ro 1 |
| ../iolinkdevice/pdout | Ausgangsdaten (Pin 4) | Betriebsart "DO":0x00: OFF0x01: ONBetriebsart "IO-Link":Prozesswert in Hexadezimaldarstellung | rw 2\ 3 |
1 nur lesen
2 lesen und schreiben
3 lesen und schreiben; Parameter nur änderbar, wenn keine Verbindung zu Feldbus-Steuerung aktiv ist
9.2.14.1 Beispiel: IO-Link Prozesswert lesen (Betriebsart "IO-Link")
Aufgabe: Den aktuellen Messwert des ifm-Temperatursensors TN2531 an Port 2 lesen.
Lösung: Den Wert des Datenpunkts pdin lesen.
Anfrage (Request):
{
"code": "request",
"cid": 4711,
"adr": "/iolinkmaster/port[2]/iolinkdevice/pdin/getdata"
}
Antwort (Response):
{
"cid":4711,
"data":{"value":"03C9"},
"code":200
}
Der Rückgabewert wird im Hexadezimalformat dargestellt. Der Rückgabewert enthält neben dem Temperaturwert zusätzliche Informationen ( → IO Device Description (IODD) des Sensors). Der Temperaturwert wird in den Bits 2 bis 15 abgebildet.
0x03C9 = 0b1111001001
Temperaturwert: 0b11110010 = 242
Daraus folgt: Der aktuelle Temperaturwert ist 24,2 °C.
9.2.14.2 Beispiel: IO-Link Prozesswert schreiben (Betriebsart "IO-Link")
Aufgabe: Der Buzzer des DV2500 an Port 2 soll eingeschaltet werden. Der DV2500 arbeitet im On/Off-Modus.
Lösung: Den Wert des Datenpunkts pdout schreiben. Die IODD des DV2500 zeigt die Struktur des Prozesswerts (z. B. LED-Aktivität). Der Buzzer wird über Bit 40 des Prozesswerts geschaltet (OFF = 0, ON = 1).
Ablauf:
- Den aktuellen Prozesswert lesen: Beispiel: IO-Link Prozesswert lesen (Betriebsart "IO-Link") (→ 47)
- Bit 40 des gelesenen Werts auf 1 setzen.
- Neuen Prozesswert schreiben.
Beispiel:
Gelesener Prozesswert:
0x0000 0000 004D = 0b0000 0000 0000 0000 0000 0000 0000 0000 0000 0100 1101
Neuer Prozesswert:
0b0000 0001 0000 0000 0000 0000 0000 0000 0000 0000 0100 1101 = 0x0100 0000 004D
Anfrage (Request):
{
"code": "request",
"cid": 10,
"adr": "iolinkmaster/port[2]/iolinkdevice/pdout/setdata",
"data": {"newvalue":"01000000004D"}
}
Antwort (Response):
{
"cid":10,
"code":200
}
9.2.14.3 Beispiel: Digitalen Eingangswert lesen (Betriebsart "DI")
Aufgabe: Der digitale Eingangswert des IO-Link Devices an Port 2 (Pin 4) soll gelesen werden. Die Betriebsart des IO-Link Ports ist "Digital Input (DI)".
Lösung: Den Prozesswert des Datenpunkts pdin lesen. Der Prozesswert wird als Hexadezimalwert mit der Länge von 1 Byte zurückgegeben (OFF = "00", ON = "01").
Anfrage (Request):
{
"code": "request",
"cid": 10,
"adr": "iolinkmaster/port[2]/iolinkdevice/pdin/getdata"
}
Antwort (Response):
{
"cid":10,
"data": {
"value":"00"
},
"code":200
}
9.2.14.4 Beispiel: Digitalen Ausgangswert schreiben (Betriebsart "DO")
Aufgabe: Der digitale Ausgangswert des IO-Link Devices an Port 2 (Pin 4) soll auf ON gesetzt werden. Die Betriebsart des IO-Link Ports ist "Digital Output (DO)".
Lösung: Den Prozesswert des Datenpunkts pdout schreiben. Der Wert muss als Hexadezimalwert mit der Länge von 1 Byte übergeben werden (OFF = "00", ON = "01").
Anfrage (Request):
{
"code": "request",
"cid": 10,
"adr": "iolinkmaster/port[2]/iolinkdevice/pdout/setdata",
"data": {
"newvalue": "01"
}
}
Antwort (Response):
{
"cid":10,
"code":200
}
9.2.15 Ports: Port-Events lesen
Ein Port-Event enthält Informationen über Ereignisse am IO-Link Port (z. B. IO-Link Device angeschlossen oder getrennt, Änderung der Betriebsart des Ports).
Unterstruktur: iolinkmaster/port[x] (x: 1...8)
Verfügbare Datenpunkte:
| Name | Beschreibung | Wertebereich | Zugriff |
| ../portevent | Port-Event Struktur: 0xYYZZ000xYY: Device Status – Status des IO-Link Devices0xZZ: Connection Status – Status der Verbindung | Device Status:0x00: Kein IO-Link Device angeschlossen0x40: Falsches IO-Link Device angeschlossen0x80: IO-Link Device angeschlossen und in Zustand PREOPERATE0xFF: IO-Link Device angeschlossen und in Zustand OPERATEConnection Status:0x00: Port deaktiviert0x01: Port aktiviert, aber kein Gerät angeschlossen0x02: Port aktiviert und in Betriebsart „IO-Link“0x03: Port aktiviert und in Betriebsart „DI“0x04: Port aktiviert und in Betriebsart „DO“0x1B: Wiederholungen erkannt0x1E: Kurzschluss erkannt an Pin 40x42: Falsche Revision des IO-Link Devices0x43: Falsche Vendor ID (V1.1 Revision)0x44: Falsche Device ID (V1.1 Revision)0x45: Falsche Vendor ID (V1.0 Revision)0x46: Falsche Device ID (V1.0 Revision)0x48: Falsche Zykluszeit | ro 1 |
1 nur lesen
9.2.16 Timer: Zeitgeber konfigurieren
Das Gerät verfügt über 2 Zeitgeber. Die Zeitgeber können für die zeitgesteuerte Übertragung von Benachrichtigungen genutzt werden.
Die Zeitgeber sind werkseitig aktiv.
Unterstruktur: timer[1] / timer[2]
Verfügbare Datenpunkte:
| Name | Beschreibung | Wertebereich | Zugriff |
| ../counter | Zählerstand | 0...4294967295 | rw1 |
| ../interval | Zählintervall (Wert in ms) | 1000: 1000 ms...86400000: 86400000 ms | rw1 |
| ../interval/unit | Einheit des Zählintervalls | ms: Millisekunden | ro2 |
1 lesen und schreiben
2 nur lesen
9.2.16.1 Zählintervall einstellen
Aufgabe: Das Zählintervall des Zeitgebers 2 soll auf 2,5 s eingestellt werden.
Lösung: Mit dem Dienst setdata den neuen Wert 2500 auf den Datenpunkt /timer[2]/interval schreiben (2500 ms = 2,5 s).
Anfrage (Request):
{
"code": "request",
"cid": 1,
"adr": "/timer[2]/interval/setdata",
"data": {
"newvalue": 2500
}
}
Antwort (Response):
{
"cid": 1,
"code": 200
}
9.2.17 IO-Link Devices: Auf Parameter zugreifen
Der ifm IoT Core unterstützt den Zugriff auf die Parameter von angeschlossenen IO-Link Devices über das IT-Netzwerk per ISDU (Index Service Data Unit). Jeder Parameter ist über seinen ISDU Index und ISDU Subindex adressierbar ( → IODD des IO-Link Devices). Bei einem fehlerhaften Zugriff auf das IO-Link Device wird in der Antwort zusätzlich der ISDU Fehlercode ausgegeben ( → IODD des IO-Link Devices).
Unterstruktur: iolinkmaster/port[x]/iolinkdevice (x: 1...8)
Anwendbare Dienste:
| Name | Beschreibung |
| ../iolreadacyclic | Parameter eines IO-Link Devices lesen (azyklisch) |
| ../iolwriteacyclic | Parameter eines IO-Link Devices schreiben (azyklisch) |
Bei Nutzung des Validierungslevels „Type compatible V1.1 Device with Backup + Restore“:
Nach der Änderung eines Parameters per ISDU-Schreibzugriff muss der Anwender mit dem Systembefehl „Param
DownloadStore“ den Parametriervorgang beenden und den ▷ Data-Storage-Mechanismus auf dem IO-Link Device aktivieren.
▶ Per ayzklischem ISDU-Schreibzugriff das Objekt System
Command (ISDU-Index: 0x0002) auf den Wert 0x05 (Befehl „Param
DownloadStore“) setzen.
▷ Parametriervorgang wird beendet.
Data-Storage-Mechanismus auf IO-Link Device wird aktiviert.
▷ IO-Link Device synchronisiert geänderte Parameterwerte mit Data Storage des IO-Link Masters.
9.2.17.1 Beispiel: Parameterwert eines IO-Link Devices lesen
Aufgabe: Seriennummer des ifm-Temperatursensors TN2531 an Port 2 lesen.
Lösung: Die Seriennummer mit dem Dienst iolreadacyclic aus dem IO-Link Devices lesen (Index: 21, Subindex: 0)
Anfrage (Request):
{
"code": "request",
"cid": 4711,
"adr": "/iolinkmaster/port[2]/iolinkdevice/iolreadacyclic",
"data": {
"index": 21,
"subindex": 0
}
}
Antwort (Response):
{
"cid":4711,
"data":{"value":"4730323134323830373130"},
"code":200
}
Der zurückgegebene Wert wird im Hexadezimalformat dargestellt. Die Konvertierung des HEX-Werts in einen STRING-Wert ergibt: G0214280710.
9.2.17.2 Beispiel: Parameterwert eines IO-Link Devices schreiben
Aufgabe: Die Ausgangskonfiguration OUT1 des ifm-Temperatursensors TN2531 an Port 2 auf den Wert "Hnc / Hysteresefunktion, Öffner" setzen.
Lösung: Den Parameter [ou1] des Sensors mit dem Dienst iolwriteacyclic auf den Wert 4 setzen. Auf den Parameter kann über IO-Link Index 580, Subindex 0 zugegriffen werden (→ IODD-Beschreibung des Sensors).
Anfrage (Request):
{
"code":"request",
"cid":4711,
"adr":"/iolinkmaster/port[2]/iolinkdevice/iolwriteacyclic",
"data":{
"index":580,
"subindex":0,
"value":"34"
}
}
Der Wert muss im Hexadezimalformat übergeben werden. Die Konvertierung des STRING-Werts in einen HEX-Wert ergibt: 34.
Antwort (Response):
{
"cid":4711,
"code":200
}
9.2.18 IO-Link Devices: Geräteinformationen lesen und schreiben
Unterstruktur: iolinkmaster/port[x]/iolinkdevice (x: 1...8)
Verfügbare Datenpunkte:
| Name | Beschreibung | Wertebereich | Zugriff |
| ../status | Status des angeschlossenen IO-Link Devices | 0: State not connected – Zustand Nicht verbunden1: State preoperate – Zustand PREOPERATE2: State operate – Zustand OPERATE3: State communication error – Zustand Kommunikationsfehler | ro 1 |
| ../vendorid | IO-Link ID des Herstellers | z. B. 310: ifm electronic | ro 1 |
| ../deviceid | IO-Link ID des IO-Link Devices | z. B. 712: ifm Drucksensor PV7003 | ro 1 |
| ../productname | Produktname des IO-Link Devices | z. B. PV7003 | ro 1 |
| ../serial | Seriennummer des IO-Link Devices | z. B. 000008500706 | ro 1 |
| ../applicationspecifictag | Anwendungsspezifische Kennung (Application Tag) | z. B. sensor1_machine3 | rw 2 |
1 nur lesen
2 lesen und schreiben
9.2.19 IO-Link Devices: IO-Link Events lesen
Das Gerät unterstützt IO-Link Events. IO-Link Events sind Ereignis- und Fehlermeldungen. IO-Link Events können im IO-Link Master und in den angeschlossenen IO-Link Devices generiert werden. In den IO-Link Devices generierte IO-Link Events werden an den IO-Link Master weitergeleitet und dort gespeichert.
Ein IO-Link-Event-Nachricht besitzt folgende Struktur:
| Byte 0...1 | Byte 2 | Byte 3 | Byte 4 | Byte 5 | Byte 6 |
| Event Code | Source | Validity | Type | Mode | Instance |
Legende
| Instance | IO-Link Evnet Qualifier: Auslöser | 1 Byte | 0x00: unbekannt0x01: PL (Physical Layer)0x02: DL (Data Layer)0x03: AL (Application Layer)0x04: APPL (Application) |
| Mode | IO-Link event Qualifier: Ereignis-Auslöser | 1 Byte | 0x40: einmaliges Ereignis oder Warnung (Single Shot)0xC0: Fehler verschwunden (Disappeared)0x80: Fehler erschienen (Appeared) |
| Type | IO-Link Event Qualifier: Ereignis-Kategorie | 1 Byte | 0x10: Benachrichtigung0x20: Warnung0x30: Fehler |
| Validity | Gültigkeit der Prozessdaten | 1 Byte | 0x00: gültig0x40: ungültig |
| Source | IO-Link Event Qualifier: Ereignis-Quelle | 1 Byte | 0x00: IO-Link Device0xFF: IO-Link Master |
| Event Code | IO-Link Event Code (Bytes sind getauscht!) | 2 Bytes | → IO-Link Spezifikation |
Unterstruktur: iolinkmaster/port[x]/iolinkdevice (x: 1...8)
Verfügbare Datenpunkte:
| Name | Beschreibung | Wertebereich | Zugriff |
| ../iolinkevent | IO-Link Event | Siehe Hinweis | ro 1\ 2 |
1 nur lesen
2 Parameter nur verfügbar, wenn Betriebsart Pin 4 (US) = IO-Link und IO-Link Device an Port angeschlossen ist
9.2.20 Gateway: Anwendungskennung einstellen
Unterstruktur: devicetag
Verfügbare Datenpunkte:
| Name | Beschreibung | Werte | Zugriff |
| ../applicationtag | Bezeichnung des Geräts (Application Tag) | z. B. “factory 2 plant 1“ | rw 1 |
1 lesen und schreiben
Für die Speicherung des Parameters applicationtag stehen auf dem Gerät 32 Byte zur Verfügung. Wird der Speicherbereich überschritten, bricht das Gerät den Schreibvorgang ab (Diagnosecode 400).
▶ Beim Schreiben des Parameters applicationtag den unterschiedlichen Speicherbedarf der einzelnen UTF-8-Zeichen beachten (Zeichen 0-127: 1 Byte pro Zeichen; Zeichen >127: mehr als 1 Byte pro Zeichen).
9.2.21 Gateway: Firmware aktualisieren
Unterstruktur: firmware
Verfügbare Datenpunkte:
| Name | Beschreibung | Werte | Zugriff |
| ../version | Firmware-Version | AL1x2x_cn_ei_v3.1.95 | ro 1 |
| ../type | Software-Typ | firmware | ro 1 |
| ../container | Struktur für Firmware (BLOB) | - | wo 2 |
| ../container/maxsize | Größe Container (in Bytes) | z. B. 4194304 | ro 1 |
| ../container/chunksize | Größe Datensegment (in Bytes) | z. B. 4096 | ro 1 |
| ../container/size | Größe Firmware-Datei in Container (in Bytes) | z. B. 634523 | ro 1 |
1 nur lesen
2 nur schreiben
Anwendbare Dienste:
| Name | Beschreibung |
| ../install | Firmware installieren |
| ../container/stream_set | Einzelnes Datensegment übertragen |
| ../container/start_stream_set | Sequenzielle Übertragung mehrerer Datensegmente starten |
ifm electronic empfiehlt, die Firmware über den IoT Core Visualizer ( → IoT-Core Visualizer ☐ 66) zu aktualisieren.
9.2.22 Gateway: Zustands- und Diagnoseinformationen lesen
Unterstruktur: processdatamaster
Verfügbare Datenpunkte:
| Name | Beschreibung | Wertebereich | Zugriff |
| ../temperature | Temperatur des Geräts (Wert in °C) | -30: -30°C...80: 80°C | ro 1 |
| ../temperature/unit | Physikalische Einheit der Temperatur | °C | ro 1 |
| ../voltage | aktueller Spannungswert der Geräteversorgung US (Wert in mV) | 0: 0 mV...40000: 40000 mV | ro 1 |
| ../voltage/unit | Physikalische Einheit der Spannung | mV | ro 1 |
| ../current | aktueller Stromstärkewert der Geräteversorgung US (Wert in mA) | 0: 0 mA...40000: 40000 mA | ro 1 |
| ../current/unit | Physikalische Einheit der Stromstärke | mA | ro 1 |
| ../supervisionstatus | Status der Geräteversorgung US | 0: OK1: Fehler | ro 1 |
1 nur lesen
9.2.23 Gateway: Geräteinformationen lesen
Unterstruktur: deviceinfo
Verfügbare Datenpunkte:
Zusätzliche Informationen über das Geräts können mit dem Dienst getidentity (→ Dienst: getidentity ☐ 76) gelesen werden.
9.2.24 Gateway: Gerät zurücksetzen, neu starten und lokalisieren
Unterstruktur: firmware
Anwendbare Dienste:
| Name | Beschreibung |
| ../factoryreset | Gerät auf Werkseinstellungen zurücksetzen |
| ../reboot | Gerät neu starten |
| ../signal | Blinken der Status-LEDs auslösen |
9.2.25 Benachrichtigungen
Die ifm IoT Core bietet die Möglichkeit, Benachrichtigungen zu verschicken. Eine Benachrichtigung kann die aktuellen Werte einzelner oder mehrerer Prozessdaten enthalten.
Benachrichtigungen können entweder ereignisgesteuert oder zeitgesteuert ausgelöst werden.
Benachrichtigungen können mit folgenden Protokollen übertragen werden:
- HTTP (Hypertext Transfer Protocol)
• MQTT (Message Queuing Telemetry Transport)
• TCP (Transmission Control Protocol) - WS (WebSocket)
Benachrichtigungen können in folgenden Formaten übertragen werden:
- JSON
- CSV
Die Aktivitätsdauer einer Benachrichtigung kann eingestellt werden:
- once: Benachrichtigung ist nur einmalig aktiv und wird dann gelöscht
- uptime: Benachrichtigung ist bis zum nächsten Neustart des Geräts aktiv und wird dann gelöscht
• lifetime: Benachrichtigung ist dauerhaft aktiv
Benachrichtigungen werden mit dem Dienst subscribe eingerichtet (→ Dienst: subscribe ☐ 81).
Aktive Benachrichtigungen können mit dem Dienst subscribe geändert werden (→ Dienst: subscribe ☐ 81).
Alle aktiven Benachrichtigungen können mit dem Dienst getsubscriberlist angezeigt werden (→ Dienst: getsubscriberlist ☐ 76).
Informationen über eine aktive Benachrichtigung können mit dem Dienst getsubscriptioninfo angezeigt werden (→ Dienst: getsubscriptioninfo ☐ 77).
Aktive Benachrichtigungen können mit dem Dienst unsubscribe abgemeldet werden (→ Dienst: unsubscribe ☐ 82).
9.2.25.1 Ereignisgesteuerte Benachrichtigungen
Alle Elemente des ifm IoT-Cores mit einem Unterelement vom Typ event können als Auslöser für ereignisgesteuerte Benachrichtigungen genutzt werden.
| Name | Beschreibung |
| ../datachanged | Knoten für die Anzeige von Wertänderungen des übergeordneten Datenknotens |
| ../eventcollection | Knoten für die Anzeige von Wertänderungen mehrerer Datenknoten des IoT-Cores |
| ../treechanged | Knoten für die Anzeige von Strukturänderungen im IoT-Core |
Anwendbare Dienste:
| Name | Beschreibung |
| ../subscribe | Benachrichtigungen anmelden |
| ../unsubscribe | Benachrichtigungen abmelden |
| ../getsubscriptioninfo | Informationen über Benachrichtigungen anzeigen |
9.2.25.2 Zeitgesteuerte Benachrichtigungen
Der ifm IoT-Core bietet 2 Zeitgeber, die als Auslöser für zeitgesteuerte Benachrichtigungen genutzt werden können.
| Name | Beschreibung |
| ../timer[1]/counter/datachanged | Zähler des Zeitgerbers 1 |
| ../timer[2]/counter/datachanged | Zähler des Zeitgebers 2 |
Die Intervallzeit der Zeitgeber kann eingestellt werden. Jeder Zählimpuls löst eine Benachrichtigung aus.
Anwendbare Dienste:
| Name | Beschreibung |
| ../subscribe | Benachrichtigungen anmelden |
| ../unsubscribe | Benachrichtigungen abmelden |
| ../getsubscriptioninfo | Informationen über Benachrichtigungen anzeigen |
9.2.25.3 Beispiel: Benachrichtigung abonnieren
Aufgabe: Es sollen regelmäßig aller 0,5 Sekunden die aktuellen Werte folgender Parameter an einen Netzwerk-Server mit der IP-Adresse 192.168.0.4/temp verschickt werden:
- zyklische Eingangsdaten des IO-Link Devices an IO-Link Port 2
• Betriebstemperatur des IO-Link Masters.

Folgende Optionen sind zusätzlich verfügbar:
Per WebSockets (ws://): Beispiel: WebSockets nutzen (→ 64)
Per MQTT (mqtt://): Beispiel: ▶ MQTT-Verbindung konfigurieren und aktivieren (→ 62)
Lösung:
▶ Mit dem subscribe-Dienst die erforderlichen Daten abonnieren.
• Anfrage (Request):
{
"code": "request",
"cid": 4711,
"adr": "/timer[1]/counter/datachanged/subscribe",
"data": {
"callback": "http://192.168.0.4:80/temp",
"datatosend": [
"/iolinkmaster/port[2]/iolinkdevice/pdin",
"/processdatamaster/temperature"]
}
}
▶ Den Timer auf 500 ms setzen.
• Anfrage (Request):
{
"code":"request",
"cid":4712,
"adr":"/timer[1]/interval/setdata",
"data":{
"newvalue":500
}
}
- Antwort (Response):
{
"cid":4712,
"code":200
}
• Benachrichtigung (Format: JSON)
{
"code": "event",
"cid": 4711,
"adr": "",
"data": {
"eventno": "6317",
"srcurl": "/timer[1]/counter/datachanged",
"payload": {
"/timer[1]/counter": {"code": 200, "data": 1},
"/processdatamaster/temperature": {"code": 200, "data": 39},
"/iolinkmaster/port[2]/iolinkdevice/pdin": {"code": 200, "data": "03B0"}
}
}
}
9.2.25.4 Beispiel: Benachrichtigung ändern
Aufgabe: Das existierende Abonnement soll geändert werden (→ Beispiel: Benachrichtigung abonnieren ☐ 56). Anstatt der Temperatur des IO-Link Masters soll die anliegende Betriebsspannung übertragen werden.
Lösung: Das existierende Abonnement überschreiben. Dafür müssen in der Anfrage die Parmeterwerte für "cid" und "callback" gleich denen des existierenden Abonnements sein.
• Anfrage (Request):
{
"code": "request",
"cid": 4711,
"adr": "/timer[1]/counter/datachanged/subscribe",
"data": {
"callback": "http://192.168.0.4:80/temp",
"datatosend": [
"/iolinkmaster/port[2]/iolinkdevice/pdin",
"/processdatamaster/voltage"
}
}
9.2.25.5 Beispiel: Benachrichtigung im CSV-Format abonnieren
Aufgabe: Es sollen aller 2 Sekunden die aktuellen Werte folgender Parameter an einen Netzwerk-Server mit der IP-Adresse 192.168.0.4 verschickt werden:
- zyklische IO-Link-Eingangsdaten des IO-Link Devices an Port 2
• Betriebstemperatur des IO-Link Masters.
Die Daten sollen im CSV-Format (Komma-Seperator) übertragen werden.
Lösung:
▶ Mit dem subscribe-Dienst die erforderlichen Daten abonnieren und das Ausgabeformat auf "csv0" setzen.

Daten im CSV-Format können nur per TCP-Verbindung verschickt werden.
• Anfrage (Request):
{
"code": "request",
"cid": 1,
"adr": "/timer[1]/counter/datachanged/subscribe",
"callback": "tcp://192.168.50.59:1883/topic",
"codec": "csv0",
"data": {
"datatosend": [
"/iolinkmaster/port[2]/iolinkdevice/pdin",
"/processdatamaster/temperature"]
}
}
▶ Das Intervall des Timers auf 2 Sekunden setzen.
• Anfrage (Request):
{
"code": "request",
"cid": 4712,
"adr": "/timer[1]/interval/setdata",
"data": {"newvalue": 2000}
}
Die zyklische gesendete Benachrichtigung hat folgende Struktur:
/timer[1]/counter/datachanged,6317,200,1,200,39,200,03B0
9.2.25.6 Beispiel: Benachrichtigung abmelden
Aufgabe: Das existierende Abonnement Beispiel: Benachrichtigung abonnieren (→ ☐ 56) soll gelöscht werden.
Lösung: Mit dem Dienst unsubscribe das Abonnement löschen. Dafür muss in der Anfrage der Wert des Parameters "callback" gleich dem des existierenden Abonnements sein.
• Anfrage (Request):
{
"code": "request",
"cid": 4711,
"adr": "/timer[1]/counter/datachanged/unsubscribe",
"data": {
"callback": "http://192.168.0.4:80/temp"
}
}
9.2.25.7 Beispiel: Benachrichtigung prüfen
Aufgabe: Informationen über das existierende Abonnement Beispiel: Benachrichtigung abonnieren (→ ☐ 56) anzeigen.
Lösung: Mit Dienst getsubscriptioninfo und den Parameterwerten "cid", "adr" und "callback" des existierenden Abonnements die Informationen abrufen.
• Anfrage (Request):
{
"code": "request",
"cid": 4711,
"adr": "/timer[1]/counter/datachanged/getsubscriptioninfo",
"data": {
"callback": "http://192.168.0.4:80/temp"
}
}
- Antwort (Response):
{
"code": "request",
"cid": 4711,
"data": {
"callback": "http://192.168.0.4:80/temp",
"datatosend": [
"/iolinkmaster/port[2]/iolinkdevice/productname",
"/iolinkmaster/port[2]/iolinkdevice/pdin",
"/processdatamaster/temperature"]
}
}
9.2.25.8 MQTT-Unterstützung
Der ifm IoT Core unterstützt das MQTT-Protokoll. MQTT ermöglicht es einem Client über einen Broker mit dem ifm IoT Core zu kommunizieren, um Daten anzufordern und zu empfangen. Der ifm IoT Core kann Nachrichten an einen MQTT-Broker veröffentlichen (publish).
▶ MQTT-Verbindungen nur über den IoT-Port X23 des Geräts erzeugen.
Um eine MQTT-Kommunikation zu ermöglichen, muss der Anwender den ▶ MQTT-Kommandokanal konfigurieren. Die Konfiguration umfasst folgende Teilschritte:
▶ Prüfen, ob MQTT-Broker erreichbar ist.
▶ Prüfen, ob der gewünschte Port des MQTT-Brokers offen ist.
▶ MQTT-Kommandokanal aktivieren.
▶ MQTT-Kommandokanal konfigurieren.
▶ MQTT-Verbindung konfigurieren.
▷ MQTT-Verbindung ist konfiguriert und aktiviert.
MQTT-Verbindung konfigurieren
Das folgende Zustandsdiagramm zeigt den Einfluss der Dienste start, stop und reset auf den aktuellen Zustand einer MQTT-Verbindung:

Nach erfolgreicher Initialisierung im Zustand [init] wechselt die Verbindung automatisch in den Zustand [running].
Die Verbindung nimmt automatisch den Zustand [error] ein, wenn mindestens eins der folgenden Ereignisse aufritt:
- kein MQTT-Broker erreichbar
Maximale Anzahl der MQTT-Broker: 1 Maximale Anzahl gleichzeitiger MQTT-Verbindungen: 3
Unterstruktur: connections/mqtt
Connection
Verfügbare Datenpunkte:
| Name | Beschreibung | Wertebereich | Zugriff |
| ../type | Typ der Verbindung (MQTT) | mqtt: MQTT-Verbindung | ro 1 |
| ../status | Status der MQTT-Verbindung | init: Zustand [init] – Initialisierungstopped: Zustand [stopped] – Verbindung angehaltenrunning: Zustand [running] – Verbindung läufterror: Zustand [error] - Fehlerzustand | ro 1 |
| ../status/preset | Voreinstellung des Status der MQTT-Verbindung | running: Status [running] (Default) | ro 1 |
| ../MQTTSetup | Unterstruktur für allgemeine MQTT-Einstellungen | ||
| ../MQTTSetup/QoS | Qualitiy of Service (QoS) der MQTT-Verbindung | 0: QoS Level 0 - PUBLISH (ohne Bestätigung) (Default)1: QoS Level 1 - PUBLISH > PUBREC (Einfache Bestätigung)2: QoS Level 2 - PUBLISH > PUBREL > PUBCOMP (Doppelte Bestätigung) | rw 2 |
| ../MQTTSetup/version | MQTT-Version | z. B. 3.1.1 | ro 1 |
1 nur lesen
2 lesen und schreiben
Anwendbare Dienste:
| Name | Beschreibung |
| ../status/start | MQTT aktivieren. |
| ../status/stop | MQTT deaktivieren. |
| ../status/reset | MQTT zurücksetzen. |
MQTT-Kommandokanal konfigurieren
Sicherstellen, dass der MQTT-Broker erreichbar ist und der gewählte Port des MQTT-Brokers für die Datenübertragung freigegeben ist.
Die Wildcards „+“ und „#“ in Topic-Namen werden nicht unterstützt.
Unterstruktur: connections/mqtt
Connection/mqtt
CmdChannel
Verfügbare Datenpunkte:
| Name | Beschreibung | Wertebereich | Zugriff |
| ../type | Type des Kommandokanals | • mqtt: MQTT-Kommandokanal (Default) | ro 1 |
| ../status | Status des Kommandokanals | • init: Zustand [init]• stopped: Zustand [stopped]• running: Zustand [running] (Default)• error: Zustand [error] | ro 1 |
| ../status/preset | Voreingestellter Kanalzustand | • running: Zustand RUN (Default) | ro 1 |
| ../mqtt CmdChannel Setup | Unterstruktur für Einstellungen des Kommandokanals | -- | |
| ../mqtt CmdChannel Setup/brokerIP | ▶ IP-Adresse des MQTT-Brokers | z. B. 3.69.1.9 | rw 2 |
| ../mqtt CmdChannel Setup/broker-Port | ▶ Portnummer des MQTT-Brokers | z. B. 1883 | rw 2 |
| ../mqtt CmdChannel Setup/cmdTopic | Bezeichnung des MQTT-Kommando-Topics | z. B. reqTopic | rw2 |
| ../mqtt CmdChannel Setup/default-Reply Topic | Bezeichnung des Standard-MQTT-Antwort-Topics | z. B. resp Topic | rw2 |
1 nur lesen
2 lesen und schreiben
Anwendbare Dienste:
| Name | Beschreibung |
| ../status/start | MQTT-Kommandokanal starten |
| ../status/stop | MQTT-Kommandokanal stoppen |
| ../status/reset | MQTT-Kommandokanal zurücksetzen |
Beispiel: MQTT-Verbindung konfigurieren und aktivieren
Aufgabe: MQTT-Verbindung konfigurieren und aktivieren (IP-Adresse des MQTT-Brokers:
192.168.82.100, Port: 1883, Kommando-Topic: reqTopic, Standard-Antwort-Topic: resp
Topic, Quality of Service: Level 2)
Lösung:
▶ Prüfen, ob MQTT-Broker erreichbar ist und der Port freigegeben wurde.
▶ QoS-Stufe einstellen.
Anfrage (Request):
{
"code": "request",
"cid": 1,
"adr": "/connections/mqtt
Connection/MQTTSetup/cmdChannel/QoS/setdata"
"data": {"newvalue": 2}
}
▶ MQTT-Verbindung aktivieren.
Anfrage (Request):
{
"code": "request",
"cid": 1,
"adr": "connections/mqtt
Connection/MQTTSetup/cmdChannel/Status/start"
}
▶ IP-Adresse des MQTT-Brokers einstellen.
Anfrage (Request):
{
"code": "request",
"cid": 2,
"adr": "connections/mqtt
Connection/mqtt
CmdChannel/mqtt
CmdChannel
Setup/brokerIP/setdata",
"data": {
"newvalue": "192.168.82.100"
}
}
▶ Portnummer des MQTT-Brokers einstellen.
Anfrage (Request):
{
"code": "request",
"cid": 3,
"adr": "connections/mqtt
Connection/mqtt
CmdChannel/mqtt
CmdChannel
Setup/broker
Port/setdata",
"data": {
"newvalue": "1883"
}
}
▶ Kommando-Topic einstellen.
Anfrage (Request):
{
"code": "request",
"cid": 4,
"adr": "connections/mqtt
Connection/mqtt
CmdChannel/mqtt
CmdChannel
Setup/cmdTopic/setdata",
"data": {
"newvalue": "reqTopic"
}
}
▶ Standard-Antwort-Topic einstellen.
Anfrage (Request):
{
"code": "request",
"cid": 5,
"adr": "/connections/mqtt
Connection/mqtt
CmdChannel/mqtt
CmdChannel
Setup/default
ReplyTopic/setdata",
"data": {
"newvalue": "resp
Topic"
}
}
Beispiel: ▶ Temperatur an MQTT-Broker veröffentlichen
Aufgabe: Temperatur des Geräts soll aller 5 Sekunden an einen MQTT-Broker veröffentlicht werden (IP-Adresse: 192.168.82.100, Port: 1883, Topic: device
Temp).
Lösung:
▶ Intervall des Zeitgebers 1 einstellen
Anfrage (Request):
{
"code":"request",
"cid":1,
"adr":"/timer[1]/interval/setdata",
"data":{
"newvalue":5000
}
}
▶ Temperatur an MQTT-Broker veröffentlichen
Anfrage (Request):
{
"code": "request",
"cid": 2,
"adr": "/timer[1]/counter/datachanged/subscribe",
"data": {
"callback": "mqtt://192.168.82.100:1883/device
Temp",
"datatosend": ["processdatamaster/temperature"]
}
}
Antwort (Response):
{
"cid": 2,
"code": 200
}
9.2.25.9 WebSocket-Untertsützung
Der ifm IoT-Core unterstützt die Kommunikation per WebSocket-Protokoll. Mit WebSockets kann der Anwender einen Full-Duplex-Kommunikationskanal über eine TCP-Verbindung aufbauen.
WebSocket-Verbindungen können für folgende Dienste genutzt werden:
- subscribe
- unsubscribe

Maximale Anzahl der gleichzeitigen WebSocket-Verbindungen: 8 Sichere WebSocket-Verbindungen (wss://) werden nicht unterstützt.
Um Benachrichtigungen über eine WebSicket-Verbindung zu übertragen:
▶ WebSocket-Verbindung herstellen (z. B. "ws://192.168.0.55:80/mywebsocket")
• Option 1: ohne Parameter "callback"
▶ subscribe-/unsusbribe-Anfrage ohne Parameter "callback" senden.
▷ ifm IoT Core sendet Benachrichtigungen über existierende WebSocket-Verbindung.
• Option 2: mit Parameter "callback"
▶ subscribe-/unsubscribe-Anfragen mit Parameter "callback" ("ws://myTopic") senden.
▷ ifm IoT Core sendet Benachrichtigungen über existierende WebSocket-Verbindung an das Topic myTopic.
Beispiel: WebSockets nutzen
Aufgabe: Es sollen regelmäßig die aktuellen Werte folgender Parameter über eine existierende WebSocket-Verbindung an die Datensenke myTopic verschickt werden:
- Produktname des IO-Link Devices an IO-Link Port 2
- zyklische Eingangsdaten des IO-Link Devices an IO-Link Port 2
• Betriebstemperatur des IO-Link Masters
Lösung: Mit dem subscribe-Dienst die erforderlichen Daten abonnieren.
• Anfrage (Request):
{
"code": "request",
"cid": 4711,
"adr": "/timer[1]/counter/datachanged/subscribe",
"data": {
"callback": "ws://myTopic",
"datatosend": [
"/iolinkmaster/port[2]/iolinkdevice/productname",
"/iolinkmaster/port[2]/iolinkdevice/pdin",
"/processdatamaster/temperature"]
}
}
Sollen die Benachrichtigungen über die existierende WebSocket-Verbindung, aber ohne spezielle Datensenke übertragen werden, kann der callback-Parameter entfallen.
• Anfrage (Request):
{
"code":"request",
"cid":4711,
"adr":"/timer[1]/counter/datachanged/subscribe",
"data":{
"datatosend":[ "/iolinkmaster/port[2]/iolinkdevice/productname",
"/iolinkmaster/port[2]/iolinkdevice/pdin",
"/processdatamaster/temperature"]
}
}
9.3 IoT-Core Visualizer
Der IoT-Core Visualizer bietet eine grafische Benutzeroberfläche für den Zugriff auf die Funktionen des ifm IoT-Cores.
9.3.1 IoT-Core Visualizer starten
Um den IoT-Core Visualizer zu starten:
Voraussetzungen:
√ IoT-Schnittstelle ist ordnungsgemäß konfiguriert.
▶ Webbrowser starten.
▶ Folgende URL aufrufen: http://
▷ Webbrowser zeigt die Startseite des IoT-Core Visualizers.
Über das Navigationsmenü hat der Anwender Zugriff auf folgende Funktionen:
- [Notification]: Benachrichtigungen verwalten (→ 67)
• [Elements]: Elemente des IoT Core suchen (→ 68)
• [Parameter]: IO-Link Master konfigurieren (→ 69)
• [Processdata]: Auf Prozessdaten zugreifen (→ 70)
• [Update]: Firmware aktualisieren (→ 71)
9.3.2 Benachrichtigungen verwalten
Die Menüseite [Notifications] bietet Zugriff auf folgende Funktionen:
• Benachrichtigungen erstellen
• Aktive Benachrichtigungen anzeigen
- Benachrichtigungen löschen (einzeln, alle)
Voraussetzungen:
√ IoT-Core Visualizer ist gestartet.
▶ Menü [Notification] wählen.
▷ Menüseite für die Verwaltung von Benachrichtigungen erscheint.
▷ Tabelle zeigt alle aktiven Benachrichtigungen.
9.3.2.1 Neue Benachrichtigung erstellen
Die Anmeldung neuer Benachrichtigungen erfolgt mithilfe eines Wizards.
Voraussetzungen:
√ Menüseite [Notification] ist geöffnet.
▶ Am rechten Rand der Tabelle auf + klicken.
▷ Wizard für die Erstellung von Benachrichtigungen erscheint.
▶ Mithilfe des Wizards schrittweise die gewünschten Benachrichtigungsparameter eingeben.
▷ Wizard erzeugt Benachrichtigung.
▷ Erstellte Benachrichtigung wird in Tabelle angezeigt.

▶ Bei zyklischen Benachrichtigungen über timer[1] oder timer[2] die Intervallzeit des betreffenden Timers setzen.
9.3.2.2 Benachrichtigung löschen
Um eine aktive Benachrichtigung zu löschen:
Voraussetzungen:
√ Menüseite [Notification] ist geöffnet.
√ Mindestens eine Benachrichtigung ist aktiv.
▶ In Spalte [Unsubscribe] auf Symbol × klicken.
▷ Gewählte Benachrichtigung wird gelöscht (unsubscribe).
9.3.3 Elemente des IoT Core suchen
Die Menüseite [Elements] ermöglicht es, den IoT-Core-Baum nach Elementen mit bestimmten Eigenschaften zu durchsuchen und die Ergebnisse auszugeben.
Nach den folgenden Eigenschaften kann gesucht werden:
• [identifier]: Name des Elements
• [profile]: Profil des Elements
• [type]: Typ des Elements
Voraussetzungen:
√ IoT-Core Visualizer ist gestartet.
√ Menü [Elements] ist aktiv.
▶ In den Auswahllisten [identifier], [profile] und [type] die Suchkriterien für das gewünschte Element wählen.
▶ Auf [Search for...] klicken.
▷ IoT-Core Visualizer durchsucht Gerätebeschreibung nach Elementen mit gewählten Suchkriterien.
▷ Ergebnisliste zeigt alle gefundenen Elemente.
9.3.4 IO-Link Master konfigurieren
Die Menüseite [Parameter] ermöglicht es, den IO-Link Master zu konfigurieren.
Verfügbare Optionen:
- Einzelne Parameter lesen und schreiben.
- Aktuelle Konfiguration des Geräts sichern und wiederherstellen.
Voraussetzungen:
√ IoT-Core Visualizer ist gestartet.
▶ Menü [Parameter] wählen.
▷ Menüseite zeigt verfügbare Parameter des IO-Link Masters.
▷ Aktuelle Parametwerte werden angezeigt.
▶ Optional: Auf ○ neben einem Element klicken, um den Prozesswert manuell zu aktualisieren.
Um einen Parameter zu ändern:
▶ In Gerätebeschreibung zum gewünschten Parameter navigieren.
▶ Parameterwert ändern.
▶ Auf ✿ klicken, um die Änderung auf dem IO-Link Master zu speichern.
▷ Der geänderte Parameterwert ist aktiv.
▶ Optional: Vorgang wiederholen, um weitere Parameterwerte zu ändern.
9.3.5 Auf Prozessdaten zugreifen
Die Menüseite [Processdata] ermöglicht es, die Prozessdaten des IO-Link Masters und der angeschlossenen IO-Link Devices zu lesen und zu schreiben.
Voraussetzungen:
√ IoT-Core Visualizer ist gestartet.
▶ Menü [Processdata] wählen.
▷ Menüseite zeigt die Unterstrukturen der Gerätebeschreibung, die Prozessdaten und Events enthalten.
▷ Aktuelle Prozesswerte werden angezeigt.
▶ Optional: Option [Polling] aktivieren und Aktualisierungsintervall ändern.
▷ Prozesswerte werden mit dem eingestellten Intervall aktualisiert.
▶ Optional: Auf ☉ neben einem Element klicken, um den Prozesswert manuell zu aktualisieren.
Um den Wert eines Prozessdatums zu ändern:
▶ In Gerätebeschreibung zum gewünschten Prozessdatum navigieren.
▶ Prozesswert ändern.
▶ Auf ✅ klicken, um die Änderung auf dem IO-Link Master zu speichern.
▷ Änderung werden auf dem IO-Link Master gespeichert.
▷ Der geänderte Prozesswert ist aktiv.
▶ Optional: Vorgang wiederholen, um weitere Prozesswerte zu ändern.
9.3.6 Firmware aktualisieren
Die Menüseite [Update] bietet die Möglichkeit, die Firmware des Geräts zu aktualisieren:
Voraussetzungen:
√ IoT-Core Visualizer ist gestartet.
√ Neue Firmware wurde heruntergeladen: documentation.ifm.com
▶ Menü [Update] wählen.
▷ Menüseite zeigt Informationen zur aktuellen Firmware-Version.

▶ Auf [Load software file] klicken und neue Firmware-Datei (*.bin) wählen.
▶ Auf [Update] klicken, um den Aktualisierungsprozess zu starten.
▷ Firmware des Geräts wird aktualisiert.
▷ Fortschritt des Aktualisierungsprozesses wird angezeigt.
▷ Nach erfolgreicher Aktualisierung: Gerät startet automatisch neu.
9.4 Ether
Net/IP
9.4.1 Hinweis: Startup Packages
ifm electronic stellt Startup Packages bereit für die Integration des Geräts in Ether
Net/IP-Umgebungen mit Steuerungen verschiedener Hersteller.
Die Startup Packages können kostenlos von der ifm-Webseite heruntergeladen werden: documentation.ifm.com
10 Wartung, Instandsetzung und Entsorgung
Der Betrieb des Geräts ist wartungsfrei.
▶ Gerät nach dem Gebrauch gemäß den gültigen nationalen Bestimmungen umweltgerecht entsorgen.
10.1 Gehäuseoberfläche reinigen
Die Oberfläche des Geräts bei Bedarf reinigen.
▶ Gerät von der Versorgungsspannung trennen.
▶ Verschmutzungen mit einem weichen, chemisch unbehandelten und trockenen Tuch entfernen.
▶ Bei starker Verschmutzung ein mit Wasser befeuchtetes Tuch verwenden.
▶ Für die Reinigung keine ätzenden Reinigungsmittel verwenden!
10.2 Firmware aktualisieren
Die Firmware des Geräts kann über die folgenden Methoden aktualisiert werden:
- ifm IoT-Core Visualizer: Firmware aktualisieren (→ 71)
- ifm moneo: Firmware aktualisieren (→ 28)
11 Anhang
11.1 ifm IoT-Core
11.1.1 Profile
| Profil | Beschreibung |
| blob | Binary Large Object |
| deviceinfo | Identifikationsinformationen eines Geräts |
| devicetag | Gerätespezifische Kennzeichnung |
| iolinkdevice_full | IO-Link Device |
| iolinkmaster | IO-Link Master |
| network | Netzwerk |
| parameter | Parameter |
| processdata | Prozessdaten |
| service | Dienst |
| software | Software |
| software/uploadablesoftware | aktualisierbare Software |
| timer | Zähler |
11.1.2 Typen
| Typ | Beschreibung |
| data | Datenpunkt |
| device | Wurzelelement, das ein Gerät repräsentiert |
| event | Ereignis, das durch die Firmware ausgelöst werden kann und Benachrichtigungen verschickt |
| service | Dienst, der aus dem Netzwerk heraus angesprochen werden kann |
| structure | Strukturelement (z. B. ein Ordner im Dateisystem) |
11.1.3 Dienste
11.1.3.1 Dienst: factoryreset
Name: factoryreset
Beschreibung: Der Dienst setzt die Parameter des Geräts auf die Werkseinstellungen.
Anfrage (Feld "data"): keine
Antwort (Feld "data"): keine
11.1.3.2 Dienst: getblobdata
Name: getblobdata
Beschreibung: Der Dienst liest ein Binary Large Object (blob).
Anfrage (Feld "data"):
| Parameter | Pflichtfeld | Datentyp | Beschreibung |
| Pos | obligatorisch | NUMBER | Byte-Position |
| length | obligatorisch | NUMBER | Größe des Objekts (Anzahl an Bytes) |
Antwort (Feld "data"):
| Parameter | Pflichtfeld | Datentyp | Beschreibung |
| data | obligatorisch | STRING | zu dekodierende Daten (BASE64-codiert) |
| crc | optional | HEX STRING | CRC der Daten nach der Dekodierung |
| md5 | optional | HEX STRING | MD5-Prüfsumme der Daten nach der Dekodierung |
11.1.3.3 Dienst: getdata
Name: getdata
Beschreibung: Der Dienst liest den Wert eines Datenpunkts und gibt diesen aus.
Anfrage (Feld "data"): keine
Antwort (Feld "data"):
| Parameter | Pflichtfeld | Datentyp | Beschreibung |
| value | obligatorisch | STRING | Wert des Datenpunkts |
11.1.3.4 Dienst: getdatamulti
Name: getdatamulti
Beschreibung: Der Dienst liest sequenziell die Werte mehrerer Datenpunkte und gibt diese aus. Für jeden Datenpunkt werden der Wert und ein Diagnosecode ausgegeben.
Anfrage (Feld "data"):
| Parameter | Pflichtfeld | Datentyp | Beschreibung |
| datatosend | obligatorisch | ARRAY OF STRINGS | Liste von Datenpunkten, die abgefragt werden sollen; Datenpunkte müssen den Dienst getdata unterstützen ("datatosend": ["url1", "url2", ..., "urlx"]) |
Antwort (Feld "data"):
| Parameter | Pflichtfeld | Datentyp | Beschreibung |
| url | obligatorisch | STRING | Datenpunkt, der abgefragt wurde |
| code | obligatorisch | INT | Diagnosecode der Abfrage |
| data | obligatorisch | STRING | Wert des Datenpunkts |
11.1.3.5 Dienst: getelementinfo
Name: getelementinfo
Beschreibung: Der Dienst liest die Eigenschaften eines Elements des IoT-Baums.
Anfrage (Feld „data“):
| Parameter | Pflichtfeld | Datentyp | Beschreibung |
| adr | obligatorisch | STRING | URL des Elements, dessen Eigenschaften gelesen werden sollen |
Rückgabe (Feld „data“):
| Parameter | Pflichtfeld | Datentyp | Beschreibung |
| identifier | obligatorisch | STRING | Bezeichner des Elements |
| type | obligatorisch | STRING | Typ des Elements |
| format | optional | JSON-Objekt | Format der Daten oder des Serviceinhalts |
| uid | optional | STRING | |
| profiles | optional | JSON-AR-RAY | Profile des Elements |
| hash | optional | STRING |
11.1.3.6 Dienst: getidentity
Name: getidentity
Beschreibung: Der Dienst liest Geräteinformationen und gibt die aus.
Anfrage (Feld „data“): keine
Rückgabe (Feld „data“):
| Parameter | Pflichtfeld | Datentyp | Beschreibung |
| iot | device | Gerätebeschreibung als JSON-Objekt | |
| iot.name | obligatorisch | STRING | Typ des Elements |
| iot.uid | optional | STRING | |
| iot.version | obligatorisch | STRING | |
| iot.catalogue | optional | ARRAY OF OBJECTS | |
| iot.deviceclass | optional | ARRAY OF STRING | Geräteklasse |
| iot.serverlist | optional | ARRAY OF OBJECTS | |
| device | optional | Artikelnummer | |
| device.serialnumber | optional | Seriennummer | |
| device.hwrevision | optional | Hardware-Version | |
| device.swrevision | optional | Software-Version | |
| device.custom | optional |
11.1.3.7 Dienst: getsubscriberlist
Name: getsubscriberlist
Beschreibung: Der Dienst liefert eine Liste mit allen aktiven Abonnements.
Anfrage (Feld "data"): keine
Antwort (Feld "data"):
| Parameter | Pflichtfeld | Datentyp | Beschreibung |
| adr | obligatorisch | STRING | Auslöser für Benachrichtigung |
| datatosend | obligatorisch | ARRAY OF STRINGS | Liste mit URLs der Datenelemente; URLs sind kommagetrennt |
| cid | obligatorisch | STRING | ID der aktiven Benachrichtigung |
| callbackurl | obligatorisch | STRING | Zieladresse für die Benachrichtigungen |
| duration | obligatorisch | STRING | Aktivitätsdauer |
11.1.3.8 Dienst: getsubscriptioninfo
Name: getsubscriptioninfo
Beschreibung: Der Dienst liefert Informationen über eine aktive Benachrichtigung (subscribe). Für die Abfrage müssen folgende Parameter der aktiven Benachrichtigung genutzt werden:
- cid (z. B. 4711)
- adr (z. B. timer[1]/counter/datachanged)
- callback (z. B. http://192.168.82.121:8080/topic)
Anfrage (Feld „data“):
| Parameter | Pfilchtfeld | Datentyp | Beschreibung |
| callback | obligatorisch | STRING | Zieladresse der Benachrichtigungen; komplette URL (z. B. http://ipaddress:port/path) |
Rückgabe (Feld „data“):
| Parameter | Pfilchtfeld | Datentyp | Beschreibung |
| subscription | obligatorisch | BOOL | Status der übergebenen Parameter der BenachrichtigungFALSE: Parameter inkorrektTRUE: Parameter korrekt; Benachrichtigung gefunden |
| datatosend | obligatorisch | STRING | Liste mit URLs der Datenelemente; URLs sind kommagetrennt |
| cid | obligatorisch | STRING | ID der aktiven Benachrichtigung |
| callbackurl | obligatorisch | STRING | Zieladresse der Benachrichtigungen |
11.1.3.9 Dienst: gettree
Name: gettree
Beschreibung: Der Dienst liest die Gerätebeschreibung des Geräts und gibt sie als JSON-Objekt aus. Die Ausgabe kann auf einen Teilbaum der Gerätebeschreibung begrenzt werden.
Anfrage (Feld "data"):
| Parameter | Pflichtfeld | Datentyp | Beschreibung |
| adr | optional | STRING | Wurzelelement des Teilbaums |
| level | optional | STRING | max. Ebene, bis zu der der Teilbaum ausgegeben wird• keine Angabe: alle Ebenen werden angezeigt• 0: keine Unterelemente anzeigen ("subs")• 1: Unterelemente anzeigen• 2: Unterelemente bis zur 2. Ebene anzeigen• 3: Unterelemente bis zur 3. Ebene anzeigen...• 20: Unterelemente bis zur 20. Ebene anzeigen |
Antwort (Feld "data"):
| Parameter | Pflichtfeld | Datentyp | Beschreibung |
| identifier | obligatorisch | STRING | Bezeichner des Wurzelelements |
| type | obligatorisch | STRING | Typ des Elements |
| format | optional | JSON-Objekt | Format des Dateninhalts |
| uid | optional | STRING | |
| profiles | optional | JSON-Array | |
| subs | obligatorisch | JSON-Array | Unterelemente |
| hash | optional | STRING |
11.1.3.10 Dienst: install
Name: install
Beschreibung: Der Dienst installiert die in einem Speicherbereich des Geräts gespeicherte Firmware.
Anfrage (Feld „data“): keine
Rückgabe (Feld „data“): keine
11.1.3.11 Dienst: iolreadacyclic
Name: iolreadacyclic
Beschreibung: Der Dienst liest azyklisch den Parameterwert eines IO-Link Devices. Der Zugriff erfolgt über IO-Link Index und Subindex.
Anfrage (Feld "data"):
| Parameter | Pflichtfeld | Datentyp | Beschreibung |
| index | obligatorisch | NUMBER | IO-Link Index des Parameters |
| subindex | obligatorisch | NUMBER | IO-Link Subindex des Parameters |
Antwort (Feld "data"):
| Parameter | Pflichtfeld | Datentyp | Beschreibung |
| value | obligatorisch | STRING | Parameterwert (Wert im Hexadezimalformat) |
11.1.3.12 Dienst: iolwriteacyclic
Name: iolwriteacyclic
Beschreibung: Der Dienst schreibt azyklisch den Parameterwert eines IO-Link Devices. Der Zugriff erfolgt über IO-Link Index und Subindex.
Anfrage (Feld "data"):
| Parameter | Pflichtfeld | Datentyp | Beschreibung |
| index | obligatorisch | NUMBER | IO-Link Index des Parameters |
| subindex | obligatorisch | NUMBER | IO-Link Subindex des Parameters |
| value | obligatorisch | STRING | Parameterwert (Wert im Hexadezimalformat) |
Antwort (Feld "data"): keine
11.1.3.13 Dienst: querytree
Name: querytree
Beschreibung: Der Dienst durchsucht einen Gerätebaum nach den Kriterien profile, type und identifier und gibt eine Liste aus mit den URLs der gefundenen Elemente. Mindestens eines der Suchkriterien muss angegeben werden. Der Dienst ist nur auf dem Wurzelknoten des Geräts ausführbar.
Anfrage (Feld "data"):
| Parameter | Pflichtfeld | Datentyp | Beschreibung |
| profile | optional | STRING | Profil des gesuchten Elements |
| type | optional | STRING | Typ des gesuchten Elements |
| identifier | optional | STRING | Name des gesuchten Elements |
Antwort (Feld "data"): keine
| Parameter | Pflichtfeld | Datentyp | Beschreibung |
| urllist | obligatorisch | ARRAY | Array mit URLs der gefundenen Elemente; URLs sind durch Kommas getrennt |
11.1.3.14 Dienst: reboot
Name: reboot
Beschreibung: Der Dienst startet das Gerät neu.
Anfrage (Feld "data"): keine
Antwort (Feld "data"): keine
11.1.3.15 Dienst: reset
Name: reset
Beschreibung: Der Dienst setzt eine Verbindung zurück in den Initialisierungszustand.
Anfrage (Feld "data"): keine
Antwort (Feld "data"): keine
11.1.3.16 Dienst: setblock
Name: setblock
Beschreibung: Der Dienst setzt die Werte mehrerer Datenpunkte einer Struktur gleichzeitig.
Anfrage (Feld "data"):
| Parameter | Pflichtfeld | Datentyp | Beschreibung |
| datatoset | obligatorisch | ARRAY OF OBJECTS | Liste von Datenpunkten und deren neuen Werten; Datenpunkte müssen den Dienst setdata unterstützen |
| consistent | optional | BOOL | Rückgabe innerhalb einer bestimmten Zeit |
Antwort (Feld "data"): keine
11.1.3.17 Dienst: setdata
Name: setdata
Beschreibung: Der Dienst setzt den Wert eines Datenpunkts.
Anfrage (Feld "data"):
| Parameter | Pflichtfeld | Datentyp | Beschreibung |
| newvalue | obligatorisch | STRING | Neuer Wert des Datenpunkts |
| duration | optional | STRING | Dauer der Speicherung des Wertslifetime: Wert wird mit IoT Core gespeichert; Wert beibt gültig auch nach Neutart des Gerätsuptime: Wert wird bis zum nächsten Neustart des Geräts gespeichert |
Antwort (Feld "data"): keine
11.1.3.18 Dienst: setelementinfo
Name: setelementinfo
Beschreibung: Der Dienst setzt die uid eines Elements.
Anfrage (Feld "data"):
| Parameter | Pflichtfeld | Datentyp | Beschreibung |
| url | obligatorisch | STRING | URL des Elements, das geändert werden soll |
| uid | optional | STRING | UID, die gesetzt werden soll |
| profiles | optional | JSON-Array | |
| format | optional | JSON-Array |
Antwort (Feld "data"):
| Parameter | Pflichtfeld | Datentyp | Beschreibung |
| identifier | obligatorisch | STRING | Bezeichner des Elements |
| type | obligatorisch | STRING | Typ des Elements |
| format | optional | JSON-Objekt | Format der Daten oder des Serviceinhalts |
| uid | optional | STRING | |
| profiles | optional | JSON-AR-RAY | |
| hash | optional | STRING |
11.1.3.19 Dienst: signal
Name: signal
Beschreibung: Der Dienst löst das Blinken der Status-LEDs des Geräts aus.
Anfrage (Feld "data"): keine
Antwort (Feld "data"): keine
11.1.3.20 Dienst: start
Name: start
Beschreibung: Der Dienst startet eine Funktion (z. B. Verbindung, Timer).
Anfrage (Feld "data"): keine
Antwort (Feld "data"): keine
11.1.3.21 Dienst: start_stream_set
Name: start_stream_set
Beschreibung: Der Dienst startet die sequenzielle Übertragung mehrerer Datenfragmente.
Anfrage (Feld "data"):
| Parameter | Pflichtfeld | Datentyp | Beschreibung |
| size | obligatorisch | STRING | Gesamtgröße der zu übertragenden Daten (Anzahl der Bytes) |
Antwort (Feld "data"): keine
11.1.3.22 Dienst: stop
Name: stop
Beschreibung: Der Dienst stoppt eine Funktion (z. B. Verbindung, Timer).
Anfrage (Feld "data"): keine
Antwort (Feld "data"): keine
11.1.3.23 Dienst: stream_set
Name: stream_set
Beschreibung: Der Dienst übertragt ein Datensegment.
Anfrage (Feld "data"):
| Parameter | Pflichtfeld | Datentyp | Beschreibung |
| value | obligatorisch | BIN (BASE64) | Segment der Binärdaten (BASE64-codiert) |
Antwort (Feld "data"): keine
11.1.3.24 Dienst: subscribe
Name: subscribe
Beschreibung: Der Dienst erzeugt eine Benachrichtigung.
Anfrage (Feld "data"):
| Parameter | Pflichtfeld | Datentyp | Bechreibung |
| callback | obligatorisch | STRING | Zieladresse für Benachrichtigungen; URL-Formate:JSON: http://ipaddress:port/pathJSON: ws://pathMQTT: mqtt://ipadress:port/topicCSV: tcp://ipaddress:port/path |
| datatosend | obligatorisch | ARRAY OF STRINGS | Liste mit URLs der Datenelemente, die übertragen werden sollen; UR-Ls sind kommagetrennt; Elemente müssen Dienst getdata unterstützen |
| codec | optional | STRING | Format der zurückgegebenen Datenjson: JSON-formatiertcsv: CSV mit Standard-Separator (,)csv0: CSV-formatiert mit Komma-Separator (,)csv1: CSV-formatiert mit Semikolon-Separator (;) |
| duration | optional | STRING | Dauer der Aktivität der Benachrichtigunglifetime: Anmeldung bleibt dauerhaft aktiv, auch nach Neustart des Gerätsuptime: Anmeldung ist bis zum nächsten Neustart des Geräts aktivonce: Verhalten wie uptime |
Antwort (Feld "data"): keine
Benachrichtigungsformat: JSON
{
"code": "event",
"cid": 4711,
"adr": "",
"data": {
"eventno": "EventNo",
"srcurl": "SrcURL",
"payload": {
"eventurl": {"code": Event
Status, "data": Event
Data},
"datapointurl_1": {"code": DataStatus_1, "data": DataValue_1},
"datapointurl_2": {"code": DataStatus_2, "data": DataValue_2}, ...
}
}
}
Benachrichtigungsformat: CSV
SrcURL, EventNo, Event
Status, Event
Data, DataStatus_1, DataValue_1, DataStatus_2, DataValue_2, ...
- SrcURL: Quelle des Ereignisses (Datenpunkt, auf den der Dienst subscribe aufgeführt wurde)
• EventNo: Ereignisnummer
• Event
Status: Statuscode des Ereignisses
• Event
Data: Eventdaten - DataStatus_1: Statuscode des 1. Elements in Liste datatosend
- DataValue_1: Wert des 1. Elements in Liste datatosend
- DataStatus_2: Statuscode des 2. Elements in Liste datatosend
- DataValue_2: Wert des 2. Elements in Liste datatosend
11.1.3.25 Dienst: unsubscribe
Name: unsubscribe
Beschreibung: Der Dienst löscht eine aktive Benachrichtigung. Die übergebenen Werte für cid und callback müssen gleich sein wie bei der Erstellung der Benachrichtigung (Dienst: subscribe (→ 81)). Wird als callback der Wert DELETE übergeben, werden alle aktiven Benachrichtigungen gelöscht.
Anfrage (Feld "data"):
| Parameter | Pflichtfeld | Datentyp | Beschreibung |
| callback | obligatorisch | STRING | Zieladresse für Benachrichtigungen; URL-Formate:JSON: http://ipaddress:port/pathJSON: ws://pathMQTT: mqtt://ipadress:port/topicCSV: tcp://ipaddress:port/pathDELETE: alle aktiven Benachrichtigungen werden gelöscht |
Antwort (Feld "data"): keine
11.1.3.26 Dienst: validation_useconnecteddevice
Name: validation_useconnecteddevice
Beschreibung: Der Dienst prüft, ob Geräte-ID und Hersteller-ID des angeschlossenen IO-Link Devices mit den Datenpunkten /validation_vendorid und /validation_deviceid übereinstimmen.
Anfrage (Feld "data"): keine
Antwort (Feld "data"): keine
11.2 Ether
Net/IP
11.2.1 Parameter
11.2.1.1 Configuration Assembly (Instance 199)
| Byte (Offset) | Bit | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
| 0 | Communication Profile | |||||||
| 1 | Port Process Data Size | |||||||
| 2...13 | Port 1 - Port Configuration | |||||||
| 14...25 | Port 2 - Port Configuration | |||||||
| 26...37 | Port 3 - Port Configuration | |||||||
| 38...49 | Port 4 - Port Configuration | |||||||
| 50...61 | Port 5 - Port Configuration | |||||||
| 62...73 | Port 6 - Port Configuration | |||||||
| 74...85 | Port 7 - Port Configuration | |||||||
| 86...97 | Port 8 - Port Configuration | |||||||
Legende:
- Communication Profile
Zugriffsrechte auf die Parameter, Prozessdaten und die Events / Diagnosemeldungen des IO-Link Masters sowie der angeschlossenen IO-Link-Devices
USINT
• 0x00: Ether
Net/IP + LineRecorder
• 0x01: Ether
Net/IP + LineRecorder (ro)
• 0x02: Ether
Net/IP only
• 0x03: Keep setting (Default)
- Port Process Data Size
Länge der Prozess-Eingangsdaten und Prozess-Ausgangsdaten pro IO-Link Port
SINT
- 0x00: 2 Bytes
- 0x01: 4 Bytes
- 0x02: 8 Bytes
- 0x03: 16 Bytes
• 0x04: 32 Bytes (Default)
- Port Configuration
Bereich für Konfiguration des Ports (Pin 4)
Mapping: Port Configuration ( → ☐ 85)
Mapping: Port Configuration
| Byte (Offset) | Inhalt |
| n | Port Mode |
| n+1 | Port Cycle Time |
| n+2 | Swap |
| n+3 | Validation / Data Storage |
| n+4 | Vendor ID (VID)[0] |
| n+5 | Vendor ID (VID)[1] |
| n+6 | Device ID (DID)[0] |
| n+7 | Device ID (DID)[1] |
| n+8 | Device ID (DID)[2] |
| n+9 | Device ID (DID)[3] |
| n+10 | Fail Safe Mode Pin4 |
| n+11 | Fail Safe DO Mode Pin4 |
Legende:
| • Port Mode | Betriebsart des Pin 4 des Ports | SINT | 0x00: Disabled0x01: Digital Input (Pin 4)0x02: Digital Output (Pin 4)0x03: IO-Link (Pin 4) (Default) |
| • Port Cycle Time | Zykluszeit der Datenübertragung zwischen IO-Link Master und IO-Link Device | USINT | 0x00: As fast as possible (Default)0x01: 2 ms0x02: 4 ms0x03: 8 ms0x04: 16 ms0x05: 32 ms0x06: 64 ms0x07: 128 ms |
| • Swap | Anordnung der Bytes in Prozessdaten tauschen HINWEIS! Ether Net/IP nutzt Little-Endian-Format (Intel), IO-Link nutzt Big-Endian-Format (Motorola) | SINT | 0x00: Enabled0x01: Disabled (Default) |
| • Validation / Data Storage | Validierungsmodus / Data-Storage-Modus | SINT | 0x00: No device check and clear (Default)0x01: Type compatible V1.0 device0x02: Type compatible V1.1 device0x03: Type compatible V1.1 device with Backup + Restore0x04: Type compatible V1.1 device with Restore |
| • Vendor ID | Vendor ID des Herstellers des IO-Link Device (für Validierung)Vendor ID = 0x1234 Vendor ID [1]: 0x12 Vendor ID [0]: 0x34 | UINT | 0x0000 (Default)...0x7FFF |
| • Device ID | Device ID des IO-Link Device (für Validierung)Device ID = 0x00123456 Device ID [3]: 0x00 Device ID [2]: 0x12 Device ID [1]: 0x34 Device ID [0]: 0x56 | UDINT | 0x00000000 (Default)...0x00FFFFFFF |
| Fail Safe Mode Pin4 | Rückfall-Modus für Ausgangsdaten des Ports (Pin 4) bei Unterbrechung der Ether Net/IP-Verbindung (nur gültig, wenn Parameter Port Mode = IO-Link (Pin 4)) | SINT | 0x00: No Fail Safe (Default)0x01: Fail Safe Reset Value0x02: Fail Safe Old Value0x03: Fail Safe with Pattern |
| Fail Safe DO Mode Pin4 | Rückfallwert für Ausgangsdaten des Ports (Pin 4) bei Unterbrechung der Ether Net/IP-Verbindung (nur gültig, wenn Parameter Port Mode = Digital Output (Pin 4)) | SINT | 0x00: Fail Safe Reset Value0x01: Fail Safe Old Value (Default)0x02: Fail Safe Set Value |
11.2.2 Zyklische Daten
11.2.2.1 Input Assembly (Instance 100)
| Byte (Off-set) | Bit | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
| 0...1 | Digital Input | |||||||
| 2...3 | Status Information | |||||||
| 4...45 | Acyclic Command Channel: Response | |||||||
| 46...47 | Port 1: Port Qualifier Information (PQI) | |||||||
| 48...63 | Port 1: IO-Link Information + IO-Link Events | |||||||
| 64...65 | Port 2: Port Qualifier Information (PQI) | |||||||
| 66...81 | Port 2: IO-Link Information + IO-Link Events | |||||||
| 82...83 | Port 3: Port Qualifier Information (PQI) | |||||||
| 84...99 | Port 3: IO-Link Information + IO-Link Events | |||||||
| 100...101 | Port 4: Port Qualifier Information (PQI) | |||||||
| 102...117 | Port 4: IO-Link Information + IO-Link Events | |||||||
| 46...47 | Port 1: Port Qualifier Information (PQI) | |||||||
| 48...63 | Port 1: IO-Link Information + IO-Link Events | |||||||
| 64...65 | Port 2: Port Qualifier Information (PQI) | |||||||
| 66..81 | Port 2: IO-Link Information + IO-Link Events | |||||||
| 82...83 | Port 3: Port Qualifier Information (PQI) | |||||||
| 84...99 | Port 3: IO-Link Information + IO-Link Events | |||||||
| 100...101 | Port 4: Port Qualifier Information (PQI) | |||||||
| 102...117 | Port 4: IO-Link Information + IO-Link Events | |||||||
| 118...119 | Port 5: Port Qualifier Information (PQI) | |||||||
| 120...135 | Port 5: IO-Link Information + IO-Link Events | |||||||
| 136...137 | Port 6: Port Qualifier Information (PQI) | |||||||
| 138...153 | Port 6: IO-Link Information + IO-Link Events | |||||||
| 154...155 | Port 7: Port Qualifier Information (PQI) | |||||||
| 156...171 | Port 7: IO-Link Information + IO-Link Events | |||||||
| 172...173 | Port 8: Port Qualifier Information (PQI) | |||||||
| 174...189 | Port 8: IO-Link Information + IO-Link Events | |||||||
| 190 | Port 1: Input Data (n Bytes) | |||||||
| 190+n | Port 2: Input Data (n Bytes) | |||||||
| 190+2n | Port 3: Input Data (n Bytes) | |||||||
| 190+3n | Port 4: Input Data (n Bytes) | |||||||
| 190+4n | Port 5: Input Data (n Bytes) | |||||||
| 190+5n | Port 6: Input Data (n Bytes) | |||||||
| 190+6n | Port 7: Input Data (n Bytes) | |||||||
| 190+7n | Port 8: Input Data (n Bytes) | |||||||
Legende:
- Digital Input
- Status Information
Digitale Eingangsdaten der Ports
Statusinformationen des Geräts
Mapping: Digital Input ( → ☐ 89)
Mapping: Status Information ( → ☐ 90)
| Acyclic Command Channel: Response | Azyklischer Kommandokanal - Ant-wort | Antwortkanal (Response) ( → ☐ 107) | |
| Port Qualifier Information (PQI) | Statusinformationen des IO-Link Ports | Mapping: Port Qualifier Information (PQI) ( → ☐ 91) | |
| IO-Link Information + IO-Link Events | IO-Link Informationen und IO-Link Events des Ports | Mapping: IO-Link Information + IO-Link Events ( → ☐ 91) | |
| Input Data (n Bytes) | IO-Link Eingangsdaten des Ports (n Bytes)n: {2, 4, 8, 16, 32}; n wird bestimmt durch Parameter Port Process Data Size | USINT | Pro Byte:• 0x00...0xFF |
Mapping: Digital Input
| Byte (Offset) | Bit | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
| n | Port 8: DI Pin 4 | Port 7: DI Pin 4 | Port 6: DI Pin 4 | Port 5: DI Pin 4 | Port 4: DI Pin 4 | Port 3: DI Pin 4 | Port 2: DI Pin 4 | Port 1: DI Pin 4 |
| n+1 | Port 8: DI Pin 2 | Port 7: DI Pin 2 | Port 6: DI Pin 2 | Port 5: DI Pin 2 | Port 4: DI Pin 2 | Port 3: DI Pin 2 | Port 2: DI Pin 2 | Port 1: DI Pin 2 |
Legende:
- DI Pin 4 Signalstatus digitaler Eingang an Pin 1 BIT - 0x0: LOW
4 des Ports • 0x1: HIGH
- DI Pin 2 Signalstatus digitaler Eingang an Pin 1 BIT - 0x0: LOW
2 des Ports • 0x1: HIGH
Mapping: Status Information
| Byte (Offset) | Bit | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
| n | Port 8: SC / OL | Port 7: SC / OL | Port 6: SC / OL | Port 5: SC / OL | Port 4: SC / OL | Port 3: SC / OL | Port 2: SC / OL | Port 1: SC / OL |
| n+1 | reserviert | reserviert | reserviert | reserviert | reserviert | reserviert | SENS PWR | reserviert |
Legende:
| • SC / OL | Short Circuit / Overload: Anzeige ei-nes Kurzschlusses oder einer Über-spannung am IO-Link Port | 1 BIT | • 0x0: kein Fehler• 0x1: Kurzschluss oder Überspannung |
| • SENS PWR | Status der Versorgungsspannung US | 1 BIT | • 0x0: kein Fehler / keine Warnung• 0x1: Überstrom an US (>3,6 V) |
Mapping: Port Qualifier Information (PQI)
| Byte (Offset) | Bit | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
| n | Diagnosis present | Wrong Length PDout | Wrong Length PDin | Wrong Cyc-le Time | Wrong VID / DID | Invalid Data | Dev Not Con | IOL Mode |
| n+1 | PQ | DevErr | DevCom | reserviert | reserviert | reserviert | reserviert | reserviert |
Legende:
| IOL Mode | Betriebsart des Ports (Pin 4) | 1 BIT | 0x0: sonst.0x1: IO-Link |
| Dev Not Con | Verbindungsstatus zu IO-Link Device am Port | 1 BIT | 0x0: verbunden0x1: nicht verbunden |
| Invalid Data | Status der Prozessdaten | 1 BIT | 0x0: gültig0x1: ungültig |
| Wrong VID / DID | Übereinstimmung von konfigurierter und erkannter Vendor ID / Device ID | 1 BIT | 0x0: OK0x1: keine Übereinstimmung |
| Wrong Cycle Time | Übereinstimmung von konfigurierter und erkannter Zykluszeit | 1 BIT | 0x0: OK0x1: keine Übereinstimmung |
| Wrong Length PDin | Übereinstimmung von konfigurierter und erkannter Prozessdatenlänge (Eingänge) | 1 BIT | 0x0: OK0x1: konfigurierte Prozessdatenlänge zu klein |
| Wrong Length PDout | Übereinstimmung von konfigurierter und erkannter Prozessdatenlänge (Ausgänge) | 1 BIT | 0x0: OK0x1: konfigurierte Prozessdatenlänge zu klein |
| Diagnosis present | Anzeige neuer IO-Link Events (Coming Event, Single Shot Event)Coming Events verschwindet bei Eintritt des entsprechenden Disappearing Events Single Shot Events verschwinden automatisch | 1 BIT | 0x0: kein IO-Link Event0x1: Neues IO-Link Event erkannt |
| DevCom | Device Communication: Zustandsanzeige der Kommunikation mit IO-Link -Device | 1 BIT | 0x0: kein IO-Link Device verfügbar oder IO-Link Device in Fehlerzustand (z. B. Validierungsfehler) ODER Port in Betriebszustand DI, DO, deaktiviert0x1: IO-Link Device erkannt; IO-Link Device ist in Zustand OPERATE und nicht im Fehlerzustand |
| DevErr | Device Error: Fehleranzeige für Port oder angeschlossenes Gerät | 1 BIT | 0x0: kein Fehler / keine Warnung0x1: Fehler / Warnung an Port oder angeschlossenem IO-Link Device aufgetreten |
| PQ | Port Qualifier: Gültigkeitsanzeige der Prozessdaten des angeschlossenen IO-Link Devices | 1 BIT | 0x0: Ungültige Prozessdaten ODER falsche Prozessdatenlänge ODER falsche Zykluszeit ODER falsche Validierungseinstellungen (Betriebszustand DI, DO, deaktiviert)0x1: Gültige Prozessdaten des IO-Link Device (Betriebsart IO-Link und Zustand OPERATE) |
Mapping: IO-Link Information + IO-Link Events
| Byte (Offset) | Bit | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
| n | Vendor ID (VID)[0] | |||||||
| n+1 | Vendor ID (VID)[1] | |||||||
| n+2 | Device ID (DID)[0] | |||||||
| n+3 | Device ID (DID)[1] | |||||||
| n+4 | Device ID (DID)[2] | |||||||
| n+5 | Device ID (DID)[3] | |||||||
| n+6 | Event 1: Mode | Event 1: Type | Event 1: Src | Event 1: Instance | ||||
| n+7 | Event 1: Code[0] | |||||||
| n+8 | Event 1: Code[1] | |||||||
| n+9 | Event 2: Mode | Event 2: Type | Event 2: Src | Event 2: Instance | ||||
| n+10 | Event 2: Code[0] | |||||||
| n+11 | Event 2: Code[1] | |||||||
| n+12 | Event 3: Mode | Event 3: Type | Event 3: Src | Event 3: Instance | ||||
| n+13 | Event 3: Code[0] | |||||||
| n+14 | Event 3: Code[1] | |||||||
| n+15 | reserviert | |||||||
Legende:
| Vendor ID (VID) | Vendor ID des angeschlossenen IO-Link DevicesVID = 0x1234DID[1]: 0x12DID[0]: 0x34 | UINT | 0x0000...0x7FFF |
| Device ID (DID) | Device ID des angeschlossenen IO-Link DevicesDID = 0x00123456DID[3]: 0x00DID[2]: 0x12DID[1]: 0x34DID[0]: 0x56 | UDINT | 0x00000000...0x00FFFFFFF |
| Event m: Mode | Mode: Modus des Ereignisses | 2 BIT | 0x0: reserviert0x1: Einmaliges Ereignis0x2: Ereignis verschwunden0x3: Ereignis erschienen |
| Event m: Type | Type: Kategorie des Ereignisses | 2 BIT | 0x0: reserviert0x1: Benachrichtigung0x2: Warnung0x3: Fehler |
| Event m: Src | Src: Quelle des Ereignisses | 1 BIT | 0x0: IO-Link Device0x1: IO-Link Master |
| Event m: Instance | Instance: Auslöser des Ereignisses | 3 BIT | 0x0: Unbekannt0x1...0x3: reserviert0x4: Application / Anwendung0x5...0x7: reserviert |
| Event m: Code | Code: Ereignis-CodeCode = 0x1234 Code (MSB)[1]: 0x12 Code (LSB)[0]: 0x34 | UINT | geräteabhängig ( → IODD-Beschreibung des IO-Link Devices) |
11.2.2.2 Input Assembly (Instance 101)
| Byte (Offset) | Bit | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
| 0...1 | Digital Input | |||||||
| 2...3 | Status Information | |||||||
| 4...45 | Acyclic Command Channel: Response | |||||||
| 46...47 | Port 1: Port Qualifier Information (PQI) | |||||||
| 48...49 | Port 2: Port Qualifier Information (PQI) | |||||||
| 50...51 | Port 3: Port Qualifier Information (PQI) | |||||||
| 52...55 | Port 4: Port Qualifier Information (PQI) | |||||||
| 54...53 | Port 5: Port Qualifier Information (PQI) | |||||||
| 56...57 | Port 6: Port Qualifier Information (PQI) | |||||||
| 58...59 | Port 7: Port Qualifier Information (PQI) | |||||||
| 60...61 | Port 8: Port Qualifier Information (PQI) | |||||||
| 62 | Port 1: Input Data (n Bytes) | |||||||
| 62+n | Port 2: Input Data (n Bytes) | |||||||
| 62+2n | Port 3: Input Data (n Bytes) | |||||||
| 62+3n | Port 4: Input Data (n Bytes) | |||||||
| 62+4n | Port 5: Input Data (n Bytes) | |||||||
| 62+5n | Port 6: Input Data (n Bytes) | |||||||
| 62+6n | Port 7: Input Data (n Bytes) | |||||||
| 62+7n | Port 8: Input Data (n Bytes) | |||||||
Legende:
- Digital Input
Digitale Eingangsdaten der Ports
Mapping: Digital Input ( → ☐ 94)
- Status Information
Statusinformationen des Geräts
Mapping: Status Information ( → ☐ 95)
• Acyclic Command Channel: Response
Azyklischer Kommandokanal - Antwort
Antwortkanal (Response) (→ 107)
• Port Qualifier Information (PQI)
Statusinformationen des IO-Link Ports
Mapping: Port Qualifier Information (PQI) (→ ☐ 96)
- Input Data (n Bytes)
IO-Link Eingangsdaten des Ports (n USINT Bytes) n: {2, 4, 8, 16, 32}; n wird bestimmt durch Parameter Port Process Data Size
Pro Byte: • 0x00...0xFF
Mapping: Digital Input
| Byte (Offset) | Bit | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
| n | Port 8: DI Pin 4 | Port 7: DI Pin 4 | Port 6: DI Pin 4 | Port 5: DI Pin 4 | Port 4: DI Pin 4 | Port 3: DI Pin 4 | Port 2: DI Pin 4 | Port 1: DI Pin 4 |
| n+1 | Port 8: DI Pin 2 | Port 7: DI Pin 2 | Port 6: DI Pin 2 | Port 5: DI Pin 2 | Port 4: DI Pin 2 | Port 3: DI Pin 2 | Port 2: DI Pin 2 | Port 1: DI Pin 2 |
Legende:
- DI Pin 4 Signalstatus digitaler Eingang an Pin 1 BIT - 0x0: LOW
4 des Ports • 0x1: HIGH
• DI Pin 2 Signalstatus digitaler Eingang an Pin 1 BIT • 0x0: LOW
2 des Ports • 0x1: HIGH
Mapping: Status Information
| Byte (Offset) | Bit | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
| n | Port 8: SC / OL | Port 7: SC / OL | Port 6: SC / OL | Port 5: SC / OL | Port 4: SC / OL | Port 3: SC / OL | Port 2: SC / OL | Port 1: SC / OL |
| n+1 | reserviert | reserviert | reserviert | reserviert | reserviert | reserviert | SENS PWR | reserviert |
Legende:
| • SC / OL | Short Circuit / Overload: Anzeige ei-nes Kurzschlusses oder einer Über-spannung am IO-Link Port | 1 BIT | • 0x0: kein Fehler• 0x1: Kurzschluss oder Überspannung |
| • SENS PWR | Status der Versorgungsspannung US | 1 BIT | • 0x0: kein Fehler / keine Warnung• 0x1: Überstrom an US (>3,6 V) |
Mapping: Port Qualifier Information (PQI)
| Byte (Offset) | Bit | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
| n | Diagnosis present | Wrong Length PDout | Wrong Length PDin | Wrong Cyc-le Time | Wrong VID / DID | Invalid Data | Dev Not Con | IOL Mode |
| n+1 | PQ | DevErr | DevCom | reserviert | reserviert | reserviert | reserviert | reserviert |
Legende:
| IOL Mode | Betriebsart des Ports (Pin 4) | 1 BIT | 0x0: sonst.0x1: IO-Link |
| Dev Not Con | Verbindungsstatus zu IO-Link Device am Port | 1 BIT | 0x0: verbunden0x1: nicht verbunden |
| Invalid Data | Status der Prozessdaten | 1 BIT | 0x0: gültig0x1: ungültig |
| Wrong VID / DID | Übereinstimmung von konfigurierter und erkannter Vendor ID / Device ID | 1 BIT | 0x0: OK0x1: keine Übereinstimmung |
| Wrong Cycle Time | Übereinstimmung von konfigurierter und erkannter Zykluszeit | 1 BIT | 0x0: OK0x1: keine Übereinstimmung |
| Wrong Length PDin | Übereinstimmung von konfigurierter und erkannter Prozessdatenlänge (Eingänge) | 1 BIT | 0x0: OK0x1: konfigurierte Prozessdatenlänge zu klein |
| Wrong Length PDout | Übereinstimmung von konfigurierter und erkannter Prozessdatenlänge (Ausgänge) | 1 BIT | 0x0: OK0x1: konfigurierte Prozessdatenlänge zu klein |
| Diagnosis present | Anzeige neuer IO-Link Events (Coming Event, Single Shot Event)Coming Events verschwindet bei Eintritt des entsprechenden Disappearing Events Single Shot Events verschwinden automatisch | 1 BIT | 0x0: kein IO-Link Event0x1: Neues IO-Link Event erkannt |
| DevCom | Device Communication: Zustandsanzeige der Kommunikation mit IO-Link -Device | 1 BIT | 0x0: kein IO-Link Device verfügbar oder IO-Link Device in Fehlerzustand (z. B. Validierungsfehler) ODER Port in Betriebszustand DI, DO, deaktiviert0x1: IO-Link Device erkannt; IO-Link Device ist in Zustand OPERATE und nicht im Fehlerzustand |
| DevErr | Device Error: Fehleranzeige für Port oder angeschlossenes Gerät | 1 BIT | 0x0: kein Fehler / keine Warnung0x1: Fehler / Warnung an Port oder angeschlossenem IO-Link Device aufgetreten |
| PQ | Port Qualifier: Gültigkeitsanzeige der Prozessdaten des angeschlossenen IO-Link Devices | 1 BIT | 0x0: Ungültige Prozessdaten ODER falsche Prozessdatenlänge ODER falsche Zykluszeit ODER falsche |
11.2.2.3 Input Assembly (Instance 102)
| Byte (Offset) | Bit | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
| 0...1 | Digital Input | |||||||
| 2...3 | Status Information | |||||||
| 4...5 | Port 1: Port Qualifier Information | |||||||
| 6...7 | Port 2: Port Qualifier Information | |||||||
| 8...9 | Port 3: Port Qualifier Information | |||||||
| 10...11 | Port 4: Port Qualifier Information | |||||||
| 12...13 | Port 5: Port Qualifier Information | |||||||
| 14...15 | Port 6: Port Qualifier Information | |||||||
| 16...17 | Port 7: Port Qualifier Information | |||||||
| 18...19 | Port 8: Port Qualifier Information | |||||||
| 20 | Port 1: Input Data (n Bytes) | |||||||
| 20+n | Port 2: Input Data (n Bytes) | |||||||
| 20+2n | Port 3: Input Data (n Bytes) | |||||||
| 20+3n | Port 4: Input Data (n Bytes) | |||||||
| 20+4n | Port 5: Input Data (n Bytes) | |||||||
| 20+5n | Port 6: Input Data (n Bytes) | |||||||
| 20+6n | Port 7: Input Data (n Bytes) | |||||||
| 20+7n | Port 8: Input Data (n Bytes) | |||||||
Legende:
• Digital Input Digitale Eingangsdaten der Ports
- Status Information Statusinformationen des Geräts
- Port Qualifier Information Statusinformationen des IO-Link Ports (PQI)
- Input Data (n Bytes) IO-Link Eingangsdaten des Ports (n USINT Bytes) n: {2, 4, 8, 16, 32}; n wird bestimmt durch Parameter Port Process Data Size
Mapping: Digital Input ( → ☐ 98)
Mapping: Status Information ( → ☐ 99)
Mapping: Port Qualifier Information (PQI) (→ 100)
Pro Byte: • 0x00...0xFF
Mapping: Digital Input
| Byte (Offset) | Bit | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
| n | Port 8: DI Pin 4 | Port 7: DI Pin 4 | Port 6: DI Pin 4 | Port 5: DI Pin 4 | Port 4: DI Pin 4 | Port 3: DI Pin 4 | Port 2: DI Pin 4 | Port 1: DI Pin 4 |
| n+1 | Port 8: DI Pin 2 | Port 7: DI Pin 2 | Port 6: DI Pin 2 | Port 5: DI Pin 2 | Port 4: DI Pin 2 | Port 3: DI Pin 2 | Port 2: DI Pin 2 | Port 1: DI Pin 2 |
Legende:
| • DI Pin 4 | Signalstatus digitaler Eingang an Pin 4 des Ports | 1 BIT | • 0x0: LOW• 0x1: HIGH |
| • DI Pin 2 | Signalstatus digitaler Eingang an Pin 2 des Ports | 1 BIT | • 0x0: LOW• 0x1: HIGH |
Mapping: Status Information
| Byte (Offset) | Bit | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
| n | Port 8: SC / OL | Port 7: SC / OL | Port 6: SC / OL | Port 5: SC / OL | Port 4: SC / OL | Port 3: SC / OL | Port 2: SC / OL | Port 1: SC / OL |
| n+1 | reserviert | reserviert | reserviert | reserviert | reserviert | reserviert | SENS PWR | reserviert |
Legende:
| • SC / OL | Short Circuit / Overload: Anzeige ei-nes Kurzschlusses oder einer Über-spannung am IO-Link Port | 1 BIT | • 0x0: kein Fehler• 0x1: Kurzschluss oder Überspannung |
| • SENS PWR | Status der Versorgungsspannung US | 1 BIT | • 0x0: kein Fehler / keine Warnung• 0x1: Überstrom an US (>3,6 V) |
Mapping: Port Qualifier Information (PQI)
| Byte (Offset) | Bit | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
| n | Diagnosis present | Wrong Length PDout | Wrong Length PDin | Wrong Cyc-le Time | Wrong VID / DID | Invalid Data | Dev Not Con | IOL Mode |
| n+1 | PQ | DevErr | DevCom | reserviert | reserviert | reserviert | reserviert | reserviert |
Legende:
| IOL Mode | Betriebsart des Ports (Pin 4) | 1 BIT | 0x0: sonst.0x1: IO-Link |
| Dev Not Con | Verbindungsstatus zu IO-Link Device am Port | 1 BIT | 0x0: verbunden0x1: nicht verbunden |
| Invalid Data | Status der Prozessdaten | 1 BIT | 0x0: gültig0x1: ungültig |
| Wrong VID / DID | Übereinstimmung von konfigurierter und erkannter Vendor ID / Device ID | 1 BIT | 0x0: OK0x1: keine Übereinstimmung |
| Wrong Cycle Time | Übereinstimmung von konfigurierter und erkannter Zykluszeit | 1 BIT | 0x0: OK0x1: keine Übereinstimmung |
| Wrong Length PDin | Übereinstimmung von konfigurierter und erkannter Prozessdatenlänge (Eingänge) | 1 BIT | 0x0: OK0x1: konfigurierte Prozessdatenlänge zuklein |
| Wrong Length PDout | Übereinstimmung von konfigurierter und erkannter Prozessdatenlänge (Ausgänge) | 1 BIT | 0x0: OK0x1: konfigurierte Prozessdatenlänge zuklein |
| Diagnosis present | Anzeige neuer IO-Link Events (Coming Event, Single Shot Event)Coming Events verschwindet bei Eintritt des entsprechenden Disappearing Events Single Shot Events verschwinden automatisch | 1 BIT | 0x0: kein IO-Link Event0x1: Neues IO-Link Event erkannt |
| DevCom | Device Communication: Zustandsanzeige der Kommunikation mit IO-Link -Device | 1 BIT | 0x0: kein IO-Link Device verfügbar oder IO-Link Device in Fehlerzustand (z. B. Validierungsfehler) ODER Port in Betriebszustand DI, DO, deaktiviert0x1: IO-Link Device erkannt; IO-Link Device ist in Zustand OPERATE und nicht im Fehlerzustand |
| DevErr | Device Error: Fehleranzeige für Port oder angeschlossenes Gerät | 1 BIT | 0x0: kein Fehler / keine Warnung0x1: Fehler / Warnung an Port oder angeschlossenem IO-Link Device aufgetreten |
| PQ | Port Qualifier: Gültigkeitsanzeige der Prozessdaten des angeschlossenen IO-Link Devices | 1 BIT | 0x0: Ungültige Prozessdaten ODER falsche Prozessdatenlänge ODER falsche Zykluszeit ODER falsche |
11.2.2.4 Output Assembly (Instance 150)
| Byte (Offset) | Bit | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
| 0...1 | Digital Output | |||||||
| 2...3 | reserviert | |||||||
| 4...45 | Acyclic Command Channel: Request | |||||||
| 46 | Port 1: Output Data (n Bytes) | |||||||
| 46+n | Port 2: Output Data (n Bytes) | |||||||
| 46+2n | Port 3: Output Data (n Bytes) | |||||||
| 46+3n | Port 4: Output Data (n Bytes) | |||||||
| 46+4n | Port 5: Output Data (n Bytes) | |||||||
| 46+5n | Port 6: Output Data (n Bytes) | |||||||
| 46+6n | Port 7: Output Data (n Bytes) | |||||||
| 46+7n | Port 8: Output Data (n Bytes) | |||||||
Legende:
- Digital Output
• Acyclic Command Channel: Request
• Output Data (n Bytes)
Digitale Ausgangsdaten der Ports
Azyklischer Kommandokanal - Anforderung
IO-Link Ausgangsdaten des Ports (n Bytes)
n: {2, 4, 8, 16, 32}; n wird bestimmt durch Parameter Port Process Data Size
Mapping: Digital Output ( → ☐ 102)
Anforderungskanal (Request) (→ ☐ 106)
Pro Byte:
- 0x00...0xFF
Mapping: Digital Output
| Byte (Offset) | Bit | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
| n | Port 8: DO Pin 4 | Port 7: DO Pin 4 | Port 6: DO Pin 4 | Port 5: DO Pin 4 | Port 4: DO Pin 4 | Port 3: DO Pin 4 | Port 2: DO Pin 4 | Port 1: DO Pin 4 |
| n+1 | reserviert | |||||||
Legende:
- DO Pin 4
Signalstatus Digitaler Ausgang an Pin 1 BIT
4 des Ports
- 0x0: LOW
- 0x1: HIGH
11.2.2.5 Output Assembly (Instance 151)
| Byte (Offset) | Bit | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
| 0...1 | Digital Output | |||||||
| 2 | Port 1: Output Data (n Bytes) | |||||||
| 2+n | Port 2: Output Data (n Bytes) | |||||||
| 2+2n | Port 3: Output Data (n Bytes) | |||||||
| 2+3n | Port 4: Output Data (n Bytes) | |||||||
| 2+4n | Port 5: Output Data (n Bytes) | |||||||
| 2+5n | Port 6: Output Data (n Bytes) | |||||||
| 2+6n | Port 7: Output Data (n Bytes) | |||||||
| 2+7n | Port 8: Output Data (n Bytes) | |||||||
Legende:
- Digital Output
Digitale Ausgangsdaten der Ports
Mapping: Digital Output ( → ☐ 104)
• Output Data (n Bytes)
IO-Link Ausgangsdaten des Ports (n Bytes)
Pro Byte:
n: {2, 4, 8, 16, 32}; n wird bestimmt durch Parameter Port Process Data Size
- 0x00...0xFF
Mapping: Digital Output
| Byte (Offset) | Bit | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
| n | Port 8: DO Pin 4 | Port 7: DO Pin 4 | Port 6: DO Pin 4 | Port 5: DO Pin 4 | Port 4: DO Pin 4 | Port 3: DO Pin 4 | Port 2: DO Pin 4 | Port 1: DO Pin 4 |
| n+1 | reserviert | |||||||
Legende:
- DO Pin 4
Signalstatus Digitaler Ausgang an Pin 1 BIT
4 des Ports
- 0x0: LOW
- 0x1: HIGH
11.2.3 Azyklische Daten
11.2.3.1 Azyklischer Kommandokanal
Innerhalb der zyklischen Prozessdaten stehen Kommandokanäle für die Übertragung von azyklischen Daten zur Verfügung.
| Object | Inhalt | Byte | Zugriff |
| Output Assembly | Anforderungskanal (Ether Net/IP Controller → IO-Link Master)Anforderungskanal (Request) (→ 106) | 4...45 | rw 1 |
| Input Assembly | Antwortkanal (IO-Link Master → Ether Net/IP Controller)Antwortkanal (Response) (→ 107) | 4...45 | ro 2 |
1 lesen und schreiben
2 nur lesen
Anforderungskanal (Request)
| Byte (Offset) | Bit | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
| 4 | Port No. (LSB) | |||||||
| 5 | Port No. (MSB) | |||||||
| 6 | Index (LSB) | |||||||
| 7 | Index (MSB) | |||||||
| 8 | Subindex (LSB) | |||||||
| 9 | Subindex (MSB) | |||||||
| 10 | Trigger | Command ID | ||||||
| 11 | Data Length | |||||||
| 12 | Data (Byte 0) | |||||||
| 13 | Data (Byte 1) | |||||||
| ... | ... | |||||||
| 43 | Data (Byte 31) | |||||||
| 44 | reserviert | |||||||
| 45 | reserviert | |||||||
Legende:
| • Port No. | IO-Link PortPort No.: 0x1234• Port No. (MSB): 0x12• Port No. (LSB): 0x34 | 1 WORD | • 0x0001: Port 1• 0x0002: Port 2• 0x0003: Port 3• 0x0004: Port 4• 0x0005: Port 5• 0x0006: Port 6• 0x0007: Port 7• 0x0008: Port 8 |
| • Index | Index des ISDU-Objekts Index: 0x1234• Index (MSB): 0x12• Index (LSB): 0x34 | 1 WORD | 0x0000...0xFFFF |
| • Subindex | Subindex des ISDU-Objekts Subindex: 0x1234• Subindex (MSB): 0x12• Subindex (LSB): 0x34 | 1 WORD | 0x0000...0xFFFF |
| • Trigger | Befehlsausführung steuern | 1 BIT | • 0x0: keine Aktion• 0x1: Kommando ausführen |
| • Command ID | Kommandonummer | 7 BIT | • 0x01: Lesen• 0x02: Schreiben |
| • Data Length | Anzahl der Bytes, die relevante Nutzdaten enthalten | 1 BYTE | • 0x00: 0 Bytes...• 0x20: 32 Bytes |
| • Data (Byte n) | Nutzerdaten (Byte n) | 1 BYTE | Pro Byte• 0x00...0xFF |
Antwortkanal (Response)
| Byte (Offset) | Bit | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
| 4 | Port No. (LSB) | |||||||
| 5 | Port No. (MSB) | |||||||
| 6 | Index (LSB) | |||||||
| 7 | Index (MSB) | |||||||
| 8 | Subindex (LSB) | |||||||
| 9 | Subindex (MSB) | |||||||
| 10 | Handshake | Command ID | ||||||
| 11 | Result | |||||||
| 12 | Data Length | |||||||
| 13 | Data (Byte 0) | Error Code | |||||||
| 14 | Data (Byte 1) | Additional Code | |||||||
| ... | ||||||||
| 44 | Data (Byte 31) | |||||||
| 45 | reserviert | |||||||
Legende:
| • Port No. | IO-Link PortPort No.: 0x1234• Port No. (MSB): 0x12• Port No. (LSB): 0x34 | 1 WORD | • 0x0001: Port 1• 0x0002: Port 2• 0x0003: Port 3• 0x0004: Port 4• 0x0005: Port 5• 0x0006: Port 6• 0x0007: Port 7• 0x0008: Port 8 |
| • Index | Index des ISDU-Objekts Index: 0x1234• Index (MSB): 0x12• Index (LSB): 0x34 | 1 WORD | 0x0000...0xFFFF |
| • Subindex | Subindex des ISDU-Objekts Subindex: 0x1234• Subindex (MSB): 0x12• Subindex (LSB): 0x34 | 1 WORD | 0x0000...0xFFFF |
| • Handshake | Gültigkeit der IO-Link Antwortdaten | 1 BIT | • 0x0: Daten ungültig• 0x1: Daten gültig |
| • Command ID | Kommandonummer | 7 BIT | • 0x01: Lesen• 0x02: Schreiben |
| • Result | Status der Kommandoabarbeitung | 1 BYTE | • 0x00: OK• 0x0F: OK, gelesene Nutzdaten > 32 Bytes• 0xFF: Fehler |
| • Data Length | Anzahl der Bytes, die relevante Nutzdaten enthalten | 1 BYTE | • 0x00: 0 Bytes...• 0x20: 32 Bytes |
| • Data (Byte 0) | Error Code | Nutzdaten (Byte 0) oder Fehlercodes | 1 BYTE | • Nutzdaten: 0x00...0xFF• Error Code: Error Code (→ ☐ 109) |
| • Data (Byte 1) | Additional Code | Nutzdaten (Byte 1) oder zusätzliche Fehlercodes | 1 BYTE | • Nutzdaten: 0x00...0xFF• Additional Code: Additional Code (→ ☐ 109) |
• Data (Byte n) Nutzdaten (Byte n)
1 BYTE Pro Byte: 0x00...0xFF
Error Code
| Fehlercode | Beschreibung |
| 0x71 | Dienst nicht verfügbar (unbekannte Befehl wurde an den IO-Link Port gesendet) |
| 0x72 | Port gesperrt (ein anderer azyklischer Prozess greift auf den IO-Link Port zu) |
| 0x73 | Verboten (Zugriffsrechte verbieten Befehlsausführung) |
| 0x74 | Ungültige Daten (falscher Parameter wurde im Befehl gesendet) |
| 0x76 | Falscher Port (falsche Port-Nummer) |
| 0x77 | Falsche Port-Funktion (falsche Port-Funktion oder falscher Parameter wurde an das Gerät gesendet) |
| 0x78 | Ungültige Länge (eingestellte Länge ist > 0x20) |
| 0x80 | Fehler in der Geräte-Applikation; Additional Code beachten (Additional Code (→ ☐ 109)) |
Additional Code

Additional Code nur gültig, wenn Error Code = 0x80 (→ Error Code ☐ 109).
| Code | Name | Beschreibung |
| 0x00 | APP_DEV | Fehler in der Geräte-Appliaktion – keine Details |
| 0x11 | IDX_NOTAVAIL | Index nicht verfügbar |
| 0x12 | SUBIDX_NOTAVAIL | Subindex nicht verfügbar |
| 0x20 | SERV_NOTAVAIL | Dienst vorübergehnd nicht verfügbar |
| 0x21 | SERV_NOTAVAIL_LOCCTRL | Dienst vorübergehend nicht verfügbar – Lokal |
| 0x22 | SERV_NOTAVAIL_DEVCTRL | Dienst vorübergehend nicht verfügbar – Device |
| 0x23 | IDX_NOT_WRITEABLE | Zugriff verweigert |
| 0x30 | PAR_VALOUTOFRNG | Parameterwert außerhalb des gültigen Bereichs |
| 0x31 | PAR_VALGTLIM | Parameterwert oberhalb des Grenzwerts |
| 0x32 | PAR_VALLTLIM | Parameterwert unterhalb des Grenzwerts |
| 0x33 | VAL_LENOVRRUN | Parameterlänge überschritten |
| 0x34 | VAL_LENUNDRUN | Parameterlänge unterschritten |
| 0x35 | FUNC_NOTAVAIL | Funktion nicht verfügbar |
| 0x36 | FUNC_UNAVAILTEMP | Funktion vorübergehend nicht verfügbar |
| 0x40 | PAR_SETINVALID | Ungültiger Parametersatz |
| 0x41 | PAR_SETINCONSIST | Inkonsistenter Parametersatz |
| 0x82 | APP_DEVNOTRDY | Applikation nicht bereit |
11.2.3.2 Azyklische Kommandos
Set Mode (0x10)
Der Befehl ändert die Betriebsart eines IO-Link Ports des Geräts.
Kommandoanforderung
| Byte (Offset) | Bit | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
| 4 | Port No. (LSB) | |||||||
| 5 | Port No. (MSB) | |||||||
| 6 | reserviert | |||||||
| 7 | reserviert | |||||||
| 8 | reserviert | |||||||
| 9 | reserviert | |||||||
| 10 | Trigger | 0x10 | ||||||
| 11 | Target Mode | |||||||
| 12 | reserviert | |||||||
| ... | ... | |||||||
| 45 | reserviert | |||||||
Legende:
- Port No. IO-Link Port
Port No.: 0x1234 - Port No. (MSB): 0x12
- Port No. (LSB): 0x34
1 WORD • 0x0001: Port 1 - 0x0002: Port 2
- 0x0003: Port 3
- 0x0004: Port 4
- 0x0005: Port 5
- 0x0006: Port 6
- 0x0007: Port 7
- 0x0008: Port 8
- Trigger Befehlsausführung steuern
1 BIT • 0x0: keine Aktion
• 0x1: Kommando ausführen
• Target Mode Betriebsart des Ports IO-Link Ports
1 BYTE • 0x00: deaktiviert
• 0x01: Digitaler Eingang (DI)
• 0x02: Digitaler Ausgang (DO) - 0x03: IO-Link
Kommandoantwort
| Byte (Offset) | Bit | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
| 4 | Port No. (LSB) | |||||||
| 5 | Port No. (MSB) | |||||||
| 6 | reserviert | |||||||
| 7 | reserviert | |||||||
| 8 | reserviert | |||||||
| 9 | reserviert | |||||||
| 10 | Handshake | 0x10 | ||||||
| 11 | Result | |||||||
| 12 | Target Mode | |||||||
| 13 | reserviert | |||||||
| ... | ... | |||||||
| 45 | reserviert | |||||||
Legende:
| • Port No. | IO-Link PortPort No.: 0x1234• Port No. (MSB): 0x12• Port No. (LSB): 0x34 | 1 WORD | • 0x0001: Port 1• 0x0002: Port 2• 0x0003: Port 3• 0x0004: Port 4• 0x0005: Port 5• 0x0006: Port 6• 0x0007: Port 7• 0x0008: Port 8 |
| • Handshake | Gültigkeit der IO-Link Antwortdaten | 1 BIT | • 0x0: Daten ungültig• 0x1: Daten gültig |
| • Result | Status der Kommandoabarbeitung | 1 BYTE | • 0x00: OK• 0x0F: OK, gelesene Nutzdaten > 32 Bytes• 0xFF: Fehler |
| • Target Mode | Betriebsart des Ports IO-Link Ports | 1 BYTE | • 0x00: deaktiviert• 0x01: Digitaler Eingang (DI)• 0x02: Digitaler Ausgang (DO)• 0x03: IO-Link |
Set Validation ID / Data Storage (0x20)
Der Befehl setzt das Verhalten des IO-Link Masters beim Anschluss eines neuen IO-Link Devices an einem IO-Link Ports des Geräts.
Kommandoanforderung
| Byte (Offset) | Bit | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
| 4 | Port No. (LSB) | |||||||
| 5 | Port No. (MSB) | |||||||
| 6 | reserviert | |||||||
| 7 | reserviert | |||||||
| 8 | reserviert | |||||||
| 9 | reserviert | |||||||
| 10 | Trigger | 0x20 | ||||||
| 11 | Validation ID | |||||||
| 12 | reserviert | |||||||
| ... | ... | |||||||
| 45 | reserviert | |||||||
Legende:
| • Port No. | IO-Link PortPort No.: 0x1234• Port No. (MSB): 0x12• Port No. (LSB): 0x34 | 1 WORD | • 0x0001: Port 1• 0x0002: Port 2• 0x0003: Port 3• 0x0004: Port 4• 0x0005: Port 5• 0x0006: Port 6• 0x0007: Port 7• 0x0008: Port 8 |
| • Trigger | Befehlsausführung steuern | 1 BIT | • 0x0: keine Aktion• 0x1: Kommando ausführen |
| • Validation ID | Validierungstyp und Data-Storage-Verhalten des Ports | 1 BYTE | • 0x00: No check• 0x01: Type compatible V1.0 Device• 0x02: Type compatible V1.1 Device• 0x03: Type compatible V1.1 Device with Backup + Restore• 0x04: Type compatible V1.1 Device with Restore |
Kommandoantwort
| Byte (Offset) | Bit | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
| 4 | Port No. (LSB) | |||||||
| 5 | Port No. (MSB) | |||||||
| 6 | reserviert | |||||||
| 7 | reserviert | |||||||
| 8 | reserviert | |||||||
| 9 | reserviert | |||||||
| 10 | Handshake | 0x20 | ||||||
| 11 | Result | |||||||
| 12 | Validation ID | |||||||
| 13 | reserviert | |||||||
| ... | ... | |||||||
| 45 | reserviert | |||||||
Legende:
| • Port No. | IO-Link PortPort No.: 0x1234• Port No. (MSB): 0x12• Port No. (LSB): 0x34 | 1 WORD | • 0x0001: Port 1• 0x0002: Port 2• 0x0003: Port 3• 0x0004: Port 4• 0x0005: Port 5• 0x0006: Port 6• 0x0007: Port 7• 0x0008: Port 8 |
| • Handshake | Gültigkeit der IO-Link Antwortdaten | 1 BIT | • 0x0: Daten ungültig• 0x1: Daten gültig |
| • Result | Status der Kommandoabarbeitung | 1 BYTE | • 0x00: OK• 0x0F: OK, gelesene Nutzdaten > 32 Bytes• 0xFF: Fehler |
| • Validation ID | Validierungstyp und Data-Storage-Verhalten des Ports | 1 BYTE | • 0x00: No check• 0x01: Type compatible V1.0 Device• 0x02: Type compatible V1.1 Device• 0x03: Type compatible V1.1 Device with Backup + Restore• 0x04: Type compatible V1.1 Device with Restore |
Set Fail-safe Data Pattern (0x30)
Der Befehl setzt das Verhalten der Ausgänge bei einer Unterbrechung der Ether
Net/IP-Verbindung und die entsprechenden Rückfallwerte.
Kommandoantwort
| Byte (Offset) | Bit | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
| 4 | Port No. (LSB) | |||||||
| 5 | Port No. (MSB) | |||||||
| 6 | reserviert | |||||||
| 7 | reserviert | |||||||
| 8 | reserviert | |||||||
| 9 | reserviert | |||||||
| 10 | Handshake | 0x30 | ||||||
| 11 | Result | |||||||
| 12 | Fail-safe Mode | |||||||
| 13 | reserviert | |||||||
| ... | ... | |||||||
| 45 | reserviert | |||||||
- Handshake
Gültigkeit der IO-Link Antwortdaten
1 BIT
- 0x0: Daten ungültig
- 0x1: Daten gültig
- Result
Status der Kommandoabarbeitung
1 BYTE
- 0x00: OK
• 0x0F: OK, gelesene Nutzdaten > 32 Bytes
- 0xFF: Fehler
- Fail-safe Mode
Rückfall-Modus für die Ausgänge der IO-Link Ports bei einer Unterbrechung der Ether
Net/IP-Verbindung
1 BYTE
- 0x00: No Fail-safe
- 0x01: Fail-safe - Reset Value
• 0x02: Fail-safe - Old Value
- 0x03: Fail-safe – Pattern
11.2.4 Objektverzeichnis
11.2.4.1 CIP-Objektklassen
Unterstützte Objektklassen:
| Class Code | Name | Beschreibung |
| 0x01 | Identity Object | Identity Object (Class Code: 0x01) (→ ☐ 116) |
| 0x02 | Message Router Object | Message Router Object (Class Code: 0x02) (→ ☐ 117) |
| 0x04 | Assembly Object | Assembly Object (Class Code: 0x04) (→ ☐ 118) |
| 0x06 | Connection Manager Object | Connection Manager Object (Class Code: 0x06) (→ ☐ 119) |
| 0x47 | Device Level Ring Object | Device Level Ring Object (Class Code: 0x47) (→ ☐ 120) |
| 0x48 | Quality Of Service Object | Quality Of Service Object (Class Code: 0x48) (→ ☐ 121) |
| 0x80 | IO-Link Request Object | IO-Link Request Object (Class Code: 0x80) (→ ☐ 122) |
| 0xF5 | TCP/IP Object | TCP/IP Object (Class Code: 0xF5) (→ ☐ 126) |
| 0xF6 | Ethernet Link Object | Ethernet Link Object (Class Code: 0xF6) (→ ☐ 129) |
11.2.4.2 CIP-Klassen- und Instanzdienste
Unterstützte Klassen- und Instanzdienste:
| Service Code | Name | Beschreibung |
| 0x01 | Get Attribute All | Alle Attribute lesen |
| 0x02 | Set Attribute All | Alle Attribute schreiben |
| 0x05 | Reset | Rücksetzen |
| 0x09 | Delete | Löschen |
| 0x0E | Get Attribute Single | Einzelnes Attribut lesen |
| 0x10 | Set Attribute Single | Einzelnes Attribut schreiben |
| 0x4B | Read ISDU | ISDU lesen |
| 0x4C | Write ISDU | ISDU schreiben |
| 0x4D | Write Failsafe Pattern | Rückfallwerte schreiben |
| 0x4E | Forward Close | Verbindung schließen |
| 0x54 | Forward Open | Neue Verbindung öffnen |
11.2.4.3 Identity Object (Class Code: 0x01)
Klassenattribute
| Attr. ID | Zugriff | Name | Datentyp | Beschreibung | Wert |
| 1 | Get | Revision | UINT | Revision des Objekts | 2.003 |
| 2 | Get | Max. Instance | UINT | max. Anzahl der Instanzen des Objekts | 1 |
| 6 | Get | Max. ID Number Class Attributes | UINT | max. ID-Nummer eines Klassenattributs | 7 |
| 7 | Get | Max. ID Number Instance Attributes | UINT | max. ID-Nummer des Instanzattributs | 9 |
Instanzattribute
| Attr. ID | Zugriff | Name | Datentyp | Beschreibung | Default |
| 1 | Get | Vendor ID | UINT | Hersteller-ID | 322 |
| 2 | Get | Device Type | UINT | Gerätetyp | 12 |
| 3 | Get | Product Code | UINT | Produktcode des Geräts | 1007 |
| 4 | Get | Revision | STRUCT | Revision des Geräts | 2.003 |
| • Major Revision | USINT | Haupt-Revision (1...127) | 2 | ||
| • Minor Revision | USINT | Neben-Revision (3 Stellen) | 003 | ||
| 5 | Get | Status | WORD | Gesamtstatus des Geräts | |
| 6 | Get | Serial Number | UDINT | Seriennummer des Geräts | -- |
| 7 | Get | Product Name | SHORT STRING | Produktname des Geräts | IO-Link Master DL EIP 8P IP67 |
| 8 | Get | State | USINT | Zustand des Geräts (State machine)• 0: Nonexistent• 1: Device Self Testing• 2: Standby• 3: Operational• 4: Major Recoverable Fault• 5: Major Unrecoverable Fault• 6-254: Reserved• 255: Default für “Get_Attributes_All”-Dienst |
Dienste
| Code | Dienst | Klasse | Instanz | Beschreibung |
| 0x01 | Get Attribute All | ja | ja | Alle Attribute lesen |
| 0x05 | Reset | ja | ja | Rücksetzen |
| 0x0E | Get Attribute Single | ja | ja | Einzelnes Attribut lesen |
Wenn ein Identity Object eine Reset-Anforderung empfängt, dann führt es folgende Aktionen aus:
- Es prüft, ob es den angeforderten Reset-Typ unterstützt.
- Es antwortet auf die Anforderung.
- Es versucht, den geforderten Reset-Typ auszuführen.
Unterstützte Reset-Typen:
• 0: Gerät neu starten (obligatorisch für alle Ether
Net/IP-Geräte).
• 1: Werkseinstellungen wiederherstellen und Gerät neu starten.
11.2.4.4 Message Router Object (Class Code: 0x02)
Klassenattribute
| Attr. ID | Zugriff | Name | Datentyp | Beschreibung | Wert |
| 1 | Get | Revision | UINT | Revision des Objekts | 1 |
| 2 | Get | Max. Instance | UINT | max. Anzahl der Instanzen des Objekts | 1 |
| 3 | Get | Number of Instances | UINT | Anzahl der Instanzen | 1 |
| 6 | Get | Max. ID Number Class Attributes | UINT | max. ID-Nummer eines Klassenattributs | 7 |
| 7 | Get | Max. ID Number Instance Attributes | UINT | max. ID-Nummer des Instanzattributs | 0 |
Instanzattribute
Die Objektklasse hat hat keine Instanzattribute.
Dienste
| Code | Dienst | Klasse | Instanz | Beschreibung |
| 0x0E | Get Attribute Single | ja | ja | Einzelnes Attribut lesen |
11.2.4.5 Assembly Object (Class Code: 0x04)
Klassenattribute
| Attr. ID | Zugriff | Name | Datentyp | Beschreibung | Wert |
| 1 | Get | Revision | UINT | Revision des Objekts | 2 |
| 2 | Get | Max. Instance | UINT | max. Anzahl der Instanzen des Objekts | 0x00C7 |
| 3 | Get | Number of Instances | UINT | Anzahl der Instanzen | 3 |
| 6 | Get | Max. ID Number Class At-tributes | UINT | max. ID-Nummer des Klassenattributs | 7 |
| 7 | Get | Max. ID Number Instance Attributes | UINT | max. ID-Nummer des Instanzattributs | 4 |
Instanzattribute
Folgende Objektinstanzen stehen zur Verfügung:
- Configuration Assembly (Instance 199)
• Input Assembly (Instance 100)
• Input Assembly (Instance 101)
• Output Assembly (Instance 150)
• Output Assembly (Instance 151)
Dienste
| Code | Dienst | Klasse | Instanz | Beschreibung |
| 0x0E | Get Attribute Single | ja | ja | Einzelnes Attribut lesen |
| 0x10 | Set Attribute Single | nein | ja | Einzelnes Attribut schreiben |
11.2.4.6 Connection Manager Object (Class Code: 0x06)
Klassenattribute
| Attr. ID | Zugriff | Name | Datentyp | Beschreibung | Wert |
| 1 | Get | Revision | UINT | Revision des Objekts | 1 |
| 2 | Get | Max. Instance | UINT | max. Anzahl der Instanzen des Objekts | 1 |
| 3 | Get | Number of Instances | UINT | Anzahl der Instanzen | 3 |
| 6 | Get | Max. ID Number Class Attributes | UINT | max. ID-Nummer eines Klassenattributs | 7 |
| 7 | Get | Max. ID Number Instance Attributes | UINT | max. ID-Nummer des Instanzattributs | 0 |
Instanzattribute
Die Objektklasse hat hat keine Instanzattribute.
Dienste
| Code | Dienst | Klasse | Instanz | Beschreibung |
| 0x0E | Get Attribute Single | ja | ja | Einzelnes Attribut lesen |
| 0x10 | Set Attribute Single | nein | ja | Einzelnes Attribut schreiben |
| 0x4E | Forward Close | ja | nein | Verbindung schließen |
| 0x54 | Forward Open | ja | nein | Neue Verbindung öffnen |
11.2.4.7 Device Level Ring Object (Class Code: 0x47)
Klassenattribute
| Attr. ID | Zugriff | Name | Datentyp | Beschreibung | Wert |
| 1 | Get | Revision | UINT | Revision des Objekts | 3 |
| 2 | Get | Max. Instance | UINT | max. Anzahl der Instanzen des Objekts | 1 |
| 6 | Get | Max. ID Number Class Attributes | UINT | max. ID-Nummer des Klassenattributs | 7 |
| 7 | Get | Max. ID Number Instance Attributes | UINT | max. ID-Nummer des Instanzattributs | 12 |
Instanzattribute
| Attr. ID | Zugriff | Name | Datentyp | Beschreibung | Default |
| 1 | Get | Network Topology | USINT | Aktuelle Netzwerk-Topologie• 0: Linear | 0 |
| 2 | Get | Network Status | USINT | Aktueller Netzwerk-Status• 0: OK | 0 |
| 10 | Get | Active Supervisor | STRUCT | Identifikation des Supervisors | 0 |
| • UDINT | IP-Adresse | ||||
| • ARRAY(6) of USINT | MAC-Adresse des aktiven Supervisors | ||||
| 12 | Get | Capability Flags | DWORD | DLR-Fähigkeit des Geräts• 0x82: Beacon based Ring Node, Flush Table Frame support | 0x82 |
Dienste
| Code | Dienst | Klasse | Instanz | Beschreibung |
| 0x01 | Get Attribute All | nein | ja | Alle Attribute lesen |
| 0x0E | Get Attribute Single | ja | ja | Einzelnes Attribut lesen |
11.2.4.8 Quality Of Service Object (Class Code: 0x48)
Klassenattribute
| Attr. ID | Zugriff | Name | Datentyp | Beschreibung | Wert |
| 1 | Get | Revision | UINT | Revision des Objekts | 1 |
| 2 | Get | Max. Instance | UINT | max. Anzahl der Instanzen des Objekts | 1 |
| 3 | Get | Number of Instances | UINT | Anzahl der Instanzen des Objekts | 1 |
| 6 | Get | Max. ID Number Class Attributes | UINT | max. ID-Nummer eines Klassenattributs | 7 |
| 7 | Get | Max. ID Number Instance Attributes | UINT | max. ID-Nummer des Instanzattributs | 8 |
Instanzattribute
| Attr. ID | Zugriff | Name | Datentyp | Beschreibung | Default |
| 1 | Get | 802.1Q Tag Enable | USINT | Aktuelle Netzwerk-Topologie | 0: deaktiviert |
| 2 | Get / Set | DSCP PTP Event | USINT | DSCP-Wert für PTP-Event-Frames | 59 |
| 3 | Get / Set | DSCP PTP general | USINT | DSCP-Wert für PTP-General-Frames | 47 |
| 4 | Get / Set | DSCP PTP Urgent | USINT | DSCP-Wert für für implizite Nachrichten mit Priorität "Urgent" | 55 |
| 5 | Get / Set | DSCP Scheduled | USINT | DSCP-Wert für implizite Nachrichten mit Priorität "Scheduled" | 47 |
| 6 | Get / Set | DSCP High | USINT | DSCP-Wert für implizite Nachrichten mit Priorität "High" | 43 |
| 7 | Get / Set | DSCP Low | USINT | DSCP-Wert für implizite Nachrichten mit Priorität "Low" | 31 |
| 8 | Get / Set | DSCP Explicit | USINT | DSCP-Wert für explizite Nachrichten mit Priorität "Explicit" | 27 |
Dienste
| Code | Dienst | Klasse | Instanz | Beschreibung |
| 0x01 | Get Attribute All | ja | ja | Alle Attribute lesen |
11.2.4.9 IO-Link Request Object (Class Code: 0x80)
Klassenattribute
| Attr. ID | Zugriff | Name | Datentyp | Beschreibung | Wert |
| 1 | Get | Revision | UINT | Revision des Objekts | 4 |
| 2 | Get | Max. Instance | UINT | max. Anzahl der Instanzen des Objekts | 2 |
| 6 | Get | Max. ID Number Class Attributes | UINT | max. ID-Nummer eines Klassenattributs | 8 |
Instanzattribute
Über das Instanzattribut wird der gewünschte IO-Link-Port des Gerät adressiert.
Dienste
| Code | Dienst | Klasse | Instanz | Beschreibung |
| 0x4B | Read ISDU (→ ☐ 123) | nein | ja | ISDU lesen |
| 0x4C | Write ISDU (→ ☐ 124) | nein | ja | ISDU schreiben |
| 0x4D | Write Failsafe Pattern (→ ☐ 125) | nein | ja | Rückfallwerte schreiben |
Read ISDU
Mit Read_ISDU können Parameter eines angeschlossenen IO-Link Devices gelesen werden.
Request
CIP Attribute bestimmt den IO-Link-Port, an den das IO-Link Gerät angeschlossen ist. Der Bereich CIP User Specific Service Data enthält IO-Link-Index und IO-Link-Subindex des IO-Link Objekts, dessen Wert gelesen werden soll:
| CIP Format | Datentyp | MSG Config | Beschreibung |
| CIP Class ID | UINT | 0x80 | IO-Link Acyclic Access |
| CIP Instance ID | UINT | 0x01 | IO-Link Master |
| CIP Attribute | USINT | 0x01...0x08 | Port-Nummer |
| CIP Service Code ID | USINT | 0x4B | Dienst „Read ISDU“ |
| CIP User Specific Service Data | UINT | 0x0000...0xFFFF | ISDU Objekt Index |
| USINT | 0x00...0xFF | ISDU Objekt Subindex |
Response
Fehlerfreie Abarbeitung
Wurde der Service fehlerfrei ausgeführt (CIP Error Code = 0), werden die gelesenen Daten byteweise zurückgegeben (CIP User Specific Service Data). Die Antwort liegt in folgendem Format vor:
| CIP Format | Datentyp | MSG Config | Beschreibung |
| CIP Class ID | UINT | 0x80 | IO-Link Acyclic Access |
| CIP Instance ID | UINT | 0x01 | IO-Link Master |
| CIP Attribute | USINT | 0x01...0x08 | Port-Nummer |
| CIP Service Code ID | USINT | 0x4B | Dienst „Read ISDU“ |
| CIP Error Code | USINT | 0x00 | Fehlerfreie Abarbeitung |
| CIP Extended Error Code | USINT | 0x00 | -- |
| CIP User Specific Service Data | USINT | 0x00...0xFF | Daten (Byte 0) |
| USINT | 0x00...0xFF | Daten (Byte 1) | |
| ... | ... | ... | |
| USINT | 0x00...0xFF | Daten (Byte n) |

Die gelesenen Daten sind im IO-Link-Format. Der Nutzer muss bei Bedarf die Byte-Anordnung der gelesenen Daten an das CIP-Format anpassen.
Fehlerfall
Tritt bei der Ausführung des Services ein Fehler auf (CIP Error Code <> 0), dann werden wird ein Erweiterter Fehler-Code übertragen (CIP Extended Error Code). Ist der CIP Error Code = 0x1E, dann ist CIP Extended Error Code = 0x00 und es werden im Bereich CIP User Specific Service Data der IO-Link Error Code und der IO-Link Additional Code übertragen. Die Antwort liegt in folgendem Format vor:
| CIP Format | Datentyp | MSG Config | Beschreibung |
| CIP Class ID | UINT | 0x80 | IO-Link Acyclic Access |
| CIP Instance ID | UINT | 0x01 | IO-Link Master |
| CIP Attribute | USINT | 0x01...0x08 | Port-Nummer |
| CIP Service Code ID | USINT | 0x4B | Dienst „Read ISDU“ |
| CIP Error Code | USINT | <0x00 | Fehlercode (siehe unten) |
| CIP Extended Error Code | USINT | 0x00 | Erweiterter Fehlercode |
| CIP User Specific Service Data | USINT | <0x00 | IO-Link Error Code: Error Code (→ 109) |
| USINT | <0x00 | IO-Link Additional Code: Additional Code (→ 109) |
CIP Error Code:
| Code | Beschreibung |
| 0x02 | Ressource nicht verfügbar: IO-Link Port ist damit beschäftigt, einen anderen azyklischen Service zu bearbeiten |
| 0x05 | Ungültige Klassen-ID oder Instanz-ID |
| 0x08 | Falsche Service-ID: nur Service Code 0x4B, 0x4C oder 0x4D sind erlaubt |
| 0x09 | Falsche Attribut-ID: falsche Port-Nummer |
| 0x20 | Ungültiger Parameterwert (z. B. ungültige Länge) |
| 0x1E | Eingebetteter Service-Fehler: Fehler während eines IO-Link Services aufgetreten. Byte 0 und Byte 1 der CIP User Specific Service Data enthalten den IO-Link Error Code und einen zusätzlichen Code, die vom IO-Link Master zurückgegeben werden. |
Write ISDU
Mit Write_ISDU können Parameter eines angeschlossenen IO-Link Devices geändert werden.
Request
CIP Attribute bestimmt den IO-Link-Port, an den das IO-Link Gerät angeschlossen ist. Der Bereich CIP User Specific Service Data enthält IO-Link-Index, IO-Link-Subindex des IO-Link Objekts, dessen Wert geändert werden soll. Es folgt byteweise der Wert, der dem Parameter zugewiesen werden sollen.
| CIP Format | Datentyp | MSG Config | Beschreibung |
| CIP Class ID | UINT | 0x80 | IO-Link Acyclic Access |
| CIP Instance ID | UINT | 0x01 | IO-Link Master |
| CIP Attribute | USINT | 0x01...0x08 | Port-Nummer |
| CIP Service Code ID | USINT | 0x4C | Dienst „Write ISDU“ |
| CIP User Specific Service Data | UINT | 0x0000...0xFFFF | ISDU Objekt Index |
| USINT | 0x00...0xFF | ISDU Objekt Subindex | |
| USINT | 0x00...0xFF | ISDU Daten (Byte 0) | |
| USINT | 0x00...0xFF | ISDU Daten (Byte 1) |
Response
Fehlerfreie Abarbeitung
Wurde der Dienst fehlerfrei ausgeführt (CIP Error Code = 0), bleibt der Bereich CIP User Specific Data leer. Die Antwort liegt in folgendem Format vor:
| CIP Format | Datentyp | MSG Config | Beschreibung |
| CIP Class ID | UINT | 0x80 | IO-Link Acyclic Access |
| CIP Instance ID | UINT | 0x01 | IO-Link Master |
| CIP Attribute | USINT | 0x01...0x08 | Port-Nummer |
| CIP Service Code ID | USINT | 0x4C | Dienst „Write ISDU“ |
| CIP Error Code | USINT | 0x00 | Fehlerfreie Abarbeitung |
| CIP Extended Error Code | USINT | 0x00 | -- |
Fehlerfall
Tritt bei der Ausführung des Dienstes ein Fehler auf (CIP Error Code <> 0), dann werden wird ein Erweiterter Fehler-Code übertragen (CIP Extended Error Code). Ist der CIP Error Code = 0x1E, dann ist CIP Extended Error Code = 0x00 und es werden im Bereich CIP User Specific Service Data der IO-Link Error Code und der IO-Link Additional Code übertragen. Die Antwort liegt in folgendem Format vor:
| CIP Format | Datentyp | MSG Config | Beschreibung |
| CIP Class ID | UINT | 0x80 | IO-Link Acyclic Access |
| CIP Instance ID | UINT | 0x01 | IO-Link Master |
| CIP Attribute | USINT | 0x01...0x08 | Port-Nummer |
| CIP Service Code ID | USINT | 0x4C | Dienst „Write ISDU“ |
| CIP Error Code | USINT | <0x00 | Fehlercode (siehe unten) |
| CIP Extended Error Code | USINT | 0x00 | Erweiterter Fehlercode |
| CIP User Specific Service Data | USINT | <0x00 | IO-Link Error Code: Error Code (→ 109) |
| USINT | <0x00 | IO-Link Additional Code: Additional Code (→ 109) |
CIP Error Code:
| Code | Beschreibung |
| 0x02 | Ressource nicht verfügbar: IO-Link Port ist damit beschäftigt, einen anderen azyklischen Service zu bearbeiten |
| 0x05 | Ungültige Klassen-ID oder Instanz-ID |
| 0x08 | Falsche Service-ID: nur Service Code 0x4B, 0x4C oder 0x4D sind erlaubt |
| 0x09 | Falsche Attribut-ID: falsche Port-Nummer |
| 0x20 | Ungültiger Parameterwert (z. B. ungültige Länge) |
| 0x1E | Eingebetteter Service-Fehler: Fehler während eines IO-Link Services aufgetreten. Byte 0 und Byte 1 der CIP User Specific Service Data enthalten den IO-Link Error Code und einen zusätzlichen Code, die vom IO-Link Master zurückgegeben werden. |
Write Failsafe Pattern
Mit Write Failsafe Pattern kann der Rückfallwert eines IO-Link Ports geschrieben werden.
Request
CIP Attribute bestimmt den IO-Link Port. Der Bereich CIP User Specific Service Data enthält die Failsafe Mode und den Rückfallwert (Failsafe Pattern).
| CIP Format | Datentyp | MSG Config | Beschreibung |
| CIP Class ID | UINT | 0x80 | IO-Link Acyclic Access |
| CIP Instance ID | UINT | 0x01 | IO-Link Master |
| CIP Attribute | USINT | 0x01...0x08 | Port-Nummer |
| CIP Service Code ID | USINT | 0x4D | Dienst „Write Failsafe Pattern“ |
| CIP User Specific Service Data | USINT | 0x00: No Fail-safe0x01: Fail-safe Reset Value0x02: Fail-safe Old Value0x03: Fail-safe with Pattern | Fail-safe Mode |
| USINT | 0x00...0xFF | Fail-safe Pattern (MSB) | |
| USINT | 0x00...0xFF | Fail-safe Pattern (LSB) |
Response
Fehlerfreie Abarbeitung
Wurde der Dienst fehlerfrei ausgeführt (CIP Error Code = 0), bleibt der Bereich User Specific Data leer. Die Antwort liegt in folgendem Format vor:
| CIP Format | Datentyp | MSG Config | Beschreibung |
| CIP Class ID | UINT | 0x80 | IO-Link Acyclic Access |
| CIP Instance ID | UINT | 0x01 | IO-Link Master |
| CIP Attribute | USINT | 0x01...0x08 | Port-Nummer |
| CIP Service Code ID | USINT | 0x4D | Dienst „Write Failsafe Pattern“ |
| CIP Error Code | USINT | 0x00 | Fehlerfreie Abarbeitung |
| CIP Extended Error Code | USINT | 0x00 | -- |
Fehlerfall
Tritt bei der Ausführung des Dienstes ein Fehler auf (CIP Error Code <> 0), dann wird ein Erweiterter Fehler-Code übertragen (CIP Extended Error Code). Die Antwort liegt in folgendem Format vor:
| CIP Format | Datentyp | MSG Config | Beschreibung |
| CIP Class ID | UINT | 0x80 | IO-Link Acyclic Access |
| CIP Instance ID | UINT | 0x01 | IO-Link Master |
| CIP Attribute | USINT | 0x01...0x08 | Port-Nummer |
| CIP Error Code | USINT | <> 0x00 | Fehlercode (siehe unten) |
| CIP Extended Error Code | USINT | 0x00 | Erweiterter Fehlercode |
CIP Error Code:
| Code | Beschreibung |
| 0x02 | Ressource nicht verfügbar: IO-Link Port ist damit beschäftigt, einen anderen azyklischen Service zu bearbeiten |
| 0x05 | Ungültige Klassen-ID oder Instanz-ID |
| 0x08 | Falsche Service-ID: nur Service Code 0x4B, 0x4C oder 0x4D sind erlaubt |
| 0x09 | Falsche Attribut-ID: falsche Port-Nummer |
| 0x20 | Ungültiger Parameterwert (z. B. ungültige Länge) |
| 0x1E | Eingebetteter Service-Fehler: Fehler während eines IO-Link Services aufgetreten. Byte 0 und Byte 1 der CIP User Specific Service Data enthalten den IO-Link Error Code und einen zusätzlichen Code, die vom IO-Link Master zurückgegeben werden. |
| 0x0F | Nicht ausreichende Zugriffsrechte |
11.2.4.10 TCP/IP Object (Class Code: 0xF5)
Klassenattribute
| Attr. ID | Zugriff | Name | Datentyp | Beschreibung | Wert |
| 1 | Get | Revision | UINT | Revision des Objekts | 4 |
| 2 | Get | Max. Instance | UINT | max. Anzahl der Instanzen des Objekts | 1 |
| 3 | Get | Number of Instances | UINT | Anzahl der Instanzen des Objekts | 1 |
| 6 | Get | Max. ID Number Class Attributes | UINT | max. ID-Nummer eines Klassenattributs | 7 |
| 7 | Get | Max. ID Number Instance Attribute | UINT | max. ID-Nummer des Instanzattributs | 13 |
Instanzattribute
| Attr. ID | Zugriff | Name | Datentyp | Beschreibung | Default |
| 1 | Get | Status | UINT | Status der TCP/IP-Schnittstelle0: Schnittstelle nicht konfiguriert1: Schnittstelle konfiguriert mit DHCP, BOOTP oder nichtflüchtigem Speicher | |
| 2 | Get | Configuration Capability | DWORD | Configurationsoptionen für Schnittstelle Bit 0: BOOTP Client Bit 2: DHCP Client Bit 4: Konfiguration einstellbar Bit 7: ACD-fähig | 0x95 (BOOTP, DHCP, TCP/IP configurable, ACD capable) |
| 3 | Get / Set | Configuration Control | DWORD | Konfigurationssteuerung Bit 0..3: Startup-Konfiguration0: statisch zugewiesene IP-Adresse1: Konfiguration via BOOTP2: Konfiguration via DHCP | 0 |
| 4 | Get | Physical Link Object Path | STRUCT of | Logischer Pfad zur physikalischen Kommunikationsschnittstelle (Ethernet Link Object) | |
| Path Size | UINT | Länge (Anzahl der Wörter, Little Endian Format) | 0x02 00 | ||
| Path | Padded EPATH | Klassen-ID: 0xF6 (Ethernet Link Object)Instanz-ID: 0x1 | 0x20 F6 2 4 01 | ||
| 5 | Get / Set | Interface Configuration | STRUCT of | TCP/IP-Schnittstellen-Konfiguration | |
| IP Address | UDINT | IP-Adresse | 192.168.1.250 | ||
| Network Mask | UDINT | Netzwerk-Maske | 255.255.255.0 | ||
| Gateway Address | UDINT | Gateway-Adresse | 0.0.0.0 | ||
| Name Server | UDINT | Primärer Name Server | 0.0.0.0 | ||
| Name Server 2 | UDINT | Sekundärer Name Server | 0.0.0.0 | ||
| Domain Name | STRING | Default Domänen-Name | 0 | ||
| 6 | Get / Set | Host Name | STRING | Host-Name0: nicht konfiguriert | 0 |
| 8 | Get | TTL Value | UINT | TTL-Wert | 1 |
| 9 | Get / Set | Mcast Config | UINT | Mcast-Konfiguration | 0 |
| 10 | Get / Set | Select Acd | BOOL | ACD-Aktivierung / Deaktivierung0: deaktiviert1: aktiviert | 1 |
| 11 | Get / Set | Last conflict detected | STRUCT of | Letzter erkannter Konflikt | 0 |
| AcdActivity | USINT | Zustand der ACD-Aktivität bei dem zuletzt erkannten Konflikt0: Noconflictdetected1: Probelpv4 Address2: Ongoing Detection3: SemiActiveprobe | |||
| Remote MAC | ARRAY(6) of USINT | MAC-Adresse des Remote-Knotens der ARP PDU, in dem der Konflikt erkannt wurde | |||
| ArpPdu | ARRAY(28) of USINT | Kopie der Daten der ARP PDU, in welcher der Konflikt erkannt wurde | |||
| 13 | Get / Set | Encapsulation Inactivity Timeout | UINT | Inaktivität, bevor die TCP-Verbindung beendet wird (in Sekunden) | 120 |
Dienste
| Code | Dienst | Klasse | Instanz | Beschreibung |
| 0x01 | Get Attribute All | nein | ja | Alle Attribute lesen |
| 0x0E | Get Attribute Single | ja | ja | Einzelnes Attribut lesen |
| 0x10 | Set Attribute Single | nein | ja | Einzelnes Attribut schreiben |
11.2.4.11 Ethernet Link Object (Class Code: 0xF6)
Klassenattribute
| Attr. ID | Zugriff | Name | Datentyp | Beschreibung | Wert |
| 1 | Get | Revision | UINT | Revision des Objekts | 4 |
| 2 | Get | Max. Instance | UINT | max. Anzahl der Instanzen des Objekts | 2 |
| 3 | Get | Number of Instances | UINT | Anzahl der Instanzen | 2 |
| 6 | Get | Max. ID Number Class Attributes | UINT | max. ID-Nummer eines Klassenattributs | 7 |
| 7 | Get | Max. ID Number Instance Attribute | UINT | max. ID-Nummer des Instanzattributs | 768 |
Instanzattribute
| Attr. ID | Zugriff | Name | Datentyp | Beschreibung | Default |
| 1 | Get | Interface Speed | UDINT | Aktuelle Übertragungsrate• 10: 10 Mbit/s• 100: 100 Mbit/s | 100 |
| 2 | Get | Interface Status Flag | DWORD | Schnittstellen-Status-Flags• Bit 0: Link Status• Bit 1: Half/Full Duplex• Bit 2...4: Verhandlungsstatus• Bit 5: Manuelle Änderung erfordert Reset• Bit 6: Lokaler Hardware-Fehler• Bit 7...31: reserviert | 0x20 |
| 3 | Get | Physical Address | ARRAY(6) of USINT | MAC-Adresse | |
| 4 | Get | Interface Counters | STRUCT(11) of UDINT | Schnittstellen-spezifischer Zähler | |
| 5 | Get | Media Counters | STRUCT(12) of UDINT | Medien-spezifischer Zähler | |
| 6 | Get / Set | Interface Control | STRUCT of | Schnittstellen-Steuerung | |
| • Interface Settings | DWORD | Einstellungen Bit 0:• 0: Auto-Negotiation ein• 1: Auto-Negotiation ausBit 1:• 0: Half Duplex• 1: Full Duplex | 0 | ||
| • Interface Speed | UINT | Überragungsrate• 10: 10 Mbit/s• 100: 100 Mbit/s | |||
| 7 | Get | Interface Type | USINT | • 0: unbekannt• 1: Interne Schnittstelle• 2: Twisted Pair• 3: Optical Fiber | 2 |
| 8 | Get | Interface State | USINT | Aktueller Zustand der Schnittstelle• 0: unbekannt• 1: aktiv; sende- und empfangsbereit• 2: inaktiv• 3: Testmodus | 0 |
| 9 | Get / Set | Admin State | USINT | Steuerung des Zugriffs auf Schnittstelle1: aktivieren2: Deaktivieren | 1 |
| 10 | Get | Interface Label | SHORT_STRING | Schnittstellen-Kennzeichner | X21(Instanz 1)X22(Instanz 2) |
| 11 | Get | Interface Capability | STRUCT of | Schnittstellen-Fähigkeit | |
| Interface Speed | DWORD | Übertragungsrate10: 10 Mbit/s100: 100 Mbit/s | |||
| Interface Duplex Mode | DWORD | Duplex ModeHD: Half DuplexFD: Full Duplex | |||
| 768 | Get / Set | MDIX | USINT | MDIX-Konfiguration1: MDIX_AUTO2: MDIX_MDI3: MDIX_MDIX | 1 |
Dienste
| Code | Dienst | Klasse | Instanz | Beschreibung |
| 0x01 | Get Attribute All | nein | ja | Alle Attribute lesen |
| 0x0E | Get Attribute Single | ja | ja | Einzelnes Attribut lesen |
| 0x10 | Set Attribute Single | nein | ja | Einzelnes Attribut schreiben |