Kommunikation mit ISO on TCP

luekry

Level-1
Beiträge
4
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich habe ein Problem bei meiner Kommunikation zwischen zwei CPU315-2 PN/DP.

Ich habe mir aus dem Siemens Support das Beispiel-Programm für die offene Kommunikation mittels der T-Bausteine T_CONN , T_SEND, T_RECV und T_DISCON besorgt und auf meine Anwendung angepasst.

Meine aktive Station hat 192.168.0.11 , meine passive Station die IP 192.168.0.12 .

Die Verbindung wird zwischen den beiden Steuerungen aufgebaut, und meine Baustein T_SEND ist aktiv. Der T_SEND-Baustein hat die Status-Meldung 16#7000 und Error-Meldung 0 . Im Error-Speicher zeigt er mir den letzten Fehler 16#80C4 an.

Der Baustein T_RECV ist inaktiv hat die Satus-Meldung 0 und die Error-Meldung 16#80C4.

Dieser Fehler ist in beiden Sationen identisch.

Habe meine Einstellungen in dem Datenbaustein schon mehrfach überprüft, aber mir fällt da nix mehr auf.

Hoffe mir kann jemand weiterhelfen, wie und wo ich den Fehler beheben kann/muss.

Dankesehr...
 
Hallo,

das kann zahlreiche Gründe geben warum die Verbindung nicht
funktioniert!

Hast du mal über F1 die Hilfe für die beiden Bausteine aufgerufen?
Hier wird sehr gut im Detail erklärt wie solch eine Schnittstelle zu Parametrien ist und es werden natürlich auch die Fehlercodes im Detail beschrieben.

Grüße,
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich bin mir nicht zu 100% sicher, aber:

Auf der passiven Seite werden die genannten Bausteine nicht benutzt.
Stattdessen müssen dort passive CPU-Verbindungen angelegt werden,
und zwar für jede Transportrichtung eine eigene. Zudem muss auf die
TSAPs geachtet werden.
 
Ich klink mich mal ein.

Ich wollte auch mal eine Verbindung zweier 315-2PN/DP herstellen.
Beide CPU´s hab ich in NetPro an einem Profinet angeschlossen.
Jetzt kann ich eine S7-Verbindung der beiden CPU´s herstellen, wobei eine CPU eine aktiven Verbindungsaufbau hat.

Soweit so gut.
Aber wie kann ich jetzt eine Verbindung der beiden machen?

Hab was von T_conn und T_send bzw. T_recv gelesen.
Gibt es da ein gutes einfaches! Beispielprojekt?

Den T_conn hab ich eingefügt, allerdings finde ich den UDT65 nicht. Muß ich bei beiden CPU´s den T_conn einfügen?

Gruß wolder
 
@wolder

ich glaube du verwechselst hier etwas. Deine in NetPro projektierte S7-Verbindung hat nichts mit der offenen TCP/IP Kommunikation mittels den T-Bausteinen (TCON TSEND TRECV) zu tun.
Diese Bausteine benötigen keine projektierte Verbindung - die Verbindung wird hier erst zur Laufzeit des Programms über den Baustein TCON aufgebaut.

Mit deiner projektierten S7-Verbindung kannst du aber z.B. mit den Bausteinen PUT und GET (FB 14,15) Daten zwischen den beiden CPU´s austauschen.

Ein Beispiel für die offene TCP/IP Kommunikation mit den T-Bausteinen gibt es hier Link

Ein Beispiel für die S7-Kommunikation via PUT und GET gibt es hier Link


@luekry

bist du sicher dass die Verbindung wirklich aufgebaut wird - was sagt denn der Baustein TCON.

16#80C4 - sagt ja aus, dass die Verbindung momentan nicht aufgebaut werden kann.

Meistens sind die Fehler im Verbindungsstring zu suchen - wenn du hierfür den UDT geändert hast, dann nicht vergessen, den Datenbaustein neu zu initialisieren.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Geht die Verbindung nur mit hilfe einer CP 343-1?

Ich dachte man könnte jetzt mit der Integrierten PN-Schnittstelle Daten direkt über die CPU´s austauschen?!

PUT/GET gehen, so wie ich das jetzt verstanden habe, nur mit der CP.

Daher dachte ich an die offene Kommunikation.

Gruß wolder
 
@wolder

wenn du dir die Mühe machen würdest, mal die beiden Links, die ich gepostet habe anzuschauen, dann hätte sich deine Frage erübrigt.

PUT und GET funktioniert auch mit bzw. über die integrierte Ethernet-Schnittstelle der PN-CPU´s - mann muss nur aufpassen, dass man die richtigen Bausteine (FB14/15) verwendet - aber das steht alles im oben genannten Link - mann muss nur des Lesens mächtig sein :)
 
Danke.

Das Projekt von dem Link ist mit 2 CP´s aufgebaut.
Daher dachte ich, dass es nur mit CP´s geht.
Aber jetzt hab ich es am rennen.

Mein Fehler war, dass ich auf der CPU programmiert habe, die keinen aktiven Verbindungsaufbau macht.
Bei der Projektierung in NetPro kann ich eine neue S7-Verbindung machen, wobei einer der CPU´s einen aktiven Verbindungsaufbau macht. Auf der kann ich dann auch PUT und GET verwenden.
Ich hab das leider immer auf der anderen ausprobiert. :sw14:

Kaum machts man richtig, funktionierts auch.

Gruß wolder
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich hole das thema mal wieder hoch...

Ich habe derzeit auch die Aufgabe eine offene TCP Verbindung aufzubauen, denn die beiden betroffnen CPUs sind in unterschiedlichen SPS-Projekten. eine S7 Verbindung is somit nich möglich und auch nicht gewünscht. Die Projektierung im Netpro soll für alle vorhandenen Teilnehmer unangetastet bleiben.

Dabei hat eine CPU einen CP (343-1), die zweite hat keinen CP.

Bei den Steuerungen handelt es sich um eine 315-2 PN/DP und eine 315-2 DP + CP343-1.

Jetzt versuche ich über T_Con, T_Discon, usw eine Verbindung aufzubauen. Der Status des aktiven Teilnehmers bleibt aber 0x7002



Ich habe ISO on TCP und open TCP versucht aber nichts funktionier so recht.

Ich habe schon offene Verbindung zu siemens fremden Geräten aufbauen können (Kamerasysteme etc) aber zwischen zwei S7 CPU klappt das nicht so recht. Ich bin die Hilfen von Siemens schon durchgegangen und habe den T_Con Parameter DB entsprechend deren Vorgaben mit Werten versorgt. Bei der mit den Ports und/oder den TSAPs bin ich mir aber nicht so sicher:

Lege ich die über den Werteintrag im T_Con Parameter DB einfach fest oder muss ich das irgendwo in der HW config einstellen bzw auslesen???

Die Ports fangen ja ab 2000 an, hab dann einfach mal 2001 genommen. bei den TSAPs für ISOonTCP habe ich E00201 genommen
E0 = TSAP Beginn
02 = Steckplatz 2 der CPU
01 = Verbindung 1

Ich glaube fast da liegt evtl der Hase im Pfeffer. Bei Fremdgeräten konfiguriere ich einfach Adresse und Portnummer und die S7 macht über die obigen Bausteine den Rest...mmmh



Danke schonmal im Vorraus
 
So, Fehler gefunden... es war ein Verständnisproblem:

Wenn der aktive Teilnehmer seine verbindung aufbauen will, kommt der Status 0x7002...
Der passive Teilnehmer muss natürlich auch versuchen eine Verbindung aufzubauen. Danach wird Der Status wieder auf 0x7000 zurückgesetzt und die Verbindung steht. Den passiven Teilnehmer habe ich bei der Problemstellung nie beachtet. Fremdgeräte machen das intern über ihre eigene Abarbeitung. Bei zwei Steuerungen muss ich natürlich auch beim passiven Part das ganze über ein kleines Programm regeln...

Die Hilfe mit den UDTs zum Erstellen der Parameter Datenbausteine hat dabei sehr geholfen, egal ob TCP oder ISOonTCP...

Als Leitfaden der mich auf die Lösung gebracht hat gebe ich mal den hier an:
https://cache.industry.siemens.com/...tt_110532/v1/58875807_net_tcon_s7-1500_de.pdf
Es ist zwa für TIA und die S7 1500 aber die Prinzipien des Verbindungsaufbaus haben sich nicht grundlegend geändert...
 
den obigen Versuch habe ich zu Testzwecken mal mit zwei 315-2 PN/DP aufgebaut. Wie schon gesagt funktioniert das ganz gut.

Mein eigentliches Ziel ist es aber eine DP-Steuerung+CP mit einer PN/DP-Steuerung ohne CP mit einander zu verbinden.

Bei der DP-steuerung wird ein fehlender SFC133 angeprangert, der im OS der Steuerung wohl nicht existent ist. Kann ich die beiden Steuerungen überhaupt mit einander reden lassen (offene Verbindung) oder geht das nur wenn beide ne PN/DP sind oder halt beide n CP haben?

auf der DP Steuerung mit CP343-1 ist T-CON & Co leider nicht anwendbar
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ja, es soll möglich sein ein S7 CPU mit CP343-1 (mit NetPro konfigurierte Verbindung und AG_SEND/AG_RECV) mit ein S7 CPU mit PN Schnittstelle zu verbinden (mit TCON/TDISCON/TSEND/TRECV).
Selber haber ich aber keine Erfahrung dazu, und kenne auch kein Beispielprojekt mit diese Kombination.
 
Ich habe derzeit auch die Aufgabe eine offene TCP Verbindung aufzubauen, denn die beiden betroffnen CPUs sind in unterschiedlichen SPS-Projekten. eine S7 Verbindung is somit nich möglich und auch nicht gewünscht.
eine S7-Verbindung ist möglich (mit unspezifiziertem Partner), auch bei CPUs in getrennten Projekten


Die Projektierung im Netpro soll für alle vorhandenen Teilnehmer unangetastet bleiben.
Das geht nicht, die neue/zusätzliche Verbindung muß bei der Station mit dem CP in NetPro projektiert werden.


Der passive Teilnehmer muss natürlich auch versuchen eine Verbindung aufzubauen.
Das ist so nicht ganz richtig. Er soll nicht versuchen eine Verbindung aufzubauen, sondern muß lediglich auf die Verbindungsversuche des aktiven Partners reagieren.


Mein eigentliches Ziel ist es aber eine DP-Steuerung+CP mit einer PN/DP-Steuerung ohne CP mit einander zu verbinden.
[...]
Kann ich die beiden Steuerungen überhaupt mit einander reden lassen (offene Verbindung)
Ja das geht, ich habe das schon gemacht. Mit zentraler passiver CPU 315-2 PN/DP und dezentralen aktiven CPU314 + CP343-1 LEAN als Unterstationen. Den aktiven Verbindungsaufbau hatte ich der Einfachheit halber den Stationen mit den CP überlassen.


In den Unterstationen werden die ISO-on-TCP-Verbindungen über die CP343-1 in NetPro projektiert und mit AG_SEND/AG_RECV programmiert, in der PN-CPU werden die Verbindungen mit TCON/TSEND/TRCV programmiert und die Verbindungsparameter für TCON in DB hinterlegt - das macht man am einfachsten mit dem OC Wizzard. siehe die angehängten Bilder

Ich hatte damals eine 315-2EH13 Firmware V2.6, da muß der lokale TSAP noch mit E0 02 beginnen. Ab Firmware V2.7 kann das E0 02 entfallen. Mehr dazu siehe den OC Wizzard und das Siemens-Beispiel.

Für Links und Beispiele siehe FAQ: Linkliste SIMATIC-Kommunikation über Ethernet
und besonders das Programmbeispiel für S7-300 und Step7 classic
Wie wird eine ISO-on-TCP Verbindung für die offene Kommunikation über Industrial Ethernet programmiert?

Harald
 

Anhänge

  • IoT-PN-CP_OCW.jpg
    IoT-PN-CP_OCW.jpg
    139,9 KB · Aufrufe: 37
  • IoT-PN-CP_NetPro.jpg
    IoT-PN-CP_NetPro.jpg
    120,4 KB · Aufrufe: 41
@harald: danke für den tipp.

meine Verbindung soll derzeit andersrum aufgebaut werden. der aktive partner ist die 315-2 pn/dp. ich werde aber mal dein obiges beispiel verfolgen. weiterhin soll neben ISOonTCP auch open TCP (native TCP) betrachtet werden. wie gesagt ist eine offene tcp verbindung zwischen zwei pn/dp schon umgesetzt.

PS: hab mich oben wohl etwas laienhaft ausgedrückt.

- natürlich muss ich die unspezifierten teilnhemer auf der CP-seite projektieren. ich möchte die teilnehmer mit pn/dp steuerung unangetastet lassen, was das netpro angeht.
- mit Aufbau der passiven seite meinte ich das das req-bit am tcon baustein auf logisch=1 ist, damit die funktion auch auf die anfrage des aktiven teilnehmers antworten kann.
 
Zuletzt bearbeitet:
Zurück
Oben