こちらは新しい記事シリーズで、三菱のRJ71SEIP91-T4を使用し様々な通信テストを行います。今回はRJ71SEIP91-T4とOMRON NX1-9000とSL5500でCIP Safety Class 0 通信構築方法を0から説明します。RJ71SEIP91-T4がAdapterであり、OMRON NX1-9000はScannerになります。
さ、FAを楽しもう。
Reference Link
Reference Video
Safety Communications
CIP Safety モジュールはoriginator またはtargetとして動作し、CIP Safety 互換デバイスとの接続を確立し、固定スキャンで安全通信を実行します。
セーフティ・コミュニケーションには2つの方法があります:
- インスタンスIDを使用するインスタンス通信
- タグ名を使用するタグ通信
こちらはRJ71SEIP91-T4がTargetとして設定された場合、使用可能な設定です。
こちらはRJ71SEIP91-T4がoriginatorとして設定された場合、使用可能な設定です。
Overview
これはCIP Safetyの通信を見てみましょう。
CIP Safety Module As Consumer
CIP Safety モジュール ( consumer ) と入力デバイス ( producer ) の間でCIP Safety 対応デバイスからデータを受信するときは、CIP Safety モジュールをoriginator /consumerに設定します。
外部装置の状態は、CIP Safety 対応入力装置 (producer) の安全入力に保存されます。
セキュリティデータの転送により、CIP Safety モジュール(consumer)に接続された CPU モジュールのセーフティデバイス(受信データ)に、 CIP Safety 対応入力装置(producer)のセーフティ入力状態が格納されます。
CIP Safety Module As Consumer
CIP Safety モジュール ( producer ) と出力デバイス ( consumer ) の間でCIP Safety 対応デバイスにデータを送信するときは、CIP Safety モジュールをTarget/およびproducer に設定します。
CIP Safety モジュール ( producer ) に接続された CPU モジュールの安全装置 ( 送信データ ) がONコマンドに入っています。
安全データを転送することで、CIP Safety モジュール(producer)に接続された CPU モジュールの安全装置の状態が、CIP Safety 対応出力装置(consumer)の安全出力に格納されます。
CIPセーフティ対応出力機器(consumer)のセーフティ出力状態を外部機器に出力します。
Safety response time
安全応答時間とは、入力装置(センサやスイッチなど)から出力装置(アクチュエータなど)までの総応答時間(最大値)です。こちらのシステム構成の例では、非常停止スイッチを押してからロボットが停止するまでの時間が安全応答時間となります。
Calculation formula
総安全応答時間は、安全通信部の応答時間と安全装置の応答時間の和であります。
Response time of the safety communication part (ms)
Implementation
これからCIP Safety接続や安全プログラムを構築します。
Mels Side
最初に三菱とRJ71SEIP91-T4側を設定します。
Create New Project
GXWORKS3を起動し、Project>Newで新規プロジェクトを追加します。
今回記事で使用したのはR32SF Safety PLCです。
Safety PLCを使用するにはプロジェクトにUser nameとPasswordの設定が必要です。
User nameとPasswordを設定し、Okで進みます。
プロジェクトが作成されたら、Setting Changeをクリックします。
Use Module LabelのOptionをつけます。
Done!プロジェクトが作成されました。
Module Configuration
Hardware Configurationを設定するために、Module Configurationをクリックします。
こちらはModule Configurationの画面になります。
Add R35B
IQ-R Series>Main Base>R35BをDropし、今回記事で使用するBase Unitを追加します。
Done!
Add R61P
次はPower Suppy>R61Pで今回記事で使用する電源モジュールを追加します。
Done!
Add PLC into PLC Rack
R32SF Safety PLCをCPU SlotにDropします。
Done!それでCPUをRackにインストールしました。
Add R6SFM
CPU Extension>R6SFMでCPUの安全拡張ユニットを追加します。
Done!
Add RJ71SEIP91-T4
最後はNetwork>RJ71SEIP91-T4をSlot1にDropします。
Done!
Save the Configuration
次はModule Configurationを保存します。
OKで進みます。
M+Global
先程Module Label使用の設定を有効にしたので、Label>Global Label>M+GlobalというGlobal Variable Listが追加されました。
M+Globalには今回記事で使用したCPUやモジュール(もちろんRJ71SEIP91-T4)のラベルが定義されました。
Check your Configuration
Convert>Rebuild Allで一回Hardware Configuration問題ないかを確認しましょう。
Reset User
R32SF Safety PLC本体のPasswordを忘れた場合に、PLCデータを初期化し、すべてのデータをリセットしましょう。Online>User Authentication>Initialize all PLC Dataをクリックします。
Write User Data
次は今回プロジェクトのUser DataをCPUに書き込むため、Online>User Authentication>Write User information to PLCでUser dataをR32SF Safety PLCに書き込見ます。
Yesで進みます。
さらにYesで進みます。
Done!
Write to PLC
Hardware Configurationを一旦CPUに書き込むため、Online>Write to PLCを実行してください。
Check RJ71SEIP91-T4 IP Address
現在RJ71SEIP91-T4のIPアドレスを確認するため、Diagnosis>System Monitorをクリックします。
RJ71SEIP91-T4 モジュールをダブルクリックします。
RJ71SEIP91-T4の診断情報を確認でき、Module Information List Tabを開きます。
RJ71SEIP91-T4の詳細情報が表示され、P1=192.168.250.11を確認できました。
Configure Ethernet/IP Network
次はEthernet/IPネットワークを構築するため、RJ71SEIP91-T4>CIP Safety Configuration Toolをダブルクリックし、ツールを起動しましょう。
Enable Safety Target
RJ71SEIP91-T4にSafety Target Class0通信を有効にするため、使用するネットワークを選び>General>Operation Mode>Safety Target(Class 0)のCheckboxを入れます。
CIP Configuration Toolに”Safety Target (Class 0)”のTabが追加されました。
Add Class0 Instance
次はClass0 通信用のInstanceを設定します。
Direction
Class0 Instance通信方式を設定します。
- T->OはRJ71SEIP91-T4視点では出力データになります。
- O->TはRJ71SEIP91-T4視点では入力データになります。
Instance Number
次は該当するClass0通信のInstance番号を設定します。(528から)
Size
Sizeでは各Connectionの交換するデータサイズ(Byte単位)を設定します。
Max Subscribers
マルチキャスト通信の最大同時接続数を設定します。この項目は、方向がT->Oの場合のみ有効です。
Safety Operation
次はSafety Tabを開きます。
Safety Reset
RJ71SEIP91-T4の安全通信部分にセーフティリセットを実行し、TUNIDをリセットします。
Resetをクリックします。
Yesで進みます。
Done!
PLCを再起動しましょう。
Edit your TUNID
EditボタンをクリックしRJ71SEIP91-T4のTUNIDを設定します。
Time-basedもしくは手動で設定可能で、今回は手動でTUNIDを設定します。
Set TUNID
最後はSet TUNIDボタンをクリックし、RJ71SEIP91-T4のTUNIDを設定しましょう。
Done!
Listing
Configuration>ListingをクリックしRJ71SEIP91-T4のCIP Safety接続を確認します。
CIP Configuration Toolに各CIP Safetyの通信設定パラメータが表示されました。
Mapping
Safety Communication Moduleをクリックし>CPU Data Exchange TabでデータのMappingを行います。
こちらはCIP Safety<ー>CPU間をMappingする設定画面です。
Receive Labels Data
こちらは受信デバイス内の入力データのラベル名を設定します。
Cons. Status Prod. Status
内部のConsumer 安全接続ステータスのラベル名を設定します。
Receive Devices
GXWORKS内に受信デバイスを設定します。
Send Labels
送信デバイスのラベル名を設定します。
Send Devices
CIP Safetyで送信デバイスを設定します。
Export Label to GxWorks3
最後は”GxWorks3 Copy Labels”のボタンをクリックし、ツールで設定したMapping設定をGxWorks3 のプロジェクトに貼り付けましょう。
Label>Global Label>右クリック>Add New Dataします。
Category項目でSafetyを設定します。
Global Label List名を入力し、OKで確定します。
Done!
Safety Global Label Listを開き、”Show Details”をクリックします。
次はCtrl+Vで先ほど設定したラベルを貼り付けましょう。
Done!
Add Shared GVL
次はStandard/Safety SharedのGlobal Label Listを追加します。
安全・非安全のプログラムで使用する変数を定義します。
NonSafety-Program
非安全プログラムを作成します。
下図のようにRJ71SEIP91-T4の通信開始信号や各接続の状態を取得します。
RJ71SEIP91_1.stEIPCls1_P1.uSet_CommunicationStartupRequest_D:=1; gModuleOK:=RJ71SEIP91_1.bSts_ModuleReady; gConnection528OK:=RJ71SEIP91_1.stCIP_Safety_P1.bnDataLinkStatus_Out_D[1]; gConnection529OK:=RJ71SEIP91_1.stCIP_Safety_P1.bnDataLinkStatus_In_D[2]; |
Safey Program
今度は安全プログラムを作成するため、Fixed Scan>右クリック>Add New Dataをします。
CategoryをSafetyに選択します。
Data typeをProgram Blockに設定します。
三菱の安全プログラムではLadderのみで作成できます。
Done!
こちらは今回三菱側が作成した安全プログラムです。
Rung1/2
こちらはInstance528とInstance529の状態、またRJ71SEIP91-T4本体エラー発生してるかをCheckします。
Rung3/4/5
こちらはOMRON NX1にCIP Safety経由で送信するデータです。
Rung6/7
こちらはOMRON NX1から受信したデータです。
Write
Online>Write to PLCでプロジェクトをCPUにDownloadしましょう。
Reset Power
最後はIQ-R CPUの電源を入れ直しましょう。
OMRON Side
次はオムロン側を設定します。
Download EDS File
下記のLinkで三菱のRJ71SEIP91-T4のEDS FileをDownloadしてください。
https://emea.mitsubishielectric.com/fa/products/cnt/plc/allcpu/rj71seip91-t4.html#downloads
New Project
Sysmac Studioを起動し、新規プロジェクトを作成します。
Configure IP Address
Configuration and Setup>Controller Setup>build in EtherNet/IP Portを開き、アプリケーションに合わせてIPアドレスを設定します。
Configure Safety
Sysmac Studio側のCIP Safety接続や安全プログラムを構築していきます。
Insert SL5500
今回記事で使用するSL5500をHardware Configurationに挿入するため、CPU/Expansion Racks>CPU Rackをクリックします。
ToolboxからSL5500をプロジェクトに追加します。
Done!
次はDrop-ListからSL5500(安全部分)を設定します。
Sysmac StudioがSL5500の設定画面になりました。
Configure CIP Safety Connection
SL5500でCIP Safety(Originator)接続を追加するため、Connection Settingsを開きます。
こちらはCIP Safetyの接続画面になります。
Safety Network Number
Network1のSafety Network 番号を設定します。
今回はManaul 0004 1に設定します。
Done!
Open EDS File via EZ
RJ71SEIP91-T4のSafety Class0 通信 Instance番号を知りたいので、EZ-EDS ツールでRJ71SEIP91-T4のEDS Fileを開きます。
Install EDS File
EDS Library for CIP Safetyをクリックし、RJ71SEIP91-T4のEDS Fileを作成します。
New EDS Fileをクリックします。
こちらはSysmac StudioのEDS File作成画面です。
Vendor ID
Vendor IDはEZ-EDSで表示したRJ71SEIP91-T4 Vendor ID値をあわせてください。
Vendor Name
Vendor NameはEZ-EDSで表示したRJ71SEIP91-T4 Vendor Name値をあわせてください。
Product Type
Product TypeはEZ-EDSで表示したRJ71SEIP91-T4 Product Type値をあわせてください。
Product Type String
Product Type StringはEZ-EDSで表示したRJ71SEIP91-T4 Product Type String値をあわせてください。
Product Code
Product CodeはEZ-EDSで表示したRJ71SEIP91-T4 Product Code値をあわせてください。
Product Name
Product NameはEZ-EDSで表示したRJ71SEIP91-T4 Product Name値をあわせてください。
Major Revision
Major RevisionはEZ-EDSで表示したRJ71SEIP91-T4 Major Revision値をあわせてください。
Minor Revision
Minor RevisionはEZ-EDSで表示したRJ71SEIP91-T4 Minor Revision値をあわせてください。
Safety Input‐ Input Assembly Instance
Safety Input項目にあるInput Assembly InstanceはRJ71SEIP91-T4のCIP Configuration Toolに設定したT->O>Instance番号に合わせて設定しましょう。
Safety Input‐ Output Assembly Instance
次はSafety Input – Output Assembly Instanec番号を調べるために、Connection Manager>Connection4‐Safety Input Assemblyを開きます。
一番下には接続Pathという項目がありまして、64のところはSafety Input – Output Assembly Instanec番号になります(16進数)。
なので、Safety Input – Output Assembly Instanceに100を設定します。
Safety Input‐ Size
Safety Input AssemblyのデータサイズはCIP Configuration Toolsに設定したデータサイズに合わせていきましょう。
Safety Output‐ Input Assembly Instance
今度はSafety OutputのInput Assembly Instance番号を調べるため、またEZ-EDS ツール>Connection Manager5>Safety Output Assembly をクリックします。
Connection PathのところのSafety Output‐Input Assembly Instance番号が64であることがわかります(16進数)。
なので、Safety Output – Input Assembly Instanceに100を設定します。
次はConnection Pathの隣にCreate/Decode Pathのボタンがあります。
EZ-EDSツールで該当するConnectionのPathを分解することが可能です。
Safety Output‐ Output Assembly Instance
Safety Output項目にあるOutput Assembly InstanceはRJ71SEIP91-T4のCIP Configuration Toolに設定したO->T>Instance番号に合わせて設定しましょう。
Safety Output‐ Data Size
Safety Output AssemblyのデータサイズはCIP Configuration Toolsに設定したデータサイズに合わせていきましょう。
How to Know the Assembly ID?
では、EZ-EDSツールで実際RJ71SEIP91‐T4のSafety Assemblyの番号ってどうやって調べるのでしょう。EZ-EDSツールでParm54でSafety Assembly IDという項目があります。
このParam54には1−1023から設定可能であることがわかります。
Configuration Assembly
最後はRJ71SEIP91‐T4のConfiguration Assembly Instance番号もConnection Pathから調べることができます。ここでConnection Path=64(16進数)であることがわかります。
Configuration Assemblyに100を設定しましょう。
Result
こちらは今回RJ71SEIP91‐T4の設定結果で、OKで進みます。
OKで進みます。
Done!RJ71SEIP91‐T4のEDS Fileが生成されました。
Insert RJ71SEIP91‐T4
次はRJ71SEIP91‐T4をCIP Safetyネットワークに追加するため、先程生成したEDS Fileを選び>右クリック>Insertします。
Done!RJ71SEIP91‐T4が追加されました。
IP Address
RJ71SEIP91‐T4のIPアドレスを設定します。
三菱側のCIP Configuration ToolsにRJ71SEIP91‐T4を設定したIPに合わせていきましょう。
EPI
EPIもアプリケーションに合わせていきましょう。
Instance Name
Instance Nameはのちほど変数を定義するときに使用します。
I/O Mapping
次はRJ71SEIP91‐T4とCIP Safetyで交換したデータを安全プログラムで使いたいので、I/O Mapを開きます。
こちらはSafety変数の設定画面になります。
RJ71SEIP91‐T4>Safety input>Safety Input Data Byte1>右クリック>Create Device Variable with Prefixで安全変数を自動生成します。
Prefixを設定し、OKで進みます。
Done!
他の安全入力・安全出力領域にも同じ操作で安全変数を定義しましょう。
Safety Program
今度は安全プログラムを作成するために、Programming>POUs>Programs>DefaultのProgram0を開きます。
Internal
こちらは今回記事で使用した内部変数で、安全と非安全変数もあります。
Program
こちらは今回作成した安全プログラムです。
Network1
ネットワーク1はRJ71SEIP91‐T4に送信する安全データ(Byte1、0Bit目)を常時ONにします。
Network2
ネットワーク2は内部安全変数sONOFFをSF_SRの安全Function BlockでON/OFFを切り替えます。
Network3
ネットワーク3がネットワーク2に演算した結果sONOFFがTrueである場合、RJ71SEIP91‐T4に送信する安全データ(Byte1、7Bit目)をONにします。
Network4
ネットワーク4がネットワーク2に演算した結果sONOFFがFalseである場合、RJ71SEIP91‐T4に送信する安全データ(Byte1、6Bit目)をONにします。
Network5
ネットワーク5がRJ71SEIP91‐T4から受信したデータ(Byte4、0,1,2Bit目)をSF_EmergencyStopの非常停止入力として使用し、Blockの演算結果を、RJ71SEIP91‐T4に送信する安全データ(Byte4、0Bit目)を反映にします。
Download Configuration
最後は安全プログラムをNX1 CPUにDownloadするために、Controller>Onlineします。
Transfer>To Controllerします。
Executeで進みます。
Yesで進みます。
Yesで進みます。
少々お待ち下さい…
Yesで進みます。
Done!
Download Ethernet/IP Connection Settings
次はEthernet/IPの接続設定をControllerにDownloadするために、Tools>Ethernet/IP Connection Settingします。
Port1を右クリック>Editします。
Transfer to Controllerをクリックし、Ethernet/IP設定をNX1 Controllerに転送します。
Yesで進みます。
Ethernet/IP設定を転送するにはCPUを停めるかを選択してください。
少々お待ち下さい…
Yesで進みます。
Download Safety
最後は安全プログラムをDownloadします。
Controller>Onlineします。
SL5500をPROGRAM Modeに切り替えます。
Yesで進みます。
OKで進みます。
OKで進みます。
Done!
次はDebug Modeに入ります。
Yesで進みます。
Yesで進みます。
Done!
OKで進みます。
Yesで進みます。
Passwordが設定された場合は、Passwordを入力し、OKで進みます。
Verify Validationで安全プロジェクトをコンパイルします。
Yesで進みます。
Done!
OKで進みます。
Go RUN MODE
CPUをRUN MODEに切り替えます。
Yesで進みます。
Yesで進みます。
Done!
Okで進みます。
OKで進みます。
Loginします。
Result
RJ71SEIP91-T4とOMRON NX1のSL5500にもエラーなしの状態です。
CIP Safety Monitorを使用し、現在のRJ71SEIP91-T4と接続状態を確認しましょう。
Safety InputとSafety Output両方の正常な状態になっています。
次はOMRON側のSafetyプログラムを見てみましょう。
GXWROKS3でRJ71SEIP91-T4をOMRONにCIP Safety経由で送信する3つのBitをONにしてみます。
Done!OMRON NX側が正常にデータを受け取りました。
OMRON NX側が送信したデータがRJ71SEIP91-T4も無事に受け取りました。