Step 7 S7 400 H System - Probleme beim Laden

SimplePLC

Level-1
Beiträge
10
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo liebes SPS Forum,

ich hatte gestern ein Problem beim Laden eines S7 400 H Systems.
Im Anwenderprogramm, in jedem OB hatte ich am Schluss alle meine Ausgänge im System abgelöscht und auf FALSE geschrieben und dennoch wurden während dem Laden Ausgänge willkürlich gesetzt, was fatale Folgen hatte.

Wie kann es dazu kommen bzw. wie kann ich das beim Laden eines S7 400 H Systems vermeiden?

Danke im Voraus!
Martin
 
Schreibst du ggf per PAW noch irgendwo? Die warten nicht auf dein Ablöschen der Ausgänge.
Wieso überhaupt ablöschen der Ausgänge? Wie muss man sich das vorstellen? Nur zu der Zeit in der du das Programm austauschen willst, dann könntest du das System ja vermutlich auch gleich auf Stop nehmen um grössere änderungen durchzuführen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich würde auch vermuten, dass in deinem Programm PAW Adressen angesprochen werden und so ein
ablöschen am OB1 Ende die Ausgänge entweder gar nicht abgelöscht werden oder je nachdem zyklisch flackern.
 
Ja, das kommt im Programm vor. Aus diesem Grund werden die Ausgänge auch 2x auf 0 gesetzt! Einmal über das Abbild, aber es werden auch alle Ausgangsbytes per Peripherie-Zugriff auf 0 gesetzt. Mir ist vollkommen schleierhaft, wie ein solcher Zustand entstehen kann, da ich wirklich alles in der Software unternommen habe um die Ausgänge auf 0 zu setzen.

Das wäre dann im Endeffekt auch ein Ansatz, dass ich das H System auf Solo-Betrieb setze und die CPU dann nur mehr im STOP lade.

Meine wirkliche Frage ist, wie kam es dann dazu, dass wirklich Ausgänge rausgegangen sind?
 
Ja, aber ein PAW wird im Zyklus verarbeitet und die Ausgänge dementsprechend gesetzt.
Ein PAW ab OB1 Ende zurück zu setzen ist wenig sinnvoll. Dann ist der Ausgang ab der Programmzeile
gesetzt und wird im OB1 Ende wieder zurück gesetzt ( flimmern )
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ja, das kommt im Programm vor. Aus diesem Grund werden die Ausgänge auch 2x auf 0 gesetzt! Einmal über das Abbild, aber es werden auch alle Ausgangsbytes per Peripherie-Zugriff auf 0 gesetzt. Mir ist vollkommen schleierhaft, wie ein solcher Zustand entstehen kann, da ich wirklich alles in der Software unternommen habe um die Ausgänge auf 0 zu setzen.
DAs nützt nichts. PAW werden sofort geschrieben, nicht erst am Zyklusende. Das heisst in zeile 2 gehen deine ausgänge an und in zeile 50 wieder aus. Das kann durchaus reichen (je nach Zykluszeit) dass sie kurz aufflammen
 
Was bedeutet dann das in Bezug auf das Laden?

Wenn ich im RUN lade, dann wird dass Programm unterbrochen, die Bausteine geladen, ins Programm eingehängt, dann wird das Programm weitergeführt und wenn dann Ausgänge geschrieben werden, werden die geschrieben und womöglich erst dann am Ende des zuvor unterbrochenen Programms abgelöscht. Dadurch kann es dann zu einem flimmern kommen. Okay. Ich denke das wäre dann im ms Bereich.

Aber bei mir war es der Fall, dass laut dem meinem Analyzer der Ausgang 3 Sekunden lang angestanden ist.
 
Aber bei mir war es der Fall, dass laut dem meinem Analyzer der Ausgang 3 Sekunden lang angestanden ist.
Ich frage mich als erstes, warum wolltest du die Ausgänge überhaupt auf 0 schreiben zum laden eines Bausteines?
Da hättest du sie ja auch gleich auf STOP stellen können oder verstehe ich etwas falsch?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
naja, wir kennen ja Dein Programm nicht... steht das alles im OB1 oder auch noch im Weckalarmen?

Ich würd jetzt erstmal nicht auf einen 400H-Fehler tippen sondern auf einen Anwenderfehler ;)

Die neuen Bausteine werden normalerweise im Zykluskontrollpunkt eingebunden (für OB1 Abläufe) für Weckalarme weiss ichs nicht, aber das kann sicherlich zu komischen Situationen führen, wenn da OB1 und OB35 gemsicht werden...

Das hat aber nichts mit der H-Steuerung zu tun...
 
Hallo Simple Plc

weis nicht genau ob dies bei H Systemen möglich ist aber könnte es sein das ein das du Interupt OB hast denen ein Teilprozesabild zugeordnet ist? diese könntest du dann wirklich nur in diesem ob ablöschen.

Gruß Tia
 
DAs nützt nichts. PAW werden sofort geschrieben, nicht erst am Zyklusende. Das heisst in zeile 2 gehen deine ausgänge an und in zeile 50 wieder aus. Das kann durchaus reichen (je nach Zykluszeit) dass sie kurz aufflammen
oder wenn sie am Anfang vom OB1 per PAW eingeschaltet werden und am Ende vom OB1 wieder aus, dann sind sie vermutlich eher dauerhaft an...

PS: es ist ehh ziemlich schlechter Programmierstil, Ausgänge mehrfach zu schreiben und dann noch gemisch als T PAWxxx und = Ax.x
 
Zuletzt bearbeitet:
1.) Ich habe zwei paralell arbeitende Systeme. Ein S5-System (Alt-System) und ein S7-System (Neu). Der Plan war:
Bevor das S7-System scharf geschaltet wird müssen die Anlagenzustände von S5 & S7 gleich sein, nur dürfen keine Befehle aus der S7 rausgehen ans System, weil die Hoheit noch bei der S5 liegt. Aus diesem Grund durften nur die Eingänge in die S7 kommen, aber keine Ausgänge geschrieben werden, jedoch sollte die S7 dennoch im RUN sein.

2.) Nein, es ist kein spezieller OB einem Teilprozessabbild zugeordnet.

3.) Ausgänge werden nicht mehrfach geschrieben. Nur 2x - einmal eben zusätzlich für das Ablöschen.

4.) Die Sicherung auszuschalten war leider nicht möglich, da sonst das S5-Altsystem nicht mehr funktioniert hätte.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Wie gesagt, der betreffende Ausgang, der willkürlich geschrieben wurde, liegt im Prozessabbild, wird nur einmal geschrieben und wurde am Ende des OB1 auf 0 geschrieben und nochmal zur Sicherheit auch über das Peripherie-Ausgangsbyte auf 0 gebügelt und dennoch wurde während dem Laden der Ausgang gsetzt.
 
Hallo Simple Plc

über Welche Zykluszeit in deiner S7 reden wir bei dir?

könnte es Evtl sein das du im Ob wo dein auf 0 Schreiben Code ist Evtl davor irgendwo ein Bea oder ein Return ist?

ist beim Beobachten mit der Brille dein code Grün bzw Wird in Awl ein Status angezeigt?

wo hast du das Ausgang auf null schreiben Programmiert? In einem Fc oder direkt Ob1

ist zufällig die Meldung gekommen es können nicht alle Bausteine auf einmal übernommen werden?

Gruß tia
 
Hi Wincctia,


..die Zykluszeiten befinden sich zwischen 60 & 80 ms.

Nein, es befindet sich kein BEA oder RETURN davor & der Status wird beim Beobachten auf jeden Fall angezeigt.

Es gibt eine FC namens "Ausgaenge abloeschen" in dem das passiert und der FC wird am Ende des OB1 aufgerufen.

Diese Meldung kommt ab und zu ja!

LG
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Simple PLC

wäre es Theoretisch möglich gewesen das dein Fc Ausgänge ablöschen noch nicht auf der Steuerung war bei diesem Versuch? Und beim Laden die Meldung gekomm ist das nicht alles auf einmal übertragen werden kann? Dies wäre dann ein Lösungsansatz.

Gruß tia
 
1.) Ich habe zwei paralell arbeitende Systeme. Ein S5-System (Alt-System) und ein S7-System (Neu). Der Plan war:
Bevor das S7-System scharf geschaltet wird müssen die Anlagenzustände von S5 & S7 gleich sein, nur dürfen keine Befehle aus der S7 rausgehen ans System, weil die Hoheit noch bei der S5 liegt. Aus diesem Grund durften nur die Eingänge in die S7 kommen, aber keine Ausgänge geschrieben werden, jedoch sollte die S7 dennoch im RUN sein.
So ne Anforderung, Umbau einer wirklich wichtigen Anlage im laufenden Betrieb von S5 nach S7 hatte ich auch schon mal, hab ich dankend abgelehnt 🖕

Wurde dann von nem Kollegen an einem Abschalttag gemacht und selbst das war schon Scheiße...
 
Zurück
Oben