Eingänge in eine "gedoppelte" SPS einlesen

funbiker69

Level-2
Beiträge
32
Reaktionspunkte
11
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Mitleser,

ich habe eine SPS deren Programm leider nicht nach unserem "Hausstandard" programmiert worden ist. Nun soll ich dieses Programm auf unseren Stand bringen, ohne jedoch die Produktion massiv zu beeinflussen. Daher ist meine Idee eine zweite CPU parallel aufzubauen und die PEW Bereiche ebenfalls der neuen CPU bereitzustellen. Dann könnte ich dort die Bausteine/Abläufe testen und ändern und würde dann für den Test mit Ausgängen das Programm der zweiten CPU in die erste laden.

Hat jemand mit einem solchen Vorgehen schon Erfahrungen gemacht bzw. weiß jemand, wie man die Eingangsbereiche für eine zweite CPU quasi spiegeln kann?

Freue mich auf eure Antworten und Anregungen.

Schönes Wochenende:)
 
Schön wäre, wenn Du erst mal verraten würdest, welche Steuerungen eingesetzt werden.

Den Ansatz finde ich nicht gut, es gibt Simulationsprogramme wie WinMOD, mit denen Du sehr gut testen kannst.
Wenn das zu teuer ist, kannst du immer noch die Anlage auf der SPS wiederspiegeln

U Ventil Auf
= Endlage Auf
NOT
= Endlage Zu
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Eingesetzte CPU

Ja da hast du sicher recht, ohne CPU die eingesetzt ist können die Antworten nur rudimentär sein.

Im Einsatz ist eine Simatic S7-400 6ES7417-4XT05-0AB0 mit der Firmware V5.3.

Das mit WinMod kenne ich leider noch nicht, aber mein Ansatz ist der, das ich mit den zweiten die gleichen Eingangssignale wie die erste CPU erhalte. Dann kann ich in der zweiten meine Programmänderungen unabhängig von der ersten durchführen und sehen ob meine Bausteine funktionieren.

Dann kann ich in Absprache mit unserer Produktion die neuen/geänderten Bausteine aus dem S7-Projekt der zweiten CPU in die erste überführen und dann einen IBN-Test unter Produktionsbedingungen durchführen.
 
Man könnte entweder über einen CP oder über ne MPI Verbindung die PEW von einer CPU zu anderen übertragen und dann wieder dort auf die Eingänge zurück schreiben ;)
 
.
Wenn du noch Platz hast auf deinem Rack (z.B. UR2..), dann setze doch deine 2.CPU auch noch da drauf.
Also Steckplatz 1 die PS, Steckplatz 3 die 1.CPU 417-4 und die 2.CPU auf Steckplatz 5.

Beide haben dann Zugriff auf das PAE und können sich auch noch über den Rückwandbus austauschen.

Für den Test musst du nichts in die 1.CPU laden, du schaltest einfach auf die 2.CPU um, die dann das PAA beschreibt.
Dein Ursprungsprogramm bleibt unberührt, um im Notfall schnell wieder umschalten zu können.
Geht dein Test schief, dann aktivierst du wieder die 1.CPU und verbietest der 2.CPU, irgendwelche DA zu setzen.

Während des Betriebs der 1.CPU kannst du die 2.CPU beobachten und schauen, ob sie aus Sicht des Prozesses die
gleichen Programm-Reaktionen zeigt (z.B. Vergleich des PAA beider CPU´s).

Dürfte dir viel Stress gegenüber dem Doppelaufbau sparen.;)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
.
Noch ein Hinweis:

Du benötigst für den geplanten Doppelaufbau ein 2. Rack für die 2.CPU.

Falls du keinen Platz mehr im 1.Rack hast, um die 2.CPU dort einzusetzen, lege dir ein Erweiterungsrack an, um den Platz zu schaffen.

Die Kosten für ein ER gegenüber dem 2.Rack für die 2.CPU beim Doppelaufbau dürften sogar geringer ausfallen.
 
Vielen Dank für die Antworten,

ich sehe gleich mal die aktuelle Rackbelegung an und sehe mal nach, ob ich die 2. CPU da noch unterbringen kann. An die Möglichkeit ein zweites Rack zu setzen hatte ich auch schon gedacht nur war ich mir nicht sicher, wie ich das PAE dann doppele. Aber mit der Möglichkeit eine MPI Verbindung zu erstellen habe ich einen Ansatz, die Schnittstelle ist noch frei.
 
Ausgelesene HW-Konfig

Ich habe die HW-Konfig mal angehängt und ebenfalls die neue HW-Konfig. Danach könnte ich eine 2. baugleiche CPU auf dem Steckplatz 11 setzen. Ließt die zweite CPU dann automatisch die gleichen PAE ein? Ich habe eine solche Konstellation noch nicht gemacht.
Muss ich die dann ja geänderte HW-Konfig nicht auch in die erste CPU laden?
Freue mich sehr über eure Antworten.
 

Anhänge

  • HWKonfig.JPG
    HWKonfig.JPG
    286,7 KB · Aufrufe: 45
  • HWKonfig-neu.JPG
    HWKonfig-neu.JPG
    325,7 KB · Aufrufe: 48
Zuviel Werbung?
-> Hier kostenlos registrieren
.
Steckplatz 11 weiss ich so nicht, ich hatte die CPU´s vorn nebeneinander. Was sagt deine Konsistenzprüfung ?

Das PAE wird durch jede CPU zwischen den OB1-Zyklen automatisch eingelesen.

Die aktuellen HW-Konfigurationen müssen in beiden CPU´s sein, die sollten ja schliesslich schon voneinander wissen.
 
Guten Morgen,

die Konsitenzprüfung meldet das Steckplatz 11 in Ordnung wäre. Bevor ich das jedoch dort versuche, hat mich eben ein Kollege darauf hingewiesen, dass wir im Unternehmen ein komplettes Testrack mit derzeit einer CPU haben und er meinte eben mal ne 2. besorgen zu können. Dann werde ich den Vorschlag von SoftMachine mal in einer kompletten Testumgebung ausprobieren.

Ich alte Euch auf dem Laufenden.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Versuchs SPS etabliert

So Steckplatz 11 weiß ich nicht, aber auf dem Steckplatz 7 in der Versuchs SPS habe ich heute früh die 2.SPS hineinbekommen und die HW-Konfig geladen. Was mich jetzt nur wundert ist, dass wenn eine CPU in Stop geht auch gleich die andere ebenfalls in Stop geht. Kann man dieses Verhalten evtl. noch einstellen, dass eine Im RUN bleibt? Habe in der HW-Konfig nichts gefunden.
 

Anhänge

  • HWKonfigVersuchsSPS.JPG
    HWKonfigVersuchsSPS.JPG
    193 KB · Aufrufe: 20
ET200 drangehängt und NetPro

Hallo Mitleser,

so ich habe nun auch eine ET200 Baugruppe mit einer 32DI und einer 32DA hinzugefügt. EA Bereich jeweils 0..3. Dann im OB1 der VersuchsSPS1 den Taktmerker 1.5 dem Ausgang 0.0 zugewiesen.
Wunderbar A0.0 blinkt. :)

Dann im OB1 der VersuchsSPS2 dort den Taktmerker 1.5 dem Ausgang 0.1 zugewiesen.
A0.0 blinkt nicht.

Gut habe ich gedacht vielleicht sperrt das PAA der CPU1 ja im Multicomputing den PAA der CPU2. Aber wenn ich den Eingang 0.0 verschalte und im OB1 aufrufe, kann ich den Status 1 in der CPU1 sehen und der CPU2 jedoch nicht. :-(
Damit dann das NetPro geöffnet und dort eine Verbindung zwischen den CPU erstellt und geladen.

Leider noch ohne Besserung. Muss ich nun evtl einen SEND/RECEIVE Baustein in die jeweilige CPU laden um die PAE Daten von CPU1 in CPU2 zu übertragen?

Anbei die aktuelle HW-Konfig und das Statusbild aus dem NetPro.
 

Anhänge

  • HWKonfigVersuchsSPS_DP.JPG
    HWKonfigVersuchsSPS_DP.JPG
    244,9 KB · Aufrufe: 9
  • NETPRO_ONL.JPG
    NETPRO_ONL.JPG
    173 KB · Aufrufe: 11
Guten Morgen zusammen,

also ich habe es jetzt so gelöst das ich in der CPU1 den SFB12 BSEND eingesetzt habe und in der CPU2 den SFB13 BRCV. Damit kann ich dann die Eingangsdaten übertragen. Kenn jemamd vielleicht noch eine elegantere Lösung?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Besser mit Globaldaten

Hallo Mitleser,

ich denke ich habe nun die für mich passende Lösung erarbeitet. Ich werde die Globaldaten nutzen und damit beiden CPU die gleichen Eingangsbereiche vorgeben. Für die Ausgangsdaten werde ich nichts in der Globaltabelle anlegen und damit ist gesichert das die CPU2 keine Ausgangsdaten ans PAA übergeben kann, weil das PAA exklusiv an der CPU1 konfiguriert ist. Dann kann ich in der CPU2 meine Programmänderungen vornehmen, ohne den Prozess in der CPU1 zu beeinflussen

Danke für Eure Hilfe:D
 
Lösung etabliert

Hallo Mitleser,

da ich bei der Kopplung mit Globaldaten auf 16GD mit jeweils 54byte also 864byte beschränkt bin, habe ich die folgende Lösung eingesetzt.

Im NetPro eine S7 Verbindung zwischen der CPU1 und CPU2, dann in der CPU2 einen Baustein mit dem ich über den SFB14 GET die Eingangsdaten der CPU1 zylisch übertrage.
Mit einem SFB14 kann ich 400bytes einlesen, daher setze ich aufgrund der Datenmenge von fast 1200byte 3 SFB14 ein. Mit NDR und dem Status des SFB14 überwache ich das immer nur ein SFB14 die Daten liest. Die SFB14 hat mit der Ausführungzeit die Daten von der remoten CPU zu lesen (51µs), die Auftragsprüfung (23µs) und dem Auftragsende NDR (51µs) eine maximale Verzugszeit von 125µs, das ganze mal 3 also lese ich die Daten in CPU mit einem Verzug von 375µs ein.

Ich denke das reicht um meine Anwendung auf CPU2 hinreichend genau mit Daten versorgen.

Vielen Dank für die vielen Hinweise von Euch
:D
 
Zurück
Oben