警告
これは、古いバージョンのドキュメントです。 最新の情報をご覧になりたい場合は、次をご覧ください。 5.1 .コマンドの原則
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
移行設定
0b0100_0000_0000
レシピ移行
0b1000_0000_0000
システムバックアップ
0b0001_0000_0000_0000
システム復元
0b0001_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)
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.
自動運転パラメータ(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 単位で指定します。
Purge Plate Trigger
コマンドと組み合わせて使用する場合、この値を0に設定していると、レシピにある対応する値が代わりに使用されます。1~30000msの間で設定してください。
パージ出力(Purge Outputs)
- パージプレート完了(Purge Plate Done)
EYE+ が パージプレートトリガー コマンドの処理を終えたときに True となります。 パージプレートトリガー を0に設定するると 、False にリセットします。
ハンドアイ機能
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 registerStart Hand-eye Calibration Done
, as well as the System State, will reflect this. Error is handled using the special registerIs Error
andError ID
, see Error Handling.Below is an example where the recipe 42 is used for starting a hand-eye calibration:
- キャリプレーションポイントの設定トリガー
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 theCalibrate Trigger
command. TheX Coordinate
andY Coordinate
of the robot can be expressed in your own robot unit. If another point has already been registered at thisCalibration 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.
- キャリブレーションポイント取得トリガー
キャリブレーションポイントインデックス
に記録されたロボット座標を返します。返された座標は、 Pose 1 - X と Pose 1 - Y で読み取ることができます。The system must be in hand-eye calibration mode to use this command, see Start Hand-eye Calibration Trigger.
- キャリブレーション画像の取得トリガー
検出されたオブジェクトの現在のビジョン座標を得るために画像を撮影してください。検出された座標は、
キャリブレーションポイントインデックス
で記録されたロボットの位置とペアリングされます。複数のパーツが検出された場合、最初のパーツがマッチポイントとして使用されます。The system must be in hand-eye calibration mode to use this command, see Start Hand-eye Calibration Trigger.
- キャリブレーションポイントインデックス
キャリブレーションポイントのインデックス。完全なキャリブレーションポイントは、ロボット位置と対応するパーツ位置で構成されています。ハンドアイの
キャリブレーショントリガー
コマンドを実行する前に、合計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
andTake Calibration Image Trigger
commands before calling theCalibrate Trigger
command. The accuracy of the calibration is returned in the Calibration Accuracy.
- キャリブレーションのテストトリガー
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.
ハンドアイのアウトプット
- ハンドアイキャリブレーションの開始完了(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 の測定ユニットを確認できます。
注釈
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+ は、必要に応じて特定のエラーコードを EtherNet/IP に返します。これらのエラーコードのリストとその説明を次の通りです。
- 701
このアセンブリでは、同時進行のコマンドが有効です。