AL1921 - Industrieautomatisierung IFM - Kostenlose Bedienungsanleitung
Finden Sie kostenlos die Bedienungsanleitung des Geräts AL1921 IFM als PDF.
| Produkttyp | IO-Link Master mit EtherNet/IP-Schnittstelle |
| Modell | AL1921 (CabinetLine) |
| Marke | IFM electronic |
| Abmessungen (ca.) | Schaltschrankmodul, Hutschiene 35 mm, typische Bauform |
| Gewicht (ca.) | ca. 200 g |
| Spannungsversorgung | 24 V DC (20…30 V) SELV/PELV, über Port X31 |
| Leistungsaufnahme | max. 4 A (pro Port Class A) |
| Anzahl IO-Link-Ports | 8 Ports (Class A), X01…X08 |
| IO-Link Revision | 1.0 und 1.1 |
| Feldbus | EtherNet/IP, 2-Port-Switch, min. Zykluszeit 1 ms |
| IoT-Schnittstelle | ifm IoT-Core mit REST API, HTTP(S), MQTT, WebSocket |
| Digitale Eingänge | 8 (Pin 2 jedes Ports, Typ 2 nach EN 61131-2) |
| Optische Signalisierung | LEDs: Status (RDY), Netzwerk (NET), Ethernet (LNK/ACT), Spannung (PWR), IoT, Portstatus |
| Schutzart | IP 20 (nur Schaltschrank) |
| Umgebungstemperatur | 0…55 °C (Betrieb) |
| Montage | 35 mm DIN-Hutschiene, senkrecht |
| Anschlüsse | RJ45 (Ethernet, IoT), Push-in-Klemmen (Power, IO-Link) |
| Konfiguration | ifm moneo|configure, IoT-Core Visualizer, EtherNet/IP-Projektierungssoftware |
| Sicherheit | Sicherheitsmodus mit Passwortschutz und TLS-Verschlüsselung, Cyber-Sicherheitshinweise |
| Firmware-Update | über ifm moneo|configure oder REST API (Datei .bin) |
| Reinigung | Gehäuseoberfläche mit trockenem Tuch reinigen |
| Zubehör (nicht im Lieferumfang) | Parametriersoftware ifm moneo, IODD-Dateien, Kabel (AWG 26…12) |
Häufig gestellte Fragen - AL1921 IFM
Benutzerfragen zu AL1921 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 Industrieautomatisierung kostenlos im PDF-Format! Finden Sie Ihr Handbuch AL1921 - 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. AL1921 von der Marke IFM.
BEDIENUNGSANLEITUNG AL1921 IFM
IO-Link Master mit EtherNet/IP-Schnittstelle
CabinetLine
AL1921
Inhaltsverzeichnis
1 Vorbemerkung 6
1.1 Verwendete Symbole 6
1.2 Warnhinweise 6
1.3 Änderungshistorie 6
2 Sicherheitshinweise 7
2.1 Cyber-Sicherheit 7
2.2 Sicherheitssymbol auf dem Gerät 7
3 Bestimmungsgemäße Verwendung 8
4 Funktion 9
4.1 IO-Link 9
4.1.1 IO-Link Versorgung.... 9
4.2 Parametrierung 9
4.3 EtherNet/IP 9
4.4 ifm IoT-Core 10
4.5 Optische Signalisierung 10
4.6 Digitale Eingänge 10
5 Montage 11
5.1 Gerät montieren 11
6 Elektrischer Anschluss 12
6.1 Überblick.... 12
6.2 Generelle Anschlusshinweise 12
6.2.1 Hinweise zur Verkabelung.... 12
6.3 Ethernet-Ports.... 12
6.4 IoT-Port 13
6.5 IO-Link Ports (Class A) 13
6.5.1 IO-Link Devices (Class A) anschließen 13
6.5.2 IO-Link Devices (Class B) anschließen 14
6.6 Spannungsversorgung 14
7 Bedien- und Anzeigeelemente 16
7.1 LEDs.... 16
7.1.1 Status 16
7.1.2 Ethernet 17
7.1.3 Spannungsversorgung 17
7.1.4 IoT 17
7.1.5 IO-Link Ports (Class A) 17
8 Inbetriebnahme.... 18
9 Einstellungen 19
9.1 Parametriersoftware 19
9.1.1 Unterstützte Parametriersoftware 19
9.1.2 Erste Schritte 19
9.1.3 IoT: IP-Einstellungen konfigurieren 20
9.1.4 IoT: Zugriffsrechte konfigurieren 20
9.1.5 IoT: Schnittstelle zu Monitoring-Software konfigurieren.... 21
9.1.6 IoT: Sicherheitsmodus konfigurieren.... 22
9.1.6.1 Sicherheitsmodus aktivieren 23
9.1.6.2 Sicherheitsmodus deaktivieren 23
9.1.7 Fieldbus: EtherNet/IP-Schnittstelle konfigurieren 23
9.1.8 Fieldbus: EtherNet/IP-Konfigurationsmodus einstellen 24
9.1.9 Ports: Betriebsart Pin 4 (US) einstellen....25
9.1.10 Ports: Gerätevalidierung und Datenspeicherung einstellen.... 26
9.1.11 Ports: Zykluszeit einstellen 27
9.1.12 Ports: Rückfallwerte einstellen 28
9.1.13 Ports: Datenübertragung zu Monitoring-Software einstellen 28
9.1.14 Info: Geräteinformationen lesen 29
9.1.15 Firmware: Firmware-Version anzeigen 29
9.1.16 Firmware: Firmware aktualisieren 29
9.1.17 Firmware: Gerät zurücksetzen 30
9.1.18 Firmware: Gerät neu starten 30
9.1.19 IO-Link Devices parametrieren 30
9.2 ifm IoT-Core REST API 32
9.2.1 ifm IoT-Core: Allgemeine Informationen 32
9.2.1.1 Auf den ifm IoT Core zugreifen 32
9.2.2 Erste Schritte 35
9.2.3 Allgemeine Funktionen 35
9.2.3.1 Beispiel: Eigenschaften eines Elements lesen 35
9.2.3.2 Beispiel: Teilbaum ausgeben 37
9.2.3.3 Beispiel: Einen Parameterwert ändern 39
9.2.3.4 Beispiel: Mehrere Elemente sequenziell lesen 40
9.2.3.5 Beispiel: Gerätebeschreibung durchsuchen 41
9.2.4 IoT: Zugriffsrechte konfigurieren 41
9.2.5 IoT: IP-Einstellungen konfigurieren 42
9.2.6 IoT: Sicherheitsmodus konfigurieren 42
9.2.6.1 Beispiel: Sicherheitsmodus aktivieren 43
9.2.6.2 Beispiel: Anfrage mit Authentifikation 44
9.2.6.3 Beispiel: Passwort zurücksetzen.... 44
9.2.7 IoT: Schnittstelle zur Monitoring-Software einstellen 45
9.2.8 Fieldbus: EtherNet/IP-Schnittstelle konfigurieren 45
9.2.9 Fieldbus: EtherNet/IP-Konfigurationsmodus einstellen 46
9.2.10 Fieldbus: Rückfallwerte der Ausgänge einstellen 46
9.2.11 Ports: Betriebsart Pin 4 (US) einstellen.... 47
9.2.12 Ports: Gerätevalidierung und Datenspeicherung konfigurieren 47
9.2.12.1 Beispiel: Datenspeicher eines IO-Link Ports klonen 48
9.2.13 Ports: Datenübertragung zu Monitoring-Software einstellen 50
9.2.14 Ports: Prozessdaten lesen / schreiben 50
9.2.14.1 Beispiel: IO-Link Prozesswert lesen (Betriebsart "IO-Link"). 51
9.2.14.2 Beispiel: IO-Link Prozesswert schreiben (Betriebsart "IO-Link") 51
9.2.14.3 Beispiel: Digitalen Eingangswert lesen (Betriebsart "DI") 52
9.2.14.4 Beispiel: Digitalen Ausgangswert schreiben (Betriebsart "DO"). 52
9.2.16 Timer: Zeitgeber konfigurieren 53
9.2.16.1 Zählintervall einstellen.... 54
9.2.17 IO-Link Devices: Auf Parameter zugreifen 54
9.2.17.1 Beispiel: Parameterwert eines IO-Link Devices lesen 55
9.2.17.2 Beispiel: Parameterwert eines IO-Link Devices schreiben.... 55
9.2.18 IO-Link Devices: Geräteinformationen lesen und schreiben 56
9.2.19 IO-Link Devices: IO-Link Events lesen 56
9.2.20 Gateway: Anwendungskennung einstellen 57
9.2.21 Gateway: Firmware aktualisieren 57
9.2.22 Gateway: Zustands- und Diagnoseinformationen lesen 58
9.2.23 Gateway: Geräteinformationen lesen 58
9.2.24 Gateway: Gerät zurücksetzen, neu starten und lokalisieren 58
9.2.25 Benachrichtigungen 59
9.2.25.1 Ereignisgesteuerte Benachrichtigungen 59
9.2.25.2 Zeitgesteuerte Benachrichtigungen.... 59
9.2.25.3 Beispiel: Benachrichtigung abonnieren 60
9.2.25.4 Beispiel: Benachrichtigung ändern 61
9.2.25.5 Beispiel: Benachrichtigung im CSV-Format abonnieren 61
9.2.25.6 Beispiel: Benachrichtigung abmelden 62
9.2.25.7 Beispiel: Benachrichtigung prüfen 62
9.2.25.8 MQTT-Unterstützung 63
9.2.25.9 WebSocket-Untertsützung 67
9.3 IoT-Core Visualizer 69
9.3.1 IoT-Core Visualizer starten 69
9.3.2 Benachrichtigungen verwalten 70
9.3.2.1 Neue Benachrichtigung erstellen.... 70
9.3.2.2 Benachrichtigung löschen 70
9.3.3 Elemente des IoT Core suchen.... 72
9.3.4 IO-Link Master konfigurieren....73
9.3.5 Auf Prozessdaten zugreifen 74
9.3.6 Firmware aktualisieren 75
9.4 EtherNet/IP 76
9.4.1 Hinweis: Startup Packages 76
9.4.2 Gerät in Projekt einbinden.... 76
9.4.2.1 Top-Down Mode 76
9.4.2.2 Independent Mode 78
9.4.3 Auf Prozessdaten zugreifen 80
9.4.4 Auf Diagnose- und Statusinformationen zugreifen 80
9.4.5 Auf IO-Link Devices zugreifen.... 81
9.4.6 Auf IO-Link Events zugreifen.... 81
9.4.7 Azyklische Dienste nutzen 82
9.4.7.1 Azyklischer Kommandokanal nutzen....82
9.4.7.2 Azyklische Port-Kommandos 83
9.4.7.3 EtherNet/IP-Mechanismen für azyklische Kommandos....83
10 Wartung, Instandsetzung und Entsorgung 84
10.1 Gehäuseoberfläche reinigen 84
10.2 Firmware aktualisieren 84
11 Anhang 85
11.1 ifm IoT Core 85
11.1.1 Profile 85
11.1.2 Typen 85
11.1.3 Dienste 86
11.1.3.1 Dienst: factoryreset 86
11.1.3.2 Dienst: getsubscriberlist 86
11.1.3.3 Dienst: getsubscriptioninfo 86
11.1.3.4 Dienst: getblobdata....86
11.1.3.5 Dienst: getdata 87
11.1.3.6 Dienst: getdatamulti 87
11.1.3.7 Dienst: getelementinfo 87
11.1.3.8 Dienst: getidentity 88
11.1.3.9 Dienst: gettree.... 88
11.1.3.10 Dienst: install.... 89
11.1.3.11 Dienst: iolreadacyclic 89
11.1.3.12 Dienst: iolwriteacyclic 89
11.1.3.13 Dienst: querytree....90
11.1.3.14 Dienst: reboot 90
11.1.3.15 Dienst: reset 90
11.1.3.16 Dienst: setblock....90
11.1.3.17 Dienst: setdata 91
11.1.3.18 Dienst: signal 91
11.1.3.19 Dienst: start.... 91
11.1.3.20 Dienst: start_stream_set....91
11.1.3.21 Dienst: stop....91
11.1.3.22 Dienst: stream_set 92
11.1.3.23 Dienst: subscribe 92
11.1.3.24 Dienst: unsubscribe....93
11.1.3.25 Dienst: validation_useconnecteddevice....93
11.2 EtherNet/IP 94
11.2.1 Parameter....94
11.2.2 Zyklische Daten 97
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)....118
11.2.4.5 Assembly Object (Class Code: 0x04) .....119
11.2.4.6 Connection Manager Object (Class Code: 0x06) .....120
11.2.4.7 Device Level Ring Object (Class Code: 0x47)....121
11.2.4.8 Quality Of Service Object (Class Code: 0x48). 122
11.2.4.9 IO-Link Request Object (Class Code: 0x80) .....123
11.2.4.10 TCP/IP Object (Class Code: 0xF5) .....130
11.2.4.11 Ethernet Link Object (Class Code: 0xF6) .....132
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 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.2 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.3 Änderungshistorie
| Ausgabe Thema Datum | |
| 00 Neuerstellung des Dokuments 11 / 2023 |
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 EtherNet/IP-Steuerungssystem
Das Gerät ist als Schaltschrankmodul für den 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)
- 8 IO-Link Ports (Class A) für den Anschluss von IO-Link Devices
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 OS + ifm moneo|configure
- ifm moneo|configure free
- ifm IoT-Core
- ifm IoT-Core Visualizer
- EtherNet/IP
– Projektierungssoftware
4.3 EtherNet/IP
Das Gerät unterstützt folgende EtherNet/IP-Funktionen:
• Geräteprofil: EtherNet/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.4 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.5 Optische Signalisierung
Das Gerät verfügt über folgende optische Anzeigen:
- Status- und Fehleranzeige des Gateways und des Systems
- Status- und Aktivitätsanzeige der Ethernet-Verbindung
- Statusanzeige der Spannungsversorgung
- Status-, Fehler- und Kurzschluss-/Überlastanzeige der Sensor-Ports
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 Gerät montieren

▶ Anlage vor Montage spannungsfrei schalten.
Das Gerät nur an einer geerdeten Tragschiene montieren.
Gerät in Schaltschrank einbauen (Mindestschutzart: IP 20). Der Schaltschrank sollte in Übereinstimmung mit den Vorschriften der lokalen und nationalen Bestimmungen installiert werden.
Das Gerät senkrecht auf eine 35 mm DIN-Profilschiene montieren.
Ausreichend Platz zu Boden und Deckel des Schaltschranks sowie zu benachbarten Geräten lassen, um Luftzirkulation zu ermöglichen und unzulässige Erwärmung zu vermeiden.
6 Elektrischer Anschluss
6.1 Überblick

X21 Ethernet-Port 1 (EtherNet/IP)
X22: Ethernet-Port 2 (EtherNet/IP)
X23: IoT-Port
X31: Power - Spannungsversorgung
6.2 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.2.1 Hinweise zur Verkabelung
Für UL-Anwendungen:
Für den Anschluss des IO-Link Masters und der IO-Link Devices nur Kabel im Bereich AWG 26 bis 12 mit einer Mindesttemperatur von 75 °C verwenden.
6.3 Ethernet-Ports
Über die Ethernet-Ports wird das Gerät mit dem EtherNet/IP-Netzwerk verbunden (z. B. EtherNet/IP-Steuerung, zusätzliches EtherNet/IP-Gerät).
Anschlussbelegung:

1: TX + 5: nicht belegt
2: TX - 6: RX -
3: RX + 7: nicht belegt
4: nicht belegt 8: nicht belegt
▶ Gerät über die Ports X21, X22 mit dem EtherNet/IP-Netzwerk verbinden.
Für den Anschluss eine RJ45-Steckverbindung verwenden (min. Schutzart: IP 20).
6.4 IoT-Port
Über den IoT-Port wird das Gerät mit einem IT-Netzwerk verbunden (z. B. Laptop mit ifm moneo|configure oder IoT-fähigen Software).
Anschlussbelegung:

1: TX + 5: nicht belegt
2: TX - 6: RX -
3: RX + 7: nicht belegt
4: nicht belegt 8: nicht belegt
Das Gerät über Port X23 mit dem IT-Netzwerk verbinden.
▶ Für den Anschluss eine RJ45-Steckverbindung verwenden (min. Schutzart: IP 20).
Über die IO-Link Ports werden IO-Link Devices (Sensoren, Aktuatoren) an das Gerät angeschlossen.
Die IO-Link Ports X01...X08 erfüllen die Anforderungen der IO-Link Spezifikation 1.0 bis 1.1.2.

VORSICHT
Zuführung von Energie in die IO-Link Ports
▷ Brandgefahr
Ein- und Rückspeisung von Energie in die IO-Link Ports verhinden.
▶ Vor Inbetriebnahme den korrekten Anschluss der Versorgungsverbindungen prüfen.
6.5.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.
• Die Ports X01...X08 verfügen über einen zusätzlichen digitalen Eingang (Typ 2, gemäß IEC 61131-2). Die angeschlossene Elektronik muss dafür elektrisch ausgelegt sein.
Anschlussbelegung:

4 3 2 1
1: Sensorversorgung (US) L+
2: Digitaler Eingang (DI)
3: Sensorversorgung (US) L-
4: C/Q IO-Link
IO-Link Devices mit Ports X01...X08 verbinden. Maximale Leitungslänge pro Port: 20 m.
Für den Anschluss nur Kabel verwenden mit der Mindestschutzart IP 20.
6.5.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. Max. Stromstärke für UA: 4 A
- Beim Anschluss eines IO-Link Devices (Class B) ist der zusätzliche digitale Eingang (Klemme 2) nicht verfügbar.

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.
Anschlussbild:

1: IO-Link Master
2: IO-Link Device
Anschlussbelegung:

4 3 2 1
1: Sensorversorgung (US) L+
2: nicht belegt
3: Sensorversorgung (US) L-
4: C/Q IO-Link
▶ IO-Link Devices mit Ports X01...X08 verbinden. Maximale Leitungslänge pro Port: 20 m.
▶ IO-Link Devices anschließen an UA mit 24 V DC (20...30 V SELV/PELV).
Für den Anschluss nur Kabel verwenden mit der Mindestschutzart IP 20.
6.6 Spannungsversorgung
Über den Power-Port wird das Gerät an die Spannungsversorgung angeschlossen.

4 3 2 1
1: GND (US
2: GND (US)
3: + 24 V DC
4: + 24 V DC
▶ Anlage spannungsfrei schalten!
Gerät über Port X31 anschließen an 24 V DC (20...30 V SELV/PELV).
Für den Anschluss nur Kabel verwenden mit der Mindestschutzart IP 20.

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

| LED Beschreibung Farbe Zustand Beschreibung | |||
| RDY Gateway-Status grün aus Gateway: nicht aktiv | oder startet neu | ||
| blinkt (5 Hz) Gateway | Fehler | ||
| blinkt (200 ms ein, 800 ms aus) | Gateway: Firmware-Update läuft | ||
| ein Gateway: OK | |||
| NET Netzwerk-Status (Network Status) | grün / rot aus Network: keine Spannung anliegend oder Spannung anliegend, aber IP-Adresse noch nicht konfiguriert | ||
| grün / rot aus Module: keine Spannung anliegend oder anliegen-de Spannung zu niedrig | |||
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 Spannungsversorgung
| LED Beschreibung Farbe Zustand Beschreibung | |||
| PWR Status der Spannungsversorgung | grün aus | keine | Versorgungsspannung anliegend oder anliegende Versorgungsspannung zu niedrig |
| ein | Versorgungsspannung US liegt an | ||
7.1.4 IoT
| LED Beschreibung Farbe Zustand Beschreibung | ||||
| LNK Status der Verbindung grün aus | keine Ethernet-Verbindung | |||
| 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 | |||
| LED Beschreibung Farbe Zustand Beschreibung | ||||
| e | 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: keine 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 | |||
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
Für die Parametrierung des IO-Link Masters und der angeschlossenen IO-Link Devices wird eine Parametriersoftware benötigt.
Unterstützte Parametriersoftware:
- ifm moneo OS (Art.-Nr. QMS001) + Modullizenz ifm moneo|configure (Art.-Nr. QMP020)
- 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 Parametriersoftware kann für die Parametrierung des Geräts genutzt werden.
9.1.2 Erste Schritte
Voraussetzungen:
√ ifm moneo|configure ist korrekt auf Laptop / PC installiert.
√ ifm moneo|configure ist eingerichtet.
√ Laptop / PC ist direkt oder über ein geeignetes Netzwerkkopplungselement (z. B. Switch) mit dem IoT-Port (X23) des Geräts verbunden.
▶ ifm moneo starten.
▷ Bedienoberfläche erscheint.

▶ Auf Kachel [Geräte konfigurieren] klicken.
▷ Ansicht [Angeschlossene Geräte] erscheint.
▶ Netzwerk nach Geräten scannen.
▷ ifm moneo erkennt den IO-Link Master.
▶ Optional: IP-Einstellungen des IO-Link Masters anpassen.
In der Zeile des IO-Link Masters: Auf Symbol ↗ klicken.
▷ Verbindung zum Gerät wird hergestellt.
▷ Ansicht zeigt den IO-Link Master und die angeschlossenen IO-Link Devices.
In der Zeile des IO-Link Masters: Auf Symbol ✉ klicken.
Editoransicht des IO-Link Masters erscheint.
9.1.3 IoT: 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-Netz-werks | z. B. 255.255.255.0255.255.0.0 (Default) | r w 1\ 2 | |
| Default gateway IP address IP-Adresse des Netzwerk-Gateways z. B. | 192.169.1.10.0.0.0 (Default) | r w 1\ 2 | |
| MAC address MAC-Adresse der IoT-Schnittstelle z. B. 00:02:01:05:66: | C1 ro | 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.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“).
Verfügbare Parameter:
| Parameter Beschreibung Wertebereich Zugriff | ||
| Access rights Zugriffsrechte auf das Gerät • Fieldbus + IoT: | – Feldbus und ifm IoT Core haben Lese- und Schreibrechte auf Parameter und Prozessdaten– Feldbus und ifm IoT Core haben Lese- und Schreibrechte auf Parameter und Prozessdaten• 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 | rw 1 |
1 lesen und schreiben
Bei der Parametrierung der Zugriffsrechte in der Parametriersoftware folgende Hinweise beachten:
- Wenn die Zugriffsrechte in Feldbus-Projektierungssoftware und Parametriersoftware auf den Wert [Fieldbus + IoT] eingestellt sind, dann gelten immer die feldbusseitig eingestellten Parameterwerte.
- Für einen exklusiven Zugriff auf das Gerät über die Parametriersoftware die Zugriffsrechte auf den Wert [IoT only] setzen und in der Feldbus-Projektierungssoftware die Zugriffsrechte auf [Keep settings] setzen.
- Wenn die Zugriffsrechte in der Parametriersoftware auf den Wert [Fieldbus + IoT (read only)] eingestellt sind, dann können die Zugriffsrechte in der Parametriersoftware nicht mehr geändert werden. Um mit der Parametriersoftware 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.5 IoT: Schnittstelle zu Monitoring-Software konfigurieren
Für die optionale Übertragung der Prozessdaten an eine Monitoring-Software muss die Schnittstelle entsprechend konfiguriert werden.
Verfügbare Parameter:
| Parameter Beschreibung Wertebereich Zugriff | |||
| IP address Moneo, LR Agent or SMARTOBSERVER | IP-Adresse von moneo, LR AGENT oder LR SMARTOBSERVER | • 0.0.0.0...• 255.255.255.255 (Default) | r w 1 |
| Port Moneo, LR Agent or SMARTOBSERVER | Nummer des Ports von moneo, LR AGENT oder LR SMARTOBSERVER, an den die Prozessdaten gesendet werden | 0...35100 (Default)...65535 | rw1 |
| Interval Moneo, LR Agent or SMARTOBSERVER | Zykluszeit für die Übertragung der Prozessdaten zu moneo, LR AGENT oder LR SMARTOBSERVER (Wert in ms) | Off: keine Übertragung (Default)500: 500 ms...2147483647: 2147483647 ms | rw1 |
| Application Tag Quellenbezeichner des IO-Link Masters in der Struktur des LR AGENT oder LRSMARTOBSERVER (String32) | z. B. "factory 2 plant 1" rw | 1 | |
1 lesen und schreiben

Nach einer Änderung der Parameter [IP address Moneo, LR Agent or SMARTOBSERVER] oder [Application Tag] kann es bis zu 120 Sekunden dauern, bis das Gerät erneut eine TCP-Verbindung aufbaut.
Um die Verzögerung zu vermeiden:
▶ Gerät neu starten.
Voraussetzungen:
√ Parametriersoftware ist gestartet.
√ Verbindung zum Gerät ist hergestellt.
▶ Menü [IoT] wählen.
▷ Menüseite zeigt aktuelle Einstellungen.
▶ Schnittstelle konfigurieren.
- Änderungen auf dem Gerät speichern.
▷ Schnittstelle zur Monitoring-Software ist eingestellt.
9.1.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.
Der Sicherheitsmodus kann aktiviert werden, ohne gleichzeitig das Password zu setzen. Beim nächsten Zugriff auf das Gerät verlangt das Konfigurationstool das Setzen des Passworts.
Nach der Eingabe des korrekten Passworts kann der Nutzer uneingeschränkt auf den IO-Link Master und die angeschlossenen IO-Link Devices zugreifen. Das Passwort wird erneut abgefragt, wenn die aktuelle Sitzung der Parametriersoftware beendet wurde (z. B. nach einem Neustart).
Verfügbare Parameter:
| Parameter Beschreibung Wertebereich Zugriff | ||
| Security mode HTTPS Sicherheitsmodus aktivieren oder de-aktivieren | • Disabled: Sicherheitsmodus deaktiviert• Enabled: Sicherheitsmodus aktiviert | r w 1 |
| Security password Passwort für AuthentifizierungHinweis: Das gesetzte Passwort wird nicht angezeigt | wo2 |
1 lesen und schreiben
2 nur schreiben
9.1.6.1 Sicherheitsmodus aktivieren
Um den Sicherheitsmodus zu aktivieren:
Voraussetzungen:
√ Parametriersoftware ist gestartet.
√ Verbindung zum Gerät ist hergestellt.
√ Detailansicht des Geräts ist aktiv.
√ Sicherheitsmodus ist deaktiviert.
▶ Menü [IoT] wählen.
▷ Menüseite zeigt aktuelle Einstellungen.
▶ Sicherheitsmodus aktivieren.
▶ Optional: Passwort setzen.
▷ Sicherheitsmodus ist aktiv.
- Änderungen auf dem Gerät speichern.
9.1.6.2 Sicherheitsmodus deaktivieren
Um den Sicherheitsmodus zu deaktivieren:
Voraussetzungen:
√ Parametriersoftware ist gestartet.
√ Verbindung zum Gerät ist hergestellt.
√ Sicherheitsmodus ist aktiv.
▶ Detailansicht des Geräts aufrufen.
▷ Parametriersoftware fordert die Eingabe des Passworts.
▶ Passwort eingeben und Eingabe bestätigen.
▷ Parametriersoftware hat Zugriff auf Einstellungen.
▶ Menü [IoT] wählen.
▷ Menüseite zeigt aktuelle Einstellungen.
▶ Sicherheitsmodus deaktivieren.
▶ Geänderte Werte auf das Gerät schreiben.
▷ Sicherheitsmodus ist deaktiviert.
9.1.7 Fieldbus: EtherNet/IP-Schnittstelle konfigurieren
Für die Kommunikation mit dem EtherNet/IP-Netzwerk müssen die IP-Parameter der EtherNet/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 eingestelltDHCP: IP-Parameter werden von einem DHCP-Server im Netzwerk eingestelltBOOTP: IP-Parameter werden über Bootstrap Protocol (BOOTP) eingestellt | rw1 | |
| IP address IP-Adresse der EtherNet/IP-Schnittstelle | z. B. 192.168.82.100192.168.1.250 (Default) | rw1 | |
| Subnet mask Subnetzmaske des EtherNet/IP-Netzwerks | z. B. 255.255.0.0• 255.255.255.0 (Default) | rw1 | |
| Default gateway IP address IP-Adresse des Netzwerk-Gateways z. B. | 192.168.82.1• 0.0.0.0 (Default) | rw1 | |
| Hostname EtherNet/IP-Name des Geräts (max. 240 Zeichen) | z. B. iol12.plant1 rw | 1 | |
| MAC address MAC-Adresse der EtherNet/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 (EtherNet/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 EtherNet/IP-Schnittstelle einstellen.
- Änderungen auf dem Gerät speichern.
▷ IP-Einstellungen der Schnittstelle sind konfiguriert.
9.1.8 Fieldbus: EtherNet/IP-Konfigurationsmodus einstellen
Das Gerät unterstützt die EtherNet/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 | EtherNet/IP-Konfigurationsmodus | • Independent mode off: Konfiguration über Feldbus-SPS• Independent mode on: Konfiguration über Gerät | r w 12 |
| Parameter Beschreibung Wertebereich Zugriff | |||
| Process data mode Explicit PD Mode aktivieren / deaktivieren und die zu übertragenden Prozessdaten wählen (Verbindungstyp) | • Explicit process data mode off: Explicit PD Mode deaktiviert• Explicit process data mode with IO-Link I/O + Acyclic + Diag: Explicit PD Mode aktiviert -- IO-Link Ein-/Ausgänge, Azyklische Daten und Diagnosedaten werden übertragen• Explicit process data mode with IO-Link I/O + Acyclic: Explicit PD Mode aktiviert -- IO-Link Ein-/Ausgänge und azyklische Daten werden übertragen• Explicit process data mode with IO-Link I/O: Explicit PD Mode aktiviert -- IO-Link Ein-/Ausgänge werden übertragen | rw13 | |
| 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 Parameter nur änderbar, wenn keine Verbindung zu Feldbus-Steuerung aktiv ist
3 Parameter nur änderbar im Konfigurationsmodus "Independent"
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.
▷ EtherNet/IP-Konfigurationsmodus ist eingestellt.
9.1.9 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).
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.10 Ports: 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 | n 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 Val | dierung der angeschlossenen IO-Link Devices und automatische Wiederherstellung der Parametersätze des IO-Link Devices | No check and clearType compatible V1.0 deviceType compatible V1.1 deviceType compatible V1.1 device with Backup + RestoreType compatible V1.1 device with Restore | r w12 |
| Vendor ID Hersteller-ID des I | O-Link Devices, gegen die validiert werden soll | z. B. 310: ifm electronic gmbh rw | 12 |
| Device ID Geräte-ID des IO-L | ink 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.11 Ports: 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 12 | |
| Cycle time preset Zykluszeit zwischen IO-Link Master und IO-Link Device (Wert in μs) | • 0: bestmögliche Zykluszeit • 1: 1 μs ... • 132800: 132800 μs | rw 32 | |
| Bitrate Übertragungsrate zwischen IO-Link Master und IO-Link Device | • COM1: 4,8k Baud • COM2: 38,4 kBaud • COM3: 230,4 kBaud | ro 12 |
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.12 Ports: 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 EtherNet/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: DefaultwertOld: letzter aktiver ProzesswertSet: HIGH-Pegel | r w12 |
| Fail-safe IO-Link Rückfallwert des Ausgangs für Betriebsart "IO-Link" | Off: Fail-safe deaktiviertReset: Fail-safe aktiviert – DefaultwertOld: Fail-safe aktiviert - letzter aktiver ProzesswertPattern: Fail-safe aktiviert - Bytefolge | r w12 |
1 lesen und schreiben
2 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.13 Ports: Datenübertragung zu Monitoring-Software einstellen
Verfügbare Parameter:
| Name Beschreibung Wertebereich Zugriff | |||
| Transmission to Moneo, 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.
▶ 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.14 Info: Geräteinformationen lesen
Verfügbare Informationen:
| Name Beschreibung Wertebereich Zugriff | ||
| Product code Artikelnummer AL1921 ro | 1 | |
| Device family Gerätefamilie IO-Link Master ro | 1 | |
| Vendor Hersteller ifm electronic ro | 1 | |
| SW-Revision Firmware-Version z. B. AL1x2x_cn_ei_v3.1.95 ro | 1 | |
| HW-Revision | Hardware-Stand | z. B. AA ro 1 |
| Bootloader revision | Bootloader-Version | z. B. AL1xxx_bl_f7_v2.4.1 ro 1 |
| Serial number | Seriennummer | z. B. 000194610104 ro 1 |
| Fieldbus type Feldbus | EtherNet/IP | ro 1 |
1 nur lesen
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 Geräteinformationen.
9.1.15 Firmware: Firmware-Version anzeigen
Verfügbare Parameter:
| Parameter | Beschreibung | Wertebereich | Zugriff |
| Version | Firmware-Version z. B. AL1x2x_cn_ei_v3.1.95 ro | ro | 1 |
1 nur lesen
Voraussetzungen:
√ Parametriersoftware ist gestartet.
√ Verbindung zum Gerät ist hergestellt.
√ Detailansicht des Geräts ist aktiv.
▶ Menü [Firmware] wählen.
▷ Menüseite zeigt Firmware-Version.
9.1.16 Firmware: 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.17 Firmware: Gerät 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.18 Firmware: 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.19 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.
GET-Methode
Zugriff: lesend
Syntax der Anfrage (Request):
| Element Beschreibung | |
| ip IP-Adresse der IoT-Schnittstelle | |
| data_point Datenpunkt inkl. Pfad, auf den zugegriffen werden soll | |
| service Dienst, mit dem auf den Datenpunkt zugegriffen werden soll |
Syntax der Antwort (Response):
{
"cid": id,
"data": {"value": resp_data},
"code": diag_code
}
| Feld Element Beschreibung | |
| cid id Correlation ID für die Zuordnung von Anfrage und Antwort | |
| data resp_data Wert des Datenpunkts; abhängig vom Datentyp des Datenpunkts | |
| code diag_code | Diagnosecodes (→ 34) |
Beispiel: GET-Request
Anfrage (Request):
http://192.168.0.250/devicetag/applicationontag/getdata
Antwort (Response):
{
"cid": -1,
"data": {"value":"factory 2 plant 1"},
"code": 200
}
POST-Methode
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 Dienstklasse | request: Anfragetransaction: Transaktionevent: Ereignis | |
| cid id Correlation ID für die paarweise Zuordnung von Anfrage und Rückgabe; vom Nutzer frei zuvergebende Kennung | ||
| adr data_point | Datenpunkt inkl. | Pfad, auf den zugegriffen werden soll |
| service Dienst, mit den Datenpunkt zugegriffen werden soll | ||
| data1 | req_data Daten, die an den ifm IoT Core gesendet werden (z. B. neue Werte); Syntax abhängig vom Dienst | |
| auth2 | 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 (→ Diagnosecodes ☐ 34) |
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 | |
| error err_code | Correlation ID für die Zuordnung von Anfrage und Rückgabe (→ Request) |
| gerätespezifischer Fehlercode (→ IO Device Description (IODD) des IO-Link Devices) | |
| code diag_code | Diagnosecode (→ Diagnosecodes ☐ 34) |
Beispiel: POST-Request
Anfrage (Request):
{
"code":"request",
"cid):-1,
"adr":"devicetag/applicationtag/getdata"
}
Antwort (Response):
{
"cid": -1,
"data": {"value":"Do not use"},
"code": 200
}
Diagnosecodes
| Code Text Beschreibung | |
| 200 OK Anfrage erfolgreich abgearbeitet | |
| 230 OK but needs reboot Anfrage erfolgreich abgearbeitet; Gerät muss neu gestartet werden | |
| 231 OK but block request not finished Anfrage erfolgreich abgearbeitet; blockweise Anfrage aber nicht beendet | |
| 233 IP settings (of IoT-Port) have been updated. Application needs to reload device. Wait at least 1 second before reloading device. | IP-Einstellungen erfolgreich geändert, IO-Link Master wird neu geladen; mind. 1 Sekunde warten |
| 400 Bad request Ungültige Anfrage | |
| 401 Unauthorized Nicht-authorisierte Anfrage | |
| 403 Forb dden Verbotene Anfrage | |
| 500 Internal Server Error Interner Fehler; detailierte Inforrationen im Feld „error“ | |
| 503 Service Unavailable Dienst nicht verfügbar (z. B. IO-Link Port im falschen Betriebsmodus; kein IO-Link Device an IO-Link Port) | |
| 507 Insufficient Storage Interner Speicher für Benachrichtigungen voll (max. 16 kB) | |
| 530 The requested data is invalid Ungültige Prozessdaten | |
| 531 IO-Link Error Fehler in IO-Link Master / IO-Link Device; detailierte Infomrationsen im Feld „error“ | |
| 532 PLC connected Error Fehler beim Schreiben der Daten, da IO-Link Master noch mit Feldbus-SPS verbunden ist | |
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 ☐ 85). 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 (→ 58)
Unterstruktur: iotsetup
Verfügbare Datenpunkte:
| Parameter Beschreibung Wertebereich Zugriff | ||
| ../accessrights Zugriffsrechte auf das Gerät • 0: Fieldbus | + IoT (Default):– Feldbus und ifm IoT Core haben Lese- und Schreibrechte auf Parameter und Prozessdaten– Feldbus und ifm IoT Core haben Lese- und Schreibrechte auf Parameter und Prozessdaten• 1: 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• 3: 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 | rw 1 |
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 ihm 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 / de | aktivie-ren | · 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 |
| ../ipaddress IP-Adresse der IoT-Sch | nittstelle z. B. 192.68.1.100 | · 169.254.x.x (Default) | r w 1 |
| ../subnetmask Subnetzmaske des E | thernet-Netz-werksegments | z. B. 255.255.255.0 · 255.255.0.0 (Default) | r w 1 |
| ../ipdefaultgateway IP-Adresse des | Netzwerk-Gateways z. B. 192.169.1.1 | · 0.0.0.0 (Default) | r w 1 |
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 ☐ 88) 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 deaktiviert• enabled: Sicherheitsmodus aktiviert | r w 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) rw | 1 | |
| ../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: EtherNet/IP-Schnittstelle konfigurieren
Für die Kommunikation mit dem EtherNet/IP-Netzwerk muss die EtherNet/IP-Schnittstelle konfiguriert werden.
Unterstruktur: fieldbussetup
Verfügbare Datenpunkte:
| Name Beschreibung Werte | Zugriff | ||
| ../network/dhcp Status des DHCP-Clients • 0: Statische IP-Adresse | • 1: DHCP (Dynamic Host Configuration Protocol)• 2: BOOTP (Bootstrap Protocol) | rw1 | |
| ../network/ipaddress IP-Adresse der Ethernet-Schnittstelle z. B. 192.200.0.100• 192.168.1.250 (Default) | rw12 | ||
| ../network/subnetmask | Subnetzmaske des Netzwerksegments | z. B. 255.255.192.0• 255.255.255.0 (Default) | rw12 |
| ../network/ipdefaultgateway | IP-Adresse des Netzwerk-Gateways | z. B. 192.200.63.1• 0.0.0.0 (Default) | rw12 |
| ../network/macaddress | MAC-Adresse der Ethernet-Schnittstelle | z. B. 00:02:01:0E:10:7C | ro3 |
| ../hostname | EtherNet/IP-Hostname | z. B. alxx2x | rw1 |
| ../fieldbusfirmware | Feldbus-Firmware | z. B. 5.3.0.10 (EtherNet/IP Adapter) | ro3 |
| ../connectionstatus | Status der Feldbusverbindung | • 0: Nicht verbunden• 1: Verbunden | ro3 |
1 lesen und schreiben
2 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: EtherNet/IP-Konfigurationsmodus einstellen
Das Gerät unterstützt die EtherNet/IP-Konfigurationsmodi „Top-Down Mode“ und „Independent Mode“.
Unterstruktur: fieldbussetup/configuration
Verfügbare Datenpunkte:
| Name Beschreibung Wertebereich Zugriff | ||
| ../independentmode Konfigurationsmodus • 0: Independent Mode aus | • 1: Independent Mode ein | rw12 |
| ../explicitmodepd Verbidnungstypen (Input Assembly, Output Assembly) | • 0: Explicit Process Data Mode aus• 1: Explicit Process Data Mode mit IO-Link I/O + Acyclic + Diag• 2: Explicit Process Data Mode mit IO-Link I/O + Acyclic• 3: Explicit Process Data Mode mit IO-Link I/O | rw12 |
| ../processdataconfiguration Länge der Prozessdaten • 0: 2 Bytes Input 2 Bytes Output | • 1: 4 Bytes Input 4 Bytes Output• 2: 8 Bytes Input 8 Bytes Output• 3: 16 Bytes Input 16 Bytes Output• 4: 32 Bytes Input 32 Bytes Output | rw12 |
| ../swap Tausch der Bytes in Prozessdaten • 0: aus | • 1: ein | rw12 |
1 lesen und schreiben
2 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 EtherNet/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 |
| ../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 |
1 lesen und schreiben
2 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 deaktiviert• 1: DI - Digitaler Eingang• 2: DO - Digitaler Ausgang• 3: 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 Zykluszeit• 1: 1 μs...• 132800: 132800 μs | ro3 | |
| ../comspeed Aktuelle Übertragungsrate zwischen Port und IO-Link Device | • 0: COM1 - 4,8 kBaud• 1: COM2 - 38,4 kBaud• 2: 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 einstellen• 1: 1 μs...• 132800: 132800 μs | rw12 | |
1 lesen und schreiben
2 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 | n 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 rw | 12 |
| ../validation_deviceid IO-Link | ID des Geräts, das validiert werden soll | 0...16777215 rw | 12 |
| ../datastorage Struktur für Data Storage des Ports - rw | 12 | ||
| ../datastorage/maxsize maximale Größe des Data-Storage-Inhalts (in Bytes) | z. B. 2066: 2066 Bytes ro | 3 | |
| ../datastorage/chunksize Größe eines Datensegments (in Bytes) z. B. 256: | 256 Bytes ro | 3 | |
| ../datastorage/size | Größe der Data-Storage-Inhalts (in Bytes) | z. B. 1024: 2 Bytes | ro3 |
1 lesen und schreiben
2 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 übertragen• 1: 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: OFF | • 1: ON | ro 1 |
| ../iolinkdevice/pdin Eingangsdaten (Pin 4) Betriebsart "DI": | • 0x00: OFF• 0x01: ONBetriebsart "IO-Link":• Prozesswert in Hexadezimaldarstellung | ro 1 |
| ../iolinkdevice/pdout Ausgangsdaten (Pin 4) Betriebsart "DO": | 0x00: OFF0x01: ONBetriebsart "IO-Link":Prozesswert in Hexadezimaldarstellung | r w 23 |
1 nur lesen
2 lesen und schreiben
3 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") (→ 51)
-
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
}
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: 0xYYZZ00• 0xYY: Device Status – Status des IO-Link Devices• 0xZZ: Connection Status – Status der Verbindung | Device Status:• 0x00: Kein IO-Link Device angeschlossen• 0x40: Falsches IO-Link Device angeschlossen• 0x80: IO-Link Device angeschlossen und in Zustand PREOPERATE• 0xFF: IO-Link Device angeschlossen und in Zustand OPERATEConnection Status:• 0x00: Port deaktiviert• 0x01: Port aktiviert, aber kein Gerät angeschlossen• 0x02: Port aktiviert und in Betriebsart „IO-Link“• 0x03: Port aktiviert und in Betriebsart „DI“• 0x04: Port aktiviert und in Betriebsart „DO“• 0x1B: Wiederholungen erkannt• 0x1E: Kurzschluss erkannt an Pin 4• 0x42: Falsche Revision des IO-Link Devices• 0x43: 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 rw | 1 | |
| ../interval Zählintervall (Wert in ms) • 1000: 1000 ms | ...• 86400000: 86400000 ms | rw1 |
| ../interval/unit Einheit des Zählintervalls • ms: Millisekunden ro | 2 |
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 „ParamDownloadStore“ den Parametriervorgang beenden und den Data-Storage-Mechanismus auf dem IO-Link Device aktivieren.
▶ Per ayzklischem ISDU-Schreibzugriff das Objekt SystemCommand (ISDU-Index: 0x0002) auf den Wert 0x05 (Befehl „ParamDownloadStore“) 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 Produktnames 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
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: unbekannt• 0x01: 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: Benachrichtigung• 0x20: Warnung• 0x30: Fehler |
| • Validity | Gültigkeit der Prozessdaten 1 Byte • 0x00: gültig | • 0x40: ungültig |
- Source IO-Link Event Qualifier: Ereignis-Quelle 1 Byte • 0x00: IO-Link Device
- 0xFF: 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 ☐ 69) 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: OK• 1: Fehler | ro 1 |
1 nur lesen
9.2.23 Gateway: Geräteinformationen lesen
Unterstruktur: deviceinfo
Verfügbare Datenpunkte:
| Name | Beschreibung | Wertebereich | Zugriff |
| ../productcode | Artikelnummer | AL1921 | ro 1 |
| ../vendor | Hersteller | ifm electronic | ro 1 |
| ../devicefamily | Gerätefamilie | IO-Link Master | ro 1 |
| ../hwrevision | Hardware-Stand | z. B. AA ro | 1 |
| ../serialnumber Seriennummer | z. B. 0001742 | 10155 ro | 1 |
| ../swrevision | Firmware-Version | z. B. AL1x2x_cn_ei_v3.1.95 | ro 1 |
| ../bootloaderrevision | Bootloader-Version | z. B. AL1xxx_bl_f7_v2.4.1 | ro 1 |
| ../fieldbustype | Feldbus | ethernet/ip | ro 1 |
1 nur lesen
Zusätzliche Informationen über das Geräts können mit dem Dienst getidentity (→ Dienst: getidentity ☐ 88) 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 ☐ 92).
Aktive Benachrichtigungen können mit dem Dienst subscribe geändert werden (→ Dienst: subscribe ☐ 92).
Alle aktiven Benachrichtigungen können mit dem Dienst getsubscriberlist angezeigt werden (→ Dienst: getsubscriberlist 86).
Informationen über eine aktive Benachrichtigung können mit dem Dienst getsubscriptioninfo angezeigt werden (→ Dienst: getsubscriptioninfo □ 86).
Aktive Benachrichtigungen können mit dem Dienst unsubscribe abgemeldet werden (→ Dienst: unsubscribe ☐ 93).
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 (→ 68)
Per MQTT (mqtt://): Beispiel: MQTT-Verbindung konfigurieren und aktivieren (→ 65)
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
}
}
- 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 ☐ 60). 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:
9.2.25.6 Beispiel: Benachrichtigung abmelden
Aufgabe: Das existierende Abonnement Beispiel: Benachrichtigung abonnieren (→ 60) 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 (→ 60) 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.
▶ MQTT-Kommandokanal aktivieren.
▶ MQTT-Kommandokanal konfigurieren.
▶ MQTT-Verbindung konfigurieren.
MQTT-Verbindung ist konfiguriert und aktiviert.
Prüfen, ob der gewünschte Port des MQTT-Brokers offen ist.
MQTT-Verbindung konfigurieren
Das folgende Zustandsdiagramm zeigt den Einfluss der Dienste start, stop und reset auf den aktuellen Zustand einer MQTT-Verbindung:

flowchart
graph TD
A["init"] -->|reset| B(running stopped)
B -->|stop start| C["error"]
C -->|stopstart / rese| B
B -->|stop| A
A -->|start / reset start stop / reset| A
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/mqttConnection
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] – Initialisierung | • stopped: Zustand [stopped] – Verbindung angehalten• running: Zustand [running] – Verbindung läuft• error: Zustand [error] - Fehlerzustand | ro1 |
| ../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) | rw2 |
| ../MQTTSetup/version | MQTT-Version | z. B. 3.1.1 | ro1 |
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.
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 Kan | alzustand • running: Zustand RUN (Defa | ult) ro | 1 |
| ../mqttCmdChannelSetup Unterstruktur für Einstellungen desKommandokanals | -- | ||
| ../mqttCmdChannelSetup/brokerIP | IP-Adresse des MQTT-Brokers z. B. 3.69 | 1.9 rw | 2 |
| ../mqttCmdChannelSetup/broker-Port | Portnummer des MQTT-Brokers z. B. 1883 | rw | 2 |
| ../mqttCmdChannelSetup/cmdTo-pic | Bezeichnung des MQTT-Topics | z. B. myTopic | rw 2 |
| ../mqttCmdChannelSetup/default-ReplyTopic | Standard-Antwort-Topic | z. B. stdTopic | rw 2 |
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:
Prüfen, ob MQTT-Broker erreichbar ist und der Port freigegeben wurde.
▶ QoS-Stufe einstellen
Anfrage (Request):
▶ MQTT-Verbindung aktivieren
Anfrage (Request):
IP-Adresse des MQTT-Brokers einstellen.
Anfrage (Request):
▶ Portnummer des MQTT-Brokers einstellen.
Anfrage (Request):
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: myTopic).
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/myTopic",
"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:
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:
√ Laptop / PC ist direkt oder über ein geeignetes Netzwerkkopplungselement (z. B. Switch) mit dem IoT-Port (X23) des Geräts verbunden.
√ 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 (→ 70)
• [Elements]: Elemente des IoT Core suchen (→ 72)
• [Parameter]: IO-Link Master konfigurieren (→ 73)
• [Processdata]: Auf Prozessdaten zugreifen (→ 74)
- [Update]: Firmware aktualisieren (→ 75)
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.
![00-02-01-0f-c8-92 - online Notification | Elements | Parameter | Processdata | Update | Search for ... identifier getdatamulti profile service type Processdatamaster Deviceinfo Timer[1] Timer[2] lotsetup Fieldbussetup Connections Iolinkmaster Firmware Devicetag ^ 00-02-01-0f-c8-92 getidentity 00-02-01-0f-c8-92/getidentity type: service profiles: undefined Copy URL gettree 00-02-01-0f-c8-92/gettree type: service profiles: undefined Copy URL querytree 00-02-01-0f-c8-92/querytree type: service profiles: undefined Copy URL getsubscriberlist 00-02-01-0f-c8-92/getsubscriberlist type: service profiles: undefined Copy URL](/content/2026/05/895157/images/e179d76d7bad455c62b2cef52255d3864d7b96f9dbf779b914ae52e04e5ada38.jpg)
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.
![00-02-01-01-c8-92 - online Notification | Elements | Parameter | Processdata | Update | Deviceinfo Timer[1] Timer[2] lotsetup Fieldbussetup Connections Iolinkmaster Firmware Devicetag k ^ lotsetup accessrights iot only Type: enum Namespace: json Encoding: integer Valuation: valuelist: 0: fieldbus + iot 1: fieldbus + iot (read- only) 3: iot only Copy URL ^ network macaddress 00:02:01:0F:C8:92 Type: string Namespace: json Encoding: utf-8 Copy URL ipaddress 169.254.1.200 Type: string Namespace: json Encoding: utf-8 Valuation: minlength: 7 maxlength: 15 Copy URL subnetmask 255.255.0.0 Type: string Namespace: json Copy URL](/content/2026/05/895157/images/81e80d9b8600bfade2ad254c1e8d10df6acb54bd9843f9db851ecb0388467ff6.jpg)
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.
![00-02-01-0f-c8-92 - online Notification | Elements | Parameter | Processdata | Update | Polling: Polling interval in seconds: 15 Refresh all Processdatamaster Timer[1] Timer[2] Fieldbussetup Iolinkmaster Port[1] Port[2] Port[3] Port[4] ^ iolinkmaster ^ port[1] portevent 000100 Type: string Namespace: json Encoding: hexstring Copy URL ^ iolinkdevice vendorid Type: number Namespace: json Encoding: integer Valuation: min: 0 max: 65535 Copy URL deviceid Type: number Namespace: json Copy URL](/content/2026/05/895157/images/93b12657ad167a3a6909ce67c4c63fd399e497bea9da57cc763e601a5ad1480e.jpg)
▶ 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 EtherNet/IP
9.4.1 Hinweis: Startup Packages
ifm electronic stellt Startup Packages bereit für die Integration des Geräts in EtherNet/IP-Umgebungen mit Steuerungen verschiedener Hersteller.
Die Startup Packages können kostenlos von der ifm-Webseite heruntergeladen werden: documentation.ifm.com
9.4.2 Gerät in Projekt einbinden
Das Gerät unterstützt folgende EtherNet/IP-Konfigurationsmethoden:
- Top Down Mode
- Konfiguration des Geräts über das Configuration Assembly Object
– Erstellte Konfiguration wird beim Verbindungsaufbau von der EtherNet/IP-Steuerung auf das Gerät übertragen, dort gespeichert und aktiviert
- Independent Mode
- Konfiguration des Geräts über Parametriersoftware / ifm IoT-Core
- Configuration Assembly Object im EtherNet/IP-Projekt wird nicht ausgewertet
9.4.2.1 Top-Down Mode
EDS-Datei registrieren
Für die Abbildung des Geräts in einer EtherNet/IP-Projektierungssoftware stellt ifm eine Electronic Device Description (EDS) bereit. Die Gerätebeschreibungsdatei enthält Identifikationsinformationen, unterstützte Parameter, Prozessdaten und Feldbus-Objekte. Der Anwender kann die EDS-Datei von der Webseite documentation.ifm.com herunterladen.
Um das Gerät zum Gerätekatalog von RSLogix 5000 hinzuzufügen:
Voraussetzungen:
√ EDS-Datei des Geräts wurde heruntergeladen.
▶ EtherNet/IP-Projektierungssoftware RSLogix 5000 starten.
▶ [Tools] > [EDS Hardware Installation Tool] wählen.
▷ Wizard startet.
Mithilfe des Wizards die heruntergeladene EDS-Datei registrieren.
▶ Gerät wird zum Gerätekatalog der EtherNet/IP-Projektierungssoftware hinzugefügt.
RSLogix 5000 kann auf Funktionen und Daten des Geräts zugreifen.
Gerät zum Projekt hinzufügen
Mithilfe der installierten EDS-Datei wird das Gerät in das Projekt eingebunden.
Voraussetzungen:
√ EDS-Datei ist installiert.
√ Projekt mit Ethernet/IP Controller und Ethernet-Kommunikationsmodule wurde erstellt.
Im Controller Organizer: Rechtsklick auf Knoten Ethernet des EtherNet/IP Controllers.
▷ Kontextmenü erscheint.
▶ Menüpunkt [New Module...] wählen.
▷ Dialogfenster erscheint.
▶ AL1921 wählen und [Create] klicken.
▷ Fenster [New module] erscheint.
IP-Einstellungen des Geräts konfigurieren.
▶ Projekt speichern.
Verbindungstyp einstellen
Der Verbindungstyp stimmt, welche Objektinstanzen der Configuration Assembly (Paramater), der Input Assembly (Eingangsdaten) und Output Assembly (Ausgangsdaten) genutzt werden.
Verfügbare Verbindungstypen:
| Verbindung Beschreibung | Configuration Assembly | Input Assembly | Output Assembly | |
| Exclusive Owner IO-Acyclic-Diag | • Prozessdaten (Eingänge, Ausgänge) inkl. PQI• Azyklische Daten• Diagnoseinformationen, IO-Link Events | Instance 199 Instance 100 Instance 150 | 0 | |
| Exclusive Owner IO-Acyclic | • Prozessdaten (Eingänge, Ausgänge) inkl. PQI• Azyklische Daten | Instance 199 Instance 101 Instance 150 | 0 | |
| Exclusive Owner IO • Prozessdaten (Eingänge) | • Prozessdaten (Eingänge, Ausgänge) inkl. PQI | Instance 199 Instance 102 Instance 151 | 1 | |
| Input only • Prozessdaten (Eingänge) | • Prozessdaten (Eingänge) | Instance 199 Instance 100 Instance 193 | (leer) | |
| Listen only • Prozessdaten (Eingänge) | • Prozessdaten (Eingänge) | Instance 199 Instance 100 Instance 192 | (leer) | |

Das Gerät unterstützt nur eine aktive Verbindung des Typs Exclusive Owner. Verbindungen des Typs Listen only können als zweite aktive Verbindung gewählt werden.
Um den Verbindungstyp einzustellen:
Voraussetzungen:
√ Projekt ist geöffnet.
√ Gerät wurde mithilfe der EDS zum Projekt hinzugefügt.
▶ Im Controller Organizer: Doppelklick auf Knoten [AL1x2x].
▷ Dialogfenster erscheint.
▶ Auf [Change...] klicken.
▷ Fenster [Module Definition] erscheint.
BILD
In Liste [Connections] die gewünschte Verbindung wählen.
▶ Falls notwendig, Datentyp auf [INT] setzen.
▶ Auf [OK] klicken, um die Änderungen zu übernehmen.
RSLogix 5000 erzeugt auf Basis des gewählten Verbindungstyps die Controller Tags des Geräts (Configuration, Input, Output).
Gerät konfigurieren
Die Gerätekonfiguration umfasst die Konfiguration des IO-Link Masters und der IO-Link Ports.
Die Parameter des Geräts werden in dem folgenden Objekt definiert:
Verfügbare Parameter:
- Zugriffsrechte
• Länge der Prozessdaten
• Betriebsart der IO-Link Ports (Pin 4)
• Zykluszeit der Datenübertragung der IO-Link Ports - Gerätevalidierung und Data Storage
- Geräte- und Hersteller ID der IO-Link Devices
- Rückfallmodus für IO-Link Ausgangsdaten der IO-Link Ports
- Rückfallwert für digitale Ausgangsdaten der IO-Link Ports
Auf die Parameter kann über die Controller Tags zugegriffen werden.
Voraussetzungen:
√ Gerät ist in Projekt eingebunden.
Im [Controller Organizer]: Doppelklick auf Knoten [Controller Tags.]
▷ Fenster [Controller Tags] erscheint.
▷ Struktur [AL1x2x.C] > [AL1x2x.C:Data] enthält die Parameter.
BILD
▶ Parameter einstellen.
▶ Projekt speichern.
▷ Gerätekonfiguration wurde erstellt.
Konfiguration auf Gerät übertragen
Um die Konfiguration auf das Gerät zu übertragen:
Voraussetzungen:
√ Projekt ist geöffnet.
√ Gerät wurde mithilfe der EDS zum Projekt hinzugefügt.
√ Gerät wurde konfiguriert.
▶ [Communications] > [Download] wählen.
▷ RSLogix 5000 lädt Projekt auf die Steuerung.
▷ Konfiguration wird auf dem Gerät gespeichert und aktiviert.
▷ Steuerung wechselt in Run Mode.
Um die Verbindung zum Gerät zu prüfen:
In Controller Organizer: Doppelklick auf Controller Tags.
▷ Variable [AL1x2x:I] > [AL1x2x:I.ConnectionFaulted] zeigt den Status der Verbindung an.
• 0: Verbindung zum Gerät in Ordnung
• 1: Verbindung zum Gerät nicht in Ordnung
9.4.2.2 Independent Mode
Im Independent Mode wird das Gerät über die Parametriersoftware oder den ifm IoT-Core konfiguriert. Die Geräteeinstellungen werden bei einem Verbindungsaufbau zur EtherNet/IP-Steuerung nicht überschrieben. Die Einstellungen des Configuration Assembly Objects werden ignoriert.
Gerät konfigurieren
Das Gerät kann mit folgenden Optionen lokal konfiguriert werden:
- Parametriersoftware: Parametriersoftware (→ 19)
- ifm IoT-Core REST API: ifm IoT-Core REST API (→ 32)
- ifm IoT-Core Visualizer: IoT-Core Visualizer (→ 69)
Um das Gerät im Independent Mode zu betreiben:
▶ Independent Mode aktivieren (Parameter [Independent mode]).
▶ Inhalt der Prozessdaten einstellen (Parameter [Process data mode]).
Länge der Prozessdaten einstellen (Parameter [Process data length])
▶ Optional: Anordnung der Bytes in IO-Link Prozessdaten einstellen (Parameter [Swap]).
Für jeden Port die Betriebsart (Pin 4) auf [IO-Link] setzen (Parameter [Mode Pin4 US]).
Für jeden Port die Rückfallwerte der Ausgänge konfigurieren (Parameter [Fail-safe IO-Link]).
Gerät zum Projekt hinzufügen
Das Gerät wird als Generisches Ethernet-Modul in das RSLogix 5000-Projekt eingebunden.
Die Verbindungseinstellungen müssen manuell eingegeben werden. Die Verbindungseinstellungen definieren Struktur und Umfang der zyklischen Eingangsdaten (Input Assembly) und Ausgangsdaten (Output Assembly). Die Größe der Input Assembly und der Output Assembly ist abhängig von der eingestellten Prozessdatenlänge.
Die Verbindungseinstellungen müssen zu der eingestellten Prozessdatenlänge und der ExplicitPDMode passen.
Verfügbare Verbindungseinstellungen:
√ Projekt mit Ethernet/IP Controller und Ethernet-Kommunikationsmodule wurde erstellt.
√ Projekt ist geöffnet.
Im [Controller Organizer]: Rechtsklick auf Knoten [Ethernet] (Ethernet-Kommunikationsmodul).
▷ Kontextmenü erscheint.
▶ Auf [New module...] klicken.
▷ Dialogfenster erscheint.
▶ Gerätetyp [ETHERNET-MODULE] (Generic Ethernet Module) wählen.
▶ Auf [Create] klicken.
▷ Fenster [New module] erscheint.
▶ Name des Geräts eingeben, z. B [AL1x2x].
In Feld [Comm Format] den Wert [Data – INT] wählen.
▶ IP-Einstellungen des Geräts konfigurieren.
In Bereich [Connection Parameters] die Verbindungseinstellungen eingeben.
▶ Auf [OK] klicken.
▷ Geräteknoten wird zu Projektbaum hinzugefügt.
▶ Gerät ist für den Betrieb im Independent Mode konfiguriert.
Konfiguration auf Gerät übertragen
Um die Konfiguration auf das gerät zu übertragen:
Voraussetzungen:
√ Projekt ist geöffnet.
√ Gerät wurde konfiguriert.
▶ [Communications] > [Download] wählen.
▷ RSLogix 5000 lädt Projekt auf die Steuerung.
▷ Konfiguration wird auf dem Gerät gespeichert und aktiviert.
▷ Steuerung wechselt in Run Mode.
9.4.3 Auf Prozessdaten zugreifen
Die zyklischen Prozessdaten (Eingänge, Ausgänge) des Geräts werden in den Controller Tags übertragen. Art und Umfang der Prozessdaten sind abhängig von den während der Gerätekonfiguration gewählten Input-Assembly-Instanzen (Eingänge) und Output-Assembly-Instanzen.

Um die Gültigkeit der zyklischen Prozessdaten zu prüfen, die Port Qualifier Information (PQI) auswerten: Port Qualifier Information (PQI)

Bei einer Unterbrechung der EtherNet/IP-Verbindung zeigt die Port Qualifier Information (PQI) an, dass die Prozessdaten gültig sind.
▷ Ungewollte Auswirkungen auf den Steuerungsprozess
▶ Geeignete Maßnahmen treffen, um die Unterbrechung der EtherNet/IP-Verbindung zu erkennen.
Voraussetzungen:
√ Gerät ist in das Projekt eingebunden.
√ Gerät wurde konfiguriert.
√ Projekt ist geöffnet.
Im [Controller Organizer]: Doppelklick auf Knoten [Controller Tags].
▷ Fenster [Controller Tags] erscheint.
Struktur [AL1x2x.l] > [AL1x2x.l:Data] enthält die zyklischen Eingangsdaten.
Struktur [AL1x2x.O] > [AL1x2x.O:Data] enthält die zyklischen Ausgangsdaten.
Bei Bedarf: Zyklische Eingangs- und Ausgangsdaten mit Variablen der Applikation verknüpfen.
▶ Projekt speichern.
9.4.4 Auf Diagnose- und Statusinformationen zugreifen
Diagnose- und Statusinformationen werden in den zyklischen Eingangsdaten (Input Assembly) übertragen.
Position der Diagnose- und Statusinformationen in den zyklischen Eingangsdaten:
Verfügbare Informationen:
- Statusanzeige Versorgungsspannung US des Geräts
- Kurschluss-/Überlastanzeige der IO-Link Ports
- Port Qualifier Information (PQI) der IO-Link Ports
Voraussetzungen:
√ Gerät wurde zum Projekt hinzugefügt.
▶ Im [Controller Organizer]: Doppelklick auf Knoten [Controller Tags].
▷ Fenster [Controller Tags] erscheint.
Struktur [AL1x2x.l] > [AL1x2x.l:Data] enthält die Diagnose- und Statusinformationen.
Bei Bedarf: Diagnose- und Statusinformationen mit Variablen der Applikation verknüpfen.
▶ Projekt speichern.
Zusätzlich können die Diagnose- und Statusinformationen der CIP-Objektklassen des Geräts azyklisch gelesen werden, Azyklische Dienste nutzen ( → 82).
9.4.5 Auf IO-Link Devices zugreifen
Das Gerät unterstützt den Zugriff auf die angeschlossenen IO-Link Devices aus der Applikation heraus. Der Zugriff auf die Parameter, Prozessdaten sowie Diagnose- und Statusinformationen wird mithilfe der Indexed Service Data Unit (ISDU) realisiert. Jedes Datenobjekt eines IO-Link Devices ist über Index und Subindex adressierbar.
Die verfügbaren Datenobjekte sind abhängig vom IO-Link Device, → IODD-Beschreibung des IO-Link Devices.
Verfügbare Zugriffsoptionen:
- Über den azyklischen Kommandokanal innerhalb der zyklischen Prozessdaten, Azyklischer Kommandokanal (→ 105)
- Über die herstellerspezifische CIP-Objektklasse IO-Link Request, IO-Link Request Object (Class Code: 0x80) (→ ☐ 123)
Folgende Dienste sind für den Zugriff auf die Objektklasse IO-Link Request verfügbar:
| Dienst Beschreibung Referenz | ||
| Read ISDU ISDU-Objekt lesen | Read ISDU (→ 124) | |
| Write ISDU ISDU-Objekt schreiben | Write ISDU (→ 126) | |
| Write Failsafe Pattern Rückfallwerte für Ausgänge einstellen | Write Failsafe Pattern (→ 128) | |
9.4.6 Auf IO-Link Events zugreifen
Das Gerät unterstützt die Übertragung von bis zu 3 IO-Link Events pro Port. Die IO-Link Events werden in den zyklischen Eingangsdaten abgebildet.
Position der IO-Link Events in den zyklischen Eingangsdaten: Input Assembly (Instance 100) (→ ☐ 97)
Um auf die IO-Link zuzugreifen:
Voraussetzungen:
√ Betriebsart des Ports ist IO-Link.
√ IO-Link Device ist mit Port verbunden.
√ Top Down Mode: [Explicit Owner IO-Acyc-Diag] ist als aktiver Verbindungstyp eingestellt.
√ Independent Mode: Parameter [Process data mode] ist auf Wert [Explicit processdata mode with IO-Link I/O + Acyclic + Diag] gesetzt.
√ Projekt ist geöffnet.
Im [Controller Organizer]: Doppelklick auf Knoten [Controller Tags].
▷ Fenster [Controller Tags] erscheint.
Struktur AL1x2x.I > AL1x2x.I:Data enthält die IO-Link Events der IO-Link Ports.
Bei Bedarf: IO-Link Events mit Variablen der Applikation verknüpfen.
▶ Projekt speichern.
9.4.7 Azyklische Dienste nutzen
9.4.7.1 Azyklischer Kommandokanal nutzen
Das Gerät verfügt über einen azyklischen Kommandokanal. Über den können azyklische Lese- und Schreibzugriffe auf Parameter des Geräts und der angeschlossenen IO-Link Devices realisiert werden. Der Kommandokanal nutzt spezielle Bereiche innherlab der zyklischen Eingangsdaten und Ausgangsdaten.
Ein azyklisches Kommando besteht aus einer Anforderung (Request) und einer Antwort (Response). Die Kommandoanforderung wird im Output Assembly übertragen. Die Kommandoantwort des IO-Link Masters wird im Input Assembly übertragen.
Struktur des azyklischen Kommandokanals: Azyklischer Kommandokanal (→ 105)
Um den azyklischen Kommandokanal zu nutzen:
Voraussetzungen:
√ Gerät wurde in das Projekt eingebunden.
√ Im Top-Down Mode: [Explicit Owner IO-Acyc-Diag] oder [Explicit Owner IO-Acyc] ist als aktive Verbindung eingestellt.
√ Im Independent Mode: Parameter [Process data mode] ist auf [Explicit process data mode with IO-Link I/O + Acyclic + Diag] oder [Explicit process data mode with IO-Link I/O + Acyclic] eingestellt.
▶ Lese- und Schreibbefehle auf die azyklischen Bereiche ausführen.
Prinzip der Kommandokanäle
Genereller Ablauf der azyklischen Kommunikation:
1. Command Request schreiben
Im Anforderungskanal: Gewünschte Kommandodaten schreiben (außer [Trigger])
▶ [Trigger] = 1 setzen.
Änderung auf [Trigger] = 1 signalisiert neues Kommando.
Im Antwortkanal: Bytes werden auf 0 gesetzt.
▷ Verarbeitung des Kommandos wird gestartet.
2. Status prüfen
▶ Im Antwortkanal: [Handshake] prüfen.
▷ Wenn [Handshake] <> 0: Kommandoabarbeitung beendet, weiter mit Schritt 3.
▷ Wenn [Handshake] == 0: Kommando wird abgearbeitet, Schritt 2 wiederholen.
Im Antwortkanal: zurückgegebene Nutzdaten lesen.
▶ Im Anforderungskanal: [Trigger] = 0 setzen.
Kommandoabarbeitung abgeschlossen.
▷ Neues Kommando kann ausgeführt werden.
9.4.7.2 Azyklische Port-Kommandos
Für den azyklischen Zugriff auf die Konfiguration der IO-Link Ports des Geräts sind die folgenden Kommandos verfügbar:
| Kommando Beschreibung Referenz | ||
| Set Mode Betriebsart des IO-Link Ports einstellen | Set Mode (0x10) (→ □ 110) | |
| Set Validation ID / Data Storage | Gerätevalidierung und Data Storage einstellen | Set Validation ID / Data Storage (0x20) (→ □ 112) |
| Set Fail-safe Data Pattern Verhalten der Ausgänge bei Unterbrechung der EtherNet/IP-Verbindung und die entsprechenden Rückfallwerte einstellen | Set Fail-safe Data Pattern (0x30) (→ □ 114) | |
Die Port-Kommandos nutzen die Mechanismen des azyklischen Kommandokanals.
9.4.7.3 EtherNet/IP-Mechanismen für azyklische Kommandos
Das Gerät unterstützt den azyklischen Zugriff auf die Objekte des Objektverzeichnis, Objektverzeichnis (→ 115). Für die azyklischen Lese- und Schreibzugriffe kann der EtherNet/IP-Befehl Message (MSG) genutzt werden.

Detaillierte Informationen zum Befehl Message (MSG) : → Nutzerdokumentation RSLogix 5000
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 (→ 75)
- ifm moneo: Firmware: Firmware aktualisieren (→ 29)
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: getsubscriberlist
Beschreibung: Der Dienst liefert eine Liste mit allen aktiven Abonnements.
Anfrage (Feld "data"): keine
| 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.3 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 Pflichtfeld | 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.4 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) | ||
| 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.5 Dienst: getdata
Name: getdata
Beschreibung: Der Dienst liest den Wert eines Datenpunkts und gibt diesen aus.
Anfrage (Feld "data"): keine
| Parameter Pflichtfeld | Datentyp Beschreibung | |
| value obligatorisch | STRING | Wert des Datenpunkts |
11.1.3.6 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"]) |
| 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.7 Dienst: getelementinfo
Name: getelementinfo
Beschreibung: Der Dienst liest die Eigenschaften eines Elements des IoT-Baums.
Anfrage (Feld „data“):
| Parameter Pflichtfeld | Datentyp Beschreibung | |
| adr | obligatorisch | STRINGURL 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.8 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 | |
| iot.name | obligatorisch | STRING |
| iot.uid | optional | STRING |
| iot.version | obligatorisch | STRING |
| iot.catalogue | optional | ARRAY OF OBJECTS |
| iot.deviceclass | optional | ARRAY OF STRING |
| iot.serverlist | optional | ARRAY OF OBJECTS |
| device | optional | |
| device.serialnumber | optional | |
| device.hwrevision | optional | |
| device.swrevision | optional | |
| device.custom | optional | |
| security | optional | |
| security.securityMode optional | ENUM | Status des Sicherheitsmodusdisabled: Sicherheitsmodus deaktiviertenabled: Sicherheitsmodus aktiviert |
| security.authScheme | optional | ENUM |
| security.isPasswdSet | optional | BOOL |
| security.activeConnection | optional | ENUM |
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 wirdkeine Angabe: alle Ebenen werden angezeigt0: keine Unterelemente anzeigen ("subs")1: Unterelemente anzeigen2: Unterelemente bis zur 2. Ebene anzeigen3: Unterelemente bis zur 3. Ebene anzeigen...20: Unterelemente bis zur 20. Ebene anzeigens |
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
Dienst: 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 |
Rückgabe (Feld „data“):
| Parameter Pflichtfeld | Datentyp Beschreibung | |
| value | obligatorisch STRING Parameterwert (Wert im Hexadezimalformat) | |
11.1.3.12 Dienst: 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) | ||
Rückgabe (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 | G Profil des gesuchten Elements | |
| type optional STRING | Typ des gesuchten Elements | |
| identifier optional STRING | ING Name des gesuchten Elements |
Antwort (Feld "data"): keine
| Parameter Pflichtfeld | Datentyp Beschreibung | |
| urlList obligatorisch AR | 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 | LISTe von Datenpunkten und deren neuen Werten; Datenpunkte müssen den Dienst setdata unterstützen |
| consistent optional BOOL Rückgabe | innerhalb einer be | 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: 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.19 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.20 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.21 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.22 Dienst: stream\_set
Name: stream_set
Beschreibung: Der Dienst übertragt ein Datensegment.
Anfrage (Feld "data"):
| Parameter Pflichtfeld | Datentyp Beschreibung | |
| value obligatorisch BIN (BA- | SE64) | Segment der Binardaten (BASE64-codiert) |
Antwort (Feld "data"): keine
11.1.3.23 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://pathJSON: mqtt://ipadress:port/topicCSV: tcp://ipaddress:port/path | |
| datatosend obligatorisch | ARRAY OF STRINGS | Liste mit URLs der Datenelemente; URLs 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: nur eine Benachrichtigung schicken, Benutzer muss Abonnement direkt wieder abmelden | |
Rückgabe (Feld "data"): keine
Benachrichtigungsformat: JSON
{
"code":"event",
"cid":4711,
"adr": "",
"data":{
"eventno":"EventNo",
"srcurl":"SrcURL",
"payload":{
"eventurl":{"code":EventStatus,"data":EventData},
"datapointurl_1":{"code":DataStatus_1,"data":DataValue_1},
"datapointurl_2":{"code":DataStatus_2,"data":DataValue_2},...
}
}
}
Benachrichtigungsformat: CSV
SrcURL, EventNo, EventStatus, EventData, DataStatus_1, DataValue_1, DataStatus_2, DataValue_2, ...
- SrcURL: Quelle des Ereignisses (Datenpunkt, auf den subscribe-Kommando aufgeführt wurde)
• EventNo: Ereignisnummer
• EventStatus: Statuscode des Ereignisses - EventData: 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.24 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 Anmeldung der Benachrichtigung (subscribe). Wird im callback der Wert "DELETE" übergeben, werden alle aktiven Abonnements gelöscht.
Anfrage (Feld "data"):
| Parameter Pflichtfeld | Datentyp Beschreibung | |
| callback obligatorisch | STRING Zieladresse für Benachrichtigungen; URL-Formate:JSON: http://ipaddress:port/pathJSON: ws://pathJSON: mqtt://ipadress:port/topicCSV: tcp://ipaddress:port/pathDELETE: alle aktiven Benachrichtigungen werden gelöscht | |
Antwort (Feld "data"): keine
11.1.3.25 Dienst: 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
Rückgabe (Feld „data“): keine
11.2 EtherNet/IP
11.2.1 Parameter
| • Communication Profile | Zugriffsrechte auf die Parameter, Prozessdaten und die Events / Diagnose-meldungen des IO-Link Masters so-wie der angeschlossenen IO-Link-De-vices | 1 BYTE • 0x00: EtherNet/IP + LineRecorder• 0x01: EtherNet/IP + LineRecorder (ro)• 0x02: EtherNet/IP only• 0x03: Keep setting (Default) |
| • Port Process Data Size | Länge der Prozessdaten (Eingänge und Ausgänge) | 1 BYTE • 0x00: 2 Bytes– Input Assembly: 206 Bytes |
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 (LSB) | |
| n+5 Vendor ID (MSB) | |
| n+6 Device ID (LSB) | |
| n+7 Device ID | |
| n+8 Device ID (MSB) | |
| n+9 reserviert | |
| n+10 Failsafe Mode – Pin 4 (IO-Link) | |
| n+11 Failsafe Mode – Pin 4 (DO) | |
Legende:
| • Mode Betriebsart des Ports (Pin 4) 1 BYTE • 0x00: Disabled | |||
| • 0x01: Digital Input (Pin 4) | |||
| • 0x02: Digital Output (Pin 4) | |||
| • 0x03: IO-Link (Pin 4) | |||
| • Port Cycle Time | Zykluszeit der Datenübertragung zwischen IO-Link Master und IO-Link Device | 1 BYTE | • 0x00: As fast as possible |
| • 0x01: 2 ms | |||
| • 0x02: 4 ms | |||
| • 0x03: 8 ms | |||
| • 0x04: 16 ms | |||
| • 0x05: 32 ms | |||
| • 0x06: 64 ms | |||
| • 0x07: 128 ms | |||
| • Swap Anordnung der Bytes in Prozessdaten tauschen (EtherNet/IP nutzt Little-Endian-Format (Intel), IO-Link nutzt Big-Endian-Format (Motorola)) | 1 BYTE | • 0x00: Enabled | |
| • 0x01: Disabled | |||
| • Validation / Data Storage | Validierungsmodus / Data-Storage-Modus | 1 BYTE | • 0x00: No device check and clear |
| • 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 | |||
| • Vendor ID | Vendor ID des Herstellers des IO-Link Device | 2 BYTE | • 0x00...0x7FFF |
| Vendor ID = 0x1234 | |||
| • Vendor ID (MSB): 0x12 | |||
| • Vendor ID (LSB): 0x34 | |||
| • Device ID | Device ID des IO-Link Device | 3 BYTE | • 0x000000...0xFFFFF |
| Device ID = 0x123456 | |||
| • Device ID (MSB): 0x12 | |||
| • Device ID: 0x34 | |||
| • Device ID (LSB): 0x56 | |||
| • Failsafe Mode – Pin 4 (IO-Link) | Rückfall-Modus für Ausgangsdaten des Ports bei Unterbrechung der EtherNet/IP-Verbindung (nur gültig bei Port Mode: IO-Link) | 1 BYTE | • 0x00: No Failsafe |
| • 0x01: Failsafe Reset Value | |||
| • 0x02: Failsafe Old Value | |||
| • 0x03: Failsafe with Pattern | |||
- Failsafe Mode – Pin 4 (DO) Rückfallwert für Ausgangsdaten des Ports bei Unterbrechung der Ether-Net/IP-Verbindung (nur gültig bei Port Mode: Digital Output (DO))
1 BYTE • 0x00: Failsafe Reset Value
- 0x01: Failsafe Old Value
• 0x02: Failsafe Set Value
11.2.2 Zyklische Daten
| Byte (Offset) | Bit | |||||||
| 7 6 5 4 | 3 2 1 0 | |||||||
| n X08: | SC / OL | X07: SC / OL | X06: SC / OL | X05: SC / OL | X04: SC / OL | X03: SC / OL | X02: SC / OL | X01: SC / OL |
| n+1 reserviert | reserviert | reserviert | reserviert | reserviert | SENS PWR | reserviert | ||
Legende:
- SC / OL Short Circuit / Overload: Anzeige eines Kurzschlusses oder einer Überspannung am IO-Link Port
1 BIT • 0x0: kein Fehler • 0x1: Kurzschluss oder Überspannung
• SENS PWR Status der Versorgungsspannung US
1 BIT • 0x0: kein Fehler • 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 Cycle Time | Wrong VID / DID | Invalid Data | Dev Not Con | IOL Mode | |
| n+1 reservoir | ||||||||
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: verbunden - 0x1: nicht verbunden
- Invalid Data Status der Prozessdaten
1 Bit • 0x0: gültig • 0x1: ungültig
- Wrong VID / DID Übereinstimmung von konfigurierter und erkannter Vendor ID / Device ID
1 Bit - 0x0: OK - 0x1: keine Übereinstimmung
- Wrong Cycle Time Übereinstimmung von konfigurierter und erkannter Zykluszeit
1 Bit - 0x0: OK - 0x1: keine Übereinstimmung
- Wrong Length PDin Übereinstimmung von konfigurierter und er- kannter Prozessdatenlänge (Eingänge)
1 Bit - 0x0: OK - 0x1: konfigurierte Prozessdatenlänge zu klein
| • Wrong Length PDout | Übereinstimmung von konfigurierter und erkannter Prozessdatenlänge (Ausgänge) | 1 Bit • 0x0: OK• 0x1: 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 Event• 0x1: Neues IO-Link Event erkannt | |
Mapping: IO-Link Informationen + Events
| Byte (Off-set) | Bit | |||||||
| 7 6 5 4 | 3 2 1 0 | |||||||
| n Vendor ID (LSB) | ||||||||
| n+1 Vendor ID (MSB) | ||||||||
| n+2 Device ID (LSB) | ||||||||
| n+3 Device ID | ||||||||
| n+4 Device ID (MSB) | ||||||||
| n+5 reserviert | ||||||||
| n+6 Event 1: Mode Event 1: Type Event 1: Src Event 1: Instance | ||||||||
| n+7 Event Code 1 (LSB) | ||||||||
| n+8 | Event Code 1 (MSB) | |||||||
| n+9 Event 2: Mode Event 2: Type Event 2: Src Event 2: Instance | ||||||||
| n+10 | Event 2 (LSB) | |||||||
| n+11 | Event 2 (MSB) | |||||||
| n+12 | Event 3: Mode Event 3: Type Event 3: Src Event 3: Instance | |||||||
| n+13 | Event 3 (LSB) | |||||||
| n+14 | Event 3 (MSB) | |||||||
| n+15 | reserviert | |||||||
Legende:
| • VID | Vendor ID des angeschlossenen IO-Link DevicesVID = 0x1234• DID (MSB): 0x12• DID (LSB): 0x34 | 2 BYTE | 0x0000...0x7FFF |
| • DID | Device ID des angeschlossenen IO-Link DevicesDID = 0x123456• DID (MSB): 0x12• DID: 0x34• DID (LSB): 0x56 | 3 BYTE | 0x000000...0xFFFFF |
| • Event m: Mode | Mode: Modus des Ereignisses | 2 BIT | • 0x0: reserviert• 0x1: Einmaliges Ereignis• 0x2: Ereignis verschwunden• 0x3: Ereignis erschienen |
| • Event m: Type | Type: Kategorie des Ereignisses | 2 BIT | • 0x0: reserviert• 0x1: Benachrichtigung• 0x2: Warnung• 0x3: Fehler |
- Event m: Src Src: Quelle des Ereignisses 1 BIT • 0x0: IO-Link Device
- Event m: Instance Instance: Auslöser des Ereignisses 3 BIT • 0x0: Unbekannt
- 0x1...0x3: reserviert
• 0x4: Application / Anwendung
- 0x5...0x7: reserviert
• Event m: Code Code: Ereignis-Code
2 BYTE geräteabhängig (→ IODD-Beschreibung des IO-Link Devices)
Code = 0x1234
- Code (MSB): 0x12
- Code (LSB): 0x34
• DO Pin 4 Signalstatus Digitaler Ausgang an Pin 4 des Ports
1 BIT • 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 Anforderungs | kanal (EtherNet/IP Controller → IO-Link Master)Anforderungskanal (Request) (→ ☐ 106) | 4...45 rw | 1 |
| Input Assembly Antwortkanal (IO-Link Master → EtherNet/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 Port | 1 WORD • 0x0001: Port 1 | ||
| Port No.: 0x1234• Port No. (MSB): 0x12• Port No. (LSB): 0x34 | • 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-ObjektsIndex: 0x1234• Index (MSB): 0x12• Index (LSB): 0x34 | 1 WORD 0x0000...0xFFFF | |
| • Subindex | Subindex des ISDU-ObjektsSubindex: 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 |
| • 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-ObjektsIndex: 0x1234• Index (MSB): 0x12• Index (LSB): 0x34 | 1 WORD | 0x0000...0xFFFF |
| • Subindex | Subindex des ISDU-ObjektsSubindex: 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 | ENOVRRUN Parameterlänge überschritten | |
| 0x34 VAL | ENUNDRUN 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:
- Trigger Befehlsausführung steuern 1 BIT • 0x0: keine Aktion
- Target Mode
Betriebsart des Ports IO-Link Ports
• 0x1: Kommando ausführen
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:
- 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:
- Trigger Befehlsausführung steuern 1 BIT • 0x0: keine Aktion
- Validation ID
Validierungstyp und Data-Storage-Verhalten des Ports
- 0x1: Kommando ausführen
1 BYTE • 0x00: No check
| 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:
- 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
Der Befehl setzt das Verhalten der Ausgänge bei einer Unterbrechung der EtherNet/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 EtherNet/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) ( → ☐ 118) |
| 0x04 Assembly Object | Assembly Object (Class Code: 0x04) ( → ☐ 119) |
| 0x06 Connection Manager Object | Connection Manager Object (Class Code: 0x06) ( → ☐ 120) |
| 0x47 Device Level Ring Object | Device Level Ring Object (Class Code: 0x47) ( → ☐ 121) |
| 0x48 Quality Of Service Object | Quality Of Service Object (Class Code: 0x48) ( → ☐ 122) |
| 0x80 IO-Link Request Object | IO-Link Request Object (Class Code: 0x80) ( → ☐ 123) |
| 0xF5 TCP/IP Object | TCP/IP Object (Class Code: 0xF5) ( → ☐ 130) |
| 0xF6 Ethernet Link Object | Ethernet Link Object (Class Code: 0xF6) ( → ☐ 132) |
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 | |
| 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 | |||||
| 6 Get Max. ID Number Class Attributes | UINT max. ID-Nummer eines Klassenattributs 7 | ||||
| 7 Get Max. ID Number Instan-ce 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 | 1921 |
| 4 | Get | Revision | STRUCT | Revision des Geräts | 1 |
| • 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 CL EIP 8P IP20 |
| 8 | Get | State | USINT | Zustand des Geräts (State machine)0: Nonexistent1: Device Self Testing2: Standby3: Operational4: Major Recoverable Fault5: Major Unrecoverable Fault6-254: Reserved255: Default für "Get_Attributes_All"-Dienst | |
| 9 Get | Configuration Consistency Value | UINT Inhalt zeigt die Konfiguration des Geräts 0 | |||
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 |
| 0x10 | Set Attribute Single | ja | ja | Einzelnes Attribut schreiben |
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 EtherNet/IP-Geräte).
- 1: Werkseinstellungen wiederherstellen und Gerät neu starten.
| 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 |
| 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 I nstance Attributes | UINT max. ID-Nummer des Instanzattributs 4 | ||||
Instanzattribute
| Attr. ID Zugriff Name | Datentyp Beschreibung | Default | |||
| 1 | Get | Number of Members | UINT | Anzahl der Mitglieder in Liste | -- |
| 2 | Get | Member | UINT | Mitgliederliste | -- |
| 3 | Get / Set | Data | UINT | Aktuelles Prozessdatenabbild | -- |
| 4 | Get | Size | UINT | Prozessdatenlänge (Anzahl Bytes) | -- |
| 300 | -- | Member data list | UINT | Daten der Assembly-Mitglieder | -- |
| 301 | Get | Parameter | UINT | Assembly-Parameter | -- |
| 302 | Get | Status | UINT | Assembly-Status | -- |
Folgende Objektinstanzen stehen zur Verfügung:
| Code | Dienst | Klasse | Instanz | Beschreibung |
| 0x0E | Get Attribute Single | ja | ja | Einzelnes Attribut lesen |
| 0x10 | Set Attribute Single | nein | ja | Einzelnes Attribut schreiben |
| 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 |
| 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 |
| 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 | |||||
| 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 "Scheduled" | 27 |
Dienste
| Code | Dienst | Klasse | Instanz | Beschreibung |
| 0x01 | Get Attribute All | ja | ja | Alle Attribute lesen |
| 0x0E | Get Attribute Single nein ja | Einzelnes | Insges | Lesen |
| 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 | nein | ja | ISDU lesen |
| 0x4C | Write ISDU | nein | ja | ISDU schreiben |
| 0x4D | Write Failsafe Pattern | 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 U | INT 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 U | SINT 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 U | SINT <> 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 CIPUser 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 U | INT 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 U | SINT <> 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. | |
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 U SINT • 0x00: No Fail-safe• 0x01: Fail-safe Reset Value• 0x02: Fail-safe Old Value• 0x03: Fail-safe with Pattern | Fail-safe Mode | ||
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 |
| Code Beschreibung | |
| 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 CIPUser 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 | |
| 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 Konfiguration | soptionen für SchnittstelleBit 0: BOOTP ClientBit 2: DHCP ClientBit 4: Konfiguration einstellbarBit 7: ACD-fähig | 0x95 (BOOTP, DHCP, TCP/IP configurable, ACD capable) | |||
| 3 | Get / Set | Configuration Control | DWORD | KonfigurationssteuerungBit 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 24 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-Name | 0: nicht konfiguriert | 0 |
| 8 Get TTL Value | UINT TTL | -Wert | 1 | ||
| 9 | Get / Set | Mcast Config | UINT | Mcast-Konfiguration | 0 |
| 10 | Get / Set | SelectAcd | BOOL | ACD-Aktivierung / Deaktivierung0: deaktiviert1: aktiviert | 1 |
| Attr. ID Zugriff Name D | Datentyp Beschreibung Default | ||||
| 11 Get / Set | Last conflict | detected STRUCT of Letzter erkannter Konflikt 0 | |||
| • AcdActivity USINT Zustand der ACD-Aktivität bei dem zuletzt erkannten Konflikt• 0: Noconflictdetected• 1: Probelpv4Address• 2: Ongoing Detection• 3: 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 |
| Attr. ID Zugriff Name D | 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 300 | |||
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(1) | of UDINT | Schnittstellen-spezifischer Zähler | |
| 5 Get | Media Counters | STRUCT(1) | of UDINT | Medien-spezifischer Zähler | |
| 6 Get / Set | Interface Control | STRUCT of Schnittstellen-Steuerung | |||
| • Interface Settings | DWORD | EinstellungenBit 0:• 0: Auto-Negotiation ein• 1: Autonegotiation 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 |
| Attr. ID Zugriff Name Datentyp Beschreibung Default | |||||
| 9 Get / Set Admin State US | INT Steuerung des Zugriffs auf | Schnittstelle• 1: aktivieren• 2: Deaktivieren | 1 | ||
| 10 Get Interface Label SHORT_STRI | NG | Schnittstellen-Kennzeichner • X21 (Instanz 1)• X22 (Instanz 2) | |||
| 11 Get Interface Capability | STRUCT of Schnittstellen-Fähigkeit | ||||
| • Interface Speed | DWORD | Übertragungsrate• 10: 10 Mbit/s• 100: 100 Mbit/s | |||
| • Interface Duplex Mode | DWORD | Duplex Mode• HD: Half Duplex• FD: Full Duplex | |||
| 300 | Get / Set MDIX | USINT MDIX-Konfiguration | • 1: MDIX_AUTO• 2: MDIX_MDI• 3: 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 |