Skip to main content

カスタムキネマティクス

を参照してください PLCopenSingle2.project サンプルプロジェクトと CustomKinematics.library のインストールディレクトリにあるライブラリ CODESYS..\CODESYS SoftMotion\Examples.

この例では、カスタムキネマティックトランスフォーメーション(Gantry3C)を使用してライブラリを作成する方法と、プロジェクトでこのライブラリを使用してロボットを制御する方法について説明します。

「Gantry3C」キネマティック変換は、ツールヘッドを運ぶ3つの直線軸(X、Y、およびZ)で構成されます。ツールヘッドは、取り付けられたツールを運ぶ追加の軸で構成されています。工具ヘッドはZ軸を中心に回転させることができます。

_sm_img_custom_kinematik.png

1.新しいライブラリプロジェクトを作成します

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

_sm_img_create_empty_project.png

2.ライブラリマネージャーを追加します。

ライブラリマネージャーを追加する POU(発注書) ビュー。追加 SM3_TransformationSM3_Math、 そして SM3_Error ライブラリをライブラリ マネージャーに追加します。

3.Gantry3C機能ブロックを作成します。

この機能ブロックはインターフェースを実装します MC_KIN_REF_SM3ISMKinematicsWithInfo2 図書館から SM3_Transformation。各軸の入力としてオフセットを定義できます。このオフセットは、順変換の前に減算され、逆変換の後に加算されます。

_sm_img_fb_gantry3c.png

の例 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_Gantry3Custom_Kin_CAxis 機能ブロックの入力として Kin_Coupled 初期化中。今 Custom_Kin_Gantry3C 位置と方向のキネマティクスを組み合わせた結合キネマティクスになります。

4.MC_KIN_REF_SM3インターフェイスとNumAxes4プロパティのメソッドを実装します。

AxesToCartesian:順運動学:軸の値から位置と方向を計算します。

CartesianToAxes:逆運動学:位置と方向からの軸値の計算。

NumAxes:キネマティクスの軸数

_sm_img_cartesian_to_axes.png
_sm_img_axes_to_cartesian.png
_sm_img_gantry3c_methods.png

5.ISMKinematicsWithInfo2およびISMKinematicsWithInfoインターフェイスのメソッドを実装します。

GetAxisProperties:軸のタイプなどのプロパティ。各軸の制限を定義できます。

GetKinematicsName:キネマティクスの名前

IsSingularity:このキネマティクスでは無視できます

_sm_img_get_axis_properties.png
_sm_img_get_kinematics_name.png

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

_sm_img_project_information.png

7.ライブラリでコンパイラエラーを確認します。

ライブラリを確認するには、 建てるすべてのプールオブジェクトをチェック

8.軸グループコンフィギュレータで説明を作成します。

POUに属性がある場合 sm_kin_libdoc、機能ブロックで指定されたコメントは、キネマティクスの説明として軸グループコンフィギュレータで使用されます。これには、再構築されたテキストフォーマットが使用されます。

_sm_img_restructured_text.png
_sm_img_axis_group_description.png
_sm_img_axis_group_configurator.png
手順. 軸グループエディタの機能ブロックコメントからキネマティクスの説明を生成するには、次の手順に従います。
  1. 属性を含める sm_kin_libdoc 上の画像に示すように。

  2. 必要なプロジェクトプロパティを含める DocFormatDocLanguages (プロジェクト情報ダイアログ内)ライブラリのドキュメントに関連しています。

    結果:

    _sm_img_project_information_libdoc.png
  3. のインストールディレクトリが CODESYS が含まれています libdoc.exe 実行可能ファイル(ディレクトリ: ...\DocScripting\3.5.xx.0\)。

  4. バージョン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以下を使用する必要があります。

  5. システム変数を作成します LIBDOC_CODESYS Windowsで。のファイルパスに値を設定します CODESYS.exe。パス名とプロファイル名は必ず二重引用符で囲んで指定してください。

    結果:

    _sm_img_libdoc_path.png
  6. ライブラリプロジェクトを保存して閉じ、再度開きます。

  7. クリック ファイル→プロジェクトをコンパイル済みライブラリとして保存

    コンパイルされたライブラリは、このキネマティクスを使用するプロジェクトにインストールされます。

プロジェクトでのライブラリの使用(CustomKinematics_Implementation.project)

このプロジェクトは、前のセクションで作成したキネマティクスを使用して、ジョギングまたは動きを命令することによって制御する方法を示しています。

  1. 作成する CODESYS との標準プロジェクト CODESYS SoftMotion Win コントローラ。

  2. ライブラリマネージャーを開き、ライブラリをインストールします CustomKinematics.compiled-library (前のセクションで作成)キネマティクスGantry3Cが含まれています。ライブラリをライブラリマネージャーに追加します。

  3. 軸グループオブジェクトを追加し、 KinCustom.Gantry3C キネマティクス。

    結果:

    _sm_img_select_kinematics.png
  4. 4つの仮想軸をに追加します SoftMotion一般軸プール デバイスツリーの軸プール。 (DriveX、Y、Z、およびC)

  5. 軸グループコンフィギュレータを開きます。の中に 軸へのマッピング セクションで、軸をそれぞれのフィールドにマップします。

    結果:

    _sm_img_axis_mapping.png
  6. プログラム Prg_Visu 軸グループを制御するメインプログラムです。アプリケーションが起動すると、 Prg_Visu 軸グループの電源を入れて有効にします。さらに、軸グループ(ジョギング、線形およびPTPの動き)を制御するために必要なすべての機能ブロックを呼び出します。これらの動きはすべて、添付のビジュアライゼーションから制御できます。

    結果:

    _sm_img_prg_visu.png
  7. 機能ブロック: Jog: このFBは軸空間と直交座標空間でのジョギングを組み合わせます。 SMC_GroupJog21つは軸空間用、もう1つは直交空間用です。この関数ブロックは視覚化テンプレートで使用できます。 V_ロボット位置軸 そして V_ロボット位置_カート_ジョグ 直交座標と軸空間で任意の運動学をジョグします。

    結果:

    _sm_img_fb_jog.png
    _sm_img_fb_jog2.png
  8. FB SMC_TRAFOF_Gantry3C:この機能ブロックは、Gantry3Cキネマティクスの入力軸値をそれぞれのTCP値に変換します。さらに、軸の値は、視覚化テンプレートで使用できるように正規化されています TRAFOF_Gantry3C_YZ 運動学の動きを視覚化する。

    結果:

    _sm_img_trafof_gantry3c.png
  9. アプリケーションをコンパイルして実行します。ビジュアライゼーションを開きます。軸空間とデカルト空間でロボットをジョギングできます。線形またはPTPの動きを命令するための視覚化テンプレートもあります。

    結果:

    _sm_img_custom_kinematics_visu.png

ヒント

ここで説明する例では、一般的な機能ブロックの位置決め軸と方向軸について説明します。多くのキネマティクスは、2つの分離された部分キネマティクスで構成できます。1つはポジショニングキネマティクス(デルタ、ガントリーなど)、もう1つはオリエンテーションキネマティクス(C軸、Wrist2、Wrist3などのツール)です。両方のキネマティクスは、ポジショニングキネマティクスのTCPである「フランジポイント」で相互に接続されています。配向運動学は、フランジ点から結合運動学のTCPまでのベクトルを計算できるという事実によって特徴付けられます。計算は、このTCPの方向のみを使用して行われます(つまり、位置決めの運動学に依存しないか、フランジポイントの方向に依存しません)。次に、位置決め運動学は、フランジポイントの位置のみからその軸位置を決定できなければなりません。フランジポイントの方向に依存してはなりません。

この場合、次のようなインターフェースを利用できます。 ISMPositionKinematics または ISMOrientationKinematicsこれらのインターフェースを実装するには、実装する関数ブロックを1つ定義します。 ISMPositionKinematics そして実装する別の機能ブロック ISMOrientationKinematics最後に、関数ブロックを拡張する関数ブロックを定義します。 Kin_Coupled (から SM3_Transformation) を、以前に定義した機能ブロックを入力として使用します。

詳細については、以下を参照してください。 カスタムキネマティクスの作成