Mit dem Baustein kann eine Nocke erzeugt werden, mit der ein Ereignis an einer Nockenposition ausgelöst wird. Die Nocke kann zeitlich vorgesteuert werden um Totzeiten zu kompensieren.
In Kombination mit dem FB TB_MasterEngine kann die Totzeitkompensation auch während der Beschleunigungs- und Bremsphase exakt berechnet werden. Bei Verwendung einer realen Achse kann nur eine Geschwindigkeitskompensation angewandt werden.
| Empfohlene Task: | Event |
| Verwendete Bibliotheken: | |
| Verwendete zusätzliche Datentypen: | ... |
| Verwendet Static-Variablen: | ... |
| nicht vorhanden |
| Bezeichnung: | Datentyp: | Anfangswert: | Wertebereich: | Beschreibung: |
|---|---|---|---|---|
| x_Enable | BOOL | ... | ... | TRUE: Freigabe des Bausteins. |
| x_Start | BOOL | ... | ... | TRUE: Start der Nockengenerierung. Mit der positiven Flanke wird die Position di_Pos auf die Position di_StartPos gesetzt. |
| x_Ready | BOOL | ... | ... | TRUE: Aktor ist bereit. Soll eine Nocke ausgegeben werden (x_CamOut=TRUE) so muss der Eingang TRUE sein. Ansonsten wird ein Fehler ausgegeben. |
| di_Vel | DINT | ... | ... | Ist-Geschwindigkeit des Gebers in Anwendereinheiten/Ts. |
| di_StartPos | DINT | ... | ... | Start- oder Referenzposition des Gebers. Mit x_Start=TRUE wird x_Pos auf diese Position gesetzt. |
| di_CamPos | DINT | ... | ... | Position des Gebers, an der die Nocke wirken soll. Diese Position abzüglich dem Weg ud_Travel, der während der Totzeit verfahren werden wird, ergibt die Position, an der die Nocke schaltet. |
| di_Period | DINT | ... | ... | Periode der Position in Anwendereinheiten. Immer wenn die Nocke schaltet, wird die Position di_Pos um di_Period zurückgesetzt. |
| di_Delay_ms | DINT | ... | ... | Totzeit in ms. Hier werden alle Verzögerungszeiten des Systems zusammengefasst. Es sind maximal Zeiten bis 5000 ms möglich, wird ein größerer Wert angeschlossen, wird dieser intern auf 5000 ms begrenzt. |
| ud_TimeAcc_ms | UDINT | ... | ... | Restliche Beschleunigungszeit in ms aus dem Baustein TB_MasterEngine bei Verwendung des virtuellen Masters. Sonst offen lassen. |
| di_VelSet_s | DINT | ... | ... | Sollgeschwindigkeit in Anwendereinheiten/s aus dem Baustein TB_MasterEngine bei Verwendung des virtuellen Masters. Sonst offen lassen. |
| di_VelAct_s | DINT | ... | ... | Istgeschwindigkeit in Anwendereinheiten/s. Dieser Wert muss für die Totzeitkompensation angeschlossen werden. Die Istgeschwindigkeit ist entweder von einem reellen oder virtuellen Master (FB TB_MasterEngine). |
| Bezeichnung: | Datentyp: | Beschreibung: |
|---|---|---|
| x_Active | BOOL | TRUE: Baustein ist aktiv. |
| x_Running | BOOL | TRUE: Nockenberechnung ist aktiv. x_Running wird FALSE, wenn x_Start=FALSE und die NockenPos der letzten Nocke erreicht wurde. Dieser Ausgang kann verwendet werden, um festzustellen, ob alle zu bearbeitenden Nocken fertig sind. Um einen Prozess anzuhalten, wird x_Start=FALSE gesetzt. Sind alle Nocken abgearbeitet wird x_Running=FALSE. Nun kann die Achse gestoppt werden. |
| x_CamOut | BOOL | Nockenausgang. ud_CamOut ist für einen Zyklus TRUE. |
| di_Pos | DINT | Position des Gebers in Anwendereinheiten. |
| ud_Travel | UDINT | Weg des Gebers während der Verzögerungszeit di_Delay_ms. Dieser Weg hängt von der Geschwindigkeit des Gebers ab und wird zyklisch neu berechnet. |
| x_Error | BOOL | TRUE: Fehler erkannt. |
| i_Error | INT | Fehlernummer des Bausteins. Siehe Fehlertabelle. |
| w_ErrorId | Beschreibung |
|---|---|
| 0 | Kein Fehler |
| -1 | Aktor nicht bereit. Dieser Fehler tritt auf, wenn die Nocke schalten soll, aber der Eingang x_Ready=FALSE ist. |
| -2 | Überlauf. Dieser Fehler tritt auf, wenn StartPos weiter als eine Periode nach CamPos liegt. |
| -3 | Die Nockenposition der letzten Nocke wurde nicht erreicht. Dieser Fehler tritt auf, wenn x_Start=FALSE und die Zeit u_Delay_ms abgelaufen ist, ohne dass die Nockenposition erreicht wurde, weil di_Vel zu klein oder 0 war. |