Step 7 Mit CP343-1 lean eine TCP-Verbindung zu einem PC/Server aufbauen

trabajador73

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

mit einer CP343-1 lean (6GK7 343-1CX10-0XE0 V3.0) soll eine TCP-Kommunikation zum Datenaustausch mit einem Kunden-PC oder -Server aufgebaut werden. Die CP-Baugruppe steckt auf dem Hauptrack an 8 Stelle und ist im Run-Modus ohne Fehler.
Die Vorgabe des Kunden ist lediglich TCP/IP-Verbindung, daher ist für mich eine Lean-Baugruppe ausreichend mit einer CPU 315-2 PN/DP (6ES7 315-2EH13-0AB0 V2.5).
In der Hardwarekonfig ist die IP-Adresse und Subnetmaske sowie Router IP für das Kundennetzwerk eingetragen, wie auch die Peripherieadresse angepasst.
In Netpro ist eine unspezifische TCP-Verbindung angelegt worden mit der ID "0001 A050". Für diese TCP-Verbindung wurde zudem die Partner-IP eingegeben und der Port 2000 für die SPS und für den Kommunikationspartner Port 405.
Die Verbindung wird von der SPS aufgebaut.
Der Kunde kann die Baugruppe anpingen, aber er kann diese sonst nicht erreichen und daher könne der Kunde nicht die Schnittstelle programmieren. Mir fehlt das Verständnis, was alles vorhanden sein muss, damit die Schnittstelle vom Kunden programmiert werden kann, was ein Verbindungsaufbau möglich macht? In Netpro wird die Verbindung als nicht aufgebaut angezeigt.
Als Kommunikationsbausteine wurden FC5 AG_SEND und FC6 AG_RECV verwendet. Hier wurde ID, Peripherieadresse und DB-Nr. sowie dessen Länge im Zeigerformat angegeben. Die Bausteinaufrufe Send und Recv erfolgen nacheinander und sind gegenseitig verriegelt sowie der Zyklus wird mit einem Taktmerker angeregt.
Soweit mein Parametrierung bezüglich der TCP-Verbindung.
Bei dem Recv-Baustein wird der Fehler 8183 angezeigt (Die Projektierung fehlt oder der ISO-/TCP-Dienst im Ethernet-CP ist noch nicht gestartet), welche auch passt.
Könnte es doch an meiner Parametrierung liegen, dass der Kunde die Baugruppe nicht erreicht? Also anpingen ja, aber ansonsten nicht erreicht, was auch immer der Kunde damit meint.
Hat jemand von Euch die Kenntnis, was bei einem Server oder PC alles zu beachten ist, damit eine Verbindungsaufbau möglich wird? Wer sollte den Verbindungsaufbau vornehmen, die SPS oder der PC/Server?
Ich würde dem Kunden gern etwas empfehlen, wenn die Verbindungsprobleme nicht resultieren aufgrund meiner Parametrierung, was sonst noch die Ursache sein könnte.
Mir fehlen dafür die Netzwerkkenntnisse.

Danke für jeden Beitrag.
 
Wenn die SPS der aktive Partner ist, dann versucht der CP sofort die TCP Verbindung zum parametrierten Partner aufzubauen. Wenn du also im Onlinezustand die Verbindung als nicht aufgebaut siehst, dann läuft auf der eingestellten Partneradresse auf dem Port entweder kein Dienst, oder der wirft dich gleich wieder raus wenn du keine Daten schickst (beispielsweise).

Aber die Richtung widerspricht dem was dein Kunde sagt. Wenn er einen Dienst bereitstellt (also TCP Server ist), dann kann er die SPS nicht erreichen, weil die SPS ihn erreichen muss.

Das würde ich nochmal mit dem Kunden abklären, also wer ist TCP Server und auf welchem Port wird kommuniziert.
 
Der Kunde verwendet "S7.Net" und der Port 102 soll der SPS zugeordnet werden. Die Kommunikation von SPS (S7-300 CPU) zum Partner erfolgt ja dann über Profinet und es kann eine unspezifische S7-Verbindung verwendet werden mit Eintrag der passenden IP-Adresse des Partners und der Verbindungsressource 10? Die CP343-1 Lean-Baugruppe wird dann nicht benötigt, sondern die Kommunikation erfolgt mittels der Bausteine Send/Receive direkt mit der CPU?
 
Warum ist der CP343-1 Lean eingebaut in eine SPS, die schon eine Ethernet-Schnittstelle hat (315-2 PN/DP)? Weil eine zusätzliche IP-Adresse aus einem anderen Netz benötigt wird? Dann ist der CP343-1 unbedingt nötig wegen der IP-Adresse. Nur wenn der Kunde die IP-Adresse bzw. PN-Schnittstelle der CPU erreichen darf und kann (Routing?), dann wird der CP343-1 nicht benötigt.

Der Kunde kann eine unspezifizierte S7-Verbindung zur CPU zur Ressource 03.02 aufbauen, dann hast Du nichts weiter zu tun als die Daten bereitzustellen und empfangene Daten zu verarbeiten. Du brauchst keine Kommunikationsbausteine aufrufen. Der Kunde kann auch eine spezifizierte S7-Verbindung zu einer Ressource 10.02, 11.02 ... aufbauen, dann musst Du die S7-Verbindung mit dieser Ressource in NetPro projektieren (passiv = "Aktiver Verbindungsaufbau" deaktiviert). Auch dann brauchst Du keine Kommunikationsbausteine aufrufen.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke Harald, ich glaube es verstanden zu haben. Wenn IP-Adresse von S7-CPU unterschiedlich, wie CP-343-1 IP-Adresse, weil das z.B. Lagerverwaltungssystem eine andere IP-Adresse hat, dann ist die CP-Baugruppe notwendig. Hier sind IP-Adresse von S7-CPU und CP-Baugruppe im gleichen Bereich, aber die Partner IP ist in einem anderen Bereich. Das Anpingen würde wohl funktionieren, aber eben ein Zugriff wäre nicht möglich, so die Mitteilung des Kunden. Dies könnte an der IP-Adresse liegen, welche nicht im gleichen Bereich, wie die CP-Baugruppe ist?
Der Vorschlag mit S7-Verbindung zu versuchen, wurde dem Kunden übermittelt, aber aktuell möchte er noch, über die TPC-Verbindung mit der Lean-Baugruppe versuchen die Kommunikation aufzubauen.
 
Der Kunde hat einen Zugang mittels TCP-Verbindung über die IP-Adresse und Port 2000, aber das Lesen und Schreiben klappt nicht. Die Verbindung wird nicht von der S7-300 aufgebaut.
Kann noch etwas an nicht parametrierter Einstellung der CPU oder CP-Baugruppe einen Zugang verhindern, wie im TIA Portal z.B. vollen Zugriff zulassen oder Put- & Getverbindung erlauben??
 
Hier sind IP-Adresse von S7-CPU und CP-Baugruppe im gleichen Bereich, aber die Partner IP ist in einem anderen Bereich.
Da ist es für den Partner der neuen TCP-Verbindung ziemlich egal, ob die Verbindung über die PN-Schnittstelle der CPU oder über die PN-Schnittstelle des CP läuft. Der Einbau eines CP343-1 ist imho unnötig.

Das Anpingen würde wohl funktionieren, aber eben ein Zugriff wäre nicht möglich, so die Mitteilung des Kunden.
Das soll der Kunde mal genauer erklären, wieso der "Zugriff"/Verbindungsaufbau zur IP der PN-Schnittstelle der CPU nicht möglich wäre ... oder ist das nur falsch ausgedrückt?

Wer hat sich das ausgedacht, für die Kunde-Verbindung einen CP343-1 einzubauen? Derjenige weiß vielleicht/hoffentlich, warum und wie das geht. Also mal diese Person fragen/machen lassen?


Unabhängig davon ob der CP343-1 sinnvoll/nötig ist: eine TCP-Verbindung über den CP ist möglich und nicht schwer zu projektieren und programmieren.
In Netpro ist eine unspezifische TCP-Verbindung angelegt worden mit der ID "0001 A050". Für diese TCP-Verbindung wurde zudem die Partner-IP eingegeben und der Port 2000 für die SPS und für den Kommunikationspartner Port 405.
Die Verbindung wird von der SPS aufgebaut.
Der Kunde kann die Baugruppe anpingen, aber er kann diese sonst nicht erreichen und daher könne der Kunde nicht die Schnittstelle programmieren. (...) In Netpro wird die Verbindung als nicht aufgebaut angezeigt.
Als Kommunikationsbausteine wurden FC5 AG_SEND und FC6 AG_RECV verwendet. (...) Die Bausteinaufrufe Send und Recv erfolgen nacheinander und sind gegenseitig verriegelt sowie der Zyklus wird mit einem Taktmerker angeregt.
(...)
Bei dem Recv-Baustein wird der Fehler 8183 angezeigt (Die Projektierung fehlt oder der ISO-/TCP-Dienst im Ethernet-CP ist noch nicht gestartet), welche auch passt.
Was meinst Du mit "die Verbindung wird von der SPS aufgebaut"? Meinst Du: "Aktiver Verbindungsaufbau" ist aktiviert?
(Wo doch in Netpro die Verbindung als nicht aufgebaut angezeigt wird.)
Wenn das Kunde-Programm bei Bedarf eine Verbindung zum CP343-1 Port 2000 aufbauen will, dann würde das nicht gehen, wenn der CP343-1 auf Port 2000 schon/noch irgendeine Verbindung aufgebaut hat.
Fehler 8183 bedeutet vermutlich einfach, daß die Verbindung (noch) nicht aufgebaut ist.

Hast Du mal die "Spezialdiagnose" des CP angeschaut (CP343-1 Lean > Baugruppenzustand > Spezialdiagnose), tauchen da im Diagnosepuffer abgelehnte Verbindungsversuche auf?

Laß mal beim Partner den Port frei (üblicherweise wird ein PC seine eigene Portnummer nicht vorgeben), also:

Eigenschaften der TCP-Verbindung:
- "[ ] Aktiver Verbindungsaufbau" deaktiviert
- Wegewahl: über den CP 343-1 Lean
Bei Adressen:
- Lokaler Port: 2000
- Partner IP: IP-Adresse des Partners
- Partner Port: leer lassen

Wie/warum hast Du AG_SEND und AG_RECV gegenseitig verriegelt? Bei einfachen Protokollen mit fester Telegrammlänge werden AG_SEND und AG_RECV üblicherweise immer aufgerufen.
Zeige uns mal die Programmstellen mit den Aufrufen von AG_SEND und AG_RECV

Wie werden die Kommunikationsbausteine FC5 "AG_SEND" und FC6 "AG_RECV" programmiert?
Schau mal in die Linkliste in meiner Signatur, ob Du da weitere für Dich hilfreiche Informationen und Programmbeispiele findest.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Was meinst Du mit "die Verbindung wird von der SPS aufgebaut"? Meinst Du: "Aktiver Verbindungsaufbau" ist aktiviert?
Ja, Aktiver Verbindungsaufbau ist aktiviert. Beim online Nachsehen in Netpro, ob eine Verbindung aufgebaut ist, wurde diese Verbindung dann als nicht aufgebaut angezeigt. Aktuell möchte der Kunde, dass er die TCP-Verbindung aufbaut, da hat er mehr Erfolg. Der Kunde kann aber aktuell keine Daten Lesen bzw. Schreiben.
Nach dem Hinweis von Thomas,
Das würde ich nochmal mit dem Kunden abklären, also wer ist TCP Server und auf welchem Port wird kommuniziert
,
wurde der Haken bei Verbindungsaktivierung von mir entfernt.
Hier die Aufrufe von AG_Send und AG_Recv:
 

Anhänge

  • AG_Send_AG_Recv_Aufruf.pdf
    135,4 KB · Aufrufe: 28
Hallo Harald,
der Kunde hat die Kommunikation hergestellt mit einer TCP-Verbindung und den Ports 2000 für SPS und 405 für den Partner der SPS. Es konnten in dem SPS-DB Daten geschrieben und gelesen werden.
Danke für Eure Unterstützung und Anregungen.
 
Zurück
Oben