Hinweis
Sobald eine Instanz einer kinematischen Transformation von einer Achsgruppe benutzt wurde, dürfen die Eingänge der Instanz nicht mehr geändert werden.
Wenn Sie die Parametrierung der kinematischen Transformation ändern wollen, müssen Sie, falls möglich, die Konfiguration nutzen oder mehrere Instanzen anlegen.
Beim Erstellen eigener Kinematiken müssen Sie folgende Punkte beachten:
Die Kinematiken werden durch spezielle Funktionsbausteine beschrieben, die in Bibliotheken oder der Ansicht POU Ihres Projekts abgelegt sein können.
Damit CODESYS die Kinematiken im Konfigurator auflistet, müssen die zugehörigen Funktionsbausteine die Schnittstelle MC_KIN_REF_SM3 implementieren (Bestandteil von SM3_Transformation.library).
Sie können eine Kinematik als Kombination zweier anderer definieren. Kinematiken, an denen verschiedene Greifer oder Werkzeuge befestigt werden können, müssen dazu zusätzlich die Schnittstelle ISMPositionKinematics2 implementieren. Kinematiken, die selbst einen Greifer oder ein Werkzeug beschreiben, müssen die Schnittstelle ISMToolKinematics2 implementieren.
Wenn Sie anstelle ISMPositionKinematics2 / ISMToolKinematics2 nur ISMPositionKinematics / ISMToolKinematics implementieren, könnten "nicht erreichbare" Orientierungen falsch verarbeitet werden.
Wenn Sie zusätzlich die Schnittstelle ISMPositionKinematics_Offset implementieren, können Sie den Orientierungsmodus Axis verwenden.
Der Kommentar des Funktionsbausteins wird im Konfigurator als Beschreibung der Kinematik verwendet, wenn der Baustein das Attribut sm_kin_libdoc besitzt. Dabei wird die Formatierung "Restructured-Text" unterstützt. Beachten Sie jedoch, dass Links nicht unterstützt werden.
Konstruktionsbedingte Parameter wie Armlängen, Winkel usw. werden als VAR_INPUT-Variablen des Funktionsbausteins angelegt. Sie sollten die Parameter kommentieren, da der Kommentar als Beschreibung im Konfigurator dient. Wenn die Parameter einen numerischen Typ haben und ihr Wertebereich beschränkt ist, sollten sie mit dem Attribut sm_kin_param_range versehen sein.
Die Syntax des Wertebereichs ist [a .. b] für geschlossene Intervalle und ]a .. b[ für offene Intervalle. Die Mischformen ]a .. b] und [a .. b[ sind auch möglich. Dabei müssen a und b zum Typ des Parameters passende Literale sein. Bei offenen Intervallgrenzen sind die speziellen Werte +inf und -inf möglich. Beispiele: [0 .. 1], [1 .. +inf[, ]-inf .. -5].
Parameter können jeden numerischen Typ oder den Typ BOOL haben.Parameter sollten einen Initialwert mitbringen, der als Standardwert verwendet wird.Sie können die Einheit des Parameters über das optionale Attribut sm_kin_param_unit angeben, beispielsweise "rad", "°", "deg". Für Längen und Abstände sollten Sie die Einheit "u" verwenden. Ob diese Einheiten dann gleich "mm", "cm" oder "m" sind entscheidet die Applikation und die Skalierung der Antriebe.
Wenn für den Funktionsbaustein keine LibDoc-Dokumentation vorhanden ist, wird als Fallback an den jeweiligen Stellen der Kommentar des FB-Elements angezeigt.
Die LibDoc-Dokumentation wird in der Sprache, die in CODESYS konfiguriert ist, angezeigt. Wenn keine Lokalisierung in dieser Sprache vorhanden ist, wird die Standardsprache der Bibliothek verwendet.
Die Achsnamen der Kinematik werden über die FB-Attribute sm_kin_axes festgelegt. Der Wert des Attributs ist eine Liste der Achsnamen, zum Beispiel "A1, A2, A3".
Sie können ein optionales Icon über das FB-Attribut sm_kin_icon angeben. Der Wert ist in der Form <Imagepool>.<Identifier> anzugeben. Die Bildersammlung wird relativ zum Funktionsbaustein angegeben.
Wenn ein eigener Kinematikfunktionsbaustein mit rotatorischen Achsen erstellt wird, dann sollte das Periodenkonzept für diese Achsen verwendet werden. (Beispiel: siehe Baustein Kin_Scara3_Z_Config). In der Konfiguration sollte für jede rotatorische Achse, die einen Wertebereich von mehr als 360° unterstützt, eine Periode konfigurierbar sein. Außerdem sollte man die Schnittstelle ISMKinematicsWithConfiguration3 umsetzen. Nur so ist sichergestellt, dass die Kinematik bei CP-Bewegungen ohne Probleme funktioniert.
Hinweis: Die Methode ISMKinematicWithConfigurations2.CPConnectible sollte so implementiert werden, dass die Periodeneinstellung beim Vergleich ignoriert wird. Dann gibt CPConnectible den Wert TRUE zurück, auch wenn die Periodeneinstellung unterschiedlich ist.
Alle Rückwärtstransformationen haben einen Eingang vom Typ CONFIGDATA, der ein Byte-Array mit Informationen über die Konfiguration der Kinematik enthält. Die Vorwärtstransformationen haben einen entsprechenden Ausgang.Kinematiken, bei denen die Konfiguration eine Rolle spielt, müssen die Schnittstelle ISMKinematicWithConfigurations implementieren. Zu diesen Kinematiken gehört jeweils ein Funktionsbaustein, der die Schnittstelle ISMConfigurationData implementiert (Funktion zur Serialisierung der Konfigurationsdaten). Der Name dieses Funktionsbausteins muss gleich dem Namen der Kinematik plus Postfix _config sein.Sie können diesen FB verwenden, um die Konfiguration in der Applikation zu ändern (mittels des Bausteins SMC_SetKinConfiguration).Kinematiken sollen aber ausdrücklich keine Instanz des entsprechenden FBs halten.
Siehe auch