Step 7 Profibus Teilnehmer auf Anwesenheit überprüfen mit Siemens PCS7

Pacai

Level-1
Beiträge
5
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Forum ;)

Und zwar stehe ich vor folgendem Problem: Ich habe einen FB Quellcode erstellt für einen Datalogic Barcodescanner mit Siemens PCS 7. Der Scanner ist mittels RS232 an ein Deutschmann Automation Gateway Profibus RS angeschlossen und dieses per Profibus direkt an der 400er CPU. Nun möchte ich die Hardware Anwesenheit des Scanners in meinem erstellten FB überwachen, so das ich einen Ausgang (Bool) schalten kann, wenn der Scanner nicht mehr erreichbar ist. Ich bin leider absoluter Neuling und kann mit ähnlichen Beiträge leider nicht wirklich was anfangen da diese alle auf eine umfangreichere Auswertung schließen.
Zur Info: Das Gateway sendet ein Diagnoseprotokoll nach EN 50 170 welches ja meiner Meinung nach von Siemens unterstützt wird.
Vielen Dank im Voraus für eure Hilfe !👍🎉
 
Hallo Pascal,

von Pcs7 habe ich keine Ahnung aber du schreibst das Getwasy bringt eine Diagnose Meldung. Geht dann der Profibus Tn nicht auf Störung also im Siemens PN/DP Diag ? Ich verwende das Bit Tn gestört immer für Handscanner/ Gateway hat Problem.


Gruß Tia
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Du kannst dir die Liste der ausgefallenen / gestörten Profibusteilnehmer wie üblich auch über entsprechende SZL-Listen abfragen. Daraus kannst dir ein Signal bauen welches anzeigt wenn der Teilnehmer nicht mehr am Profibus vorhanden ist. Das ist bei PCS7 / CFC nicht anders zu programmieren als sonst auch.
Wenn der Teilnehmer nicht mehr erreichbar ist, dann kannst du auch keine Diagnosedaten mehr einlesen.
 
Danke für eure Antworten 👍

1: Das Profibus TN bit meldet das bei Fehler dann quasi eine 1? Ich programmiere das ganze mit SCL, hast du dafür vielleicht ein Beispiel wie das auszusehen hat oder wie ich mir das Bit in mein Programm ziehen kann um es zu verarbeiten?

2: Mit der Verwendung der SZL Listen habe ich leider absolut keine Erfahrung. Hättest du eventuell auch ein Anwendungsbeispiel dafür?

3: Als Vorgabe wurde mir der SFC 13 „DPNRM_DG“ genannt. Bei diesem bleibt mir nur leider eine Frage offen. Bisher sieht es folgender Maßen aus:

DPNRM_DG (REQ:= // Start fürs Lesen
, LADDR:= W#16#1FFC
, RECORD:= ???
, BUSY:= // Status Lesevorgang
, RET_VAL:= Rueckgabewert

Bei Record steht bei der Siemens Hilfe: Datentyp ANY, Zielbereich für die gelesenen Diagnosedaten. Es ist nur der Datentyp BYTE zulässig. Die Mindestlänge des zu lesenden Datensatzes bzw. Zielbereichs beträgt 6. Die Maximallänge des zu lesenden Datensatzes beträgt 240. (Daten werden dort abgespeichert).

Ich weis nur leider nicht was ich bei Record eingeben soll damit es funktioniert.

P.S: Bin leider absoluter Neuling 😬
Danke euch für die Hilfe !👍🎉
 
Lege in einem DB ein Array of BYTE an, z.B. "DiagData : Array [0..63] : BYTE" und schalte dieses Array an den SFC13: RECORD := "MeinDB".DiagData
Der RET_VAL gibt am Auftragsende die Anzahl tatsächlich gelesener Bytes an, oder eine Fehlernummer falls z.B. die Größe des Arrays an RECORD nicht ausreicht. Wie groß der Diagnosedatensatz maximal werden kann sollte im Handbuch des DP-Slaves stehen.

Beispielprojekt: Wie lesen Sie die Diagnose eines PROFIBUS DP-Slaves mit dem SFC13 "DPNRM_DG" aus und wie werten Sie die Daten im Anwenderprogramm aus?

Harald
 
Zurück
Oben