1s Taktgeber Merkerbit in TwinCat 3

Hi
Ich Dachte es gibt diesen Merkerkram nur bei Siemens ?
Einfach TON mit Rückführung und pt=2s und Fertig.


Gesendet von iPhone mit Tapatalk
 
vielen dank für ihre Antworten nur jetzt bekomme ich durch TON ein saubere 1stakt? Also wenn ich gut verstanden habe einfach TON nehmen mit parameters : IN :=NOt TON_1.Q , PT:=1s , und was nehmen ich dann für Q ? könnte ich da ein F_trig da machen ?
 
Nicht so kompliziert !
Der Ton liefert dir an Q exakt einen Impuls !
Oder möchtest du zu jeder Sekunde einen Impuls von genau 1s ?



Gesendet von iPhone mit Tapatalk
 
Hi
Hab ich mir fast gedacht...
Google mal nach Blinker oder nimm die Quelle aus Oscat.
Bin leider unterwegs sonst hätte ich ihn gepostet.
Der aus OSCAT ist genial kurz !


Gesendet von iPhone mit Tapatalk
 
Man könnte auch einen TON nehmen (getriggert mit: NOT eigener Q) und dahinter einen Stromstoßschalter (oder einfach XOR).

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hier ist er:
Du kannst den qp rauslöschen, den hatte ich mal gebraucht...
Code:
FUNCTION_BLOCK _fbBlinker
VAR_INPUT
ENQ : BOOL := TRUE;
PTH : TIME;
PTL : TIME;
END_VAR
VAR_OUTPUT
Q : BOOL;
        QP : BOOL;
END_VAR
VAR
tx: TIME;
tn: TIME;
init: BOOL;
m : BOOL;
END_VAR

(* @END_DECLARATION := '0' *)
IF enq THEN
        tx := TIME();
IF NOT init THEN init := TRUE; tn := tx; END_IF;
IF tx - tn >= SEL(Q, PTL, PTH) THEN
tn := tn + SEL(Q, PTL, PTH);
Q := NOT Q;
END_IF;
ELSE
Q := FALSE;
init := FALSE;
        QP := FALSE;
END_IF;

QP := q AND NOT m;
m := q;

END_FUNCTION_BLOCK


Gesendet von iPhone mit Tapatalk
 
Hätte diese Variante:

Code:
VAR
 T1: TON;
 Clock: BOOL;
END_VAR

T1(IN := NOT(T1.Q), PT := t#2000ms);
IF (T1.ET >=  t#1000ms) THEN
 Clock := TRUE;
ELSE
 Clock := FALSE;
END_IF;

Allerdings hätte ich lieber so etwas, nur ist der direkte Zugriff auf die Bits von .ET nicht möglich:

Code:
T1(IN := NOT(T1.Q), PT := t#2000ms);
Clock := T1.ET.11;
 
Formuliere Deine Aufgabe mit anderen Worten, dann kommt die Lösung quasi wie von allein:
"Ich brauche ein Signal, was immer nach 1 Sekunde toggled (invertiert)"

Code:
T1(IN := NOT T1.Q, PT := T#1000ms);
IF T1.Q THEN
  Clock := NOT Clock;
END_IF;
oder einfach
Code:
T1(IN := NOT T1.Q, PT := T#1000ms);
Clock := Clock XOR T1.Q;

Harald
 
Hi HI Tausend dank hat funktioniert ich habe die version von Mareka genommen weil zu einfach geschrieben wurde aber wie gesagt beide gehen danke schön nun gucke ich wie ich des mit FUP machen kann . dass Problem ist nur dass der comparator kein type time mit bool convertieren kann hummmm.
 
Hi Hi Hi Danke schön an alle es läuft. Mareka ich habe ein frage an dich wenn ich des nun dein Programm-code mit FUP schreiben möchte kriegt ich eine fäller meldung und zwar ich kann kein type Time mit Bool convertieren. also ich habe für die If bedigung T1.Et >= ein comparator gatter genommen . wie soll ich des lösen also wie könnte ich des mit Fup machen ist des überhaupt möglich ?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Am einfachsten wäre es du benutzt PN/DPs Logik, die lässt sich ohne weiteres in FUP übertragen.
Sorry für die Qualität des Bildes, ich nehme Screenshot mal wörtlich...
IMG_3476.jpg

Un meinem Schnipsel überhaupt noch etwas abzugewinnen habe ich es mal mit einem veränderbaren To / Tp Verhälnis versehen. Ratio := 2 -> 1 Sekunde ein, 1 Sekunde aus. Ratio := 3 -> 666ms ein, 1333ms aus...
Anhang anzeigen 34223
 

Anhänge

  • image.jpg
    image.jpg
    555,5 KB · Aufrufe: 44
Zuletzt bearbeitet:
Zurück
Oben