三菱#IQ-R RJ71EIP91を使う

今回は三菱のRJ71EIP91モジュールからEIPのAdapterからデータを読み込むするにはどう設定するか、などを説明します。

よろしくおねがいします。


構成

こっちらは今回の構成になります。R00CPUのとなりはRJ71EIP91があり、Molex製のTCDEI-8D0P-G02とEtherNet/IP で接続します。

RJ71EIP91はScannerでTCDEI-8D0P-G02がAdapterになります。

同時に、Rockwell PLCにもScannerでありTCDEI-8D0P-G02と接続します。

三菱側はTCDEI-8D0P-G02のデータを読むだけの役割になります。

Adapter側

別のMolexデバイスじゃなく、CodesysとRaspberry からでもAdapterでもOKです。

以下の記事参考してください:

Codesys#EtherNet/IP Adapterとして使う

Configuration Tools

RJ71EIP91には専用の設定ツールがあるみたいです。EtherNet/IP Configuration Tool for RJ71EIP91という名前らしいです。

ダウンロード

下記のリングからソフトをDownloadしてください。

https://www.mitsubishielectric.co.jp/fa/download/software/detailsearch.do?mode=software&kisyu=/plcr&shiryoid=0000000155&lang=1&select=0&softid=1&infostatus=1_7_8&viewradio=0&viewstatus=&viewpos=

Member登録が必要らいしいです。

このようなZip Fileがダウンロードできます。

インストール

次はToolsのインストールですね。

Fileを解凍したらsetupをタブルクリックします。

再起動必要になりますが、はいです。

Next>します。

英語にしますー

インストール場所を設定し、Next>します。

Installします。

しばらく待ちます…

よし、これでOKです。

プロジェクト作成

これからはRJ71EIP91を実際使用し構成からプログラミングまでの流れを説明しますね。

Hardware Configuration

まずProject>Newで新規プロジェクトを作成します。

私はR00を使っていますので、R00を選び、OKします。

Module ConfigurationにCPUなどを入れます。もちろん今回の主役、RJ71EIP91を忘れないでくださいね。

コンパイルしエラーあるかどうかをCheck。

問題なければDownloadします。

念の為、Diagnostics>System MonitorでCPUの状態を見てみましょう。

CPUはエラーなしですね。

さらにRJ71EIP91をクリックします。

うん、このモジュールもOKです。

パラメタ設定

モジュール追加したところ、次はパラメータ設定ですね。

GXWorks3上ではIPのみです。

Parameter>Module Information>0000:RJ71EIP91をクリックします。

IPのところをクリックします。

今回は192.168.1.47/24を設定します。

Checkでエラーあるかどうかをみます。

よし、これもOKです。

パラメータをダウンロードします。

モジュールリセットし、Pingが通すかどうかをまずCheckします。

このリセットしないと、Pingができなかった…

Configuration Tools

GXWorks3でIP設定したあと、次はConfiguration Tool でネットワーク設定などをします。

以下のInstall PathでEIPCT_Consoleを起動します。

こちらは私インストール下バージョンです。

Add New ElementのPop UPが出てきます。IPを先設定したものをいれてください。

こちらは起動したのConfiguration Tool画面ですね。

EDS 追加

EthernetIPで通信するにはEDS Fileが必要です。

Library>Addします。

次へ>します。

Browseします。

EDS FILEを選び、開くをクリックします。

次へで進みます。

緑のMarkがついたら、インストール成功です!

次へ>をクリックします。

これでOKです。

完了で閉じます。

Device追加

前も書いてたおり、今回RJ71EIP91がIP Scannerになります。このモジュールと接続するAdapterを設定します。

Device Library>EtherNet/IP Devices>メーカ名>Communications Aapter>モジュール名で展開します。

該当するAdapterを右クリックし、Insert in Configurationします。

このような画面が出てきますね。

Device名など設定できる場所です。

まずConnections Tab>Addします。

Input Onlyします。

そしてDefault入れたExclusive Ownerを消します。Exclusive Owner選び>Removeします。

これでOKです。

次はGeneralのTabに戻り、Network PropertiesでIPを変更します。

モジュールのIPは192.168.1.101です。

Configuration Download

最後はConfigurationをダウンロードします。

File>Go Onlineします。

下のCommunication おでがOnlineに変わります。

File>Downloadします。

このようなPopupが出てきます。

Configuration.apaの隣のCheckboxも入れてDownloadします。

Download成功したPopupが出ればOKです!

念の為、Pingもしてみましょう。

モジュールIO設定

自分の習慣に過ぎませんが、どんなPLCメーカでもIO Dataは必ず構造体にします。

まずRJ71EIP91の先頭IOを確認します。

モジュールを右クリックし>Open System Parameterします。

I/O Assignment Settings>StartXYは0000から32Pointsですね。

つまり0000-001Fになりますね。

構造体追加−Input

Label>Global Label>Structured Data Types>AddNew Dataします。

構造体の名前を設定します。

このように中身を作ります。

構造体追加−Output

Label>Global Label>Structured Data Types>AddNew Dataします。

OutputデータもManual参照し作ってください。

Global Label定義

そして定義された構造体をGlobal Labelで変数を宣言します。

ライブラリ追加

FROM/TOでやるのは私あまり好きではないので、Manual調べたら通信用のFunction Blockがあるらしくて、こちらを使用します。Project>Library Opeartion>Register to Library List>Addします。

Module Label追加

Module Label>0000:RJ71EIP91を選び>Add Module Labelします。

Globalラベルが追加されましたね!

Module FB追加

Function Blockも同様に追加します。

Module FBでDisplay TargetをRJ71EIP91に選択します。

2つのFBを選び、右クリックしAdd to Projectします。

FBにも追加されましたね!

一回コンパイルしましょう。

プログラム実装

構成やパラメータ設定全部終わったら次はいよいよプログラム始まりますね!

ちなみに自分のSample Codeは全部STなのでご了承ください。

Input Mapping

こちらは最初にもみせたのRemote IOですね。まずInputがどんなものが入ってるのかを知る必要があります。

Manual調べるとInputなら8Byteのデータありますね。今回必要なのはINPUTの信号だけなので…Offset 0x02ですね。

M+RJ71EIP91_Class1GetInputData

こちらは今回使用するFunction Blockになります。なれない方もいると思いますが、慣れてください。このFBを使用すればClass 1のCommunication Input Dataを収集することができます。i_bEN=TRUEなら通信はじまり、Falseなら通信しないです。

Inputパラメタ

i_bENBitTrue=FB実行
i_stModuleStructureモジュールラベル
i_uConnectionNoWord独自の接続番号

Outputパラメタ

o_bENOBitTrue=実行中
o_bOKBitTrue=エラーなし完了
o_bErrBitTrue=エラーあり
o_uErrIdWORDエラーID
o_uStatusIdWORDStatusID
o_uInputDataWORDInput DataのアドレスOffset
Error Code

DUT_RJ71EIP91_ReadIN_FBStatus

この構造体はFBの出力Statusを定義します。

DUT_Station_Connection2

次は接続するAdapterデバイスの構造体を作成します。

MAIN

Local変数追加

FC追加

D0からZ0を数え、Bit順にデータを振り分けます。

Z0:=zBase+1;

FC_GetStation1PortData.bP1A:=D0Z0.0;
FC_GetStation1PortData.bP1B:=D0Z0.1;

FC_GetStation1PortData.bP2A:=D0Z0.2;
FC_GetStation1PortData.bP2B:=D0Z0.3;

FC_GetStation1PortData.bP3A:=D0Z0.4;
FC_GetStation1PortData.bP3B:=D0Z0.5;

FC_GetStation1PortData.bP4A:=D0Z0.6;
FC_GetStation1PortData.bP4B:=D0Z0.7;

FC_GetStation1PortData.bP5A:=D0Z0.8;
FC_GetStation1PortData.bP5B:=D0Z0.9;

FC_GetStation1PortData.bP6A:=D0Z0.A;
FC_GetStation1PortData.bP6B:=D0Z0.B;

FC_GetStation1PortData.bP7A:=D0Z0.C;
FC_GetStation1PortData.bP7B:=D0Z0.D;

FC_GetStation1PortData.bP8A:=D0Z0.E;
FC_GetStation1PortData.bP8B:=D0Z0.F;

;

プログラム

IF EIPModule1_IN.b00_ModuleReady 

AND EIPModule1_IN.b1F_CommReady 

AND NOT bStop2Comm 

THEN

bStart2Comm:=TRUE;

ELSE

bStart2Comm:=FALSE;

END_IF;

fb_RJ71EIP91_GetInputData(

i_bEN:=bStart2Comm

,i_stModule:=EIP91_1

,i_uConnectionNo:=2

,o_bENO=>st_fb_RJ71EIP91_GetInputData.o_bENO

,o_bOK=>st_fb_RJ71EIP91_GetInputData.o_bOK

,o_bErr=>st_fb_RJ71EIP91_GetInputData.o_bErr

,o_uErrid=>st_fb_RJ71EIP91_GetInputData.o_uErrid

,o_uStatusId=>st_fb_RJ71EIP91_GetInputData.o_uStatusId

,o_uInputData=>D10

);

;

fb_R_Trig1(CLK:=st_fb_RJ71EIP91_GetInputData.o_bErr);

IF fb_R_Trig1.Q THEN

bStop2Comm:=TRUE;

END_IF;

IF bReset THEN

bStop2Comm:=FALSE;

END_IF;

Station1_PortData:= FC_GetStation1PortData(10);

結果

実行が無事に終わります。

そしてAdapterからにもデータが入っていますね。

最後

はーい、お疲れ様です。

もしなにか質問あれば、メール・コメント・Twitterなどでもどうぞ!

Twitterのご相談:@3threes2

メールのご相談:soup01threes*gmail.com (*を@に)

Footer_Basic

Please Support some devices for my blog

Amazon Gift List

Find ME

Twitter:@3threes2
Email:soup01threes*gmail.com (* to @)
YoutubeChannel:https://www.youtube.com/channel/UCQ3CHGAIXZAbeOC_9mjQiWQ

シェアする

  • このエントリーをはてなブックマークに追加

フォローする