カスタムキネマティクス
を参照してください PLCopenSingle2.project
サンプルプロジェクトと CustomKinematics.library
のインストールディレクトリにあるライブラリ CODESYS 下 ..\CODESYS SoftMotion\Examples.
この例では、カスタムキネマティックトランスフォーメーション(Gantry3C)を使用してライブラリを作成する方法と、プロジェクトでこのライブラリを使用してロボットを制御する方法について説明します。
「Gantry3C」キネマティック変換は、ツールヘッドを運ぶ3つの直線軸(X、Y、およびZ)で構成されます。ツールヘッドは、取り付けられたツールを運ぶ追加の軸で構成されています。工具ヘッドはZ軸を中心に回転させることができます。

1.新しいライブラリプロジェクトを作成します
で新しいプロジェクトを作成します 空のライブラリ レンプレート。

2.ライブラリマネージャーを追加します。
ライブラリマネージャーを追加する POU(発注書) ビュー。追加 SM3_Transformation
、 SM3_Math
、 そして SM3_Error
ライブラリをライブラリ マネージャーに追加します。
3.Gantry3C機能ブロックを作成します。
この機能ブロックはインターフェースを実装します MC_KIN_REF_SM3
と ISMKinematicsWithInfo2
図書館から SM3_Transformation
。各軸の入力としてオフセットを定義できます。このオフセットは、順変換の前に減算され、逆変換の後に加算されます。

の例 Gantry3C
2つの分離された運動学と KinCoupled
:
FUNCTION_BLOCK Custom_Kin_Gantry3 IMPLEMENTS ISMPositionKinematics FUNCTION_BLOCK Custom_Kin_CAxis IMPLEMENTS ISMOrientationKinematics FUNCTION_BLOCK Custom_Kin_Gantry3C EXTENDS Kin_Coupled
機能ブロックを提供する Custom_Kin_Gantry3
と Custom_Kin_CAxis
機能ブロックの入力として Kin_Coupled
初期化中。今 Custom_Kin_Gantry3C
位置と方向のキネマティクスを組み合わせた結合キネマティクスになります。
4.MC_KIN_REF_SM3インターフェイスとNumAxes4プロパティのメソッドを実装します。
AxesToCartesian
:順運動学:軸の値から位置と方向を計算します。
CartesianToAxes
:逆運動学:位置と方向からの軸値の計算。
NumAxes
:キネマティクスの軸数



5.ISMKinematicsWithInfo2およびISMKinematicsWithInfoインターフェイスのメソッドを実装します。
GetAxisProperties
:軸のタイプなどのプロパティ。各軸の制限を定義できます。
GetKinematicsName
:キネマティクスの名前
IsSingularity
:このキネマティクスでは無視できます


6.プロジェクト情報を指定します。

7.ライブラリでコンパイラエラーを確認します。
ライブラリを確認するには、 建てる → すべてのプールオブジェクトをチェック。
8.軸グループコンフィギュレータで説明を作成します。
POUに属性がある場合 sm_kin_libdoc
、機能ブロックで指定されたコメントは、キネマティクスの説明として軸グループコンフィギュレータで使用されます。これには、再構築されたテキストフォーマットが使用されます。



属性を含める
sm_kin_libdoc
上の画像に示すように。必要なプロジェクトプロパティを含める DocFormat と DocLanguages (プロジェクト情報ダイアログ内)ライブラリのドキュメントに関連しています。
結果:
のインストールディレクトリが CODESYS が含まれています
libdoc.exe
実行可能ファイル(ディレクトリ:...\DocScripting\3.5.xx.0
\)。バージョン0.12.5以下の32ビットwkhtmltoxコンバーターをからダウンロードします。 https://wkhtmltopdf.org/downloads.html。を抽出します
wkhtmltox.dll
ファイルしてコピーします...\\DocScripting\\3.5.xx.0\\bin
の中に CODESYS インストールディレクトリ。重要
以来
wkhtmltox.dll
バージョン0.12.6以降では、デフォルトでイメージをサポートしなくなりました。バージョン0.12.5以下を使用する必要があります。システム変数を作成します
LIBDOC_CODESYS
Windowsで。のファイルパスに値を設定しますCODESYS.exe
。パス名とプロファイル名は必ず二重引用符で囲んで指定してください。結果:
ライブラリプロジェクトを保存して閉じ、再度開きます。
クリック
。コンパイルされたライブラリは、このキネマティクスを使用するプロジェクトにインストールされます。
プロジェクトでのライブラリの使用(CustomKinematics_Implementation.project)
このプロジェクトは、前のセクションで作成したキネマティクスを使用して、ジョギングまたは動きを命令することによって制御する方法を示しています。
作成する CODESYS との標準プロジェクト CODESYS SoftMotion Win コントローラ。
ライブラリマネージャーを開き、ライブラリをインストールします
CustomKinematics.compiled-library
(前のセクションで作成)キネマティクスGantry3Cが含まれています。ライブラリをライブラリマネージャーに追加します。軸グループオブジェクトを追加し、 KinCustom.Gantry3C キネマティクス。
結果:
4つの仮想軸をに追加します SoftMotion一般軸プール デバイスツリーの軸プール。 (DriveX、Y、Z、およびC)
軸グループコンフィギュレータを開きます。の中に 軸へのマッピング セクションで、軸をそれぞれのフィールドにマップします。
結果:
プログラム
Prg_Visu
軸グループを制御するメインプログラムです。アプリケーションが起動すると、Prg_Visu
軸グループの電源を入れて有効にします。さらに、軸グループ(ジョギング、線形およびPTPの動き)を制御するために必要なすべての機能ブロックを呼び出します。これらの動きはすべて、添付のビジュアライゼーションから制御できます。結果:
機能ブロック:
Jog
: このFBは軸空間と直交座標空間でのジョギングを組み合わせます。SMC_GroupJog2
1つは軸空間用、もう1つは直交空間用です。この関数ブロックは視覚化テンプレートで使用できます。 V_ロボット位置軸 そして V_ロボット位置_カート_ジョグ 直交座標と軸空間で任意の運動学をジョグします。結果:
FB SMC_TRAFOF_Gantry3C
:この機能ブロックは、Gantry3Cキネマティクスの入力軸値をそれぞれのTCP値に変換します。さらに、軸の値は、視覚化テンプレートで使用できるように正規化されていますTRAFOF_Gantry3C_YZ
運動学の動きを視覚化する。結果:
アプリケーションをコンパイルして実行します。ビジュアライゼーションを開きます。軸空間とデカルト空間でロボットをジョギングできます。線形またはPTPの動きを命令するための視覚化テンプレートもあります。
結果:
ヒント
ここで説明する例では、一般的な機能ブロックの位置決め軸と方向軸について説明します。多くのキネマティクスは、2つの分離された部分キネマティクスで構成できます。1つはポジショニングキネマティクス(デルタ、ガントリーなど)、もう1つはオリエンテーションキネマティクス(C軸、Wrist2、Wrist3などのツール)です。両方のキネマティクスは、ポジショニングキネマティクスのTCPである「フランジポイント」で相互に接続されています。配向運動学は、フランジ点から結合運動学のTCPまでのベクトルを計算できるという事実によって特徴付けられます。計算は、このTCPの方向のみを使用して行われます(つまり、位置決めの運動学に依存しないか、フランジポイントの方向に依存しません)。次に、位置決め運動学は、フランジポイントの位置のみからその軸位置を決定できなければなりません。フランジポイントの方向に依存してはなりません。
この場合、次のようなインターフェースを利用できます。 ISMPositionKinematics
または ISMOrientationKinematics
これらのインターフェースを実装するには、実装する関数ブロックを1つ定義します。 ISMPositionKinematics
そして実装する別の機能ブロック ISMOrientationKinematics
最後に、関数ブロックを拡張する関数ブロックを定義します。 Kin_Coupled
(から SM3_Transformation
) を、以前に定義した機能ブロックを入力として使用します。
詳細については、以下を参照してください。 カスタムキネマティクスの作成