Zum Hauptinhalt springen

Messtaster

Diese Bibliothek kommt zum Einsatz um mit Hilfe des schnelles digitalen Umrichter-Eingangs Längen und/oder Abstände zu vermessen.

TB_TPmeasure

TB_TPmeasure

Mit diesem Baustein können Abstände und/oder Längen vermessen werden. Dazu wird eine Messtaster-Funktion im verwendeten Regler vorausgesetzt. Die Messtaster-Funktion (Touch probe) speichert mit einem digitalen Signal die aktuelle Geber-Position. Das Speichern kann bei der positiven und/oder negativen Flanke des Signals erfolgen.

Der Baustein berechnet aus den gemessenen Positionen Abstand und Länge. Um Störkanten auszublenden können Fenster vorgegeben werden, in denen eine gültige Messung erwartet wird.

Hinweis:Bevor der Baustein ausgeführt werden kann, müssen alle relevanten Parameter mit dem Baustein TB_TPmeasure_Init initialisiert werden. Verwendet werden dürfen nur Antriebe der Baureihe bmaXX4400 oder 5000.

Beschreibungallgemein

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:

EncoderParameterObjekt NummerBemerkung
1Geber 1 Winkel-Istwert 32 Bit60fb.0a32 Bit Winkel
1Messwert Umdrehungen pos. Flanke 32 Bit0x4246 (P582)Verwendung der unteren 16 Bit(*)
1Messwert Winkel pos. Flanke 32 Bit0x4245 (P581)Verwendung der obere 16 Bit(*)
1Messwert Umdrehungen neg. Flanke 32 Bit0x4248Verwendung der unteren 16 Bit(*)
1Messwert Winkel neg. Flanke 32 Bit0x4247Verwendung der obere 16 Bit(*)
2Geber 2 Winkel-Istwert0x419132 Bit Winkel
2Messwert Umdrehungen pos. Flanke 32 Bit0x424aVerwendung der unteren 16 Bit(*)
2Messwert Winkel pos. Flanke 32 Bit0x4249Verwendung der obere 16 Bit(*)
2Messwert Umdrehungen neg. Flanke 32 Bit0x424cVerwendung der unteren 16 Bit(*)
2Messwert Winkel neg. Flanke 32 Bit0x424bVerwendung 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.

EncoderParameterObjekt NummerBemerkung
1Geber 1 Winkel-Istwert 32 Bit60fb.0A32 Bit Winkel
2Geber 2 Winkel-Istwert 32 Bit68fb.0A32 Bit Winkel
Messtaster 1 Eingang:
1Messwert Umdrehungen pos. Flanke 32 Bit (MT1)207c.05Verwendung der unteren 16 Bit(*)
1Messwert Winkel pos. Flanke 32 Bit (MT1)207c.06Verwendung der obere 16 Bit(*)
1Messwert Umdrehungen neg. Flanke 32 Bit (MT1)207c.07Verwendung der unteren 16 Bit(*)
1Messwert Winkel neg. Flanke 32 Bit (MT1)207c.08Verwendung der obere 16 Bit(*)
2Messwert Umdrehungen pos. Flanke 32 Bit (MT1)207c.11Verwendung der unteren 16 Bit(*)
2Messwert Winkel pos. Flanke 32 Bit (MT1)207c.12Verwendung der obere 16 Bit(*)
2Messwert Umdrehungen neg. Flanke 32 Bit (MT1)207c.13Verwendung der unteren 16 Bit(*)
2Messwert Winkel neg. Flanke 32 Bit (MT1)207c.14Verwendung der obere 16 Bit(*)
Messtaster 2 Eingang:
1Messwert Umdrehungen pos. Flanke 32 Bit (MT2)207c.09Verwendung der unteren 16 Bit(*)
1Messwert Winkel pos. Flanke 32 Bit (MT2)207c.0AVerwendung der obere 16 Bit(*)
1Messwert Umdrehungen neg. Flanke 32 Bit (MT2)207c.0BVerwendung der unteren 16 Bit(*)
1Messwert Winkel neg. Flanke 32 Bit (MT2)207c.0CVerwendung der obere 16 Bit(*)
2Messwert Umdrehungen pos. Flanke 32 Bit (MT2)207c.15Verwendung der unteren 16 Bit(*)
2Messwert Winkel pos. Flanke 32 Bit (MT2)207c.16Verwendung der obere 16 Bit(*)
2Messwert Umdrehungen neg. Flanke 32 Bit (MT2)207c.17Verwendung der unteren 16 Bit(*)
2Messwert Winkel neg. Flanke 32 Bit (MT2)207c.18Verwendung 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:

EreignisErgebnisBemerkung
Starten des Bausteinsx_1stEdge=FALSE
x_Valid=FALSE
x_TP_Err=FALSE
di_ActDist=-1
Erste Kante wird erkanntx_1stEdge=TRUE
x_Valid=FALSE
x_TP_Err=FALSE
di_ActDist=-1
x_1stEdge bleibt TRUE.
Nächste gültige Kante wird erkanntx_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 erkanntx_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:

EreignisErgebnisBemmerkung
Starten des Bausteinsx_1stEdge=FALSE
x_Valid=FALSE
x_TP_Err=FALSE
di_ActDist=-1
di_ActSize=-1
Erste Vorderkante wird erkanntx_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 erkanntx_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 erkanntKeine Reaktion
Nächste gültige Hinterkante wird erkanntx_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 erkanntx_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 erkanntx_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.

Empfohlene Task: Event

Verwendete Bibliotheken: ARITHMETIC_xxbd00 oder höherTECH_TYPES_xxbd05 oder höher

Eingänge

Bezeichnung:Datentyp:Beschreibung:
x_EnableBOOLMit dem Eingang x_Enable=TRUE wird der Baustein initialisiert. War die Initialisierung erfolgreich, ist der Baustein frei gegeben. Dies wird mit dem Ausgang x_Active=TRUE angezeigt. Nach der Freigabe wird die erste Kante/Marke gesucht. Mit x_Enable=FALSE wird x_1stEdge und auch x_Active zurückgesetzt.
x_AckBOOLÜbernahmequittierung der gemessenen Daten. Mit x_Ack=TRUE wird x_Valid=FALSE, und der gemessene Abstand (und Länge) auf -1 gesetzt.
x_CounterClockwiseBOOLVor der Freigabe mit x_Enable muss mit diesem Eingang vorgewählt werden, in welche Richtung die Druckmarkenlänge vermessen wird. Mit Richtung ist gemeint, ob der an EncPos angeschlossene Geber, im Uhrzeigersinn (clockwise) positiv zählt, oder gegen den Uhrzeigersinn (counterclockwise) also in die negative Richtung zählt. Dabei gilt: TRUE: Counterclockwise FALSE: Clockwise Bei Änderung der Variable während dem Betrieb, muss der Baustein mit einer LH Flanke an x_Enable neu initialisiert werden.
di_DefDistDINTVorgabewert des erwarteten Kanten-Abstands der LH-Flanken (oder der HL_Flanken) in Anwendereinheiten (z.B. Druckmarkenabstand).
di_DefSizeDINTVorgabewert der erwarteten Kanten-Länge der LH- zur HL-Flanke (oder HL- zur LH-Flanke) in Anwendereinheiten (z.B. Druckmarkenlänge).
di_WinDistDINTZulässige Abweichung (Fensterbreite) des Kanten-Abstands der LH-Flanken (oder der HL_Flanken) in Anwendereinheiten. Es werden Abstände mit di_DefDist ± di_WinDist akzeptiert. Wird nichts angeschlossen, ist die Störmarkenerkennung deaktiviert und es werden alle gefundenen Flanken erfasst.
di_WinSizeDINTZulässige Abweichung (Fensterbreite) des Kanten-Abstands der LH- zur HL-Flanke bzw. HL- zur LH-Flanke in Anwendereinheiten. Es werden Breiten mit di_DefSize ± di_WinSize akzeptiert. Wird nichts angeschlossen, ist die Störmarkenerkennung deaktiviert und es werden alle gefundenen Flanken erfasst.
ud_UnitsUDINTAnzahl der Anwendereinheiten für die entsprechenden Geberumdrehungen (u_Revolution).
u_RevolutionUINTAnzahl der Geberumdrehungen für die entsprechenden Anwendereinheiten (ud_Units).
d_EncPosDWORDGeber-Istwert des Messtaster-Gebers. Format 32-Bit Winkel.
d_TP_PosLHDWORDGemessene Position der LH-Flanke. Format: 16-Bit Umdrehung 16-Bit Winkel
d_TP_PosHLDWORDGemessene Position der HL-Flanke. Format: 16-Bit Umdrehung 16-Bit Winkel

Ausgänge

Bezeichnung:Datentyp:Beschreibung:
x_ActiveBOOLTRUE: Baustein ist aktiv, die Initialisierung war fehlerfrei.
x_1stEdgeBOOLErste gültige Kante erkannt. x_1stEdge bleibt solange TRUE, bis x_Enable=FALSE wird.
x_ValidBOOLTRUE: Gültige Werte an di_ActDist (und di_ActSize). Wird mit x_Ack=TRUE zurückgesetzt.
di_ActDistDINTJe nach Mode und Messung: Gemessener ODER letzter gültiger ODER maximaler Abstand der LH-Flanken bzw. HL-Flanken in Anwendereinheiten.
di_ActSizeDINTJe nach Mode und Messung: Gemessene ODER letzte gültige ODER minimale Länge der LH- zur HL-Flanke (oder der HL- zur LH-Flanke) in Anwendereinheiten.
x_TP_ErrBOOLTRUE: Fehlerhafte Messung, d.h. keine Flanke innerhalb Fenster gefunden. Bleibt solange TRUE, bis gültige Messung erfolgte oder x_Enable=FALSE.
u_TP_ErrCntUINTAnzahl aufeinander folgender fehlerhafter Messungen. Wird bei der erster gültigen Messung zurückgesetzt.
x_ErrorBOOLTRUE: Fehler erkannt. Siehe Fehlertabelle.
i_ErrorINTFehlernummer. Siehe Fehlertabelle.
s_ErrTxtSTRINGFehlertext

Ein-/Ausgänge

Bezeichnung:Datentyp:Beschreibung:
_PMdataPM_TypeDaten aus dem Initialisierungsbaustein TB_TPmeasure_Init.
Darstellung in FBD

TB_TPmeasure_Init

TB_TPmeasure_Init

Dieser Baustein initialisiert die benötigten Parameter für den Messbaustein TB_TPmeasure. Dazu werden die Betriebsart, der Geber- und der Messtaster-Eingang festgelegt.

Der Baustein berechnet aus den gemessenen Positionen Abstand und Länge. Um Störkanten auszublenden können Fenster vorgegeben werden, in denen eine gültige Messung erwartet wird.

Es wird die Messtaster-Funktion im Regler anhand der angegeben Parameter initialisiert.

Folgende Betriebsarten sind möglich:

i_OpMode=0: Vermessen der Abstände der LH-Flanken.
i_OpMode=1: Vermessen der Abstände der HL-Flanken.
i_OpMode=2: Vermessen der Abstände der LH-Flanken
und der Abstände zwischen den LH- und HL-Flanken.
i_OpMode=3: Vermessen der Abstände der HL-Flanken
und der Abstände zwischen den HL- und LH-Flanken.

Als Eingang für den Messtaster kann der Eingang 1 oder 2 verwendet werden. Beim bmaXX 4400 muss dazu ein FIO-Modul auf Steckplatz D eingesetzt werden.

Es kann entweder Encoder 1 oder Encoder 2 verwendet werden.

Hinweis:Dieser Technologie Baustein ist nur in Verbindung mit einem BM4400 oder BM5000 Antrieb einsetzbar.

Empfohlene Task: Cyclic

Verwendete Bibliotheken: MOTION_CONTROL_xxbd00 oder höherTECH_TYPES_xxbd05 oder höher

Eingänge

Bezeichnung:Datentyp:Beschreibung:
x_ExecuteBOOLTRUE = Flankensensitive Ausführung, die Eingangsparameter werden übernommen.
FALSE = Keine Ausführung bzw. Reset der FB-Ausgänge.
i_ModeINTBetriebsarten siehe oben
i_DigInINTVerwendeter Digital-Eingang für den Sensor. Es muss ein FIO-Modul auf Steckplatz D (bmaXX 4000) eingesetzt werden.
Wird der FB ausgeführt wenn i_DigIn = 0, dann wird die Konfiguration der Messtaster-Eingänge zurückgesetzt.
i_EncoderINTVerwendeter Encoder. Der entprechende Encoder muss bereits über Winbass aktiviert worden sein!

Ausgänge

Bezeichnung:Datentyp:Beschreibung:
x_OkBOOLTRUE: Initialisierung erfolgreich beendet.
x_ErrorBOOLTRUE: Fehler erkannt. Siehe Fehlertabelle.
i_ErrorINTFehlernummer. Siehe Fehlertabelle.
s_ErrTxtSTRINGFehlernummer. Siehe Fehlertabelle.

Ein-/Ausgänge

Bezeichnung:Datentyp:Beschreibung:
_PMdataPM_TypeDaten für den Messbaustein TB_TPmeasure.
_AxisAXIS_REFVerwendete Motion Control Achse.
Darstellung in FBD

TF_TPmeasure

TF_TPmeasure

Dieser Baustein führt die 16:16 Bit-Shiftung der 32Bit LH/HL MT Umdrehungs und 32Bit LH/HL MT Winkelwerte durch, die für den Anschluss am TB_TPmeasure notwendig ist.

Beschreibungallgemein

Dieser Baustein dient als Hilfsbeschaltung für den TB_TPmeasure. Er führt die 16:16 Shiftung der 32Bit Werte durch, die für den Anschluss der 32Bit Parameter an den TB_TPmeasure notwendig ist.

Folgende Parameter können abhängig vom Antrieb, als Prozessdaten gemapped werden:
Beim b maxx 4000 sind dies abhängig vom verwendeten Encoder:

EncoderParameterObjekt NummerBemerkung
1Geber 1 Winkel-Istwert 32 Bit60fb.0a32 Bit Winkel
1Messwert Umdrehungen pos. Flanke 32 Bit0x4246 (P582)Verwendung der unteren 16 Bit(*)
1Messwert Winkel pos. Flanke 32 Bit0x4245 (P581)Verwendung der obere 16 Bit(*)
1Messwert Umdrehungen neg. Flanke 32 Bit0x4248Verwendung der unteren 16 Bit(*)
1Messwert Winkel neg. Flanke 32 Bit0x4247Verwendung der obere 16 Bit(*)
2Geber 2 Winkel-Istwert0x419132 Bit Winkel
2Messwert Umdrehungen pos. Flanke 32 Bit0x424aVerwendung der unteren 16 Bit(*)
2Messwert Winkel pos. Flanke 32 Bit0x4249Verwendung der obere 16 Bit(*)
2Messwert Umdrehungen neg. Flanke 32 Bit0x424cVerwendung der unteren 16 Bit(*)
2Messwert Winkel neg. Flanke 32 Bit0x424bVerwendung der obere 16 Bit(*)

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.

EncoderParameterObjekt NummerBemerkung
1Geber 1 Winkel-Istwert 32 Bit60fb.0A32 Bit Winkel
2Geber 2 Winkel-Istwert 32 Bit68fb.0A32 Bit Winkel
Messtaster 1 Eingang:
1Messwert Umdrehungen pos. Flanke 32 Bit (MT1)207c.05Verwendung der unteren 16 Bit(*)
1Messwert Winkel pos. Flanke 32 Bit (MT1)207c.06Verwendung der obere 16 Bit(*)
1Messwert Umdrehungen neg. Flanke 32 Bit (MT1)207c.07Verwendung der unteren 16 Bit(*)
1Messwert Winkel neg. Flanke 32 Bit (MT1)207c.08Verwendung der obere 16 Bit(*)
2Messwert Umdrehungen pos. Flanke 32 Bit (MT1)207c.11Verwendung der unteren 16 Bit(*)
2Messwert Winkel pos. Flanke 32 Bit (MT1)207c.12Verwendung der obere 16 Bit(*)
2Messwert Umdrehungen neg. Flanke 32 Bit (MT1)207c.13Verwendung der unteren 16 Bit(*)
2Messwert Winkel neg. Flanke 32 Bit (MT1)207c.14Verwendung der obere 16 Bit(*)
Messtaster 2 Eingang:
1Messwert Umdrehungen pos. Flanke 32 Bit (MT2)207c.09Verwendung der unteren 16 Bit(*)
1Messwert Winkel pos. Flanke 32 Bit (MT2)207c.0eVerwendung der obere 16 Bit(*)
1Messwert Umdrehungen neg. Flanke 32 Bit (MT2)207c.0fVerwendung der unteren 16 Bit(*)
1Messwert Winkel neg. Flanke 32 Bit (MT2)207c.10Verwendung der obere 16 Bit(*)
2Messwert Umdrehungen pos. Flanke 32 Bit (MT2)207c.15/td>Verwendung der unteren 16 Bit(*)
2Messwert Winkel pos. Flanke 32 Bit (MT2)207c.16Verwendung der obere 16 Bit(*)
2Messwert Umdrehungen neg. Flanke 32 Bit (MT2)207c.17Verwendung der unteren 16 Bit(*)
2Messwert Winkel neg. Flanke 32 Bit (MT2)207c.18Verwendung der obere 16 Bit(*)

Beschaltungsbeispiel für BmaXX 5300 (EA oder DA Achse 1) mit Messtaster 1 und Geber 1:

Die Ausgänge d_EncPos, d_TP_PosLH und d_TP_PosHL sind direkt auf die gleichnamigen Eingänge des TB_TPmeasure anzuschließen.

Empfohlene Task: Cyclic

Verwendete Bibliotheken: MOTION_CONTROL_xxbd00 oder höherTECH_TYPES_xxbd05 oder höher

Eingänge

Bezeichnung:Datentyp:Beschreibung:
ud_EncoderActualValueUDINT32 Bit Encoder Lageistwert
ud_PosEdgeRevolutionsUDINT32 Bit positive Flanke Umdrehungen
ud_PosEdgeAngleUDINT32 Bit positive Flanke Winkel
ud_NegEdgeRevolutionsUDINT32 Bit negative Flanke Umdrehungen
ud_NegEdgeAngleUDINT32 Bit negative Flanke Winkel

Ausgänge

Bezeichnung:Datentyp:Beschreibung:
d_EncPosDWORDWinkelistwert im DWORD Format (für den Anschluss am TB_TPmeasure Eingang d_EncPos)
d_TP_PosLHDWORD16:16 Umdrehungen / Winkel geshifteter Wert für positive Flanke. (für den Anschluss am TB_TPmeasure Eingang d_TP_PosLH)
d_TP_PosHLDWORD16:16 Umdrehungen / Winkel geshifteter Wert für die negative Flanke. (für den Anschluss am TB_TPmeasure Eingang d_TP_PosHL)
Darstellung in FBD