Hi, ich möchte 2 Timer laufen lassen. Dabei soll der eine Timer alle X Sekunden und der zweite Timer alle Y Sekunden ablaufen. Dann möchte ich jedesmal, wenn der 2. Tmer abläuft einen Wert (Value) um 100 / (X/Y) erhöhen. Damit würde ich eine Art Ladebalken visualisieren. Beispiel: X = 5s Y = 50 ms Value_init = 0 100 / (5000ms/50ms) = 1 Dann würde man bei jedem Schritt + 1 rechnen. So sollte ich von 0 auf 100 kommen bis zum Ende der 5s, wenn ich die Berechnung alle 50 ms durchführe. Ich lande aber...
Ja die SPS arbeitet zyklisch. Das bedeutet, ja, dass der Code von oben nach unten ausgeführt und nach Beendigung des Codes nach einer gewissen Zeit wiederholt wird. Zur Funktion von TON: Ich sehe, dass, wenn ich einern Timer TON in eine IF-Bedingung lege, sodass der Timer nicht wieder ausgeführt wird, dann zählt dieser nicht weiter. IF firstTime THEN firstTime := FALSE; Zeitobjekt(IN := ZeitobjektHLP, PT := T#2S); END_IF Daraus schließe ich, dass diese Timer Funktion einfach die Zykluszeit des Programms...
Hallo, wenn man F_TRIG wie folgt nutzt VARIABLEN-BERECH: VAR S:F_TRIG; END_VAR CODE-BERECH: S(CLK:=Input_Bit); Dann wartet die PLC solange, bis beim Eingang Input_Bit eine fallende Flanke detektiert wird, dann wird S.Q auf True gesetzt. Hier hätte ich die Frage. Es scheint für mich, dass der restlche Code vollkommen unabhängig davon läuft. Wird mit dem obigen Befehl eine Art Interrupt gesteuert? Also fallende Flanke erkannt und der Interrupt ändert das Bit S.Q ? Ähnliche Frage hätte ich bei den Timern...