Bedeutung der GSD Datei von CPU 314C-2DP

digide

Level-1
Beiträge
11
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich habe ein kleines Verständnisproblem mit der GSD Datei der S7 CPU 314C-2DP. Speziel den Abschnitt mit den Modulen, ich komme mit den Bezeichnungen nicht zurecht. Es wäre super, wenn mir da einer weiterhelfen kann, da ich dies zur Parametrierung der CPU unter Linux brauche.
 

Anhänge

  • cpu314c-2.gsd.txt
    4,8 KB · Aufrufe: 31
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo dietmar,

danke, aber so meinte ich das nicht. Ich habe mich schon mit dem Aufbau von GSD Dateien beschäftigt z.B. mit der von ET200S. Ich habe ein Problem mit der Modul Bezeichnung, also das was in Anführungszeichen steht, ich weiß nicht genau, was das bedeutet z.B "Master_E Slave_A 1 By Einheit".
Ich denke mal die 1 By Einheit bedeutet 1 Byte für Ein oder Ausgang? Aber was heißt Master_E Slave_A, oder auch umgedreht. Hat damit schon jemand Erfahrung.
Zweck ist, das ich die CPU als Slave Projektiere/Programmiere will. Unter Linux habe ich eine PB Masterkarte, mit der ich den Bus parametrieren kann und für die Parametrierung des Slave benötige ich halt noch einige Parameter aus der GSD Datei. Mit der ET 200S hat es so funktioniert. Ich weiß, das das hier nicht so einfach geht, ich muss noch die CPU so Programmieren, das sie die Ein/Ausgänge für die Masterkarte ansprechbar macht. Ich hatte da bereits ein Thema eröffnet, aber noch keine Antwort.
 
Ich kann jetzt nur raten,

aber der Eingang des Masters ist der Ausgang des Slaves bzw. umgekehrt.

AB500 des Slaves => EB500 des Masters

Mfg
Manuel
 
Hallo,

also ...
"Master_E Slave_A 1 By Einheit" dahinter versteckt sich folgende Information:
Master_E: Daten sind Eingangsdaten für den Master
Slave_A: Daten sind Ausgangsdaten für den Slave
1 By: Die "Größe" des Moduls ist 1 Byte
Einheit: Die Daten-Konsistenz des Moduls ist Einheit also in diesem Fall Byte.

Für die Größe des Moduls könnte auch xxx Worte angegeben sein.
Für die Datenkonsistenz könnte auch "Gesamt" angegeben sein, das bedeutet, dass der gesamte Datenblock als zusammengehörig gekennzeichnet ist.

Den Beitrag von MSB möchte ich ein wenig ergänzen:
Die Daten müssen NICHT beim Slave und beim Master auf den gleichen Adressen liegen. Aber das ist sicherlich keine Neuigkeit ;)

Hoffe die Info hilft weiter
ulkula
 
Zuviel Werbung?
-> Hier kostenlos registrieren
danke ulkula

ich denke mal ich habs verstanden.
Das heist, wenn ich einen Eingang am Slave einlesen möchte, muß ich "Master_E Slave_A 1 By" nehmen. Den Slave habe ich dann so projektiert, das der physikal. Eingang (124.0 -124.7) auf eine virt. Ausgang des Slaves transferiert wird, welcher dann vom Master gelesen werden kann.?
Ich habe z.B. den Slave(CPU) so konfiguriert, bei DP -> Konfiguration -> neu:
(lokal. Slave)
Adreß-Typ: Ausgang
Adresse: 0
Steckplatz 4

Im OB1 habe ich dann noch folgendes programmiert:

L EB 124
T AB 0

ist das so ok?
Und dann noch was.
Was bedeutet
Module = " 1. Kennung generell " 0x00 in der GSD Datei. Muß ich hier diesen Wert generell mit Parametrieren ?

Da ich vorher noch nie was mit STEP 7 und einer S7 CPU 314C-2 DP zutun hatte muss ich so viele Fragen stellen, um alles zu begreifen.
 
Hallo digide,

Das mit den Eingangsdaten vom Slave auf die Ausgänge schaufeln klingt gut so. Sollte funktionieren.
Die Daten sollten bei Deinem Master dann als Eingangsdaten ankommen.

Was die ersten 3 Module in der GSD-Datei betrifft, so hab ich sie eben mal bei mir in STEP7 eingebunden.
Dahinter versteckt sich, dass wenn man die CPU als Norm-Slave betreibt erst ab "Modulnummer" 4 tatsächlich Module die man zum Datenaustausch verwendet "stecken". (Hast für Dein Modul ja auch Steckplatz 4 vorgesehen)
Die ersten 3 Module werden als "Leermodule" projektiert.

Wie das mit den Leermodulen bei Deinem Master realisiert werden kann weiß ich allerdings nicht.
Aber den kennst Du ja bestimmt schon wesentlich besser als ich

Viel Erfolg
ulkula
 
Hallo,

die Parametrierung unter Linux hat nun funktioniert. Ich kann auch die analogen und digitalen Eingänge auslesen. Habe aber noch ein Problem mit dem schreiben auf die digitalen Ausgänge. Kann es an meinem OB1 liegen, das der noch falsch programmiert ist. Hier der Code dazu:
für die analoge Eingänge:
L PEW 752
T AW 0

L PEW 754
T AW 2

L PEW 756
T AW 4

L PEW 758
T AW 6

L PEW 760
T AW 8

für die analoge Ausgänge:
L EW 0
T PAW 752

L EW 2
T PAW 754

für die digitalen Eingänge:
L EB 124
T AB 10

L EB 125
T AB 11

L EB 126
T AB 12

für die digitalen Ausgänge:
L EB 4
T AB 124

L EB 5
T AB 125

Die Konfiguration des DP Slaves (S7 300 CPU 314C-2 DP) habe ich wie folgt gemacht:
Tabelle:
physikalische Adresse | virtuelle Adresse (Adreß-Typ) | Adresse | Steckplatz | Länge | Einheit | Stecker

PEW 752 | Ausgang | 0 | 4 | 1 | Word | X 11
PEW 754 | Ausgang | 2 | 5 | 1 | Word | X 11
PEW 756 | Ausgang | 4 | 6 | 1 | Word | X 11
PEW 758 | Ausgang | 6 | 7 | 1 | Word | X 11
PEW 760 | Ausgang | 8 | 8 | 1 | Word | X 11
PAW 752 | Eingang | 0 | 9 | 1 | Word | X 11
PAW 754 | Eingang | 2 | 10 | 1 | Word | X 11
E124.0 – 124.7 | Ausgang | 10 | 11 | 1 | Byte | X 11
E125.0 – 125.7 | Ausgang | 11 | 12 | 1 | Byte | X 12
E126.0 – 126.7 | Ausgang | 12 | 13 | 1 | Byte | X 12
A124.0 – 124.7 | Eingang | 4 | 14 | 1 | Byte | X 12
A125.0 – 125.7 | Eingang | 5 | 15 | 1 | Byte | X 12

Ich hoffe die Informationen reiche, um mir zu helfen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Es ist mir völlig unklar was Du erreichen willst aber mit Deinem Befehlssequenz:

L PEW 752
T AW 0

nimmst Du den Wert des ersten integrierten Analogeingang und schreibst es quasi-Bitweise auf den 16 Digitalausgänge A0.0 bis A1.7 - wenn Du diese Ausgänge überhaupt an einem DP-Slave hast.

Dies wiederum:

L EW 0
T PAW 752

nimmt den Zustand von den 16 Digitaleingänge E0.0 bis E1.7, wenn sie existieren, und schreibt sie als Wert and Analogausgang 752 - der erste integrierte Analogausgang.

Willst Du das wirklich?

Wenn Du die Werten zwischenspeichern willst, dann kannst Du Merker dafür benutzen, z. B.:

L PEW 752
T MW 0

oder wenn Du einfach den Eingang nach einem Ausgang kopieren willst, kannst Du das einfach so machen:

L PEW 752
T PAW 752

Wenn Du uns ein bischen genaue sagen kannst, was genau Du erreichen willst, können wir weiter helfen.
 
Also ich habe eine S7 300 CPU 314C-2 DP. Diese will ich als DP Slave betreiben und habe sie so konfiguriert. (auch siehe Tabelle zuvor) Mit einer PB Masterkarte will diesen Slave unter Linux Parametrieren und ansprechen. Um die Eingänge am Slave einlesen zu können müssen diese auf einen Slave internen Ausgang umgesetzt werden, z.B. die ersten 8 Bit des 1. digitalen Eingangs 124.0 - 124.7 werden auf den internen Ausgang 10 (virt. Adresse) gelegt. Dazu muß dann auch noch ein passendes Programm geschrieben werden (siehe OB1). Für dieses Beispiel also
L EB 124
T AB 10
(Für einen phys. Ausgang genau anders herum)

Damit der Master die Daten einlesen kann muß ich den Slave mit den richtigen Parameterdaten parametrieren. Dann kann ich die Daten mit spez. Funktionen einlesen bzw. schreiben. Mitlerweile funktioniert es auch ganz gut. Wenn ich ohne laufende CPU (OB1) auf die Ein/Ausgänge zugreifen möchte geht das nicht, deshalb mußten die Lade und Transferbefehle programmiert werden.
 
Zurück
Oben