Flux
Level-1
- Beiträge
- 314
- Reaktionspunkte
- 11
-> Hier kostenlos registrieren
STOP->RUN erkennen mit PCS 7 und AS410
Hallo Leute,
ich stehe nun auch vor der Aufgabe mein Programm nach einem STOP->RUN Übergang zu initialisieren. Ich arbeite mit PCS 7 V8 und einer AS410 (unterstützt OB100 (Neu-/Warmstart) und OB102 (Kaltstart)).
Von dem was ich so gelesen hab scheinen folgende Methoden sich etabliert zu haben:
SFC 6 "RD_SINFO": TOP_SI.NUM =100 oder 102 --> setze Ausgang "FirstCycle"
oder
OB1_SCAN_1 <> 3 (freier Zyklus) --> setze Ausgang "FirstCycle"
Meine Frage ist:
Mein Programm ist verteilt auf OB1 und diverse OB3x. Angenommen ich schreibe nun mit SCL einen FB "StartUp", der über einen der beiden o. g. Wege seinen Ausgang "FirstCycle" setzt, platziere besagten FB am Anfang von OB1 und verschalte seinen Ausgang "FirstCycle" mit den zu initialisierenden Programmteilen des OB1 sowie der OB3x er:
Laufe ich nicht Gefahr, dass der OB1 (in dem "StartUp" aufgerufen würde) nach Übergang STOP->RUN startet und wieder abgearbeitet ist, BEVOR der erste OB3x überhaupt aufgerufen wird? Dann hätten die OB3x er Programmteile keine Chance den STOP->RUN-Übergang mitgeteilt zu kriegen.
Oder andersherum: Könnte OB3x nach dem STOP->Run-Übergang zuerst kommen, und damit der OB1 den Übergang nicht mitbekommen?
Wie gehe ich damit am besten um?
Klar könnte ich "FirstCycle" lange genug ausschaltverzögern, aber was wäre die sauberste Lösung?
Alternativ könnte ich für jeden OB nen Merker definieren (also "OB1_FirstCycle", "OB32_FirstCycle", ...), der von "StartUp" in OB1 gesetzt würde, das Rücksetzen des jeweiligen Merkers aber am Ende eines OB1/3x geschieht.
Was meint Ihr dazu?
Danke
Hallo Leute,
ich stehe nun auch vor der Aufgabe mein Programm nach einem STOP->RUN Übergang zu initialisieren. Ich arbeite mit PCS 7 V8 und einer AS410 (unterstützt OB100 (Neu-/Warmstart) und OB102 (Kaltstart)).
Von dem was ich so gelesen hab scheinen folgende Methoden sich etabliert zu haben:
SFC 6 "RD_SINFO": TOP_SI.NUM =100 oder 102 --> setze Ausgang "FirstCycle"
oder
OB1_SCAN_1 <> 3 (freier Zyklus) --> setze Ausgang "FirstCycle"
Meine Frage ist:
Mein Programm ist verteilt auf OB1 und diverse OB3x. Angenommen ich schreibe nun mit SCL einen FB "StartUp", der über einen der beiden o. g. Wege seinen Ausgang "FirstCycle" setzt, platziere besagten FB am Anfang von OB1 und verschalte seinen Ausgang "FirstCycle" mit den zu initialisierenden Programmteilen des OB1 sowie der OB3x er:
Laufe ich nicht Gefahr, dass der OB1 (in dem "StartUp" aufgerufen würde) nach Übergang STOP->RUN startet und wieder abgearbeitet ist, BEVOR der erste OB3x überhaupt aufgerufen wird? Dann hätten die OB3x er Programmteile keine Chance den STOP->RUN-Übergang mitgeteilt zu kriegen.
Oder andersherum: Könnte OB3x nach dem STOP->Run-Übergang zuerst kommen, und damit der OB1 den Übergang nicht mitbekommen?
Wie gehe ich damit am besten um?
Klar könnte ich "FirstCycle" lange genug ausschaltverzögern, aber was wäre die sauberste Lösung?
Alternativ könnte ich für jeden OB nen Merker definieren (also "OB1_FirstCycle", "OB32_FirstCycle", ...), der von "StartUp" in OB1 gesetzt würde, das Rücksetzen des jeweiligen Merkers aber am Ende eines OB1/3x geschieht.
Was meint Ihr dazu?
Danke
Zuletzt bearbeitet: