CPU 416 Ethernetverbindung

SPS-Fan

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

ich bin neu hier und brauche Eure Hilfe.
Unser Betrieb wird durch ein Prozessleitsystem gesteuert. Dies geschieht mit Hilfe von zwei CPU 416, die örtlich nebeneinander liegen und miteinander über den MPI-Bus kommunizieren. Beide CPU verfügen über eine Verbindung zum Ethernet über jeweils eine CP443-1. In absehbarer Zeit wird der Betrieb jedoch erweitert. Es kommen zwei größere Anlagenteile hinzu. Jedes Anlagenteil wird wieder mit einer 416 er CPU und auch mit
CP443-1 ausgerüstet. Jetzt besteht aber eine örtliche Trennung. Wirtschaftlich vertretbar ist nur noch eine Ethernet-Verbindung um eine Kommunikation untereinander zu realisieren. Mit meinem Wissensstand ist die Zusammenführung der Subnetze nur über ein Multiprojekt möglich. Gibt es da andere Möglichkeiten eine Verbindung herzustellen oder die einzelnen Subnetze zu vereinen?

Gruß
Andy
 
Mit meinem Wissensstand ist die Zusammenführung der Subnetze nur über ein Multiprojekt möglich. Gibt es da andere Möglichkeiten eine Verbindung herzustellen oder die einzelnen Subnetze zu vereinen?
Du legst Dir einfach eine unspezifizierte Verbindung im NetPro an und kommunizierst dann über TCP/IP und die Send/Recive Bausteine FC5/FC6
Dann hast Du jede Steuerung für sich allein stehen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo.
Ich nehme bei sowas gerne die ISO-on-TCP-Variante der unspezifizierten Verbindung. Dann kann man noch sinnvolle TSAP's vergeben. Dafür benutzt man auch den FC6/FC6.. Funzt sogar mit den guten alten S5'en.;)
Gruß
 
Hallo Ihr,
Erst einmal Danke für den Tipp. Ein Test funktioniert schon mal. Es gibt aber ein anderes Problem. Im Test übertrage ein MByte. habe auf der Empfägerseite auch eins angelegt. Dann bekomme ich nach kurzer Zeit die Meldung über das Statuswort des Empfängers: Puffer zu klein.
habe daraufhin einen Datenbaustein angelegt. Dort passiert das Gleiche. Der Datenbaustein hat aber auch ein Plätzchen vom Datentyp Int. Verknüpfe ich im CFC den Empfänger mit dem Datenbaustein ohne jedoch einen Anschluß vom Datenbaustein zu benennen, dann funktioniert die Geschichte. Betrachte ich mir den Datenbaustein online, sehe ich in der Int-Zeile den richtigen Wert aber als Datentyp Int. Dann bleiben auch die Fehlermeldungen aus. Kann jemand da helfen?

Gruß
Andy
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
habe daraufhin einen Datenbaustein angelegt. Dort passiert das Gleiche. Der Datenbaustein hat aber auch ein Plätzchen vom Datentyp Int. Verknüpfe ich im CFC den Empfänger mit dem Datenbaustein ohne jedoch einen Anschluß vom Datenbaustein zu benennen, dann funktioniert die Geschichte. Betrachte ich mir den Datenbaustein online, sehe ich in der Int-Zeile den richtigen Wert aber als Datentyp Int. Dann bleiben auch die Fehlermeldungen aus. Kann jemand da helfen?
Was?
Wo hast Du noch Plätzchen? Weihnachten ist vorbei, und wenn dann lieber vom Datentyp Schoko.
Wie groß ist denn Dein Empfangsfach?
Das muss natürlich groß genug sein, um alle Daten die von der Gegenseite gesendet werden, aufzunehmen.
Dafür nimmst Du am besten eine Datenbaustein. Idealerweise nimmst Du bei der Sendeseite eine UDT den du auch bei der Empfangsseite einliest, somit hast Du immer die gleiche Länge.
Die übergebene Länge gibt dir der FC6 Recv auch aus.
Nachdem Du nur ein Wort sendest wirst ja den FC6 genommen haben.
 
Muss es denn mit CFC programmiert sein..?
Versuch es doch erstmal mit KOP/FUP/AWL..
btw.: Für MByte (Megabyte? hehe) brauchst Du die FC50/60 aus der Bibliothek.
Gruß
 
Zuletzt bearbeitet:
Kleine Anmerkung am Rande, bei einer S7-400 und den CP443-1 wird beim ersten Aufruf der FC's 5/6 bzw 50/60 ein Puffer im CP mit der übergeben Datenlänge angelegt. Der Puffer kann im laufenden Betrieb nicht mehr vergrößert werden.
Man muß also darauf achten, dass die Datenlänge bereits groß genug ist, damit man beim experimentieren nicht auf die Nase fällt.
Soweit ich mich erinnere reicht ein CPU STOP/START um die Puffer neu aufzubauen.

Gruß Rolf
In alter Comuterclub Tradition "Und immer ein Bit übrighalten"
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke sehr für Deine Antwort

Das erklärt schon einiges. Da ich bei meinen Versuchen mittendrin auch Veränderungen vorgenommen habe und es dann zu Fehlermeldungen kam, könnte das auf diesen Hintergrund zurückzuführen sein. Mein Stand ist jetzt so, das ich ein WORD problemlos übertragen kann. Ein DWORD geht nicht. dann kommt Meldung: auf Empfangsseite ist Puffer zu klein. Hier kurz mein jetziger Aufbau. Ich benutze eine ISO-on-TCP-Verbindung. Die Verbindung steht. Auf der Sendeseite speise ich den Eingang des Sendebausteins mit einem Bool-Word Koverterbaustein. Empfangsseitig versorge ich einen erstellten Datenbaustein der nicht Eingangsspezifisch verbunden ist ist. Der Datenbaustein basiert auf Int. Das Datenformat ANY des Empfangsbausteins ermöglicht diese Art der Verbindung. Somit kann die volle Breite des Signals eingelesen werden. Zur Nutzung des übertragenen Signals konvertiere ich wieder Int zu Bool. Wie gesagt bis zu einem WORD klappt das. Vielleicht mache ich da schon etwas falsch. Eine solche Verbindung habe ich noch nie vorher aufgebaut.
Gruß
Andy
 
He Andy, kannst hier nicht ein bisschen lockerer schreiben?

Empfangsseitig versorge ich einen erstellten Datenbaustein der nicht Eingangsspezifisch verbunden ist ist.
Was ist den Eingangsspezifisch verbunden?
Der Datenbaustein basiert auf Int.
Gut, wieviel INT ?
Das Datenformat ANY des Empfangsbausteins ermöglicht diese Art der Verbindung.
Was für eine Art Verbindung?
Am Recv muss halt z.B.: stehen: P#DB10.DBX 0.0 Byte 20 (so viel Byte wie Du überträgst. Noch besser alles symbolisch schreiben.
Somit kann die volle Breite des Signals eingelesen werden.
Welche volle Breite? Es geht doch nur ein Wort
Wie gesagt bis zu einem WORD klappt das. Vielleicht mache ich da schon etwas falsch.
Definitive!
Wie lang ist denn der Empfangsdatenbaustein?
Und bei dem Sendebaustein, was hat Du da für eine Länge eingestellt am Parameter LEN?
 
Wenn Du zunächst ein Wort überträgst, dann ist der Puffer auch nur ein Wort groß, somit fällst Du bei der DWORD Übertragung auf die Nase.

Die erste Übertragung definiert wie groß die Puffer sind. Erst nach CPU STOP/Start können die Puffer neu angelegt werden, dabei sollte die zu übertragende Datenlänge natürlich den neuen Bedingungen angepasst sein.

Wie bereits angemerkt wurde, am besten eine UDT definieren und die auf der Sende- und Empfangsseite in einem DB verwenden. Diese Datenstruktur läßt sich dann ganz einfach symbolisch an die Sende- und Empfangsbausteine schreiben. Nicht vergessen den DB zuvor in der Symboltabelle bekannt zu machen. Eine direkte Any-Pointer Zuweisung wie bereits genannt, geht natürlich auch.

Der Datentyp den Du übertragen willst, spielt im Grunde keine Rolle, denn wie die Pointerdefinition zeigt ist es eigentlich ein Datenblock aus Bytes, was in dem Block so alles definiert ist, ob Arrays, gleich welchen Datentyps, oder STRUCT, STRING oder sonst was interessiert bei der Übertragung niemanden, nur das gesamte Paket interessiert.

Übrigens, Was du mit deinem BOOL-WORD Konverter willst ist mir scheierhaft, Wenn Du BOOL Datentypen brauchst, dann baue sie dir über eine STRUCT zusammen, dann hast Du automatisch 16 Bit zusammengefasst, wie gesagt nimm eien UDT, dann lösen sich Deine Probleme in Luft auf.

Gruß Rolf
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute,
sorry das ich mich ein paar Tage nicht gemeldet habe. Muß meinen Resturlaub von 2009 wegnehmen. Dank Euch steht die Verbindung halbwegs. Natürlich muss ich das dann noch in Ordnung bringen. Die letzten Ratschläge leuchten mir voll ein. UDT - habe ich noch nicht gemacht, bisher nur darüber gelesen. Eine von beiden CPU kann ich jederzeit stoppen. Die andere mit Gelegenheit event. in 14 Tagen. Um mal locker zu sein: die meisten von Euch haben mit Sicherheit viel mehr Erfahrung als ich. Dem Forum bin ich beigetreten um zu lernen und event. mit meinen Problemchen auch anderen zu nützen. Vielleicht kann ich auch mal einen Ratschlag geben. Also habt Nachsicht mit mir! :D:D:D:D:D
Grüße
Andy
 
Hallo Leute,
sorry das ich mich ein paar Tage nicht gemeldet habe. Muß meinen Resturlaub von 2009 wegnehmen. Dank Euch steht die Verbindung halbwegs. Natürlich muss ich das dann noch in Ordnung bringen. Die letzten Ratschläge leuchten mir voll ein. UDT - habe ich noch nicht gemacht, bisher nur darüber gelesen. Eine von beiden CPU kann ich jederzeit stoppen. Die andere mit Gelegenheit event. in 14 Tagen. Um mal locker zu sein: die meisten von Euch haben mit Sicherheit viel mehr Erfahrung als ich. Dem Forum bin ich beigetreten um zu lernen und event. mit meinen Problemchen auch anderen zu nützen. Vielleicht kann ich auch mal einen Ratschlag geben. Also habt Nachsicht mit mir! :D:D:D:D:D
Grüße
Andy

Mit einem Trick kannst Du ohne CPU-Stop die Pufferbereichsbeschränkung umgehen. Du richtest in NetPro eine zusätzliche Verbindung ein die du direkt im laufenden Betrieb aktivieren und nutzen kannst. Das geht aber nur bei einer S7-400, die 300er können das leider nicht. Ich selbst habe das in der letzten Woche erfolgreich praktiziert.

Gruß Rolf
 
Zurück
Oben