警告
現在、このドキュメントは古いバージョンをご覧いただいています。 最新の情報をご希望の場合は、下記をご参照してください 5.1 .コマンドの原則
EtherCATモジュールの全てのコマンドは同じ原理に従っています。これらのコマンドは、末尾が Trigger
である名前で識別できます。コマンドを送信するには、下の方法で行ってください。
トリガーをTrueに設定する前に、必要なパラメータを設定してください。
コマンドトリガーをTrueに設定してください。
<command> Done
フラグが True になるのを待ってください。コマンドトリガーをFalseにリセットしてください。
<command> Done
フラグが False にリセットされるのを待ってください。Is Error
レジスターにエラーがないかを確認し、エラーがある場合は、必要に応じて処理してください。エラーがなければ、対応する出力(複数)を使用できます。
これを図で表すと次のようになります。
注釈
同時に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
システム移行
0b0010_0000_0000
EYE+ は、
Stop States
が変わったとき(例えば、数値が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) に定義されています。有効なエラーをクリアする方法は簡単で、次のようになります。
基本出力
- システム状態(System State)
現在の EYE+ の状態を確認するためには、 状態停止 には、すべての状態が記載されているので、参照してください。
- エラークリア完了(Clear Error Done)
EYE+ が Clear Error Trigger コマンドの処理を終了したときに True となります。 Clear Error Trigger トリガーを0に設定すると、 False にリセットします。
- エラー(Is Error)
出力された Error ID にエラーが含まれている場合は True、含まれていない場合は False となります。エラーをクリアすると、このレジスタを False にリセットします。
- エラーID(Error ID)
Clear Error Trigger を参照してください。エラーをクリアすると、このレジスタの数値を0にリセットします。
自動運転の機能
自動運転インプット(Production Inputs)
- 自動運転開始トリガー(Start Production Trigger)
自動運転中にレシピを開始するためには、
Recipe ID
レジスタに固有のレシピIDを設定しなければなりません。自動生産が開始されると、Start Production Done
やSystem State
レジスタに反映されます。エラーは、Is Error
やError ID
の特別なレジスタで処理されます。 エラーハンドリング を参照してください。レシピ
42
が自動運転を開始する時の例は、下の通りです。
- 部品ピックトリガー(Get Part Trigger)
1つまたは複数の部品を要求します。
Part Quantity
、Multi Part Quantity A
、Multi Part B Quantity
のパラメータのいずれかの値を変更することで、返される部品数を変更することができます。初期設定では,パラメータPart Quantity
の値は1に設定しています。このコマンドの詳しい説明は、 get_part を参照してください。下図は、1つの部品をリクエストする例です(初期設定値)。
注釈
簡単なシナリオは 部品(ワーク)をピック(Get part) で説明しています。
- 部品準備トリガー(Prepare Part Trigger)
準備された部品は、 Get Part Trigger レジスターを使って後で取り出すことができます。このコマンドは Get Part Trigger と同じ動作をしますが、部品の座標を送信しないことと、タイムアウトパラメータを考慮しないことが異なります( Command Timeout 参照)。
Part Quantity
、Multi Part Quantity A
、Multi Part B Quantity
のパラメータのいずれかを変更することで、準備する部品数を変更することができます。初期設定では、Part Quantity
パラメータは1に設定されています。このコマンドの詳細については、 prepare_part を参照してください。リクエストした部品の準備ができると、
Is Prepared
フラグが1になります。下図は、部品の準備の例です。
注釈
簡単なシナリオに関しては、 部品を準備(Prepare part) で説明しています。
- 強制的に画像取得トリガー(Force Take Image Trigger)
Force Take Image Trigger
コマンドは、できるだけ早く画像を取得するように EYE+ に強制します。特に prepare_part や get_part と組み合わせて使用します。
Force Take Image Trigger
が0から1に変わるたびに、 EYE+ は新しい画像を取得し、解析を行います。このコマンドの詳細については、 force_take_image を参照してください。下図は、このフラグを設定する例です。
注釈
簡単なシナリオは、 強制的に画像を取得(Force take image) に説明しています。
- 中断クリア(Clear Poses)
Clear Poses
レジスタは、中断出力(Pose <n>
)をクリアにして、中断のリストを空にすることができます。これは、 Get Part Triggers の2つが連続している時に役立ちます。
自動運転パラメータ(Production Parameters)
自動運転中は、要求に応じて、特定のパラメータを微調整することができます。以下のリストは、どのパラメータが利用可能かを示しています。
- パラメータ保存トリガー(Save Parameters Trigger)
自動運転パラメータ(Production Parameters) リスト上のパラメータは、この特定のコマンドを使って保存してください。 EYE+ は、
Save Parameters Done
レジスタを使用して、コマンドの完了を報告します。このコマンドは、 自動運転パラメータ(Production Parameters) リスト上のすべてのパラメータを保存します。すべてのパラメータを適切な初期値で設定することが重要です。エラーは、Is Error
やError ID
の特別なレジスタで処理されます。 エラーハンドリング を参照してください。1つのパラメータを保存する例は、次の通りです。前述のように、すべてのパラメータを保存するため、パラメータを適切な初期値で設定することが重要です!
- 画像取得可能(Can Take Image)
画像取得は初期設定では有効です。必要に応じて、このパラメータを False に設定して、画像取得を無効にすることができます。このコマンドがどのような場合に有効かについては、 画像取得可能(Can take image) を参照してください。
- ピック後の強制画像(Image After Send)
部品(ワーク)をピックした後に、強制的に画像を取得します。 部品ピックトリガー や 部品準備トリガー コマンドを呼び出すたびに、システムは、自動的に画像を取得します。もし何らかの外的トラブルよって部品が動いているかもしれないと思った場合、既存の(メモリに保存済みの)良い候補の座標値を修正するために、この画像を使用します。
詳しくは、 ピック後の強制画像(Image After Send) をご覧ください。
- コマンドタイムアウト(Command Timeout)
これは 部品ピックトリガー コマンドを呼び出す際のタイムアウト(秒)です。このタイムアウト時間内に部品が見つからなかった場合は、エラーが返されます。
- 部品数(Part Quantity)
このパラメータは、 EYE+ に複数の部品を同時に探すように指示するために使用します。 EYE+ が写真を撮るたびに、画像上の少なくとも<n>個の部品を探します。もしそれらの部品が見つからなければ、座標は送信されず、振動を開始し、それらの<n>個の部品を得るまで新しい画像を取得します。
- 複数の部品数 AとB(Multi Part Quantity A, B)
デュアルフィーディングのレシピのみ は、画像を取得する度に、 Prepare Part Trigger と Get Part Trigger によりリクエストされた特別なタイプの部品数です。もしこの部品数が画像取得中に見つけられない場合は、この部品数が見つかるまで、 Get Part Trigger かまたは :ref:`Prepare Part Trigger <ecs_prepare_part_trigger>`が再実行します。
部品数については、 Dual Feeding production にあるよくあるシナリオをお読みください。
自動運転のアウトプット(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 となります。 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つの異なるパラメータで構成されています。
ポーズ <n> X は、この部品のX 座標
ポーズ <n> Y は、この部分のY 座標
ポーズ <n> RZ は、この部品のRZ 角度
ポーズ <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インターフェイスでは、オプションのAsyril パージシステムを完全に制御するためのすべてのコマンドにアクセスでき、自動運転の切り替えが容易になります。このオプションの活用方法については、 パージプレート(Purge plate) および パージフル(Purge full) を参照してください。
パージシステム専用のコマンドがいくつかあります。
- パージ開始トリガー(Start Purge Trigger)
プラットフォームをパージするためのレシピを開始するためには、
Recipe ID
レジスタに固有のレシピIDを設定してください。パージが開始されると、Start Purge Done
やSystem State
レジスタがこれを反映します。エラーは、Is Error
やError ID
の特別なレジスタで処理されます。 エラーハンドリング を参照してください。レシピ 42 がプラットフォームのパージを開始する時の例は、下の通りです。
- パージプレートトリガー(Purge Plate Trigger)
プレートのみのパージシーケンスを実行してください。このシーケンスでは、パージフラップを開き、対応する方向にプラットフォームの振動を実行し、最後にパージフラップを閉じます。振動の継続時間は
Purge Duration
レジスタで任意に設定できます。EYE+ がパージの実行を終了すると、
Purge Plate Done
レジスタが1に設定されます。このコマンドを使用するには、システムがパージモードにしてください。 パージ開始トリガー を参照してください。
- パージフルトリガー(Purge Full Trigger)
プレートとホッパーの両方でパージシーケンスを実行してください。このシーケンスでは、パージフラップを開き、対応する方向にプラットフォームの振動を走らせ、ホッパーをトリガーし、最後にパージフラップを閉じます。振動の時間は
Purge Duration
レジスタで設定してください。EYE+ がパージの実行を終了すると、
Purge Full Done
レジスタが1に設定されます。このコマンドを使用するには、システムがパージモードにしてください。 パージ開始トリガー を参照してください。
- パージの持続時間(Purge Duration)
プレートとホッパーを振動させる時間を ms 単位で指定します。
Purge Plate Trigger
コマンドと組み合わせて使用する場合、この値を0に設定していると、レシピにある対応する値が代わりに使用されます。1~30000msの間で設定してください。
パージ出力(Purge Outputs)
- パージプレート完了(Purge Plate Done)
EYE+ が パージプレートトリガー コマンドの処理を終えたときに True となります。 パージプレート画像トリガー を0に設定するると 、False にリセットします。
追加のエラーコード(Additional error codes)
EYE+ は、必要に応じて特定のエラーコードをEtherCATに返します。これらのエラーコードのリストとその説明を以下に示します。
- 701
同時進行のコマンドがPDOで有効