通信設定とサンプルプログラムの使用(内蔵Ethernetインターフェースユニット)
以下では、三菱電機㈱のQシリーズPLC(内蔵Ethernetインターフェースユニット)とMech-Mindビジョンシステムとの標準インターフェース通信をMitsubishi MC方式で接続するための設定方法について説明します。
ハードウェアとソフトウェアの要件
ハードウェア
-
Mitsubishi PLC:内蔵Ethernetインターフェースユニット。
この例では、使用するCPUシリーズはQCPU(Qモード)、機種はQ03UDV、電源モジュールはQ61P、基本ベースユニットはQ33Bです。
-
IPC。
-
USB Type-A - USB Mini-B 変換ケーブル。
-
スイッチおよびLANケーブル。
ハードウェアの接続は下図の通りです。
ソフトウェア
ソフトウェア | 説明 | インストール場所 |
---|---|---|
GX Works2 |
三菱PLCプログラミングソフトウェア |
PLCプログラミングのためのPC |
Mech-VisionとMech-Vizソフトウェア(2.0.0バージョン以上) |
Mech-Mindのソフトウエアの提供 |
IPC |
上記のソフトウェアに加えて、MC Protocol_Q_Simple_Label.GXWのサンプルファイル(各種インターフェースコマンドの機能を実装するために使用)をGX Works2がインストールされたPCにコピーしてください。サンプルファイルは、Mech-VisionとMech-Vizソフトウェアのインストールディレクトリにある Communication Component/Robot_Interface/Mitsubishi MC
フォルダに格納されています。
IPCやPCではファイアウォールソフトを無効にする必要があります。 |
PLCプロジェクトの作成と設定
PLCプロジェクトの作成
-
GX Works2ソフトウェアを起動し、ツールバーの 新規作成 アイコンをクリックします。新規作成の画面で、シリーズを QCPU(Qモード) に、機種を Q03UDV に、プロジェクト種別を シンプルプロジェクト に設定します。その後、 ラベルを使用する にチェックを入れ、プログラム言語を ラダー に設定して OK をクリックします。
-
で、 Connection1 をダブルクリックします。
-
表示される 接続先指定 Connection1 画面で、以下の設定を行います。
-
パソコン側に シリアルUSB を選択し、CPUモードを QCPU(Qモード) に設定し、 シーケンサ直結設定 をクリックします。
-
表示される画面で USB を選択して はい をクリックします。
-
接続先指定 Connection1 の画面で 通信テスト をクリックします。 「Q03UDVCPUとの接続に成功しました」 というメッセージが表示されれば、パソコンのGX Works2ソフトウェアはハードウェアPLCと正常に通信しています。
-
「接続先指定 Connection1」画面の OK をクリックして画面を閉じます。
-
MC通信のパラメータ設定
-
の下の PCパラメータ をダブルクリックします。
-
Qパラメータ設定 画面がポップアップしますので、 内蔵Ethernetポート設定 タブをクリックして以下の設定を行います。
-
IPアドレス設定エリアでは、PLCのIPアドレスを、例えば192.168.1.22に、サブネットマスクを255.255.255.0に、デフォルトルータIPアドレスを192.168.1.0に設定します。PLCのIPアドレスはIPCのIPアドレスと同じネットワークセグメントにある必要があります。
-
交信データコード設定を バイナリコード交信 に設定します。
-
RUN中書込みを許可する(FTPとMCプロトコル) にチェックを入れます。
-
オーペン設定 をクリックして 内蔵Ethernetポート オーペン設定 画面を開きます。
-
-
1行目のパラメータを下図のように設定し、 設定終了 をクリックします。Qパラメータ設定 画面の 設定終了 をクリックして画面を閉じます。
サンプルプログラムファイルのインポート
サンプルプログラムファイルをインポートしてテストするために、新しいPLCプロジェクトを使用する必要があります。既存のPLCプロジェクトに追加する場合は、新しいプロジェクトを作成して、インポートとテストを行ってから、既存のプロジェクトに移転することをお勧めします。 |
-
GX Works2 ソフトウェア画面で、メニューバーの
を順番に選択します。 -
すると、 ライブラリをプロジェクトに取得 の画面が表示されます。ライブラリ一覧を ライブラリ(プロジェクト)を選択 に選択し、 参照 をクリックし、ローカルから
MC Protocol_Q_Simple_Label.gxw
ファイル(事前にIPCからコピーする必要があります)を選択して 開く をクリックします。 -
ライブラリをプロジェクトに取得 の画面で FB一覧更新 をクリックします。FB選択 エリアですべての項目を選択して OK をクリックします。
-
上書きしますか のメッセージが表示され、 はい をクリックします。
-
GX Works2ソフトウェア画面に戻り、メニューバーで
をクリックします。 -
自動割付デバイス設定 画面がポップアップしますので、ワードデバイスのDの割付選択を変更して OK をクリックします。
-
プロンプト画面で はい をクリックし、GX Works2のソフトウェア画面に戻ります。
通信設定とサンプルプログラムのインポート
-
GX Works2ソフトウェア画面で、左側にある「プログラム設定」を展開し、 実行タイプ指定なし の下の MAIN を スキャンプログラム にドラッグして展開し、 プログラム本体 をダブルクリックします。
-
ツールバーの 変換+全コンパイル をクリックします。
-
表示される 注意 画面で はい をクリックします。
-
ツールバーの PC書込 をクリックします。
-
すると、 オンラインデータ操作 画面が表示されます。この画面で 書込 を選択し、 パラメータ+プログラム をクリックして 実行 をクリックします。
-
すると、下図のようなポップアップが表示され、 はい をクリックします。
-
表示される 上書き 画面で 全てはい をクリックします。
-
プログレスバーの下のテキストボックスに PLC書込:終了 と表示されたら、 閉じる をクリックします。
-
下図のようなメッセージが表示され、安全を確認した上で はい をクリックし、 オンラインデータ操作 画面に戻って 閉じる をクリックします。その後、PLC CPUユニットの電源を切り、再起動します。
「ロボット通信設定」を実行
-
Mech-Visionのツールバーで ロボット通信設定 をクリックします。
-
ロボット通信設定 の画面で以下の設定を行います。
-
ロボットを選択 のドロップダウンボックスをクリックし、 適応可能なロボット を選択して ロボット型番を選択 をクリックします。表示される画面で特定のロボット型番を選択して 次へ をクリックします。
-
通信方式 の画面で、 インターフェースサービスのタイプ を 標準インターフェース に、 通信プロトコル を Mitsubishi MC Client に、 通信フレームを を 3E に選択し、 レジスタ(D)のベースアドレス を実際の状況に合わせて設定します(MM_Interface構造体は合計728個のDレジスタを占有し、この例では10000を設定しています)。
-
PLC IP アドレス を特定のPLCのIPアドレスを設定し、その後のポートを特定PLCのポートに設定します。
-
(オプション) ソリューションを開くとインターフェースサービスを自動的に起動 にチェックを入れることを推奨します。
-
適用をクリックします。
-
-
Mech-Visionのメイン画面で、ツールバーのインターフェースサービスが起動されていることを確認します。
通信が成立しているか確認
-
GX Works2ソフトウェア画面で、ツールバーの モニタ開始(全ウィンドウ) をクリックします。
-
下図のようなポップアップが表示されますので、 はい をクリックします。
-
ウォッチ1の画面で、MM_Cameraを追加して展開します。接続が成功すると、Heartbeatのハートビート信号モニタ値が連続的に変化します。
-
また、Mech-Visionのログバーの コンソール タブに Melsec PLCへの接続に成功しました が表示されます。 このようなログメッセージがない場合は、以下の設定が正しいかどうか確認してください。
-
ハードウェアのネットワーク接続が正常に行われているかどうか。
-
Mech-Visionのインターフェースサービスが有効になっているかどうか。
-
PLCプログラムがPLCハードウェアに正常にダウンロードされたかどうか。
-
ビジョンプロジェクトのテスト
以下では、サンプルプログラム機能ブロックを使用して、Mech-Visionプロジェクトを実行してビジョンポイントを取得する方法、Mech-Vizプロジェクトを実行して計画経路を取得する方法について説明します。
事前準備
-
Mech-Visionソリューションを作成します。ソリューションを右クリックして ソリューションを自動的に読み込む にチェックを入れます。すると、ソリューション内のプロジェクトも自動読み込みに設定され、プロジェクト名の前に番号が表示されます。
-
Mech-Vizプロジェクトを作成します。Mech-Vizのリソースパネルでプロジェクトを右クリックし、 自動的に読み込む にチェックを入れます。 テストのためのMech-Vizプロジェクトでは、下図のように、ステップ名が1の「メッセージによって異なる分岐を実行」を使用する必要があります。
Mech-Visionからビジョン目標点を取得
MM_Start_Vis機能ブロックの追加と設定
-
プログラム部品/FB管理 を展開し、MM_Start_Visを MAIN/0行目 にドラッグします。下図のような画面が表示されますので、ここでは初期値を使用し、 OK をクリックします。
-
ツールバーの 横線入力 をクリックすると下図のような画面が表示されます。OK をクリックすると、左バスバーが機能ブロック入力EN1ポートに接続されます。
-
Mech-Visionプロジェクト番号、すなわちMech-Visionプロジェクトリストでプロジェクト名の前にある番号を設定します。Vision_Proj_Numのポート値を 1 に設定し、プロジェクト番号1のMech-Visionプロジェクトを実行することを意味します。
-
Mech-Visionプロジェクトから返される位置姿勢の数を設定します。Req_Pose_Numのポート値を 0 に設定し、Mech-Visionがすべてのビジョン結果を返すことを意味します。
-
ロボットが送信する撮影時の位置姿勢のタイプを設定します。Robot_Pose_Typeのポート値を 0 に設定し、カメラ取り付け方式がEye to Handなので画像撮影時のロボットの位置姿勢を送信する必要がないことを意味します。
-
MM_Start_Vis機能ブロックの入力側「Start_Vision」ポートの同行左端をダブルクリックし、ノーマリーオープン接点を選択し、グローバルラベル Camera_User.Start_Vis を入力して OK をクリックすると、左バスバーとStart_Visionポートが接続します。
MM_Get_VisData機能ブロックの追加と設定
-
MM_Get_VisData を MAIN/0行目 にドラッグすると、 FBインスタンス名入力 の画面が表示されますので、ここでは初期値を使用し、 OK をクリックします。ツールバーの 横線入力 をクリックして OK をクリックすると、左バスバーが機能ブロック入力EN1ポートに接続されます。
-
Mech-Visionプロジェクト番号、すなわちMech-Visionプロジェクトリストでプロジェクト名の前にある番号を設定します。Vision_Proj_Numのポート値を 1 に設定し、プロジェクト番号1の Mech-Visionプロジェクトを実行することを意味します。
-
「MM_Get_VisData」機能ブロックの入力側「Get_VisData」ポートの同行左端をダブルクリックし、ノーマリーオープン接点を選択し、グローバルラベル Camera_User.Get_VisData を入力して OK をクリックすると、「Get_VisData」ポートに接続されます。
PLCへのプログラムの変換、コンパイル、書込み
-
ツールバーの 変換+コンパイル+RUN中書込 アイコンをクリックします。
-
表示される 変換+コンパイル+RUN中書込実行確認 の画面で OK をクリックします。
-
下図のようなポップアップが表示されますので、 はい をクリックします。
-
OK をクリックすると、PLCへの最新プログラムの書込が完了します。
Mech-Visionプロジェクトの実行
-
MAINメインプログラムの画面で、MM_Start_Vis機能ブロックの入力側「Camera_User.Start_Vis」変数を右クリックし、
を選択します。 -
下図のような画面がポップアップするので、それをONに変更し(このウィンドウは開いたまま継続できます)、Mech-Visionプロジェクトをトリガーして実行し、この変数をリセットします。
-
プログラムの空白場所を右クリックし、 ウォッチウィンドウへ登録 を選択し、グローバルラベル MM_Camera.Status_Code を入力します。返された値が 1102 の場合、プロジェクトが正常に実行されたことを意味します。
MM_Camera.Status_Codeの返された値が10XXの場合、 標準インターフェースのステータスコード一覧とトラブルシューティング を参照してトラブルシューティングを行ってください。
Mech-Visionによって計算された位置姿勢の結果を取得
-
MM_Get_VisData機能ブロックの入力側「Camera_User.Get_VisData」変数を選択し、それをONに変更してビジョンポイントを取得してから、この変数をリセットします。
-
ウォッチ 画面で、グローバルラベル MM_Camera.Status_Code を入力します。返された値が 1100 の場合、位置姿勢結果が正常に取得されたことを意味します。グローバルラベル MM_Camera.Target_Pose を入力すると、返された値がビジョンポイントのデータとなります。
MM_Camera.Status_Codeの返された値が10XXの場合、 標準インターフェースのステータスコード一覧とトラブルシューティング を参照してトラブルシューティングを行ってください。
Mech-Vizによって計画された経路を取得
MM_Start_Empty機能ブロックの追加と設定
-
MM_Start_Emptyを MAIN/54行目 にドラッグすると、 FBインスタンス名入力 画面が表示されますので、ここでは初期値を使用して OK をクリックします。ツールバーの 横線入力 をクリックし、左バスバーと機能ブロック入力EN1ポートが接続します。
-
MM_Start_Empty機能ブロックの入力側「Start_Empty」ポートの同行左端をダブルクリックし、ノーマリーオープン接点を選択し、グローバルラベルCamera_User.Start_Emptyを入力して OK をクリックすると、Start_Emptyポートに接続されます。
MM_Start_Viz、MM_Set_Branch、MM_Get_VizData機能ブロックの追加と設定
-
MM_Start_Viz、MM_Set_Branch、MM_Get_VizDataをそれぞれメインプログラムにドラッグすると、 FBインスタンス名入力 の画面が表示されますので、ここでは初期値を使用して OK をクリックします。ツールバーの 横線入力 をクリックし、左バスバーと機能ブロック入力EN1ポートが接続します。
-
ロボットが送信する撮影時の位置姿勢のタイプを設定します。Robot_Pose_Typeのポート値を0に設定し、カメラ取り付け方式がEye to Handなので画像撮影時のロボットの位置姿勢を送信する必要がないことを意味します。
MM_Start_Viz機能ブロックの入力側「EN1」ポートの同行左端をダブルクリックし、グローバルラベル Camera_User.Get_VizData を入力し、ノーマリーオープン接点を選択して OK をクリックすると、左バスバーがEN1ポートに接続されます。
MM_Start_Viz機能ブロックの入力側「Start_Viz」ポートの同行左端をダブルクリックし、グローバルラベル Camera_User.Start_Viz を入力し、ノーマリーオープン接点を選択して OK をクリックすると、左バスバーがStart_Vizポートに接続されます。
-
Mech-Vizプロジェクトの分岐パラメータを設定します。Branch_Name、Branch_Exit_Portのポート値をそれぞれ1に設定すると、Mech-Vizプロジェクトが分岐1に実行したときに出口1から実行を続けることが指定されます。グローバルラベル Camera_User.Set_Branch を入力し、ノーマリーオープン接点を選択して OK をクリックすると、Set_Branchポートに接続されます。
-
取得する経路点の位置姿勢タイプを設定します。Request_Pose_Typeのポート値を1に設定すると、Mech-Vizからのデータが関節角度の形式で返されます。
ここで Request_Pose_Type と関数MM_Start_Vis、MM_Start_Vizの Robot_Pose_Type が、グローバルラベル「MM_Camera」の Pose_Type ラベルに対応していますが、設定する値が異なると同時に有効ではありません。 -
MM_Get_VizData機能ブロックの入力側「EN1」ポートの同行左端をダブルクリックし、グローバルラベル Camera_User.Start_Viz を入力し、ノーマリーオープン接点を選択して OK をクリックすると、左バスバーがEN1ポートに接続されます。
-
MM_Get_VizData機能ブロックの入力側「Get_VizData」ポートの同行左端をダブルクリックし、グローバルラベル Camera_User.Get_VizData を入力し、ノーマリーオープン接点を選択して OK をクリックすると、左バスバーがGet_VizDataポートに接続されます。
PLCへのプログラムの変換、コンパイル、書込み
-
ツールバーの 変換+コンパイル+RUN中書込 アイコンをクリックします。
-
表示される 変換+コンパイル+RUN中書込実行確認 の画面で OK をクリックします。
-
下図のようなポップアップが表示されますので、 はい をクリックします。
-
OK をクリックすると、PLCへの最新プログラムの書込が完了します。
Mech-Vizプロジェクトの実行
-
MAINメインプログラムの画面で、MM_Start_Empty機能ブロックの入力側「Camera_User.Start_Empty」ポートを右クリックし、
を選択します。それをONに変更し、前回取得したビジョン結果がクリアされたら、この変数をリセットします。ウォッチ 画面で、グローバルラベル「MM_Camera.Status_Code」を入力すると、3103 が返され、グローバルラベル「Camera_User.Target Pose、Camera_User.Target Label、Camera_User.Target Tool ID」の変数値がクリアされます。
-
MM_Start_Viz機能ブロック入力側の「Camera_User.Start_Viz」変数を選択してONに変更し、Mech-Vizプロジェクトを実行してからこの変数をリセットします。
-
ウォッチ 画面で、グローバルラベル「MM_Camera.Status_Code」を入力します。返された値が 2103 の場合、プロジェクトが正常に実行されたことを意味します。
MM_Camera.Status_Codeの返された値が20XXの場合、標準インターフェースのステータスコード一覧とトラブルシューティング を参照してトラブルシューティングを行ってください。
Mech-Vizの分岐出口を設定
-
MM_Set_Branch機能ブロック入力側の「Camera_User.Set_Branch」変数を選択してONに変更し、Mech-Vizの分岐を選択してからこの変数をリセットします。
-
ウォッチ 画面で、グローバルラベル「MM_Camera.Status_Code」を入力します。返された値が 2105 の場合、分岐が正常に設定されたことを意味します。
MM_Camera.Status_Codeの返された値が20XXの場合、標準インターフェースのステータスコード一覧とトラブルシューティング を参照してトラブルシューティングを行ってください。
Mech-Vizによって計画された経路を取得
-
MM_Get_VizData機能ブロック入力側の「Camera_User.Get_VizData」変数を選択してONに変更し、Mech-Vizの計画経路を取得してからこの変数をリセットします。
-
ウォッチ 画面で、グローバルラベル「MM_Camera.Status_Code」を入力します。返された値が 2100 の場合、計画された経路が正常に取得されたことを意味します。グローバルラベル MM_Camera.Target_Pose を入力すると、経路点の関節角度データが返されます。
MM_Camera.Status_Codeの返された値が20XXの場合、標準インターフェースのステータスコード一覧とトラブルシューティング を参照してトラブルシューティングを行ってください。