Multimastersystem S7 400 / S7 300

Zuviel Werbung?
-> Hier kostenlos registrieren
Die PUT/GET Bausteine brauchen nur auf einer CPU ausgeführt werden.
Es gibt Teilnehmer welche die S7-Kommunikation nur in Server-Funktionalität beherrschen (steht dann so im Handbuch). D.h. dieser Teilnehmer ist dann passiv, und die PUT/GET-Bausteine müssen auf der Partner CPU ausgeführt werden.

Der Teilnehmer auf dem die PUT/GET-Bausteine ausgeführt werden ist Client, weil er die S7-Dienste der Server-CPU in Anspruch nimmt. Die Abwicklung der Server-Dienste übernimmt das Betriebssystem der SPS, darum muss auf dieser SPS nichts programmiert werden.

Mich wundert dass die jetzt mit solchen Fragen kommst, wo du vor 3 Monaten schriebst dass deine Kommunikation läuft...
 
vielen Dank Thomas!

Ich war gesundheitlich nicht in Ordnung. Deshalb musste ich etwas lange Pause machen.
Master-SLave Kommunikation läuft.Ich sagte eigentlich nicht, dass der Multi-Master-Betrieb funktioniert.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo liebe Freunde!

Das Beispielprojekt mit einer 400er und einer 300er mit CP342-5 (http://www.automation.siemens.com/ne...b_s7_s7_s7.htm) habe ich bei mir getestet.Ich habe am Schluss die Variablen beobachtet.Aber der Datenaustausch von der S7 -400 seite passiert nicht.
Bei mir bestehen die S7 400 aus der CPU 413-2DP und S7 300 aus der CPU 314 und CP 342-5.Warum PUT/GET nicht funktioniert, liegt vielleicht an der unterschiedlichen HW-Version?

Ich freue mich auf euren netten Beitrag:)

Grüsse
 
Geben die Put/Get Bausteine einen Fehlercode aus? Wenn ja, welchen?

Ansonsten schau dir mal den Baugruppenzustand des CPs an. Diese startest du mit Rechtsklick auf den CP im Simatic Manager.
In den dann erscheinenden Fenster sollte es eine weitere Schaltfläche "Spezialdiagnose" geben. Dann sollte sich die NCM S7-Diagnose starten, in der du den Zustand der projektierten Verbindungen angezeigt bekommst.
 
Danke für deine schnelle Anwort, Thomas!
Nein, die beiden Automatisierungsgeräte zeigen keine Fehler(BUSF,SF,EXTF..) Ok ich check es noch mal durch, wie du sagtest.Dann melde ich mich wieder.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi Thomas,

ich sende die im Anhang die Details dieses PUT/GET Beispielprojektes, das ich getestet habe.

Die Fehlercode von PUT und GET enthält "0" und findet keinen Datenverkehr statt.Die Diagnose von CP 342-5 habe ich auch hinter mir.Beim Steuerwert in der Variabletabelle von S7 400 habe ich "1" eingegeben, um den Datenaustausch zu starten.

Auf der S7-300 befindet sich nur Systemdaten, eine Variabletabbele und den Baustein "OB1",in dem es nichts steht, da es ja passiv sein muss.

Was könnte dann überhaupt fehlen oder verkehrt sein?
 

Anhänge

  • put get variabletabelle.JPG
    put get variabletabelle.JPG
    113,9 KB · Aufrufe: 15
  • Profibusteilnehmer.JPG
    Profibusteilnehmer.JPG
    42,7 KB · Aufrufe: 13
  • CP 342-5 Betriebszustand.JPG
    CP 342-5 Betriebszustand.JPG
    51,5 KB · Aufrufe: 11
  • CP 342-5 Diagnosepuffer.JPG
    CP 342-5 Diagnosepuffer.JPG
    79,6 KB · Aufrufe: 9
  • Bausteine S7 400.JPG
    Bausteine S7 400.JPG
    49,6 KB · Aufrufe: 11
Zuletzt bearbeitet:
Den interessanten Teil in der NCM Diagnose hast du dir nicht angesehen. Klapp mal den Baum für die "Verbindungen" auf. Dort sollte für alle projektierten Verbindungen der Zustand angezeigt werden.

Hast du denn überhaupt in Netpro eine S7-Verbindung zwischen den beiden Stationen angelegt? Die ID für die Verbindung musst du ebenfalls an deinen Put/Get Bausteinen entsprechend anpassen.
Nicht vergessen nach dem Anlegen der Verbindung in NetPro zu speichern und zu übersetzen, und dann die Systemdaten aus NetPro oder aus dem Simatic Manager in die CPU zu laden.

Wenn du da auch keinen Fehler findest, häng das archivierte Projekt hier mal an.
 
Hi Thomas!

Die verbindungen werden bei der Diagnose nicht angezeigt werden, da es nicht eingestellt wurde.Das heisst, ich muss diese IDs für die Kommunikationsteilnehmer selber eingeben?

Ich habe bei Netpro mit Profibus-DP vernetzt bzw. verbunden. wo kann ich die Verbindungen mit IDs versehen?Ich konnte es leider nicht finden..
 
Hi Thomas!

Die verbindungen werden bei der Diagnose nicht angezeigt werden, da es nicht eingestellt wurde.Das heisst, ich muss diese IDs für die Kommunikationsteilnehmer selber eingeben?

Ich habe bei Netpro mit Profibus-DP vernetzt bzw. verbunden. wo kann ich die Verbindungen mit IDs versehen?Ich konnte es leider nicht finden..

Dann hast du das wichtigste vergessen.
Du musst in Netpro eine Verbindung zwischen den beiden Stationen anlegen.
Dazu wählst du in deinem Fall die 400er CPU an, und dann über Rechtsklick eine neue Verbindung einfügen. Der Partner ist dann deine andere SPS, und als Verbindungstyp wählst du S7-Verbindung. Dann speichern und übersetzen, und die Systemdaten in die CPUs laden.
Im ersten Eigenschaftsfenster wird die ID der Verbindung angezeigt. Diesen Wert musst du bei den Put/Get Aufrufen an den Bausteinen angeben.

Du kannst dir das Ganze auch noch in den von dir verlinkten Beispielprojekt ansehen,
 
Ja , Thomas.Während du mir das schreibst. habe ich es herausgefunden, wie man es einstellt.Ich hoffe, es ist so richtig.Aber Auf der Stelle "Aktiver Verbindungsaufbau" von der pasiver Seite bzw. S7 300 steht automatisch "nein" und bei S7 400 "ja".ID von S7 400 lautet "3" und von S7 300 ist "1"

Diese Werte gebe ich bei PUT/GET an.Anschließend nehme ich es in Bertrieb..
 

Anhänge

  • ID Vergabe S7 400.JPG
    ID Vergabe S7 400.JPG
    61 KB · Aufrufe: 22
  • ID Vergabe S7 300.JPG
    ID Vergabe S7 300.JPG
    61 KB · Aufrufe: 11
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi Thomas,

ich habe im Programm in beiden Bausteinen PUT und GET ID "W#16#1" eingegeben, nachdem ich die Verbindungen auch wie beim Beispielprogramm konfiguriert habe. Aber der Datenverkehr läuft immer noch nicht..Diese festgelegte ID müsste ich auch im Datenbaustein eingeben, wo ID als Anfangswert deklariert wird?
 
Du hast jetzt eine zweiseitige Verbindung angelegt.
Darum hast du auch eine Lokale ID und eine Partner ID. Eine zweiseitige Verbindung muss auf beiden Seiten ausprogrammiert werden, aber nicht mit den Put/Get-Bausteinen.
Schau dir nochmal genau das Siemens-Beispiel an, dann siehst du den Unterschied.

Wenn dein Datenaustausch über Put/Get und rein von der 400er aus gesteuert werden soll, benötigst du eine einseitige Verbindung. Nur dann hast du auch nur eine Lokale ID. Du kannst deine bestehende Verbindung einfach dahingehend ändern, indem du im Eigenschaftsdialog der Verbindung den Haken bei "Einseitig" setzt (dann speichern/übersetzen/laden der SPS wie gehabt).

Im Programm musst du immer die Verbindungs-ID aus deinem eigenen Projekt verwenden. Du kannst da nicht einfach die Werte aus dem Beispiel abtippen.
Also wenn bei dir bei "Lokale ID" eine 3 steht, dann musst du auch bei den Bausteinen diese ID parametrieren.
Über die ID wissen die PUT/GET-Bausteine welche Verbindung und somit welcher Partner angesprochen werden soll, denn du kannst ja mehrere Verbindungen projektieren (Verbindungsglied zwischen S7-Programm und NetPro-Projektierung).

Wenns dann immer noch nicht läuft, fängst du wieder bei den an was ich in Post #24 geschrieben habe.

Eigentlich ist das alles garnicht so schwer, man muss es nur einmal gemacht haben ;-)
 
Ich bedanke mich bei dir Thomas:) Mit PUT/GET hat es geklappt.Eigentlich hätte ich lieber BSEND/BRECV anwenden sollen, da der Datenaustausch beidseitig erfolgen müsste:) Ich probiere, auch dann diesmal den bidrektionalen Datenaustausch zu realisieren.

LG

KaiKai
 
Zurück
Oben