PDA

View Full Version : Step 7 Daten azyklisch gegenlesen mit dem SFB52 RDREC



Sesssko
27.11.2014, 08:49
Hallo zusammen,

ich bekomme mein Programm mit dem SFB52 nicht ans laufen. *verzweifelt*

Der Hersteller eines Messgerätes mit Profibus-DP Schnittstelle (Burster Digiforce 9307) macht im Handbuch Vorgaben, wie ich Einstellungen über den Profibus mittels azyklischen Diensten verändern kann.
Zunächst ist der Index 1 mit dem zukünfitigen Slot (hier 30, Format: U16) azyklisch zu beschreiben. Das scheint auch fehlerfrei zu funktionieren (kein Error am Baustein, nur ein Done:D).
Anschließend ist der Index 1 wieder azyklisch zu lesen. Hier sollte dann der vorher übertragene Wert (30) angezeigt werden.
Wurde erfolgreich gegengelesen, so ist der Slot 30 erfolgreich gemappt und ich kann meinen eigentlichen Wert (Format: STRING 64) zum Zielindex (Index: 86) übertragen.

Jedoch funktioniert das gegenlesen nicht. Es kommt immer eine Fehlermeldung, die ich auch nicht interpretieren kann.

Das Messgerät ist in der HW-Konfig auf DPV1 eingestellt und kommuniziert mit einer S7-315F-2PN/DP. Programmiert wird das ganze mit Step 7 Pro 2010 SP4.

Ich hoffe es kann mir jemand helfen.

Sascha


Anbei zwei Bilder, wo das Gegenlesen einmal im Gang ist und einmal mit einem Fehler abgebrochen wurde.
2633726338

PN/DP
27.11.2014, 10:04
Adressiert Deine Adresse 16#0200 (512 dez) den Steckplatz 1?
Lies mal diesen Thread (http://www.sps-forum.de/simatic/73393-azyklische-kommunikation-dpv1-2.html#post509733).

Harald

Sesssko
27.11.2014, 12:02
Adressiert Deine Adresse 16#0200 (512 dez) den Steckplatz 1?

Hallo Harald,

ja, das hast du richtig erkannt.

Sascha


26341

miami
27.11.2014, 18:24
Ich interpretiere deine Fehlermeldung CO 8A 01 01 so:
CO: "Funktionskennung aus DPV1-PDU: ...... Falls kein DPV1-Protokollelement benutzt wird: B#16#C0."; interpretiere ich als: Fehler kommt nicht vom Bus
8A: Der 10. Parameter ist fehlerhaft ( In AWL abgezählt: RECORD)
01: "Unzulässige Syntaxkennung bei einem ANY-Parameter"
00: egal

Ist zumindest in sich schlüssig ;)

Ich meine es gibt es ein Problem mit deinem ANY Pointer.
Könnte es sein, dass deine Baugruppe eine Fehlermeldung überträgt und diese länger als 2 Byte ist?
Mach den ANY-Pointer doch testweise einfach mal länger.