Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Kann mir jemand auf die Sprünge helfen? Ich such eine Funktion mit der ich die Zustandsänderung einer Boolschen-Variable erkenne. Einmal von 0->1 und eine für 1->0. Gibts da was in den Beckhoff-Libarys?
Oder wenn man unbedingt eine Bibliothek will:
F_Trig für Fallende Flanke
R_Trig für Steigende Flanke
sollte in der Standard-Lib wo auch z.B. TON und Co. ist zu finden sein.
Danke für die anregungen. Ich hab das jetzt mal folgendermasen gelöst:
Code:
IF DE_USV_Stoerung AND NOT hilfe THEN (*Erkennung Flankenwechsel 0->1*)
posF:=1;
hilfe:=DE_USV_Stoerung;
END_IF
IF NOT DE_USV_Stoerung AND hilfe THEN (*Erkennung Flankenwechsel 1->0*)
negF:=1;
hilfe:=DE_USV_Stoerung;
END_IF
(*am Ende des Programms Flankenvariablen zurücksetzen:*)
posF:=0;
negF:=0;
In der OSCAT.LIB gibt es auch die Funktion B_TRIG.
Diese reagiert grundsätzlich bei Signalwechsel.
Für die Bibliotheksverliebten.. ;-)
In der OSCAT sieht das dann so aus im Quelltext:
FUNCTION_BLOCK B_TRIG
VAR_INPUT
CLK : BOOL;
END_VAR
VAR_OUTPUT
Q : BOOL;
END_VAR
VAR
edge : BOOL;
END_VAR
(*
version 1.0 4. aug. 2006
programmer hugo
tested by tobias
this block is similar to R_trig and F_trig but it generates a pulse on rising and falling edge.
Hallo,
ich würde es so machen ... dann hast du auch noch eine Chance es sinnvoll auszuwerten (und zusätzklich habe ich noch etwas Code eingespart) :
Code:
posF:=0;
negF:=0;
IF DE_USV_Stoerung AND NOT hilfe THEN (*Erkennung Flankenwechsel 0->1*)
posF:=1;
END_IF
IF NOT DE_USV_Stoerung AND hilfe THEN (*Erkennung Flankenwechsel 1->0*)
negF:=1;
END_IF
hilfe:=DE_USV_Stoerung;
Gruß
LL
... achja ... und also zusammenhängend stehen lassen ...