Wie verwendet man eine ganz normale Timerfunktion in Beckhoff ST?

Jush

Level-1
Beiträge
19
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Tag,

ich habe gerade mit ST (Strukturierter Text) angefangen.
Wie mach man eine ganz normale Timerfunktion hier?:

Timer start.
nach 10 sekunden soll dann den Ausgang gesetzt werden.

Vielen Dank im Voraus!

MfG
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ohne Gewähr:

VAR
TON_1: TON;

___________________________________________________________


TON_1(IN := Eingang, PT := T#10000ms); (* Einschaltverzögeung 10s*)

Ausgang := TON_1.Q; (* Dem Ausgang zuweisen *)
 
Das funktioniert, steht allerdings nicht in meinem Hilfemenu.

Ich hate folgendes versucht, aber das ging nicht:

TON_1.PV := T#10s;
TON_1.IN := Eingang;

Danke für die Hilfe!

P.s.:
findet Ihr auch, dass die Beckhoff Hilfedatei ganz schlecht ist?
 
Hallo,

ich kenn zwar nur Wago aber da ist über rechten Mausklick fast alles zu finden, z.B in deinem Fall die Eingabehilfe. Dann wird's schon ganz einfach.

Gruß
Silke
 
Zuviel Werbung?
-> Hier kostenlos registrieren
hallo,
deine 2 Zeilen hätten meines Erachtens auch funktioniert wenn Du vor dem In und PV Parametern den Baustein aufgerufen hättest:

ton_1();
dann deine 2 Zeilen (PV und in);

gruß
georg
 
P.s.:
findet Ihr auch, dass die Beckhoff Hilfedatei ganz schlecht ist?
Kommt drauf an,welche Version man hat und wie intensiv man sucht ;)
Ich hab die neueste Version des "Beckhoff Information System" (2.0) und nach der Eingabe von "TON" wird sofort die Beschreibung des Bausteins aufgerufen. Dann muss man natürlich noch wissen, wie man generell Funktionsbausteine aufruft. Aber das sollte für SPS-Programmierer Voraussetzung sein.

Aber ich stimme zu,die orignial CoDeSys Hilfe ist besonders für nicht ganz so gut geschultes Personal teilweise leichter zu verstehen, bzw. es gibt dort mehr Beispiele.

MfG
der trinitaucher
 
Ultimative Lösung!!

Also jetzt einmal eine funktionierende Lösung in ST:

Variablendeklarierung:

VAR
fbTimer: TON;
iSchritt: INT := 1;
Ausgang: BOOL := FALSE;
END_VAR

Programm:

CASE iSchritt OF
10:
fbTimer(IN:= TRUE, PT:= T#10s, Q=> , ET=> ); (*Timer starten*)
iSchritt := 11;
11:
fbTimer(IN:= TRUE);
IF fbTimer.Q THEN (*Warten bis Timer abgelaufen*)
fbTimer(IN:= FALSE); (*Timer rücksetzen*)
Ausgang := TRUE;
END_IF
END_CASE
 
Der TOn ist nun wirkilich einfach zu benutzen:

Nach der Deklaration erfolgt die Initialisierung. In der Regel stelle ich den Initialisierungsteil an den Anfang eines Blocks, um die Übersicht zu behalten. Bedingte Ausführungen sind nicht nötig. Hier 2 Beispiele

1) ------------------------
timer : TON;

(* Initialisierung *)
timer(PT:=t#100ms);

(* Benutzen *)

timer.IN := not timer.Q;
IF timer.Q THEN
...
END_IF;
------------------------


2) ------------------------
timer : TON;

(* Initialisierung *)
timer(PT:=t#100ms, IN := sensor1 AND sensor2);

(* Benutzen *)
IF timer.Q THEN
...
END_IF;
------------------------
 
Zuletzt bearbeitet:
Zurück
Oben