Zugriff auf IO-Link Parameter
Über den Parameterdaten-Block erfolgt der Zugriff auf die Parameter der KL6224 IO-Link Master Klemme. In Folgenden sind der Schreibzugriff und der Lesezugriff mit Beispielen dokumentiert.
Schreiben eines Parameters
Um einen Parameter zu schreiben ist folgende Sequenz einzuhalten:
Überprüfen Sie Zunächst, ob der vorherige Zugriff vollständig abgeschlossen wurde. Werten Sie hierzu Status-Byte 1 aus: Bits 4 bis 7 müssen 0bin sein. Falls nicht, sind Control-Byte 0 und Control-Byte 1 auf 0 zu setzen bis die Bits 4 bis 7 im Status-Byte 1 auf 0bin gesetzt sind.
Schreibzugriff (SPS->KL6224): Parameterdaten-Block
Byte | Byte 0 | Byte 1 | Byte 2 | Byte 3 | Byte 4 | Byte 5 |
Name | Control-Byte 0 | Control-Byte 1 | ParaOut0 | ParaOut1 | ParaOut2 | ParaOut3 |
Wert | 01binA5A4 A3A2A1A0 | 0100bin A9A8A7A6 | P0...P7 | P8...P15 | P16...P23 | P24...P31 |
A0 bis A9: Bits der Parameteradresse
P0 bis P31: Bits des Parameter-Werts
Antwort auf Schreibzugriff (KL6224->SPS): Parameterdaten-Block
Byte | Byte 0 | Byte 1 | Byte 2 | Byte 3 | Byte 4 | Byte 5 |
Name | Status-Byte 0 | Status-Byte 1 | ParaIn0 | ParaIn1 | ParaIn2 | ParaIn3 |
Wert | xxxx xxxxbin | 01F1 xxx1bin | Error-Code | Error-Code | Error-Code | Error-Code |
x: Bits können beliebige Werte annehmen
F: Fehler-Bit.
F=0bin: Schreibzugriff war erfolgreich.
F=1bin: Schreibzugriff war nicht erfolgreich. Die Bytes 2 bis 5 enthalten einen Error-Code, der Aufschluss über die Fehlerursache gibt.
Die Schreib-Sequenz wird durch Nullsetzen der Control-Bytes abgeschlossen:
Abschluss Schreibzugriff (SPS->KL6224): Parameterdaten-Block
Byte | Byte 0 | Byte 1 | Byte 2 | Byte 3 | Byte 4 | Byte 5 |
Name | Control-Byte 0 | Control-Byte 1 | ParaOut0 | ParaOut1 | ParaOut2 | ParaOut3 |
Wert | 0000 0000bin | 0000 0000bin | x | x | x | x |
x: Die Parameterwerte werden nicht ausgewertet wenn die Control-Bytes 0x00 sind.
Beispiel
Die Liste der projektierten Slaves (LPS) soll beschrieben werden. Der IO-Link Master soll gezielt mit den IO-Link Slaves mit den Knoten-Nummern 1, 2, 3, 4, 12, 16, 17 und 30 kommunizieren. Es soll also der Wert 0x4003101E (0100 0000 0000 0011 0001 0000 0001 1110bin) auf den Parameter 0xA8 (1010 1000bin) geschrieben werden.
Schreibzugriff (SPS->KL6224): Parameterdaten-Block
Byte | Byte 0 | Byte 1 | Byte 2 | Byte 3 | Byte 4 | Byte 5 |
Name | Control-Byte 0 | Control-Byte 1 | ParaOut0 | ParaOut1 | ParaOut2 | ParaOut3 |
Wert | 0110 1000bin (0x68) | 0100 0010bin (0x42) | 0x1E | 0x10 | 0x03 | 0x40 |
Im Parameterdaten-Block zur KL6224 muss also die Bytefolge 0x68 42 1E 10 03 40 geschrieben werden.
Die Klemme antwortet mit folgenden Daten:
Antwort auf Schreibzugriff (KL6224->SPS): Parameterdaten-Block
Byte | Byte 0 | Byte 1 | Byte 2 | Byte 3 | Byte 4 | Byte 5 |
Name | Status-Byte 0 | Status-Byte 1 | ParaIn0 | ParaIn1 | ParaIn2 | ParaIn3 |
Wert | xxxx xxxxbin | 0101 xxx1bin | 0 | 0 | 0 | 0 |
Die Schreib-Sequenz wird mit dieser Bytefolge abgeschlossen: 0x00 00 00 00 00 00
Lesen eines Parameters
Um einen Parameter zu lesen ist folgende Sequenz einzuhalten:
Zunächst überprüfen, ob vorheriger Zugriff vollständig abgeschlossen wurde. Hierzu muss Status1 ausgewertet werden, Bits 4 bis 7 müssen 0 sein. Falls nicht, sind Control-Byte 0 und Control-Byte 1 auf 0 zu setzen bis die Bits 4 bis 7 im Status1 auf 0 gesetzt sind.
Lesezugriff (SPS->KL6224): Parameterdaten-Block
Byte | Byte 0 | Byte 1 | Byte 2 | Byte 3 | Byte 4 | Byte 5 |
Name | Control-Byte 0 | Control-Byte 1 | ParaOut0 | ParaOut1 | ParaOut2 | ParaOut3 |
Wert | 00bin A5A4 A3A2A1A0 | 0100bin A9A8A7A6 | x | x | x | x |
A0 bis A9: Bits der Parameteradresse
x: Die Parameterwerte werden nicht ausgewertet
Antwort auf Lesezugriff (KL6224->SPS): Parameterdaten-Block
Byte | Byte 0 | Byte 1 | Byte 2 | Byte 3 | Byte 4 | Byte 5 |
Name | Status-Byte 0 | Status-Byte 1 | ParaIn0 | ParaIn1 | ParaIn2 | ParaIn3 |
Wert | xxxx xxxxbin | 01F1 xxx0bin | P0...P7 | P8...P15 | P16...P23 | P24...P31 |
x: Bits können beliebige Werte annehmen
F: Fehler-Bit.
F=0bin: Lesezugriff war erfolgreich. Die Bytes 2 bis 5 enthalten den Parameterwert.
F=1bin: Lesezugriff war nicht erfolgreich. Die Bytes 2 bis 5 enthalten einen Error-Code, der Aufschluss über die Fehlerursache gibt.
P0 bis P31: Bits des Parameter-Werts oder Error-Codes
Die Lese-Sequenz wird durch Null-setzen der Control-Bytes abgeschlossen:
Abschluss Lesezugriff (SPS->KL6224): Parameterdaten-Block
Byte | Byte 0 | Byte 1 | Byte 2 | Byte 3 | Byte 4 | Byte 5 |
Name | Control-Byte 0 | Control-Byte 1 | ParaOut0 | ParaOut1 | ParaOut2 | ParaOut3 |
Wert | 0000 0000bin | 0000 0000bin | x | x | x | x |
x: Die Parameterwerte werden nicht ausgewertet wenn die Control-Bytes 0x00 sind.
Beispiel
Die Liste der erkannten Slaves (LES) soll ermittelt werden. Hierfür muss der Parameter 0xB0 (1011 0000bin) gelesen werden.
Lesezugriff (SPS->KL6224): Parameterdaten-Block
Byte | Byte 0 | Byte 1 | Byte 2 | Byte 3 | Byte 4 | Byte 5 |
Name | Control-Byte 0 | Control-Byte 1 | ParaOut0 | ParaOut1 | ParaOut2 | ParaOut3 |
Wert | 0011 0000bin (0x30) | 0100 0010bin (0x42) | 0x00 | 0x00 | 0x00 | 0x00 |
Im Parameterdaten-Block zur KL6224 muss also die Bytefolge 0x30 42 00 00 00 00 geschrieben werden. Die Klemme antwortet mit folgenden Daten:
Antwort auf Schreibzugriff (KL6224->SPS): Parameterdaten-Block
Byte | Byte 0 | Byte 1 | Byte 2 | Byte 3 | Byte 4 | Byte 5 |
Name | Status-Byte 0 | Status-Byte 1 | ParaIn0 | ParaIn1 | ParaIn2 | ParaIn3 |
Wert | xxxx xxxxbin | 0101 xxx0bin | 0x4C | 0x02 | 0x80 | 0x83 |
Der IO-Link Master soll in diesem Beispiel die Slaves mit den Knoten-Nummern 2, 3, 6, 9, 23, 24, 25 und 31 erkannt haben. Er antwortet also mit den Parameterdaten 0x8380024C (1000 0011 1000 0000 0000 0010 0100 1100bin)
Die Lese-Sequenz wird mit der Bytefolge 0x00 00 00 00 00 00 abgeschlossen.