TIA While Schleife Zeitfehler (OB-Startereignis) CPU wechselt in STOP-Zustand (keine OB-Bearbeitung)

Vermutlich weil dein Programm ewig in der while schleife hängt.
Ein SPS muss innerhalb der max. Eingestellten zykluszeit einmal durchlaufen werden.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Was genau willst du denn damit überhaupt machen?

So lange du in der While-Schleife festhängst, wird sich auch deine abgefragte Variable nicht ändern.

Außerdem brauchst du keine If-Abfrage um die Schleife zu beenden in der du die selbe Bedingung abfragst.
 
Ich muss eben mal raten, was du für eine CPU und Entwicklungsumgebung hast, aber dein Problem wird sein, dass #xBETRIBSART_INT_2 gleich 0 ist. Deswegen wird die Schleife betreten und abgearbeitet und #xZYL1_EIN auf 0 gesetzt. Dann wird die Schleife verlassen, wenn #xBETRIBSART_INT_2 ungleich 0 ist. Was nur passiert, wenn die Variable von außerhalb beschrieben wird, beispielsweise durch ein HMI. Die SPS wird jedenfalls nichts anderes machen als #xZYL1_EIN auf 0 zu setzen und zu prüfen, ob #xBETRIBSART_INT_2 größer als 0 ist.
 
Moin Matze12345,

Ich will wenn die mein Int 0 ist meine Zylinder einfahren und es soll sich nirgendwo im weiteren Programm wiedersprechen.

Was meinst Du mit widersprechen? Ach, wiedersprechen, also häufiger? Deshalb die Schleife?

Spaß beiseite. Das es sich nirgendwo im weiteren Programm widerspricht obliegt doch Deiner Programmierung im Rest des Programms. Das kannst Du an einer einzelnen Stelle doch nicht explizit ausschließen?!

VG
MFreiberger
 
Moin Matze12345,



Was meinst Du mit widersprechen? Ach, wiedersprechen, also häufiger? Deshalb die Schleife?

Spaß beiseite. Das es sich nirgendwo im weiteren Programm widerspricht obliegt doch Deiner Programmierung im Rest des Programms. Das kannst Du an einer einzelnen Stelle doch nicht explizit ausschließen?!

VG
MFreiberger
Moin Matze12345,



Was meinst Du mit widersprechen? Ach, wiedersprechen, also häufiger? Deshalb die Schleife?

Spaß beiseite. Das es sich nirgendwo im weiteren Programm widerspricht obliegt doch Deiner Programmierung im Rest des Programms. Das kannst Du an einer einzelnen Stelle doch nicht explizit ausschließen?!

VG
MFreiberger
Hey ,

Ich dachte ich könnte damit umgehen überall ein oder einzusetzen zb
IF „1“ then

„2“ :=1;

Else „2“:=0;

end_if;

If „3“ then
„2“ :=1;
Else „2“:=0;
End_if;


Normaler weise müsste ich ja jetzt ein Oder machen ..
dachte ich kann das mit While umgehen. Oder gibts da eine andere Lösung ?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
um dazu konkret zu antworten müßte man mehr von deinem Vorhaben wissen ...

Zu deiner "While-Schleife" : dein zyklisches Programm ist ja selbst schon so eine Schleife - der Zylklus darf aber nicht blockiert werden - dann geht die CPU in Stop
 
Welche CPU ?
Hey ,

Ich dachte ich könnte damit umgehen überall ein oder einzusetzen zb
IF „1“ then

„2“ :=1;

Else „2“:=0;

end_if;

If „3“ then
„2“ :=1;
Else „2“:=0;
End_if;


Normaler weise müsste ich ja jetzt ein Oder machen ..
dachte ich kann das mit While umgehen. Oder gibts da eine andere Lösung ?

Wie wäre es mit "CASE" ?
 
Zurück
Oben