PKW: Gekapselte azyklische Zugriffe in DP V0
Überblick
Einige PROFIBUS DP-Primärgeräte (Master) bieten keine DP V1-Dienste an. Die PKW-Funktion ist implementiert, um einen azyklischen Lese- oder Schreibzugriff in DP V0 zu ermöglichen.
Diese Funktion wird im PROFIBUS DP-Konfigurationstool durch Auswahl des entsprechenden Moduls aktiviert. Für jedes Modul ist ein zweiter Eintrag mit PKW vorhanden.
Die PKW-Daten werden zu den zyklischen Daten hinzugefügt.
Lese-/Schreib-Register
Mit den PKW-Daten können Sie jedes Register lesen oder schreiben. Die 8 Bytes werden als Anforderungs- oder Antworttelegramm, das in den EIN- und AUSGANGS-Daten gekapselt ist, interpretiert.
PKW-Ausgangsdaten
Anforderungen von PKW OUT-Daten (PROFIBUS DP-Master → LTMR) werden in Modulen abgebildet, die PKW unterstützen.
Um auf ein Register zuzugreifen, müssen Sie einen der folgenden Funktionscodes wählen:
-
R_REG_16 = 0x25 zum Lesen eines Registers
-
R_REG_32 = 0x26 zum Lesen von zwei Registern
-
W_REG_16 = 0x2A zum Schreiben eines Registers
-
W_REG_32 = 0x2B zum Schreiben von zwei Registern
Die Registernummern sind in Register Map (Organization of Communication Variables) angegeben.
Wort 1 |
Wort 2 |
Wort 3 |
Wort 4 |
||
---|---|---|---|---|---|
Registeradresse |
Umschaltbit (Bit 15) |
Funktionsbits (Bits 8 bis 14) |
Nicht verwendet (Bits 0 bis 7) |
Zu schreibende Daten |
|
Registernummer |
0/1 |
R_REG_16 Code 0x25 |
0x00 |
_ |
_ |
R_REG_32 Code 0x26 |
_ |
_ |
|||
W_REG_16 Code 0x2A |
In das Register zu schreibende Daten |
_ |
|||
W_REG_32 Code 0x2B |
In Register 1 zu schreibende Daten |
In Register 2 zu schreibende Daten |
Je nach verwendeter SPS-Plattform finden Sie die Angaben zur Position der einzelnen Felder in jedem Wort in den Tabellen mit der Beschreibung der PKW OUT-Formate „Little Endian“ und „Big Endian“ in Abschnitt Beschreibung der zyklischen Daten.
Jegliche Änderung im Funktionsfeld löst die Bearbeitung der Anforderung aus (außer bei Funktionscode = 0x00).
Das Umschaltbit muss sich bei jeder folgenden Anforderung ändern. Mit diesem Mechanismus kann der Ersteller der Anforderung durch Polling des Umschaltbits in der Antwort feststellen, wenn die Antwort bereitsteht. Wenn dieses Bit in den Ausgangsdaten gleich dem von der Antwort ausgegebenen Umschaltbit in den Eingangsdaten wird, dann ist die Antwort bereit.
PKW IN-Daten
PKW IN-Datenantwort (LTMR → PROFIBUS DP-Master) wird in Modulen abgebildet, die PKW unterstützen. Der LTMR echot dieselbe Registeradresse und denselben Funktionscode oder schließlich einen erkannten Fehlercode:
Wort 1 |
Wort 2 |
Wort 3 |
Wort 4 |
||
---|---|---|---|---|---|
Registeradresse |
Umschaltbit (Bit 15) |
Funktionsbits (Bits 8 bis 14) |
Nicht verwendet (Bits 0 bis 7) |
Zu schreibende Daten |
|
Dieselbe Registernummer wie in der Anforderung |
Wie bei Anforderung |
ERKANNTER FEHLER Code 0x4E |
0x00 |
Fehlercode |
|
R_REG_16 Code 0x25 |
Im Register gelesene Daten |
_ |
|||
R_REG_32 Code 0x26 |
In Register 1 gelesene Daten |
In Register 2 gelesene Daten |
|||
W_REG_16 Code 0x2A |
_ |
_ |
|||
W_REG_32 Code 0x2B |
_ |
_ |
Je nach verwendeter SPS-Plattform finden Sie die Angaben zur Position der einzelnen Felder in jedem Wort in den Tabellen mit der Beschreibung der PKW IN-Formate „Little Endian“ und „Big Endian“ in Abschnitt Beschreibung der zyklischen Daten.
Wenn der Anforderer versucht, ein TeSys T-Objekt oder -Register mit einem unzulässigen Wert zu beschreiben oder auf ein nicht verfügbares Register zuzugreifen, wird als Antwort ein „Erkannter Fehler“-Code ausgegeben (Funktionscode = Umschaltbit + 0x4E). Der genaue „Erkannter Fehler“-Code ist in den Worten 3 und 4 zu finden. Die Anforderung wird nicht akzeptiert, und das Objekt oder Register behält den ursprünglichen Wert.
Für eine erneute Auslösung genau desselben Befehls müssen Sie wie folgt vorgehen:
-
Setzen Sie den Funktionscode auf 0x00 zurück.
-
Warten Sie auf den Antwortrahmen mit dem Funktionscode gleich 0x00.
-
Setzen Sie ihn auf den vorherigen Wert zurück.
Diese Funktion ist nützlich für ein eingeschränktes Primärgerät (Master) wie eine HMI.
Alternativ dazu können Sie wie folgt vorgehen:
-
Invertieren Sie das Umschaltbit im Byte des Funktionscodes.
Die Antwort ist gültig, wenn das Umschaltbit der Antwort gleich dem in der Anforderung geschriebenen Umschaltbit ist. (Diese Methode ist effizienter, erfordert jedoch Kenntnisse der höheren Programmierung.)
PKW – „Erkannter Fehler“-Codes
Erkannte Schreibfehler
Fehlercode |
Erkannter Fehler – Name |
Erläuterung |
---|---|---|
1 |
FGP_ERR_REQ_STACK_FULL |
Externe Anforderung: sendet einen „Erkannter Fehler“-Block zurück |
3 |
FGP_ERR_REGISTER_NOT_FOUND |
Register nicht verwaltet (oder Anforderung erfordert Administratorzugriffsrechte) |
4 |
FGP_ERR_ANSWER_DELAYED |
Externe Anforderung: Antwort verzögert |
7 |
FGP_ERR_NOT_ALL_REGISTER_FOUND |
Ein oder mehrere Register können nicht gefunden werden. |
8 |
FGP_ERR_READ_ONLY |
Schreiben auf Register nicht zulässig. |
10 |
FGP_ERR_VAL_1WORD_TOOHIGH |
Geschriebener Wert nicht im Bereich des Registers (Wortwert ist zu hoch). |
11 |
FGP_ERR_VAL_1WORD_TOOLOW |
Geschriebener Wert nicht im Bereich des Registers (Wortwert ist zu niedrig). |
12 |
FGP_ERR_VAL_2BYTES_INF_TOOHIGH |
Geschriebener Wert nicht im Bereich des Registers (MSB-Wert ist zu hoch). |
13 |
FGP_ERR_VAL_2BYTES_INF_TOOLOW |
Geschriebener Wert nicht im Bereich des Registers (MSB-Wert ist zu niedrig). |
16 |
FGP_ERR_VAL_INVALID |
Geschriebener Wert ist kein gültiger Wert. |
20 |
FGP_ERR_BAD_ANSWER |
Externe Anforderung: sendet einen „Erkannter Fehler“-Block zurück |
Erkannte Lesefehler
„Erkannter Fehler“-Code |
Erkannter Fehler – Name |
Erläuterung |
---|---|---|
1 |
FGP_ERR_REQ_STACK_FULL |
Externe Anforderung: sendet einen „Erkannter Fehler“-Block zurück |
3 |
FGP_ERR_REGISTER_NOT_FOUND |
Register nicht verwaltet (oder Anforderung erfordert Administratorzugriffsrechte) |
4 |
FGP_ERR_ANSWER_DELAYED |
Externe Anforderung: Antwort verzögert |
7 |
FGP_ERR_NOT_ALL_REGISTER_FOUND |
Ein oder mehrere Register können nicht gefunden werden. |