Touch-Probe-Quellen
Touch-Probe des Antriebs
Bei Verwendung der Touch-Probe-Funktion des Antriebs findet eine "hochgenaue" Positionserfassung statt. Um diese Funktion optimal verwenden zu können, sollten die relevanten Antriebsdaten als Prozessdaten gemappt sein. Ist dies nicht der Fall, wird auf die Touch-Probe-Signale per SDO zugegriffen. Dies hat den Nachteil, dass die Ereignisse nicht sofort in der Steuerung zur Verfügung stehen und dass im Falle einer kontinuierlichen Messung (Dauermessung) Daten verloren gehen können.
- Verwendung/Konfiguration MC_TRIGGER_REF :
Zu einem aufgetretenen TP Ereignis liefert der Antriebsregler 2 Informationen:
-
TP Position
-
TP Zeitstempel
Wird in der Applikation zum TP Ereignis nur die Position der zugehörigen Motion Achse verwendet/ausgewertet, ist es ausreichend, die zum Ereignis zugehörige TP-Position zu mappen.
-
Der in der Struktur L_MC1P_TpReceiveData angezeigte Zeitstempel (dwRecTimeStamp) wird in der Motion Achse berechnet.
Wird in der Applikation das TP Ereignis unabhängig von der Position der zugehörigen Motion Achsen angewendet, so ist es empfehlenswert den zum Ereignis zugehörige TP-Zeitstempel zu mappen, um eine höhere Genauigkeit zu erreichen. Das Mappen der TP-Position ist dann nicht notwendig.
-
Die TP Position wird dann in der Motion Achse auf Basis des Zeitstempels und der Istposition berechnet.
Übersicht der Antriebs-Touchprobe Ereignisse und die zugehörige Prozessdaten
|
Name |
TP Steuerwort |
TP Statuswort |
TP Position |
TP Zeitstempel |
|---|---|---|---|---|
|
DigIn 1 (Positive Flanke) oder Nullimpuls |
0x60B8 / 0 |
0x60B9/0 |
0x60BA/0 |
0x2D01/1 |
|
DigIn 1 (negative Flanke) |
0x60BB/0 |
0x2D01/2 |
||
|
DigIn 2 (Positive Flanke) oder Nullimpuls |
0x60BC/0 |
0x2D01/3 |
||
|
DigIn 2 (negative Flanke) |
0x60BD/0 |
0x2D01/4 |
||
|
DigIn 3 (Positive Flanke) oder Nullimpuls |
0x2D02/1 |
0x2D02/2 |
0x2D03/1 |
0x2D01/5 |
|
DigIn 3 (negative Flanke) |
0x2D03/2 |
0x2D01/6 |
||
|
DigIn 4 (Positive Flanke) oder Nullimpuls |
0x2D03/3 |
0x2D01/7 |
||
|
DigIn 4 (negative Flanke) |
0x2D03/4 |
0x2D01/8 |
Externe Touch-Probe-Quelle
Bei der Verwendung einer externen Touch-Probe-Quelle (z. B. Fast-I/O) findet eine "hochgenaue" Positionserfassung statt. Über die Variable ExternalDelayComp kann eine zusätzliche Totzeitkompensation vorgenommen werden.
- Verwendung/Konfiguration MC_TRIGGER_REF :
Beispiel
VAR
stTriggerRef1: MC_TRIGGER_REF; // structure
MC_TouchProbe1: MC_TouchProbe; // Fb END_VAR
Program:
...
stTriggerRef1.TouchProbeSource := 2 ; // selection source touch probe event
stTriggerRef1.TouchProbeChannel := 1 ; // selection touch probe channel (only relevant with TouchProbeSource = 1 or 2)
stTriggerRef1.TouchProbeSignal := 1 ; // selection touch probe signal (only relevant with TouchProbeSource = 1)
stTriggerRef1.TouchProbeEdge := 1 ; // 1 configuration of the edge evaluation
stTriggerRef1.TouchProbeMode := 1 ; // selection touch probe mode
stTriggerRef1.ExternalDelayComp := 0 ;
stTriggerRef1.ExternalTPSource := FastIO_InRef;
MC_TouchProbe1(
Axis:= i700_Motion_Axis,
TriggerInput:= stTriggerRef1,
Execute:= ,
WindowOnly:= ,
FirstPosition:= ,
LastPosition:= ,
Done=> ,
Busy=> ,
CommandAborted=> ,
Error=> ,
ErrorID=> ,
ActivationLevel=> ,
ValueStored_PosEdge=> ,
RecPosition_PosEdge=> ,
ValueStored_NegEdge=> ,
RecPosition_NegEdge=> ,
NewValueStored_PosEdge=> ,
NewValueStored_NegEdge=> ,
RecData=> );
...
Einfacher Digitaleingang
Bei der Verwendung eines "normalen" I/O als Touch-Probe-Quelle findet keine "hochgenaue" Positionserfassung statt. Es wird die Position des aktuellen Zyklus ausgegeben. Über die Variable ExternalDelayComp kann eine zusätzliche Totzeitkompensation vorgenommen werden.
- Verwendung/Konfiguration MC_TRIGGER_REF :
|
Hinweis!
Auf eine Adresse des I/O-Abbildes kann nicht direkt zugegriffen werden; der Eingang muss vorher in eine Variable kopiert werden:
|
Extern angeschlossener Antrieb als Touch-Probe-Quelle für beliebige Achse (z.B. Geber)
Bei der Verwendung der Touch-Probe-Funktion für einen am FB-Eingang Axis angeschlossenen externen Geber kann eine "hochgenaue" Positionserfassung über ein Touch-Probe-Ereignis einer anderen Achse erfolgen . Um diese Funktion verwenden zu können, muss über ExternalTPFromAxis die Achse als Touch-Probe-Quelle übergeben werden. Zudem müssen die relevanten Antriebsdaten als Prozessdaten gemappt sein. In dieser Kombination ist es sinnvoll, die zugehörigen Zeitstempel des TP Ereignisses in das Mapping aufzunehmen.