FB_TpDistanceControl - Allgemeine Informationen

Übersicht

Typ

Funktionsbaustein

Verfügbar ab

V1.0.3.0

Übernommen aus

-

Implementiert

-

Aufgabe

Erfassung und Speicherung von Produktabständen

Beschreibung

Der Funktionsbaustein kann in Anwendungen wie „Fliegende Säge“ oder „Eintaktung“ verwendet werden. Der Funktionsbaustein dient der Implementierung einer absoluten Korrektur.

Die Produkte werden über einen Messeingang (Touchprobe-Funktion) erfasst. Es wird der Abstand der Produkte (Vorderkante zu Vorderkante) gemessen und in einem FIFO-Puffer gespeichert.

Schnittstelle

Eingang

Datentyp

Beschreibung

i_xEnable

BOOL

Wertebereich: TRUE / FALSE

Eine steigende Flanke FALSE -> TRUE aktiviert die POU, eine fallende Flanke TRUE -> FALSE deaktiviert sie.

Wenn die POU abgeschaltet ist, führt sie keine Aktionen aus.

i_ifDrive

IF_Drive

Wertebereich: Antriebsobjekt

Eingang für die Achse, die mit LE am iq_lencEncoder verbunden werden soll.

i_ifTouchProbe

IF_TouchProbe

Wertebereich: Touchprobe-Objekt

Messeingang, über den die Produkte erfasst werden. Der Eingang misst die steigende Flanke des Touchprobes.

i_xReset

BOOL

Wertebereich: TRUE / FALSE

Löscht den FIFO-Puffer. Beim nächsten gültigen Touchprobe-Signal wird der Ausgang q_xFirstTp gesetzt.

Im Gegensatz zum Aktivieren über i_xEnable wird die Touchprobe-Funktion nicht zurückgesetzt. Somit geht keine Flanke verloren.

i_lrDefaultDistance

LREAL

Wertebereich: >= 0

Normalabstand der zu messenden Teile in Einheiten, Wertebereich >= 0.

Wenn i_lrDefaultDistance > 0 ist, dann wird nach Ablauf der Strecke i_lrDefaultDistance + i_lrMinDistance ein Produkt simuliert.

Das bedeutet, es wird die i_ lrDefaultDistance in den FIFO-Puffer geschrieben und der Ausgang q_diNumberOfMissingTps um 1 erhöht. Beim nächsten gültigen Touchprobe-Signal wird q_diNumberOfMissingTps auf null gesetzt. Wenn i_lrDefaultDistance = 0 wird stets auf das Touchprobe-Signal gewartet.

i_lrMinDistance

LREAL

Wertebereich: >= 0

Dient als Fenster für die Touchprobe-Signalerfassung.

Innerhalb dieser Strecke wird kein neues Touchprobe-Signal akzeptiert.

Werte in Einheiten, Wertebereich >= 0. Wenn i_lrDefaultDistance = 0, muss i_lrMinDistance > 0 sein. Beachten Sie, dass Produkte/Teile simuliert werden, wenn innerhalb von i_lrDefaultDistance + i_lrMinDistance kein Touchprobe-Signal auftritt. Das kann zu Konflikten mit aufgetretenen Touchprobe-Signalen führen.

i_lrMaxWaitDistance

LREAL

Wertebereich: >= 0

Maximaler Abstand für die Suche des ersten Touchprobe-Signals in Einheiten, Wertebereich >= 0.

Bei 0 wird keine Überprüfung auf einen Maximalwert duchgeführt.

i_lrMaxCorrection

LREAL

Wertebereich: > 0

Mit diesem Wert kann der Abstand, der über die Methode GetValue() aus dem FiFo ausgelesen wird, begrenzt werden. Der Rest der Messung wird beim nächsten Lesen mit berücksichtigt. Dieser Parameter wird nur berücksichtigt, wenn i_lrDefaultDistance > 0 und q_diNoOfElementsInFiFo > 0 ist.

Wertebereich > 0.

Ausgang

Datentyp

Beschreibung

q_xActive

BOOL

TRUE: Die POU ist eingeschaltet und muss weiter ausgeführt werden.

FALSE: Die POU ist abgeschaltet.

q_xReady

BOOL

TRUE: Die POU ist messbereit.

FALSE: Die POU ist nicht bereit.

q_etDiag

GD.ET_Diag

Allgemeingültige, bibliotheksunabhängige Aussage zur Diagnose.

Ein Wert ungleich ET_Diag.Ok entspricht einer Diagnosemeldung.

q_etDiagExt

ET_DiagExt

POU-spezifischer, diagnosebezogener Ausgang.

q_etDiag = ET_Diag.Ok -> Statusmeldung

q_etDiag <> ET_Diag.Ok -> Diagnosemeldung

q_sMsg

STRING[80]

Ereignisabhängige Meldung mit detaillierten Informationen zum Diagnosezustand.

q_xFirstTp

BOOL

Gibt an, dass das erste Produkt von der Touchprobe-Funktion erkannt wurde. Dieses Signal dient der Synchronisierung der Anwendung mit dem Funktionsbaustein.

q_diNumberOfMissingTps

DINT

Zeigt an, dass innerhalb der Strecke i_lrDefaultDistance + i_lrMinDistance kein Produkt gesehen wurde.

Dieses Signal wird nur ausgelöst, wenn i_lrDefaultDistance > 0. Der Ausgang wird auf 0 gesetzt, sobald ein neues gültiges Touchprobe-Signal erkannt wird.

q_diNoOfElementsInFiFo

DINT

Gibt an, wie viele Werte im FIFO-Puffer gespeichert wurden. Der FIFO-Puffer ist für maximale Gc_diMaxNumberOfElementsInFiFo Werte ausgelegt. Wenn Gc_diMaxNumberOfElementsInFiFo Werte überschritten werden, wird ein Fehler ausgegeben. Mit der Methode GetValue() können Werte aus dem FiFo ausgelesen werden.

q_lrTpCaptureDiff

LREAL

Unterschied zwischen der Position des iq_lencEncoder zur Abtastperiode, mit der das Signal q_xFirstTP gesetzt wird, und der Messung beim Touchprobe-Signal.

Dieser Wert kann in der Anwendung beim ersten Synchronisieren benutzt werden, um die Genauigkeit zu erhöhen. Siehe Druckmarkenregeleung mit absoluter Korrektur.

q_lrTpCaptureValue

LREAL

Position beim Auftreten des letzten TouchProbe-Signals.

Ein-/Ausgang

Datentyp

Beschreibung

iq_lencEncoder

L_ENC

Logischer Geber zur Abstandsmessung. Der logische Geber muss mit der Masterachse verbunden sein. Für jede Instanz des Funktionsbausteins muss ein eigener logischer Geber angelegt werden.

Beispiele

Folgende Beispiele erläutern detailliert die Erfassung und Speicherung von Produktabständen über FB_TpDistanceControl:

oGetaktete Anwendung mit absoluter Korrektur

oSynchrone Anwendung mit absoluter Korrektur

Diagnosemeldungen

q_etDiag

q_etDiagExt

Enumerationswert

Beschreibung

OK

Disabled

9

Die POU ist deaktiviert.

OK

Initializing

4

Die POU wird initialisiert.

OK

WaitForFirstTouchProbeSignal

168

Warten auf erstes Touchprobe-Signal.

OK

WaitForNextTouchProbeSignal

169

Warten auf nächstes Touchprobe-Signal.

ExecutionAborted

FiFoFull

103

Der FiFo ist voll.

InputParameterInvalid

DriveInvalid

3

Verbundener Antrieb ist ungültig.

InputParameterInvalid

LencInvalid

162

Der verbundene logische Geber ist ungültig.

InputParameterInvalid

TouchProbeInvalid

163

Verbundener Touchprobe ist ungültig.

InputParameterInvalid

TouchProbeNotActive

166

Touchprobe ist nicht aktiv.

InputParameterInvalid

TouchProbeVirtual

165

Der angeschlossene Touchprobe ist virtuell.

LimitReached

MaxWaitDistanceReached

170

MaxWaitDistance wurde erreicht.

SercosConditionInvalid

SercosNotInPhaseFour

19

Der Sercos-Bus befindet sich nicht in Phase 4.

UnexpectedProgramBehavior

UnexpectedFeedback

1

Es ist ein unbeabsichtigter Fehler während der Ausführung aufgetreten.

Disabled

Enumerationsname:

Disabled

Enumerationswert:

9

Beschreibung:

Die POU ist deaktiviert.

Der Funktionsbaustein ist deaktiviert und führt keinerlei Aktionen aus. i_xEnable und q_xActive werden auf FALSE gesetzt.

DriveInvalid

Enumerationsname:

DriveInvalid

Enumerationswert:

3

Beschreibung:

Verbundener Antrieb ist ungültig.

Problem

Ursache

Lösung

-

An den Eingang i_ifDrive wurde kein Antrieb angelegt.

Dem Eingang i_ifDrive muss ein gültiger Antrieb übergeben werden.

-

Der angeschlossene Antrieb unterstützt nicht alle nötigen Funktionen.

Entnehmen Sie dem Ausgang q_sMsg, welche Funktionen der Antrieb nicht unterstützt.

Verwenden Sie einen Antrieb, der alle nötigen Funktionen unterstützt.

FiFoFull

Enumerationsname:

FiFoFull

Enumerationswert:

103

Beschreibung:

Der FiFo ist voll.

Problem

Ursache

Lösung

-

Es wurden zu viele Werte in den FiFo eingetragen.

Es muss dafür gesorgt werden, dass nicht mehr als Gc_diMaxNumberOfElementsInFiFo Werte in den FiFo eingetragen werden.

Initializing

Enumerationsname:

Initializing

Enumerationswert:

4

Beschreibung:

Die POU wird initialisiert.

Der Funktionsbaustein wird initialisiert und ist noch nicht bereit, Befehle an seinen Eingängen entgegenzunehmen.

Der Funktionsbaustein meldet seine Betriebsbereitschaft mit dem Signal q_xReady = TRUE.

LencInvalid

Enumerationsname:

LencInvalid

Enumerationswert:

162

Beschreibung:

Der verbundene logische Geber ist ungültig.

Problem

Ursache

Lösung

-

Am Eingang iq_lencEncoder wurde kein Geber angelegt.

Dem Eingang iq_lencEncoder muss ein eigener logischer Geber übergeben werden.

MaxWaitDistanceReached

Enumerationsname:

MaxWaitDistanceReached

Enumerationswert:

170

Beschreibung:

MaxWaitDistance wurde erreicht.

Problem

Ursache

Lösung

-

Der Geber hat eine Strecke von mehr als i_lrMaxWaitDistance zurückgelegt, ohne ein Touchprobe-Signal zu bekommen.

Prüfen Sie den Touchprobe-Sensor.

Vergewissern Sie sich, dass der richtige Touchprobe mit dem Anschluss i_ifTouchProbe verbunden ist.

Deaktivieren Sie die Überwachung durch Setzen des Eingangs i_lrMaxWaitDistance auf 0.

SercosNotInPhaseFour

Enumerationsname:

SercosNotInPhaseFour

Enumerationswert:

19

Beschreibung:

Der Sercos-Bus befindet sich nicht in Phase 4.

Problem

Ursache

Lösung

-

Der Parameter State des SERCOS-Busses ist nicht 4.

Setzen Sie den SERCOS-Busparameter PhaseSet auf 4.

Überprüfen Sie den SERCOS-Bus auf Fehler.

TouchProbeInvalid

Enumerationsname:

TouchProbeInvalid

Enumerationswert:

163

Beschreibung:

Verbundener Touchprobe ist ungültig.

Problem

Ursache

Lösung

-

Der Eingang i_ifTouchProbe ist nicht mit einem gültigen Touchprobe verbunden.

Vergewissern Sie sich, dass am Eingang i_ifTouchProbe ein Touchprobe-Objekt übergeben wurde.

TouchProbeNotActive

Enumerationsname:

TouchProbeNotActive

Enumerationswert:

166

Beschreibung:

Touchprobe ist nicht aktiv.

Problem

Ursache

Lösung

-

Die Touchprobe-Funktionalität des Eingangs an einem Lexium 62 ist nicht aktiviert.

Stellen Sie sicher, dass der Parameter IOx_Mode der Eingangsgruppe (LXM62IO_InOutTP) auf Touchprobe / 1 gesetzt ist.

TouchProbeVirtual

Enumerationsname:

TouchProbeVirtual

Enumerationswert:

165

Beschreibung:

Der angeschlossene Touchprobe ist virtuell.

Problem

Ursache

Lösung

-

Der verwendete Touchprobe ist nicht real.

Stellen Sie sicher, dass der Touchprobe nicht zu einem virtuellen Gerät gehört. (z. B. virtueller Lexium62)

UnexpectedFeedback

Enumerationsname:

UnexpectedFeedback

Enumerationswert:

1

Beschreibung:

Es ist ein unbeabsichtigter Fehler während der Ausführung aufgetreten.

Problem

Ursache

Lösung

-

Es ist ein Fehler in der internen Abarbeitung aufgetreten.

Bitte informieren Sie das Supportteam über diesen Fehler.

WaitForFirstTouchProbeSignal

Enumerationsname:

WaitForFirstTouchProbeSignal

Enumerationswert:

168

Beschreibung:

Warten auf erstes Touchprobe-Signal.

Der Funktionsbaustein wartet auf das erste Touchprobe-Signal.

WaitForNextTouchProbeSignal

Enumerationsname:

WaitForNextTouchProbeSignal

Enumerationswert:

169

Beschreibung:

Warten auf nächstes Touchprobe-Signal.

Die Touchprobe-Signale werden gesucht und ausgewertet.

Methoden

Bezeichnung

Beschreibung

GetValue

Auslesen eines Werts aus dem FiFo.