TIA S7 1500 zu TCP/IP Datenausautausch

litlegerman

Level-2
Beiträge
336
Reaktionspunkte
13
Zuviel Werbung?
-> Hier kostenlos registrieren
Gute Morgen,
ich möchte gerne zwischen einen S7 1515 und einer Anlage die mir Daten (Schreiben und lesen) Via TCP/IP Protocol zur verfügung stellt.
Ich bin schon mal so weit gekommen, das ich mit TSEND_C und TRCV_C schon wahrscheinlich auf dem richtigen Weg bin, ich habe mir auch schon das Beispiel Projekt von Siemens heruntergeladen wo eine Verbindung zwischen einer S7 1200 und einer S7 1500 aufgebaut ist und daten mit diesen beiden Bausteinen ausgetauscht werden.
Nun zu meinem Problemen:
In diesem Projekt ist als verbindung Protocol TCON_IP_RFC verwendet, ich brauche aber TCP/IP (da von der Fremdanlage der Port bekannt ist, gehe ich erst mal davon aus das ich das brauche).
In der Hilfe zu diesem Projekt ist die rede davon, dass man das Protocol TCON_IP_V4 für die Verwendung von TCP/IP verwenden soll, jetzt kann ich dieses leider nicht finden, und wüßte auch nicht wie ich dieses selbst erstellen sollte.
Wahrscheinlich ist die Lösung einfach, aber ich komm aktuell nicht drauf?

Außerdem habe ich vom Hersteller der Anlage, zu der ich die Verbindung aufbauen muss einen Verbindungs liste bekomm wo die adressen in byte Arrays blockweise eingetragen sind, ich bnötige aber eigentlich erst die Daten ab Byte 5182 und ich habe noch nicht herusgefunden ob ich mit dem TSEND_C und TRCV_C auch erst, wie in meinem Fall erste ab byte 5182 anfangen kann zu lesen, oder dmuß ich ich immer alles auslesen?

Danke schon mal für die Hilfe
 
TCON_IP_V4 enthält die Verbindungsbeschreibung. Also IP adresse des Partners, die Ports die ID der verbindung, HW_ID des Kommunikationsprozessors etc.

Du kannst im Stat des FBs oder auch in einem globalen DB eine Variable anlegen und als Typ dann TCON_IP_V4 angeben (statt BOOL oder INT und dergleichen). Diese Variable legst du dann an die entsprechende Schnittstelle der Kommunikationsbausteine an.
 
Außerdem habe ich vom Hersteller der Anlage, zu der ich die Verbindung aufbauen muss einen Verbindungs liste bekomm wo die adressen in byte Arrays blockweise eingetragen sind, ich bnötige aber eigentlich erst die Daten ab Byte 5182 und ich habe noch nicht herusgefunden ob ich mit dem TSEND_C und TRCV_C auch erst, wie in meinem Fall erste ab byte 5182 anfangen kann zu lesen, oder dmuß ich ich immer alles auslesen?

Zu dieser Frage: Da du TCP verwendest. Das ist eine zweiseitige Verbindung. Das heisst dein Partner sendet dir ein Paket und du empfängst es. Du kannst nicht nur ein Teil empfangen.
Du musst zwar alle Pakete annehmen die er dir Sendet. Du kannst aber die welche du nicht benötigst einfach verwerfen und nicht bearbeiten. üblich ist es. Dass man eine Liste hat mit den Daten die kommen. Die Pakete haben dann eine Kennung nach der du dann die empfangenen Pakete auf deine eigenen DBs verteilen kannst. Dasselbe wenn du was sendest. Aber das müssen die Teilnehmer halt untereinander abmachen.

Ich kenne auch anlagen da wird über eine Verbindung genau nur 20 Bytes übertrage die immer dasselbe enthalten und über eine weitere Verbindung nochmal ein paar bytes die ebenfalls immer dasselbe enthalten. Macht es einfacher für den Programmierer. Blockiert aber unmengen an Verbindungsresourcen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten morgen,
Ich habe eine Anlage die mir 2500 bytes an daten zur verfügung stellt, diese daten möchte möchte ich mit einer s7 1510 auslesen.
Als verbindungs Infos ist die ip adresse erkannt, der port, und der sendes zyklustakt.
Ich habe es mit trcv_c versucht, bekomme aber immer den status 7001 oder 7002.
Als verbindug habe ich es mit tcon_ip_v4 verwendet mit follgenden einstellungen:
Interface id: 64 (aus hardware aufbau)
Id: ???
Connection type: 16#0b
Active...: sowohl true als false versucht
Remote adress: ip adresse der entfernten anlage
Remote port: port der anlage in der Beschreibung

Bei data habe einen globalen db mit einem array of byte genommen, der von der anzahl zur Beschreibung passt

bekomme immer nur 7001 oder 7002

liegt es an den ???
 
Was meinst du mit "???", dort muss ein Wert eingetragen werden von 1 bis 4095. Wenn du mehrere Verbindungen aufbauen willst, dann müssen diese Ids unterschiedlich sein.
 
Moin,
Also um ein wenig erfahrung zu sammeln habe ich das Projekt von Siemens verwendet:
Ouc_S7-1200_S7-1500
Dabei ist mir aufgefallen, dass es mit dem Original Konfig (Iso) funktioniert, aber ich benötige TCP/IP.
Ich habe der einfacherheit halber ein zweites Parameter Set (Siehe Screenshots) gemacht mit TCP und das alte mit ISO.
TCP geht aber nicht... kann mir jemand helfen?Empfangen 1200.jpgEmpfangen 1500.jpgSenden 1200.jpgSenden Empfangen 1500.jpg
 
"Geht nicht" ist ne ziemlich dürftige Fehlerbeschreibung.

Hast du auf beiden seiten auf TCP gewechselt? Ports richtig eingestellt? Alles geladen und neu gestartet?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Moin,
Dabei ist mir aufgefallen, dass es mit dem Original Konfig (Iso) funktioniert, aber ich benötige TCP/IP.
Ich habe der einfacherheit halber ein zweites Parameter Set (Siehe Screenshots) gemacht mit TCP und das alte mit ISO.
TCP geht aber nicht...
habe ich dich richtig verstanden, dass du den von Siemens generierten Verbindungs-DB erweitert hast? Ich meine damit schon Probleme gehabt zu haben, nur weil ich diesen von einem Projekt in ein anderes kopiert habe.
Warum änderst du nicht einfach in deinem Funktionierenden Projekt den Verbindungstyp mithilfe des Werkzeugkastens?
TCPVerbindung.jpg
Und danach dann einmal Software übersetzen und ggf. auch ein Stop->Run.
 
Danke für die schnelle Antwort.
geht nicht bedeutet, das die beiden sender status 7004 haben. Also verbunden.
und die empfänger wechseln zwischen 7001 und 7002.
habe alles auf tcp umgestellt und danach die cpus vom netz genommen und neu gestartet.
die ports sind alle glech eingestellt 2000
 
Ich hab das mit dem Datentransfer erst hinbekommen, als ich auch auf der passiven Seite einen TCON verwendet habe der die Verbindung annimmt.

Aktiv ist eine 1516, die mit TCON und TDISCON die Verbindung aufbaut und passiv 1214C die mittels TCON die Verbindung annehmen. Ohne TCON funktioniert es manchmal, manchmal auch nicht.
 
Zuletzt bearbeitet:
Nein, ich bin noch da...;)
hatte nur Probleme mit dem "Wizzard des Bausteins" bei Auswahl der Verbindung ist mir TIA (V14 SP1 Update 6) immer wieder abgeschmiert.
Habe es dann auf V15 zum laufen bekommen. Alles wie gewünscht.
Aktive Seite CPU 1211c (nur zu Testzwecken)
mit der IP der Anlage, mit der ich später die Daten austauschen will und dem Port dem ich vom Anlagenhersteller habe (2000)

Auf der anderen (passiven) Seite miene S7 1515
mit einer der selben IP bis auf das lezte byte natürlich:cool:
und anderen Ports

Im Büro funktioniert der Aufbau tadellos Kommuniziert einwandfrei in beide Richtungen.
Aber an der Anlage bekomme ich nur meinen Status "7002".

Ich könnte kot***
Kann mir noch irgend jemande einen Tipp geben
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Was ist denn der Partner für ein Gerät mit dem du kommunizieren willst, auch eine SPS, oder ein PC?

Wenn du die passive Seite sein sollst, dann muss dein Partner auch deine IP-Adresse wissen, ansonsten kann er ja keine Verbindung zu dir aufbauen.
Rein von den Informationen her die du erhalten hast (IP-Adresse und Portnummer des Partners) würde ich eher davon ausgehen, dass du die Verbindung aufbaust.
 
Der Partner ist, zumindest wie es scheint eine SPS, der schon über dieses Protokokoll mit einen PC/HMI kommuniziert

PC/HMI sind üblicherweise aktive Partner. Das heisst. Sie bauen die Verbindung auf.
Wenn du dasselbe machen willst (dass dir dein Partner dir seine Adressdaten zur Verfügung stellt, deutet darauf hin) dann musst du für dich Aktiv auswählen.
 
Zurück
Oben