R_Grabichler
Level-2
- Beiträge
- 47
- Reaktionspunkte
- 5
-> Hier kostenlos registrieren
Hallo werte Gemeinde,
bin SPS Anfänger und scheitere bei einem vermeintlich einfachen Problem.
Ich will einen Taster drücken (z.B. in der Visualisierung),
dadurch soll ein Counter um 1 inkrementiert werden.
Zusätzlich soll ein Signal an einen digital Output gehen, mit einstellbarer Länge.
Pro Tastendruck natürlich nur ein inkrement und mein do die eingestellte Zeit, egal wie lange oder kurz gehalten wird.
Idee war, das mit Trigger und Ton zu lösen, aber es klappt bisher nicht.
Mein Trigger gibt kein Q als true aus, und ich verstehe nicht warum.
bin SPS Anfänger und scheitere bei einem vermeintlich einfachen Problem.
Ich will einen Taster drücken (z.B. in der Visualisierung),
dadurch soll ein Counter um 1 inkrementiert werden.
Zusätzlich soll ein Signal an einen digital Output gehen, mit einstellbarer Länge.
Pro Tastendruck natürlich nur ein inkrement und mein do die eingestellte Zeit, egal wie lange oder kurz gehalten wird.
Idee war, das mit Trigger und Ton zu lösen, aber es klappt bisher nicht.
Mein Trigger gibt kein Q als true aus, und ich verstehe nicht warum.
Code:
PROGRAM PLC_PRG
VAR
taster: BOOL := FALSE;
counterMachine: INT;
myCounter : TON := (PT := TIME#2000MS);
myTrig : R_TRIG;
signal AT %QX0.0 : BOOL := FALSE;
END_VAR
myTrig(CLK := taster); // durch Tastendruck soll q einmal kurzzeitig 1 sein
myCounter( IN := myTrig.Q,); // der Ausgang vom Trigger startet meinen Timer
// wenn die Zeit abelaufen ist, wird der DO null
IF myTrig.Q AND NOT myCounter.q THEN // setzt mein Signal auf true, bis Timer abgelaufen ist
signal := TRUE;
counterMachine := counterMachine +1;
ELSE
signal := FALSE;
END_If