Funktionbaustein TON unterbrechen

Peter12

Level-1
Beiträge
19
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich weis nicht ob das Tehma schon bearbeitet wurde. Ich hab leider nichts im Forum gefunden.

Mein problem ist das der TON immer von vorne anfängt (PT Zeit).

Ich möchte 2 Werkzeuge über 1 Program laufen lasse (nicht gleichzeitig) via Fast Hot Connect Klemme.
Die 2 Klemmen haben jeweils die ID 0 und 16 und es soll immer die Achsen reseten wenn die ID sich ändert also 0 oder 16 jeweils 1mal.
Da die ID immer 0 oder 16 ist läuft der TON immer durch.

Wäre super wenn mir jemand hilft :)
Danke


Code:
IF g_iID = 0 OR  g_iID = 16  THEN
    ResetAxis ( IN := TRUE , PT := T#2000ms);
        IF ResetAxis.Q THEN
                g_bAxisReset := TRUE;
                ResetAxis (IN:= FALSE);
        END_IF
END_IF

(*Reset Axis button change to false*)


IF NOT ResetAxis.Q THEN
    g_bAxisReset := FALSE;
END_IF
 
Zuletzt bearbeitet:
Zeitbausteine in eine Bedingung zu schachteln ist eine schlechte Idee.
Besser wäre:
Code:
IF g_ID_gespeichert <> g_ID then
   xReset_ausführen := True;
   g_ID_gespeichert := g_ID;
end_if;

ResetAxis ( IN := xReset_ausführen, PT := T#2000ms);

IF ResetAxis.Q THEN
    g_bAxisReset := TRUE;
   xReset_ausführen := False;
END_IF;
Das ganze ineinen FB gepackt sollte funktionieren.

Holger
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke für die schnelle Antwort

Wie kann ich denn Wert (ID) speichern?
Der gespeicherte Wert muss sich doch immer variieren. Wenn ich die Klemme wechsle oder sehe ich das faslsch?
 
Zeitbausteine in eine Bedingung zu schachteln ist eine schlechte Idee.
Besser wäre:
Code:
IF g_ID_gespeichert <> g_ID then   [COLOR=#ff0000]<<Abfrage ob ID sich geändert hat[/COLOR][COLOR=#ff0000][/COLOR]
   xReset_ausführen := True;
   g_ID_gespeichert := g_ID;            [COLOR=#ff0000]<<geänderte ID merken[/COLOR]
end_if;

ResetAxis ( IN := xReset_ausführen, PT := T#2000ms);

IF ResetAxis.Q THEN
    g_bAxisReset := TRUE;
   xReset_ausführen := False;
END_IF;
Das ganze ineinen FB gepackt sollte funktionieren.

Holger

Ich hab die Erklärung mal in Holgers code geschrieben
Grüße
 
Zurück
Oben