CPU315 Ethernet BSEND BRCV Fragen...?

AndreK

Level-1
Beiträge
415
Reaktionspunkte
27
Zuviel Werbung?
-> Hier kostenlos registrieren
Wie das so ist: "Fahr mal ebend hin und mach mal...". Ist meine erste Ethernetkommunikation! Als Vorgabe habe ich die FB`s bekommen, stehen in der Kopfzeile... jetzt meine Fragen:

1. ID : Ist das eine Quasiadresse von meinem Teilnehmer?
2. R_ID : Die Adresse der Gegenstelle?
3. SD_1 : Habe ich als Pointer P#DB10.DBX0.0 BYTE 128 auf meinen DB10 ab Wort 0. Ist jetzt BYTE 128 die Menge der übertragenen Daten? Wenn ja warum...
4. LEN : Wieso nochmal zu sendende Länge in Bytes? Habe ich doch schon unter SD_1 mit der Anzahl der Bytes vorgegeben? Format ist Word, aber z.B. W#16#64 wird nicht akzeptiert...

Wo ist da mein Denkfehler?
Ich denke der BRCV ist ähnlich aufgebaut, deswegen frage ich dafür nicht extra nachmal ;-)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Na super...

... das ist schon geschehen.

Sagt mir aber ehrlich gesagt nicht viel. Wenn da steht ich soll WORD vorgeben und es wird nicht angenommen?
Ich soll die Anzahl der zu sendenden BYTES angeben und ich habe das schon im Pointer?
 
Hi, ich probiers mal

1: Das ist die ID der Verbindung (Kann über Rechtsklick verschaltet werden)

2: Diese ID muss bei bei einem zusammengehörigen Bausteinpärchen (z.B. CPU1-SEND; CPU2-RECEIVE) auf beiden CPUs gleich sein

3: Das gehört zum Pointer, die maximale Länge muss noch mal angegeben werden. Ist halt so

4: Das müsste ein IN/OUT Parameter sein. Daran kann man keine Konstanten hängen.
Das hat seine Gründe, ist hier aber OT.

Micha
 
Wie das so ist: "Fahr mal ebend hin und mach mal...". Ist meine erste Ethernetkommunikation! Als Vorgabe habe ich die FB`s bekommen, stehen in der Kopfzeile... jetzt meine Fragen:

1. ID : Ist das eine Quasiadresse von meinem Teilnehmer?
2. R_ID : Die Adresse der Gegenstelle?
3. SD_1 : Habe ich als Pointer P#DB10.DBX0.0 BYTE 128 auf meinen DB10 ab Wort 0. Ist jetzt BYTE 128 die Menge der übertragenen Daten? Wenn ja warum...
4. LEN : Wieso nochmal zu sendende Länge in Bytes? Habe ich doch schon unter SD_1 mit der Anzahl der Bytes vorgegeben? Format ist Word, aber z.B. W#16#64 wird nicht akzeptiert...

Wo ist da mein Denkfehler?
Ich denke der BRCV ist ähnlich aufgebaut, deswegen frage ich dafür nicht extra nachmal ;-)

Hi, also:
Pkt.1 = die ID aus Netpro für die Verbindung
R_ID ist eine freiwählbare Zahl (bei F-Progr muss sie duch 8teilbar sein), diese Zahl trägt sowohl der Sender als auch der Empfänger bei seinem jeweligem Baustein ein, die Zahl muss auf beiden Seiten gleich sein.
SD_1 ist der Gesamte Bereich
LEN hier die Länge als Dez.-Zahl eingeben, also 128.
Dann sollte es funzen
Gruß
Move
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Aha...

1. Die ID habe ich vom Leitsystem bekommen, ist 4 also W#16#4
2. Die R_ID hat man mir ebenso vom PLS vorgegeben... ist DW#16#42
3. Pointer wie gehabt P#DB10.DBX0.0 BYTE 128, also aus dem DB10 ab Adresse 0 128 Bytes.
4. Jetzt der LEN: Da habe ich per MOVE ein MW drangehänt, das MW wird mit W#16#80 beschreiben, also 80Hex für 128byte...

Wenn ich den Baustein anstoße bekomme ich Status 25 = übertragung läuft, aber er geht nicht auf Übertragung erfolgreich, der Status ist dann schon wieder auf 0.

Jetzt sucht der Kollege vom PLS... er kommt nicht mehr Online auf seine Soft SPS. Ist PCS7 mit CFC...

Also wenn ich 4 so richtig habe... bin ich ja schon zufrieden :)
 
Hi,

das klingt ja nach einer unspezifizierten Verbindung?, wenn ja:

Wenn du ID=4 bist dann muss PLS ID=3 oder ID=5 sein,
Unter NetPro, Verbindungseigenschaften, Adressendetails muss du die
Verbindungsressource (hex) eintragen, frei wählbar, aber auch hier muss es überkreuz laufen wie bei der ID, also z.B. Verbindungsressource bei dir
lokal = 10 / Partner = 11, dann muss PLS auf seiner Seite 11/10 eintragen.
Alles übersetzten, NetPro laden und CPU Run->Stop->Run nicht vergessen

Gruß
Move
 
ÄÄhhmmm...

... ich dachte die Verbindungs_ID für die Strecke muß bei beiden Partnern gleich sein... Kennzeichnet also eine Verbindungsstrecke... was bei mir die 4 ist, ist ja HEX auch 4...

Und die R_ID muß für Send und RCV gleich sein, um die Datenverbindung zu spezifizieren, wovon ja mehere möglich sein sollen über eine ID. Da sind Send und RCV über kreuz jeweils gleich...

Irre ich da!?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Nee nee,

die ID in Netpro für die Verbindung kann nicht gleich sein.
Wäre die Partner-CPU in deinem Projekt integriert, dann könntest du ja
die CPU bei der Projektierung über das entsprechende Menü auswählen.
Dann würde Netpro für dich als Beispiel ID=1 Lokal vergeben, für den Partner ID=2 vergeben.
Du müsstest an deinem Baustein Send, ID =1 eintragen, der Partner an seinem Rec-Baustein ID=2. R_ID ist aber jetzt hier gleich.
Die Partner CPU ist nicht Teil deines Projektes? Dann muss die Vergabe der ID händisch machen.

Gruß
Move
 
Hallo,

um die Verwirrung komplett zu machen habe ich auch eine Erlärung für ID und R_ID. ;)

ID:
Hier muß die Nummer angegeben werden, die im Step7-Projekt in NetPro als Verbindungsnummer
vergeben wurde. Die ID hat mit der ID der Gegenseite nichts zu tun.
Die ID kann per Rechtsklick und auswählen am BSEND/BRCV eingefügt werden.

Zitat aus dem Referenzhandbuch "System- und Standardfunktionen für S7-300/400"
R_ID
Mit dem Parameter R_ID legen Sie die Zusammengehörigkeit eines Sende- und eines
Empfangs-SFB/FB fest: Der Parameter R_ID muß beim SFB/FB auf der Sendeseite und
beim SFB/FB auf der Empfangsseite übereinstimmen.

Damit wird die Kommunikation mehrerer SFB/FB-Paare über dieselbe logische Verbindung
ermöglicht.

Die über R_ID festgelegten Bausteinpaare einer logischen Verbindung müssen für
diese Verbindung eindeutig sein.
Die R_ID kann frei gewählt werden, muß aber die zitierten Bedingungen einhalten.

Das Referenzhandbuch "System- und Standardfunktionen für S7-300/400" hat übrigens jeder
auf seinem Computer der Step7 installiert hat. ;)

Wie werden die Kommunikationsbausteine FB12 "BSEND" und FB13 "BRCV" auf der S7-300 programmiert?

Gruß
Harald
 
Nee nee,

die ID in Netpro für die Verbindung kann nicht gleich sein.
Wäre die Partner-CPU in deinem Projekt integriert, dann könntest du ja
die CPU bei der Projektierung über das entsprechende Menü auswählen.
Dann würde Netpro für dich als Beispiel ID=1 Lokal vergeben, für den Partner ID=2 vergeben.
Du müsstest an deinem Baustein Send, ID =1 eintragen, der Partner an seinem Rec-Baustein ID=2. R_ID ist aber jetzt hier gleich.
Die Partner CPU ist nicht Teil deines Projektes? Dann muss die Vergabe der ID händisch machen.

Gruß
Move

Dann müsste es ja ein Problem geben: Ich bin für das PLS ja ein untergeordneter Teilnehmer. Bzw. ich habe in meinem NetPro die Gegenstelle nicht eingetragen.
Im PLS NetPro bin ich die 4 und das PLS die 1, aber diese Daten kann ich ja gar nicht nehmen? Oder?

Kann ich den davon einfach ausgehen, das in meinem NetPro meine CPU 1 ist und die einzige Verbindung die ich habe 2? Oder muß ich mir vom PCS7 die Datenstelle für die Gegenstelle exportieren lassen und in meinem NetPro importieren. Dann hätte ich die ID`s. Die R_ID ist mir inzwischen klar.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ich habe jetzt mal...

Den Ziel-Soft-SPS in mein NetPro integriert...

Die Ethernetverbindung zeigt mir (siehe JPG) für Eigenschaften die S7 Subnetz ID 53CA an.
Das ist also in meinen Bausteinen die ID? Ja? Unddie Gegenstelle muß dann in seinem NetPro schauen welche ID seine Ethernetverbindung hat!? Und einen seinen Send/RCV als ID eintragen..!?

R_ID ist mir soweit klar...
 

Anhänge

  • Zwischenablage01.jpg
    Zwischenablage01.jpg
    26,9 KB · Aufrufe: 21
Den Ziel-Soft-SPS in mein NetPro integriert...

Die Ethernetverbindung zeigt mir (siehe JPG) für Eigenschaften die S7 Subnetz ID 53CA an.
Das ist also in meinen Bausteinen die ID? Ja? Unddie Gegenstelle muß dann in seinem NetPro schauen welche ID seine Ethernetverbindung hat!? Und einen seinen Send/RCV als ID eintragen..!?

R_ID ist mir soweit klar...

... das ist nicht die ID, die an die FBs muss.
Die gesuchte ID steht im Netpro in der Tabelle unter ID.
Dazu den gewünschten Teilnehmer (deine SPS) markieren.

Micha
 
Den Ziel-Soft-SPS in mein NetPro integriert...

Die Ethernetverbindung zeigt mir (siehe JPG) für Eigenschaften die S7 Subnetz ID 53CA an.
Das ist also in meinen Bausteinen die ID? Ja? Unddie Gegenstelle muß dann in seinem NetPro schauen welche ID seine Ethernetverbindung hat!? Und einen seinen Send/RCV als ID eintragen..!?

R_ID ist mir soweit klar...

Hi,

ich befürchte du weiß nicht was NetPro ist und du deshalb gerade son bischen aufm Holzweg bist.
Wenn die Gegenstelle eine PCS7 ist, dann wäre es sicher eleganter dein Projekt in das PCS7 Projekt zu integrieren, also ein Multiprojekt draus machen die Subnetze abgleichen und die Verbindung mittels NetPro auf der PCS7-Seite zu projektieren.
Anschließend kann man dein Projekt wieder aus dem PCS7 Projekt herauslösen und du kannst dann mit diesem Stand weiterarbeiten und die CPU dann neu laden.
So hab ichs zumindest immer gemacht wenn ich die PCS7-LT war und Unterstationen von anderen Lieferanten am Ethernet hatte.

Gruß
Move
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Ok, bin ein Stück weiter...

Ist ja fein, man muß wirklich nur auf die CPU klicken und neue Verbindung auswählen.

Jetzt habe ich
LOKALE_ID = 4
PARTNER_ID = steht nix drin...
TYP = S7 Verbindung
AKTIVER VERBINDUNGSAUFBAU : JA
SUBNETZ = Name des Ethernetbusses, bei mir Anlagenbus

Woher bekomme ich jetzt die Ziel ID die doch für den SEND benötige? Oder muß ich wirklich die ganze Netzttopologie aus dem NetPro des Leitrechners übernehmen? Würde über Bearbeiten/Importieren bzw. Exportieren gehen...
 
Ja, mit Netpro habe ich mich noch nicht wirklich beschäftigt. Habe ich bisher für die Profibusnetzt nicht wirklich benötigt.
 
Ist ja fein, man muß wirklich nur auf die CPU klicken und neue Verbindung auswählen.

Jetzt habe ich
LOKALE_ID = 4
PARTNER_ID = steht nix drin...
TYP = S7 Verbindung
AKTIVER VERBINDUNGSAUFBAU : JA
SUBNETZ = Name des Ethernetbusses, bei mir Anlagenbus

Woher bekomme ich jetzt die Ziel ID die doch für den SEND benötige? Oder muß ich wirklich die ganze Netzttopologie aus dem NetPro des Leitrechners übernehmen? Würde über Bearbeiten/Importieren bzw. Exportieren gehen...

Hi,

schau nochmal mein Kommentar Nr.7, da stehts doch.
Gruß
Move
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ok

Hi,

das klingt ja nach einer unspezifizierten Verbindung?, wenn ja:

Wenn du ID=4 bist dann muss PLS ID=3 oder ID=5 sein,
Unter NetPro, Verbindungseigenschaften, Adressendetails muss du die
Verbindungsressource (hex) eintragen, frei wählbar, aber auch hier muss es überkreuz laufen wie bei der ID, also z.B. Verbindungsressource bei dir
lokal = 10 / Partner = 11, dann muss PLS auf seiner Seite 11/10 eintragen.
Alles übersetzten, NetPro laden und CPU Run->Stop->Run nicht vergessen

Gruß
Move

Jetzt verstehe ich den Text, bis auf eine Kleinigkeit:
PLS NetPro ist schon eingestellt auf: Mein CPU 4, PLS 1

Wenn ich jetzt in meinem NetPro eine unspez. Verbindung einstelle mit z.b. in Hex meine CPU 10 und Ziel (PLS) 3 (wie im Bild).

Dann Trage ich in meinem SEND als Ziel aber die Hex Adresse aus meinem NetPro ein, also in diesem Fall3. Im PLS (habe ich nix mit am Hut), die tragen die Daten aus ihrem NetPro ein.

Habe ich das jetzt (endlich) richtig verstanden? Ich könnte es ja auf die Wärme schieben, aber ich friere mir einen Ast ab weil irgendjemand im Schaltschrankraum die Klima auf 18°C gestellt hat.

Bin dir auf jeden Fall schon mal sehr dankbar!
 

Anhänge

  • Zwischenablage01.jpg
    Zwischenablage01.jpg
    20,1 KB · Aufrufe: 18
Jetzt verstehe ich den Text, bis auf eine Kleinigkeit:
PLS NetPro ist schon eingestellt auf: Mein CPU 4, PLS 1

Wenn ich jetzt in meinem NetPro eine unspez. Verbindung einstelle mit z.b. in Hex meine CPU 10 und Ziel (PLS) 3 (wie im Bild).

Dann Trage ich in meinem SEND als Ziel aber die Hex Adresse aus meinem NetPro ein, also in diesem Fall3. Im PLS (habe ich nix mit am Hut), die tragen die Daten aus ihrem NetPro ein.

Habe ich das jetzt (endlich) richtig verstanden? Ich könnte es ja auf die Wärme schieben, aber ich friere mir einen Ast ab weil irgendjemand im Schaltschrankraum die Klima auf 18°C gestellt hat.

Bin dir auf jeden Fall schon mal sehr dankbar!

Hi, nochmal zum mitschreiben:)

Warum ist die ID aus Netpro fest??
Wenn du 4 bist und bleiben willst, dann muss die PLS 5 oder 3 werden, nützt nix, immer über kreuz
An deinem Baustein Send oder Receive mußt du nur die 4 eintragen, nicht mehr.
Dein Screenshot hat nix mit den Bausteinen zu tun.
Im Screenshot sieht man lokal (also du) hex=10, jetzt bei Partner, wo 03hex steht, 11hex eintragen, immer überkreuz. Die PLS macht jetzt das gleiche, aber spiegelbildlich, also ID lokal =5 Partner =4(das bist ja du),
Verbindungsressource Lokal =11, Partner =10( bist auch du)
Achtung: In deinem Screenshot fehlt der Eintrag für den Partner Rack/Steckplatz, hier 0/2 oder 0/4 eintragen, muss du bei der PLS erfragen auch welchem Steckplatz die CPU sitzt, nicht der CP (HW-Konfig).
Die PLS übernimmt natürlich deinen Steckplatz 0/2 wie auf dem Screenshot zusehen.

Gruß
Move
 
Zurück
Oben