Mitsubishi Q03UDVCPU(Client) & OMRON CJ2MCPU(Server) : Ethernet/IP Explicit

PLC

三菱電機 Q03UDVCPUとOMRON CJ2MCPUをEthernet/IP(Explicit)で接続します。
Q03UDVCPUの内蔵Ethernetポートに自作のExplicitメッセージを発行するプログラムを実装し、CJ2Mのデバイスを読み書きします。

Explicitメッセージの中身はMolexのEIP Toolを使用してUCMM通信を行った際のパケットをWiresharkでキャプチャした内容を解析して作成します。

1 構成
2 CJ2MのUCMM通信テスト
2.1 CJ2MのCPU型式読出しテスト

CPUユニットの型式を読み出す場合のオブジェクトは以下のようになります。

Service CodeClass IDInstance IDRequest Service Data内容
0E HexC4 Hex ※100 HexAttribute ID=66HexCPU ユニットの形式を読み出します。
(※1ユニットバージョン Ver.1.0 では、PLC オブジェクトの Class ID は 2FHex)

MolexのEIP ToolでCPU型式を読み出してみます。

Wiresharkでパケットを見ると、Dataの中に“CJ2M-CPU35”が読み出されています。

2.2 CJ2M DMエリアの読出しテスト

チャネルデータリード(1ワード読出し)の場合のオブジェクトは以下のようになります。

Service CodeClass IDInstance IDアドレスLアドレスH読み出し ワード数
1D HexC4 Hex ※1CIO:01 Hex DM :03 Hex WR :04 Hex HR :05 Hex EM :08~20 Hex (EM Bank No.0 ~18Hex)先頭チャネル番号を 4 桁の 16 進数で表記したときの下位 2 桁。先頭チャネル番号を 4 桁の 16 進数で表記したときの上位 2 桁。「読み出しデータ」のワード数を、1 バイト(2 桁)の 16 進数で指定します。 指定範囲は、01~64 Hex(10 進数 1~100)です。
(※1ユニットバージョン Ver.1.0 では、PLC オブジェクトの Class ID は 2FHex)

CX-ProgrammerでDM01の現在値に“1234Hex”を設定した状態で、MolexのEIP Toolで“DM01”の現在値を読み出してみます。

Wiresharkでパケットを見ると、Dataの中にCJ2Mの“1234Hex”が“3412”として読み出されています。

2.3 CJ2M DMエリアへの書込みテスト

チャネルデータライト(1ワード書込み)の場合のオブジェクトは以下のようになります。

Service CodeClass IDInstance IDアドレスLアドレスH書き込みデータ
1F HexC4 Hex ※1CIO:01 Hex DM :03 Hex WR :04 Hex HR :05 Hex EM :08~20 Hex (EM Bank No.0 ~18Hex)先頭チャネル番号を 4 桁の 16 進数で表記したときの下位 2 桁。先頭チャネル番号を 4 桁の 16 進数で表記したときの上位 2 桁。指定されたエリア種別、チャネルに書き込むデータを、 チャネル L(下位バイト:ビット 0~7)、 チャネル H(上位バイト:ビット 8~15) の順で指定します。
(※1ユニットバージョン Ver.1.0 では、PLC オブジェクトの Class ID は 2FHex)

MolexのEIP Toolで“DM01”の現在値に“1234 Hex”を書き込みます。

CX-ProgrammerでDM01の現在値に“1234 Hex”が設定されていることを確認します。

Wiresharkでパケットを見ると、Dataの先頭“0100”がDMのアドレス“DM01”を指定し、“3412”が設定値“1234Hex”を指定しています。

3 Q03UDVCPUの設定
3.1 PCパラメータ設定

PCパラメータの内蔵Ethernetポート設定を以下のように設定します。

オープン設定のNo.3を以下のように設定します。

“設定終了”でPCパラメータを閉じます。

3.2 設定の書込み

オンラインから“PC書込”でパラメータとプログラムを書き込み、CPUリセットします。

3.3 通信プロトコルの作成

Molexの”EIP Tool”を使用してパソコンからQ03UDVCPUへUCMMメッセージを発行し、Wiresharkでキャプチャしたパケットの中身を解析して以下のような通信プロトコルを作成します。

Gx-works2のリモート操作でCPU動作モードを“Stop”にします。
通信プロトコル支援機能のオンラインから“ユニット書込”を選択し設定を書き込みます。

CPUリセット操作を行います。

3.4 プログラムの作成

「QnUCPUユーザーズマニュアル(内蔵Ethernetポート通信編):6.2 設定方法 」を参考に、通信プロトコルを実行するラダーを作成し書込みます。

4 CJ2Mの設定
4.1 I/Oテーブル・ユニット設定

“CJ2M-EIP21(CJ2M用内蔵Ethernet/IPポート)”を開き“TCP/IP”タブを選択します。
今回は、 “IPアドレス設定”を以下のように設定します。

4.2 転送[パソコン→PLC]

PLCにオンライン接続し、“転送[パソコン→PLC]”から設定を書き込みます。
書き込み完了後、電源OFFにし、CPUユニットのノードアドレス設定ロータリスイッチを“01”に設定します。

5 動作確認
5.1 CJ2MのCPU型式読出し

①コネクションオープン。
②プロトコル番号2“ListService”からプロトコル番号3“RegisterSession”を連続実行して“SessionHandle”を取得します。
③プロトコル番号3を実行しCJ2MのCPU型式を取得します。

Wiresharkでパケットを見ると、Dataの中に型式”CJ2M-CPU35”が確認できます。

5.2 CJ2M DMエリアの読出しテスト

①コネクションオープン。
②プロトコル番号2“ListService”からプロトコル番号3“RegisterSession”を連続実行して“SessionHandle”を取得します。
③プロトコル番号4を実行しCJ2MのDM01の現在値を取得します。
(予め、CX-ProgrammerでDM01に“1234 Hex”を設定した場合)

Wiresharkでパケットを見ると、Dataに”3412”として格納されています。

5.3 CJ2M DMエリアの書込みテスト

①コネクションオープン。
②プロトコル番号2“ListService”からプロトコル番号3“RegisterSession”を連続実行して“SessionHandle”を取得します。
③プロトコル番号5を実行しCJ2MのDM01に“1234 Hex”を書き込みます。
CX-ProgrammerでDM01の現在値をモニタし“1234 Hex”となっていることを確認します。

Wiresharkでパケットを見ると、Dataの先頭“0100”がDMのアドレス“DM01”を指定し、“3412”が設定値“1234Hex”を指定しています。

6 参考文献

OMRON:CS1W-EIP21, CJ1W-EIP21, CJ2H-CPU6□-EIP, CJ2M-CPU3□ EtherNet/IP™ユニット ユーザーズマニュアル(SBCD-342N)
Molex:EIP Tool

以上。