Festo#CPX-AP-I-EC EtherCAT Moduleを使ってみよう

今回の記事ではFestoのCPX-API-EC-M12を使用しEtherCAT Networkを立ち上げ、IO-LINK Masterモジュール・DIDOモジュール・アナログ入力モジュールからデータを取得や制御します。EtherCAT MasterはBeckhoffのC6920 IPCとTwinCAT3で、IO Link SensorはContrinex社のものになります。どうぞよろしくおねがいします。

Thanks!

この記事が出来上がるのはベッコフ日本法人ベッコフオートメーション株式会社さま・フエスト株式会社・Contrinexジャパンさまから機材を貸してくださったおかけです。誠にありがとうございます。

ベッコフ日本法人ベッコフオートメーション株式会社

IPC6920-005はベッコフ日本法人ベッコフオートメーション株式会社さまが貸してくださったものです。Beckhoff Automationは1980 年会社設立、PCベースの制御技術をベースにしたオープンオートメーションシステム導入の先頭に立つドイツ企業です。

ベッコフ日本法人ベッコフオートメーション株式会社は、2011年に横浜に本社、2017年に名古屋オフィスを設立しました。

こちらはベッコフ日本法人ベッコフオートメーション株式会社様のホームページです。

どうぞよろしくお願いします。

https://www.beckhoff.com/ja-jp/

フエスト株式会社

CPX-AP-I Seriesはフエスト株式会社さまから貸していただいたものです。Festoはオートメーション技術における世界的リーダーであり、空気圧サーボアクチュエータ・リモートI/O・ソフトウェアなど、FA・PAに様々な信頼性の高い製品を提供しています。それ以外にも、技術教育機関として色んな企業向けのトレーニングなどにも力を注いでいます。

こちらはフエスト株式会社さまのホームページです。

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

https://www.festo.com/jp/ja/

コントリネックス・ジャパン

IO-Link Sensorははコントリネックス・ジャパンさまが貸してくださったものです。Contrinex社はスイスの会社で、複雑な自動化およびスマートファクトリアプリケーション向けのスマート センサーのメーカーで、50年以上の技術から誘導および光電センサー、ならびに安全およびRFIDシステムの技術を常に提供し続けています。

こちらはコントリネックス・ジャパンさまのホームページです。

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

https://www.contrinex.com/en-jp

CPX-AP-I-Series?

今回紹介するCPX-AP-IシリーズはFestoの新しいIP65/67 IOシステムであり、ホストシステムとして入出力モジュールや既存のバルブターミナルと統合できます。

CPX-AP-IはInterfaceモジュールとFunction Moduleに分かれており、Interfaceモジュールはいわゆる上位システム(PLCやPC)などと接続するモジュールです。なので、PLCやPCからみると、CPX-API−IはSlaveです。

一本、CPX-AP-IはMasterでもあり、FestoのAPC Comを使用しデジタル入力・IO LINK Masterモジュールなどからデータをまとめたりコマンド送信したりしています。なので、Function ModuleからみるとCPX-AP-IはMasterです。

Your Module Selections

  • IO-Linkマスタ
  • デジタルI/Oモジュール
  • アナログインプットモジュール
  • Interface to the valve terminal
  • Bus Interface

Bus Interface

IO-Link Master

2,4,8,16,32 Bytesの領域を構築できるIO-LINK Masterで、今後の記事で使用するのはCPX-AP-I-4IOL-M12になります。

Digital IO Modules

基本的なデジタル入力・出力モジュールで、今後の記事ではCPX-AP-I-4DI4DOを使用します(PNP Type)。

Analog Input Modules

電流・電圧・温度などを計測できるアナログ入力モジュールで、今後の記事でCPX-AP-I-4AI-U-I-RTD-M12を使用します。

Interface to the valve terminal

Topology

現時点では1ラインまたは2ラインの配線になります。スタートとツリートは将来対応する予定になります。そして各モジュール間はのケーブル長最大50mまで、数は最大80個までになります(配線方式はM12/M8を選択可能)。

Address Space

CPX-API-IはEthernet/IP・Profinet・EtherCAT3種類のLine-upがあります。

CPX-AP-I-PN-M12

PN=Profinetで、最大Inputサイズ=1024Bytes・最大Outputサイズ=1024Bytesになります。

CPX-AP-I-EC-M12

EC=EtherCATで、最大Inputサイズ=2048Bytes・最大Outputサイズ=2048Bytesになります。

CPX-AP-I-EP-M12

EP=Profinetで、最大Inputサイズ=1024Bytes・最大Outputサイズ=1024Bytesになります。

CPX-AP-I-EC-M12

こちらは今回使用するEtherCAT Interfaceモジュールです。

LED

モジュールの各LEDの意味になります。

Rotary Switch

モジュールに3つのRotaryスイッチがあり、EtherCATのExplicit Device ID(HEX Format)を設定できます。(Factory Setting=0)

0=Explicit Device IDが設定しない

1-4095=Explicit Device ID

Configuration Example

こちらはCPX-AP-I Seriesを使用するときの構築例です。今回使用するのはCPX-AP-I-EC-M12(EtherCAT)ですが、Main ControllerがSupportするIndustrial Protocolに合わせていただければよいと思います。Main ControllerとCPX-AP-IのInterface モジュールはIP67のRJ45Connectorと接続し、電源供給は24vで型式NEBL-M8G4-E-5-N-LE4のCableを使用します。最後はInteface モジュールとIO モジュールなどの接続はNEBL-M8G4-E-0.5-N-M8G4(24v電源)とNEBC-D8G4-ES-2-NS-D8G4-ET(AP-COM)でLinear配線すればOKです。

Download ESI File

今回はEtherCAT CPX-AP-I-EC-M12を使用しますので、下記のLinkからESI FileをDownloadしてください。

https://www.festo.com/net/en-us_us/SupportPortal/Downloads/656225/728180/Festo-CPX-AP-EC-20221128.zip

このようなZipがDownloadされました。

Implement-TwinCAT

今回はBeckhoff のIPC 6920 とTwinCATをMain Controllerとして検証します。

Notes

CPX-AP-I-EC-M12

Wiring

こちらはCPX-AP-I-EC-M12各Portの配線です。

CPX-AP-I-4IOL-M12

Wiring

こちらはCPX-AP-I-4IOL-M12各Portの配線です。

Mappings

こちらは各Portn状態を確認できるByte PQIです。

CPX-AP-I-4AI-U-I-RTD-M12

Wiring

こちらはCPX-AP-I-4AI-U-I-RTD-M12各Portの配線です。

そして今回使用するのは0-10vの電圧入力なので2をプラス側に繋がり、3,4を短絡しマイナス側に繋がってください。1はSensorの電源供給24vになります。

Range

こちらはモジュールが0−10vの計測範囲に設定されたときのDigital値です。

CPX-AP-I-4DI4DO

Wiring

こちらはCPX-AP-I-4DI4DO 各Portの配線です。

IOLINK Sensor

今回使用するのはContrinexのSmart IO-Link Sensorになります。第1話ではまず配線やデータMappingなど簡単な説明を取り上げ、次回は詳しく設定などを説明します。

このIO-LINK Sensorは4BytesのInputと1ByteのOutputがあります。

Wiring

Bn=茶色、Bk=黒、Wh=白、Bu=青です。

Pin 

こちらはPin配置です。

Input Data

4Bytes入力データMappingで、0Byte目はSensor状態・1Byte目はスケーリング値・2+3 Byte目は測定値になります。

Byte0 Mapping

0Byte目の各Bit割り当てです。

Output Data

Output Dataは1Byteになります。

DIS Mapping

0=Sensor無効・1=Sensor有効します。

Install the ESI File

FestoのHPからDownloadしたESI FileをTwinCAT/3.1/Config/io/EtherCAT Folderに格納します。

Add EtherCAT Master

I/O>Devices>Add New ItemでEtherCAT Masterを追加します。

EtherCAT>EtherCAT Masterを選び>OKします。

Beckhoff IPC で構築するEtherCAT Network のLAN Interfaceを選びます。

AdapterのTabからも選択されたNetwork Adapterを確認・再確認できます。

Try to Scan it

では一回Scan機能を使ってFesto CPX-AP-I-EC-M12をScanしてみます。

一応CPX-AP-I-EC-M12が見つかりました!

ですが、すべてのIO モジュールは検索できるわけではありませんので、手動でFesto CPX-AP-I-EC-M12を構築したほうが確実でしょう。

Configure your CPX-AP-I-EC

Add CPX-AP-I-EC

EtherCAT Masterを右クリック>Add New Itemします。

Festo>AP>CPX-AP-I-EC-M12を選び>Okします。

Festo CPX-AP-I-EC-M12が追加されました。

Configure the Slot

次は各Slotを追加します。

CPX-AP-I-EC-M12

まずCPX-AP-I-EC-M12をSlot1に插入します。Slots Tabを開き、Inteface Modules>CPX-AP-I-EC-M12を選び、”>”ボタンで插入します。

CPX-AP-I-4IOL-M12 Varian 32

IO-Link Masterを追加します。ちなみにVariant 32は32BytesのIn/Out IO-Linkデータの意味です。

CPX-AP-I-4DI4DO-M8-3P

次はCPX-AP-I-4DIDO-M8-3Pを選び、”<”ボタンで入出力モジュールを追加します

CPX-AP-I-4AI-U-I-RTD-M12

最後はアナログ入力モジュールCPX-AP-I-4AI-U-I-RTD-M12を插入します。

Finally

最終的に構成はこうになりますね。

Configure Startup

Startup Tabを開き、各Slotのモジュールのパラメータの設定を行います。(本当にいいますとEtherCAT Network がStartupするときにモジュールにパラメータを書き込むのイメージ)

Newで新たなパラメータを作成します。

Edit CANopen Startup Entryの画面が表示されます。

では試しにCPX-AP-I-4AI-U-I-RTD-M12 Channel0のUpper Scaling値を設定してみます。

2003:09を選択し>Edit Entryをクリックします。

Dec 32000を入力すればOKです。

Done!実際今回の記事で必要なパラメータは、

  • 0x2003:09 CPX-AP-I-4AI-U-I-RTD-M12 Channel0のMax Scaling値
  • 0x2003:0D CPX-AP-I-4AI-U-I-RTD-M12 Channel0のMin Scaling値
  • 0x2003:05 CPX-AP-I-4AI-U-I-RTD-M12 Channel0のScaling 種類
  • 0x2001:0A CPX-AP-I-4IOL-M12 Port0をIO-LINK Portとして使用します

Add PLC

PLC>Add New Itemで新しいPLCを追加します。

Standard PLC Projectを選び>Addで追加します。

Add GVL

GVLs>Add>Global Variable ListでGVLを追加します。

GVLの名前を入力しAddします。

Creare Data Type

TwinCATはいままでのTutorialでは一つずつ変数をMappingしますが、実際はIO Configuriationから直接構造体を作成、そのままUser Programの変数と紐つけることが可能です。今回のTutorialではそのやり方を紹介します。先程追加したFesto CPX-AP-I-EC-M12をクリックします。

PlcのTabを開いて、Create PLC Data TypeのCheckboxを入れます。

先程追加されたFesto CPX-AP-I-EC-M12の各Module制御情報が含まれた変数”MDP5001_0_4FC3A84B”になります。Copyボタンで構造体の名前をCopyします。

Define in GVL

次はGVL内で変数を定義します。

Build

Build>Build Solutionでプロジェクトをコンパイルします。

Link To PLC

次はPlcのTabに戻り、”Link To PLC”のボタンをクリックします。

先程GVLで定義した変数と紐つけます。

Done!

DUT

DUT_SMART_IDWx_MxxMM_NMS_A0

こちらはContrinex社のSmart Sensor、Byte0のデータタイプになります。

TYPE DUT_SMART_IDWx_MxxMM_NMS_A0 :
STRUCT
OSS1 :BIT; //Output switching signal
OSS2 :BIT; //Output switching signal
TSS :BIT; //Timer Selected signal
SSC1 :BIT; //Switching signal
SSC2 :BIT; //Switching signal
ALR1 :BIT; //Alarm
ALR2 :BIT; //Alarm
ALR3 :BIT; //Alarm
END_STRUCT
END_TYPE

Program

Festo CPX-I-4IOL-M12モジュールのPort0に接続してるContrinexデータやCPX-I-4DI4DO-M8のPort4を出力やCPX-AP-I-4AI-U-I-RTD-M12のPort0アナログ入力データを取り組みます。

PROGRAM MAIN
VAR
      TON :TON;
  TON2 :TON;
  ScalingValue :REAL;
Process_Data_0 :DUT_SMART_IDWx_MxxMM_NMS_A0;
Process_Data_1 :USINT;
Process_Data_2 :INT;
PQ,DevErr,DevCom :BOOL;
END_VAR

//Festo IOLINK Module Port1 Status
PQ:=GVL.Festo_Module1.MDP5001_0_Input.MDP5001_0_Inputs_Port_4_IECCONF_IECCONF_PQI.7;
DevErr:=GVL.Festo_Module1.MDP5001_0_Input.MDP5001_0_Inputs_Port_4_IECCONF_IECCONF_PQI.6;
DevCom:=GVL.Festo_Module1.MDP5001_0_Input.MDP5001_0_Inputs_Port_4_IECCONF_IECCONF_PQI.5;

//Reflesh Timer
TON(IN:=NOT TON2.Q,PT:=T#1S);
TON2(IN:=TON.Q,PT:=T#1S);

//Scaling Value
ScalingValue:=(INT_TO_REAL(GVL.Festo_Module1.MDP5001_0_Input.MDP5001_0_Inputs_Channel_0)/32000.0)*10.0;

//DO Output
GVL.Festo_Module1.MDP5001_0_Output.MDP5001_0_Outputs_Output_0:=TON.Q;

//IO LInk Sensor
MEMMOVE(
destAddr:=ADR(Process_Data_0)
,srcAddr:=ADR(GVL.Festo_Module1.MDP5001_0_Input.MDP5001_0_Inputs_Port_0[0])
,n:=SIZEOF(Process_Data_0)
);
Process_Data_1:=GVL.Festo_Module1.MDP5001_0_Input.MDP5001_0_Inputs_Port_0[
Process_Data_2:=GVL.Festo_Module1.MDP5001_0_Input.MDP5001_0_Inputs_Port_0[3]
+SHL(BYTE_TO_INT( GVL.Festo_Module1.MDP5001_0_Input.MDP5001_0_Inputs_Port_0[2]),8)

Result

システムを正常に立ち上げました。

CPX-AP-I-4IOL-M12の正常状態はこちらです。

https://youtube.com/shorts/pa8ETzEVasg

CPX-AP-I-4IOL-M12のエラー状態はこちらです。

https://youtube.com/shorts/_h1rbWSqmuo

CPX-AP-I-4IOL-M12がエラーから復旧した状態はこちらです。

https://youtube.com/shorts/BetMhY04vyw

CPX-AP-I-4IOL-M12・TwinCAT3・Contrinex IOLINK Sensorと連携した状態です。

CPX-AP-I-4AI-UI-RTD-M12がアナログ信号を読み込んだ状態です。

CPX-AP-I-4DI4DO-M8-3PのOutput On/OFF繰り返しです。

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

シェアする

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

フォローする