TIA Verbindung S7 1500 zu S7 300

GS-Harri

Level-1
Beiträge
71
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich bekomme die Kopplung bzw. die Verbindung zweier SPS Steuerungen nicht hin und muss vorwegschicken, dass ich sowas noch nie gemacht habe.
Folgende Vorraussetzung:
  • S7 1500 mit 1516 CPU, TIA V13
  • S7 300 315 2AF03 mit CP 343-1 Lean und Step7 V5.5
Ich habe die Steuerungen über einen Switch an den PC mit folgenden IP Adressen verbunden:
PC: 192.168.1.99
S71500: 192.168.1.1
CP343 192.168.1.101

Sowohl im TiaPortal als auch im Simaticmanager kann ich die anderen Stationen sehen.
Ich habe im Tiaportal die GET und Put Bausteine aufgerufen und eine S7 Verbindung angegeben, die Bausteine melden mir den Status 1 und Error zurück.
Kann mir jemand in Stichworten schreiben, wie er eine Verbindung der beiden Station aufbauen würde und wie die Vorgehensweise ist?
Bedanke mich schon jetzt für eure Hilfe.
Grüße
HArri
 
Was hast du denn im Step7 als ferne Station angegeben? Eine S7-300?
Ist es möglich dein Step7 Projekt in TIA zu implementieren?

Warum S7 Verbindung und nicht ISOonTCP?

mfG René
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo René,

zunächst Danke für die schnelle Antwort.
Wie schon erwähnt, habe ich so etwas noch nie realisiert. Von mir aus auch ISOonTCP. Aber wie?
Ich dachte, die S7 Verbindung wäre die einfachste Lösung.
mfg Harri
 
Die S7 Verbindung ist darum nicht einfach weil die eigentlich eine S7 Station im netpro als Partner verlangt. Aber eine S7-1500 gibts ja in Step7 nicht.
Darum würde eine ISOonTCP einfacher gehen. Da kann man eine "AndereStation" als Partner einrichten.
Dort gibt man die IP Adresse der S7-1500 Ein. Und wählt eine TSAP (da am besten für Lokal und partner dieselbe nehmen).

Auf der S7-1500 Seite würde ich die Verbindung dann in Programmebene Aufbauen (geht auf S7-300 Seite auch)
z.B. So:
Code:
IF #init THEN
#TCON_Parameter.InterfaceId := 64; // HardwareID des Ports
#TCON_Parameter.ID := 1;
#TCON_Parameter.ConnectionType:= 12; // 12 für ISOonTCP
#TCON_Parameter.ActiveEstablished := true; // lokal aktiv aufbauen?
#TCON_Parameter.RemoteAddress.ADDR[1] := 172; // IP des Partners
#TCON_Parameter.RemoteAddress.ADDR[2] := 17;
#TCON_Parameter.RemoteAddress.ADDR[3] := 62;
#TCON_Parameter.RemoteAddress.ADDR[4] := 2;
#TCON_Parameter.LocalTSelector.TSelLength := 6; // lokale TSAP länge
#TCON_Parameter.LocalTSelector.TSel[1] := 'S'; // Das ist der lokale TSAP
#TCON_Parameter.LocalTSelector.TSel[2] := 'C';
#TCON_Parameter.LocalTSelector.TSel[3] := 'T';
#TCON_Parameter.LocalTSelector.TSel[4] := 'N';
#TCON_Parameter.LocalTSelector.TSel[5] := 'S';
#TCON_Parameter.LocalTSelector.TSel[6] := 'A';
#TCON_Parameter.RemoteTSelector.TSelLength := 6; // remote TSAP Länge
#TCON_Parameter.RemoteTSelector.TSel[1] := 'S'; // Das ist der TSAP des Partners
#TCON_Parameter.RemoteTSelector.TSel[2] := 'C';
#TCON_Parameter.RemoteTSelector.TSel[3] := 'T';
#TCON_Parameter.RemoteTSelector.TSel[4] := 'N';
#TCON_Parameter.RemoteTSelector.TSel[5] := 'S';
#TCON_Parameter.RemoteTSelector.TSel[6] := 'A';
END_IF;


 #Dummyval := BLKMOV(SRCBLK:=#Rec.Empfangsbereich, DSTBLK=>#Empfangsstring);




IF #C1.TCON.CONN_DONE THEN
  #C1.TCON.Donezähler := #C1.TCON.Donezähler + 1;
END_IF;  


IF #C1.TCON.CONN_ERROR THEN
  #C1.TCON.Errorzähler := #C1.TCON.Errorzähler + 1;
  #C1.TCON.STATUS_SAVE := #C1.TCON.CONN_STATUS;
END_IF;




#TCON_Instance(ID:=#TCON_Parameter.ID,
               DONE=>#C1.TCON.CONN_DONE,
               BUSY=>#C1.TCON.CONN_BUSY,
               ERROR=>#C1.TCON.CONN_ERROR,
               STATUS=>#C1.TCON.CONN_STATUS,
               CONNECT:=#TCON_Parameter);

"TCON_Parameter" ist in der Schnittstelle ein Datentyp "TCON_IP_RFC"

Versuch die Schnittstelle mal so aufzustellen und zu sehen ob die verbindet. Danach kannst du mit TSEND/TRECV daten Austauschen

mfG René
 
Ich würde behaupten dass eine S7-Verbindung von einer 300/400er auch zu einer 1500 möglich sein sollte.

Dazu in Netpro eine unspezifizierte Verbindung anlegen. Bei Partner IP-Adresse ist die der 1500 einzustellen, und unter den Adressendetails muss für die 1500er Rack=0 und Slot=1 eingestellt werden, das ist zumindest meine Wissensstand. Selber testen konnte ich das noch nicht.

Zugriff erhält man dann nur auf nicht-optimierte DBs der 1500.
 
MannOhMann,

ist doch nicht so einfach. Wie ich das verstanden habe, brauche ich bei einer S7 Verbindung am Partner nichts zu programmieren. Also im TiaPortal meine Put und Get Bausteine parametrieren und fertig. Ich habe noch nicht geschnallt, welche Einstellungen ich auf welcher Seite vornehmen muss.
Wenn ich auf 300er Seite mit Netpro eine S7 Verbindung einstellen will, bekomme ich die Info, dass meine CPU dies nicht unterstützt.
Wenn ich auf 300er Seite mit Netpro eine ISOonTCP Verbindung anlege, muss ich AGSend und Rec (FC5undFC6) in Step 7 parametrieren, was muss ich dann auf der Tia-Seite machen?
Ich löse jetzt mehrere Modicon A350 mit diesen Steuerungen ab und habe diese vor 25 Jahren vernetzt, das kam mir einfacher vor. Vielleicht auch, weil ich 25 Jahre jünger war..:cry:...
 
Also a bissel Schritt für schritt. Nehmen wir erstmal die S7 Verbindung. Allerdings ist das noch etwas Wolkig wenn man z.B. eine 1500er als Partner hat mit zwei Ports wie unterscheidet man die z.B. Aber eben. Ausprobieren.
So zum Starten.
screenshot.12.jpg

Rechtsklick auf die CPU in TIA.
dann geht dieses Fenster auf.
screenshot.13.jpg

Unspezifizierte Verbindung hinzufügen. Die roten Lämpchen ignorieren wir mal.
Jetzt sollte das so aussehen.
screenshot.15.jpg

Im roten Feld die PartnerIP eintragen. Wir bleiben unspezifiziert. Lokale Schnittstelle halt deinen Port auswählen.
Lokale ID Bleibt.
Unter besondere Verbindungseinstellungen wählst du noch aus ob Lokal Aktiv oder Passiv ist.
Dann kommen wir zu den wichtigen Sachen. Den Adressdetails.
screenshot.16.jpg

Hier Trägst du deine Recourcen Ein. Simatic-ACC deaktivieren wir mal. Lokale und Remote Verbindungsrec. stellen wir mal auf gleiche Nummern ein. (dann kommt es schon mal nicht zu verwechslungen.)
Hier siehst du gleich Baugruppenträger und Steckplatz des Lokalen Ports. Wichtig für die Partnereinstellungen.
Die Partner Baugruppenträger und Steckplatz wäre z.B. bei einer 315 PN/DP so wie hier dargestellt. Ansonsten siehst du dass dann wenn du die Verbindung auf der anderen Seite einrichtest.

Das geht dann so:
screenshot.17.jpg

Diese Verbindung so einfügen und auch wieder die Eigenschaften einstellen.
Wieder Aktiver Verbindungsaufbau je nachdem wie du das auf der anderen Seite eingestellt hast.
Ip Adresse des Partners ausfüllen und dann wieder zu den Adressdetails.
screenshot.21.jpg

Hier siehst du wieder. Partner wäre deine 1500er. Steckplatz und Rack muss hier so eingestellt werden wie lokal auf der 1500er. Auf der 1500er muss der Partner halt so eingestellt sein wie hier Lokal. Dasselbe gilt für den TSAP. Müssen immer Seitenverkehrt gleich sein.

Jetzt kommt noch das wichtige wenn du von der 300er auf die 1500er mit PUT/GET zugreifen willst.
screenshot.20.jpg


Damit sollte jetzt mal die Kommunikation von der 300 auf deine 1500er Laufen.
Trotzdem bevorzuge ich die OpenUser Kommunikation. Aber halt auch nur weil ich da alles aus der Software relativ easy schon aufbauen kann.

mfG René
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn ich auf 300er Seite mit Netpro eine S7 Verbindung einstellen will, bekomme ich die Info, dass meine CPU dies nicht unterstützt.
Die CPU könnte das schon, aber nicht über den CP343-1 LEAN - der kann S7-Verbindungen nur als Server, nicht als Client.

Wer soll denn eigentlich der aktive Partner (Client) sein?
Aus dem Beitrag #1 lese ich heraus, daß die S7-1500 sich mit der S7-300 verbinden soll.
Im weiteren Verlauf des Threads wird aber meistens über die Verbindung einer S7-300 zu einer S7-1500 gesprochen.

Ansonsten schau Dir mal diese Siemens-Anleitungen mit Beispielprojekt an:
Projektierung und Programmierung einer S7-Verbindung mit PUT/GET auf einer S7-1500 CPU
Programmierung einer Open User Communication auf einer S7-1500 CPU

Denkbar wäre auch noch eine Verbindung via Profinet-IO mit der S7-1500 als Profinet-Controller.

Harald
 
PS: bei einer S7-Verbindung mit PUT/GET mit der S7-1500 als Client müßte in der S7-300 (als Server) überhaupt nichts projektiert und programmiert werden.

Harald
 
PS: bei einer S7-Verbindung mit PUT/GET mit der S7-1500 als Client müßte in der S7-300 (als Server) überhaupt nichts projektiert und programmiert werden.

Müsste nicht. Is aber trotzdem schön wenn in der Verbindungsliste eines Projekts alles drin ist was so put und getted. Ich mach da sogar die Beschreibung für die Bedienstationen rein.
 
Danke für die ausführlichen Antworten.
Hier zu Erläuterung noch mal der Sachverhalt.
Ich habe eine Produktionsstraße, die mit AEG Steuerungen vernetzt war. A350, A500, A130, A120....) Diese Steuerungen bedienten bzw. bedienen einzelne Anlagenteile und waren mit einer A350 vernetzt. Auf dieser wurden dann verschiedene Auswertungen aufgrund der übermittelten Daten (Taktzeit, Stückzahlen...) ermittelt und über die serielle Schnittstelle ausgegeben. Im Laufe der Zeit wurden teilweise diese Steuerungen durch S7 300 (315 DP, 317T, Vipa..) ersetzt. Jetzt will ich die Daten-A350 durch eine S7 1500 ersetzen und dort meine DAten sammeln und auswerten und einen großen Teil der Fertigungslinie steuern. Die anderen Steuerungen sollen über Ethernet angebunden werden
Die S7 1500 soll also Client für mehrere Steuerungen sein. Ich habe mir vorgestellt, in den einzelnen Steuerungen Übergabe DB zu programmieren und den Rest im Tiaportal zu lassen, deshalb auch gerne die S7 Verbindung.
Dazu muss ich aber, soweit ich das verstanden habe, die anderen Steuerungen im Tiaportal in der Netzkonifguration laden, um die S7-Verbindung ziehen zu können. Wenn ich jetzt nur eine CP343 als neue Station anlege, kann ich das Subnetz verbinden, nicht aber die S7 Verbindung.
Wo liegt mein Denkfehler?
Harald
 
Dazu muss ich aber, soweit ich das verstanden habe, die anderen Steuerungen im Tiaportal in der Netzkonifguration laden, um die S7-Verbindung ziehen zu können.

Musst du nicht. Du kannst dann einfach keine S7-Verbindungen ziehen. Um Verbindungen zu ziehen muss man die Steuerung im selben Projekt haben. Dann werden auch die Verbindungsparameter von TIA automatisch gecheckt.
Wenn du die Steuerungen nicht ins TIA Portal nehmen willst (was ich verstehen kann ;)) Dann musst du dich um die Verbindungseinstellungen selber kümmern. Auch ob die CPU/CP noch Recourcen frei hat überhaupt die gewünschten Protokolle kann etc. Das macht man dann eben mit Verbindung zu unspezifiziertem Teilnehmer.

Wenn ich jetzt nur eine CP343 als neue Station anlege, kann ich das Subnetz verbinden, nicht aber die S7 Verbindung.
Wo liegt mein Denkfehler?
Harald

Wieso legst du überhaupt eine CP343 als Station an? Mach doch eine unspezifizierte Verbindung und vergib die Adresskonfiguration. Bedenke bei einer Lean muss die 1500er zwingend den aktiven Part übernehmen.

mfG René
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also,

ich hab jetzt folgendes probiert:
In der S7 1500 im OB 1 einen Get-Baustein aufgerufen und parametriert:Verbindungsparameter get.jpg
Dann erhalte ich folgenden Status:Status Get-Baustein.jpg

und meine Verbindung sieht wie folgt aus:Status Verbindung.jpg

Wo liegt mein Problem?
Ich programmiere über die X1 Schnittstelle (192.168.0.1) und habe die X2(192.168.1.1) direkt mit der CP (192.168.1.101) verbunden.
Aus Seite der S7300 bzw. der CB habe ich keine Verbindung oder ähnliches verbrochen.
 
Put/Get funktioniert nur mit S7-Verbindungen. Du hast eine ISOonTCP Verbindung projektiert. Die muss 1. unbedingt von beiden Seiten projektiert werden und braucht immer einen Sender und Empfänger.

mfG René
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ja genau, das ist mir auch aufgefallen. Ich hab nur keine Ahnung warum.
Wenn ich den Get parametriere gebe ich nur den Namen an, aber kein Protokoll. Bei der Diagnose wird als Verbindungstyp S7 Verbindung angezeigt und bei den Adressdetails steht dann als Protokoll ISOonTCP.
Wo stelle ich das ein bzw. gebe das vor?

ICh habe das Gefühl, ich bin nah dran, danke für die Geduld.

lg Harri
 
Müsste nicht. Is aber trotzdem schön wenn in der Verbindungsliste eines Projekts alles drin ist was so put und getted. Ich mach da sogar die Beschreibung für die Bedienstationen rein.

Deine Dummy-Verbindung hat aber einen Nachteil, denn die beiden S7-Verbindungen die du projektiert hast haben nichts miteinander zu tun.
Darum verschwendet sie bei beiden Partnern eine Verbindungsressource die überhaupt nicht verwendet wird. Wenn man sich den Verbindungsstatus anschaut ist es auch verwirrend wenn dort eine zusätzliche Verbindung auftaucht.

Bei einer unspezifizierten Verbindung kann man problemlos den Namen "unspezifiziert" in einen eindeutigeren Namen der Partnerstation ändern.
 
Deine Dummy-Verbindung hat aber einen Nachteil, denn die beiden S7-Verbindungen die du projektiert hast haben nichts miteinander zu tun.
Darum verschwendet sie bei beiden Partnern eine Verbindungsressource die überhaupt nicht verwendet wird. Wenn man sich den Verbindungsstatus anschaut ist es auch verwirrend wenn dort eine zusätzliche Verbindung auftaucht.

Wozu gebe ich dann die Partnerverbindungsrecource bei der Lokalen Verbindung an wenn die nix mit der Lokalen recource beim Partner zu tun hat?

Wieso funktionieren dann die Send/Recv Bausteine dann zusammen wenn die zwei unspezifizierten Verbindungen nix miteinander zu tun haben?

mfG René
 
Zurück
Oben