今回は三菱IQ_RのRJ71EIP91モジュールとOMRON NX-CSG320を使用しClass1 Tag Communicationを実装します。よろしくお願いします。
Configuration

Reference Link
http://soup01.com/ja/category/protocol/ethernet-ip/
http://soup01.com/ja/category/protocol/ethernet-ip/
Data Flow
こちらはRJ71EIP91のClass1 Tag Communication Flowです。
- Ethernet/IP Communication Start request(Y10)をリクエスト送信
- Connection確立
- Consumerに返答
- PLCプログラムからデータを転送
- データはRPI 周期に沿ってConsumerに送信
- データ送信
- Consumer側がデータをBuffer Areaに格納
Mitsubishi Side
Create new project
Project>New で新規プロジェクトを作成します。
CPUをR00を選択>Program LanguageはSTしてOK。
Add RJ71EIP91
RJ71EIP91を追加します。Parameter>System Parameterをクリックします。
I/O Assignment Settingを開き>Slot0の…ボタンをクリックします。
RJ71EIP91をFIND Fieldに入力しモジュール検索します。
RJ71EIP91を選び>OKします。
OKでモジュール追加します。
RJ71EIP91が追加されました。
CheckボタンでHardware Configurationを確認し>Okで完了します。
Add Label
RJ71EIP91のModule Labelを追加します。
右にあるElement Selection>Module Label>RJ71EIP91を右クリック>Add Module Labelします。
M+GlobalのGlobal Label Listが追加されます。
中にEIP91_1がのシステム変数が追加されました。
Add Function Block
次はRJ71EIP91用のライブラリを追加します。
FB/FUNを右クリック>Add new Dataします。
このFB最後は削除しますので、そのままOKで大丈夫です。
Dummy用のFBが追加されました。
右のElement Selection>Module Label>RJ71EIP91にあるGetとSetのFunction Blockを選び、右クリック>Add to Projectでプロジェクトに追加します。
RJ71EIP91用のライブラリが追加されました。
最初に追加したDummy FBを削除します。
Set IP
RJ71EIP91のIPアドレスを設定します。
Module Information>0000:RJ71EIP91をクリックします。
Basic Settingを開き、IP AddressのFieldをクリックします。
IPアドレスをConfigurationに合わせて192.168.250.99に設定します。
Checkでパラメータを確認します。
エラーなければOKです。
Add inside Scan Program
コンパイルを完了するために、MAINプログラムのLocal Labelの中にGetとSetのInstanceを定義します。
Convert
Convert>Convertでプロジェクトをコンパイルします。
Write to PLC
Write to PLCでプロジェクトをCPUに書き込みます。
すべてのパラメーターを選択しExecuteすればOKです。
Download and Install Tools
RJ71EIP91を設定するツールEthernet/IP Configuration Tool for RJ71EIP91をダウンロードしインストールしてください。
Configure the network
Ethernet/IP Configuration Tool for RJ71EIP91がインストールされたPathからEIPCT_Console.exeを起動します。
C:\Program Files (x86)\MELSOFT\EIP-CT for RJ71EIP91
Ethernet/IP Configuration Tool for RJ71EIP91が起動しました。
Download Omron EDS Files
Ethernet/IP Configuration Tool for RJ71EIP91ツールからOmorn NX-CSG320のEDS FileをDownloadします。
https://www.fa.omron.co.jp/member/product/tool/44/eds/download.htm
Import EDS File
EDS FileをImportします。
Next>で進みます。
BrowseからNX-CSG320のEDS FileのPathを設定し、Next>で進みます。
Next>で進みます。自分はすでにImportされたので、EDSは存在してると表示されます。
Finishで完了します。
左にあるDevice libraryではNX-CSG320が追加されました。
Set Module IP
まずモジュールのIPを設定します。
Ethernet>TCP/IP:Staticのところをクリックします。
Module IPとSub-networkをGXWORKS3に合わせて設定してください。
Add Producer Tags
次はProducer Tagsを追加します。
MyTags
まず2Bytes占有したMyTagsを作成します。

Device LibraryからTarget(Tag)を右にDropします。
Target(Tag)の構築画面が出てきます。
設定するところはTag NameとSizeだけです。
Tag NameはMyTagsで、Sizeは2 Bytesを入力しOKで完了します。
My64BytesTags
次は64Bytes占有したMy64BytesTagsを作成します。

先と同じくDevice LibraryからTarget(Tag)を右にDropします。
Tag NameはMy64BytesTagsで、Sizeは64BytesでOKです。
いまRJ71EIP91のProducer Tagsが作成終わりました。
展開するとConnection 番号も一覧できます。
Add Comsumer Tags
Producer Tagsが終わったところで次はComsumer Tagsを作成します。
MyOmronTags
2 Bytes占有したMyOmronTagsから始まります。

Device LibraryからEthernet/IP Devices>Omron Corporation>Communication Adapter>NX-CSG320 Revision 2.6を右にDropします。
OmronのNX-CSG320 IPアドレスを設定します。今回は記事に合わせて192.168.250.19にします。
次はConnection Tab>Default追加されたConnectionを選び>Removeで削除します。
空の状態からAddボタンをクリックし、Connection追加します。
Connection TypeはInput Only(Tag type)を選び>OKします。
Generalをクリックし、Tag Nameを入力します。
2 Bytes占有したComsumer TagsはMyOmronTagsなので、そのまま入力し、Input Sizeは2 Bytesで、Input ModeはPoint to PointすればOKです。つまりいまRJ71EIP91からMyOmronTagsという2 BytesのTagからデータを出力しています。
DY0
次は64Bytes占有したDY0 Tagです。

先程と同じのConnectionからAddボタンをクリックし、Connectionを追加します。
同じくInput Only(Tag type)でOKします。
Generalを開き、TagNameはDY0、Input Sizeは64Bytes、Input ModeはPoint to PointでOKです。
いまRJ71EIP91に4つのConnectionがありまして、Connection1とConnection2はProducer TagsでConnection3とConnection4はConsumer Tagsになります。
Download the Configuration
最後は緑のButtonでOnlineします。
そしてオレンジ枠のボタンでConfigurationをDownloadします。
Popupが表示され、Downloadで進みます。
それでOKです!
Program
次はGXWORKS3側のプログラムを作成します。
Local Label
以下はプログラムで使用するLocal変数を定義します。
Code
以下はCodeです。
- モジュールがReadyかどうかを確認します。
- モジュールにエラーがあればリセットFlagをかけ、自動リセットするようにします。
- モジュールReadyであれば通信開始のリクエストFlagをTrueします。
- 最後はCASE分で分岐し、Case=3,4ならRJ71EIP91_Class1GetInputData_00Aライブリを使用しTagデータを取得します。Case=1,2ならRJ71EIP91_Class1SetOutputData_00Aライブラリを使用しTagデータを書き込みます。
//Ready bReady:=EIP91_1.bSts_ModuleReady AND EIP91_1.bSts_CommunicationReady AND NOT EIP91_1.bSts_ModuleError; //Auto Reset EIP91_1.bSet_ModuleErrorClearRequest:= EIP91_1.bSts_ModuleError; //Send the Startup Request EIP91_1.bSet_CommunicationStartupRequest:=bReady; CASE iStep OF cConnectionNo3_MyOmronTags: bDataLinkOK:=EIP91_1.bnSts_Class1DuringDataLink_Connection_D[3]; RJ71EIP91_Class1GetInputData_00A( i_bEN:= bDataLinkOK ,i_stModule:= EIP91_1 ,i_uConnectionNo:= 3 ,o_bENO=> bENO ,o_bOK=> bOK ,o_bErr=> bErr ,o_uErrId=> uErrId ,o_uStatusId=> uStatusId ,o_uInputData=> uInputDataConnection3 ); IF bOK THEN iStep:=cConnectionNo4_DY0; bOK:=FALSE; END_IF; cConnectionNo4_DY0: bDataLinkOK:=EIP91_1.bnSts_Class1DuringDataLink_Connection_D[3]; RJ71EIP91_Class1GetInputData_00A( i_bEN:= bDataLinkOK ,i_stModule:= EIP91_1 ,i_uConnectionNo:= 4 ,o_bENO=> bENO ,o_bOK=> bOK ,o_bErr=> bErr ,o_uErrId=> uErrId ,o_uStatusId=> uStatusId ,o_uInputData=> uInputDataConnection4[0] ); IF bOK THEN iStep:=cConnectionNo1_MyTags; bOK:=FALSE; END_IF; cConnectionNo1_MyTags: uOutputDataConnection1:=999; bDataLinkOK:=EIP91_1.bnSts_Class1DuringDataLink_Connection_D[1]; RJ71EIP91_Class1SetOutputData_00A( i_bEN:= bDataLinkOK ,i_stModule:= EIP91_1 ,i_uConnectionNo:= 1 ,i_uOutputData:= uOutputDataConnection1 ,o_bENO=> bENO ,o_bOK=> bOK ,o_bErr=> bErr ,o_uErrId=> uErrId ,o_uStatusId=> uStatusId ); IF bOK THEN iStep:=cConnectionNo2_My64BytesTags; bOK:=FALSE; END_IF; cConnectionNo2_My64BytesTags: uOutputDataConnection2[0]:=123; uOutputDataConnection2[31]:=789; bDataLinkOK:=EIP91_1.bnSts_Class1DuringDataLink_Connection_D[1]; RJ71EIP91_Class1SetOutputData_00A( i_bEN:= bDataLinkOK ,i_stModule:= EIP91_1 ,i_uConnectionNo:= 2 ,i_uOutputData:= uOutputDataConnection2[0] ,o_bENO=> bENO ,o_bOK=> bOK ,o_bErr=> bErr ,o_uErrId=> uErrId ,o_uStatusId=> uStatusId ); IF bOK THEN iStep:=cConnectionNo3_MyOmronTags; bOK:=FALSE; END_IF; cInit: iStep:=cConnectionNo3_MyOmronTags; END_CASE; ; |
OMRON Side
次はOmron NX-CSG320側です。
IP Address
IP設定ですが、今回はPort2Aを使用しますのでプロジェクトより、Rotary スイッチからIPを直接指定します。
2のRotary スイッチが0でなければ、192.168.250.xになります。例えば今回の設定では13になり、13Hexは19Decになり、つまり192.168.250.19です。
Download Mitsubishi EDS File
Omron Sysmac studioツールに三菱のRJ71EIP91モジュールIMPORTする必要があります。
下記のLinkからRJ71EIP91モジュールのEDS FILEをDownloadしてください。
Ethernet/IP Setting
Sysmac studioを起動し、CPUのHardwareデータを吸い上げます。
次はTools>EtherNET/IP Connection Settingsをクリックします。
Port1,2のIPが表示する画面に変わります。
192.168.250.1、つまりPort2の選び>右クリック>Editします。
Ethernet/IPのTag構築画面に変わります。
Import EDS Files
まずはRJ71EIP91のEDS FileをImportします。
Tool box>右クリック>Display EDS Libraryします。
ツールにインストールされたEDSを一覧できるEDS Library画面が表示されます。
Installボタンで新しいEDS Fileをインストールします。
先程DownloadしたEDS Fileを選び>Openします。
Yesで進みます。
次はChassis.edsを選び>Openします。
Vendor>MITSUBISHI ELECTRIC CORPORATION>Communication Adapter>RJ71EIP91が選べるようになります。
Closeで終了します。
Add RJ71EIP91
次はプロジェクトにTargetデバイスを追加します。
+のAdd a target deviceボタンクリックします。
Node address
Toolboxの画面が変わり、まずNode addressを設定します。
IPアドレスは先程のGXWORKS3に設定したIPに合わせてください。なので、今回は192.168.250.99にします。
Model name
Model Nameは先程追加したRJ71EIP91を選びます。
Revision
Revisionは1でOKです。
最後はAddボタンでプロジェクトに追加すれば終わりです。
192.168.250.99のRJ71EIP91が追加されました。
Add Global Variables
次はProducer TagsとConsumer Tagsに使用するGlobal変数を定義します。
Programming>Data>Global Variablesをクリックします。
Add Tags
MyTagsを定義します。Data TypeはINTで、属性はInputです。
My64BytesTagsを定義します。Data TypeはARRAY[0..31]OF WORDで、属性もInputです。
MyOmronTagssを定義します。Data TypeはINTで、属性はOutputです。
最後のDY0は元にある変数なので特に変更する必要がありません。
Add to Groups
見やすくするために変数Groupを作成します。
MyTagsを選び>右クリックでGroup Settings>Add to new groupします。
Group Nameを入力しOKします。
OKでいいです。
次はMy64BytesTagsの変数の同じく右クリック>Group Settings>Add to existing groupします。
先追加したGroupを選び>Okします。
Groupを追加したらFilter機能が使えるよになりますので、Drop Listから先に追加したEIP_CosumerTags Groupを選び>Group Filterボタンをクリックします。
該当するGroupだけの変数が表示されるようになります。
Tag Set
Global Variablesから定義した変数をEthernet/IP Tag通信に使用できるように登録します。
先程のEthernet/IP Settings画面に戻り、上にあるTag setボタンをクリックします。
右にRegistation Allのボタンをクリックシアmす。
Input TagとOutput tagの2つのGroupに分けられ、Checkboxを外してAll Unselectします。
Input GroupにMyTagsとMy64BytesTagsをCheck入れます。
Output GroupsにDY0とMyOmronTags Checkbox入れます。
Registerボタンで登録します。
Input Tabを見るとMyTagsとMy64BytesTagsが表示されます。
Output TabをみるとDY0とMyOmronTagsが表示されます。それで登録Ok完成です。
Configure Connection
Producter Tagのほうが先程のTag SetのStepですでに作成終わったので、Manualで追加するのはConsumer Tagだけです。
MyTags
まず2 Byte占有のMyTagsから始まります。

Connection ボタンをクリックし画面を切り替えます。
最初にToolboxから追加したRJ71EIP91をConnectionのFieldにDropします。
Tag Connectionが追加されました。
Tag VariablesのFieldはRJ71EIP91の設定ツールから構築したTag名に合わせて入力します。
なので、MyTagsになります。
Tag名以外にもSize(Byte)にも合わせて設定します。ここ2を入れれば2Bytesにデータになります。
Originator VariableのほうにDrop Listを選択します。
MyTagsを選びます。そのMyTagsはGlobal Variableから追加したMyTagsと紐つけています。
これで設定OKです。
My64BytesTags
最後は64Bytes占有したMy64BytesTagsですね。

今度は+ボタンからConnectionを追加します。
なにも入ってないConnectionが追加されました。
Target DeviceをまずRJ71EIP91を設定します。
Tag名もRJ71EIP91設定ツールに合わせてMy64BytesTagsに入力します。
Sizeを64Bytesに設定します。
Originator VariableはDrop ListからMy64BytesTagsを設定します。
これで設定OKです。
最後はConnection TypeをPoint to Pointに変更します。
Download
いよいよプロジェクトをDownloadします。まずOnlineします。
次はto ControllerでプロジェクトDownloadします。
Executeで実行する。
Yesで進みます。
転送完了です。
最後は先のTag設定画面でTransfer to ControllerボタンでEthernet/IP SettingsをCPUに転送します。
Yesで進みます。
Transfer to ControllerのPopupがしばらく表示され、完了したら自動的にPOPUPが消えます。
Result
まずRJ71EIP91にはRUN・MS・NSのLEDにも緑が点灯しています。
OMRON NX-CSG320にもRUN・NS点灯しています。
まず配列のデータを見てます。sysmac studioでWatch Tab Page(Table)をクリックします。
Device Nameを配列変数入れたら一覧できます。
RJ71EIP91から出力したTagはOMRON NX-CSG320のTagに一致しますね。
ではOMRON NX-CSG320のProducer Tagsも見てみましょう。
同じく反映されています!
Source Project
下記のLinkからプロジェクトDownloadしてください。
https://github.com/soup01Threes/GXWROKS/blob/main/RJ91EIP_CSG0320_Demo.zip