DPRD_DAT: Konsistente Daten eines DP-Normslaves lesen (S7-300, S7-400) - STEP 7

Erweiterte Anweisungen (S7-300, S7-400)

ft:publication_title
Erweiterte Anweisungen (S7-300, S7-400)
Product
STEP 7
Version
V20
Publication date
11/2024
Language
de-DE
DPRD_DAT: Konsistente Daten eines DP-Normslaves lesen

Beschreibung

Mit der Anweisung "DPRD_DAT" lesen Sie konsistente Daten eines DP-Normslaves/PROFINET IO-Devices aus, wobei für die Maximallänge Folgendes gilt:

  • Die Maximallänge entnehmen Sie der Dokumentation Ihrer CPU.

  • Falls bei der Datenübertragung kein Fehler auftrat, werden die gelesenen Daten in den durch RECORD aufgespannten Zielbereich eingetragen.

Der Zielbereich muss dieselbe Länge aufweisen, die Sie für die selektierte Baugruppe projektiert haben. Bei einem DP-Normslave mit modularem Aufbau bzw. mit mehreren DP-Kennungen können Sie mit einem "DPRD_DAT"-Aufruf jeweils nur auf die Daten einer Baugruppe/ DP-Kennung unter der projektierten Anfangsadresse zugreifen.

Hinweis

Eine CPU der Baureihen S7-300/400 unterstützt bis zu 64 Bytes konsistente Daten. Bei Bereichen konsistenter Daten größer als 4 Bytes müssen Sie die Anweisung "DPRD_DAT" verwenden. Diese Anweisung kann bei Bedarf auch für einen Datenbereich ab 1 Byte verwendet werden. Bei einem Zugriffsfehler wird der Fehlercode W#16#8090 gemeldet.

Hinweis

S7-400-CPUs ab Firmware-Stand V6.0

Bei S7-400-CPUs ab Firmware-Stand V6.0 wird der Aufruf von DPRD_DAT grundsätzlich für alle Adressen akzeptiert. Sie können also auf eigene Verantwortung mit DPRD_DAT auf Adressen zugreifen, für die Sie keine Gesamtkonsistenz projektiert haben.

Parameter

Die folgende Tabelle zeigt die Parameter der Anweisung "DPRD_DAT":

Parameter

Deklaration

Datentyp

Speicherbereich

Beschreibung

LADDR

Input

WORD

E, A, M, D, L oder Konstante

Projektierte Anfangsadresse aus dem E-Bereich der Baugruppe, aus der gelesen werden soll.

Hinweis: Adresse muss hexadezimal angegeben werden. Z. B. Anfangsadresse 100 bedeutet: LADDR:=W#16#64.

RET_VAL

Return

INT

E, A, M, D, L

Tritt während der Bearbeitung der Anweisung ein Fehler auf, enthält der Rückgabewert einen Fehlercode.

RECORD

Output

ANY

E, A, M, D, L

Zielbereich für die gelesenen Nutzdaten. Er muss genauso lang sein, wie Sie für die selektierte Baugruppe projektiert haben. Es ist nur der Datentyp BYTE zulässig.

Hinweis: Beachten Sie, dass der Parameter RECORD bei S7-300-CPUs immer die vollständige Angabe der DB-Parameter erfordert (Bsp.: P#DB13.DBX0.0 Byte 100). Das Weglassen einer expliziten DB-Nr. ist für S7-300-CPUs unzulässig und führt zu einer Fehlermeldung im Anwenderprogramm.

Weitere Informationen zu den gültigen Datentypen finden Sie unter "Übersicht über die gültigen Datentypen".

Parameter RET_VAL

Hinweis

Falls Sie auf DPV1-Slaves zugreifen, können Fehlerinformationen dieser Slaves vom DP-Master an die Anweisung weitergereicht werden. Zur Beschreibung dieser Fehlerinformationen siehe STATUS[3] Parameter STATUS.

Fehlercode

(W#16#...)

Erläuterung

0000

Es ist kein Fehler aufgetreten.

8090

  • Für die angegebene logische Basisadresse haben sie keine Baugruppe projektiert.

  • Sie haben die Einschränkung über die Länge der konsistenten Daten nicht beachtet. (Bei S7-400-CPUs nur bis einschließlich Firmware-Stand V5.3; ab Firmware-Stand V6.0 entfällt diese Ursache.)

  • Sie haben die Anfangsadresse im Parameter LADDR nicht hexadezimal angegeben.

8092

In ANY-Referenz ist eine Typangabe ungleich BYTE angegeben.

8093

Für die unter LADDR angegebene logische Adresse existiert keine DP-Baugruppe/kein PROFINET IO-Device, von der/dem Sie konsistente Daten lesen können.

80A0

Beim Zugriff auf die Peripherie wurde ein Zugriffsfehler erkannt

80B0

  • Bei S7-300-CPUs (alle Firmware-Stände) und S7-400-CPUs bis einschließlich Firmware-Stand V5.3: Slaveausfall an externer DP-Anschaltung

  • Bei S7-400-CPUs ab Firmware-Stand V6.0: Slaveausfall oder Zugriffsfehler auf nicht-konsistente Daten an externer DP-Anschaltung (Dass ein Fehler aufgetreten ist, wird der CPU durch den CP gemeldet.)

80B1

Die Länge des angegebenen Zielbereichs ist ungleich der projektierten Nutzdatenlänge.

80B2

Systemfehler bei externer DP-Anschaltung

80B3

Systemfehler bei externer DP-Anschaltung

80C0

Die Daten wurden noch nicht von der Baugruppe gelesen

80C2

Systemfehler bei externer DP-Anschaltung

80Fx

Systemfehler bei externer DP-Anschaltung

87xy

Systemfehler bei externer DP-Anschaltung

808x

Systemfehler bei externer DP-Anschaltung

8xyy

allgemeine Fehlerinformation

Siehe auch: Fehlerauswertung mit dem Ausgangsparameter RET_VAL 

Anwendungsbereich

Sie benötigen "DPRD_DAT", weil Sie mit den Ladebefehlen, die auf die Peripherie bzw. auf das Prozessabbild der Eingänge zugreifen, maximal vier Bytes zusammenhängend auslesen können.

Hinweis

Sie können konsistente Daten ggf. auch über das Prozessabbild der Eingänge einlesen.

  • Ob Ihre S7-300-CPU diese Funktionalität beherrscht, entnehmen Sie der zugehörigen Dokumentation.

  • Alle S7-400-CPUs beherrschen diese Funktionalität.

Vorsicht

Peripheriezugriff

Vermeiden Sie bei Verwendung von "DPRD_DAT" Zugriffe auf Peripheriebereiche, denen Teilprozessabbilder mit OB6x-Anbindung (Taktsynchronalarme) zugeordnet sind.

Datenkonsistenz

Siehe auch: Abschnitt Datenkonsistenz.