lindnerlars
Level-1
- Beiträge
- 39
- Reaktionspunkte
- 0
-> Hier kostenlos registrieren
Soooo, da ich diesen Beitrag offensichtlich NICHT ins FAQ schreiben kann (Teufel, wer weiß warum?!), kommt er nun hier hin. Es folgt ein kurzer Programmcode für einen Timer in einer Funktion FC0, den wir mit einer variablen Zeit (Zeitvariable) im Steuerablauf einstellen können. Als Vorwissen sei dieser Beitrag (https://www.sps-forum.de/threads/2942) empfohlen.
Viel Spass damit...
Lars, der AWL-Geplagte
Code:
FUNCTION FC0 : VOID
VAR_TEMP
TimeIn : S5TIME;
TimeInS AT TimeIn : WORD;
END_VAR
// 1.während der Timer läuft, können wir ihn durch Zurücksetzen des "Start_Timer" anhalten
// 2.ist der Timer abgelaufen, kommt das "Timer_Fertig" Signal, dieses und den Timer können wir durch Rücksetzen des "Start_Timer" rücksetzen
// "currTime" ist S5TIME und dient nur als Speicher für den Rückgabewert der Funktion
// mit der zweiten Zeile in Variablendeklaration stelle ich eine andere Sicht auf meine Variable "TimeIn" ein
// dies ist notwendig, damit die Zuweiung von WORD nach S5TIME klappt (da BCD WORD-breit ist)
// -> ist so was, wie ein anderer Datentyp für eine Variable (siehe S7-SCL Handbuch Kapitel 8.4)
// ach ja, wenn Zeitvariable DINT ist, dann noch DINT_TO_INT benutzen ;)
TimeInS := INT_TO_BCD("Zeitvariable") AND W#16#FFF OR W#16#2000;
"currTime" := S_ODT (T_NO := T0,
S := "Start_Timer",
TV := TimeIn,
Q := "Timer_Fertig"
);
END_FUNCTION
Lars, der AWL-Geplagte

Zuletzt bearbeitet: