Wie erstelle ich in CODESYS einen Countdown-Timer als Funktionsbaustein (FB) mit ET?

Antwort

Um in CODESYS einen Countdown-Timer als Funktionsbaustein (FB) mit dem Datentyp `ET` (Elapsed Time) zu erstellen, kannst du wie folgt vorgehen: **1. Funktionsbaustein anlegen:** Lege einen neuen Funktionsbaustein, z.B. `FB_CountdownTimer`, an. **2. Schnittstelle definieren:** Typische Ein- und Ausgänge könnten sein: ```iec VAR_INPUT Start : BOOL; // Startet den Countdown Duration : TIME; // Vorgabezeit für den Countdown END_VAR VAR_OUTPUT Done : BOOL; // TRUE, wenn Countdown abgelaufen Remaining : TIME; // Verbleibende Zeit END_VAR VAR Timer : TON; // TON-Timer-Instanz END_VAR ``` **3. Ablauf programmieren:** Im Body des FBs kannst du die Logik wie folgt umsetzen: ```iec // Timer starten, wenn Start TRUE ist Timer(IN := Start, PT := Duration); // Verbleibende Zeit berechnen IF Timer.Q THEN Remaining := T#0s; Done := TRUE; ELSE Remaining := Duration - Timer.ET; Done := FALSE; END_IF ``` **4. Hinweise:** - `Timer.ET` gibt die vergangene Zeit seit Start an (Elapsed Time). - `Remaining` zeigt die verbleibende Zeit an. - `Done` wird TRUE, wenn der Countdown abgelaufen ist. **5. Verwendung:** Im Hauptprogramm kannst du den FB wie folgt instanziieren und nutzen: ```iec VAR MyCountdown : FB_CountdownTimer; END_VAR MyCountdown(Start := StartButton, Duration := T#10s); ``` **Weitere Infos:** - [CODESYS Dokumentation zu TON](https://help.codesys.com/webapp/_cds_func_ton;product=core_Codesys;version=latest) - [CODESYS Funktionsbausteine](https://help.codesys.com/webapp/_cds_fb;product=core_Codesys;version=latest) Damit hast du einen einfachen Countdown-Timer als FB mit der verbleibenden Zeit (`ET`) in CODESYS umgesetzt.

Frage stellen und sofort Antwort erhalten

Verwandte Fragen

Unterschied zwischen Funktionen und Funktionsbausteinen bei der SPS-Programmierung?

In der SPS-Programmierung gibt es einen wichtigen Unterschied zwischen Funktionen und Funktionsbausteinen: 1. **Funktionen**: Diese sind in der Regel einfache, wiederverwendbare Programmteile, die ei... [mehr]