警告

現在、このドキュメントは古いバージョンをご覧いただいています。 最新の情報をご希望の場合は、下記をご参照してください 5.1 .

コマンドの原則

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)

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

    • 自動運転 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

    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+ の状態を確認するためには、 状態停止 には、すべての状態が記載されているので、参照してください。

  • エラークリア完了(Clear Error Done)

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

  • エラー(Is Error)

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

  • エラーID(Error ID)

    Error 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つまたは複数のパーツをリクエストしてください。 パーツ数複数の部品数 A複数の部品数 B のパラメータのいずれかの値を変更することで、返されるパーツ数を変更することができます。初期設定では,パラメータ パーツ数 の値は1に設定しています。このコマンドの詳しい説明は、 get_part を参照してください。

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

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

    注釈

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

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

    EYE+ から1個または、複数個の部品を準備し、準備された部品は後で、 部品ピックトリガー を使って取得します。このコマンドは、部品座標を送信しないことと、 タイムアウトパラメータを考慮しないことを除けば、部品ピックトリガー と同じ動作をします。 タイムアウトのコマンド を参照。 パーツ数複数部品数 A複数部品数 B のいずれかのパラメータを変更することで、準備する部品数を変更することができます。初期設定では、 パーツ数 のパラメータは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)

    クリア中断 レジスタは、中断出力( Pose <n> )をクリアにして、中断のリストを空にすることができます。これは、 部品ピックトリガー の2つが連続している時に役立ちます。

    ../../../_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(Multi Part Quantity A, B)

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

    部品数については、 Dual Feeding production にあるよくあるシナリオをお読みください。

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

  • 自動運転開始完了(Start Production Done)

    EYE+ が 自動生産開始トリガー コマンドの処理を終了すると True になります。 自動生産開始トリガー を0に設定すると、False にリセットします。

  • 有効レシピ(Active Recipe)

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

  • 部品ピック完了(Get Part Done)

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

  • 部品準備完了(Prepare Part Done)

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

  • 準備(Is Prepared)

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

  • 画像解析中(Is Analysis Running)

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

  • 強制的に画像取得完了(Force Take Image Done)

    EYE+ が 強制的に画像取得トリガー コマンドの処理を終了したときに True となります。 F強制的に画像取得トリガー を0に設定すると、 False にリセットします。

  • 部品を準備(Parts Prepared)

    Get Part Trigger を使用して取得可能な一般部品数です。

  • 部品Aの準備完了と部品Bの準備完了 (Multi Parts Prepared A, Multi Parts Prepared B)

    Get Part Trigger を使用して取得可能な特定の部品数です。

  • ボーズ(Poses)

    EYE+ は、一度に最大10回のポーズを出力することができます。各ポーズは4つの異なるパラメータで構成されています。

    1. ポーズ <n> X は、この部品のX 座標

    2. ポーズ <n> Y は、この部分のY 座標

    3. ポーズ <n> RZ は、この部品のRZ 角度

    4. ポーズ <n> Typeは、部品の種類(デュアルフィードレシピで使用)

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

  • パラメータ保存完了(Save Parameters Done)

    EYE+ が パラメータ保存トリガー コマンドの処理を終えたときに True となります。 パラメータ保存トリガー を0に設定すると、False にリセットします。

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

    画像取得可能 のパラメータを読み出してください。

  • ピック後の強制画像(Image After Send)

    Image After Send のパラメータを読み出します。

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

    Command Timeout のパラメータを読み出します。

  • 部品数(Part Quantity)

    Part Quantity のパラメータを読み出します。

  • マルチ部品数 A とマルチ部品数 B(Multi Part Quantity A, Multi Part Quantity B)

    Part A/B Quantity のパラメータを読み出します。

パージの機能

パージ入力

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

パージ出力(Purge Outputs)

ハンドアイ機能

4つのキャリブレーションポイントを使用して、 hand-eye calibration を実行するコマンドフローは、こちらの シナリオ に記述しています。

ハンドアイ入力

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

    レシピとその関連部品を使用して hand-eye calibration を開始します。ユニークなレシピ識別子はレジスタ Recipe ID に設定する必要があります。一度 hand-eye calibration プロセスが開始されると、レジスタ Start Hand-eye Calibration Done と同様に System State に反映されます。エラーは、特別なレジスタ Is ErrorError ID を用いて処理されます。 Error Handling を参照してください。

    レシピ 42 を使って、 hand-eye calibration を開始する例は、次の通りです。

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

    現在の hand-eye calibration のための新しいロボット位置を キャリブレーションポイントインデックス に記録してください。合計4つのキャリブレーションポイント(インデックス0から3)を記録してから 校正トリガー コマンドを実行してください。 ロボットの X 座標Y 座標 は、ロボットの単位で表示することができます。この キャリブレーションポイントインデックス にすでに他の点が登録されていた場合、新しく定義された点で上書きされます。

    このコマンドを使用するには、システムを hand-eye calibration モードにしてください。 ハンドアイキャリブレーションの開始トリガー を参照してください。

    ../../../_images/handeye_set_robot_point.svg
  • 校正ポイント取得トリガー

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

    このコマンドを使用するには、システムを hand-eye calibration モードにしてください。 ハンドアイキャリブレーションの開始トリガー を参照してください。

    ../../../_images/handeye_get_robot_point.svg
  • 校正画像の取得トリガー

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

    このコマンドを使用するには、システムを hand-eye calibration モードにしてください。 ハンドアイキャリブレーションの開始トリガー を参照してください。

    ../../../_images/handeye_take_image.svg
  • 校正ポイントインデックス

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

  • X 座標

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

  • Y 座標

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

  • 校正トリガー

    登録されているキャリブレーションポイントから hand-eye calibration マトリックスを算出してください。 校正トリガー コマンドを呼び出す前に、 キャリブレーションポイントの設定トリガーキャリブレーション画像の取得トリガー コマンドで、4つの完全なキャリブレーションポイントを登録しておく必要があります。キャリブレーションの精度は、 キャリブレーションの制度 に返されます。

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

    このコマンドは、現在算出した hand-eye calibration をテストするために使用されます。 有効なエントリー数 で検出された部品数と、 中断 アウトプット中のロボット座標を返します。検出されたロボット座標と実際のロボット座標とが一致するかどうかを確認することができます。

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

    現在の hand-eye calibration を保存してください。このコマンドは、 校正トリガー の後に呼び出され、結果が十分であると判断された場合に、データをシステムに保存します。一旦保存されたキャリブレーションは、自動的に自動運転で使用されます。もし、以前に他のキャリブレーションを保存していた場合は、新しいキャリブレーションで上書きされます。

    注釈

    このコマンドの呼び出しを忘れて、 hand-eye calibration 状態を停止してしまうと、保留中のデータがすべて失われてしまいます。

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

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

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

    注釈

    hand-eye calibration の前にカメラの設定を行っていない場合、校正精度はピクセルで表示されます。

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

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

701

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