コマンド説明
Mech-Visionプロジェクトを実行
このコマンドは、Mech-Vizを使用せずMech-Visionを使用する場合に使用します。このコマンドを実行すると、Mech-Visionプロジェクトが起動され、カメラ撮影とビジョン処理による認識が行われます。
パラメータの説明
入力パラメータ:
-
Vision_Proj_Num:Mech-Visionプロジェクト番号は、Mech-Visionプロジェクトリストで確認できます。プロジェクト前の数字はプロジェクト番号を表します。
-
Req_Pose_Num:Mech-Visionから出力されたビジョンポイントの数を設定します。値の範囲は0~20であり、値を0に設定すると、すべてのポイントが返されます。
-
Robot_Pose_Type:ロボットの位置姿勢タイプで、ロボット実機の位置姿勢をMech-Visionに送信する形式を指定します。値の範囲は0~3です。
-
Camera_User.Robot_Pose_JPS:ロボットの現在の関節角度です。データ型は1次元の配列Array[0..5] of Realとなります。
-
Camera_User.Robot_Pose_Flange:ロボットの現在のフランジ位置姿勢です。データ型は1次元の配列Array[0..5] of Realとなります。
Robot_Pose_Type、Camera_User.Robot_Pose_JPSおよびCamera_User.Robot_Pose_Flangeのパラメータ値と説明は以下の通りです。
Robot_Pose_Type | Camera_User.Robot_Pose_JPS | Camera_User.Robot_Pose_Flange | 詳細 | 適用シーン |
---|---|---|---|---|
0 |
0, 0, 0, 0, 0, 0 |
0, 0, 0, 0, 0, 0 |
Mech-Visionにロボットの位置姿勢を送信する必要がありません |
カメラがEye to Hand方式で取り付けられている場合。Mech-Visionプロジェクトで「経路計画」ステップを使用する場合、経路計画の開始位置は、経路計画ツールで設定した初期位置です。 |
1 |
ロボットの現在の関節角度 |
ロボットの現在のフランジ位置姿勢 |
ロボットの現在の関節角度とフランジ位置姿勢をMech-Visionに送信する必要があります |
カメラがEye in Hand方式で取り付けられている場合、直行ロボット以外のほとんどのロボットで利用可能です。 |
2 |
0, 0, 0, 0, 0, 0 |
ロボットの現在のフランジ位置姿勢 |
ロボットの現在のフランジ位置姿勢をMech-Visionに送信する必要があります |
カメラがEye in Hand方式で取り付けられている場合。ロボットは関節角度のデータがなく、フランジ位置姿勢データのみがあります(直行ロボットなど)。 |
3 |
経路計画の開始位置におけるロボットの関節角度 |
0, 0, 0, 0, 0, 0 |
経路計画の開始位置におけるロボットの関節角度をMech-Visionに送信する必要があります |
カメラがEye to Hand方式で取り付けられている場合。Mech-Visionプロジェクトで「経路計画」ステップを使用し、ロボット側から経路計画の開始位置を設定する必要があります。 |
-
Start_Vision:Mech-Visionプロジェクトを実行します。正常立ち上がり時は有効になります。
グローバルラベルMM_Cameraの返されたデータ:
-
Status_Code:コマンドが正常に実行された場合、 1102 のステータスコードが返されます。エラーが発生した場合、エラーを表すエラーコードが返されます。
サンプル
Camera_User.Start_Visラベルが立ち上がると、PLCはMech-Visionプロジェクト1をトリガーして実行し、Mech-Visionプロジェクト1からビジョン結果が返されます。また、ロボットの現在の関節角度とフランジ位置姿勢がMech-Visionに送信されます。
ビジョン目標点を取得
101コマンド——Mech-Visionプロジェクトを実行 の後に使用されます。このコマンドは、Mech-Visionから取得したビジョンポイントを自動的にビジョン目標点に変換するために使用されます。
以下に、ビジョンポイントに含まれる位置姿勢をロボットTCPに変換する処理を示します。
-
ビジョンポイントに含まれる位置姿勢をX軸を中心に180°回転させます。
-
ロボット型番の基準座標系の定義によって、ロボット架台の高さが含まれているかどうかを判断し、それに応じて垂直方向のオフセットを増やします。
パラメータ説明
入力パラメータ:
-
Vision_Proj_Num:Mech-Visionプロジェクト番号は、Mech-Visionプロジェクトリストで確認できます。プロジェクト前の数字はプロジェクト番号を表します。
-
Get_VisData:ビジョン目標点の取得をトリガーします。正常立ち上がり時は有効になります。
グローバルラベルMM_Cameraの返されたデータ:
-
Status_Code:コマンドが正常に実行された場合、 1100 のステータスコードが返されます。エラーが発生した場合、エラーを表すエラーコードが返されます。
-
Status_of_Pose_Sent:1は書き込まれた位置姿勢データが新しいことを意味します。PLCが位置姿勢データを読み込んだ後にMM_Empty_Targetを再起動し、このレジスタを0に設定してください。
-
Number_of_Pose_Sent:取得されたビジョン目標点の数で、値の範囲は1~20です。
-
Target_Pose:ビジョン目標点のTCPです。
-
Target_Label:ビジョン目標点のラベルです。
サンプル
このサンプルでは、Camera_User.Get_VisDataラベルが立ち上がると、Mech-Visionプロジェクト1のビジョン目標点が取得されます。
Mech-Visionのパラメータレシピを切り替える
このコマンドは、Mech-Visionプロジェクトに使用されるパラメータレシピを切り替えるために使用されます。 101コマンド——Mech-Visionプロジェクトを実行 を実行する前に、このコマンドを呼び出す必要があります。
パラメータ説明
入力パラメータ:
-
Vision_Proj_Num:Mech-Visionプロジェクト番号は、Mech-Visionプロジェクトリストで確認できます。プロジェクト前の数字はプロジェクト番号を表します。
-
Vision_Recipe_Num:Mech-Visionプロジェクトに使用されるレシピ番号です。
-
Switch_Recipe:パラメータレシピの切り替えを行います。正常立ち上がり時は有効になります。
グローバルラベルMM_Cameraの返されたデータ:
-
Status_Code:コマンドが正常に実行された場合、 1107 のステータスコードが返されます。エラーが発生した場合、エラーを表すエラーコードが返されます。
サンプル
このサンプルでは、Camera_User.Switch_Recipeラベルが立ち上がると、Mech-Visionプロジェクト1のレシピがレシピ2に切り替えられます。
Mech-Visionの「経路計画」ステップの結果を取得
101コマンド——Mech-Visionプロジェクトを実行 を呼び出した後、このコマンドを使用してMech-Visionの「経路計画」ステップから出力された衝突のない把持経路を取得します。
このコマンドを使用する時、Mech-Visionの「出力」ステップの ポートタイプ を「事前定義済み(ロボット経路)」に設定する必要があります。
このコマンドを呼び出す前に、 101コマンド——Mech-Visionプロジェクトを実行 の Req_Pose_Num を必ず0に設定して呼び出す回数を減らしてください。101コマンド——Mech-Visionプロジェクトを実行 の Req_Pose_Num を1に設定すると、このコマンドの呼び出しごとに1つの経路点のみが返され、このコマンドを複数回呼び出した場合のみすべての経路点が返されます。 |
パラメータ説明
入力パラメータ:
-
Vision_Proj_Num:Mech-Visionプロジェクト番号は、Mech-Visionプロジェクトリストで確認できます。プロジェクト前の数字はプロジェクト番号を表します。
-
Request_Pose_Type:「経路計画」ステップから返された経路点の位置姿勢タイプを指定するために使用されます。
-
1
:経路点は、ロボットの関節角度(JPs)の形式で返されます。 -
2
:経路点は、ロボットのツール位置姿勢(TCP)の形式で返されます。
-
ここで Request_Pose_Type と関数MM_Start_Vis、MM_Start_Vizの Robot_Pose_Type が、グローバルラベル「MM_Camera」の Pose_Type 変数に対応していますが、三者が設定した値が異なる場合は同時に有効になりません。 |
-
Get_VisData:Mech-Visionの「経路計画」ステップの結果を取得します。正常立ち上がり時は有効になります。
グローバルラベルMM_Cameraの返されたデータ:
-
Status_Code:コマンドが正常に実行された場合、1103のステータスコードが返されます。エラーが発生した場合、エラーを表すエラーコードが返されます。
-
Status_of_Pose_Sent:1は書き込まれた位置姿勢データが新しいことを意味します。PLCが位置姿勢データを読み込んだ後にMM_Empty_Targetを再起動し、このレジスタを0に設定してください。
-
Number_of_Pose_Sent:Mech-Visionの「経路計画」ステップによって出力された経路点の数で、値の範囲は1~20です。
-
Index_of_Vision_Picking_Point:「ビジョン処理による移動」の経路点が経路全体における位置です。例えば、「移動_1->移動_2->ビジョン処理による移動->移動_3」の経路において、「ビジョン処理による移動」ステップの位置は3です。
-
Target_Pose:経路点の位置姿勢です。位置姿勢のタイプはRequest_Pose_Typeによって異なります。
-
Target_Label:経路点のラベルです。
-
Speed_Percentage:経路計画設定ツールで設定された速度値です。
サンプル
このサンプルでは、Camera_User.Get_VisDataが立ち上がると、Mech-Visionプロジェクト1から返された動作経路が取得されます。経路点の位置姿勢タイプがJPsとなります。
Mech-Vizプロジェクトを実行
このコマンドは、Mech-VisionとMech-Vizの両方を使用する場合に使われます。Mech-Vizプロジェクトを実行し、対応するMech-Visionプロジェクトを呼び出し、動作経路を計画するために使用されます。
パラメータ説明
入力パラメータ:
-
Robot_Pose_Type:ロボットの位置姿勢タイプで、ロボット実機の位置姿勢をMech-Vizに送信する形式を指定します。範囲は0~2です。
-
Camera_User.Robot_Pose_JPS:ロボットの現在の関節角度です。データ型は1次元の配列Array[0..5] of Realとなります。
-
Camera_User.Robot_Pose_Flange:ロボットの現在のフランジ位置姿勢です。データ型は1次元の配列Array[0..5] of Realとなります。
Robot_Pose_Type、Camera_User.Robot_Pose_JPSおよびCamera_User.Robot_Pose_Flangeのパラメータ値と説明は以下の通りです。
Robot_Pose_Type | Camera_User.Robot_Pose_JPS | Camera_User.Robot_Pose_Flange | 詳細 | 適用シーン |
---|---|---|---|---|
0 |
0, 0, 0, 0, 0, 0 |
0, 0, 0, 0, 0, 0 |
ロボットの位置姿勢をMech-Vizに送信する必要がありません。Mech-Vizでの仮想ロボットは初期位置姿勢(JPs = [0, 0, 0, 0, 0, 0])から最初の経路点に移動します。 |
カメラがEye to Hand方式で取り付けられている場合、この設定は推奨しません。 |
1 |
ロボットの現在の関節角度 |
ロボットの現在のフランジ位置姿勢 |
ロボットの現在の関節角度とフランジ位置姿勢をMech-Vizに送信する必要があります。Mech-Vizでの仮想ロボットは受信された関節角度から最初の経路点に移動します。 |
カメラがEye in Hand方式で取り付けられている場合、この設定は推奨します。 |
2 |
ロボット側でカスタマイズされた関節角度 |
0, 0, 0, 0, 0, 0 |
ロボットのティーチポイント(現在の関節角度ではない)をMech-Vizに送信する必要があります。これは、ロボットが画像撮影領域の外にいるとき(下図に示す)、Mech-Vizプロジェクトが次回の経路を事前に計画することをトリガーするために使用されます。Mech-Vizでの仮想ロボットは受信されたティーチポイントから最初の経路点に移動します。 |
カメラがEye to Hand方式で取り付けられている場合、この設定は推奨します。 |
カメラがEye to Hand方式で取り付けられている場合、 Robot_Pose_Type を2に設定する理由は次の通りです。 Eye to Hand取り付け方式では、カメラはロボットが画像撮影領域と把持領域に戻る前に撮影できます。これにより、次の把持経路を事前に計画してタクトタイムを短縮できます。 この場合で Robot_Pose_Type を1に設定すると、つまり、ロボットの現在の位置姿勢をMech-Vizの仮想ロボットに送信すると、仮想ロボットとロボット実機の経路が一致しないため予測できない衝突を起こす可能性があります。 仮想ロボットは現在の位置姿勢からMech-Vizで設定された最初の移動ステップの位置姿勢に移動しますが、ロボット実機は上記の位置姿勢に移動する前に別の位置姿勢に移動する可能性があります。 したがって、 Robot_Pose_Type パラメータを2に設定する必要があります。
-
Start_Viz:Mech-Vizプロジェクトの実行をトリガーします。正常立ち上がり時は有効になります。
グローバルラベルMM_Cameraの返されたデータ:
-
Status_Code:コマンドが正常に実行された場合、 2103 のステータスコードが返されます。エラーが発生した場合、エラーを表すエラーコードが返されます。
サンプル
このサンプルでは、Camera_User.Start_Vizラベルが立ち上がると、Mech-Vizプロジェクトが実行され、ロボットの現在の関節角度とフランジ位置姿勢がMech-Vizに送信されます。
Mech-Vizプロジェクトを停止
Mech-Vizプロジェクトの実行を停止します。Mech-Vizプロジェクトがデッドループになっていない場合や、正常に停止できる場合は、このコマンドを使用する必要はありません。
パラメータ説明
入力パラメータ:
-
Stop_Viz:実行しているMech-Vizプロジェクトを停止します。正常立ち上がり時は有効になります。
グローバルラベルMM_Cameraの返されたデータ:
-
Status_Code:コマンドが正常に実行された場合、 2104 のステータスコードが返されます。エラーが発生した場合、エラーを表すエラーコードが返されます。
サンプル
このサンプルでは、Camera_User.Stop_Vizラベルが立ち上がると、Mech-Vizプロジェクトが停止されます。
Mech-Viz分岐を選択
Mech-Vizプロジェクトに「メッセージによって異なる分岐を実行」のステップがある場合、このコマンドはMech-Vizにある「メッセージによって異なる分岐を実行」ステップを指定された出口に沿って実行し続けることを制御します。このコマンドを実行する前に、 コマンド201——Mech-Vizプロジェクを起動 を実行してください。 Mech-Vizが「メッセージによって異なる分岐を実行」ステップまで実行されていく時、このコマンドからその分岐出口が送信されることを待ちます。
パラメータ説明
入力パラメータ:
-
Branch_Name:分岐ステップ番号です。
-
Branch_Exit_Port:分岐の出口番号(正の整数)です。
出口番号は、1から始まる出口のインデックス番号です。例えば、指定された出口が左から右に2番目のポートである場合、番号は2です。 -
Set_Branch:ステップ「メッセージによって異なる分岐を実行」の出口を設定します。正常立ち上がり時は有効になります。
グローバルラベルMM_Cameraの返されたデータ:
-
Status_Code:コマンドが正常に実行された場合、 2105 のステータスコードが返されます。エラーが発生した場合、エラーを表すエラーコードが返されます。
サンプル
このサンプルでは、Camera_User.Set_Branchラベルが立ち上がると、Mech-VizプロジェクトがステップIDが1の分岐ステップに実行したときに出口番号1から実行を続けることを指定します。
移動インデックスを設定
このコマンドは、ステップのインデックスパラメータを設定するために使用されます。インデックスパラメータが付いたステップは「リストによる移動」、「グリッドによる移動」、「カスタマイズのパレットパターン」、「事前計画パレットパターン」などです。通常、連続した、あるいは個別に指定された移動などの操作に使用されます。
このコマンドを実行する前に、 201コマンド——Mech-Vizプロジェクを実行 を実行してください。
パラメータ説明
入力パラメータ:
-
Index_Name:ステップ番号です。
-
Index_Counter:次にこのステップが実行されたときに設定されるべきインデックス値です。このコマンドを送信すると、Mech-Vizの現在のインデックス値がこのパラメータの値から1を引いた値に変更されます。このコマンドで指定したステップにMech-Vizプロジェクトが実行されると、Mech-Vizの 現在のインデックス の値が、このパラメータの値まで1つずつ増加します。
グローバルラベルMM_Cameraの返されたデータ:
-
Status_Code:コマンドが正常に実行された場合、 2106 のステータスコードが返されます。エラーが発生した場合、エラーを表すエラーコードが返されます。
サンプル
このサンプルでは、Camera_User.Set_Indexラベルが立ち上がると、Mech-VizプロジェクトにおけるステップIDが5のステップの現在のインデックス値が4-1=3になります。
Mech-Vizから計画された経路を取得
このコマンドは、Mech-Vizによって計画された経路を取得するために使用されます。
パラメータ説明
入力パラメータ:
-
Request_Pose_Type:取得する経路点の位置姿勢タイプを指定します。
-
1
:経路点は、ロボットの関節角度(JPs)の形式で返されます。 -
2
:経路点は、ロボットのツール位置姿勢(TCP)の形式で返されます。
-
ここで Request_Pose_Type と関数MM_Start_Vis、MM_Start_Vizの Robot_Pose_Type が、グローバルラベル「MM_Camera」の Pose_Type 変数に対応していますが、三者が設定した値が異なる場合は同時に有効になりません。 |
-
Get_VizData:Mech-Vizプロジェクトによって計画された経路を取得します。正常立ち上がり時は有効になります。
グローバルラベルMM_Cameraの返されたデータ:
-
Status_Code:コマンドが正常に実行された場合、 2100 のステータスコードが返されます。エラーが発生した場合、エラーを表すエラーコードが返されます。
-
Status_of_Pose_Sent:1は書き込まれた位置姿勢データが新しいことを意味します。PLCが位置姿勢データを読み込んだ後にMM_Empty_Targetを再起動し、このレジスタを0に設定してください。
-
Number_of_Pose_Sent:Mech-Vizが出力された経路点の数で、範囲は1~20です。
-
Index_of_Vision_Picking_Point:「ビジョン処理による移動」の経路点が経路全体における位置です。例えば、「移動_1->移動_2->ビジョン処理による移動->移動_3」の経路において、「ビジョン処理による移動」ステップの位置は3です。
-
Target_Pose:経路点の位置姿勢です。位置姿勢のタイプはRequest_Pose_Typeによって異なります。
-
Target_Label:経路点のラベルです。
-
Speed_Percentage:移動ステップで設定された速度パラメータのパーセント値。
サンプル
このサンプルでは、Camera_User.Get_VizDataラベルが立ち上がると、Mech-Vizプロジェクトによって計画された動作経路が取得されます。経路点の位置姿勢タイプがTCPとなります。
DO信号リストを取得
このコマンドは、計画されたDOリストを取得するために使用されます。DO信号は、複数のロボットハンドまたは吸盤のパーティションを制御するために使用されます。このコマンドを実行する前に、 コマンド205——計画された経路を取得 を実行してください。
サンプルプロジェクトに基づいてMech-Vizプロジェクトを設定し、プロジェクトに使用される吸盤設定ファイルを設定してください。サンプルプロジェクトは、Mech-VisionとMech-Vizインストールディレクトリにある (Mech-Center/tool/viz_project)の suction_zone となります。
プロジェクトの「DOを設定」のステップパラメータで以下の設定を行います。
-
「受信者」を「標準インターフェース」に設定します。
-
ソースを「ビジョン処理による移動」に選択します。
-
「ビジョン処理による移動」を選択の後のドロップダウンボックスで、DO信号リストが必要な「ビジョン処理による移動」ステップを選択します。
パラメータ説明
入力パラメータ:
-
Get_DoList:DO信号リストの取得を行います。正常立ち上がり時は有効になります。
グローバルラベルMM_Cameraの返されたデータ:
-
Status_Code:コマンドが正常に実行された場合、 2102 のステータスコードが返されます。エラーが発生した場合、エラーを表すエラーコードが返されます。
-
DO_LIST:Mech-Vizは64個のDOポート値が返されます。
サンプル
このサンプルでは、Camera_User.Get_DoListラベルが立ち上がると、Mech-Vizから返されたDOリストがDO配列に保存されます。
Mech-Visionプロジェクトに対象物の寸法を入力
このパラメータはMech-Visionプロジェクトに、対象物の寸法を動的に送信するために使用されます。Mech-Visionプロジェクトを実行する前に、対象物の寸法を確認する必要があります。
Mech-Visionプロジェクトに「対象物の寸法を読み込む」ステップがあり、 パラメータから対象物の寸法を読み込む にチェックを入れる必要があります。
パラメータ説明
入力パラメータ:
-
Vision_Proj_Num:Mech-Visionプロジェクト番号は、Mech-Visionプロジェクトリストで確認できます。プロジェクト前の数字はプロジェクト番号を表します。
-
Camera_User.External_Input_Box_Dimension:Mech-Visionプロジェクトに送信する箱の寸法(長さ、幅、高さ、ミリメートル単位)です。
-
Set_Box_Dimention:Mech-Visionプロジェクトに対象物の寸法を送信します。正常立ち上がり時は有効になります。
グローバルラベルMM_Cameraの返されたデータ:
-
Status_Code:コマンドが正常に実行された場合、 1108 のステータスコードが返されます。エラーが発生した場合、エラーを表すエラーコードが返されます。
サンプル
このサンプルプログラムで、Camera_User.Set_Box_Dimentionラベルが立ち上がると、Mech-Visionプロジェクトの「対象物の寸法を読み込む」ステップの対象物の寸法がExternal_Input_Box_Dimention[0-2]変数の値に設定されます。
ソフトウェアのステータスを取得
このコマンドは、Mech-Vision、Mech-Viz、Mech-Centerの起動状態を取得するために使用されます。現在、このコマンドはMech-Visionプロジェクトの準備ができているかどうかを確認するためにのみ使用できます。
パラメータ説明
入力パラメータ:
-
Get_Status:Mech-Visionプロジェクトが準備できているかどうかをチェックするトリガーします。正常立ち上がり時は有効になります。
グローバルラベルMM_Cameraの返されたデータ:
-
Status_Code:システムのセルフチェックステータスです。 ステータスコードが 1101 になると「Mech-Visionが準備できました」です。他のステータスコードが出てきた場合「Mech-Visionプロジェクトがまだ準備できていません」ということです。
サンプル
このサンプルでは、Camera_User.Get_Statusラベルが立ち上がると、取得されたステータスコードがMM_Camera.Status_Codeに保存されます。
目標データをクリア
このコマンドは、取得されたTarget_Pose、Target_Label、Speed_Percentageデータをクリアするために使用されます。
パラメータ説明
入力パラメータ:
-
Start_Empty:取得された全てのTarget_Pose、Target_LabelとSpeed_Percentageデータを削除します。正常立ち上がり時は有効になります。
グローバルラベルMM_Cameraの返されたデータ:
-
Target_Pose:取得された位置姿勢データです。
-
Target_Label:取得されたラベルです。
-
Speed_Percentage:取得されたゼロでない速度値です。
サンプル
このサンプルでは、Camera_User.Start_Emptyラベルが立ち上がると、取得された全てのTarget_Pose、Target_Label、Speed_Percentageデータがクリアされます。
「通知」ステップのメッセージを取得
Mech-VisionまたはMech-Vizプロジェクトを実行した後、「通知」ステップで設定されたメッセージ(現在は整数のみがサポートされている)を取得します。
Mech-VisionまたはMech-Vizプロジェクトが「通知」ステップまで実行されると、設定されたメッセージはビジョンシステムに1秒間しかキャッシュされないため、このコマンドを使用する場合、メッセージの内容を取得するために呼び出し時間を適切に設定する必要があります。また、このメッセージを使用した後はPLCでこのレジスタデータをクリアする必要があります。 |
パラメータ説明
入力パラメータ:
-
Get_Notify:「通知」ステップのメッセージを取得します。正常立ち上がり時は有効になります。
グローバルラベルの返されたデータ:
-
Notify:整数の「通知」ステップのメッセージ内容です。
サンプル
例えば、「通知」ステップで設定したメッセージが777の場合は、PLCが自動モードでメッセージを取得するサンプルは以下のようになります。
詳細な説明
このサンプルでは、自動モードでD11042が3に設定されると(すなわち、Camera_User.Step_Numが3に設定される)、MM_Camera.Notifyが777に等しくなく、MM_Get_Notify機能が有効になります。変数Camera_User.Get_Notifyが立ち上がると、「通知」ステップで事前に設定されたメッセージが取得されます。 メッセージを正常に取得した場合、MM_Camera.Notifyは777となります。それ以外の場合、MM_Camera.Notifyは777に等しくないため、PLCは3秒後に対応する警告メッセージを表示します。
付録
ステータスコード(エラーコードを含む)の意味
詳細については、 標準インターフェースのステータスコード一覧とトラブルシューティング をご参照ください。