TB_TPmeasure

Funktionalität

Es können entweder nur Abstände oder Abstände und Längen vermessen werden. Die gelatchten bzw. gespeicherten Messwerte und die Winkelistwerte des Gebers müssen zyklisch gelesen werden. Dazu müssen die entsprechenden Parameter gemappt werden.

Beim b maxx 4000 sind dies abhängig vom verwendeten Encoder:

Encoder Parameter Objekt Nummer Bemerkung
1 Geber 1 Winkel-Istwert 32 Bit 60fb.0a 32 Bit Winkel
1 Messwert Umdrehungen pos. Flanke 32 Bit 0x4246 (P582) Verwendung der unteren 16 Bit(*)
1 Messwert Winkel pos. Flanke 32 Bit 0x4245 (P581) Verwendung der obere 16 Bit(*)
1 Messwert Umdrehungen neg. Flanke 32 Bit 0x4248 Verwendung der unteren 16 Bit(*)
1 Messwert Winkel neg. Flanke 32 Bit 0x4247 Verwendung der obere 16 Bit(*)
2 Geber 2 Winkel-Istwert 0x4191 32 Bit Winkel
2 Messwert Umdrehungen pos. Flanke 32 Bit 0x424a Verwendung der unteren 16 Bit(*)
2 Messwert Winkel pos. Flanke 32 Bit 0x4249 Verwendung der obere 16 Bit(*)
2 Messwert Umdrehungen neg. Flanke 32 Bit 0x424c Verwendung der unteren 16 Bit(*)
2 Messwert Winkel neg. Flanke 32 Bit 0x424b Verwendung der obere 16 Bit(*)

Da d_TP_PosLH und d_TP_PosHL je 16 bit Umdrehung und 16bit Winkel sein müssen, sind die Messwerte noch zu shiften und zu verodern.

(*) Beispiel Zusammenführen der Werte in FUP:

P581 und P582 sind die Parameter des Antriebs, die zyklisch gelesen werden.

Für den b maXX 5000 müssen abhängig von der verwendeten Achse (EA: Parameteroffest 0x2000 / DA: Achse 1 = 0x2000 / Achse 2 = 0x4000), dem verwendtem Encoder (Geber 1/Geber 2) und digitalem Eingang (MT1 / MT2) Prozessdaten gemapped werden.

Encoder Parameter Objekt Nummer Bemerkung
1 Geber 1 Winkel-Istwert 32 Bit 60fb.0A 32 Bit Winkel
2 Geber 2 Winkel-Istwert 32 Bit 68fb.0A 32 Bit Winkel
Messtaster 1 Eingang:
1 Messwert Umdrehungen pos. Flanke 32 Bit (MT1) 207c.05 Verwendung der unteren 16 Bit(*)
1 Messwert Winkel pos. Flanke 32 Bit (MT1) 207c.06 Verwendung der obere 16 Bit(*)
1 Messwert Umdrehungen neg. Flanke 32 Bit (MT1) 207c.07 Verwendung der unteren 16 Bit(*)
1 Messwert Winkel neg. Flanke 32 Bit (MT1) 207c.08 Verwendung der obere 16 Bit(*)
2 Messwert Umdrehungen pos. Flanke 32 Bit (MT1) 207c.11 Verwendung der unteren 16 Bit(*)
2 Messwert Winkel pos. Flanke 32 Bit (MT1) 207c.12 Verwendung der obere 16 Bit(*)
2 Messwert Umdrehungen neg. Flanke 32 Bit (MT1) 207c.13 Verwendung der unteren 16 Bit(*)
2 Messwert Winkel neg. Flanke 32 Bit (MT1) 207c.14 Verwendung der obere 16 Bit(*)
Messtaster 2 Eingang:
1 Messwert Umdrehungen pos. Flanke 32 Bit (MT2) 207c.09 Verwendung der unteren 16 Bit(*)
1 Messwert Winkel pos. Flanke 32 Bit (MT2) 207c.0A Verwendung der obere 16 Bit(*)
1 Messwert Umdrehungen neg. Flanke 32 Bit (MT2) 207c.0B Verwendung der unteren 16 Bit(*)
1 Messwert Winkel neg. Flanke 32 Bit (MT2) 207c.0C Verwendung der obere 16 Bit(*)
2 Messwert Umdrehungen pos. Flanke 32 Bit (MT2) 207c.15 Verwendung der unteren 16 Bit(*)
2 Messwert Winkel pos. Flanke 32 Bit (MT2) 207c.16 Verwendung der obere 16 Bit(*)
2 Messwert Umdrehungen neg. Flanke 32 Bit (MT2) 207c.17 Verwendung der unteren 16 Bit(*)
2 Messwert Winkel neg. Flanke 32 Bit (MT2) 207c.18 Verwendung der obere 16 Bit(*)

Alternitv für das manuelle shiften, kann der Hilfsbaustein TF_TPmeasure verwendet werden. (Details s. Hilfe des TF_TPmeasure).

Beispielhafte Beschaltung:

Abstandsmessung:

Mode0: An den Eingang d_TP_PosLH wird die gemessene Position der Kante (im Format 16:16) angeschlossen.

Mode1: An den Eingang d_TP_PosHL wird die gemessene Position der Kante (im Format 16:16) angeschlossen.

Nach Starten des Bausteins wird die erste Kante gesucht. Kann innerhalb von zwei Längen (di_DefDist) keine Kante gefunden werden, bricht der Baustein mit einer Fehlermeldung ab.

Wird im laufenden Betrieb keine Marke im Fenster gefunden, so wird an der Fensteroberkante der letzte gemessene Abstand ausgegeben. Gleichzeitig wird x_TP_Err=TRUE und u_TP_ErrCnt hochgezählt. Es ist vom Anwender zu entscheiden, ob bei fehlender Markenerkennung mit den letzten Werten gearbeitet werden kann oder ob die Maschine angehalten werden muss!

Funktion (Mode 0):

Verhalten des Bausteins:

Ereignis Ergebnis Bemerkung
Starten des Bausteins x_1stEdge=FALSE
x_Valid=FALSE
x_TP_Err=FALSE
di_ActDist=-1
Erste Kante wird erkannt x_1stEdge=TRUE
x_Valid=FALSE
x_TP_Err=FALSE
di_ActDist=-1
x_1stEdge bleibt TRUE.
Nächste gültige Kante wird erkannt x_1stEdge=TRUE
x_Valid=TRUE
x_TP_Err=FALSE
di_ActDist=Abstand
x_Valid bleibt TRUE, bis Übernahme quittiert wurde (x_Ack=TRUE). u_TP_ErrCnt wird zurückgesetzt. di_ActDist wird mit x_Ack=TRUE auf -1 gesetzt.
Keine Kante im Fenster erkannt x_1stEdge=TRUE
x_Valid=TRUE
x_TP_Err=TRUE
di_ActDist=letzter Abstand
Ausgabe des letzten gemessenen Abstands an der Fensteroberkante. x_Valid und x_TP_Err bleiben TRUE, bis Übernahme quittiert wurde (x_Ack=TRUE). u_TP_ErrCnt zählt hoch. di_ActDist wird mit x_Ack=TRUE auf -1 gesetzt.

Abstand und Länge:

In dieser Betriebsart wird neben dem Abstand der (Vorder-)Kanten auch die Länge (Abstand Vorder- zu Hinterkante) vermessen.

Mode2: Es wird am Eingang d_TP_PosLH die gemessene Position der Vorderkante (im Format 16:16) und am Eingang d_TP_PosHL die gemessene Position der Hinterkante (im Format 16:16) angeschlossen.

Mode3: Es wird am Eingang d_TP_PosHL die gemessene Position der Vorderkante (im Format 16:16) und am Eingang d_TP_PosLH die gemessene Position der Hinterkante (im Format 16:16) angeschlossen.

Funktion (Mode 2):

Verhalten des Bausteins:

Ereignis Ergebnis Bemmerkung
Starten des Bausteins x_1stEdge=FALSE
x_Valid=FALSE
x_TP_Err=FALSE
di_ActDist=-1
di_ActSize=-1
Erste Vorderkante wird erkannt x_1stEdge=FALSE
x_Valid=FALSE
x_TP_Err=FALSE
di_ActDist=-1
di_ActSize=-1
Es wird eine gültige Hinterkante gesucht. Wird keine gültige Hinterkante gefunden, wird erneut eine Vorderkante gesucht (Störkanten-Erkennung).
Erste gültige Hinterkante wird erkannt x_1stEdge=TRUE
x_Valid=TRUE
x_TP_Err=FALSE
di_ActDist=-1
di_ActSize=Länge
x_1stEdge bleibt TRUE. x_Valid bleibt TRUE, bis Übernahme quittiert wurde (x_Ack=TRUE). u_TP_ErrCnt wird zurückgesetzt. di_ActSize wird mit x_Ack=TRUE auf -1 gesetzt.
Nächste gültige Vorderkante wird erkannt Keine Reaktion
Nächste gültige Hinterkante wird erkannt x_1stEdge=TRUE
x_Valid=TRUE
x_TP_Err=FALSE
di_ActDist=Abstand
di_ActSize=Länge
x_1stEdge bleibt TRUE. x_Valid bleibt TRUE, bis Übernahme quittiert wurde (x_Ack=TRUE). u_TP_ErrCnt wird zurückgesetzt. di_ActDist und di_ActSize werden mit x_Ack=TRUE auf -1 gesetzt.
Keine gültige Vorderkante erkannt x_1stEdge=TRUE
x_Valid=TRUE
x_TP_Err=TRUE
di_ActDist=maxAbst.
di_ActSize=minLänge
Ausgabe einer default Marke mit min. Länge und max. Abstand. x_Valid und x_TP_Err bleiben TRUE, bis Übernahme quittiert wurde (x_Ack=TRUE). di_ActDist und di_ActSize werden mit x_Ack=TRUE auf -1 gesetzt.
Keine gültige Hinterkante erkannt x_1stEdge=TRUE
x_Valid=TRUE
x_TP_Err=TRUE
di_ActDist=maxAbst.
di_ActSize=minLänge
Ausgabe einer virtuellen Marke mit min. Breite und max. Abstand. x_Valid und x_TP_Err bleiben TRUE, bis Übernahme quittiert wurde (x_Ack=TRUE). di_ActDist und di_ActSize werden mit x_Ack=TRUE auf -1 gesetzt.