Skip to main content

移動座標系との同期

統合されたトラッキング機能により、移動座標系に対するモーションのプログラミングが可能になります。典型的な使用例は、コンベヤー ベルトから製品をピックアップし、それを別のコンベヤー ベルトに置くことです。各ベルトの動的座標系を定義した後、ユーザーはこれらの座標系に関連する移動の目標位置を簡単に指定できます。 CODESYS SoftMotion 指令された軸群の動きとベルトの動きを重ね合わせます。

一般的なトラッキング モーションは、次の 3 つのフェーズで構成されます。

  • トラッキング イン: 別の座標系から動的座標系への移動。目標位置に到達すると、軸グループは動的座標系の動きに従います。

  • 移動の追跡: 同じ動的座標系内の別の位置への移動。指令された動きと動的座標系の動きが重ね合わされます。

  • トラッキング アウト: 動的座標系から別の座標系への移動。目標位置に到達すると、軸グループのモーションは動的座標系のモーションの影響を受けなくなります。

動的座標系の定義

動的追跡アプリケーションを実装する最初のステップは、動的座標系を定義することです。 CODESYS SoftMotion 動的座標系を定義するための 4 つの機能ブロックを提供します。

  • MC_TrackConveyorBelt: コンベヤ ベルトの追跡という一般的なユース ケース向けの使いやすい機能ブロックです。実際のベルトへの参照は、 ConveyorBelt タイプの SoftMotion 軸を期待する入力 AXIS_REF_SM3.

  • MC_TrackRotaryTable: 回転テーブルを追跡する一般的なユース ケース向けの使いやすいファンクション ブロック。実際の回転テーブルへの参照は、 RotaryTable タイプの SoftMotion 軸を期待する入力 AXIS_REF_SM3.

  • MC_SetDynCoordTransform: 機能ブロックは次のように機能します。 MC_TrackConveyorBeltMC_TrackRotaryTable、ただし、単一の軸によって制御されるのではなく、完全な軸グループによって制御されます。これにより、最大 6 つの自由度を持つ動的座標系を実装できます。

  • SMC_SetDynCoordTransformEx: 機能ブロックにより、完全にカスタムの動的座標系を実装できます。

4 つの機能ブロックのそれぞれには、 CoordSystem 基本的に座標系に名前を付けることができる入力、 PCS_1 また PCS_2.移動を指示するとき、座標系はこの名前で参照されます。

動的座標系の位置への移動を命令する

動的座標系を定義した後、この座標系の位置への移動を命令するのは簡単です。各動作機能ブロック、例えば MC_MoveLinearAbsolute、 があります CoordSystem 入力。この入力は名前に設定する必要があります (PCS_1 また PCS_2) 動的座標系に与えられます。の Position 入力は、動的座標系の原点を基準とした目的の位置に設定できます。移動ファンクションブロックを実行すると、移動座標系内の位置に移動します。目標位置に到達すると、軸グループはこの相対位置にとどまりながら動的座標系に従います。

動的座標系機能ブロックの「使用中」出力

各動的座標系機能ブロック (MC_TrackConveyorBeltMC_TrackRotaryTableMC_SetDynCoordTransform、 と SMC_SetDynCoordTransformEx) 持っています InUse 出力。座標系がまだ使用されているときにファンクション ブロックを再起動することは許可されておらず、エラーが発生します。 SMC_AXIS_GROUP_PCS_STILL_IN_USE.動的座標系は、座標系のある位置への移動が命令されるとすぐに使用されます。異なる座標系の目標位置に到達するまで使用され続けます。

動きを追跡するための軸の制限

軸の制限は、座標系の動きと、座標系に対する指令された動きの両方を考慮する必要があります。座標系に追従するために高軸ダイナミクスが必要な場合、座標系に対する動きが遅くなるか、まったく動かなくなる可能性があります。軸グループがキネマティクスの特異点に近い場合、これは比較的動きの遅い座標系でも発生する可能性があります。

詳細については、次を参照してください。 タブ:一般

追跡中の CP の動きのパス ダイナミクス

CP運動の経路ダイナミクスには特別な考慮を払う必要がある。これには以下が含まれる。 VelocityAccelerationDeceleration、 そして Jerk の入力 MC_MoveLinearAbsoluteMC_MoveLinearRelativeMC_MoveCircularAbsolute、 そして MC_MoveCircularRelative開始位置と目標位置が同じ動的座標系にある場合、パス ダイナミクスはこの座標系を基準とします。ただし、開始位置と終了位置が異なる座標系にある場合、パス ダイナミクスは最初の座標系を基準とするダイナミクスから 2 番目の座標系を基準とするダイナミクスにブレンドされます。パス ダイナミクスは、2 つの座標系間のダイナミクスの差の絶対値よりも高く設定することが重要です。特に、静的座標系から動的座標系に移動する場合、パス ダイナミクスは、座標系のダイナミクスの絶対値よりも高く設定する必要があります。

重要

経路速度は、 SMC_GroupReadPathDynamics 座標系間を移動するとき (トラッキング イン、アウト、または異なる動的座標系間)。

SMC_GroupReadPathDynamics 指定された座標系に対するパス ダイナミクスを計算します。トラッキング インまたはトラッキング アウト、またはダイナミック座標系間を移動する場合、これは 2 つの座標系に依存する移動です (開始座標系と目的座標系は異なります)。その結果、 SMC_GroupReadPathDynamics 機能ブロックは、これらの場合のパス ダイナミクスの計算には適していません。

SMC_AXIS_GROUP_MAX_AXIS_LAG_EXCEEDED、SMC_AXIS_GROUP_MAX_POSITION_LAG_EXCEEDED、または SMC_AXIS_GROUP_MAX_ORIENTATION_LAG_EXCEEDED のエラーを回避します。

エラー SMC_AXIS_GROUP_MAX_AXIS_LAG_EXCEEDEDSMC_AXIS_GROUP_MAX_POSITION_LAG_EXCEEDED、 または SMC_AXIS_GROUP_MAX_ORIENTATION_LAG_EXCEEDED 設定された軸制限またはパスダイナミクスに違反することなくコマンドされたパスに従うことができない場合に報告されます。このエラーが発生した場合は、まず軸制限とパスダイナミクスが前の2つのセクションに従って設定されているかどうかを確認する必要があります。パス偏差は出力で監視できます。 PositionLag そして OrientationLagMC_GroupReadStatus 機能ブロック。

考えられる解決策は次のとおりです。

  • 軸の制限を増やします。

  • 動的座標系に追跡するときの CP 移動のパス ダイナミクスを増やします。

  • 座標系のダイナミクスを減らします。

  • ロボットの位置を変更するなど、キネマティクスの特異点に近い動きを避けます。

動的座標系がノイズの多いエンコーダの出力によって制御されている場合、論理軸を使用してエンコーダ信号をフィルタリングすると役立つ場合があります。詳細については、次を参照してください。タブ:論理軸.

位置と方向のラグの許容誤差は、 SMC_GroupSetPathTolerance 機能ブロック。