TIA azyklische Kommunikation DPV1

CrazyMC

Level-2
Beiträge
54
Reaktionspunkte
7
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich muss eine azyklische Verbindung zu einem Profibus Gerät von Vögtlin aufbauen. Hierzu benutze ich den SFB52/53. Funktioniert auch soweit alles bestens insofern ich im Slot 0 arbeite. Jetzt muss ich jedoch auch andere Slots(zb 41) abfragen bzw beschreiben. Jedoch sind alle bisher gestarteten Versuche ohne Erfolg. Bei ID muss ja die Diagnoseadresse des Slaves angegeben werden, bei Index der zu bearbeitende Index. Wie schaut es jedoch aus wenn ich vom Slot 0 abweiche?
Gelesen hatte ich schon das bei ID dann die E/A Adresse des Moduls angetragen werden soll, dies gibt jedoch den Fehlercode "C0809000". Diese Art und Weiße ist mir jedoch auch unschlüssig, da alles was in der HW Konfig enthalten ist ja zyklisch bearbeitet wird?! Und da es sich hier um einen EEPROM handelt der beschrieben wird ist zyklische Bearbeitung tödlich.


Ich hoffe auf eure Mithilfe um das Problem irgendwie zu lösen...
 
Hast Du mal nachgesehen, was dein Fehler bedeutet?
Meines Wissens ist es egal, ob Du die Diagnose oder die IO-Adresse verwendest, solange die Adresse dem Slave zugewiesen ist.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hast Du mal nachgesehen, was dein Fehler bedeutet?
Meines Wissens ist es egal, ob Du die Diagnose oder die IO-Adresse verwendest, solange die Adresse dem Slave zugewiesen ist.

Der Fehler C0809000 bedeutet logische Anfangsadresse ungültig. Klar weil ich versucht hatte irgendwie den Slot mit zu verrechnen.
Lege ich das Modul als Baugruppe vom Slave an und versuche dann auf die I/O Adresse zuzugreifen kommt folgender Fehler 16#DE80B200 - ungültiger Slot (id) bzw. I/O Variablen nicht vorhanden oder ungültig.
 
Hi,

kannst du mal einen Screenshot der Konfiguration machen und sagen welche Adressen du genau verwendest bei dem jeweiligen Fehler?
Normalerweise sollte am Slot eine Diagnoseadresse vergeben sein über die du dann zugreifst, da muss man nix verrechnen.

Gruß
Christoph
 
Anbei die Screenshots.
Zugriff über Diagadresse funktioniert tadellos. Zugriff wenn ich die E/A Adresse eingebe nicht. Hinter beiden Abfragen steckt genau das gleiche Register was gelesen werden soll. Vllt verstehe/verwende ich auch nur irgendwas falsch :?
 

Anhänge

  • Zugriff über EA Slot 2.JPG
    Zugriff über EA Slot 2.JPG
    56,9 KB · Aufrufe: 140
  • Zugriff über Diag Slot 0.JPG
    Zugriff über Diag Slot 0.JPG
    56,2 KB · Aufrufe: 126
  • HW-Konfig.JPG
    HW-Konfig.JPG
    118,2 KB · Aufrufe: 134
Zuviel Werbung?
-> Hier kostenlos registrieren
RDREC/WRREC: Bei ID muß die projektierte E/A-Adresse des gewünschten Slots angegeben werden.

Wenn Du einen Datensatz von Deinem Slot 2 "SerialNumber Rd_1" lesen willst, dann mußt Du an ID den Wert 102 angeben (wg. E-Adresse 102).
Wenn Du an ID die Diagnoseadresse 2046 angibst, dann bedeutet das, daß Du den Datensatz von Slot 0 lesen willst.

S7-Integration von DPV1-Slaves
3.1 Slave-Adressierung entsprechend der logischen Adressierung

Bei der S7 erfolgt eine Umrechnung von logischen Adressen zu Slaveadressen.
Die Durchführung von "RDREC", "WRREC" und "RALRM" mit den Slaves erfolgt über die logische Adresse (Diagnose-, E/A-Adresse).
Die Slotadressierung für Datensatz Lesen/Schreiben erfolgt direkt über die E/A-Adresse.

STATUS DE80B200 bedeutet: Der projektierte Steckplatz ist nicht belegt.


Was hast Du für einen DP-Master?
Ist da beim Modus der DP-Schnittstelle vielleicht "S7-kompatibel" eingestellt? Sobald nicht-Siemens DP-Slaves vorhanden sind, muß der Modus auf "DPV1" eingestellt sein.

Harald
 
Die 102 hatte ich ja angegeben(siehe Screenshot). Als Master habe ich eine 315F-2DP V2.6.11(Versuchsgerät). Beim Slave wie im Screenshot zu sehen habe ich bereits DPV1 eingestellt, beim Master gibt's nichts einzustellen im TIA - wahrscheinlich macht das TIA automatisch?! Laut Doku kann die CPU aber DPV1.
 
Mit TIA habe ich kaum Erfahrung und hab' auch gerade keins greifbar...

Doch ich hatte mal mit Step7 classic massive Slot-Adressierungs-Probleme Siemens<->ABB, da hatten mir diese SFC bei der Diagnose geholfen:
SFC70 "GEO_LOG" : Anfangsadresse einer Baugruppe ermitteln
SFC50 "RD_LGADR" : sämtliche logischen Adressen einer Baugruppe ermitteln
SFC49 "LGC_GADR" : den zu einer logischen Adresse gehörenden Steckplatz ermitteln

Nachtrag:
Das Einstellen von "DPV1" beim Slave hat (meine ich) nichts mit Deinem Problem zu tun, da geht es um Alarm-Modus.

Harald
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Alle Daten die ich mit den SFC's auslesen kann stimmen zu 100% mit den Daten aus dem Foto der HW Konfig überein. Vllt. ist es doch die Umstellung auf DPV1, diese kann ich aber nirgends im TIA finden auch bei 317er CPU nicht.
 
Bei meinem Step7 V5.5 finde ich die Einstellung auch nicht (mehr). Vielleicht musste man nur in irgendeiner alten Step7-Version händisch umstellen?

Kannst Du Deine Versuche auch mal mit Step7 V5.x machen?
Gibt es von Vögtlin ein Beispielprogramm?
Hast Du die richtige/aktuellste GSD-Datei?
Ich würde Vögtlin mal anrufen.

Harald
 
Mal dumm gefragt: unterstützt das Gerät überhaupt das azyklische lesen von Datensätzen?
Warum willst/musst Du mit dem Gerät azyklisch kommunizieren?
Wie heißt das Gerät genau? Wo ist die Dokumentation im Internet zu finden?

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo
Habe von TIA keine Ahnung, aber alle PB Master die ich kenne ünterstützen DPV1. Da gibt es nirgends was einzustellen. Was du einstellen kannst / musst ist der Slave. Im DPV1 Modus sind erweiterterte PB Infos abgelegt. Ob du diese aber benötigts ist fraglich. Ich würde erstmal DPV0 einstellen und sehen ob die 6 Byte Standarddiagnose lesbar sind.
Grüsse Holger
 
So, ich habe die Dokumentation von Deinem DPV1-Slave "Vögtlin Red-Y Smart Series" gefunden.
Herzlichen Glückwunsch - das ist ähnlich problematisch wie mein Clinch mit ABB ...


Nochmal mein Siemens-Zitat von #6
Die Durchführung von "RDREC", "WRREC" und "RALRM" mit den Slaves erfolgt über die logische Adresse (Diagnose-, E/A-Adresse).
Die Slotadressierung für Datensatz Lesen/Schreiben erfolgt direkt über die E/A-Adresse.
Mit anderen Worten:
Bei Siemens RDREC/WRREC kann man nicht direkt die Slotnummer des gewünschten Datensatzes angeben, sondern muß die E/A-Adresse angeben, die diesem Slot zugewiesen ist. RDREC/WRREC ersetzen dann für die Kommunikation mit dem Slave die E/A-Adresse durch die Steckplatznummer = Slotnummer.

Das klingt zwar umständlich, doch lösbar... ist es allerdings nicht ganz, weil Vögtlin in ihrer GSD-Datei festgelegt haben: "Max_Module=74" - dadurch kann man imho nicht Slots > 74 ansprechen, weil man keine Module auf Steckplätze > 74 stecken kann, weil man bei Siemens HW Konfig (Profibus-normkonform!) keine Steckplätze und keine Steckplatznummern "zwischendurch" freilassen kann. 1 Modul = 1 Steckplatz = 1 Slot. Lückenlos aufsteigend.

Vögtlin hat aber die Slotadressen der Parameter "systematisch" mit großen Lücken in den Nummern vergeben, davon viele mit Slotnummern 0x50 .. 0x63 (80 .. 99 dez) - meines Wissens kommt man an diese Slotnummern mit Siemens RDREC/WRREC nicht ran, weil die größer als die laut GSD-Datei höchstmögliche Slotnummer 74 dez sind.

Rufe Vögtlin an und frage nach einem Programmbeispiel für azyklische DPV1-Kommunikation mit einem Siemens DP-Master. Und frage speziell, wie man die Slots > 74 adressiert. Und berichte uns davon.
Oder weiß hier jemand eine Lösung?


Ich meine, das Lesen mit RDREC müßte so funktionieren:
Beispiel zum Lesen des Parameters "DeviceTypeCode2 Rd": Slot 0x10 | Index 0x04 | Länge 8

Stecke irgendein Rd-Modul in Steckplatz 16 (= 0x10) und gibt dem die E-Adresse 110.
Auf die Steckplätze 1 bis 15 stecke irgendein Modul oder stecke das Universalmodul und konfiguriere es als Leerplatz (Kennung 0). Falls das Vögtlin-Gerät nichts mit Leermodulen zwischendurch anfangen kann, dann mußt Du irgendwelche Module auf die für DPV1 eigentlich nicht benötigten Slots stecken.

Dann rufe RDREC wie folgt auf (schematisch):
Code:
L  110            // von E-Adresse 110 des Steckplatzes 16 (Slot 0x10)
T  #LOG_ADR       // (DWORD in TEMP)

CALL RDREC
 ID   :=#LOG_ADR
 INDEX:=4         // Slot 0x10 Index 0x04: "DeviceTypeCode2 Rd"
 MLEN :=8         // maximale Länge der zu lesenden Datensatzinformation in Bytes

Eine mögliche HW Konfig, um Parameter bis Slotadresse 0x41 lesen/schreiben zu können:
Code:
DP-Slave "Red-Y Smart Series"  (GSD-Datei: VIAG0AAC.GSD)
[COLOR="#0000FF"]Diagnoseadresse: 2046[/COLOR]

Steckplatz  Kennung  Bezeichnung     E-Adresse
1           0        Universalmodul
...         0        Universalmodul
15          0        Universalmodul
[COLOR="#0000FF"]16          67       Gas Rd          110...117[/COLOR]
17          0        Universalmodul
...         0        Universalmodul
63          0        Universalmodul
[COLOR="#0000FF"]64          67       Lut Select Rd   140[/COLOR]
[COLOR="#0000FF"]65          67       LUT Access Rd   141[/COLOR]

Die Adresse für ID von RDREC/WRREC ergibt sich wie folgt:
Code:
Slotadresse      xxREC.ID
 hex  dez        hex     dez
 0x00   0       16#7FE  2046
 0x10  16       16#6E    110
 0x40  64       16#8C    140
 0x41  65       16#8D    141

(0x50  80   geht nicht, weil höchstmöglicher Steckplatz = 74)

Harald
 
Hallo Harald,

diese Idee hatte ich auch schon, jedoch nicht weiter verfolgt da ich mir ausgerechnet ein Slot über 74 raus gepickt hatte. mit dem Versuch Slot 0x10 Index 0x04 habe ich versucht hier kommt jedoch beim Status vom RD ein herstellerspezifischer Fehler wenn ich 16#C080B104 richtig interpretiere. Leerplätze kann er gar nicht leiden, musste also mit anderen Modulen auffüllen. Bei Vögtlin gibt's keine Beispielprojekte o.ä. Bin aber inzwischen wieder in Kontakt und hoffe das mir jemand von denen weiter helfen kann. Immerhin muss es doch schon mal jemand getestet haben ob das überhaupt funktioniert das in der Anleitung beschrieben wird und wie es Funktioniert.

Und Danke schon mal für die rege Beteiligung und die Mühen!!!!
 
Hallo PN/DP,

nein bisher ist absoluter Stillstand und ich warte auf Rückmeldung vom Hersteller. Sobald ich neue Infos habe werde ich diese berichten...
 
Zurück
Oben