警告

これは、古いバージョンのドキュメントです。 最新の情報をご覧になりたい場合は、次をご覧ください。 5.0 .

コマンドの原則

EtherCATモジュールの全てのコマンドは同じ原理に従っています。これらのコマンドは、末尾が Trigger である名前で識別できます。コマンドを送信するには、下の方法で行ってください。

  1. トリガーを True に設定する前に、必要なパラメータを設定してください。

  2. コマンドトリガーを True に設定してください。

  3. <command> Done フラグが True になるのを待ってください。

  4. コマンドトリガーを False にリセットしてください。

  5. <command> 完了 フラグが False にリセットされるのを待ってください。

  6. Is Error レジスターにエラーがないかを確認し、エラーがある場合は、必要に応じて処理してください。

  7. エラーがなければ、対応する出力(複数)を使用できます。

これを図で表すと次のようになります。

../../../_images/ecs_start_production.svg

注釈

同時に2つのコマンドトリガーを True に設定することはできません。そのような場合、 EYE+ はエラーを返します。詳しくは 追加のエラーコード(Additional error codes) をご覧ください。

基本的な機能

基本入力

  • 状態停止 [UDINT](Stop States)

    停止 では、定義しているすべての状態を停止してください。その状態はビットセットとしてエンコードされていて、各状態は次のように符号化されています。

    • 自動運転 0b0000_0001

    • レシピの作成 0b0000_0010

    • カメラの設定 0b0000_0100

    • ハンドアイキャリブレーション 0b0000_1000

    • レシピ評価 0b0001_0000

    • パージ 0b0010_0000

    また、 System State レジスタには、次の状態があります。

    • エラー 0b0100_0000

    • 準備完了 0b1000_0000

    • システム更新 0b0001_0000_0000

    • 移行設定 0b0100_0000_0000

    • レシピ移行 0b1000_0000_0000

    • システムバックアップ 0b0001_0000_0000_0000

    • システム復元 0b0001_0000_0000_0000

    • 初期化 0b0100_0000_0000_0000

    • 移行エラー 0b1000_0000_0000_0000

    EYE+ は、 Stop States が変わったとき(例えば、数値が0から1になったとき)にこのコマンドを認識します。下の図に示すように、システムがコマンド処理を終了すると、PDO エントリの Stop State Done が True になります。エラーは、 Is ErrorError ID といった特別なレジスタで処理されます。 エラーハンドリング を参照してください。

    ../../../_images/ecs_stop_states.svg

    Done BOOLは、数値が0に戻るとクリアされます。

注釈

この数値を 0xFF に設定すると、すべての状態を停止して準備完了状態にすることができます。

  • エラークリアトリガー(Clear Error Trigger)

    EYE+ は エラーコード に定義している任意のエラーコードを返すことができます。エラークリアトリガーは、 Error ID レジスタに表示される全てのエラーをクリアすることができます。標準的なエラーコードに加えて、EtherCATに特有のエラーを確認することができ、これらは 追加のエラーコード(Additional error codes) に定義されています。

    有効なエラーをクリアする方法は簡単で、次のようになります。

    ../../../_images/ecs_clear_error.svg

基本出力(Basic Outputs)

  • システム状態(System State)

    現在の EYE+ の状態を確認するためには、 状態停止 には、すべての状態が記載されているので、参照してください。

  • エラー(Is Error)

    出力された Error ID にエラーが含まれている場合は True、含まれていない場合は False となります。エラーをクリアすると、このレジスタは False にリセットします。

  • エラー ID(Error ID)

    エラー ID を含む場合は、 エラークリアトリガー を参照してください。エラーをクリアすると、このレジスタの数値が0にリセットします。

  • 状態停止完了(Stop State Done)

    EYE+ が 状態停止 コマンドの処理を終了したときに True となります。 状態停止 トリガーを0に設定すると、 False にリセットします。

自動運転の機能

自動運転インプット(Production Inputs)

  • 自動運転開始トリガー(Start Production Trigger)

    自動運転中にレシピを開始するためには、 レシピ ID レジスタに固有のレシピ ID を設定しなければなりません。自動生産が開始されると、 自動運転開始完了システム状態 レジスタに反映されます。エラーは、 Is ErrorError ID の特別なレジスタで処理されます。 エラーハンドリング を参照してください。

    レシピ 42 が自動運転を開始する時の例は、下の通りです。

    ../../../_images/ecs_start_production.svg
  • 部品ピックトリガー(Get Part Trigger)

    1つ以上のパートをリクエストする。返されるパートの数は、パラメータ``Part Quantity``,``Multi Part Quantity A``,``Multi Part Quantity B``,``Multi Part Quantity C``,``Multi Part Quantity D``,``Model N Quantity`` (N = 1, 2, 3, 4, 5, 6) のいずれかの値を変更することで変更できる。デフォルトでは、パラメータ``Part Quantity`` は 1 に設定されています。コマンドの詳細については get_part(multi-feeding) および get_part(multi-model) を参照してください。

    下図は、1つの部品をリクエストする例です(初期設定値)。

    ../../../_images/ecs_get_part.svg

    注釈

    簡単なシナリオは 部品(ワーク)をピック(Get part) で説明しています。

  • 部品準備トリガー(Prepare Part Trigger)

    EYE+ から1個または、複数個のパーツを準備し、準備したパーツは、 部品ピックトリガー レジスタを使って後で取得できます。このコマンドは、パーツ座標を送信しないことと、 タイムアウトパラメータを考慮しないことを除けば、 部品ピックトリガー と同じ動作をします。 詳しくは、 コマンドタイムアウト を参照してください。 部品数複数部品数 A複数部品数 B複数部品数 C複数部品数 D 、または モデル N 数量 ( N = 1、2、3、4、5または6)のいずれかのパラメータを変更することで、準備する部品数を変更することができます。初期設定では、 部品数 のパラメータは1に設定されています。このコマンドの詳細については、 prepare_part を参照してください。

    リクエストした部品の準備ができると、 準備 フラグが1になります。

    下図は、部品の準備の例です。

    ../../../_images/ecs_prepare_part.svg

    注釈

    簡単なシナリオに関しては、 部品を準備(Prepare part) で説明しています。

  • 強制的に画像取得トリガー(Force Take Image Trigger)

    強制的に画像取得トリガー コマンドは、できるだけ早く画像を取得するように EYE+ に強制します。

    特に prepare_partget_part と組み合わせて使用します。

    強制的に画像取得トリガー が0から1に変わるたびに、 EYE+ は新しい画像を取得し、解析を行います。このコマンドの詳細については、 force_take_image を参照してください。

    下図は、このフラグを設定する例です。

    ../../../_images/ecs_force_take_image.svg

    注釈

    簡単なシナリオは、 強制的に画像を取得(Force take image) に説明しています。

  • ポーズをクリア(Clear Poses)

    The register Clear Poses allows clearing the Poses outputs (Pose <n>), resulting in an empty list of poses. This is useful between two consecutive Get Part Triggers.

    ../../../_images/ecs_clear_part.svg

自動運転パラメータ(Production Parameters)

自動運転中は、要求に応じて、特定のパラメータを微調整することができます。以下のリストは、どのパラメータが利用可能かを示しています。

  • パラメータ保存トリガー(Save Parameters Trigger)

    自動運転パラメータ(Production Parameters) リスト上のパラメータは、この特定のコマンドを使って必ず保存してください。 EYE+ は、 パラメータ保存完了 レジスタを使用して、コマンドの完了を報告します。このコマンドは、 自動運転パラメータ(Production Parameters) リスト上のすべてのパラメータを保存します。すべてのパラメータを適切な初期値で設定することが重要です!エラーは、 Is ErrorError ID の特別なレジスタで処理されます。 エラーハンドリング を参照してください。

    以下は、コマンド送信時のパラメータの動作を示す1例です。

    ../../../_images/ecs_save_param.svg

    重要

    このコマンドは、すべてのパラメータを保存します。すべてのパラメータを正確な値に初期化することが重要です。

  • 画像取得可能(Can Take Image)

    画像取得は初期設定では有効です。必要に応じて、このパラメータを False に設定して、画像取得を無効にすることができます。このコマンドがどのような場合に有効かについては、 画像取得可能(Can take image) を参照してください。

  • 送信後の画像(Image After Send)

    部品(ワーク)をピックした後に、強制的に画像を取得します。 部品ピックトリガー部品準備トリガー コマンドを呼び出すたびに、システムは、自動的に画像を取得します。もし何らかの外的トラブルよって部品が動いているかもしれないと思った場合、既存の(メモリに保存済みの)良い候補の座標値を修正するために、この画像を使用します。

    詳しくは、 送信後の画像(Image After Send) をご覧ください。

  • コマンドタイムアウト(Command Timeout)

    これは 部品ピックトリガー コマンドを呼び出す際のタイムアウト(秒)です。このタイムアウト時間内に部品が見つからなかった場合は、エラーが返されます。

    注釈

    このパラメータを0に設定すると、タイムアウトが無効になり、要求された数の部品が見つかるまでコマンドが実行されます。

  • 部品数(Part Quantity)

    このパラメータは、 EYE+ に複数の部品を同時に探すように指示するために使用します。 EYE+ が写真を撮るたびに、画像上の少なくとも<n>個の部品を探します。もしそれらの部品が見つからなければ、座標は送信されず、振動を開始し、それらの<n>個の部品を得るまで新しい画像を取得します。

  • 複数の部品数 AとBとCとD(Multi Part Quantity A, B, C, D)

    マルチフィーディングのレシピのみ は、画像を取得する度に、 Prepare Part TriggerGet Part Trigger によりリクエストされた特別なタイプの部品数です。もしこの部品数が画像取得中に見つけられない場合は、この部品数が見つかるまで、 Get Part Trigger かまたは Prepare Part Trigger が再実行します。

    部品数については、 マルチフィーディングの自動運転 にあるよくあるシナリオをお読みください。

自動運転のアウトプット(Production Outputs)

  • 有効レシピ(Active Recipe)

    自動運転またはパージのために読み込まれた現在のレシピを含んでいます。

  • 準備(Is Prepared)

    EYE+ が画像処理を終了し、 部品ピックトリガー を使用してポジションを与える準備ができたときに True を返します。

  • 画像解析中(Is Analysis Running)

    解析中(is_analysis_running) にあるように、 EYE+ がまだ画像を処理している場合には、True を返します。

  • 複数の部品 AとBとCとD を準備(Multi Parts Prepared A, B, C, D)

    部品ピックトリガー を使用して取得可能な特定の部品数です。

  • N が1、2、3、4、5、または6の場合のモデル N が準備完了。

    部品ピックトリガー を使用して取得可能なモデルの特定の部品数です。

  • ボーズ(Poses)

    EYE+ は一度に10 ポーズまで出力することができます。各ポーズはパーツの位置を定義する3つの常時存在するパラメータと、 マルチフィーディング(複数のパーツを供給) または マルチモデル レシピを作成する場合に必要な2つのオプションパラメータで構成されます:

    さらに、有効なエントリーの数は、常に 有効なエントリー数 レジスタに設定しています。

    注釈

    ポーズ <n> モデルは、PDO の別のグループにあります。 TxPDO を参照してください。

  • 画像取得可能(Can Take Image)

    画像取得可能 のパラメータをリードバックしてください。

  • 送信後の画像(Image After Send)

    送信後の画像 のパラメータをリードバックします。

  • 部品数(Part Quantity)

    パーツ数 のパラメータをリードバックします。

  • 複数の部品数 AとBとCとD(Multi Part Quantity A, B, C, D)

    パーツ A/B の数量 のパラメータをリードバックします。

  • モデル N の数量リードバック、ここで N は1、2、3、4、5、または6です。

    モデル数 パラメータのリードバックします。

パージの機能

パージ入力

自動運転機能に加えて、EtherCAT インターフェースでは、オプションのアジリルのパージシステムを完全に制御するためのすべてのコマンドにアクセスでき、自動運転の切り替えが容易になります。このオプションの活用方法については、 パージプレート(Purge plate) および パージフル(Purge full) を参照してください。

パージシステム専用のコマンドがいくつかあります。

  • パージ開始トリガー(Start Purge Trigger)

    プラットフォームをパージするためのレシピを開始するためには、 レシピ ID レジスタに固有のレシピ ID を設定してください。パージが開始されると、 パージ開始完了システム状態 レジスタがこれを反映します。エラーは、 Is ErrorError ID の特別なレジスタで処理されます。 エラーハンドリング を参照してください。

    レシピ 42 がプラットフォームのパージを開始する時の例は、下の通りです。

    ../../../_images/ecs_start_purge.svg
  • パージプレートトリガー(Purge Plate Trigger)

    プレートのみのパージシーケンスを実行してください。このシーケンスでは、パージフラップを開き、対応する方向にプラットフォームの振動を実行し、最後にパージフラップを閉じます。振動の継続時間は パージの持続時間 レジスタで任意に設定できます。

    EYE+ がパージの実行を終了すると、 Purge Plate Done レジスタが1に設定されます。

    このコマンドを使用するには、システムがパージモードにしてください。 パージ開始トリガー を参照してください。

    ../../../_images/ecs_purge_plate.svg
  • パージフルトリガー(Purge Full Trigger)

    プレートとホッパーの両方でパージシーケンスを実行してください。このシーケンスでは、パージフラップを開き、対応する方向にプラットフォームの振動を走らせ、ホッパーをトリガーし、最後にパージフラップを閉じます。振動の時間は パージの持続時間 レジスタで設定してください。

    EYE+ がパージの実行を終了すると、 Purge Full Done レジスタが1に設定されます。

    このコマンドを使用するには、システムがパージモードにしてください。 パージ開始トリガー を参照してください。

    ../../../_images/ecs_purge_full.svg
  • パージの持続時間(Purge Duration)

    プレートとホッパーを振動させる時間を ms 単位で指定します。 Purge Plate Trigger コマンドと組み合わせて使用する場合、この値を0に設定していると、レシピにある対応する値が代わりに使用されます。1~30000msの間で設定してください。

パージ出力(Purge Outputs)

ハンドアイ機能

The command flow to perform a hand-eye calibration, using 4 calibration points is described in this scenario.

ハンドアイ入力

  • ハンドアイキャリブレーションの開始トリガー

    Start a hand-eye calibration using one of your recipes and its associated part. The unique recipe identifier must be set in register Recipe ID. Once the hand-eye calibration process has started, the register Start Hand-eye Calibration Done, as well as the System State, will reflect this. Error is handled using the special register Is Error and Error ID, see Error Handling.

    Below is an example where the recipe 42 is used for starting a hand-eye calibration:

    ../../../_images/handeye_start.svg
  • キャリプレーションポイントの設定トリガー

    Record a new robot position for the current hand-eye calibration at Calibration Point Index. In total 4 calibration points (index 0 to 3) must be recorded before performing the Calibrate Trigger command. The X Coordinate and Y Coordinate of the robot can be expressed in your own robot unit. If another point has already been registered at this Calibration Point Index, it will be overwritten by the newly defined point.

    The system must be in hand-eye calibration mode to use this command, see Start Hand-eye Calibration Trigger.

    ../../../_images/handeye_set_robot_point.svg
  • キャリブレーションポイント取得トリガー

    キャリブレーションポイントインデックス に記録されたロボット座標を返します。返された座標は、 Pose 1 - XPose 1 - Y で読み取ることができます。

    The system must be in hand-eye calibration mode to use this command, see Start Hand-eye Calibration Trigger.

    ../../../_images/handeye_get_robot_point.svg
  • キャリブレーション画像の取得トリガー

    検出されたオブジェクトの現在のビジョン座標を得るために画像を撮影してください。検出された座標は、 キャリブレーションポイントインデックス で記録されたロボットの位置とペアリングされます。複数のパーツが検出された場合、最初のパーツがマッチポイントとして使用されます。

    The system must be in hand-eye calibration mode to use this command, see Start Hand-eye Calibration Trigger.

    ../../../_images/handeye_take_image.svg
  • キャリブレーションポイントインデックス

    キャリブレーションポイントのインデックス。完全なキャリブレーションポイントは、ロボット位置と対応するパーツ位置で構成されています。ハンドアイの キャリブレーショントリガー コマンドを実行する前に、合計4つのキャリブレーションポイント(インデックス0から3)を記録する必要がある。

  • X 座標

    キャリブレーションポイントの設置トリガー を使用して記録されているロボットの位置の X 座標。

  • Y 座標

    キャリブレーションポイントの設定トリガー を使用して記録されているロボットの位置の Y 座標。

  • キャリブレーショントリガー

    Calculate the hand-eye calibration matrix from the registered calibration points. You must have registered 4 complete calibration points with the Set Calibration Point Trigger and Take Calibration Image Trigger commands before calling the Calibrate Trigger command. The accuracy of the calibration is returned in the Calibration Accuracy.

    ../../../_images/handeye_calibrate.svg
  • キャリブレーションのテストトリガー

    This command is used to test the current calculated hand-eye calibration. It returns the number of detected parts in Number of Valid Entries and their robot coordinates in the Poses outputs. You can then check if the detected robot coordinates match the actual robot coordinates.

  • キャリブレーションの保存トリガー

    Save the current hand-eye calibration. This command should be called after Calibrate Trigger to save the data in the system if you consider the result to be good enough. Once the calibration is saved, it will automatically be used in production. If another calibration has been saved before, it will be overwritten by the new calibration.

    注釈

    If you forget to call this command and stop the hand-eye calibration state, you will lose all pending calibration data.

ハンドアイのアウトプット

  • キャリブレーションの精度

    キャリブレーションの精度は、 キャリブレーショントリガー コマンドの結果のです。これは、 EYE+ で設定されている単位で表示されます。この単位は、 構成ロボット の、 EYE+ Studio で確認することができます。

    注釈

    If you have not done the camera configuration before the hand-eye calibration, the calibration accuracy will be expressed in pixels.

追加のエラーコード(Additional error codes)

EYE+ は、必要に応じて特定のエラーコードを EtherCAT に返します。これらのエラーコードのリストとその説明を以下に示します。

701

同時進行のコマンドがPDOで有効