TIA Datenaustausch über ProfiNet

Schippi23

Level-1
Beiträge
52
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute!

Ich bräuchte etwas Hilfe zum Datenaustausch über ProfiNet.
Ich verwende TIA V14 und der Austausch soll zwischen 4 S7-1200 Steuerungen statt finden.

Mit den Programmbausteinen PUT und GET habe ich schon einen Austausch zwischen 2 CPU´s zusammen bekommen. Nur ist es doch so, dass mit dieser Methode beide Programme in einem Projekt erstellt werden müssen oder?

Bei mit handelt es sich um relativ "große" Programme die ich ungerne in einem Projekt haben möchte, sondern jedes in einem seperaten...

Es muss doch einen andere Möglichkeit geben Daten über ProfiNet auszutauschen...

Würde mich über ein bisschen Unterstützung sehr freuen.
 
iDevice! In einer Steuerung in der HW-Config unter Betriebsart aktivieren und per GSDML exportieren.
Im anderen Projekt GSDML-Datei Importieren -> fertig.

Alternativ die CPUs in dem jeweils anderen Projekt als Dummy anlegen für die Kommunikationsparameter.

Grüße

Marcel
 
Bei S7-1200 ist PUT + GET die denkbar ungünstigste Variante für Datenaustausch (muß extra freigeschaltet werden, geht nur mit nicht-optimierten Speicherbereichen, der Kommunikationspartner (Server) darf die Adressen der (unsichtbar) angesprochenen Variablen nicht ändern, keine Verbindungsdiagnose beim Server, keine Reservierung der nur 3 Verbindungsressourcen beim Server).
Allerdings ist PUT/GET anscheinend bequem für arbeitsscheue oder kenntnisarme Programmierer und wird wohl deshalb häufig verwendet. ;)

Ich würde ebenfalls IO-Kommunikation via Profinet-iDevice verwenden oder eine ISO-on-TCP-Verbindung mit TSEND/TRECV.

Mit welchen Geräten kann die S7-1200 über die integrierte PROFINET-Schnittstelle kommunizieren und welche Protokolle unterstützt die S7-1200?

Harald
 
allerdings ist put/get anscheinend bequem für arbeitsscheue oder kenntnisarme programmierer und wird wohl deshalb häufig verwendet. ;)

Made my day... :D

Wobei ich mich frage ob der Aufwand wirklich geringer ist eine Put-Get Verbindung zu projektieren statt die iDevice Funktion zu nutzen.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich habe jetzt eine Verbindung mit 3 S7-1200 CPU`s über TSEND_C und TRCV_C ralisiert. Funktionierte einwandfrei.
Bei den Verbindungen waren natürlich optimale Verbindungen (nur CPU`s über Switch verbunden ohne andere Teilnehmer).
Es lief auch kein Programm auf den Steuerungen sondern nur der Datenaustausch.

Nun habe ich das ganze zwischen einer S7-1500 und einer S7-1200 versucht.
Beide CPU`s besizten noch ProfiNet Teilnehmer wie z.B. HMI und SEW-FU`s.

Der Datenaustausch klappt zwar, aber es dauert EWIG bis die Daten hin und her geschickt werden (von 10s bis 60s).

Ich weiss nicht an was das liegt... Funken mir die FU´s dazwischen, liegt es an der Verbindung zwischen 1500 und 1200

Ich hab mal Screenshots der Verbidnung erstellt.

Ich würde mich SEHR freuen, wenn mir einer bei dem Problem helfen könnte!

Empfangen 1.jpgEmpfangen 2.jpgSenden 1.jpgSenden 2.jpg
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das ist ein klare Fall für I-Device.
Es ist sehr schnell. So schnell wie die CPUs seine Prosezimage aktualisieren und den Profinet aktalisiert werden.
Es ist zuverlässig.
Es ist einfach.
Und verschwendet keine Verbindungsressourcen.
Einsigste Nachteil ist das man den Konfiguration zum Laufzeit nicht ändern kann.
 
Zuletzt bearbeitet:
Was mir direkt auffällt, du hast eine 5Hz Clock verschachtelt... Dürfte also klar sein, warum das so lange dauert :)
https://support.industry.siemens.co...1200-s7-1500-cpu-programmiert-?dti=0&lc=de-WW
Hier im Beispiel von BigS haben die 0,5Hz genommen. Und den Send gegen den Req verriegelt...
Ja klar, 5Hz sind ja auch viel langsamer als 0,5Hz :cool: ;)

Wie umständlich Siemens in dem Beispiel den REQ erzeugt muß man ja nicht nachmachen...

Vielleicht hilft dieser Tip bei beiden CPUs (beide sind Profinet Controller) (ich weiß jetzt nicht wie das genau in TIA heißt):
reicht möglicherweise irgendwann nicht mehr die Zeit, um neben der zyklischen PROFINET-IO-Kommunikation auch noch "normale" Ethernet-Kommunikation (wie z.B. PG-Funktionen) zeitnah auszuführen.

Mein Tip: "Kommunikationsanteil (PROFINET IO)" auf weniger als 100% einstellen (siehe auch Hilfe zum Einstellungsdialog "PROFINET")
und/oder beim PROFINET-IO-System die Aktualisierungszeit auf z.B. 4ms verringern (siehe auch Hilfe zum Einstellungsdialog "Aktualisierungszeit")

Übrigens muß man für solche TCP-Kommunikation nicht 2 Verbindungsressourcen verschwenden, man kann Senden und Empfangen auch auf der selben Verbindung handeln.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
So ähnlich wie im Beispiel habe ich es ja programmiert.
Nur das beide CPU`s in einem Projekt sind. Das möchte ich aber eigentlich nicht...
Müssen die denn zwingend in einem Projekt sein?
 
Nur das beide CPU`s in einem Projekt sind. Das möchte ich aber eigentlich nicht...
Müssen die denn zwingend in einem Projekt sein?
Nein, müssen nicht. Doch dann muß man bei der Verbindungsprojektierung selber mehr drauf achten daß die Verbindungsparameter korrekt sind. Wenn beide Partner im selben Projekt sind, dann übernimmt die Verbindungsprojektierung automatisch IP-Adresse, ggf. Steckplatz/Rack/TSAP/aktiver Verbindungsaufbau und ähnliches aus der Projektierung des Partners und prüft auch, ob die Verbindung so überhaupt möglich ist.

Harald
 
OK. Das freut mich schon mal :)

Im Beispielprojekt von Siemens benutzen sie eine ISO-on-TCP Verbindung. Könnt ihr mir den Unterschied zwischen einer TCP und einer ISO-on-TCP Verbindung kurz erklären?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
TCP: Datenübertragung als Stream ohne Anfangs-, Ende- und Längen-Informationen
ISO-on-TCP: Datenübertragung als Nachricht/Paket bekannter Größe durch zusätzliche Header gemäß RFC1006

Was ist RFC1006 und wozu brauche ich diesen Dienst?
Welche Eigenschaften, Vorteile und Besonderheiten bietet das ISO-on-TCP-Protokoll?
Welche Eigenschaften, Vorteile und Besonderheiten bietet das TCP-Protokoll?

FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

Harald
 
Also ich war jetzt nochmal an der besagten Anlage und es läuft nicht wirklich. Auch mit der ISO-on_TCP Verbindung.
Der Baustein scheint aber zu laufen. Der Status wechselt von 7004 auf 7005 und 0000. Also eigentlich alles richtig.
Hab auch mal das DONE-Bit gezählt. Es läuft und dann hat er zwischendurch mal kurze Aussetzer von ca. 5 sec.
Aber selbst wenn er keine Aussetzer hat, bekomme ich die Daten an der Empfangs-SPS nur sporatisch...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich hab mich gestern mal mit dem Thema i-Device auseinander gesetzt und heute an der Anlage getestet.
Wenn ich gewusst hätte, dass es eigentlich so einfach funktioniert, hätte ich diese Variante schon früher ausprobiert :D

Mir war gar nicht bewusst das man eine CPU als IO-Device verwenden kann...

Danke für euere Hilfe!!!!
 
Entschuldigt bitte meine Unwissenheit, aber warum ist das belegen des Req mit 5 Hz langsamer als mit 0,5 Hz ?

Edit: Okay .... nächstes mal über die Seitengrenze hinaus lesen .... *fail* .... ;-)
 
Zurück
Oben