Teach

Diese Corefunction wird für das Referenzieren von analogen Gebersystemen verwendet.
Syntax:
FUNCTION_BLOCK FB_Teach EXTENDS FB_CorefunctionFeedback
Eigenschaften
Name | Typ | Zugriff | Beschreibung |
|---|---|---|---|
InitState | BOOL | Get, Set | Die Corefunction ist nicht vollständig und erfolgreich initialisiert. |
FB_Teach | |||
AllowAxisDisable | BOOL | Get, Set | Wenn |
IncrNeg | DINT | Get, (Set) | Der aufgenommene Wert bei Ausführung von |
IncrPos | DINT | Get, (Set) | Der aufgenommene Wert bei Ausführung von |
MinResolution | UDINT | Get, Set | Die minimale Auflösung (zwischen |
MinStroke | LREAL | Get, Set | Der minimale Hub, der für ein sinnvolles Ergebnis notwendig ist. |
Position | LREAL | Get, Set | Der Positionssollwert, der an der gelehrten (teach) Position gesetzt werden soll. Sollte |
SetUpperPosition | BOOL | Get, Set | Wenn |
Stroke | LREAL | Get, Set | Der Weg (bzw. Hub), der zwischen |
Valid | BOOL | Get | Es wurden zwei gültige Werte aufgezeichnet. |
FB_CorefunctionFeedback | |||
AbortedState | BOOL | Get, Set | Signalisiert den Abbruch eines Kommandos durch eine andere Corefunction. |
BusyState | BOOL | Get, Set | Signalisiert die aktive Ausführung eines Kommandos. |
DoneState | BOOL | Get, Set | Signalisiert die erfolgreiche Ausführung eines Kommandos. |
IdleState | BOOL | Get, Set | Die Corefunction ist betriebsbereit und kommandierbar. |
IsCommanded | BOOL | Get | Signalisiert das Anstehen eines Kommandos. |
FB_Corefunction | |||
FailedState | BOOL | Get, Set | Wenn gleichzeitig IsActivated TRUE ist: Signalisiert das Fehlschlagen eines akzeptierten Kommandos. Wenn gleichzeitig IsActivated FALSE ist: Signalisiert die Ablehnung eines Kommandos. |
HasFeedback | BOOL | Get | Die Corefunction hat auf ein anstehendes Kommando reagiert. |
IsActivated | BOOL | Get | Die Corefunction hat ein akzeptiertes Kommando anstehen. |
IsLocalCmd | BOOL | Get | Signalisiert, dass die Achse mit einem Kommando dieser Corefunction belegt ist. |
ReadyState | BOOL | Get, Set | Die Corefunction ist betriebsbereit, aber zu diesem Zeitpunkt nicht kommandierbar. Mögliche Gründe sind: |
Methoden
Name | Beschreibung |
|---|---|
[ | Diese Methode wird zyklisch von der Achse aufgerufen. |
FB_Teach | |
DoTeach( | Versetzt die Achse in den Teaching-Modus. Bei fallender Flanke wird der Teaching-Modus vorzeitig beendet. |
DoUpdate( | Löst die finale Berechnung der Geber-Parameter aus. |
TeachNeg( | Löst das Aufzeichnen der unteren Position aus. |
TeachPos ( | Löst das Aufzeichnen der oberen Position aus. |
Schnittstellen
Typ | Beschreibung |
|---|---|
I_Corefunction | Standardschnittstelle auf FB_Corefunction. |
FB_Teach | |
I_Teach | Standardschnittstelle auf FB_Teach. |
I_TeachDev | Erweiterte Schnittstelle mit Zugriff auf die nicht zugänglichen Eigenschaften. |
I_TeachPosition | Kompatibilitätsschnittstelle zur veralteten Funktion FB_TeachPosition. |
I_TeachUpdate | Kompatibilitätsschnittstelle zur veralteten Funktion FB_TeachUpdate. |
I_CorefunctionFeedback | Standardschnittstelle auf FB_CorefunctionFeedback. |
Beispiel:
CASE nState OF
0: // activate the teach mode
IF bStartTeaching AND iAxisBase.Teach.IdleState THEN
iAxisBase.Teach.DoTeach(TRUE);
ELSIF iAxisBase.Teach.BusyState THEN
nState := nState + 1;
ELSIF iAxisBase.Teach.FailedState THEN
nState := -1;
END_IF
1: // move to the first teach position
// approaching the upper position by a jog command
// e.g. by pressing a push button
iAxisBase.Jog.DoJogP(bButtonFwd);
// on reaching final position, use a second button to teach the value
iAxisBase.Teach.TeachPos(bTeach);
IF bTeach THEN
iAxisBase.Jog.DoJogP(FALSE);
nState := nState + 1;
END_IF
2: // wait for teach button release
IF NOT bTeach THEN
nState := nState + 1;
END_IF
3: // move in the opposite direction for the second teach position
// approaching the lower position by a jog command
// e.g. by pressing a push button
iAxisBase.Jog.DoJogM(bButtonBwd);
// on reaching final position, use the second button again to teach the value
iAxisBase.Teach.TeachNeg(bTeach);
IF bTeach THEN
iAxisBase.Jog.DoJogM(FALSE);
nState := nState + 1;
END_IF
4: // configure teach parameters and update the axis by the taught positions
iAxisBase.Teach.AllowAxisDisable := TRUE;
iAxisBase.Teach.Position := 0.0; // mm
iAxisBase.Teach.Stroke := 200.0; // mm
IF iAxisBase.Teach.Valid THEN
iAxisBase.Teach.DoUpdate(TRUE);
nState := nState + 1;
ELSE
nState := -1;
END_IF
5: // wait for the update procedure getting done
IF iAxisBase.Teach.DoneState THEN
nState := nState + 1;
ELSIF iAxisBase.Teach.FailedState THEN
nState := -1;
END_IF
6, // teaching done
-1: // error
iAxisBase.Teach.DoTeach(FALSE);
iAxisBase.Teach.DoUpdate(FALSE);
END_CASE
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS-Bibliotheken |
|---|---|---|
TwinCAT v3.1.4024.71 | PC oder CX (x64, x86) | Tc3_PlasticFunctions (>= v12.12.0.0) |