MC_TouchProbe

MC_TouchProbe 1:

Der Funktionsbaustein MC_TouchProbe erfasst eine Achsposition zum Zeitpunkt eines digitalen Signals (Messtasterfunktion). Die Position wird über ein externes Hardware-Latch erfasst und ist damit hochgenau und von der Zykluszeit unabhängig. Der Baustein steuert diesen Mechanismus und ermittelt die extern erfasste Position.

MC_TouchProbe 2:

Beteiligte Parameter müssen unter Umständen in den Parametern des Drive eingestellt werden. Für die Servoklemme sind die Parameter z. B. in den Objekten DMC Setting (0x8030) bzw. DMC Features (0x8031) zu finden.

MC_TouchProbe 3:

Nachdem ein Messtasterzyklus durch eine steigende Flanke am Eingang „Execute“ gestartet wurde, wird dieser erst beendet, wenn die Ausgänge „Done“, „Error“ oder „CommandAborted“ TRUE werden. Soll der Vorgang zwischenzeitlich abgebrochen werden, muss der Funktionsbaustein MC_AbortTrigger mit derselben TriggerInput-Datenstruktur aufgerufen werden. Anderenfalls kann kein neuer Zyklus gestartet werden.

Signalverlauf

MC_TouchProbe 4:

MC_TouchProbe 5: Eingänge

VAR_INPUT
    Execute       : BOOL;
    WindowOnly    : BOOL;
    FirstPosition : LREAL;
    LastPosition  : LREAL;
END_VAR

Name

Typ

Beschreibung

Execute

BOOL

Mit einer steigenden Flanke wird das Kommando ausgeführt und das externe Positionslatch aktiviert.

WindowOnly

BOOL

Wenn WindowOnly = TRUE ist, wird nur eine Position innerhalb des Fensters zwischen „FirstPosition“ und „LastPosition“ erfasst. Positionen außerhalb des Fensters werden verworfen und das externe Positionslatch wird automatisch neu aktiviert. Erst wenn die erfasste Position innerhalb des Fensters liegt, wird „Done“ TRUE. Das Erfassungsfenster kann absolut oder modulo interpretiert werden. Dazu muss das Flag „ModuloPositions“ in der TriggerInput-Datenstruktur entsprechend gesetzt werden. Bei absoluten Positionen gibt es exakt ein Fenster. Bei Modulo-Positionen wiederholt sich das Fenster innerhalb des in den Achsparametern festgelegten Modulo-Zyklus (z. B. 0 bis 360°).

FirstPosition

LREAL

Anfangsposition des Erfassungsfensters, wenn „WindowOnly“ TRUE ist. Diese Position kann absolut oder modulo interpretiert werden. Dazu muss in der TriggerInput-Datenstruktur das Flag „ModuloPositions“ entsprechend gesetzt werden.

LastPosition

LREAL

Endposition des Erfassungsfensters, wenn „WindowOnly“ TRUE ist. Diese Position kann absolut oder modulo interpretiert werden. Dazu muss das Flag „ModuloPositions“ in der TriggerInput-Datenstruktur entsprechend gesetzt werden.

MC_TouchProbe 6:

MC_TouchProbe 7: Ein-/Ausgänge

VAR_IN_OUT
    Axis         : AXIS_REF;
    TriggerInput : TRIGGER_REF; 
END_VAR

Name

Typ

Beschreibung

Axis

AXIS_REF

Achsdatenstruktur

TriggerInput

TRIGGER_REF

Datenstruktur zur Beschreibung der Trigger-Quelle. Diese Datenstruktur muss vor dem ersten Aufruf des Funktionsbausteins parametriert werden.

MC_TouchProbe 8: Ausgänge

VAR_OUTPUT
    Done             : BOOL;
    Busy             : BOOL;
    CommandAborted   : BOOL;
    Error            : BOOL;
    ErrorId          : UDINT;
    RecordedPosition : LREAL;
    RecordedData     : MC_TouchProbeRecordedData; 
END_VAR 

Name

Typ

Beschreibung

Done

BOOL

TRUE, wenn eine Achsposition erfolgreich erfasst wurde. Die Position wird am Ausgang „RecordedPosition“ ausgegeben.

Busy

BOOL

TRUE, sobald der Baustein aktiv ist. FALSE, wenn er sich im Grundzustand befindet.

CommandAborted

BOOL

TRUE, wenn der Vorgang von außen, z. B. durch den Aufruf von MC_AbortTrigger, abgebrochen wurde.

Error

BOOL

TRUE, wenn ein Fehler auftritt.

ErrorID

UDINT

Liefert bei einem gesetzten Error-Ausgang die Fehlernummer.

RecordedData

MC_TouchProbeRecordedData

Datenstruktur mit ergänzenden Informationen zur erfassten Achsposition zum Zeitpunkt des Trigger-Signals

Voraussetzungen

Entwicklungsumgebung

Einzubindende SPS-Bibliotheken

TwinCAT 3.1.4024.11

Tc3_DriveMotionControl