Initiale Positionsbestimmung einer Modulo-Achse
Die Istposition eines Antriebs oder Encoders wird als DWORD zur Steuerung übertragen.
Bei einer Modulo-Achse wird die Periode P in Inkrementen durch den Modulowert und die Skalierung bestimmt. Die Periode P gibt an, wie viele Inkremente genau eine Umdrehung ergeben. Das bedeutet, dass die Positionswerte X, X+1*P, X+2*P, etc. die gleiche physikalische Position beschreiben. Die Position X+n*P überschreitet die Grenze des DWORDs, wenn n genügend groß ist. Das passiert bei der Position 0x1 00 00 00 00. Dabei wird die führende Stelle abgeschnitten und der Wert beginnt wieder bei 0.Wenn P kein Teiler von 0x1 00 00 00 00 ist, beschreibt die Position X vor und nach dem Umbruch nicht mehr die gleiche physikalische Position.
Wenn die Getriebeverhältnisse so sind, dass die Periode kein Teiler von 0x1 0000 0000 ist, kann die Position einer Rundachse nach dem Einschalten verschoben sein.
Beispiel
Die Achse startet bei Position 0x0. Sie steht auf 0°. Eine Periode ist 360° lang. Die Skalierung ist so gewählt, dass das 3600000 = 0x36 EE80 Inkrementen entspricht. Nach 1193 Umdrehungen steht die Achse auf 0xFFFD 7280=1193*3600000.. Nach einer weiteren vollen Umdrehung erreicht die Achse die Position 0x10034 6100. Beim Umbruch wird die führende 1 abgeschnitten und es entsteht die Position 0x34 6100. Wenn Sie die Achse zurück auf die Position 0x0 bewegen, steht die Achse bei Position 16,7296°. Die Position 0x0 entspricht also je nach stattgefundenem Umbruch der Position 0°, 16.7296°, etc.
Info
Wenn Sie die Skalierung so gewählt haben, dass der oben beschriebene Effekt auftreten kann, und wenn eine Referenzfahrt am Start des Programms nicht möglich oder nicht gewünscht ist, dann können Sie mit Hilfe des Bausteins SMC3_PersistPosition die Position vor dem letzten Ausschalten wiederherstellen. Verwenden Sie dabei einen Absolutwertegeber.
Siehe auch