通信設定とサンプルプログラムの使用
本節では、三菱QシリーズPLC(Ethernet内蔵)とMech-Mindソフトウェアシステムとの間でModbus TCP通信を行うためのコマンドについて説明します。
ハードウェアとソフトウェアの要件
ハードウェア
-
PLC:MITSUBISHI QCPU(Q mode)Q03UDV。
-
パワーモジュール:三菱 Q61P、基本ベース:三菱 Q33B。
-
Mech-MindのIPCまたはPC。
-
USB Type-A - USB Mini-B 変換ケーブル。
-
LANケーブル。
ソフトウェア
-
三菱PLCプログラミングソフトウェア:GX Works2。
-
1.7.0バージョン以降のMech-Mindソフトウェアシステム。
-
PLCサンプルプログラムファイル:
-
MODBUS_TCP_Protocol Configuration.tpc(Modbus TCP通信の構築に使用)。
-
MODBUS TCP_Q_Simple_Label.GXW(様々なインターフェースコマンドの実装に使用)。
サンプルファイルは、Mech-Mindソフトウェアシステムのインターフェースパス
Mech-Center/Robot_Interface/Modbus TCP/MITSUBISHI Q serial
フォルダに格納されています。このファイルをコピーし、GX Works2がインストールされているPCに貼り付けます。 -
IPCやPCではファイアウォールソフトを無効にする必要があります。 |
IPCの設定と通信の開始
IPCまたはPCのIPv4アドレスを設定
-
コントロールパネルを開き、 ネットワークの状態とタスクの表示 をクリックします。
-
ネットワークと共有センターの画面で、 アダプターの設定の変更 をクリックします。
-
ネットワーク接続画面で、PLCにネットワーク接続されている イーサネット アダプターをダブルクリックし、表示される イーサネットの状態 画面で プロパティ をクリックします。
-
イーサネットのプロパティ 画面の ネットワーク タブで、 インターネット プロトコル バージョン4(TCP/IPv4) をダブルクリックします。
-
インターネットプロトコルバージョン4(TCP/IPv4)のプロパティ 画面で、固定IPアドレス、サブネットマスク、デフォルトゲートウェイ(PLCと同じネットワークセグメント内にある必要があります)を下図のように設定します。
Mech-Visionで「ロボット通信設定」を実行
-
Mech-Visionのツールバーで ロボット通信設定 をクリックします。
-
ロボットを選択 のドロップダウンボックスをクリックし、 適応可能なロボット を選択して ロボット型番を選択 をクリックします。表示される画面で特定のロボット型番を選択して 次へ をクリックします。
-
通信方式 の画面で以下の設定を行います。
-
インターフェースタイプを 標準インターフェース に設定します。
-
通信プロトコルを Modbus TCP SLAVE に設定します。
-
ホスト(スレーブ)のポート番号を2000に設定します。
-
バイトオーダーをCDABに設定します。
-
スレーブIDを255に設定します。
-
適用 をクリックします。
-
-
Mech-Visionのメイン画面で、ツールバーのインターフェースサービスが起動されていることを確認します。
PLCプロジェクトの作成と設定
PLCプロジェクトの作成
-
GX Works2ソフトウェアを起動し、左側のツールバーの 新規作成 をクリックします。新規作成の画面で、シリーズを QCPU(Qモード) に、機種を Q03UDV に、プロジェクト種別を シンプルプロジェクト に設定します。 ラベルを使用する にチェックを入れ、プログラム言語を ラダー に設定して、 OK をクリックします。
-
で、 Connection1 をダブルクリックします。
-
すると、 接続先指定 Connection1 の画面が表示されます。パソコン側に シリアルUSB を選択し、CPUモードを QCPU(Qモード) に設定し、 シーケンサ直結設定 をクリックします。表示される画面で USB を選択して はい をクリックします。次に、 接続先指定 Connection1 の画面で 通信テスト をクリックします。 「Q03UDVCPUとの接続に成功しました」 というメッセージが表示されれば、パソコンのGX Works2ソフトウェアはハードウェアPLCと正常に通信しています。「接続先指定 Connection1」の画面で OK をクリックしてGX Works2ソフトウェア画面に戻ります。
-
GX Works2ソフトウェア画面で、メニューバーの オンライン をクリックし、 リモート操作 をクリックします。
-
すると、 リモート操作 画面が表示されます。「操作」で stop を選択し、 実行 をクリックして STOP操作を実行しますか? というメッセージが表示され、 はい をクリックします。すると、 STOP操作を完了しました。 というメッセージが表示され、 OK をクリックします。その後、「リモート操作」画面で 閉じる をクリックしてGX Works2のソフトウェア画面に戻ります。
Modbus TCPの通信パラメータを設定
-
で PCパラメータ をダブルクリックします。
-
すると、 Qパラメータ設定 画面で 内蔵EtherNetポート設定 タブに切り替え、IPアドレス設定のエリアでPLCのIPアドレスを産業用PCのIPアドレス(192.168.1.21など)と同じネットワークセグメントにあるように設定し、サブネットマスクを255.255.255.0、デフォルトルータIPアドレスを192.168.1.0に設定します。 オープン設定 をクリックすると、 内蔵EtherNetポートオープン設定 の画面が表示されます。
-
内蔵EtherNetポートオープン設定 画面で、1行目のパラメータを下図のように設定し、 設定終了 をクリックします。その後、 Qパラメータ設定 画面で 設定終了 をクリックしてGX Works2のソフトウェア画面に戻ります。
-
GX Works2 のソフトウェア画面で、メニューバーの ツール で
を選択して、 通信プロトコル支援機能-内蔵EtherNet 画面に入ります。 -
通信プロトコル支援機能-内蔵EtherNet 画面で 開く アイコンをクリックし、ローカルから
MODBUS_TCP_Protocol Configuration.tpc
というModbus TCP通信の設定ファイルを選択して 開く をクリックします。 -
通信プロトコル支援機能-内蔵EtherNet の画面で ユニット書込 のアイコンをクリックします。
-
表示される ユニット書込 画面で 実行 をクリックします。対象メモリには既にプロトコル設定ファイルが存在します。上書きしてもよろしいですか? が表示された場合、 はい をクリックします。
-
対象メモリへの書込みが完了しました が表示された場合、 OK をクリックします。
Mech-Mindサンプルプログラムファイルのインポート
Mech-Mindサンプルプログラムファイルをインポートしてテストするために、新しいPLCプロジェクトを使用する必要があります。既存のPLCプロジェクトに追加する場合は、新しいプロジェクトを作成して、インポートとテストを行ってから、既存のプロジェクトに移転することをお勧めします。 |
-
GX Works2 ソフトウェア画面で、メニューバーの
を順番に選択します。 -
すると、 ライブラリをプロジェクトに取得 の画面が表示されます。ライブラリ一覧を ライブラリ(プロジェクト)を選択 に選択し、 参照 をクリックし、ローカルから
MODBUS TCP_Q_Simple_Label.GXW
ファイルを選択して 開く をクリックします。 -
ライブラリをプロジェクトに取得 の画面で FB一覧更新 をクリックします。FB選択 エリアですべての項目を選択して OK をクリックします。
-
上書きしますか のメッセージが表示され、 はい をクリックします。
-
GX Works2ソフトウェア画面に戻り、メニューバーで
をクリックします。 -
すると、 自動割付デバイス設定 の画面が表示されます。ワードデバイスのDとビットデバイスのMの割付選択を変更して OK をクリックします。
-
プロンプト画面で はい をクリックし、GX Works2のソフトウェア画面に戻ります。
PLCプログラムの構築とダウンロード
-
GX Works2ソフトウェア画面で、左側にある「プログラム設定」を展開し、 実行タイプなし の下の MAIN を スキャンプログラム にドラッグし、それを展開して プログラム本体 をダブルクリックします。
-
プログラム部品/FB管理 を展開し、 MM_MBTCP を MAIN/0行目 にドラッグします。FBインスタンス名入力 の画面が表示されますので、ここでは初期値を使用して OK をクリックします。
-
ツールバーの 横線入力 をクリックすると下図のような画面が表示されます。 OK をクリックすると、左のバスバーが機能ブロック入力EN1ポートに接続されます。
-
ツールバーの 変換+全コンパイル をクリックします。
-
表示される 注意 画面で はい をクリックします。
-
ツールバーの PC書込 をクリックします。
-
すると、 オンラインデータ操作 画面が表示されます。この画面で 書込 を選択し、 パラメータ+プログラム をクリックして 実行 をクリックします。
-
すると、下図のようなポップアップが表示され、 はい をクリックします。
-
表示される 上書き 画面で 全てはい をクリックします。
-
プログレスバーの下のテキストボックスに PLC書込:終了 と表示されたら、 閉じる をクリックします。
-
下図のようなメッセージが表示され、安全を確認した上で はい をクリックし、 オンラインデータ操作 画面に戻って 閉じる をクリックします。その後、PLC CPUユニットの電源を切り、再起動します。
通信が成立しているか確認
-
GX Works2ソフトウェア画面で、ツールバーの モニタ開始(全ウィンドウ) をクリックします。
-
下図のようなポップアップが表示されますので、 はい をクリックします。
-
MAIN/0行目 にあるMM_MBTCP機能ブロックをダブルクリックし、プログラムを423行目までスクロールします。正常に接続したら、ハートビート信号モニタ値が連続的に変化します。
-
Mech-Visionのメイン画面では、正常に接続された場合は、ログバーのConsoleタブに クライアントが接続されています が表示されます。 このようなログがない場合は、以下の設定が正しいかどうか確認してください。
-
ハードウェアのネットワーク接続が正常に行われているかどうか。
-
Mech-Visionのインターフェースサービスが有効になっているかどうか。
-
PLCプログラムがPLCハードウェアに正常にダウンロードされたかどうか。
-
ビジョンプロジェクトのテスト
ここでは、サンプルプログラム機能ブロックを使用して、 Mech-Vision プロジェクトを実行してビジョンポイントを取得する方法、 Mech-Viz プロジェクトを実行して計画した経路を取得する方法について説明します。
事前準備
-
Mech-Visionソリューションを作成します。ソリューションを右クリックして ソリューションを自動的に読み込む にチェックを入れます。すると、ソリューション内のプロジェクトも自動読み込みに設定され、プロジェクト名の前に番号が表示されます。
-
Mech-Vizプロジェクトを作成します。Mech-Vizのリソースパネルでプロジェクトを右クリックし、 自動的に読み込む にチェックを入れます。
テストのためのMech-Vizプロジェクトでは、下図のように、ステップ名が1の「メッセージによって異なる分岐を実行」を使用する必要があります。
Mech-Visionからビジョンポイントを取得
パラメータの設定
-
GX Works2ソフトウェア画面で、 ツールバー の モニタ(書込モード) をクリックします。
-
すると、下図のようなポップアップが表示され、 OK をクリックします。
-
プログラム部品/FB管理 を展開し、MM_Start_Visを MAIN/8行目 にドラッグします。下図にような画面が表示されますので、ここでは初期値を使用し、 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 を MAIN/8行目 にドラッグすると、 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」ポートに接続されます。
-
ツールバーの 変換+コンパイル+RUN中書込 アイコンをクリックします。
-
表示される 変換+コンパイル+RUN中書込実行確認 の画面で OK をクリックします。
-
下図のようなポップアップが表示されますので、 はい をクリックします。
-
OK をクリックすると、PLCへの最新プログラムの書込が完了します。
Mech-Visionプロジェクトの実行
-
MAINメインプログラムの画面で、MM_Start_Vis機能ブロックの入力側「Camera_User.Start_Vis」変数を右クリックし、
を選択します。 -
下図のような画面がポップアップするので、それをONに変更し(このウィンドウは開いたまま継続できます)、Mech-Visionプロジェクトをトリガーして実行し、この変数をリセットします。
-
プログラムの空白場所を右クリックし、 ウォッチウィンドウへ登録 を選択し、グローバルラベル MM_Camera.Status_Code を入力します。返された値が 1102 の場合、プロジェクトが正常に実行されたことを意味します。返された値が10XXの場合、 標準インターフェースのステータスコード一覧とトラブルシューティン を参照して問題を解決してください。
Mech-Visionで計算した位置姿勢の結果を取得
-
MM_Get_VisData機能ブロックの入力側「Camera_User.Get_VisData」変数を選択し、それをONに変更してビジョンポイントを取得してから、この変数をリセットします。
-
ウォッチ 画面で、グローバルラベルMM_Camera.Status_Codeを入力すると、返された値が 1100 になります。返された値が10XXの場合、 標準インターフェースのステータスコード一覧とトラブルシューティング を参照して問題を解決してください。グローバルラベル MM_Camera.Target_Pose を入力すると、返された値がビジョン位置姿勢のデータとなります。
Mech-Vizから計画した経路を取得
パラメータの設定
-
MM_Start_Emptyを MAIN/54行目 にドラッグすると、 FBインスタンス名入力 画面が表示されますので、ここでは初期値を使用して OK をクリックします。ツールバーの 横線入力 をクリックし、左バスバーと機能ブロック入力EN1ポートが接続します。
-
MM_Start_Vis機能ブロックの入力側「Start_Empty」ポートの同行左端をダブルクリックし、ノーマリーオープン接点を選択し、グローバルラベルCamera_User.Start_Emptyを入力して OK をクリックすると、Start_Emptyポートに接続されます。
-
MM_Start_Viz、MM_Set_Branch、MM_Get_VizDataをそれぞれ MAIN/54行目 にドラッグすると、 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ポートに接続されます。
-
ツールバーの 変換+コンパイル+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.Speed Percentage」の変数値がクリアされます。
-
MM_Start_Viz機能ブロック入力側の「Camera_User.Start_Viz」変数を選択してONに変更し、Mech-Vizプロジェクトを実行してからこの変数をリセットします。
-
ウォッチ 画面で、グローバルラベ「MM_Camera.Status_Code」を入力します。返された値が 2103 の場合、プロジェクトが正常に実行されたことを意味します。返された値が20XXの場合、 標準インターフェースのステータスコード一覧とトラブルシューティング を参照して問題を解決してください。
Mech-Vizの分岐出口を選択
-
MM_Set_Branch機能ブロック入力側の「Camera_User.Set_Branch」変数を選択してONに変更し、Mech-Vizの分岐を選択してからこの変数をリセットします。
-
ウォッチ 画面で、グローバルラベル「MM_Camera.Status_Code」を入力します。返された値が 2105 の場合、分岐が正常に設定されたことを意味します。返された値が20XXの場合、 標準インターフェースのステータスコード一覧とトラブルシューティング を参照して問題を解決してください。
Mech-Vizから計画した経路を取得
-
MM_Get_VizData機能ブロック入力側の「Camera_User.Get_VizData」変数を選択してONに変更し、Mech-Vizの計画経路を取得してからこの変数をリセットします。
-
ウォッチ 画面で、グローバルラベル「MM_Camera.Status_Code」を入力します。返された値が 2100 の場合、計画した経路が正常に取得されたことを意味します。返された値が20XXの場合、 標準インターフェースのステータスコード一覧とトラブルシューティング を参照して問題を解決してください。グローバルラベル「MM_Camera.Target_Pose」入力すると、返された値がMech-Vizによって計画された経路の関節角度データとなります。