2 DP/DP Koppler - Wie ansprechen?

BPlagens

Level-1
Beiträge
149
Reaktionspunkte
20
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo!

Habe eine (peinliche) Frage zu S7-300 und DP-Koppler.

Derzeit habe ich eine 313C mit CP342-5.
Am PB-Master(Basisadresse &H100) hängt nur ein DP/DP Koppler (Adr.5)
Auf Steckplatz 1 habe ich ein Universalmodul mit E0-31 und A0-31.

Im Programm lese ich vom Koppler via FC2

CALL "DP_RECV"
CPLADDR :=W#16#100
RECV :=P#DB6.DBX0.0 BYTE 32
NDR :=#Ndr
ERROR :=#Error
STATUS :=#Status
DPSTATUS:=#DPStatus

und schreibe via FC1

CALL "DP_SEND"
CPLADDR:=W#16#100
SEND :=P#DB7.DBX0.0 BYTE 32
DONE :=#Done
ERROR :=#Error
STATUS :=#Status

Das geht auch Super, aber was mach ich, wenn ich einen zweiten Koppler einbaue?

Die Basisadresse vom PB-Master ist ja immer gleich!? Woher weiß der FC von welchem Koppler ich die Daten möchte?

Vielen Dank!
cu
 
Hallo, ist jetzt keine direkt Hilfe, eher eine Anmerkung
gibst du nicht über den Parameter "CPLADDR" die Adresse des Teilnehmers an???
Oder irre ich mich da jetzt völlig.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hätte ich mir auch so gedacht, aber lt. Doku:

CPLADDR INPUT WORD
Baugruppen-Anfangsadresse Bei der Konfiguration des CP mit STEP 7
HWKonfig wird die Baugruppen-Anfangsadresse in der Konfigurationstabelle ausgegeben. Geben Sie diese Adresse hier an.

Also die &H100 und nicht 5 (PB-Adresse).

Danke
cu
 
Hätte ich mir auch so gedacht, aber lt. Doku:

CPLADDR INPUT WORD
Baugruppen-Anfangsadresse Bei der Konfiguration des CP mit STEP 7
HWKonfig wird die Baugruppen-Anfangsadresse in der Konfigurationstabelle ausgegeben. Geben Sie diese Adresse hier an.

Also die &H100 und nicht 5 (PB-Adresse).

Danke
cu

Hallo

und welche Adresse wird in der HWKonfig für das zweite CP angegeben:confused:

Martin
 
Du legst die EA-Bereiche der DP/DP-Koppler in der Hardwarekonfig aufeinanderfolgend an und liest dann einen Block von 64 Byte für 2 Koppler aus. Man kann im Datenbaustein z.Bsp. ein Array aus UDT anlegen, für jeden DP/DP-Koppler einen Bereich und dann später darauf zugreifen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo!

Im Programm lese ich vom Koppler via FC2

CALL "DP_RECV"
CPLADDR :=W#16#100
RECV :=P#DB6.DBX0.0 BYTE 32
NDR :=#Ndr
ERROR :=#Error
STATUS :=#Status
DPSTATUS:=#DPStatus

und schreibe via FC1

CALL "DP_SEND"
CPLADDR:=W#16#100
SEND :=P#DB7.DBX0.0 BYTE 32
DONE :=#Done
ERROR :=#Error
STATUS :=#Status

Das geht auch Super, aber was mach ich, wenn ich einen zweiten Koppler einbaue?
So peinlich ist die Frage gar nicht - CP342-5 als DP-Master ist nicht ganz einfach.

Soweit ich das noch im Kopf habe, sind pro CP342-5 nur je 1 FC1 und FC2-Aufruf pro SPS-Zyklus zulässig. Bei diesem Aufruf werden alle E- und A-Daten zusammenhängend gelesen bzw. geschrieben.

Wenn Du also nun einen zweiten Koppler mit 32 Byte E und 32 Byte A-Daten projektierst, dann müssten Deine FC-Aufrufe nun so aussehen.

CALL "DP_RECV"
CPLADDR :=W#16#100
RECV :=P#DB6.DBX0.0 BYTE 64
NDR :=#Ndr
ERROR :=#Error
STATUS :=#Status
DPSTATUS:=#DPStatus

CALL "DP_SEND"
CPLADDR:=W#16#100
SEND :=P#DB7.DBX0.0 BYTE 64
DONE :=#Done
ERROR :=#Error
STATUS :=#Status

Die Daten vom zweiten Koppler liegen nun in DB6 bzw. DB7 direkt hinter den Daten für Koppler 1.
Wovon die Reihenfolge der Daten abhängt, bin ich mir nicht sicher, ob nun die niedrigere E/A-Adresse oder die niedrigere DP-Adresse zählt. Im Zweifelsfall für die niedrigere DP-Adresse auch die niedrigeren E/A-Adressen vergeben.

mfg
Maxl
 
Zurück
Oben