TB_MasterEngine

Darstellung in FBD

Allgemeine Informationen

Dieser Funktionsbaustein kann verwendet werden, um einen virtuellen Master zu erzeugen. Es können beliebige Nutzereinheiten (Einh) verwendet werden, somit ist es möglich die Mechanik z.B. in mm oder ° darzustellen. Weiterhin kann eine beliebige Periode angegeben werden, die z.B. 360° sein kann, um eine Rundbewegung zu erzeugen.

Empfohlene Task: EVENT
Verwendete Bibliotheken: MOTION_MULTI_AXIS_xxbd00 oder höher
ARITHMETIC_30bd00 oder höher
MOTION_TYPES_xxbd07 oder höher
TECH_TOOLS_30bd00 oder höher
Verwendete zusätzliche Datentypen: ...
Verwendet Static-Variablen: ...

Funktionalität

Ein-/Ausgänge

nicht vorhanden

Eingänge

Bezeichnung: Datentyp: Anfangswert: Wertebereich: Beschreibung:
x_Enable BOOL ... ... Mit dem Eingang x_Enable=TRUE wird der Baustein initialisiert. War die Initialisierung erfolgreich, wird dies mit dem Ausgang x_Active=TRUE angezeigt.
x_Start BOOL ... ... Die virtuelle Leitachse wird gestartet mit x_Start=TRUE. Um starten zu können muss x_Active=TRUE und x_StopRapid=FALSE sein. Soll die Leitachse auf einer bestimmten Position stoppen, muss diese an ud_StopPos angeschlossen werden und dann x_Start=FALSE gesetzt werden. Es wird mit der Stoppverzögerung ud_DecStop_s verzögert. Der erfolgreiche Start der virtuellen Leitachse wird mit x_Motion=TRUE angezeigt,
x_StopRapid BOOL ... ... Der Eingang x_StopRapid muss FALSE sein, um die Leitachse starten zu können. Mit x_StopRapid=TRUE wird die Leitachse sofort gestoppt. Es wird mit der Stoppverzögerung ud_DecRapid_s verzögert.
di_Vel_s DINT ... ... Die Sollgeschwindigkeit wird in Einh/s am Eingang di_Vel_s angeschlossen. Um die Geschwindigkeit zu erreichen, wird mit den Beschleunigungen ud_Acc_s und ud_Dec_s in Einh/s² beschleunigt oder gebremst.
ud_Acc_s UDINT ... ... Beschleunigung in Einh/s².
ud_Dec_s UDINT ... ... Verzögerung in Einh/s².
Wird der Eingang nicht belegt, wird ud_Acc_s verwendet.
ud_AccStart_s UDINT ... ... Beschleunigung in Einh/s², mit der die Leitachse bei x_Start=TRUE beschleunigt. Nach dem ersten Erreichen der Sollgeschwindigkeit wird ud_Acc_s verwendet. Die Beschleunigung wirkt also nur beim ersten Beschleunigungsvorgang nach steigender Flanke von x_Start. Wird der Eingang nicht belegt, wird ud_Acc_s verwendet.
ud_DecStop_s UDINT ... ... Verzögerung in Einh/s² mit der die Leitachse bei x_Start=FALSE abgebremst wird. Die angezeigte Bremszeit ud_TimeStop_ms bezieht sich auf diese Verzögerung. Wird der Eingang nicht belegt, wird ud_Dec_s verwendet.
ud_DecRapid_s UDINT ... ... Verzögerung in Einh/s², mit der die Leitachse bei x_StopRapid=TRUE, x_Enable=FALSE oder im Fehlerfall abgebremst wird. Die angezeigte Bremszeit ud_TimeStop_ms bezieht sich auf diese Verzögerung. Wird der Eingang nicht belegt, wird ud_Dec_s verwendet.
ud_StopPos UDINT ... ... Bei x_Start=FALSE wird auf die Position ud_StopPos positioniert. Wird die Position erreicht, wird der Ausgang x_StopPosReached=TRUE. Ist die Position nicht erreichbar, weil sie z.B. hinter der aktuellen Position liegt oder der Bremsweg länger ist als der Abstand zur Stoppposition, wird sofort gebremst, jedoch der Ausgang x_StopPosReached bleibt FALSE.
ud_StartPos UDINT ... ... Wenn x_Enable=TRUE, wird ud_MasterPos mit Startposition ud_StartPos initialisiert.
ud_Period UDINT ... ... Mit ud_Period wird die Auflösung der Leitachse vorgegeben. Die Auflösung kann beliebig sein, wie z.B. 360000 für 360,000 ° oder 735500 für 735,000 mm aber auch 5000 für 50,00 inch.
i_T_Cycle INT ... ... Aufrufintervall der Event-Task, in der TB_MasterEngine aufgerufen wird, in ms. Gültige Werte sind 1ms, 2ms, 4ms, 8ms.
ud_Units UDINT ... ... Möchte man die virtuelle Leitachse nutzen, um MotionControl-FBs wie MC_GearIn oder MC_CamIn anzukuppeln, ist es nötig eine Resolution anzugeben, um den Bezug der Nutzereinheiten pro Umdrehung des Motors bzw. der MC_Periode herzustellen. Diese Resolution wird in Einheiten / MC_Perioden als Bruch angegeben, wobei ud_Units der Zähler ist und u_MC_Periode der Nenner. Sollen MC_GearIn oder MC_CamIn nicht mit der erzeugten Leitachse genutzt werden, sollten die Eingänge nicht beschaltet werden.
u_MC_Periode UINT ... ... Siehe ud_Units!
_Master AXIS_REF ... ... Motion Control Achsvariable auf die die gerechnete Leitachsposition. Diese Achsvariable kann an der Kurvenscheibe oder dem elektronischen Getriebe als Master (Eingang Master) verwendet werden (wenn eine Resolution angegeben wurde). Weiterhin kann mit dem FB TB_MasterEncoder die Leitachsposition und –geschwindigkeit in Einh bzw. Einh/Ts ausgelesen werden (hierfür ist keine Resolution nötig).

Ausgänge

Bezeichnung: Datentyp: Beschreibung:
x_Active BOOL Der Ausgang x_Active zeigt eine erfolgreiche Initialisierung von TB_MasterEngine.
x_Motion BOOL Der Ausgang x_Motion zeigt die aktive virtuelle Leitachse an. x_Motion wird erst FALSE, wenn auch Stillstand erreicht wurde.
ud_MasterPos UDINT Aktuelle Masterposition der virtuellen Leitachse in Einh. Die Position wird bei steigender Flanke von x_Enable auf ud_StartPos gesetzt.
di_MasterVel DINT Aktuelle Geschwindigkeit der virtuellen Leitachse in Einh/Ts.
di_MasterAcc DINT Aktuelle Beschleunigung der virtuellen Leitachse in Einh/Ts².
di_MaVelSet_s DINT Sollgeschwindigkeit der virtuellen Leitachse in Einh/s.
di_MaVelAct_s DINT Aktuelle Geschwindigkeit der virtuellen Leitachse in Einh/s.
ud_TimeStop_ms UDINT Zeit in ms, die zum Stoppen mit x_Start=FALSE von der aktuellen Geschwindigkeit benötigt wird. Mit Hilfe des FBs TB_TimeToTravel könnte damit der Bremsweg berechnet werden.
ud_TimeAcc_ms UDINT Zeit in ms, die noch benötigt wird, um die Sollgeschwindigkeit zu erreichen. Der Wert kann z.B. für den FB TB_CamSwitch verwendet werden, um die Beschleunigung bei der Totzeitkompensation berücksichtigen zu können.
i_SegNr INT 0: Virtuelle Leitachse im Stillstand
1: Virtuelle Leitachse beschleunigt
2: Virtuelle Leitachse bremst
3: Virtuelle Leitachse hat Sollgeschwindigkeit erreicht
x_StopPosReached BOOL Der Ausgang x_StopPosReached wird TRUE, wenn die Stoppposition erreicht wurde. Die Stoppposition wird dann nicht erreicht, wenn die Stoppposition hinter der aktuellen Position liegt oder der Bremsweg größer ist als die Differenzstrecke von der aktuellen Position zur Stoppposition.
x_Standstill BOOL Der Ausgang x_Standstill=TRUE, wenn sich die virtuelle Leitachse im Stillstand befindet.
x_Error BOOL alls ein Fehler auftritt, wird das Fehlerbit gesetzt und eine Fehlernummer ausgegeben.
Tritt eine Warnung auf, wird nur eine Fehlernummer ausgegeben, das Fehlerbit wird nicht gesetzt.
i_Error INT siehe unten
_Master AXIS_REF Motion Control Achsvariable auf die die gerechnete Leitachsposition. Diese Achsvariable kann an der Kurvenscheibe oder dem elektronischen Getriebe als Master (Eingang Master) verwendet werden (wenn eine Resolution angegeben wurde). Weiterhin kann mit dem FB TB_MasterEncoder die Leitachsposition und –geschwindigkeit in Einh bzw. Einh/Ts ausgelesen werden (hierfür ist keine Resolution nötig).
i_Error Beschreibung:
1 Ungültiger Wert für i_T_Cycle, gültig ist 1,2,4,8ms
2 Startposition >= Period
3 Stoppposition >= Period
10 Warnung: Angegebene Beschleunigung ud_Acc zu klein und deshalb nicht darstellbar in Einh/Ts², es wird intern mit 1 gerechnet
11 Warnung: Angegebene Beschleunigung ud_AccStart zu klein und deshalb nicht darstellbar in Einh/Ts², es wird intern mit 1 gerechnet
12 Warnung: Angegebene Verzögerung ud_Dec zu klein und deshalb nicht darstellbar in Einh/Ts², es wird intern mit 1 gerechnet
13 Warnung: Angegebene Verzögerung ud_DecStop zu klein und deshalb nicht darstellbar in Einh/Ts², es wird intern mit 1 gerechnet
14 Warnung: Angegebene Verzögerung ud_DecRapid zu klein und deshalb nicht darstellbar in Einh/Ts², es wird intern mit 1 gerechnet