Dieser Baustein erstellt aus gegebenen Punkten eine Stützpunkttabelle mit normierten Kurvenstützpunkte. Dazu wird ein kubischer Spline verwendet. Es wird sichergestellt, dass jeder Stützpunkt erreicht wird. Diese Stützpunkttabelle kann dann mit dem TB_CamStretch ausgeführt werden.
Die Stützpunkte werden als x/y-Position festgehalten. X ist dabei die Masterposition und y die zugehörige Achsposition. Der Baustein erstellt dann daraus eine normierte Stützpunkttabelle mit 512 Stützpunkten. Diese kann dann direkt mit dem TB_CamStretch ausgeführt werden. Der verwendete kubische Spline stellt sicher, dass ruckfrei verfahren, und dass jeder Stützpunkt erreicht wird.
Die Berechnung erfolgt in einem Zyklus und benötigt ca. 10 ms (SH03-30 und 10 Stützpunkten). Die Berechnung sollte in einer zyklischen Task erfolgen. Eine neue Kurve kann online berechnet und übernommen werden.
Hinweis: Dem TB_CamStretch sollte eine neue Kurve nur am Anfang (mit x_Execute) übergeben werden, da dieser direkt die angeschlossenen Stützpunkte(und keine lokale Kopie) verwendet. Ansonsten kann es zu Ruck oder Stoß in der Sollwertgenerierung kommen.
| Empfohlene Task: | zyklisch |
| Verwendete Bibliotheken: | TECH_TYPES_xxbd05 oder höher TECH_TOOLS_xxbd00 oder höher |
| Bezeichnung: | Datentyp: | Beschreibung: |
|---|---|---|
| _Spline | SPLINE_DATA | Tabelle der Kurvenpunkte. Die x-Werte müssen aufsteigend angegeben werden. die y-Werte können beliebig gewält werden. Beide Werte werden in den gewählten Anwendereinheiten angegeben. Es können bis zu 256 Punkte vorgegeben werden. Die x-Punkte müssen nicht äquidistant sein. Im folgenden Beispiel wird eine Splinekurve erzeugt, die die Achse von 0 Grad auf 360° und wieder zurück positioniert, während sich der Master von 0 bis 100 mm bewegt hat. |
| a_CamTable | CAM_TABLE | Stützpunkttabelle der normierten Kurven. |
| Bezeichnung: | Datentyp: | Beschreibung: |
|---|---|---|
| x_Execute | BOOL | Mit einer positiven Flanke wir die Kurvenberechnung gestartet und in einem Zyklus ausgeführt. Die Ausführungszeit liegt bei einer SH03-30 und 10 Stützpunkten bei ca. 10ms. |
| ui_CamId | UINT | Position des ersten normierten Kurvenstützpunkts in a_CamTable. Es werden 512 Stützpunkte erzeugt. Die Position kann zwischen 8192 und 15872 gewählt werden. Sinnvollerweise sollte sie ein Vielfaches von 512 sein. |
| di_k1_Num | DINT | Zähler der Kurvensteigung am Anfang der Kurve. |
| di_k1_Denum | DINT | Nenner der Kurvensteigung am Anfang der Kurve. |
| di_knNum | DINT | Zähler der Kurvensteigung am Ende der Kurve. |
| di_knDenum | DINT | Nenner der Kurvensteigung am Ende der Kurve. |
| di_yMax | DINT | Maximalwert der Kurve (für Skalierung) |
| Bezeichnung: | Datentyp: | Beschreibung: |
|---|---|---|
| x_Done | BOOL | TRUE: Berechnung erfolgreich beendet. Normierte Kurvenstützpunkte erstellt. |
| x_Error | BOOL | TRUE: Bei der Berchnung wurde ein Fehler festgestellt. |
| w_ErrorId | WORD | Fehlernummer. Siehe Fehlertabelle. |
| w_ErrorId | Beschreibung |
|---|---|
| 0 | Kein Fehler aktiv. |
| 100 | gewählte CamId reserviert. Die CamId muss zwischen 8192 und 15872 liegen.Unbekannter SetPosMode |
| 101 | gewählte CamId zu groß. Die CamId muss zwischen 8192 und 15872 liegen. |
| 105 | Fehler x-Werte. Die x-Werte müssen aufsteigend sortiert sein. |
| 110 | Fehler schlechter Wert. Mögliche Ursache: Zu wenig Stützpunkte. |
| 999 | Keine Technologie-Lizenz. PLC mit Technologie-Lizenz verwenden. |