Vernetzung dreier CPU315-2 PN/DP über die PNIO Schnittstelle

martin1988

Level-1
Beiträge
126
Reaktionspunkte
7
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen!

In meinem derzeitigen Projekt muss ich das erste mal mehrere 315er miteinander über die PNIO schnittstelle vernetzen.
Hab mit der Schnittstelle schon einige erfahren im Datenaustausch mit H-System und Ethernet-CP's gesammelt aber nicht über die Vernetzung untereinander!

Daher meine Frage:
Welche Bausteine kann ich überhaupt verwenden?
Ich hab ne S7-Verbindung im Netpro angelegt, kann mich aber noch wage daran erinnern mal bei einem meiner ersten Projekte mit der 315-2 PN/DP gelesen zu haben das zB AG-Send und AG-Recv nicht funktionieren würden.
Mir wär's sehr wichtig das ich das Empfangen und richtige Senden der Daten quittiert bekomme!

Wäre toll wenn da einer schon ein paar Erfahrungen hat die er mit mir teilen kann!
Vielen Dank schon mal!
 
AG_Send und AG_Recv funktionieren nicht mit der PN-Schnittstelle !

Es funktionieren nur die Bausteine für die S7-Kommunikation (PUT/GET bzw. BSEND/BRECV bzw. USEND/URECV).
Am einfachsten funktioniert der Datenaustausch mit Put/Get über eine unspezifizierte S7-Verbindung - damit kannst du direkt auf Datenbausteinbereiche zugreifen.

Wenn du reine TCP/UDP Verbindungen benutzen möchtest (z.B. Kommunikation mit Fremdsystemen), dann geht das bei den PN-CPU´s über die T-Bausteine (TCON,TRECV, TSEND).
Hier wird die Verbindung nicht in NetPro projektiert sondern erst zur Laufzeit über den Baustein TCON aufgebaut.

Schau dir mal das Kommunikations-Tutorial von Siemens an, da steht sehr viel drin:

Link


 
Anstatt, AG_SEND/AG_RECV, kann man TCON/TDISCON/TSEND/TRECV verwenden.
Das gibt denselbe Send/Receive Funktinaltät als AG_SEND/AG_RECV.

BSEND/BRECV ist vielleciht etwas einfacher als TCON/TDISCON/TSEND/TRECV.
 
Ich hab das mit Put/Get realisiert und völlig problemlos Teile von DB gesendet und abgeholt. Das ganze ist in 2-3 Netzwerken zu realisieren und nicht allzu kompliziert. In Netpro muß man dazu natürlich Verbindungen anlegen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Nach welchen Kriterien würdet ihr die beiden Verbindungen aussuchen?

1. S7-Verbindung mit BSEND/BRECV
2. TCP-Verbindung mit TSEND/TRECV

Sprich Vor- und Nachteile.
 
So, ich schieb das mal nach oben.
Nach welchen Kriterien würdet ihr die beiden Verbindungen aussuchen?

1. S7-Verbindung mit BSEND/BRECV
2. TCP-Verbindung mit TSEND/TRECV

Sprich Vor- und Nachteile.
Hat keiner eine Meinung dazu?

PS: Vielleicht hätte ich da einen eigenen Thread erstellen sollen, ich dachte mir nur es passt so gut. :rolleyes:
 
da ich es oft mit "gemischten" umgebungen zu tun habe (also S7, S5 und fremdsteuerungen) verwende ich i.d.r. TCP.
in reinen S7-umgebungen würde ich evtl. auch bsend/brecv verwenden.

was ich gar nicht meg ist put/get, da ich da keine konrolle über die zugriffe habe. wer weiß wo da überall in der
steuerung (merker ...) reingepfuscht wird von aussen...

gruß
thomas
 
Zuviel Werbung?
-> Hier kostenlos registrieren
da ich es oft mit "gemischten" umgebungen zu tun habe (also S7, S5 und fremdsteuerungen) verwende ich i.d.r. TCP.
in reinen S7-umgebungen würde ich evtl. auch bsend/brecv verwenden.
Angenommen wir gehen von einer reinen S7-Umgebung aus, gibt es denn qualitative Unterschiede oder gar von der Zuverlässigkeit bessere Protokolle?
 
da ich es oft mit "gemischten" umgebungen zu tun habe (also S7, S5 und fremdsteuerungen) verwende ich i.d.r. TCP.
in reinen S7-umgebungen würde ich evtl. auch bsend/brecv verwenden.

was ich gar nicht meg ist put/get, da ich da keine konrolle über die zugriffe habe. wer weiß wo da überall in der
steuerung (merker ...) reingepfuscht wird von aussen...

gruß
thomas

Na ja, das ist wohl (wie immer :ROFLMAO: ) eine Frage der Disziplin. Ich würde generell, bei allen Datenübertragungen immer empfehlen, das ganz klar festzulegen. Ein Bereich (DB) in den geschrieben wird und einer, in welchen gelesene Daten eingetragen werden. Dazu natürlich noch Lebensbit etc.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Problem mit dem BSEND

Hallo

Ich habe Probleme mit dem BSEND und dem BRCV.
Es ist der NetPro in beiden CPU´s geladen, die
Verbindung ist eine unspezifizierte nur mit den IP Adressen
vom Partner.
Es sind zwei PN CPU´s die direkt ohne Switch oder
dergleichen miteinander verbunden sind.

Mein Problem ist das mit dem Aufruf.
Wann kann ich einen Sendeanstoss aktivieren?
Alle Sekunde (Taktmerker), oder eine feste 1?

Im Moment habe ich NDR 0, ERROR 0 und STATUS 0
aber es passiert nichts.

Gibt es eventuell ein Beispiel oder eine Anleitung
wie ein konkreter Aufruf auf beiden Seiten funktioniert?
Ich habe die Hilfen und Handbücher angeschaut aber
da sind nur die Beschreibungen der Eingangsparameter
drin.

Wie ist das mit dem Parmeter LEN?
Muss ich da etwas reinschreiben?
Es ist doch mit dem Pointer ..... BYTE 10
z.B. die Länge schon definiert oder?

Im Paramter R_ID steht auf beiden Seiten
DW#16#1

Gruß
Bernhard
 
Ich probiere schon seit 3 Stunden und es kommt nichts an.

Ich habe schon x mal F1 gedrückt aber so richtig werde ich nicht schlau
draus.
Wann kann ich einen Send - Anstoss wiederholen?
Bei mir ist immer alles 0 also eigentlich kein Fehler.
Aber auch das DONE bleibt immer 0.

Nochmal zum Prizip.

Steuerung Steuerung
A B

FB12 Send ------ FB13 Recive
FB13 Recive ------ FB12 Send

Ist das so richtig.

Oder ist auf anderen Seite der gleiche
DB vorzusehen und ich schreibe nur rein?

Vieleicht habe ich ja auch einen Denkfehler.

Gruß
Bernhard
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Bernhard,

nachdem ich diesen Thread gestartet habe, habe ich mitlerweile viele Verbindungen über BSEND/BRCV projektiert und zum klappen bekommen.

Wie viele Daten überträgst du denn?
Ich liege zZ zum Beispiel oftmals so um die 100 Byte.
Die interene PN-Schnittstelle schaufelt die Daten innerhalb von 10-20ms nach anstoss zum Partner!
Wenn du also zB einen Blinktakt im Bereich von einer Sekunde hast kannst du damit Fehlerfrei übertragen!
Wichtig ist das der Anstoss am Eingang REQ nur bei positiver Flanke funktioniert, sprich ein statisches TRUE-Signal am REQ löst den Baustein nur einfach aus.

315pnkommfs1.png

315pnkommfs2.png


Ich tausche zwischen beiden SPS eine Datenmenge von 100 Byte aus, daher muss der Parameter LEN beim BSEND mit W#16#64 (HEX-Code für 100) beschrieben werden. Die Länge der Daten wird immer in Byte angegeben!

Wichtig ist beim BSEND/BRCV auch das die zusammen gehörigen Sende/Empfangsbausteine die selbe R_ID haben da mit BSEND/BRCV über eine Verbindung mehrere verschiedene Kommunikationen parallel laufen können!

Hoffe das hilft dir vielleicht noch etwas weiter!
 
S7 Verbindung unspezifiziert mit Put und Get

Hallo Martin 1988,

ich würde Dir vorschlagen eine einseitige unspezifizierte S7 Verbindung mit FB14 "GET und FB15 "PUT" zu projektieren.
Die Verbindung brauchst Du nur auf einer CPU einzutragen und die andere hat nur die Arbeits DB's.
Ich habe schon ne ganze Menge Verbindungen geschrieben auf dieser Art, das funktioniert echt super.
Such mal bei Google nach "S7 Verbindung mit einer CPU315-2PN/DP" Da wirst Du Treffer finden die auf Siemens verweisen.
Da bist Du dann richtig. Alles hier aufzuschreiben wäre zu viel des Guten. Wenn Du nichts findest schreib noch mal, dann schicke ich Dir ein Beispiel.
Gruß

Markus
 
Zurück
Oben