Skip to main content

トリガー例2:接着工程

Robotics_Trigger_Advanced.project ここで説明するサンプル プロジェクトは、次のインストール ディレクトリにあります。 CODESYS..\CODESYS SoftMotion\Examples

トリガーを使用して、接着ノズルのオン/オフの切り替えなど、パス上の特定の位置でアクションを実行できます。

この例には次のコンポーネントが含まれています。

  • による軌道の保証された予測の構成 fPlanningForecastDuration からのパラメータ SMC_TuneCPKernel ファンクションブロック。

  • さまざまなトリガーのコマンド。ここでは、パスの位置を定義するために利用可能な 3 つの方法がすべて使用されています (「 SMC_TriggerPositionType)。

  • タイムシフトによるトリガーの使用。サンプル アプリケーションには、 TriggerWithTimeShift 関数ブロックは、時間オフセットを使用してパス位置に到達することに反応できます (より早くまたはより遅く)。

これらのコンポーネントは、接着プロセスのサンプル アプリケーションに示されています。以下の画像で赤色で表示されている動きが実行されます(ブレンディングあり)。

_sm_img_digital_switches_example.png

トリガーは緑色でマークされた位置に定義されています。

  • 位置 1: その位置に到達する 0.05 秒前に糊付け装置のスイッチを入れます。

  • 位置 1: 位置に到達したら、UV ランプのスイッチをオンにします。

  • 位置 2: 位置に到達したら、接着剤供給コンテナを充填します。

  • 位置 3: 接着装置のスイッチを切り、その位置に到達する 0.05 秒前に接着剤供給コンテナへの充填を停止します。

  • 位置 3: その位置に到達してから 1.5 秒後に UV ランプをオフにします。

アプリケーションの構造

アプリケーションは次の部分で構成されます。

  • GlueApplication: このプログラムには、接着プロセスのトリガーの使用方法を示すサンプル アプリケーションが含まれています。

  • Planning_PRG: このプログラムでは、軌道の予測を設定します。

  • TriggerWithTimeShift: このファンクション ブロックには、タイム シフトを伴うトリガーのロジックが含まれており、 GlueApplication サンプルプログラム。

  • Trace: トレースは軸のダイナミクスと、 GlueApplication トリガーで切り替わるプログラム。

予測の構成

トリガーに達する前に、たとえば 0.05 秒前などに早めに反応したい場合は、 fPlanningForecastDuration SMC_ からのパラメータSMC_TuneCPKernel ファンクションブロックは少なくとも 0.05 秒に設定する必要があります。このパラメータはレイテンシに直接影響するため、その値を必要以上に大きくすべきではありません (ドキュメントを参照) f計画予測期間)。ご了承ください SMC_TuneCPKernel で呼び出す必要があります SoftMotion 計画タスク。このため、メインプログラムでは設定は実行されません。 GlueApplication、しかし、 Planning_PRG プログラム。

このサンプル アプリケーションでは、位置に到達する 0.05 秒前にトリガーの評価が必要です。このため、パラメータfPlanningForecastDuration=0.05が設定されています。 Planning_PRG プログラム。

機能ブロック: TriggerWithTimeShift

TriggerWithTimeShift 関数ブロックは、トリガーを使用するための簡素化されたインターフェイスを提供します。さらに、時間シフトを定義して、ある位置 (負の値) に到達した後だけでなく、ある位置 (正の値) の前でもトリガーが反応できるようにすることができます。アプリケーションで必要な時間精度に応じて、トリガーに達したときの反応は次のようになります。

  • 必要な時間精度 >= バス タスク サイクル: この場合、 TriggerWithTimeShift.TriggerReachedThisCycle 出力を使用できます。

  • 必要な時間精度 < バスタスクサイクル: この場合、正確な残り時間 TriggerWithTimeShift.TriggerTime トリガーに達するまで使用できます。

初めの、 TriggerWithTimeShift を使用します SMC_GroupPrepareTriggerSMC_GroupReadTrigger 機能ブロック。

トリガーのコマンド

の中に GlueApplication プログラムに従って、動きとトリガーが命令されます。トリガーは次を使用して準備されるため、呼び出し順序はトリガーにとって特に重要です。 SMC_GroupPrepareTrigger は、同じサイクル内で指令された次の動作に割り当てられます。したがって、すべてのアプリケーションで次の点に注意する必要があります。

  1. トリガーを命令するためのファンクション ブロックは、常に移動ファンクション ブロックの前に呼び出されます。

  2. トリガーとそれぞれの動作は常に同じサイクルで指令されます。

トリガーは以下のすべてのタイプを使用します。 SMC_TriggerPositionType:

  • 位置 1 のトリガーは相対距離の定義を使用します (SMC_TriggerPositionType.MvtRelative)、位置 0.5 として。それぞれの動きの距離は 10 であるため、トリガーは X=5 に配置されます。

  • 位置 2 のトリガーは、ユーザー単位 u での距離の定義を使用します (SMC_TriggerPositionType.MvtDistanceその結果、トリガーも X=5 に配置されます。

  • 位置 3 のトリガーは、平面との交差を使用します (SMC_TriggerPositionType.PlaneIntersection)。平面は、トリガーが X=5 に配置されるように定義されています。

GlueApplication 持っています EnableGlueEnableUVLamp、 と RefillGlueStorage 出力。これらは適切なトリガーで切り替わります。 GlueApplication.EvaluateTriggers()。これらの出力の動きと状態はトレースで監視および評価できます。