MC_TouchProbe_V2

MC_TouchProbe_V2 1:
MC_TouchProbe_V2_00

Der Baustein MC_TouchProbe_V2 erfasst eine Achsposition zum Zeitpunkt eines digitalen Signals (Messtasterfunktion). Die Position wird üblicherweise nicht direkt in der SPS-Umgebung, sondern über ein externes Hardware-Latch erfasst und ist damit hochgenau und Zykluszeit-unabhängig. Der Baustein steuert diesen Mechanismus und ermittelt die extern erfasste Position.

Die Funktion des Bausteins MC_TouchProbe_V2 ist ähnlich der des Bausteins MC_TouchProbe. Mit mehreren Instanzen ist es aber möglich, bis zu zwei Probe-Units eines Antriebs gleichzeitig zu bedienen und es kann parallel die steigende und fallende Signalflanke mit jeweils einer Instanz erfasst werden. Weiterhin steht ein Continuous-Mode zur Verfügung der ohne erneute Aktivierung aufeinanderfolgende Signalflanken auswertet.

Voraussetzungen

Voraussetzung für die Positionserfassung ist eine geeignete Encoder-Hardware, die in der Lage ist, die erfasste Position zu latchen. Unterstützt werden:

Das digitale Trigger-Signal wird mit dieser Hardware verdrahtet und führt unabhängig vom SPS-Zyklus zum Aufzeichnen der aktuellen Achsposition.

Teilweise müssen diese Endgeräte konfiguriert werden, damit eine Positionserfassung möglich ist. Beckhoff EtherCAT-Antriebe können mit dem SystemManager konfiguriert werden. Hierbei ist zu beachten, dass die Probe-Unit mit dem erweiterten Interface "Extended NC Probe Unit" konfiguriert werden muss.

MC_TouchProbe_V2 2:

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

Signalverlauf

MC_TouchProbe_V2 3:

Eingänge

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

Execute

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

WindowOnly

Wenn diese Option aktiv 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 ist das Flag ModuloPositions in der Struktur TriggerInput entsprechend zu setzen. Bei absoluten Positionen gibt es exakt ein Fenster. Bei Modulo-Positionen wiederholt sich das Fenster innerhalb des in den Achsparametern festgelegten Modulozyklus (z. B. 0 bis 360 Grad).

FirstPosition

Anfangsposition des Erfassungsfensters, wenn WindowOnly TRUE ist. Diese Position kann absolut oder modulo interpretiert werden. Dazu ist in der Struktur TriggerInput (siehe unten) das Flag ModuloPositions entsprechend zu setzen.

LastPosition

Endposition des Erfassungsfensters, wenn WindowOnly TRUE ist. Diese Position kann absolut oder modulo interpretiert werden. Dazu ist in der Struktur TriggerInput (siehe unten) das Flag ModuloPositions entsprechend zu setzen.

MC_TouchProbe_V2 4:

Ausgänge

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

Done

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

Busy

Wird TRUE sobald der Baustein aktiv ist und wird FALSE nachdem er sich wieder im Grundzustand befindet.

CommandAborted

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

Error

Wird TRUE, sobald ein Fehler auftritt.

ErrorID

Liefert bei einem gesetzten Error-Ausgang die Fehlernummer.

RecordedPosition

Erfasste Achsposition zum Zeitpunkt des Trigger-Signals

RecordedData

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

Ein/Ausgänge


VAR_IN_OUT
Axis : AXIS_REF;
TriggerInput : TRIGGER_REF;
END_VAR

Axis

Achsdatenstruktur

TriggerInput

Datenstruktur TRIGGER_REF zur Beschreibung der Trigger-Quelle