こちらは新しいシリーズで、Schmersal社のPSC1-C-100-FB1 Safety Controllerを利用し様々な記事を展開していきます。第5話はPilzのlight curtainと接続したPSC1 ControllerとOMRONでEthernet/IP通信を構築します。
さ、FAを楽しもう。
Reference Video
Schmersal.PSC1-C-100-FB1 開封しました!
Reference Link
http://soup01.com/ja/category/schmersal_jp/psc1/
Implementation
こちらは今回の記事の構成です。
Schmersal Side
最初にSchmersal側を構築していきます。
Configure Fiedbus
PSC-C-100-FB1 安全コントローラーでEthernet/IP Fieldbus を有効にします。
Local Network>FieldbusのCheckboxを入れてください。
Local Networkの下にFieldbusの項目が表示されました。
次はFieldbusの設定を行います。
Network ProptotypeのDrop-ListからEthernet/IPに設定します。
Done!
次はEthernet/IP Fieldbusに通信するデバイスProfileを設定します。今回の記事ではProfile1(Logic data)を使用します。
Fieldbus名も自動的にEthernetIPに変更されました。
Done!
Program
こちらは今回Schmersal社のPSC-C-100-FB1に作成した安全プログラムです。
PSC-C-100-FB1とOMRON NX1の間の408Bit分のデータもちゃんと受け取れたかを確認するため、Fieldbusの出力Bitを一番後ろにある405番目と407番目に使用します。
また、入力データも一番最後の31Bit目を使用します。
Connect to the Controller
PSC1-C-100-FB1のCOM Portと専用ケーブルをPCに接続します。
SafePLC2>Home>Device Interfaceをクリックします。
Connection Settingsをクリックします。
今回はRS-232ケーブルを使用するので、COM PortをDevice Managerに合わせて設定しましましょう。
最後はConnectボタンをクリックし、CPUとSafePLC2を接続しましょう。
OKで進みます。それでSafePLC2とPSC1-C-100-FB1を接続しました。
Send Configuration
Send Configurationをクリックし、プロジェクトをPSC1-C-100-FB1に転送しましょう。
しばらくお待ち下さい…
Assign IP Address
EthernetIP ConfigurationをPSC-C-100-FB1にDownload完了したら、SafePLC2ツールとPSC-C-100-FB1を接続し、IP Administratorをクリックします。
こちらはSafePLC2ツールでPSC-C-100-FB1のIP設定を行うツールになります。
EthernetIP Tabをクリックし>適切のEthernet インタフェースを選び>Scan NetworkでPSC-C-100-FB1を検索します。
Done!PSC-C-100-FB1が見つかりました。該当するSafety Controllerを選び>IPアドレスを設定>Set IP Address Via DHCPをクリックしましょう。
Done!それでIPアドレスをPSC-C-100-FB1に割り当てました。
OMRON Side
今度はオムロン側を構築します。
Download EDS File
Ethernet/IP ネットワークを構築するには、Schmersal社のHPからEDSをDownloadしてください。
https://products.schmersal.com/en_IO/psc1-c-100-fb1-103008452.html
IP Settings
Configurations and Setup>Controller Setup>Build-in Ethernet/IP Portを開き、PSC-C-100-FB1と同じSubnetのIPアドレスを設定しましょう。
Global Variables
次はGlobal変数を定義します。
- DataFromPCSはPSC-C-100-FB1 Controllerからの受信データです。
- DataToPCSはOMORNから送信するデータです。
DUT
こちらは今回記事で定義した構造体になります。
arr408Bit UNION
こちらは408Bitと51Byteと同様のUNIONタイプになります。
xData ARRAY[0..407] OF bool bData ARRAY[0..50] OF byte |
arr31Bit UNION
こちらは32Bitと4Byteと同様のUNIONタイプになります。
xData ARRAY[0..31] OF bool bData ARRAY[0..3] OF byte |
dut_PCS_IN STRUCT
こちらはPSC1-C-100-FB1からEthernet/IP経由OMRON NX1に送信するデータをまとめた構造体になります。
siMode SINT siAliveCounter SINT stLogicData arr408Bit |
dut_PCS_Out STRUCT
こちらはOMROnからEthernet/IP経由PSC1-C-100-FB1に送信するデータをまとめた構造体になります。
stLogicData arr31Bit |
dut_PCS STRUCT
こちらは入出力データをまとめた構造体です。
stin dut_PCS_IN stout dut_PCS_Out |
Function Block
今度はFunction Blockを追加するため、Function Block>右クリック>Add>Ladderします。
Done!Function Blockが追加されました。
VAR
こちらはFunction BlockのInOutインタフェース設定になります。
- ioDataは先ほど定義したPSC-C-100-FB1 Controllerとデータ交換する構造体です。
- ioDataFromPCSはEthernetIP経由でPSC-C-100-FB1から受信したデータです。
- ioDataToPCSはEthernetIP経由でPSC-C-100-FB1に送信するデータです。
Program
こちらはFunction Blockのプログラム部分で、今回はInline-STを使用します。
Network1
ネットワーク1はPSC-C-100-FB1からの受信データをMode・LiveCounter・Logic Dataに分けるプログラムです。
ioData.stin.siMode:= BYTE_TO_SINT( ioDataFromPCS[0] AND 16#0F); ioData.stin.siAliveCounter:= BYTE_TO_SINT(ioDataFromPCS[0] AND 16#E0); FOR _iCounter:=0 TO 50 DO ioData.stin.stLogicData.bData[_iCounter]:= ioDataFromPCS[_iCounter+5]; END_FOR; |
Network2
ネットワーク2はPSC-C-100-FB1に送信するLogic Dataを出力するプログラムです。
FOR _iCounter:=0 TO 3 DO ioDataToPCS[_iCounter]:= ioData.stout.stLogicData.bData[_iCounter]; END_FOR; |
MAIN
こちらはMAINプログラムです。先ほど作成したFBを呼び出し、適切なパラメータを割り当てていきましょう。
stPCS.stout.stLogicData.xData[31]:=xReset; _FB_PSC( stPCS ,DataFromPCS ,DataToPCS ); ; xReady:=stPCS.stin.stLogicData.xData[0]; xESTOP:=stPCS.stin.stLogicData.xData[405]; xLightGurtain:=stPCS.stin.stLogicData.xData[407]; |
Ethernet/IP Configurations
次はEthernet/IPの接続設定を行います。
今回記事で使用したのはPort1なので、Port1を右クリック>Editします。
こちらはEthernet/IPの接続画面になります。
Register variables
Registration Allをクリックし、プロジェクトに定義したGlobal変数を登録します。
先ほど宣言したGlobal変数を登録しましょう。
Done!
Install EDS File
次はEDS Fileをインストールするため、Display EDS Libraryをクリックします。
Installをクリックします。
Schmersal HPからDownloadしたEDS Fileを選びましょう。
Done!SchmersalのはPSC-C-100-FB1がインストールされました。
Add new Etherent/IP Adapter
次はPSC-C-100-FB1をEthernet/IP のネットワークに追加するために、+ボタンをクリックします。
Node Address
Node AddressはPSC-C-100-FB1のIPアドレスになります。
Model Name
Model名はSchmersalのPSC-C-100-FB1安全コントローラーを選択します。
Revision
Revisionは1のみです。
Add
AddボタンをクリックしPSC-C-100-FB1を追加しましょう。
Done!
Add Devices to Network
先ほど追加したSchmersalのPSC-C-100-FB1をEthernet/IPネットワークに追加します。
Done!
下図のようにEthernet/IP設定を行いましょう。
- Input=101、192Bytes
- Ouput=100、68Bytes
Online
最後はプロジェクトをDownloadするために、Onlineします。
Download
To ControllerをクリックしプロジェクトをCPUに転送します。
Executeで進みます。
Done!
Transfer Ethernet/IP Setting
次はEthernet/IP設定をCPUに転送しましょう。
Yesで進みます。
Compare the Configuration
最後はCompare機能を使用しEthernet/IP設定がNX1と一致するかをCHECKします。
Done!
Result
Port1のEthernet/IP接続状態を確認します。
Done!OMRON NX1とSchmersal PSC-C-100-FB1がEthernet/IP接続できました。
こちらの動画で動作確認できます。
OMRON.Communicate with Schmersal PSC Controller via EthernetIP