Remanente Merker verwenden

namseg2

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

Ist Zustand:

Ich hab ein laufendes Programm, das als Schrittkette mit normalen SR-Merkern Programmiert ist. Nach einem Spannungsausfall muss die Anlage wieder in den Grundzustand gebracht werden, da der Zustand der Merker nicht gespeichert wurde.
Die CPU ist eine CPU 315-2 DP (6ES7 315-2AH14-0AB0).

Soll Zustand:

Nun soll das Programm geändert, so dass nach einem Spannungsausfall das Programm an der letzten stelle weiterarbeitet.

Meine änderungen:

Ich hab mir gedacht die SR Merker einfach als Remannent zu deklarieren:
Da bei der CPU die Remanenten Merker bei MB 0 anfangen habe ich nun die SR-Merker aus dem alten Programm der Reihe nach von M0.0 bis M1.4 geändert. In der Hardware konfiguration habe ich die Anzahl der Remanenten Merker auf 2 eingestellt. (also sind die Merker von M0.0 - M1.7 Remanent) Leider funktioniert das wohl anscheinend nicht, denn nach dem wegschalten der Spannung weiß das Programm immer noch nicht wo es war.
Was mache ich Falsch? Wo kann das Problem liegen?

Meine Vermutung:
Die SR-Merker werden im Programm durch das Umschalten von Automatik auf Hand zurückgesetzt. Wenn die Spannung ausfällt, fällt natürlich auch die Versorgung der Eingänge aus und so könnte es sein, das es für das Programm so aussieht als wenn jemand den den Automatikbetrieb ausschaltet. (Weil die CPU vielleicht ein paar millisekunden länger mit Spannung versorgt wird (durch Kondensatoren im Netzteil oder so))


Danke schon mal...
 
Zum Thema Remanens:
Merkerbereiche sind in dem angegebenen Bereich schon remanent. Aber z. B. Datenbausteine sind immer remanent!

Wenn Deine Anlage sich bei Neustart immer programmbedingt neu initialisiert, dann hilft Dir die ganze remanente Geschichte nicht.

Vielleicht hier mal eine Lösung:
1. Speicher Dir den Status Deines Merkers nochmals zusätzlich in einen remanenten Hilfsmerker oder DB.
2. Im OB 1 gibt es in den Lokaldaten einen Wert, den Du auf einen Neustart der CPU prüfen kannst.
3. Jetzt kannst Du bei Neustart Deinen Zustand des Hilfsmerkers in Deinen eigentlichen Merker kopieren (Beim Bit per setzen oder rücksetzen, bei Werten einfach per Move). Fertig.

Wenn es sich jedoch um einen Merker "Automatikbetrieb" handelt, ist das dann nicht etwas gefährlich?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Reset

Hallo zusammen,

Meine Vermutung:
Die SR-Merker werden im Programm durch das Umschalten von Automatik auf Hand zurückgesetzt. Wenn die Spannung ausfällt, fällt natürlich auch die Versorgung der Eingänge aus und so könnte es sein, das es für das Programm so aussieht als wenn jemand den den Automatikbetrieb ausschaltet. (Weil die CPU vielleicht ein paar millisekunden länger mit Spannung versorgt wird (durch Kondensatoren im Netzteil oder so))


Danke schon mal...

Hallo,

wenn das dein Problem ist dann verknüpfe den Reset der Schrittkette mit dem Eingang "Steuerspannung ein".

André
 
Wenn die Anlage eingeschaltet wird, dann sollte zunächst Hand aktiv sein.
Dann umschalten nach Automatik und dann schaut das Programm nach, welchen Zustand die Anlage hat und macht an dem Schritt weiter, der möglich ist.
So sollte es sein. Denn wenn die Anlage aus ist, kann ggF ein Zylinder oder sonstiges seine letzte Position verlassen / wird bewegt.
Wen du dann remanente Schrittmerker hast und ohne Plausabilitätsprüfung die Kette weiterfahren lässt bekommst du ein Problem.
Daher würde ich eine Init Routine schreiben, die schaut welcher Schritt aktiv sein darf und dort wieder einspringen.
Vermutlich hat sich der Programmierer diese Arbeit sparen wollen, denn das kostet Zeit und Nerven.:confused:

bike
 
Nach einem Spannungsausfall muss die Anlage wieder in den Grundzustand gebracht werden, da der Zustand der Merker nicht gespeichert wurde.
Die Schrittketten-Merker spannungsausfall-fest machen ist die eine Sache, bei Spannungswiederkehr die Schrittkette an der letzten Stelle einfach weiterlaufen lassen, ist eine ganz andere Sache. Meistens braucht es zusätzliche Initialisierungsschritte bei Neustart der CPU, die gut durchdacht werden müssen. Die CPU weiß nicht, was während dem Spannungsausfall an der Anlage passiert ist: Werkstücke entfernt oder verschoben, Schlitten verschoben, Kleber eingetrocknet, Medien nicht im Betriebstemperatur-Bereich, ... Sind Pneumatikzylinder mit im Spiel, dann wird es meißt besonders knifflig, falls Kollissionsgefahr besteht, wenn mehrere Pneumatikzylinder gleichzeitig fahren.
Oft ist es tatsächlich besser, die Anlage bei Spannungswiederkehr geordnet durch den Bediener manuell in eine Grundstellung bringen zu lassen.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Zusätzlich zu den vorgenannten Tipps könntest du auch über eine USV nachdenken. Dann bleibt die SPS bei einem Spannungsausfall weiter in Betrieb und bekommt auch irgendwelche Zustandsänderungen von Sensoren, Schaltern, Rückmeldungen usw. mit.
 
ähmmm, man kann doch die Länge der Remanenz in der HW Konfig einstellen.
Bei älteren CPU's war auch so, das man auch die DB's hat angeben müssen und dort Start DW sowie Länge der Remanenz. Ebenfalls Timer un Zähler ...
Bei neueren sind glaube eh alle DBs remanent ...

Andernfalls geht man hin und sicher am Ende des OB 1 die Merker in einen DB und lädt bei Neustart diesen zurück ... Dieser Puffer DB wird dann in der HW Konfig als Remanent Konfiguriert ...
 
Danke schon mal für die ganzen antworten....
Eines noch als Nachtrag:
Die Anlage ist zu 100% crash sicher. Das Produkt wird nur "Transportiert" und durchläuft dabei kleine Stationen wo es kurz verweilt... Hierbei sind zwar auch ein paar Pneumatik Zylinder im Spiel, diese können sich aber nicht gegenseitig berühren...

Würde es mir helfen, wenn ich einen DB erstelle, in dem ich meine Remanenten schritte einzeln als Bool deklariere und die SR-Merker im Programm nicht mehr als Z.B: M0.0 benenne, sonder als DB2.DBX0.0? Dann habe ich halt keine Merker verwendet sonder einen DB in dem die Werte stehen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das hab ich in meiner Antwort, ganz am Anfang, schon geschrieben, nicht das plötzliche Ausschalten ist vermutlich das Problem, sondern das Einschalten. Überwache (im OB1) den CPU-Status, prüfe auf Wiederanlauf (Kaltstart, etc.)!
 
Eines noch als Nachtrag:
Die Anlage ist zu 100% crash sicher. Das Produkt wird nur "Transportiert" und durchläuft dabei kleine Stationen wo es kurz verweilt... Hierbei sind zwar auch ein paar Pneumatik Zylinder im Spiel, diese können sich aber nicht gegenseitig berühren...

Seltsam, dass es der Ersteller des Programms das dann so gelöst hat.
Es geht ja nicht um das Berühren, sondern darum, dass beim Anlauf ein definierter Zustand der Anlage gegeben ist.
Das heißt egal wie sicher die Anlage ist, du musst diese in einen definierten Zustand bringen.


bike
 
1. Ich würde generell NIE Merker für Schrittketten verwenden, denn wenn man das Programm mal portieren muss, dann muss man nur den Schritt-DB "mitnehmen" und braucht nicht alle Merker nachziehen :rolleyes:

2. Ein Anlage muss sich nach dem Einschalten der Steuerspannung immer gleich verhalten - EGAL ob die Anlage 20 Sekunden aus war - oder 5 Tage - oder 3 Monate - oder zwischenzeitlich mit dem Schiff unterwegs in ein neues Land war.

3. Kann eine Grundstellung oder Aktivstellung mangels Sensorik nicht eindeutig erkannt werden, sind beim Neustart Sicherheitsabfragen im ggf. vorhandenen Display einzubauen bevor man die Automatik neu Starten kann.

Frank
 
Zurück
Oben