Step 7 Merker setzen wenn SPS hochgelaufen ist

S7Anfänger

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

Ich benötige einen Merker, der erst dann gesetzt wird wenn die SPS hochgelaufen ist, und kein Fehler vorliegt.
Wie ist so etwas machbar? Gibt es da etwas?


Vielen Dank
Hagen
 
Hier müsstest du erst mal kundtun welche SPS du verwendest.

Bei 12/1500 gibt es das Systemmerkerbyte in der HW-Konfig,
Bei 3/400 muss man mit dem OB100 oder den OB1 Lokalvariablen selbst was basteln.

Erster Zyklus ist übrigens leicht, die Forderung "kein Fehler" schon nicht mehr so.

Mfg
Manuel
 
Ich bau mir diesen Merker immer selbst.
Im OB 100 setze ich mir einen Merker (S) und Rücksetze einen 2. (R). Am Ende von OP1 setze ich mir Merker 1 wieder zurück (R) und setze dafür den Merker 2.
Wenn Merker 1 nicht da ist und Merker 2 da ist, weiß ich, dass der Hochlauf abgeschlossen ist.

Code:
OB100:
S M10.0 (Anlauf aktiv)
R M10.1 (Anlauf abgeschlossen)

Ende OB1:
R M10.0
S M10.1
 
Hallo,
Danke für Die Antworten.
Ich nutze eine ET200s CPU= IM 151-8 PN/DP

Mir würde es auch reihen, wenn ich weiß das die SPS fertig hochgelaufen ist. Und ich dann einen Merker setze.

Beste Grüße
Hagen
 
Erster Zyklus ist übrigens leicht, die Forderung "kein Fehler" schon nicht mehr so.
Würde die 1200er/1500er denn bei einem Fehler überhaupt in den zyklischen Betrieb gehen? Falls nein, würde sich die Frage ja gar nicht stellen. Das es bei den 300ern anders läuft wusste ich nicht, sorry. Bin, was die S7 angeht, selber noch Anfänger.



Von irgendwas mit Internetzugang gesendet.
 
In allen grossen CPUs (300/400/1500) geht das so
Am anfang des OB1. dann kriegt man das Initialised = true ab dem 2. Durchlauf von OB1
Code:
 L     #OB1_SCAN_1 
      L     3
      ==I   
      =     #initialised

oder

Code:
#initialised := #SCAN_1 = 3;

in der 1500 muss dazu aber der optmimierte Bausteinzugriff im OB1 deaktiviert sein (Byte 1 = #SCAN_1).

in der 1500/1200 bei optimiertem OB1 ist die Variable #Initial_Call beim ersten Durchlauf TRUE
Kann also ebenfalls am Anfang des OB1 auf False abgefragt werden dann hat man auch obige Funktion.

mfG René
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Mir würde es auch reihen, wenn ich weiß das die SPS fertig hochgelaufen ist. Und ich dann einen Merker setze.
Wofür willst Du das wissen? Willst Du das von außerhalb der CPU beobachten? Weil das Anwenderprogramm wird erst aufgerufen wenn die CPU fertig hochgelaufen ist - die Information darüber ist für das Anwenderprogramm eigentlich nutzlos weil immer TRUE.

Ich benötige einen Merker, der erst dann gesetzt wird wenn die SPS hochgelaufen ist, und kein Fehler vorliegt.
Vielleicht erklärst Du mal, was Du meinst mit "und kein Fehler vorliegt" - das wird vermutlich das eigentliche Problem bei Deiner Fragestellung sein.

Harald
 
Bei meinem Verständnis ist die CPU vor Aufruf des OB1 hochgelaufen. Dann startet erst das "Anwenderprogramm" oder liege ich falsch?
Wie Harald schon sagte sollte der TE mal erklären was er unter Fehler versteht.
Gruß
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Bei meinem Verständnis ist die CPU vor Aufruf des OB1 hochgelaufen. Dann startet erst das "Anwenderprogramm" oder liege ich falsch?

Das mag schon sein. Allerdings kann man die Information das die CPU noch am Hochlaufen ist nicht auswerten, weil ja in der Zeit noch keine Software läuft. Man kann nur unterscheiden zwischen dem ersten OB1 Durchlauf und dem 2-nten OB1 durchlauf. Und natürlich ob man sich in einem anderen OB Befindet.

mfG René
 
Ich mach das mit dem Hochlauf manchmal so: Ich lasse im OB100 erstmal mit dem "RDSYST" die Hardware testen. Ist die Fehlerfrei verlaufen, lasse ich eine weitere Prüfung durchlaufen, die schaut ob in meinem Remanenten Fehlerspeicher ein Eintrag drinnen ist, der noch vor dem Ausfall der CPU aktiv war. Ist die, manchmal nur abhängig davon in welchem Teil des Speichers, negativ verlaufen, setze ich einen Merker: "Alles OK". Sitzt der Merker nicht, werden im OB 1 nur solche Bausteinaufrufe zugelassen, die nichts mit der eigentlichen Anlagenfunktion zu tun haben, sondern der Diagnose gelten, damit der Anwender sehen kann was schief lief (FU sendet Fehler, Sicherungen gefallen,etc.). Kann ich diese Gewaltenteilung nicht durchhalten, d.h. ein Teil der Diagnose ist an die Anlagenfunktion gebunden (Servo muss für Diagnose das LAM verfahren), muss der Teil der Diagnose manuell erfolgen und vom Anwender bestätigt werden. Danach wird der Merker manuell gesetzt und die Anlage läuft los.

Ein einfacherer Weg kann so aussehen, dass man sich am Ende des OB1 einen Merker setzt, "OB1 durchlaufen". Sitzt dieser Merker nicht, wird nichts ausgeführt. Sitzt er, ist der Hochlauf auf jeden Fall abgeschlossen, da ja der OB1 durchlaufen wurde. Nun werden auf dem Panel die Bereitmeldung der Steuerung sowie die Bedienelemente für Anlagenstart und Betriebsartvorwahl angezeigt.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich mach das mit dem Hochlauf manchmal so: Ich lasse im OB100 erstmal mit dem "RDSYST" die Hardware testen. Ist die Fehlerfrei verlaufen, lasse ich eine weitere Prüfung durchlaufen, die schaut ob in meinem Remanenten Fehlerspeicher ein Eintrag drinnen ist, der noch vor dem Ausfall der CPU aktiv war. Ist die, manchmal nur abhängig davon in welchem Teil des Speichers, negativ verlaufen, setze ich einen Merker: "Alles OK". Sitzt der Merker nicht, werden im OB 1 nur solche Bausteinaufrufe zugelassen, die nichts mit der eigentlichen Anlagenfunktion zu tun haben, sondern der Diagnose gelten, damit der Anwender sehen kann was schief lief (FU sendet Fehler, Sicherungen gefallen,etc.). Kann ich diese Gewaltenteilung nicht durchhalten, d.h. ein Teil der Diagnose ist an die Anlagenfunktion gebunden (Servo muss für Diagnose das LAM verfahren), muss der Teil der Diagnose manuell erfolgen und vom Anwender bestätigt werden. Danach wird der Merker manuell gesetzt und die Anlage läuft los.

Ein einfacherer Weg kann so aussehen, dass man sich am Ende des OB1 einen Merker setzt, "OB1 durchlaufen". Sitzt dieser Merker nicht, wird nichts ausgeführt. Sitzt er, ist der Hochlauf auf jeden Fall abgeschlossen, da ja der OB1 durchlaufen wurde. Nun werden auf dem Panel die Bereitmeldung der Steuerung sowie die Bedienelemente für Anlagenstart und Betriebsartvorwahl angezeigt.

Da kann man nur sagen: sehr löblich!!
 
Hi,
Tut mir leid, das ich mich erst jetzt wieder melde.
Zu dem Ablauf.
Die SPS soll erst dann einen Ausgang setzen, wenn diese komplett hochgelaufen ist und weitere eingangsbedingungen vorhanden sind.
Hintergrund ist, das unser Kunde den kompletten Schaltschrank (nur ein kleiner teil einer bestehenden Anlage) über einen anderen Anlagenteil stromlos Schalter. Wenn unser Schaltschrank wieder Strom bekommt muss alles darin selbstständig starten.
Dafür brauche ich halt einen Merker, der erst dann gesetzt wird, wenn die SPS komplett hoch gelaufen ist.

Beste grüße
Hagen

Ach so. Ich programmiere in FUP. Wäre nett wenn die Beispiele auch in FUP wären. Ich beschäftigte mich zu selten mit SPS
 
Zurück
Oben