Skip to main content

Erstellen eigener Kinematiken

Wichtig

Für die Erzeugung der Dokumentation für die Kinematik aus den Kommentaren im Funktionsbaustein wird das Open-Source-Tool wkhtmltopdf benötigt. Diese Komponente ist jedoch ab CODESYS-Version 3.5 SP15 nicht mehr im Setup enthalten.

Sie können die DLL von https://wkhtmltopdf.org/downloads.html herunterladen. Erzeugen Sie im Installationsverzeichnis von CODESYS ein Verzeichnis DocScripting\3.5.xx.x\bin und legen Sie die Datei wkhtmltox.dll darin ab.

Achtung: Da die wkhtmltox.dll ab der Version 0.12.6 standardmäßig Bilder nicht mehr unterstützt, müssen Sie die Version 0.12.5 oder früher verwenden.

Wichtig

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 POUs des 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 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 im Funktionsbaustein eingetragene Kommentar 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, müssen 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 Bibliotheksdokumentation 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 Sie einen eigenen Kinematik-Funktionsbaustein mit rotatorischen Achsen erstellen (beispielsweise Kin_Scara3_Z_Config), dann sollten Sie das Periodenkonzept für diese Achsen verwenden und die Schnittstelle ISMKinPeriodHandling implementieren. Für rotatorische Achsen ist nur die inverse Kinematiktransformation (CartesianToAxes) für die Berechnung des Winkel verantwortlich. CODESYS SoftMotion verschiebt dann automatisch diesen Winkel in die richtige Periode. Wenn die Transformation beispielsweise einen Winkel im Bereich ]-180°, 180°] berechnet, verschiebt CODESYS SoftMotion diesen Winkel in den Bereich [0°, 360°[, vorausgesetzt die Softwaregrenzen des Antriebs sind 0° .. 360°. Außerdem sollten Sie die Schnittstelle ISMKinematicsWithConfiguration3 umsetzen. Nur so ist sichergestellt, dass die Kinematik bei CP-Bewegungen ohne Probleme funktioniert.

    Für gekoppelte Kinematiken mit unregelmäßiger Anordnung der Positionier- und Orientierungskinematik sollten Sie die Schnittstelle ISMCoupledKinematics3 implementieren. Dadurch kann das System erkennen, ob eine Achse zur Positionier- oder Orientierungskinematik mit der jeweiligen Achsnummer gehört.

    Hinweis: Die Methode ISMKinematicWithConfigurations2.CPConnectible sollten Sie so implementieren, dass die Periodeneinstellungen beim Vergleich ignoriert werden. 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.

Tipp

Sie finden eine Schritt-für-Schritt-Anleitung im Kapitel Kundenspezifische Kinematiken.