今回FESTOのCPX-AP-I-EPモジュールからEthernet/IPのAdapterを立ち上げ、Ethernet/IPのScannerはキーエンスのKV8000を使用します。FestoモジュールのFirmware Update・IO-Link設定ツールも含めて紹介します。そしてContrinex社のスマートセンサーでは色々な細かいな設定ができ、Default上で使えこなせないことがありますので、一番簡単な方法としてはツール経由して、IODD FileをImportしIO LINK Sensorのパラメータを設定します。
よろしくおねがいします。
IODD?
IODDは(IO-Link Device Description)というXML形式のFileでIO-Link対応する製品ではメーカーからこのようなFileが用意されています。そのIODD Fileを使用すれば、IO Linkデバイスの設定が楽になります。
IODD Fileは一般的に2つのメイン部品から構成され、それはメーカー名-デバイス名-日付-IODD+IOLINK Versionとデバイス画像になります。
そしてそのIODD FileをIO Link Masterに取り込むと(今回の例ではFestoのもの)、機器メーカーなどの情報や設定はもちろん、保守製品リストの作成や予備品の手配時も簡単になります。
IODD Checker?
IODD CheckerはIODD Fileの交換性だけではなくIODD File自体が仕様に合ってるかどうかをCheckできます。注意するのはそのテストは義務です。
IODD Finder?
IODD FinderはIO-Link のCommunityの中のEnd-userがIODDを検索したりDownloadしたりできるWebサイトです。
COM1-3?
IO-Linkデータ伝送レートで、デバイスとマスタとの間で、サイクル当たり最高32ビットを伝送できます。 COM1=4.8 kBit/s、COM2=38.4 kBit/s、COM3=230.4 kBit/sの規格になっています。
Reference Link
CPX-AP-I-EP-M12
こちらは今回使用するCPX-AP-I-EP-M12です。Ethernet/IPとModbusTCPにも対応できる柔軟なInterfaceです。そして今回の記事ではEthernet/IPですが、次はModbus TCPの設定も紹介します。
LED
モジュールの各LEDの意味になります。
Rotary Switch
モジュールに3つのRotaryスイッチがあり、モジュールのIPアドレスを設定できます。
0=DHCPを使用でき、1-255までは固定IP設定になります。
もし1-255の場合は、Ethernet/IPやModbus TCPやモードを使用することによって一番左にあるx100の設定が変わります。
Ethernet/IPの場合:300-555になります。例えば今回の記事の例では192.168.1.145を設定しますので、Rotaryスイッチの設定はx100=4、x10=4、x1=5になります。
Modbus TCPの場合:600-855になります。
そしてFactoryリセットは900です。
今回の記事では192.168.1.145なので、Rotaryスイッチは645の設定にします。
Download EDS File
FestoのWebからEDS FileをDownloadしてください。EDS FileあるとEthernet/IPのネットワーク構築は楽になります。
Configuration
こちらは今回の構成です。Ethernet/IPのScannerはキーエンスのKV8000になります。
Implementation1 Basic Configuration
最初にFestoのCPX-AP-I-EPを立ち上げます。
Festo Side
Rotary Switchで設定したIPアドレスをWeb Browserからアクセスします。
各モジュールの詳しい情報をWeb Serverから確認できます。
Diagnosis
System>Diagnosisをクリックするとモジュールの診断情報を確認できます。
Username/Password
Configuration>Username/PasswordからUser名・Passwordを変更できます。
CPX-AP-I-4IOL-M12
IOLINKモジュールのPort1をIO-LINK Modeとして設定します。
19番の20071:0をIOL_AUTOSTARTすればOKです。
Loginが必要です。
Usernameはadminで、Passwordはモジュールに印字された製造番号になります。
CPX-AP-I-AI-U-RTD-M12
次はアナログ入力モジュールのチャネル1を設定します。
20043:0を0-10V測定し、20044:0と20045:0を32000と0に設定します。
つまり0-10Vを0-32000にScalingするようになります。
Assembly View
モジュールのAssembly番号やデータ交換サイズを確認するために、Ethernet/IP>Assembly Viewをクリックします。
Festoのモジュールは非常に優しく該当するモジュールのすべてのデータに対してOffset・サイズもリストアップしてくれます。
Drop Listから確認したいAssemblyを選べばOKです。
Keyence Side
Create New Project
KV STUDIOを起動し、File>New projectで新規プロジェクトを作成します。
プロジェクト名を入力しOKで確定します。
もし該当するFolderがなければ作成します。
Done!新しいプロジェクトが作成されました。
Configure the EtherNet/IP Scanner
次はKV8000のEthernet/IP ネットワークを構築します。
Unit Configuration>KV-8000>Ethernet/IPをクリックします。
Manaul(つまり手動でネットワークを構築)で進みます。
Register the EDS File
KV StudioにEDS Fileを登録します。EDS File>Regをクリックします。
先程FestoのWebからDownloadしたEDS Fileを開きます。
Done!EDS FileをKV Studioに登録しました。
Configure the Festo Adapter
次はFestoのCPX-AP-I-EP Ethernet/IP AdpaterをNetworkに追加します。右のUnit ListからCPX-AP-I-EPをそのままKV-8000のところに引っ張ります。
Node AddressとIP Addressの設定画面が表示されます。
まずIPを実機に合わせて設定しOKで進みます。今回の記事では192.168.1.145です。
Done!Festo CPX-AP-I-EPが追加されました。
Change
KV-8000のIPアドレスに実際のアプリケーションに合わせてください。
Connection name
Connection NameはFesto モジュールのAssembly Viewに該当します。例えばI/O Con. Fixed SINT32はつまり32 BytesのAssmebly 112になります。
Connecton pointも自動的に変わりますので特に気にする必要がありません。
Doesn’t Work..?
ですが、最初は繋がらなかったです。WiresharkからみるとRevision mismatchのエラーがFestoから返ってきました。つまりEDS Fileのバージョンが合わないっことですね。
いまKV StudioではFestoデバイスのEDS FileはRevision 1.3です。
CPX-AP-I-EP-M12のWeb Serverにアクセスし、EtherNet/IP>EDS Fileで実機のEDS FileをDownloadします。
そしてもう一度KV Studioに登録すると、Revisionが1.3ではなく1.1でした。それは繋がりませんね。
なので、この1.1で構築したEthernet/IP構成をCPUにDownloadしたら、CIP I/O Packagesが流れるとわかります。つまりFestoデバイスとキーエンスKV8000は接続成功です。
Implementation-2 Firmware
次は各Moduleのパラメータを設定する…と思って電源を入れ直したら設定した項目がDefaultに戻りました。うん…もしかしてFirmwareが古すぎるのか?と思って(先程Web ServerからDownloadしたEDS FileもV1.1で、FestoのWebからDownloadしたものはV1.3)、モジュールのFirmwareをアップデートしてみます。
Update Module Firmware
下記のLinkからCPX-AP-I-EP-M12の最新FirmrwareをDownloadしてください。
次はモジュールのWeb Serverにアクセスし、Configuration>Firmwareを開きます。
FimwareのUpload画面が表示されました。BrowseボタンでFirmwareをUploadします。
先程DownloadしたFirmwareを選び、Openします。
送信ボタンでFirmwareをUploadします。
しばらく待ちます。
Done!モジュールの電源を入れ直せばOkです!
もう一度WebServerにアクセスすると、Modbus TCP の項目が増えました。
Configure and Store the Parameters
そして一番大事なのはConfigurationのメニューからStored Parameterという操作ができるようになりました。
Store/Update current valuesのCheck入れ、送信ボタンでパラメータを保存します。
Done!それで電源を入れ直してもパラメータは消えなくなります!
Implementation-3 IO-Link Variable Size
今回はCPX-AP-4IOL-M12モジュールのデータザイアスを変更しようと思います。
が、(Not Changeable -Connected to PLC)の表示が出てきます。つまりモジュールがPLCなどの上位Scannerと繋がっていますので変更できません。
一旦KV8000のLANケーブルを抜いて…まだ変更できません。今度は(Not Changeable – Stored Parameter active)、つまり保存されたパラメータが有効になってるのが原因です。
Stored Parameterの項目にはたしかにパラメータ削除のようなことができるので、もう一度触ってみます。MenuからConfiguration>Stored Parameterをクリックします。
なので先の画面で”Restored Default Parameter values(Delete stored)”のCheckboxを選び>
送信します。
変更できるようになりました!
Connection Settings in KV Studio
まずConnection NameをI/O Con.Fixed DINT128に変更します。Connection Pointは自動的にIN_122とOUT_123に変わります。
次はAssign Deviceをクリックします。
IN(Input from adapter)のTabから振り分けのデバイス種類を設定します。既存プログラムにかぶらないように注意しましょう。
OUT(output to adapter)のTabから振り分けのデバイス種類を設定します。既存プログラムにかぶらないように注意しましょう。
Implementation-4 Configure IO LINK
Download Configuration Tools
まずFestoのWebからIO LINKモジュールの設定ツールをDownloadします。
https://www.festo.com/us/en/a/8086604/?q=io%20link~:festoSortOrderScored
Install Configuration Tools
Configuration ToolsのインストールFileをダブルクリックしインストールします。
言語を英語に選び>OKで進みます。
ライセンス同意し、Next>します。
インストールの場所を設定し、Next>で進みます。
DesktopにShortCutを作成します。
Installで開始します。
しばらく待ちます。
Done!
Launch SoftwareConfig
Launch it
Festo IO-Link Toolを起動します。
Toolの画面はこのようですね。
Search Master
右のTopology項目から”Search Master”をクリックしIOLINK Masterを検索します。
今回記事で使用するEtherNet/IPモジュールCPX-AP-I-EPと繋がってるIO LINK Masterが見えました。
Assign to topologyをクリックしデバイスをプロジェクトに追加します。
Done!Festo IO-Link-ToolにIOLINK Masterが追加されました。
Go Online!
緑のPlay Buttonでデバイスと接続します。
“read from master”をクリックし現在IO−LINK Masterの設定を読み込みます。
Done!実機はいまPort1だけIO-LINK Portとして構築され、他のPortはすべて無効になっています。
Download IODD
次はIODD Finder WebからContrinex 社のIDWE-M12MM-NMS-A0スマートセンサーのIODD FileをDownloadします。
https://ioddfinder.io-link.com/#/
Import IODD
Festo Configuration Toolsの右にあるCatalogからIODD FileをImportできます。右クリック>Import IODDします。
…のボタンをクリックし、先程DownloadしたIODD Fileを開いてください。
Importボタンをクリックします。
Done!CatalogからContrinex 社のスマートセンサーが追加されました。
Insert
次はPort1に今回使用するIDWE-M12MM-NMS-A0をPort0にImportします。CatalogからIDWE-M12MM-NMS-A0を選択し、そのままPort1にひっばればOKです。
Done!Port1を設定しました。
Download Configuration
次はConfigurationをFestoのIO-LINK MasterにDownloadします。
Disconnect with plc
でもFesto CPX-AP-I-EPのモジュールはPLCなどの上位システムと繋がってるとConfiguration Downlaodできませんので、一旦モジュールと上位システムのEthernet/IPのFieldbusの接続を切り離してください。
よし!Downloadできました。
OnlineするとContrinex 社のセンサー情報やパラメータを一覧できました!
Upload
ではまずContrinex 社のセンサーパラメータをUploadし、別保存でBackupしてください。
Configure your IO Link Devices
Reset
まずSystem CommandsからDevice ResetやFactory Resetなどして、デバイスをリセットしてください。
ALR Setting
こちらはContrinex のALR1/ALR2/ALR3のアラーム設定です。
ALR1はDistance、つまり距離を計測する機能です。Thresholdは80.00です、つまり測定値が80を超えるとALR1=Trueになります。
ALR3は温度の測定で、30.00を超えるとALR3=Trueになります。
MHM
MHMは測定実効値の設定です。
MHM Sourceは測定する種類、0=Distance、つまり距離です。
MHM Range Start=0、MHM Range 110.0はつまり測定値は0-110になります。
Process Data
Process Data TabをクリックするとContrinex のスマートセンサーの4 Bytes Input/ 1 Bytes Outputの状態を確認できます。
Implementation- Program in KV−Studio
最後はKV Stuidoでプログラムを作成し、FestoのCPX-AP-I-EP-M12が繋がってるモジュールを制御します。
DUT
構造体を作ります。Structureの中にDUT_SMART_IDWx_MxxMM_NMS_A0を作成します。
Contrinex 社のセンサー IOLINK データ Byte0のデータをBOOLに分解します。
Process Data Mapping
注意するのはContrinex 社センサーのByte順番はKeyence CPUと異なるので、下図のように4 BytesのIOLINKデータをKV8000に分配してください。
Global Variables
W00からCPX-AP-I-EP-M12と繋がってる各モジュールの入出力データをGlobal変数内で定義します。
Program
こちらは自分が作ったサンプルプログラムです。
//Digital Output AP_EP_M3_DO.0:=AP_EP_M3_DI.0; AP_EP_M3_DO.1:=AP_EP_M3_DI.1; AP_EP_M3_DO.2:=AP_EP_M3_DI.2; AP_EP_M3_DO.3:=AP_EP_M3_DI.3; //Analog Input ScalingValue:=(INT_TO_REAL(AP_EP_M4_AI[0])/32000.0)*10.0; // PQIs[0]:=AP_EP_M2_PQI & 16#000F; PQIs[1]:=AP_EP_M2_PQI & 16#00F0; PQIs[2]:=AP_EP_M2_PQI & 16#0F00; PQIs[3]:=AP_EP_M2_PQI & 16#F000; //IO Link Sensor SMART_IDWx_MxxMM_NMS_A0 //Sensor Status SMART_IDWx_MxxMM_NMS_A0_Status.OSS1:=AP_EP_M2_P0_IN[1].8; SMART_IDWx_MxxMM_NMS_A0_Status.OSS2:=AP_EP_M2_P0_IN[1].9; SMART_IDWx_MxxMM_NMS_A0_Status.TSS:=AP_EP_M2_P0_IN[1].10; SMART_IDWx_MxxMM_NMS_A0_Status.SSC1:=AP_EP_M2_P0_IN[1].11; SMART_IDWx_MxxMM_NMS_A0_Status.SSC2:=AP_EP_M2_P0_IN[1].12; SMART_IDWx_MxxMM_NMS_A0_Status.ALR1:=AP_EP_M2_P0_IN[1].13; SMART_IDWx_MxxMM_NMS_A0_Status.ALR2:=AP_EP_M2_P0_IN[1].14; SMART_IDWx_MxxMM_NMS_A0_Status.ALR3:=AP_EP_M2_P0_IN[1].15; //Scaling Value SMART_IDWx_MxxMM_NMS_A0_ScalingValue:=AP_EP_M2_P0_IN[1] & 16#00FF; //Measure Value SMART_IDWx_MxxMM_NMS_A0_MeasureValue:=(INT_TO_REAL(SWAP(AP_EP_M2_P0_IN[0]))/16383.0)*110.0; //Enable,Disable the Sensor,0=Enable AP_EP_M2_P0_OUT[0].0:=AP_EP_M3_DI.2; |
Result
ProjectをKV8000にDownloadし、Festo CPX-AP-I-EP-M12からデータが取りましたね!
アナログ入力値とContrinex 社のスマートセンサーにもデータ取れました。
IOLINK Sensorの現在値はFestoのIO LINKからみると一致しています。
Scope
最後はFesto IO-LINK Toolに便利な機能を紹介します。それはScope機能です。
Scope tabを開いてください。
右クリック>Configuaritonをクリックします。
Monitorしたい数字をVisableのところにCheckし、Colorなども設定が可能です。
Done!
こちらの動画から実際モジュールの正常状態を確認できます。