Datenaustausch von zwei S7-300 315 2DP CPU

B

bua

Guest
Zuviel Werbung?
->Hier kostenlos registrieren
Hallo erstmal an alle!!

Habe ein kleines Problem!!!!

Ich haben eine CPU 315 2DP im einsatz. Am Profibus DP sind bereits einige
ET 200S sowie andere DP Teilnehmer angeschlossen. Jetzt möchte ich noch an diesen Profibus eine zweite CPU 315 2DP anschließen.
Wie kann ich mit den zwei CPU eine Kommunikation aufbauen, welche
mir Daten zwischen zwei Datenbausteinen Austauscht?
Welchen Befehlssatz muß ich nehmen?
 
OP
A

Anonymous

Guest
SFB 14 - SFB15

Hallo,
eine Kommuniktion kann mit den Bausteinen PUT und GET (SFB14 und SFB15) aufgebaut werden.
Aber wie?
Wer kann ein Beispiel veröffentlichen?

Gruß
sps-fuzzy
 
OP
B

bua

Guest
Zuviel Werbung?
->Hier kostenlos registrieren
Servus,
gerade da kiegt mein Problem. Mit zwei 315DP kann der Befehlssatz mit den SFB nicht genommen werden. Die 315`ner haben nur Server funktion.
Das heißt diese Kommunikation mit den SFB14 und 15 Funktioniert nur bei der Kopplung von der 300er zu einer 400er!!. Ich habe aber zwei 300er. Ich könnte zusätzlich noch zur DP Schnittstelle nochmals ein Kommunikationsprozessor für DP setzten dann würde es Funktionieren. Aber ich wollte wissen ob es eine möglichkeit gibt dies mit der DP Schnittstelle von der CPU dies zu realisieren.

Gruß

bua
 

Martin Glarner

Well-known member
Registriert
19 Juni 2003
Beiträge
239
Punkte Reaktionen
25
Hallo,
Ich habe eine solche Kommunikation schon realisiert, indem ich 13 Byte
Ein- und Ausgangsbyte parametriert habe.
Eine SPS wird dabei als Master, die andere als Slave parametriert. Mit einem DP-DP-Koupler sind beide Master.
Wenn die Verbindung steht, habe ich 12Byte davon zum senden benötigt und 1 Byte um den Empfang zu bestätigen.
Ein Datenbaustein wird nun in einzelne Pakete unterteilt und hintereinander gesendet. Im ersten und letzten Byte habe ich die Paket-Nr., welche ich immer um 1 erhöhe, hinein geschrieben. Der Empfänger quittiert die Paket-Nr. zurück.
Die Paket-Nr. muss auch im letzten Byte stehen, damit die Daten konsitent übertragen werden.
Gruss Martin
 
OP
B

bua

Guest
Servus Martin,

Habe ich das richtig Verstanden bei deiner ersten Lösung das Du erst Daten auf dereinen CPU in ein Ausganbyte schreibst mit Daten Konsistent senden und liest diese dann mit der anderen CPU mit Daten Konsistent lesen ein????

Gruß

Bua
 

Martin Glarner

Well-known member
Registriert
19 Juni 2003
Beiträge
239
Punkte Reaktionen
25
Zuviel Werbung?
->Hier kostenlos registrieren
Hallo bua
Die Daten werden vom meinen Bausteinen mit dem Befehl "T PAW..." geschrieben und mit "L PEW..." gelesen. Das ganze wird in einer Schleife mit indirekter Adressierung gemacht.
Da der DP-Zyklus azyklisch zum CPU-Zyklus ist, muss am Anfang und Ende der Nutzdaten die Paketkennung stehen. Ich habe einen Baustein für das Senden (SEND) und für das Empfangen (Receive) geschrieben.
Je mehr Bytes für die Nutzdaten zu Verfügung stehen, dest schneller wird ein kompletter DB übertragen.

Du findest die Beschreibung der beiden Baustein bei uns auf der Home-Page "www.wito-ag.ch" unter Standardbausteine Famillie Kommunikation.
 

Markus

Administrator
Teammitglied
Registriert
16 Juni 2003
Beiträge
5.179
Punkte Reaktionen
1.249
aber nicht vergessen, es kann nur eine steuerung master sein!
auser du machst einen dp-koppler dazwischen!
 
OP
A

Anonymous

Guest
Zuviel Werbung?
->Hier kostenlos registrieren
Globaldaten

Hallo Leute,

es gibt noch eine andere Lösung wenn beide CPU's
am selben MPI-Bus hängen. In dem Fall kannst du
mittels Globaldatendefinition die Anzahl der von dir benötigten
Bytes austauschen (wenn es nicht so viele sind)
Damit du einen hohen Aktualisierungsgrad bekommst
mußst du die MPI-Baudrate möglichst hoch einstellen.
Wie hoch das geht, hängt von den CPU's und den anderen
Busteilnehmern ab die du am MPI-Bus hängen hast.
Hast du z.B. eine S7-412-2DP und einen Entwickungs-PC
mit einem CP5611 und dein Bus hat maximal 100m
kannst du die Baudrade auf 12MBaud einstellen. :wink:
Die Globaldaten definiert du dann indem du im S7-Manager mit
der rechten Maustaste den MPI-Bus anwählst und dann den Eintrag
<Globaldaten definieren> anwählst.
Wenn du dann z.B. von CPU1 das MD30 zur CPU2 in MD44 übertragen
willst gibst du bei der ersten CPU MD30 ein und bei der zweiten MD44.
Die MD30 must du jetzt noch als Sender angeben, hierzu MD30 mit der rechten Maustaste anwählen und <Sender> anwählen.
Mit dem Menu <Ansicht, ... Übersetzungsfaktoren> machst du sichtbar wie oft der OB1 durchlaufen werden muß bis der Wert 1-mal gesendet oder empfangen wird.
Wenn es nicht funktioniert schreib mir eine EMail
 
Oben