Dr.MirakulixX
Level-1
- Beiträge
- 779
- Reaktionspunkte
- 86
-> Hier kostenlos registrieren
Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
VAR
TP1, TP2:TP;
EIN, EIN_Down: BOOL;
Value:REAL;
Faktor:REAL:=0.5;
TRIG, TRIG2:R_TRIG;
Maxwert:REAL:=10;
Minwert:REAL:=0;
MINv, MAXv:BOOL;
END_VAR
TP1(IN:=EIN AND NOT MAXv AND NOT TP1.Q , PT:=t#2s );
TRIG(CLK:=TP1.Q);
IF TRIG.Q THEN Value:=Value+Faktor;
ELSE Value:=Value;
END_IF;
TP2(IN:=EIN_Down AND NOT MINv AND NOT TP2.Q , PT:=t#2s );
TRIG2(CLK:=TP2.Q);
IF TRIG2.Q THEN Value:=Value-Faktor;
ELSE Value:=Value;
END_IF;
IF Value>=Maxwert THEN maxv := TRUE;
ELSE maxv:=FALSE;
END_IF
IF Value<=Minwert THEN minv:=TRUE;
ELSE minv:=FALSE;
END_IF;
Einfach ein ST Program aufmachen und Simulieren, wenn das passt kann ich mich mal an der Umsetzten machen, nutze idr nur ST
Plc2.Value
PLC_PRG.xRelay0

FUNCTION_BLOCK Sel_ersatz
VAR_INPUT
EIN, EIN_Down: BOOL;
Faktor:REAL;
Maxwert:REAL;
Minwert:REAL;
Impulszeit:WORD;
END_VAR
VAR_OUTPUT
Value:REAL;
END_VAR
VAR
TP1, TP2: TP;
TRIG, TRIG2:R_TRIG;
MINv, MAXv:BOOL;
ImpulsZeit_used:TIME;
END_VAR
ImpulsZeit_used:=WORD_TO_TIME(Impulszeit*1000);
TP1(IN:=EIN AND NOT MAXv AND NOT TP1.Q , PT:=ImpulsZeit_used );
TRIG(CLK:=TP1.Q);
IF TRIG.Q THEN Value:=Value+Faktor;
ELSE Value:=Value;
END_IF;
TP2(IN:=EIN_Down AND NOT MINv AND NOT TP2.Q , PT:=ImpulsZeit_used );
TRIG2(CLK:=TP2.Q);
IF TRIG2.Q THEN Value:=Value-Faktor;
ELSE Value:=Value;
END_IF;
IF Value>=Maxwert THEN maxv := TRUE;
ELSE maxv:=FALSE;
END_IF
IF Value<=Minwert THEN minv:=TRUE;
ELSE minv:=FALSE;
END_IF;
Wir verwenden essentielle Cookies, damit diese Website funktioniert, und optionale Cookies, um den Komfort bei der Nutzung zu verbessern.
Siehe weitere Informationen und konfiguriere deine Einstellungen