TIA CPU in RUN, OB1 wird nicht bearbeitet

Zuviel Werbung?
-> Hier kostenlos registrieren
Hast du einen Startup Baustein und in diesem evtl. irgendeine Schleife? Im Startup Baustein gibt es keine Zykluszeitüberwachung. Programmiert man dort eine Schleife, so bleibt die S7 endlos im Startup hängen ohne Fehlermeldung.
Das ist zwar schon geklärt und daher etwas offtopic, aber ich habe mal versucht eine Endlosschleife zu programmieren. Das ist gar nicht so einfach bzw. ich habe es nicht hinbekommen, ohne das TIA meckert.
 
AWL? Da ist doch der Klassiker mit der Schleife eine Real-Variable als Abbruchbedingung zu nehmen und auf gleich zu prüfen.

Ich gebe aber zu, dass ich es jetzt nicht ausprobiert habe, wüsste aber nicht, wo da gemeckert werden soll. Im Zweifelsfall kann man das ja auch noch über rumpointern auf die Vergleichsvariablen vor dem Compiler verschleiern.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Bei WHILE auch nicht, wenn eine Variable verwendet wird und diese vorher auf TRUE gesetzt wird?
Nein, so schlau ist der Compiler. Auch Vergleiche mit Konstanten welche eben fix vorbelegt sind werden angemosert.
Du musst halt irgendeinen DB, MW, EW oder AW z.b. vergleichen, dass schluckt der Compiler.

Das hier geht auch ohne Probleme:
1749207772596.png
1749207787377.png
 
Man kann auch mit FUP/KOP eine Endlosschleife programmieren. Einfach einen Sprung im Programm zurück machen.

ich habe mal versucht eine Endlosschleife zu programmieren. Das ist gar nicht so einfach bzw. ich habe es nicht hinbekommen, ohne das TIA meckert.
TIA meckert so eine Rücksprung-Endlosschleife an? :unsure:

Also zumindest in TIA V16 geht folgendes in KOP und FUP und SCL ohne Meckern durch:
Code:
M1
 "AlwaysTRUE"      M1
-----| |----------(JMP)

Code:
M1:
IF "AlwaysTRUE" THEN
    GOTO M1;
END_IF;
 
Zurück
Oben