通信設定とサンプルプログラムの使用¶
オムロン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-Mindソフトウェアシステム。
通信ボードのIPアドレスを設定するための HMS ipconfig 。
Mech-Mind EDSファイル:005A002B003A0100.EDS。
EDSファイルは、Mech-Mindソフトウェアシステムのインストールパスにある
Mech-Center/Robot_Interface/EthernetIP
フォルダに格納されています。PLCサンプルプログラムファイル:
AUTOEXEC.OBJ(プログラム)。
PROGRAMS.IDX(プログラムインデックス)。
SYMBOLS.SYM(符号)。
COMMENTS.CMT(プログラムコメント)。
サンプルファイルは、Mech-Mindソフトウェアシステムにある
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で「ロボット通信設定」を実行¶
Mech-Visionのツールバーで ロボット通信設定 をクリックします。
ロボットを選択 のドロップダウンボックスをクリックし、 適応可能なロボット を選択して ロボット型番を選択 をクリックします。表示される画面で特定のロボット型番を選択して 次へ をクリックします。
通信方式 画面で以下のことを実行します。
インターフェースタイプを 標準インターフェース に設定します。
通信プロトコルを ETHERNET IP に設定します。
適用 をクリックします。
Mech-Visionのメイン画面で、ツールバーのインターフェースサービスが起動されていることを確認します。
IPC通信ボードのIPアドレスの設定¶
通信ボードのIPアドレスを設定するために、HMSのIPconfigというソフトウェアを使用する必要があります。 IPconfigをインストールしたIPCのネットワークポートと、IXXAT INpact通信ボードのネットワークポートを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テーブル 画面の 内蔵ポート/インナーボード(この例では) から、 CJ2M-EIP21(CJ2M 用内蔵 EtherNet/IP ポート) をダブルクリックして CJ2B-EIP21 パラメータの編集 画面に入ります。次に、 TCP/IP タブでIPアドレスとサブネットマスクを設定し、 転送[パソコン→ユニット] をクリックし、表示される画面で はい をクリックします。
正常に転送できたら、 OK をクリックします。
ユニット再起動のポップアップウィンドウが表示されますので、 はい をクリックします。再起動後、 OK をクリックして CJ2B-EIP21 パラメータの編集 画面に戻り、 OK をクリックします。
EDSファイルをインストールして設定¶
PLCのI/Oテーブル 画面で、CJ2B-EIP21を右クリックし、
を選択します。表示される 専用ツール選択[CJ2B-EIP21] 画面で Network Configurator を選択して OK をクリックします。
表示される Untitled - Network Configurator 画面では、ツールバーの EDS インストール をクリックすると EDSファイルのインストール 画面が表示されます。
対応するEDSファイルを選択してから 開く をクリックします。
注意
このEDSファイルは、Mech-Mindが提供する産業用PCから取得できます。格納場所は、Mech-Mindソフトウェアシステムのインストールパスの
Mech-Center/Robot_Interface/EthernetIP
フォルダとなります。ETHERNETIP
フォルダをコピーし、CX-PROGRAMMERがインストールされている産業用PCに貼り付けます。その後、このファイルを選択して 開く をクリックします。Untitled - Network Configurator 画面では、 EtherNet/IP HardWare/Vendor/HMS Industrial Networks AB/Generic Device を展開し、 Ixxat INpact EtherNet/IP(TM) を右クリックして このデバイスをネットワークに追加 をクリックします。
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(TM) Edit Connection 画面が表示されます。
Ixxat INpact EtherNet/IP(TM)へのコネクション割付 画面では、マスターとスレーブのIO信号を下図のように設定します。設定後、 登録 をクリックしてから 閉じる をクリックします。
デバイスパラメータの編集 画面に戻り、下図のような情報が表示された場合、 OK をクリックします。
ビジョンスレーブの関連付けが完了すると、下図のようにアイコンが表示されます。
PLCハードウェア構成をPLCにダウンロード¶
Network Configurator 画面では、 接続 をクリックすると インターフェースの設定 が表示されます。 OK をクリックすると 接続ネットワークポートの選択 画面が表示されます。
接続ネットワークポートの選択 画面では、 BackPlane/#0 CJ2B-EIP21/TCP:2 を展開し、 OK をクリックすると 接続ネットワークの選択 画面が表示されます。 既存のネットワーク/EtherN IP_1 を選択し、 OK をクリックします。
Network Configurator 画面では、 ネットワークにダウンロード をクリックし、表示される画面で はい をクリックします。
正常にダウンロードできたら、 OK をクリックします。
通信が成立しているか確認¶
Untitled-Network Configurator 画面では、メニューバーの
をクリックします。表示される デバイスモニタ 画面で コネクション をクリックします。正常に接続できた場合は、接続状態表示が青色で表示されます。
Mech-Visionのメインインターフェイスで、接続ができたら、ログバーのConsoleタブに、 ETHERNET IPコントローラへの接続に成功しました というメッセージが表示されます 。
このようなログがない場合は、以下の設定が正しいかどうか確認してください。
ハードウェアのネットワーク接続が正常に行われているかどうか。
Mech-Visionのインターフェースサービスが有効になっているかどうか。
PLCは、ダウンロードされ、PLCのハードウェアにインポートされているかどうか。
サンプルファイルをインポートしてPLCプログラムをPLCにダウンロード¶
注意
Mech-Mindサンプルプログラムファイルをインポートしてテストするために、新しいPLCプロジェクトを使用してください。既存のPLCプロジェクトに追加する場合は、新しいプロジェクトを作成して、インポートとテストを行ってから、既存のプロジェクトに移転することを推奨します。
Mech-Mindサンプルプログラムファイルのインポート¶
CX-Programmerに戻り、
を選択すると、 ファイルから読み出し の画面が表示されます。プログラム 、 プログラムインデックス 、 変数テーブル と プログラムコメント にチェックを入れます。 プログラム の後ろの ... をクリックし、対応するOBJファイルを選択してから 開く をクリックします。同じディレクトリに他のファイルがある場合は、自動的にファイルが記入され、最後に OK をクリックします。
すると、警告ウィンドウが表示されます。読み込みをすると、保存されたすべてのプログラム、符号やコメントが削除されるので、必ず新規作成されたプロジェクトを使用して読み込みます。 OK をクリックし、サンプルプロジェクトをインポートします。
PLCプログラムをPLCにダウンロード¶
CX-Programmerでは、 新規PLC1[CJ2H]オフライン を右クリックして オンライン接続 をクリックし、プロジェクトをオンライン状態に変換します。
同様に、 新規PLC1[CJ2H]オフライン を右クリックし、
をクリックします。転送オプション 画面が表示されますので、 OK をクリックします。
周辺機器が安全であることを確認した上で、プロンプトウィンドウで はい をクリックします。プロジェクトのダウンロードが成功したら、 OK をクリックします。
ビジョンプロジェクトのテスト¶
以下では、サンプル機能ブロックを使用してMech-Visionプロジェクトを実行してビジョンポイントを取得する方法、Mech-Vizプロジェクトを実行して計画した動作経路を取得する方法について説明します。IOモジュールの詳細については、 オムロンPLCとMech-MindソフトウェアシステムとのEtherNet/IP通信に使用されるコマンド をご参照ください。
事前準備¶
Mech-Visionソリューションを作成し、それを 自動読み込み に設定します。すると、ソリューション内のプロジェクトも自動読み込みに設定され、プロジェクト名の前に番号が表示されます。
Mech-Vizプロジェクトを作成し、 自動的に読み込む にチェックを入れます。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万倍に拡大したもの)を下図のようになります。