コマンドの原則
EtherCAT モジュールの全てのコマンドは、同じ原理に従っています。これらのコマンドは、末尾が Trigger である名前で識別できます。コマンドを送信するには、次の方法で行ってください。
- トリガーを True に設定する前に、必要なパラメータを設定してください。 
- コマンドトリガーを True に設定してください。 
- <command> Doneフラグが True になるのを待ってください。
- コマンドトリガーを False にリセットしてください。 
- <command> 完了フラグが False にリセットされるのを待ってください。
- Is Errorレジスターにエラーがないかを確認し、エラーがある場合は、必要に応じて処理してください。
- エラーがなければ、対応する出力(複数)を使用できます。 
これを図で表すと次のようになります。
注釈
同時に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
- 移行設定 - 0b010_0000_0000
- レシピ移行 - 0b100_0000_0000
- システムバックアップ - 0b000_1000_0000_0000
- システム復元 - 0b0001_0000_0000_0000
- 初期化 - 0b0010_0000_0000_0000
- 移行エラー - 0b0100_0000_0000_0000
- レシピ移行 - 0b1000_0000_0000_0000
 - EYE+ は、 - 状態停止が変わったとき(例えば、数値が0から1になったとき)にこのコマンドを認識します。下の図に示すように、システムがコマンド処理を終了すると、PDO エントリの- 状態停止完了(Stop State Done)が True になります。エラーは、- Is Errorや- Error IDといった特別なレジスタで処理されます。 エラーのハンドリング を参照してください。- Done BOOLは、数値が0に戻ると消去されます。 
 
注釈
この数値を 0xFF に設定すると、すべての状態を停止して準備完了状態にすることができます。
- クリアエラートリガー(Clear Error Trigger)
- EYE+ は、 エラーコード に定義している任意のエラーコードを返すことができます。エラークリアトリガーは、 - Error IDレジスタに表示される全てのエラーをクリアにすることができます。標準的なエラーコードに加えて、EtherCAT に特有のエラーを確認することができ、これらは、 追加のエラーコード(Additional error codes) に定義されています。- 有効なエラーを消去する方法は簡単で、次のようになります。 
 
基本出力(Basic Outputs)
- システム状態(System State)
- 現在の EYE+ の状態は、 状態停止 にすべての状態が記載されているので、参照してください。 
 
- エラークリア完了(Clear Error Done)
- EYE+ が、 クリアエラートリガー コマンドの処理を終了したときに True となります。 クリアエラートリガー を0に設定すると、 False にリセットします。 
 
- エラー(Is Error)
- 出力された Error ID にエラーが含まれている場合は True、含まれていない場合は False となります。エラーをクリアすると、このレジスタは False にリセットします。 
 
- エラー ID(Error ID)
- クリアエラートリガー でエラー ID を参照してください。エラーをクリアすると、このレジスタの数値を0にリセットします。 
 
自動運転の機能
自動運転インプット(Production Inputs)
- 自動運転開始トリガー(Start Production Trigger)
- 自動運転中にレシピを開始するには、固有のレシピ ID を - レシピ IDレジスタに設定する必要があります。自動運転が開始されると、- 自動運転開始完了と- システム状態に反映されます。エラーは、- Is Errorと- Error IDの特別なレジスタを使用して処理されます。 エラーハンドリング を参照してください。- レシピ - 42が自動運転を開始する時の例は、下の通りです。
 
- 部品ピックトリガー(Get Part Trigger)
- 1つ以上のパーツをリクエストしてください。返される部品数は、パラメータ - 部品数、- 複数部品数 A、- 複数部品数 B、- 複数部品数 C、- 複数部品数 D、- モデル N 数量(N = 1、 2、 3、 4、 5、 6)のいずれかの値を変更することで変更できる。初期設定では、- 部品数は 1 に設定されています。コマンドの詳細については get_part(multi-feeding) および get_part(multi-model) を参照してください。- 下図は、1つの部品をリクエストする例です(初期設定値)。 - 注釈 - 簡単なシナリオは 部品(ワーク)をピック(Get part) で説明しています。 
 
- 部品準備トリガー(Prepare Part Trigger)
- EYE+ から1個または、複数個の部品を準備し、準備された部品は後で、 部品ピックトリガー を使って取得します。このコマンドは、部品座標を送信しないことと、 タイムアウトパラメータを考慮しないことを除けば、部品ピックトリガー と同じ動作をします。 タイムアウトのコマンド を参照。 - 部品数、- 複数部品数 A、- 複数部品数 B、- 複数部品数 C、- 複数部品数 Dのいずれかのパラメータを変更することで、準備する部品数を変更することができます。初期設定では、- パーツ数のパラメータは1に設定されています。このコマンドの詳細については、 prepare_part を参照してください。- リクエストした部品の準備ができると、 - 準備フラグが1になります。- 下図は、部品の準備の例です。 - 注釈 - 簡単なシナリオに関しては、 部品を準備(Prepare part) で説明しています。 
 
- 強制的に画像取得トリガー(Force Take Image Trigger)
- 強制的に画像取得トリガーコマンドは、できるだけ早く画像を取得するように EYE+ に強制します。- 特に 部品準備トリガー と 部品ピックトリガー と組み合わせて使用します。 - 強制的に画像取得トリガーが0から1に変わるたびに、 EYE+ は新しい画像を取得し、解析を行います。このコマンドの詳細については、 force_take_image を参照してください。- 下図は、このフラグを設定する例です。 - 注釈 - 簡単なシナリオは、 強制的に画像を取得(Force take image) に説明しています。 
 
- ポーズをクリア(Clear Poses)
- Clear Posesレジスタは、 ポーズ 出力(- ポーズ <n>)をクリアするので、その結果リストが空になります。これは、 Get Part Triggers を2回連続する時に役立ちます。
 
自動運転パラメータ(Production Parameters)
自動運転中は、要求に応じて、特定のパラメータを微調整することができます。以下のリストは、どのパラメータが利用可能かを示しています。
- パラメータ保存トリガー(Save Parameters Trigger)
- 自動運転パラメータ(Production Parameters) リスト上のパラメータは、この特定のコマンドを使って必ず保存してください。 EYE+ は、 - パラメータの保存完了レジスタを使用して、コマンドの完了を報告します。このコマンドは、 自動運転パラメータ(Production Parameters) リスト上のすべてのパラメータを保存します。すべてのパラメータを正確な値に初期化することが重要です。エラーは、- Is Errorや- Error IDの特別なレジスタで処理されます。 エラーハンドリング を参照してください。- 以下は、コマンド送信時のパラメータの動作を示す1例です。 - 重要 - このコマンドは、すべてのパラメータを保存します。すべてのパラメータを正確な値に初期化することが重要です。 
 
- 画像取得可能(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)
- マルチフィーディングのレシピのみ は、画像を取得する度に、 部品の準備トリガー と 部品ピックトリガー によりリクエストされた特別なタイプの部品数です。もしこの部品数が画像取得中に見つけられない場合は、この部品数が見つかるまで、 部品ピックトリガー か、または 部品準備トリガー を再実行(振動+画像取得)します。 - 部品数については、 マルチフィーディングの自動運転 にあるよくあるシナリオをお読みください。 
 
- N が1、2、3、4、5、または6の場合のモデル N の数量。
- マルチモデルレシピレシピのみ は、画像を取得する度に、 部品の準備トリガー と 部品ピックトリガー によりリクエストされた特別なタイプの部品数です。もしこの部品数が画像取得中に見つけられない場合は、この部品数が見つかるまで、 部品ピックトリガー か、または 部品の準備トリガー を再実行(振動+画像取得)します。 - 部品数については、 マルチモデル自動製造 にあるよくあるシナリオをお読みください。 
 
自動運転のアウトプット(Production Outputs)
- 自動運転開始完了(Start Production Done)
- EYE+ は、 自動生産開始トリガー コマンドの処理を終了すると True になります。 自動生産開始トリガー を0に設定すると、False にリセットします。 
 
- 有効レシピ(Active Recipe)
- 自動運転またはパージのために読み込まれた現在のレシピを含んでいます。 
 
- 準備(Is Prepared)
- EYE+ が、画像処理を終了し、 部品ピックトリガー を使用して位置決めの準備ができたときに True を返します。 
 
- 画像解析中(Is Analysis Running)
- 解析中(is_analysis_running) にあるように、 EYE+ がまだ画像を処理している場合には、True を返します。 
 
- 強制的に画像取得完了(Force Take Image Done)
- EYE+ が、 強制的に画像取得トリガー コマンドの処理を終了したときに True となります。 強制的に画像取得トリガー トリガーを0に設定すると、 False にリセットします。 
 
- 部品を準備(Parts Prepared)
- 部品ピックトリガー を使用して取得可能な一般的部品数です。 
 
- 複数の部品 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> X は、この部品の X 座標 
- ポーズ <n> Y は、この部品の Y 座標 
- ポーズ <n> RZ は、この部品の RZ 角度 
- ポーズ <n> タイプは、部品のタイプ( マルチフィーディング のレシピで使用) 
- ポーズ <n> モデルは、部品のモデル( マルチモデル のレシピで使用) 
 - さらに、有効なエントリーの数は、常に - 有効なエントリー数レジスタに設定しています。- 注釈 - ポーズ <n> モデルは、Producing assembly の別のグループにあります。 Producing Assembly を参照してください。 
 
- パラメータ保存完了(Save Parameters Done)
- EYE+ が パラメータ保存トリガー コマンドの処理を終えたときに True となります。 パラメータ保存トリガー を0に設定すると、False にリセットします。 
 
- 画像取得可能(Can Take Image)
- 画像取得可能 パラメータをリードバックします。 
 
- 送信後の画像(Image After Send)
- 送信後の画像 パラメータをリードバックします。 
 
- コマンドタイムアウト(Command Timeout)
- コマンドタイムアウト パラメータをリードバックします。 
 
- 部品数(Part Quantity)
- 部品数 パラメータをリードバックます。 
 
- 複数の部品数 AとBとCとD(Multi Part Quantity A, B, C, D)
- 部品 A/B/C/D の数量 パラメータをリードバックします。 
 
- モデル N の数量リードバック、ここで N は1、2、3、4、5、または6です。
- モデル数 パラメータの読み取り値です。 
 
パージの機能
パージ入力
自動運転機能に加えて、EtherNet/IP インターフェースは、オプションのアジリルパージシステムを完全に制御するためのすべてのコマンドにアクセスでき、自動運転の切り替えが容易になります。このアクセサリオプションの活用方法については、 パージプレート(Purge plate) および パージフル(Purge full) を参照してください。
パージシステム専用のコマンドがいくつかあります。
- パージ開始トリガー(Start Purge Trigger)
- プラットフォームをパージするためにレシピを開始してください。固有のレシピ ID を - レシピ IDレジスタに設定する必要があります。一旦パージが開始されると、- パージの開始完了と- システム状態のレジスタにそのことが反映されます。エラーは、- Is Errorと- Error IDの特別なレジスタを使用して処理されます。 エラーのハンドリング を参照してください。- レシピ 42 がプラットフォームのパージを開始する時の例は、下の通りです。 
 
- パージプレートトリガー(Purge Plate Trigger)
- プレートのみのパージシーケンスを実行してください。このシーケンスでは、パージフラップを開き、対応する方向にプラットフォームの振動を実行し、最後にパージフラップを閉じます。振動の継続時間は - パージの持続時間レジスタで任意に設定できます。- EYE+ がパージの実行を終了すると、 - Purge Plate Doneレジスタが1に設定されます。- このコマンドを使用するために、システムをパージモードにしてください。 パージの開始トリガー を参照してください。 
 
- パージフルトリガー(Purge Full Trigger)
- プレートとホッパーの両方でパージシーケンスを実行してください。このシーケンスでは、パージフラップを開き、対応する方向にプラットフォームの振動を走らせ、ホッパーをトリガーし、最後にパージフラップを閉じます。振動の時間は - パージの持続時間レジスタで設定してください。- EYE+ がパージの実行を終了すると、 - Purge Full Doneレジスタが1に設定されます。- このコマンドを使用するために、システムをパージモードにしてください。 パージの開始トリガー を参照してください。 
 
- パージの持続時間(Purge Duration)
- プレートとホッパーを振動させる時間を ms 単位で指定します。 0 から 30000ms の間でなければなりません。持続時間が 0 に設定された場合、 高度なパージ がトリガーされます。 - 高度なパージがトリガーされると、パージの持続時間はプラットフォーム上のパーツ数や定義されたパージ振動の強度に依存します。全てのパーツがなくなるとパージは停止します。もしプラットフォームが30秒後にパージされない場合は、特定のエラーがトリガーされます。 
 
パージ出力(Purge Outputs)
- パージプレート完了(Purge Plate Done)
EYE+ が パージプレートトリガー コマンドの処理を終えたときに True となります。 パージプレートトリガー を0に設定するると 、False にリセットします。
ハンドアイ機能
4つのキャリブレーションポイントを使用して、ハンドアイキャリブレーションを実行するコマンドフローは、こちらの シナリオ に記述しています。
ハンドアイ入力
- ハンドアイキャリブレーションの開始トリガー
レシピの1つとその関連部品を使用して、 hand-eye calibration を開始してください。固有のレシピ ID は、
レシピ IDレジスタに設定してください。 hand-eye calibration プロセスを一旦開始すると、ハンドアイキャリブレーションを開始が完了レジスタと同様にシステム状態に反映されます。エラーは、Is ErrorとError IDの特別なレジスタを使用して処理されます。 エラーハンドリング を参照してください。レシピ 42 を使って、 hand-eye calibration を開始する例は、次の通りです。

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

- キャリブレーションポイント取得トリガー
キャリブレーションポイントインデックスに記録されたロボット座標を返します。返された座標は、 Pose 1 - X と Pose 1 - Y で読み取ることができます。このコマンドを使用するには、システムを hand-eye calibration モードにしてください。 ハンドアイキャリブレーショントリガー を参照してください。

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

- キャリブレーションポイントインデックス
キャリブレーションポイントのインデックス。完全なキャリブレーションポイントは、ロボット位置と対応するパーツ位置で構成されています。ハンドアイの
キャリブレーショントリガーコマンドを実行する前に、合計4つのキャリブレーションポイント(インデックス1から4)を記録する必要がある。
- X 座標
キャリブレーションポイントの設置トリガーを使用して記録されているロボットの位置の X 座標。
- Y 座標
キャリブレーションポイントの設定トリガーを使用して記録されているロボットの位置の Y 座標。
- キャリブレーショントリガー
登録されているキャリブレーションポイントから hand-eye calibration マトリックスを算出してください。
キャリブレーショントリガーコマンドを呼び出す前に、キャリブレーションポイントの設定トリガーとキャリブレーション画像の取得トリガーコマンドで、4つの完全なキャリブレーションポイントを登録しておく必要があります。キャリブレーションの精度は、 キャリブレーション精度 に返されます。
- キャリブレーションのテストトリガー
このコマンドは、現在算出した hand-eye calibration をテストするために使用されます。
有効なエントリー数で検出された部品数と、 ポーズ の出力のロボット座標を返します。検出されたロボット座標と実際のロボット座標とが一致するかどうかを確認することができます。
- キャリブレーションの保存トリガー
現在の hand-eye calibration を保存してください。このコマンドは、
キャリブレーショントリガーの後に呼び出され、結果が十分であると判断された場合に、データをシステムに保存します。一旦保存されたキャリブレーションは、自動的に自動運転で使用されます。もし、以前に他のキャリブレーションを保存していた場合は、新しいキャリブレーションで上書きされます。注釈
このコマンドの呼び出しを忘れて、 hand-eye calibration 状態を停止してしまうと、保留中のデータがすべて失われてしまいます。
ハンドアイのアウトプット
- ハンドアイキャリブレーションの開始完了(Start Hand-eye Calibration Done)
ハンドアイキャリブレーションを開始トリガー の処理を終了したときに True となります。 ハンドアイキャリブレーションを開始トリガー を0に設定すると、 False にリセットします。
- キャリブレーションポイントの設定完了
EYE+ が、 キャリブレーションポイントの設定トリガー コマンドの処理を終了したときに True となります。トリガー キャリブレーションポイントの設定トリガー を0に設定すると、 False にリセットします。
- キャリブレーションポイントの取得完了
EYE+ が、 キャリブレーションポイント取得トリガー コマンドの処理を終了したときに True となります。 キャリブレーションポイント取得トリガー を0に設定すると、 False にリセットします。
- キャリブレーション画像の取得完了
EYE+ が、 キャリブレーション画像の取得トリガー コマンドの処理を終了したときに True となります。 キャリブレーション画像の取得トリガー を0に設定すると、 False にリセットします。
- キャリブレーション完了
EYE+ が、 キャリブレーショントリガー コマンドの処理を終了したときに True となります。 キャリブレーショントリガー を0に設定すると、 False にリセットします。
- キャリブレーションのテスト完了
EYE+ が 、 キャリブレーションテストトリガー コマンドの処理を終了したときに True となります。 キャリブレーションテストトリガー を0に設定すると、 False にリセットします。
- キャリブレーションの保存完了
EYE+ が、 パラメータ保存トリガー コマンドの処理を終了したときに True となります。 パラメータ保存トリガー を0に設定すると、False にリセットします。
- キャリブレーションの精度
キャリブレーションの精度は、 キャリブレーショントリガー コマンドに起因します。 EYE+ で設定されている測定ユニットに言及されています。 の ロボット から、 EYE+ Studio の測定ユニットを確認できます。
注釈
hand-eye calibration の前にカメラの設定を行っていない場合、キャリブレーション精度はピクセルで表示されます。
追加のエラーコード(Additional error codes)
EYE+ は、必要に応じて特定のエラーコードを EtherNet/IP に返します。これらのエラーコードのリストとその説明を次の通りです。
- 701
- このアセンブリでは、同時進行のコマンドが有効です。