FC_TPEdge - Allgemeine Informationen

Übersicht

Typ

Funktion

Verfügbar ab

SystemInterface_1.32.6.0

Versionen:

Aktuelle Version

Aufgabe

Position für ein Ereignis in einer Eingabedatei aufzeichnen (TouchProbe = TP); Beispiel: Druckmarke.

Beschreibung

Positionsmessung über eine Flanke an einem Messeingang. Der verwendete Digitaleingang muss als Touchprobe-Eingang vor dem Sercos-Phasenhochlauf konfiguriert werden. Mit dem Aufruf der Funktion wird die Positionsmessung gestartet. Wird ein gültiges Messergebnis erkannt, wird dies über den Parameter CaptureOK des Messeingangs zurückgemeldet.

HINWEIS: Die Funktion ist "flankengetriggert" und somit einmal pro Arbeitstakt aufzurufen.

Das Ereignis oder Signal wird über den Messsensor (wie den Druckmarkensensor) an einem Messeingang in das PacDrive-System eingetragen.

Über die Funktion FC_TPEdge() werden der Messeingang (i_stTPId), die Flanke (i_xPosEdge), die Positionsquelle (i_stDevId), der Positionstyp (i_diParType) und das Positionsfenster (i_lrLowLimit und i_lrHighLimit) festgelegt. Liegt das Ergebnis der Messung außerhalb des Positionsfensters, wird die Messung vom System verworfen und auf eine gültige Messung gewartet.

Beim Aufruf der Funktion FC_TPEdge() wird der Zustand des Parameters CaptureOk des Messeingangs auf FALSE und der Parameter CaptureValue des Messeingangs auf 0 gesetzt.

HINWEIS: Wird die Funktion in einer extern ereignisgesteuerten Task aufgerufen, muss die Priorität (Systempriorität VxWorks) der Task, in der die Funktion aufgerufen wird, >32 sein.

HINWEIS: Informationen zum Mindestintervall zwischen zwei Messimpulsen (bei Verwendung von LXM62DxS mit Onboard-E/A) finden Sie unter "Abstand zweier Messimpulse".

DevId

Bedeutung

Unterstützt durch ParType.

ANTRIEBSVERSTÄRKER

Achse

Ja

L_ENC

Logischer Geber

Ja

SENC

Summengeber

Nr.

HINWEIS: ParType 0 bis 6 sind nur dann verfügbar, wenn OnBoard I/O-Touchprobes, DRIVE oder L_ENC als Positionsquelle verwendet werden.

ParType

Bedeutung

Unterstützt durch DevId

0

Position

ANTRIEBSVERSTÄRKER

L_ENC

1

RefPosition

ANTRIEBSVERSTÄRKER

2

MechPosition

ANTRIEBSVERSTÄRKER

3

RefMechPosition

ANTRIEBSVERSTÄRKER

4

ShaftMechPosition

ANTRIEBSVERSTÄRKER

5

ShaftMechRefPos

ANTRIEBSVERSTÄRKER

6

PositionWithoutDelay

L_ENC

HINWEIS: Verschieben von CaptureValue. Bei einer Drehzahlveränderung verschiebt sich CaptureValue aufgrund von Verzögerungen im System.

Um dies zu kompensieren, sollte Folgendes berücksichtigt werden:

0 / Position: TP SensorDelay = TP HW Delay - ShaftDelay (ANTRIEBSVERSTÄRKER)

0 / Position: TP SensorDelay = TP HW Delay (L_ENC)

1 / RefPosition: TP SensorDelay = TP HW Delay - ShaftRefDelay

2 / MechPosition: TP SensorDelay = TP HW Delay - ShaftDelay

3 / RefMechPosition: TP SensorDelay = TP HW Delay - ShaftRefDelay

4 / ShaftMechPosition: TP SensorDelay = TP HW Delay

5 / ShaftMechRefPosition: TP SensorDelay = TP HW Delay

6 / PositionWithoutDelay: TP SensorDelay = TP HW Delay

HINWEIS: Die Funktion FC_TPEdge() kann nur in Sercos Phase 4 platziert und verwendet werden. Wenn die Funktion Phase 4 verlässt, müssen die TouchProbes reaktiviert werden, wenn Phase 4 erneut erreicht wird.

Schnittstelle

Eingang

Datentyp

Beschreibung

i_stTPId

ST_LogicalAddress

Messeingang

i_stDevId

ST_LogicalAddress

Positionsquelle

i_diParType

DINT

Positionstyp

i_xPosEdge

BOOL

Flanke

i_lrLowLimit

LREAL

Unterer Grenzwert Positionsfenster

i_lrHighLimit

LREAL

Oberer Grenzwert Positionsfenster

Rückgabewert

Datentyp

Beschreibung

DINT

0: OK.

-1: i_stTPId ungültig.

-2: i_stDevId ungültig.

-3: i_diParTyp ungültig.

-5: Messung nicht möglich, da sich der Sercos-Bus nicht in Phase 4 befindet.

-6: Messung nicht möglich.

-7: Messung nicht möglich, da der Messeingang nicht aktiviert ist.

Beispiele

CASE diState OF
1:  

   diResult:=FC_TPEdge(
      i_stTPId:=TP.stLogicalAddress,
      i_stDevId:= Encoder.stLogicalAddress,
      i_diParType:= 0,
      i_xPosEdge:= TRUE,
      i_lrLowLimit:= -MAXX,
      i_lrHighLimit:= MAXX );
   diState:=2;
2:  

   IF TP.CaptureOk = TRUE THEN
      lrTP_Pos:= TP.CaptureValue;
      ...
   END_IF
END_CASE