Dieser Merker "M_Write_Time" wird über einen Taster am Bedienpanel gesetzt.
D.h, du solltest länger in dem Baustein bleiben (min 2.Zyklen), damit die Flankenauswertung garantiert ist.
Danke für deine Antwort Verpolt - nun das Programm funktioniert eigentlich schon...
Frage: Wie könnte ich das bewerkstelligen, dass ich z.B. 2 Zyklen im aufgerufenen Baustein verweile?
Nun, weil in dem FC ein schneller Zähler programmiert ist, der eben nur bei der Bedingung "pos. Flanke von LS" aktiviert werden soll.
Warum klappt das Programm aber überhaupt?
Wird hier die pos. Flanke des Merkers "M_Write_Time" gespeichert, bis der Funktionsaufruf erfolgt?
gesetzter Flankenmerker (vom vorherigen Aufruf) löst Flanke aus und SETZT deinen Ausgang
Danke Verpolt,
d.h. also schon, dass die einmal ausgelöste pos. Flanke des Merkers "M_Write_Time" (durch Drücken des Tasters) so lange gespeichert bleibt, bis der Funktionsaufruf erfolgt, oder?
Danke Verpolt,
d.h. also schon, dass die einmal ausgelöste pos. Flanke des Merkers "M_Write_Time" (durch Drücken des Tasters) so lange gespeichert bleibt, bis der Funktionsaufruf erfolgt, oder?
Wird jetzt der FC über die LS-Flanke einmal aufgerufen, dann setzt der gesetzte "M_Write_Time" den Flankenmerker "irgendwasTag M9.0?). Der setzt den Ausgang.
Der Flankenmerker "irgendwasTag M9.0" bekommt zum Beispiel gar nicht mit, dass die Taste wieder losgelassen(rückgesetzt) wurde. Da kann es passieren, daß bei einem Aufruf des FC die Flanke nicht auslöst, weil der Flankenmerker immernoch von vorher gesetzt ist.
Ok Verpolt - danke, du warst schneller als ich mit meiner Antwort aus Thread #12. Dann wird also die Flanke im eigentlichen Sinn nicht gespeichert, richtig?
Stell die einfach vor, du springst in den Baustein und deine Bedingung vor der Positiven Flanke ist 1--fertig. Erst jetzt wird der M15.0 (Flankenmerker/Hilfsmerker) für einen Zyklus 1.
Da du nicht ein zweites mal reingehst (LS-Flanke) bleibt der M15.0 auf 1. Wird deine Taste zurückgesetzt (Bedingung=0) und du springst wieder in den Baustein ist die Flanke nicht funktionsfähig, da noch von vorher die 1 gespeichert ist.
if(M15.0) then M15.0:=false end_if;
und ich stell mir grad vor, dass es am ende des OB1 einen FC999 gibt in dem steht:
Code:if(M15.0) then M15.0:=false end_if;
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?