Datentyp TRIGGER_REF

TYPE TRIGGER_REF :
STRUCT
EncoderID       : UDINT;              (* 1..255 *)
TouchProbe      : E_TouchProbe;       (* probe unit definition *)
SignalSource    : E_SignalSource;     (* optional physical signal source used by the probe unit
                                            - available from TwinCAT 2.11 Build 2022 with MC_TouchProbe_V2 *)
Edge            : E_SignalEdge;       (* rising or falling signal edge *)
Mode            : E_TouchProbeMode;   (* single shot or continuous monitoring
                                            - available from TwinCAT 2.11 Build 2022 with MC_TouchProbe_V2 *)
PlcEvent        : BOOL;               (* PLC trigger signal input when TouchProbe signal source is set to 'PlcEvent' *)
ModuloPositions : BOOL;               (* interpretation of FirstPosition, LastPosition and RecordedPosition as modulo positions when TRUE *)
END_STRUCT
END_TYPE

EncoderID : Die ID des Encoders kann im TwinCAT SystemManager abgelesen werden.

TouchProbe : Definiert die verwendete Latch-Einheit (Probe-Unit) innerhalb der verwendeten Encoder-Hardware.


TYPE E_TouchProbe :
(
TouchProbe1 := 1,    (* 1st hardware probe unit with Sercos, CanOpen, KL5xxx and others *)
TouchProbe2,         (* 2nd probe unit - available from MC_TouchProbe_V2_00 *)
TouchProbe3,         (* currently not available *)
TouchProbe4,         (* currently not available *)
PlcEvent := 10       (* simple PLC signal TRUE/FALSE *)
);
END_TYPE

SignalSource : Definiert optional die Signalquelle, soweit diese über die Steuerung gewählt werden kann. In vielen Fällen wird die Signalquelle fest im Antrieb konfiguriert und sollte dann auf den Standardwert SignalSource_Default eingestellt sein. (Einstellmöglichkeit erst mit MC_TouchProbe_V2 verfügbar)


TYPE E_SignalSource :
(
SignalSource_Default,           (* undefined or externally configured *)
SignalSource_Input1,            (* digital drive input 1 *)
SignalSource_Input2,            (* digital drive input 2 *)
SignalSource_Input3,            (* digital drive input 3 *)
SignalSource_Input4,            (* digital drive input 4 *)
SignalSource_ZeroPulse := 128,  (* encoder zero pulse *)
SignalSource_DriveDefined       (* defined by drive parameters - e. g. CAN object 0x60D0 *)
);
END_TYPE

Edge : Legt fest, ob die steigende oder fallende Flanke des Trigger-Signals ausgewertet wird.


TYPE E_SignalEdge :
(
RisingEdge,
FallingEdge
);
END_TYPE

Mode : Legt die Betriebsart der Latch-Einheit fest. Im Single-Mode wird nur die erste Flanke erfasst. Im Continuous-Mode wird jede Flanke für einen SPS-Zyklus signalisiert. (Mode nur verfügbar mit MC_TouchProbe_V2)


TYPE E_TouchProbeMode :
(
TOUCHPROBEMODE_SINGLE_COMPATIBILITYMODE,   (* for TwinCAT 2.10 and 2.11 before Build 2022 - for use with MC_TouchProbe as well *)
TOUCHPROBEMODE_SINGLE,                     (* multi probe interface - from 2.11 Build 2022 *)
TOUCHPROBEMODE_CONTINOUS                   (* multi probe interface - from 2.11 Build 2022 *)
);
END_TYPE

PlcEvent : Wenn die Signalquelle TouchProbe auf den Typ PlcEvent eingestellt ist, so führt eine steigende Flanke an dieser Variablen zum Aufzeichnen der aktuellen Achsposition. Das PlcEvent ist keine echte Latch-Funktion, sondern Zykluszeit-abhängig.

ModuloPositions : Wenn die Variable ModuloPositions FALSE ist, so wird die Achsposition in einem absoluten linearen Bereich von -∞ bis +∞ interpretiert. Die Positionen FirstPosition, LastPosition und RecordedPosition des Funktionsbausteins MC_TouchProbe bzw. MC_TouchProbe_V2 sind dann ebenfalls absolut.
Wenn ModuloPositions TRUE ist, werden alle Positionen modulo im Modulo-Bereich der verwendeten Achse interpretiert (z. B. 0..359.9999). Gleichzeitig bedeutet das, dass ein definiertes Trigger-Fenster sich zyklisch wiederholt.