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: | ... |
nicht vorhanden |
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). |
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 |