MC_TouchProbe

MC_TouchProbe 1:

Der Baustein MC_TouchProbe 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.

Voraussetzungen

Vorraussetzung für die Positionserfassung ist eine geeignete Encoder-Hardware, die in der Lage ist, die erfasste Position zu latchen. Unterstützt werden beipielsweise SERCOS-Antriebe, Beckhoff AX2000 mit SERCOS- und Lightbus-Schnittstelle und Beckhoff Encoder-Klemmen KL5101. Dass 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. Lesen Sie dazu Messtasterauswertung mit AX2xxx-B200 (Lightbus) und Messtasterauswertung mit AX2xxx-B750 (SERCOS).

Hinweis

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 mit derselben TriggerInput Datenstruktur aufgerufen werden. Anderenfalls kann kein neuer Zyklus gestartet werden.

Signalverlauf

MC_TouchProbe 2:

VAR_INPUT

VAR_INPUT
    Execute        : BOOL;  (* Starts touch probe recording *)
    WindowOnly     : BOOL;  (* Enables the monitoring window *)
    FirstPosition  : LREAL; (* Beginning of the monitoring window *)
    LastPosition   : LREAL; (* Ending of the monitoring window *)
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 3:

VAR_OUTPUT

VAR_OUTPUT
    Done              : BOOL; (* move completed *)
    Busy              : BOOL; (* function block is currently busy *)
    CommandAborted    : BOOL;
    Error             : BOOL; (* Signals that an error has occured within Function Block *)
    ErrorID           : UDINT; (* Error identification *)
    RecordedPosition  : LREAL; (* Position where the trigger event occured *)
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

VAR_IN_OUT

VAR_IN_OUT
    TriggerInput : MC_InputRef;         (* Reference to the trigger signal source. *)
    Axis         : NCTOPLC_AXLESTRUCT;  (* Identifies the axis which position should be recorded at a defined event at the trigger input *)
END_VAR

TriggerInput : Datenstruktur vom Typ MC_InputRef, die den Trigger-Eingang für die Erfassung der Achsposition beschreibt.

Axis : Achsstruktur.

 

Voraussetzungen

Entwicklungsumgebung

Zielplattform

Einzubindende SPS Bibliotheken

ab TwinCAT v2.9 Build 1000

PC (i386)

TcMC.Lib