Codesys „if - Bedingung“?
Hi,
ich schreibe grad an einem Codesys Programm und würde gerne eine Bedingung einfügen, die lautet:
Wenn der Induktionssensor ein 1-Signal gibt, kann das Programm trotz Tastendruck, welcher normalerweise das Programm zurücksetzt, nicht zu Schritt 1 zurückspringen. Erst wenn der Induktionssensor nicht mehr aktiviert ist, soll bei Tastendruck zu Schritt 1 gegangen werden.
Hoffe dass ich mich verständlich ausgedrückt habe. Bin mit grad nicht sicher in welcher Baustein Sprache ich programmiert habe, aber ich glaub es ist ST. Gibt es hierfür irgendwie eine Weiterschaltbedingung die ich eingeben kann? Sowas wie eine if-Abfrage? Also if Induktiver Sensor aktiv springt es z.B. Zu Schritt 21 o.ä?
2 Antworten
Habe es jetzt selber herausgefunden. War relativ einfach:
Bei der weiterschaltbedingung einfach:
NOT IND AND Taster
Schreiben. IND ist die Variable für den Induktionssensor. Somit wird zum nächsten Schritt nur weitergeleitet, wenn Induktionssensor nicht aktiv ist und Der Taster gedrückt wurde
In ST gibt es auch IF-Anweisungen.
Syntax:
IF condition THEN
// do something ...
END_IF;
oder mit ELSIF und ELSE:
IF condition THEN
// do something ...
ELSIF otherCondition THEN
// do something else if ...
ELSE
// do something else ...
END_IF;
Du meinst, du baust die Abläufe mit grafischen Komponenten (=AS)? Da sollten sich Transitionen (mit Transitionsbedingungen) nutzen lassen. Ich denke, dieses Video sollte etwas darüber aufklären: https://www.youtube.com/watch?v=zGtQLmok0UQ
Hmm dann war es glaub kein ST. Ich programmiere mit diesen Schrittketten🤔 kann sein dass ich da Vielleicht ST mit AS verwechsle? Sry bin da noch nicht so lang in dem Thema drin ,:D