通信設定とサンプルプログラムの使用
オムロンPLCとMech-MindビジョンシステムとのEtherNet/IP通信は、以下のような流れで行われます。
ハードウェアとソフトウェアの要件
ハードウェア
-
EIP通信機能に対応可能なオムロンPLCは以下の通りです。
-
CJ2H-CPU6□-EIP、CJ2M-CPU3□など、EIP機能を内蔵したCPU本体。
-
CJ1W-EIP21またはCS1W-EIP21通信モジュール(EtherNet/IP Unit)のインストールに対応可能なその他のCPU。
-
-
USB Type-A - USB Type-B 変換ケーブル。
-
電源モジュール。
-
Mech-MindのIPCに搭載されたインターフェースカード:HMS IXXAT INpact EIP Slave PCIe。
-
スイッチおよびLANケーブル。
本サンプルは、CJ2H CPU65-EIPで、UNIT NO.を0、NODE NO.を15(16進数、10進数は21)に設定したものを使用します。 |
ハードウェアの接続は下図の通りです。
ソフトウェア
-
オムロンPLCプログラミングソフトウェアCX-Programmer 9.70。
-
1.7.0バージョン以降のMech-VisionとMech-Vizソフトウェア。
-
ネットワークカードのIPアドレスを設定するための HMS ipconfig 。
-
Mech-Mind EDS ファイル:005A002B003A0100.EDS。 EDSファイルはMech-VisionとMech-Vizソフトウェアのインストールディレクトリにある
Mech-Center/Robot_Interface/EthernetIP
フォルダに格納されています。 -
PLC サンプルプログラムファイル:
-
AUTOEXEC.OBJ(プログラム)。
-
PROGRAMS.IDX(プログラムインデックス)。
-
SYMBOLS.SYM(符号)。
-
COMMENTS.CMT(プログラムコメント)。
サンプルプログラムファイルは、Mech-VisionとMech-Vizソフトウェアのインストールディレクトリにある
Mech-Center/Robot_Interface/EthernetIP/Programming Samples/Omron CX-Programmer CJ2H PLC EthernetIP
フォルダに格納されています。このファイルをコピーし、CX-PROGRAMMERがインストールされているコンピュータへ貼り付けてください。 -
IPCの設定と通信の開始
IPCのPCI-eカードとドライバソフトウェアの確認
-
下図の通り、INpact EIP Slave PCIe ネットワークカードがIPCのPCI-eスロットに圧入されていることを確認してください。
-
IPCを起動し、Windowsのアイコンを右クリックしてデバイスマネージャーを開き、ドライバーソフトウェア VCI4 INpact PCIeがインストールされていることを確認します。
「ロボット通信設定」を実行
-
Mech-Visionのツールバーで ロボット通信設定 をクリックします。
-
ロボット通信設定 の画面で以下の設定を行います。
-
ロボットを選択 のドロップダウンボックスをクリックし、 適応可能なロボット を選択して ロボット型番を選択 をクリックします。表示される画面で特定のロボット型番を選択して 次へ をクリックします。
-
通信方式 で、 インターフェースサービスのタイプ を 標準インターフェース に、 通信プロトコル を ETHERNET IP に設定します。
-
(オプション) ソリューションを開くとインターフェースサービスを自動的に起動 にチェックを入れることを推奨します。
-
適用をクリックします。
-
-
Mech-Visionのメイン画面で、ツールバーのインターフェースサービスが起動されていることを確認します。
IPCのネットワークカードのIPアドレスを設定
-
ネットワークカードのIPアドレスを設定するために、HMSのIPconfigというソフトウェアを使用する必要があります。IpconfigがインストールされているIPCのLANポートと、IXXAT INpactネットワークカードのLANポートをLANケーブルで接続します。
ネットワークカードをセットアップし、通信ができた後、一時使用LANケーブルを撤去することが可能です。 -
HMS IPconfigソフトウェアを起動し、スキャンをクリックし、DHCPのチェックを外して、ボードのIPアドレスとサブネットマスクを設定します。PLCで設定されたIPアドレスと同じなIPアドレスを設定し、 適用 をクリックして確認した上で、ソフトウェアを終了します。
PLCプロジェクトの作成と設定
PLCプロジェクトの作成
-
CX-Programmerソフトウェアを起動し、ツールバーの 新規作成 をクリックすると PLC機種変更 の画面が表示されます。 PLC種類 を実際に合わせて選択し、 設定 をクリックします。すると、 PLC種類の設定 の画面が表示されます。 CPU形式 を実際に合わせて選択し、 OK をクリックして保存します。
-
ツールバーの 保存 をクリックし、表示される画面でCX-Programmerプロジェクトファイルの保存パスを選択し、ファイル名を記入してから 保存 をクリックします。
-
ツールバーの オンライン をクリックし、表示される画面で はい をクリックします。
-
ツールバーの プログラミングモード をクリックし、PLCを停止できるかどうかがポップアップで表示されるので、停止しても問題なければ はい をクリックします。
-
プロジェクトの
をクリックすると、 PLCのI/Oテーブル の画面が表示されます。 -
PLCのI/Oテーブル 画面の 内蔵ポート/インナーボード(この例では) を展開します。CJ2B-EIP21(CJ2M 用内蔵 EtherNet/IP ポート) をダブルクリックして CJ2B-EIP21パラメータの編集 画面に入ります。次に、 TCP/IP タブでIPアドレスとサブネットマスクを設定し、 転送[パソコン→ユニット] をクリックします。表示される画面で はい をクリックします。
-
正常に転送できたら、 OK をクリックします。
-
ユニット再起動のポップアップウィンドウが表示されますので、 はい をクリックします。再起動後、 OK をクリックして CJ2B-EIP21 パラメータの編集 画面に戻り、 OK をクリックします。
EDSファイルをインストールして設定
-
PLCのI/Oテーブル 画面で、右クリックで
を選択します。 -
表示される 専用ツール選択[CJ2B-EIP21] 画面で Network Configurator を選択して OK をクリックします。
-
表示される Untitled - Network Configurator 画面では、ツールバーの EDS インストール をクリックすると EDSファイルのインストール 画面が表示されます。
-
対応するEDSファイルを選択してから 開く をクリックします。
EDSファイルはMech-MindのIPCから取得できます。EDSファイルはMech-VisionとMech-Vizソフトウェアのインストールディレクトリにある Mech-Center/Robot_Interface/EthernetIP
フォルダに格納されています。ETHERNETIP
フォルダをコピーし、CX-PROGRAMMERがインストールされているIPCに貼り付けます。その後、このファイルを選択して 開く をクリックします。 -
Untitled - Network Configurator 画面では、 EtherNet/IP HardWare/Vendor/HMS Industrial Networks AB/Generic Device を展開し、Ixxat INpact EtherNet/IP™ を右クリックして このデバイスをネットワークに追加 をクリックします。
-
EtherNet/Vendor/OMRON Corporation/Communications Adapter/CJ2B-EIP21 を同様の方法で展開し、 Rev 3 を右クリックして このデバイスをネットワークに追加 をクリックします。
-
EtherNet/IP_1 画面では、Mech-Mindのデバイスアイコンを右クリックし、 ノードアドレスの変更 を選択し、ビジョンデバイスのIPを192.168.1.10に変更します。CJ2B-EIP21のデバイスアイコンを右クリックし、 ノードアドレスの変更 を選択し、PLCマスターのIPを192.168.1.21に変更します。ここでは、IPはI/Oテーブルに設定されたものと同じで、両者が同じネットワークセグメントにある必要があります。
-
EtherNet/IP_1 画面では、ビジョンデバイスアイコンを右クリックし、 プロパティ をクリックします。
-
プロパティ画面では、 I/O情報 をクリックし、入力/出力のバイトサイズを確認して記録し、 閉じる をクリックします。
-
EtherNet/IP_1 画面では、CJ2B-EIP21アイコンをダブルクリックすると デバイスパラメータの編集 画面が表示されます。 タブセット オプションを選択し、INとOUT第1ソフトコンポーネントをそれぞれ設定します(この例では第1ソフトコンポーネントのアドレス割り当てを示します)。登録完了後に デバイスパラメータの編集 画面に戻ります。
-
デバイスパラメータの編集 画面では、INpact EtherNet/IPデバイスを選択し、クリックして下に移動し、登録画面でこのデバイスをダブルクリックします。すると、 Ixxat INpact EtherNet/IP™ Edit Connection 画面が表示されます。
-
Ixxat INpact EtherNet/IP™へのコネクション割付 画面では、マスターとスレーブのIO信号を下図のように設定します。設定後、 登録 をクリックしてから 閉じる をクリックします。
-
デバイスパラメータの編集 画面に戻り、下図のような情報が表示された場合、 OK をクリックします。
-
ビジョンスレーブの関連付けが完了すると、下図のようにアイコンが表示されます。
PLCハードウェア構成をPLCにダウンロード
-
Network Configurator 画面では、 接続 をクリックすると インターフェースの設定 が表示されます。 OK をクリックすると 接続ネットワークポートの選択 画面が表示されます。
-
接続ネットワークポートの選択 画面では、 BackPlane/#0 CJ2B-EIP21/TCP:2 を展開し、 OK をクリックすると 接続ネットワークの選択 画面が表示されます。 既存のネットワーク/EtherN IP_1 を選択し、 OK をクリックします。
-
Network Configurator 画面では、 ネットワークにダウンロード をクリックし、表示される画面で はい をクリックします。
-
正常にダウンロードできたら、 OK をクリックします。
通信が成立しているか確認
-
Untitled-Network Configurator 画面では、メニューバーの
をクリックします。 -
表示される Monitor Device 画面で コネクション をクリックします。正常に接続できた場合は、接続状態表示が青色で表示されます。
-
Mech-Visionのメインインターフェイスで、接続ができたら、ログバーの コンソール タブに、 ETHERNET IPコントローラへの接続に成功しました というメッセージが表示されます 。 このようなログがない場合は、以下の設定が正しいかどうか確認します。
-
ハードウェアのネットワーク接続が正常に行われているかどうか。
-
Mech-Visionのインターフェースサービスが有効になっているかどうか。
-
PLCは、ダウンロードされ、PLCのハードウェアにインポートされているかどうか。
-
サンプルファイルをインポートしてPLCプログラムをPLCにダウンロード
Mech-Mindサンプルプログラムファイルをインポートしてテストするために、新しいPLCプロジェクトを使用する必要があります。既存のPLCプロジェクトに追加する場合は、新しいプロジェクトを作成して、インポートとテストを行ってから、既存のプロジェクトに移転することをお勧めします。 |
Mech-Mindサンプルプログラムファイルをインポート
-
CX-Programmerに戻り、「新規PLC1[CJ2H]オフライン \-→ 転送 \-→ ファイルから読出」を選択すると、 ファイルから読み出し の画面が表示されます。
-
プログラム 、 プログラムインデックス 、 変数テーブル と プログラムコメント にチェックを入れます。プログラム の後ろの … をクリックし、対応するOBJファイルを選択してから 開く をクリックします。同じディレクトリに他のファイルがある場合は、自動的にファイルが記入され、最後に OK をクリックします。
-
すると、警告ウィンドウが表示されます。読み込みをすると、保存されたすべてのプログラム、符号やコメントが削除されるので、必ず新規作成されたプロジェクトを使用して読み込みます。 OK をクリックし、サンプルプロジェクトをインポートします。
ビジョンプロジェクトのテスト
ここでは、サンプルプログラム機能ブロックを使用して、Mech-Visionプロジェクトを実行してビジョンポイントを取得する方法、Mech-Viz プロジェクトを実行して計画した経路を取得する方法について説明します。IOモジュールの機能説明については、 キーエンスPLCとMech-MindシステムとのEtherNet/IP通信コマンド説明 をご参照ください。
事前準備
-
Mech-Visionソリューションを作成します。ソリューションを右クリックして ソリューションを自動的に読み込む にチェックを入れます。すると、ソリューション内のプロジェクトも自動読み込みに設定され、プロジェクト名の前に番号が表示されます。
-
Mech-Vizプロジェクトを作成します。Mech-Vizのリソースパネルでプロジェクトを右クリックし、 自動的に読み込む にチェックを入れます。
テストのためのMech-Vizプロジェクトでは、下図のように、ステップ名が1の「メッセージによって異なる分岐を実行」を使用する必要があります。
Mech-Visionからビジョンポイントを取得
パラメータの設定
-
CX-Programmerに戻って、プロジェクトツリーでプログラムを展開し、 CameraTest プログラムをダブルクリックし、ToCamera.COM_ENABLEの状態を常にONに設定します。
-
Mech-Visionプロジェクト番号(つまり、Mech-Visionプロジェクトリストでプロジェクト名の前にある番号)を設定します。VISION_PROJ_NUMの値を1に設定すると、プロジェクト番号1のMech-Visionプロジェクトが実行されます。
-
Mech-Visionプロジェクトから返される位置姿勢の数を設定します。REQ_POSE_NUMの値を0に設定すると、Mech-Visionからすべての位置姿勢の結果が返されます。
Mech-Visionプロジェクトの実行
-
機能ブロックMM_Start_Visの入力変数Start_Visをダブルクリックし、表示される 新しい値を設定 画面で変数の値を1に設定し、 設定 をクリックしてMech-Visionプロジェクトを実行させ、カメラが撮影を開始します。その後、同様の方法でこの変数の値を0にリセットします。
-
ウォッチウィンドウ切替 のアイコンをクリックし、 名称 の列からFromCamera.STATUS_CODEを検索し、その返された値を確認します。1102の場合、プロジェクトが正常に実行されたことを意味します。返された値が10XXの場合、 標準インターフェースのステータスコード一覧とトラブルシューティング を参照して問題を解決してください。
Mech-Visionで計算した位置姿勢の結果を取得
-
FromCamera.STATUS_CODEが1102を返したら、機能ブロックMM_Get_VisDataの入力変数Get_VisDataをダブルクリックします。表示される 新しい値を設定 画面で変数の値を1に設定し、 設定 をクリックして位置姿勢の取得を開始します。その後、同様の方法でこの変数の値を0にリセットします。下図に示すように、SendPoseNumの値が3の場合、3つの位置姿勢が取得されたことを意味します。
-
プロジェクトツリーで、 D をダブルクリックすると、 PLCメモリ*の画面が表示されます。 *D メモリテーブルをダブルクリックし、前頭チャネルを 10000 に設定し、データの表示形式を 符号付き10進数 、 ダブルワード に設定してから、 モニタ をクリックします。この例は、ビジョンソフトウェアから送信された3セットの位置姿勢データ(送信値を1万倍に拡大したもの)を受信します。
Mech-Vizから計画した経路を取得
パラメータの設定
-
CX-Programmer画面に戻り、機能ブロック MM_Get_VisData の入力変数 Start_Empty をダブルクリックします。すると、 新しい値を設定 の画面が表示されます。変数の値を 1 に変更し、 設定 をクリックして前回に取得したビジョン結果を削除します。その後、同様の方法でこの変数の値を 0 にリセットします。
-
Branch_Nameの値を 1 、Branch_Exit_Portの値を 1 と設定すると、 Mech-Vizプロジェクトは分岐1まで実行する場合、出口1に沿って実行し続けます。
-
Request_Pose_Typeの値を 1 、Mech-Vizから返されるデータのタイプを関節角度に設定します。
Mech-Vizプロジェクトの実行
-
モジュール「MM_Start_Viz」で、入力変数 Start_Vizダブルクリックして、Mech-Vizプロジェクトを実行します。
-
FromCamera.STATUS_CODEからの戻り値を確認し、2103になった場合、プロジェクトの実行ができたと表しています。一方、戻り値は20XXになった場合、 標準インターフェースエラーコード一覧とトラブルシューティング をご参照ください。
Mech-Vizの分岐出口を選択
-
機能ロック「M_Set_Branch」で、入力変数 Set_Branch をダブルクリックし、Mech-Viz分岐出口を選択します。
-
FromCamera.STATUS_CODEの現在値を確認し、2105になった場合、分岐の設定ができたことを示します。一方、戻り値は20XXになった場合、 標準インターフェースエラーコード一覧とトラブルシューティング をご参照ください。
Mech-Vizの経路計画を取得
-
機能ロック「MM_Set_Branch」で、入力変数 Get_VizData をダブルクリックし、Mech-Vizの計画経路を取得します。
-
FromCamera.STATUS_CODEの現在値を確認し、2100になった場合、Mech-Vizの計画経路を取得することができたと示します。一方、現在値は20XXになった場合、 標準インターフェースエラーコード一覧とトラブルシューティング をご参照ください。結果は下図のように、SendPoseNumの値が10であるため、10グループの関節角度データを取得しました。関節角度のデータはTargetPoseに格納されます。
-
PLCメモリ 画面に戻り、10セットの位置姿勢データ(送信値を1万倍に拡大したもの)を下図のようになります。