今回の記事では、PilzとOMRONのPLCはそれぞれ異なるEXOR ex707MのPortに接続されていて、EXOR ex707Mの中にCodesysがインストールされ、片方はOMRONとEthernetNet/IP Tag通信、もう片方はPilzとEthernetNet/IP Assemblies通信させ、両方取ったデータをGatewayとして交換します。
さ、はじめよう。
Reference Link
Configuration
こちらは実際今回の記事にあるHardware Configurationです。Tag通信しかいできないCJ2B-EIP21に困ったらぜひこの記事を参考してください。
Implementation
Pilz Side
Pilz側の詳しい設定やプログラム手法は先ほどのReference Linkを参考にしてください。
IP Address
Hardware Configuration>IP addressでPilz PSU4000のIPアドレスを設定してください。
Resources Global List
Resources Global ListでEthernet/IP Adapterの変数を定義します。
Program
次は簡単なプログラムを作成します。下図のプログラムではEthernet/IP経由で取得したデータをそのまま出力します。
Ethenret/IP Setting
Ethernet/IPの設定を行います。
Scanner Output Assembly Objectを32Bytesに設定します。
Scanner Input Assembly Objectを32Bytesに設定します。
Mapping Program to Task
次はプログラムをTaskに割り付けます。
Codesys Side
こちらは今回記事で使用したCodesys Versionです。
New Project
File>New Projectで新規プロジェクトを作成します。
Standard Projectを選び、OKに進みます。
Select Target
次は該当するプロジェクトのDevice Targetを設定します。
今回記事で使用するのはEXOR社のex707Mなので、Drop-Listからex700M/64を選びましょう。
Done!プロジェクトが作成されました。
Scan Network
次はCommunication Settings>Scan NetworkでEXORデバイスを検索しましょう。
Done!ex707Mシリーズのデバイスが検索できました。そのデバイスをクリックします。
Done!Codesys IDEとEXORデバイスの接続が確立しました。
Add Ethernet Driver<Ethernet/IP Adapter>
Device右クリック>Add DeviceでEthernet Driverを追加します。
Add Device画面が表示されます。
Ethernet Adapter>Ethernetを追加しましょう。
Add Ethernet/IP Adapter
次はEthenret Driverを選択し、右クリック>Add Deviceしましょう。
Fieldbues>EtherNet/IP>EtherNet Adapterを選び、Add Deviceで追加しましょう。
Done!
Add Ethernet/IP Module
次はEthenret/IP Adapterの通信Assembliesを追加するため、EtherNet/IP Adapterを右クリック>Add Deviceします。
EthernetNet/IP Moduleを選び、Add Deviceで追加します。
Assemblies Configuration
先ほど追加されたAssembliesをダブルクリックし>Assemblies画面を開きます。こちらはCodesys EtherNet/IP Assembliesの設定画面です。
O–>T
Comsuming Assemblyの項目でAddボタンをクリック、新しいAssemblyを追加します。
Assembly Objectの設定画面に変わります。
Data TypeをBYTEに設定し、Countを20に入力します。
つまりAssembly Objectは20Bytesのデータを占有することになります。
Done!
T–>O
Producing Assembly 側にも先程と同じ設定で行きましょう。
Export EDS File
最後はEthernetNet/IP AdapterのEDS FileをExportします。
General>Export EDS FileでEDS FileをExportしましょう。
Add Ethernet Driver<Ethernet/IP Scanner>
Device右クリック>Add DeviceでEthernet Driverを追加します。
Ethernet Adapter>Ethernetを追加しましょう。
Install EDS File
次はPilz PSSU4000のEDS FileをCodesys側でインストールするため、Tools>Device Repositoryをクリックします。
Installをクリックし、PilzのHPからDownloadしたEDS Fileをインストールしましょう。
Add Ethernet/IP Scanner
次はEthenret Driverを選択し、右クリック>Add Deviceしましょう。
PilzのPSS 4000を追加しましょう。
Done!
Configure the IP
先ほど追加したPSS 4000をダブルクリックし、GeneralのTabでIPアドレスを設定しましょう。
Edit Connection
次はConnectios Tabを開き、Edit Connectionをクリックしましょう。
こちらはCodesysのEthernetNet/IP 接続の設定画面になります。
O–>T SizeとT–>O SizeをPilzのPSS 4000プロジェクトに合わせて設定してください。
Done!
Add GVL
今度はGlobal Variable Listを追加するために、Application>右クリック>Add Obejct>Global Variable Listを開きます。
GVL名を入力します。
OMRONとPilz側にMappingする変数を定義します。
{attribute ‘qualified_only’} VAR_GLOBAL OMRONInByts,PilzInBytes:ARRAY[0..32]OF BYTE; OMRONOutBytes,PilzOutBytes:ARRAY[0..32]OF BYTE; END_VAR |
Add POU
IOデータをGATEWAY機能として働くのプログラムを作成します。
POU名を入力し、POUを作成しましょう。
こちらはプログラムです。
MEM.MemMove( pSource:=ADR(GVL_1.OMRONInByts) ,pDestination:=ADR(GVL_1.PilzOutBytes) ,uiNumberOfBytes:=SIZEOF(GVL_1.OMRONInByts) ); MEM.MemMove( pSource:=ADR(GVL_1.PilzInBytes) ,pDestination:=ADR(GVL_1.OMRONOutBytes) ,uiNumberOfBytes:=SIZEOF(GVL_1.OMRONInByts) ) ; |
Add Task
高速で実行するTaskを追加するため、Task Configuration >Add Object >Taskをクリックします。
Task名を入力します。
Configure Task
IntervalでTaskのCycle Timeを設定し、Add Callをクリックします。
先ほど追加したPOUを選びましょう。
それでPOU IOが1msで実行するようになります。
Download
最後はプロジェクトをRuntimeにダウンロードしましょう。これでCodesys側が完了です。
OMRON CJ Side
最後はOMRON側です。
Configure EIP
CX-programerを開き、IO Table and Unit SetupでHardware Configurationを行います。
Ip address
Build-in Port/Inner Board>CJ2B-EIP21をクリックします。
IPアドレスをアプリケーションに合わせて設定しましょう。
Start Network Configurator
次はEthernetNet/IPのネットワークを構築するため、CJ2B-EIP21を右クリック>Start Special Application>Start with Settings Inheritedをクリックしましょう。
Network Configuratorを起動します。
Done!
Connect
PCとCPUでUSBやEthernetを接続し、Network>Connectをクリックします。
接続Interfaceを設定します。今回はUSB経由です。
BackPlane>CJ2B-EIP21>TCP-2の接続Interfaceを設定しましょう。
Use the existing networkを設定し、Okで進みます。
Done!
Upload
現在CPU内部にあるConfigurationをUploadするため、Network Configuratorの空き部分に右クリック>Uploadします。
Yesで進みます。
UploadしたいEthernetNet/IP機器を選択しましょう。
Done!CJ2B-EIP21がUploadされました。
Install EDS File
CodesysのEDS FileをNetwork Configuratorにインストールするため、EDS File>Installします。
先ほどCodesys IDEでExportしたEDS Fileを選びましょう。
Done!
Add to Ethernet/IP Network
CodesysのEthernetNet/IP Moduleをダブルクリックし、EthernetNet/IP ネットワークに追加します。
Done!CodesysのEthernetNet/IP Adapterが追加されました。
Change IP
先程追加したデバイスを右クリック>Change Node AddressでIPアドレスを変更します。
アプリケーションに合わせてIPアドレスを変更しましょう。
Configure Tags
EDS FileからImportされたCodesys EthernetNet/IP Adapterをダブルクリックしすると、先程Codesys IDEで設定したIOデータがありました。
次はCJ2B-EIP21をダブルクリックし、Tag SetsのTabを開き、通信Tagを追加します。
Edit Tagsをクリックします。
こちらの画面からTagの追加・変更などの作業を行います。
Newをクリックし新しいTagを追加します。
NameのFieldにDなど、OMRON CPUのデバイスを入力し、実際該当するTagとつながるとOMRONのMemoryと紐つけましょう。
下図の例では、D2000から2Bytes、つまりD2001までをTagとリングします。
今回ではD10100から20BytesのデータとTagをLinkさせます。
Configure Connections
次はCodesys<–>OMRON CJ2B-EIP21のTag通信接続を設定します。
ConnectionsのTabを開くと、Unregistere Device Listには先程登録したCodesys デバイスが表示されるはずです。
そのデバイスを選び>下の矢印をクリックします。
Done!いまCJ2B-EIP21とCodesys感のConnectionを設定しました。
次は2つのデバイス間で通信するTag Connectionを追加するため、Newをクリックします。
Adapter Edit Connectionの画面が表示されます。
Connection I/O Type
Connectio I/O Typeをアプリケーションに合わせて設定しましょう。
今回の例ではExclusive Ownerを設定します。
Input Tag Set
次はInput Tag Setを設定します。
Done!
Output Tag Set
Output Tagにも同じように設定します。
これでOkです。
Result
下図のように、CJ2B-EIP21とCodesys間でTag通信のConnectionを設定しました。
Download
最後はNetwork ConfigurationをCPUにDownloadしましょう。
Yesで進みます。
しばらく待ってください…
エラーを無視してください。
Program modeを切り替えて、ConfigurationをDownloadしましょう。
しばらく待ってください…
Result
Done!CodesysとCJ2B-EIP21がCIP I/Oを通信してます。
次はCX-ProgrammerからDメモリを確認しましょう。
PLC>Edit>Memoryをクリックします。
こちらはPLC Memoryを監視する画面で、実際入出力データを確認してください。
今度はNetwork ConfiguratorからCJ2B-EIP21の状態を確認しましょう。
CJ2B-EIP21>右クリック>Monitorします。
133=192.168.1.133=CodesysのIPアドレスで、現在Codesysと通信状態が正常であることを確認できました。
Connection Tabにも通信状態を確認できます。
下図のようにOMRONから書き込んだデータをPilz側にも反映されます。
EXORのHMI側ではCodesysのStackを入れたら、大体20%のCPU使用量になります。