Step 7 TP-Timer im FB nach Ablauf erneut starten

SPS_Lerner

Level-1
Beiträge
1
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,
ich bin noch Anfänger und habe eine kurze Frage zum Einsatz eines TP-Timers innerhalb eines Funktionsbausteins (FB) in TIA Portal.
Der erste Start des Timers soll über eine Eingangsvariable erfolgen (z. B. ein Taster, also ein kurzer Impuls 0 → 1 → 0).
Der Timer läuft dann ganz normal durch.
Nach Ablauf der eingestellten Zeit soll er jedoch automatisch wieder neu starten, ohne, dass der Taster erneut gedrückt werden muss.

Sprich: Der Timer soll nach Ablauf seiner Zeit intern automatisch erneut gestartet werden, also mehrfach hintereinander, ohne weiteren externen Impuls.

Wie setzt man das am besten in SCL um?
Gibt es dafür eine saubere Lösung

"TP_1".TP(IN := execute, PT := T#100ms)
IF NOT "TP_1".Q AND NOT execute THEN
execute := TRUE;
END_IF;

IF "TP_1".Q THEN
execute := FALSE;
END_IF;
 
Ich würde sagen, dass du den komplett falschen Timer gewählt hast - TON wäre aus miener Sicht und wenn ich es richtig verstanden habe die richtige Wahl.
Mal doch bitte mal ein Impulsdiagramm auf, dass darstellt was du wirklich haben willst ...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Nach Ablauf der eingestellten Zeit soll er jedoch automatisch wieder neu starten, ohne, dass der Taster erneut gedrückt werden muss.
Also willst du einen Puls/Pausen-Generator per Taste starten?
Da würde ich bei der Empfehlung von @Larry Laffer mitgehen und eine SR-Logik mit zwei in hintereinander geschalteten TON (jeweils für Puls und Pause) nehmen.
 
Wie setzt man das am besten in SCL um?

Code:
// Initialisierung
IF "FIRSTSCAN" THEN
    #FREIGABE := FALSE;
END_IF;

// Startsignal speichern
IF "START" THEN
    #FREIGABE := TRUE;
END_IF;

// Timer
#T1.TP(IN := #FREIGABE AND NOT #Q,
        PT := T#1s,
        Q  => #Q,
        ET => #ET);

Nach deiner etwas sinnfreien Vorgabe muss mit dem Taster-Signal der Merker "FREIGABE" gesetzt werden. Dieser Merker "FREIGABE" muss dann beim CPU-Start mit dem Anlauf-Bit "FIRSTSCAN" zurückgesetzt werden, um deiner beschriebenen Funktion gerecht zu werden. Mit einem Timer "TON" funktioniert es genau so.
 
Zurück
Oben