Du kannst bei TwinCAT Breakpoints im Code setzen. Wenn das Relais ein- und direkt wieder ausgeschaltet wird, dann schau dir mal verschiedene Zeitpunkte an, indem du Breakpoints in eine einfache IF-Abfrage setzt:
IF ausgang THEN
blubb := TRUE; // <= Hier Breakpoint auf eine Nonsens-Zuweisung setzen
END_IF;
Dann kannst du mit weiterlaufen lassen, bis das nächste mal der Ausgang gesetzt wird oder gesetzt bleibt. Um das Relais nicht zu himmeln, kannst du das erst einmal auf eine andere Variable legen.
Ansonsten kann man nur vermuten, was du angestellt hast, denn du fütterst uns nicht gerade mit Informationen... dein Codeausschnitt wird dir mit den Breakpoints wahrscheinlich das Verhalten zeigen, warum es nicht klappt.
Der Click-Baustein hält den Ausgang lediglich für einen Zyklus auf HIGH, also musst du dir danach eine Selbsthaltung oder ein Flip-Flop hinsetzen, damit das ganze gespeichert wird.
Für dich als Hausaufgabe also:
- Flip Flop googlen
- Selbsthaltung googlen
- OSCAT Building manual lesen, Abschnitt 'CLICK'
- Breakpoints setzen
Damit solltest du deinem Problem auf die Schliche kommen.
Viele Grüße!
Edit:
Habe ein Beispiel für dich, Stichwort Stromstoßschalter:
https://www.sps-forum.de/codesys-und-iec61131/85633-zentral-aus-fuer-stromstossschalter.html