TIA Größerer Datenaustausch S7-1200 mit S7-300

Januar

Level-2
Beiträge
253
Reaktionspunkte
61
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo liebe Gemeinde,

ich hoffe, ihr könnt mir ein wenig weiterhelfen.

Ich implementiere in einer bestehenden Anlage eine Kommunikation zwischen einer bestehenden S7-315 und einer neu einzubauenden, noch nicht näher spezifizierten S7-1200. Zwischen der S7-1200 und der S7-300 sollen Daten ausgetauscht werden. Auf der S7-300 sind die Datenbereiche für den Austausch schon vorhanden, da hier eine alte Schnittstelle wegfällt und jetzt funktionsgleich von der S7-1200 genutzt wird. Daher soll nach Möglichkeit keine Programmänderung und erst recht keine Hardware-Änderung an der S7-300 vorgenommen werden. Von daher würde sich eine PUT/GET-Verbindung anbieten, die ich von der S7-1200 aus aufbaue.

Nun zu meiner Herausforderung: Laut TIA-Hilfe ist die Menge der Daten auf 160 Byte begrenzt, wenn ich eine PUT/GET-Verbindung nutze. Für das PUT ist das kein Problem, da hier nur 34 Byte gesendet werden. Aber das GET soll eigentlich 246 Byte (plus später potentiell noch mehr) lesen. Kann ich das trotzdem so umsetzen? Oder muss ich den Auftrag auf mehrere Adressbereiche aufteilen, kann aber eine GET-Anweisung verwenden? Oder bedarf es hier mehrerer Aufrufe der GET-Funktion?

Ich hoffe, es ist soweit verständlich und dass ihr mir ein paar Klarheiten verschaffen könnt.

Gruß, Januar
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Lebensbit/Handshake in beide Richtungen nicht vergessen (der eine setzt, der andere setzt zurück) nicht vergessen, die dazugehörige Überwachung + Fehlermeldung. Auch nicht vergessen die Daten im Empfangsbereich zu löschen, wenn der Handshake nicht erfolgreich ist.
 
Ich kann also folgendes machen:
Mehrere Male in meinem Kommunikations-FB rufe ich die GET-Funktion auf, jeweils mit eigener Instanz, aber identischer ID. Die erste Instanz liest die Bytes 0 - 99, die zweite Instanz liest 100-199, die dritte Instanz liest 200-245.

Habe ich das richtig verstanden?

Und wie erfolgt die Abarbeitung? Kann ich alle drei Instanzen parallel laufen lassen, oder sollte ich Instanz 3 erst dann starten, wenn Instanz 2 den Auftrag fertig hat. Dann wird Instanz 3 abgearbeitet und anschließend wird wieder Instanz 1 gestartet?

@DCDCDC: In den 246 Byte sind diese Meta-Daten enthalten.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich würd mal sagen, nimm einfach BSEND/BRCV... da hast genügend Luft und PUT ist sowieso große Scheisse...

oje, das kann die 1200er garnicht?:rolleyes: (dann bin ich für TSEND/TRCV/AG_SEND/AG_RCV ;) ) oder gleich ne S7-1510SP...

1705502589166.png

1705502823016.png


 
Zuletzt bearbeitet:
Ich bevorzuge es auch nicht, aber meines Erachtens ist dies die beste Möglichkeit, die Kommunikation zu implementieren, ohne die S7-300 anzufassen. Wenn ich hier falsch liegen sollte, bin ich über Hinweise dankbar.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Auf der S7-300 sind die Datenbereiche für den Austausch schon vorhanden, da hier eine alte Schnittstelle wegfällt und jetzt funktionsgleich von der S7-1200 genutzt wird.
Ich bevorzuge es auch nicht, aber meines Erachtens ist dies die beste Möglichkeit, die Kommunikation zu implementieren, ohne die S7-300 anzufassen.
Was für eine Kommunikation war das denn vorher?
PUT/GET erzeugt keine Handshake-Signale. Das Programm des passiven Servers (die S7-300) bekommt von dem PUT/GET nichts mit. Wie kannst du da eine sichere/konsistente Kommunikation ohne Handshake nur von außen gesteuert implementieren?
 
Mir ist schon klar, dass ich die Software in der S7-300 anpassen muss. Ich will bloß vermeiden, Hardware-Änderungen vorzunehmen.

Vorher war die S7-300 als Modbus-Server aktiv. Anstelle dass die Daten jetzt per Modbus in die DBs geschrieben werden, sollen die Daten auf alternativem Weg von der S7-1200 in die S7-300 kommen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Der Endkunde war schon immer etwas unzufrieden mit der Performance der Modbus-Kommunikation. Daher ist jetzt die Hoffnung, die Modbus-Kommunikation über die S7-1200 laufen zu lassen (die sowieso eingebaut werden muss), und dann die Daten aus der S7-1200 an die S7-300 weiterzureichen.
 
PUT/GET muss doch in der CPU freigegeben werden, insofern musst du unter Umständen ohnehin an die HW-Konfig ran, wenn der alte Partner nicht auch schon per PUT/GET reingegriffen hat.
Und auch den alten Partner musst du rauswerfen, sonst hast du ständig Busfehler, das sieht die Instandhaltung äußerst ungern.

Warum auf gar keinen Fall an die HW ran? Ist die etwa nicht aktuell und man kommt nicht online?Dann eh Finger weg, sowas kannst du später nicht übergeben?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
PUT/GET muss doch in der CPU freigegeben werden, insofern musst du unter Umständen ohnehin an die HW-Konfig ran, wenn der alte Partner nicht auch schon per PUT/GET reingegriffen hat.
Das gibt es bei der 300'er nicht und auf der 1200'er muss man das nicht freischalten wenn dort die Bausteine aufgerufen werden.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich bevorzuge es auch nicht, aber meines Erachtens ist dies die beste Möglichkeit, die Kommunikation zu implementieren, ohne die S7-300 anzufassen. Wenn ich hier falsch liegen sollte, bin ich über Hinweise dankbar.
Was ist das denn für eine 300er?
Über die integrierte PN-Schnittstelle sollte TCON/TSEND/TRCV gehn, ohne ne Verbindung in Netpro anzulegen.
Die Software in der 300er würde man sowieso modifizieren, um das alte Modbus auszukommentieren.
 
Zuletzt bearbeitet:
Es handelt sich um eine S7-315-2 PN/DP (6ES7 315-2EH14-0AB0) mit FW 3.2.19.

Ich weiß, es geht vom eigentlichen Thema weg, aber welche Vorteile würde die Projektierung mit TCON etc. gegenüber der Lösung aus #13 haben?
 
Zurück
Oben