DOCA0131DE-03

Azyklisches Lesen/Schreiben von Daten über PROFIBUS DP V1

Überblick

Für den azyklischen DP V1-Zugriff ist ein Mechanismus auf der Grundlage von Slot-/Index- und Längenadressierung im LTMR-Controller implementiert.

HINWEIS: Alle zugänglichen Register sind in Abschnitt Variablengruppen - Kommunikation beschrieben. Sie sind in Gruppen (Identifikationsvariablen, Statistikvariablen usw.) und bei Bedarf in Untergruppen eingeteilt.

Auf die Variablen wird in Schritten von 10 Registern zugegriffen. Auf Register, die sich zwischen zwei Untergruppen befinden, kann nicht zugegriffen werden. Ist kein Registerzugriff möglich, wird über DP V1 ein „Erkannter Fehler“-Wert (z. B. „nicht alle Register gefunden“) zurückgesendet.

Lesen azyklischer Daten (DS_Read)

Mit der Funktion DS_Read kann das PROFIBUS DP-Primärgerät Daten aus dem Sekundärgerät auslesen. In der folgenden Tabelle sind die Inhalte eines DS_Read-Blocks aufgeführt:

Byte

Syntax

0 [Funktionsnummer]

0x5E [ DS_Read -Funktion]

1 [Slot-Nummer]

Konstanter Wert = 1

2 [Index]

Registeradresse / 10

Der Registerzugriff erfolgt üblicherweise in Schritten von 10 Registern.

Der Index wird immer auf eine ganze Zahl abgerundet.

3 [Länge]

Länge von Datenblöcken in Bytes

(Anzahl der Register) x 2

Maximale Anzahl der Register = 20 (40 Bytes)

Eine beliebige Länge zwischen 2 und 40 Bytes ist möglich.

4 bis (Länge + 3)

Zu lesender Block an Datenbytes

DS_Read-Beispiel

Beispiel: Lesen der Identifikationsregister 50 bis 62

Byte

Wert

0 [Funktionsnummer]

0x5E [ DS_Read -Funktion]

1 [Slot-Nummer]

1

2 [Index]

5 [50/10]

3 [Länge]

26 [(50 bis 62 = 13) x 2]

4 bis 29

Wert der Register 50 bis 62

Senden azyklischer Daten (DS_Write)

Mit der Funktion DS_Write kann das PROFIBUS DP-Primärgerät Daten an das Sekundärgerät senden.

Vor dem Schreiben eines Datenblocks empfiehlt es sich, zunächst einen Datenblock zu lesen, um nicht betroffene Daten zu schützen. Der gesamte Block wird nur geschrieben, wenn Sie über eine entsprechende Schreibberechtigung verfügen. Das können Sie in der jeweiligen Registertabelle in Abschnitt Variablengruppen - Kommunikation überprüfen. In Spalte 3 der Tabellen ist jeweils angegeben, ob die Variablen schreibgeschützt sind oder ob ein Lese- und Schreibzugriff möglich ist.

In der folgenden Tabelle sind die Inhalte eines DS_Write-Blocks aufgeführt:

Byte

Syntax

0 [Funktionsnummer]

0x5F [ DS_Write -Funktion]

1 [Slot-Nummer]

Konstanter Wert = 1

2 [Index]

Registeradresse / 10

Der Registerzugriff erfolgt üblicherweise in Schritten von 10 Registern.

Der Index wird immer auf eine ganze Zahl abgerundet.

3 [Länge]

Länge von Datenblöcken in Bytes

(Anzahl der Register) x 2

Maximale Anzahl der Register = 20 (40 Bytes)

Eine beliebige Länge zwischen 2 und 40 Bytes ist möglich.

4 bis (Länge + 3)

Zu schreibender Block an Datenbytes

DS_Write-Beispiel: Beschreibung des Verfahrens

Beispiel: Rücksetzen einer Auslösung durch Einstellen von Bit 704.3 auf 1

1. Lesen Sie 700 bis 704 aus.

Byte

Wert

0 [Funktionsnummer]

0x5E [ DS_Read -Funktion]

1 [Slot-Nummer]

1

2 [Index]

70 [700/10]

3 [Länge]

10 [(700 bis 704 = 5) x 2]

4 bis 13

Aktuelle Werte der Register 700 bis 704

2. Stellen Sie Bit 3 des Registers 704 auf 1 ein.

3. Schreiben Sie in die Register 700 bis 704.

Byte

Wert

0 [Funktionsnummer]

0x5F [ DS_Write -Funktion]

1 [Slot-Nummer]

1

2 [Index]

70 [700/10]

3 [Länge]

10 [(700 bis 704 = 5) x 2]

4 bis 13

Neue Werte der Register 700 bis 704

Rückmeldung bei erkanntem Fehler

Ist kein Registerzugriff möglich, wird ein „Erkannter Fehler“-Wert über DP V1 zurückgegeben.

Die Antwort am DP bei einem erkannten Fehler hat die folgenden ersten vier Bytes:

Byte

Wert

Bedeutung

0

0xDE/ 0xDF

für DS_Read / DS_Write

1

0x80

Hinweis auf DP V1

2

0xB6

„Erkannter Fehler“-Klasse + „Erkannter Fehler“-Code 1 = Zugriff verweigert

3

0xXX

„Erkannter Fehler“-Code 2, LTMR-spezifisch (siehe nachfolgende Tabelle)

Nachfolgend ist der LTMR-spezifische Fehlercode 2 aufgeführt:

„Erkannter Fehler“-Code 2

Bedeutung

01

Interne Stapelanforderung voll

03

Register nicht verwaltet oder Anforderung erfordert Administratorzugriffsrechte

06

Register definiert aber nicht beschrieben

07

Nicht alle Register gefunden

08

Schreiben auf Register nicht zulässig

10

Geschriebener Wert nicht im Bereich des Registers – Wortwert zu hoch

11

Geschriebener Wert nicht im Bereich des Registers – Wortwert zu niedrig

12

Geschriebener Wert nicht im Bereich des Registers (MSB-Wert zu hoch)

13

Geschriebener Wert nicht im Bereich des Registers (MSB-Wert zu niedrig)

14

Geschriebener Wert nicht im Bereich des Registers (LSB-Wert zu hoch)

15

Geschriebener Wert nicht im Bereich des Registers (LSB-Wert zu niedrig)

16

Geschriebener Wert ist kein gültiger Wert.

20

Zurückweisung durch Modul, sendet „Erkannter Fehler“-Block zurück

255

Interner Fehler erkannt

Die Darstellung eines „Erkannter Fehler“-Codes und einer „Erkannter Fehler“-Klasse in der Anwenderlogik hängt von der Primärimplementierung (z. B. der SPS) ab.

Der Mechanismus greift nur auf Parameterblöcke ab einem dedizierten Parameter (MB-Adresse) zu. Das heißt, dass auch auf nicht verwendete Parameter (MB-Adressen) zugegriffen wird. Der aus diesen Parametern gelesene Datenwert ist dann 0x00. Beim Schreiben ist es jedoch erforderlich, den Wert 0x00 in diese Parameter zu schreiben. Andernfalls wird der komplette Schreibzugriff abgelehnt.

Interne TeSys T-Register

Weitere Informationen zu den internen TeSys T-Registern finden Sie in den Communication Variables tables.

QR Code is a registered trademark of DENSO WAVE INCORPORATED in Japan and other countries.

War das hilfreich für Sie?