Wago#Using Profinet Coupler 750-375 to connect with TwinCAT and Codesys

こちらの記事ではWago Profinet Coupler 750-375の構築方法を説明します。Profinet IO Controller側はBeckhoff C6920 とTwinCAT3・Codesys Runtime内蔵してるPixsys CPUを使用します。

よろしくお願いします。

Thanks!

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

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

IPC6920-005はベッコフ日本法人ベッコフオートメーション株式会社さまが貸してくださったものです。Beckhoff Automationは1980 年会社設立、PCベースの制御技術をベースにしたオープンオートメーションシステム導入の先頭に立つドイツ企業です。実際Beckhoffが関わる分野はIPCだけではなく、Motion・Vision・Iot・ロボットなど様々な分野に常に新たなイノベーションを生み出してます。

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

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

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

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

ワゴジャパン株式会社

Profinet Coupler750-375はワゴジャパン株式会社さまが貸してくださったものです。WAGO は 1951 年に設立され、いままで端子台の技術で世界中の産業にずっと貢献してるドイツ企業、PUSH WIREやCAGE CLAMPの技術などで現場を支えてきました。他にWAGOさまにもPLC LINEUPがあり、オープン性と柔軟性に重点を置いた自動化ソリューションを提供しています。

ワゴジャパン株式会社は 東京都江東区に本社があります。

https://www.wago.co.jp/

Pixsys srl

Pixsys は1990年代初頭に設立、プロセス制御および産業オートメーション用の計器を設計および製造しています、製品範囲は現在、インジケータ、PID コントローラ、信号コンバータ、PLC、HMI、およびパネル PCなど多彩です。そして生産ライン、キャリブレーション システム、高度に自動化されたテスト設備を備え、ハードウェアとソフトウェアの設計から電子アセンブリまで、生産サイクルを内部に保つんです。

https://www.pixsys.net/en/home

Video

TwinCAT

English Version

Japanese Version

Codesys

English Version

https://youtu.be/AwcgMkC0pZw

Japanese Version

https://youtu.be/0q2oDG1467A

Wago Side

Download the GSDML File

https://www.wago.com/global/i-o-systems/fieldbus-coupler-profinet-io/p/750-375#downloads

Firmware Confirm

From Web Server

方法1まずWago Profinet CouplerをIPに割り当て、Web Serverを有効にします。

Username:admin

password:wago

Informationのところに現在のFirmwareを確認できます。

From Part-Number

方法2はCouplerの右側にあるFA/PD/AZ記載です。手書きでそのModuleのFirmwareを書いています。

FA=生産Order番号

PD=生産日付、WWJJのFormatで、WW=何週目で、JJ=年

AZ=Module情報です。FWHWFLのFormatで、FW=Firmware Version、HW=Hardware Version、FL=Firmware Loader Versionになります。

なので、2019年の9周目で、Firmware Version=06、Hardware Version=01、Firmware Loader Version=04になります。

*注意するのはそのFirmwareは更新する場合がありますので、必ず最新ではありません。

Support Profies

750-375 Pofinet Couplerは以下のProfileにもSupportします。

  • PROsafe V2.4
  • iPar-Server V1.0.1
  • PROFienergy V1.0

Power Supply

DC24 Vで、24V と+端子台は+側、0vと-端子台は-側になります。

LED

750-375はLEDがついており、Couplerの運転状態を確認することができます。

Fieldbus Status

LEDColorMeaning
RUNProfinet Coupler現在の状態やPROFIengryの運転状況
BF赤・緑BF=Bus Fault,赤は現在PROFINET Controllerと接続してない、緑はデバイスIdentifier機能を使用してること
DIACouplerのConfigurationと実物が違うことを示してます

Node Status

LEDColorMeaning
I/O赤・緑・オレンジオレンジ=Coupler Startup中・緑=Coupler稼働中・赤はエラー発生

Supply Voltage 

LEDColorMeaning
AOperation Systemの電源状態(Coupler本体)
BPower Jumperの電源状態(I/O電源など)

DIP Switch

CouplerにあるDIP SwitchはProfinet Couplerのデバイス名を設定でき、スイッチの場所により2つの英文字の変換ができます。他にもProfinet CouplerをFactory Resetする機能も可能です。

注意するにはDIP Switchの設定変更したら電源を入れ直す必要があり、Couplerが稼働中の状態で変更しないでください。


Operation

DIPスイッチの組み合わせによって動作も異なります。

DIPActionDescription
8Station名の決め方法OFF=Memoryに保存されたStation名を使用します。ON=DIP1-7のON/OFF状態によりStation名を設定
7Station名のPredefined 設定OFF=wago-750-375ON=wagox750x375
6Factory ResetDIP Switchは6以外はすべでONになったらFactory Resetを行います。
1-6Station名の可変部分の設定Station名の”x”という文字の設定。例えばDIP1,2がONだけなら、x=3。

Default

こちらはDefaultでWago 750-375 CouplerのDevice名です。

wago-750-375になります。

Configure with DIP

例えばこちらの例ですが、DIP7,8,3,4はONになっています。

DIP8=ONなのでDIP1-6の設定からStation名を設定します。

DIP7=ONなのでwagox750x375からStation名始めます。

DIP3,4=ONなのでStation名はwagox750x375x12になります。

Done!

Process Data

Basic Stucture

Wagoでは各Node(今回の例ではCoupler)をアナログ・デジタル・特別機能を混在して稼働できます。INPUTとOUTPUTのProcess ImageはIOCと通信確立に成功したときリアルタイムFrameを使用し交換します。

Process Imageは最大512Bytesです。

Allocation 

こちらはPROFINET IOのデータ分配の例になります。Process DataはPROFINET IO Controlelrから制御しデータ交換を行います。

  • Output Dataでは周期でProcess data (IOPS、IOCS)をIO ControllerからFieldbus Couplerに転送します。
  • Input Dataでは周期でInput data (IOPS、IOCS)をFieldbus CouplerrからProfinet IO Controllerに転送します。

Fiedbus Node(今回の例では750-375 Wago 製Coupler)はSlotベースで、構築は実物のSlotに100%合わせる必要があります。該当するSlotの設定(750-375なら隣にインストールしてる入力モジュールなど)はすべてGSD Fileの中に記載されています。

Process Data Qualifiers

One Byte IOxS Process Data Qualifiers

1 ByteのProcess Data qualifiersはProfinet IOに存在しており、IO Controller側(IOPS)

かIO Device側(IOCS)に含まれています。もし該当するIO ControllerやIO Deviceが出力や入力データのみならリアルタイムのデータサイズは絶対Submodules の合計サイズより1 Byte多くなります。

Two Byte IOxS Process Data Qualifiers

2 ByteのProcess Data qualifiersはProfinet IOに存在しており、IO Controller側(IOPS)

とIO Device側(IOCS)に含まれています。もし該当するIO ControllerやIO Deviceが出力データと入力データが混在してる場合、リアルタイムのデータサイズは絶対Submodules の合計サイズより2 Byte多くなります。

PROFINET IO

現在のIndustrial Automation技術では上位System(例えばPLC)とRemote I/Oとデータ交換するにはETHERNET-baseを採用するケースが日々増えています。ETHERNET-baseを採用することによりPLCとRemote I/Oだけではなく、マネジメントレベルでデバイス間のデータ交換も可能になります。

PROFINETはおそらくいま世界のProcess Field Networkの中でTop3のシェアになってる実績豊富なIndustrial Protocolです。

PROFINETはPROFIBUSベースで開発されたETHERNET-base Protocolで、ETHERNET標準に準じます。ETHERNET標準のProfinetは、転送速度は12 Mbit/s Half duplex、100Mbit/s Full Duuplexができます。

PROFINETデバイスの設定・構築・診断するにはUDP Protocolを使用しています。他にPROFINETはIT STANDARDと少々異なりますが、SafeyアプリケーションやDriveアプリケーションに最適化されたProtocolでもあります。

PROFINET IOではIO devices(Slaves)はIO Controller(Master)と接続します。今回記事で紹介するWAGO PROFINET Couplerが IO Devicesの役割になります。

PROFINETネットワークを構築するにはGSD Filesが必要です。GSD Fileは必ずメーカーから提供していますので、各メーカーのHomepageにDownloadし、IO ControllerのエンジニアリングツールにImportしてください。(今回の記事ではTwinCATとCodesysになります。)

PROFINET IOはRT(Real-time)で効率よくデータを交換します。実際のアプリケーションによりIRT(Isochronous Real Time)を採用する場合もございます。(たとえばMotion制御するのDriveアプリケーション)

PROFINET IOではStar・Tree・Line・RingのTopologyにも対応可能です。

それ以外に、PROFINET IOがちょっと面白いのが各IO Devices個別の更新周期(Send Cycles)をアプリケーションに合わせて設定できます。

Cabling

PROFINET IOはETHERNET baseで、普通のLANケーブルにも対応可能です。

Class

PROFINET IOではデータのやり取りをProvider/Consumerモデルから始めます。

ProviderがProcess DataをCosumer提供し(PLCやIO Controller)、反対側も同じです(IO ControlerがOutput DataをIO Deviceに提供する)。

PROFINET IOでは3つのデバイスClassに分かれています。

  • IO Supervisor
  • IO Controller
  • IO Device

IO Supervisor–>IO Controller 

1つ目のルードIO Supervisor PCからIO Controller PLCの方向では最初にエンジニアリングツールがインストールされたパソコンからPROFINET IO ControllerにプロジェクトをDownloadすることを示してます。

今回の記事ではIO SupervisorはBechoff TwinCAT3やCodesys IDEになり、IO ControllerはIPC C6920やPixsysのCPUになります。

もしくは、HMIからデータを表示させたり、PCから診断情報をとったりするときもそのルードになります。

IO Controller<–>IO Device 

2つ目のルードIO ControllerとIO Devivcesの方向を示してます。IO Controllerの役割はPROFINET IO NetworkにあるIO Devicesをデータ交換するために構築します。

IO ControlelrはHigh-Level Controllerのことを示しており(今回の記事ではBeckhoff C6920やPixSys Codesys CPU)、中で装置を制御するプロジェクトが稼働しています。

IO DeviceはリモートIOのことを示しており(今回の記事ではWago Profinet Coupler 750-375)、PROFINET Networkでは最低限1つのIO Devicesが存在しています。

IO Supervisor<–>IO Device 

3つ目のルードはIO SupervisorとIO Devicesの方向を示してます。

IO Supervistorは各IO Devicesのパラメータを持つことができ(iPar)、なおかつIO Devicesの診断やStatusを取得できます。 

Addressing

PROFINET Networkは基本的にMAC アドレスに沿ってIO Devicesを認識します。IO Devicesでは各Portにも自分のMAC アドレスがあり、なので2 PortのField devicesには3つのMACアドレスを持っています。

PROFINET ではLLDP Protocolを使用しTopologyを認識し、IO ControllerはDCP Protocolを利用して各IO Devicesに”Device名”を振り分けます。Device Nameは各IO DeviceのNon-volatile メモリに保存されています。

そしてIO ControllerはそのDevice名によりIPを割り付けます。

Data Traffic

PRFOFINET ではいくつかのデータ送受信タイプがあります。

Cyclic real-time traffic(RT/IRT)

RT/IRT通信では、I/O Data ProviderとConsumerが周期的にデータを交換します。通信状態を監視する機能もあり、周期メッセージが通信失敗するとき、自動的にConnectionを切り離します。

Acyclic real-tiem data traffic (RTA)

各I/O Moduleには様々な診断情報がついており、例えば短絡・電圧低すぎるなどのアラームはIO ControllerとIO devices間でこのような情報を交換しています。

Data corss traffic

PROFINET IO で1つProviderが複数のNodeにデータを周期で提供する方法です。

Multicast Communication Relation(MCR)といいます。

Reading and writing data sets(records)

最後のRecordsでは該当するProfinetデバイスのパラメータ・情報・診断を読み取る通信方法です。PROFINET IO ではRPC protocolを使用します。

Communication Connection

PROFINET ではIO Controller(Master)とIO Devices(Slave)の通信を確立させるには、”Communication Path”というものがあります。

そのCommunication PathはIO Controllerが起動したときに、Controller内のProject データによって確立します。すべてのデータ交換は”Application Relation”(AR)ベースで、ControllerとDevicesの間でその”AR”から接続を結びます。

AR,CR

AR=Application Relationship、CR=Communication Relationshipです。

IO Controllerはシステムを起動するとき、まずARを初期化し、すべての通信パラメータなどをIO DevicesにLoadします。同時に周期・非周期通信(IO Data CR・Record Data CR)・アラーム(Alarm CR)・Multcast Communicaton Relationship(MCR)も構築されます。

ARの中で、CR(Communcation relationships)はデータ交換するために確立する必要があり、ConsumerとProvider間で独自のCommunication Channelが指定されます。

Implementation-1

Implementation1ではBeckhoff IPC6920とTwinCATからProfinet IO Controllerを立ち上げ、Wago Profinet Couplerと接続します。

Install the GDSML File

GDSML FileをTwincat/3.1/Config/Io/ProfinetのDirectoryに貼り付けます。

Add PN Controller

I/O>Devices>Add New Itemします。

Profinet>Profinet I/O Controller[RT]を選び>Okします。

Configure the Adapter

Adapter Tabで正しいNetwork Interface設定したかもう一度確認しましょう。

Task

次はTask TabからPNIO 専用のたTaskを追加します。

Task名を入力しOkします。

Done!

Add the Wago 750-375 Coupler

次はWago750-375 Profinet Couplerを追加します。Device1>Add New Item>右クリックします。

先程GSDMLをインストールしましたので、WAGO>I/O>WAGO-I/O-SYSTEM 750/753を選び>Okします。

750-375 V02.05xx[FW 08](今回使用してるCoupelrのFWは08なので)を選び>OKします。

Done!Wago 750-375 Couplerが追加されました。

IP/Device Name Configuration

次はCouplerのIP・Device名を設定します。

Device TabでIP Configurationを設定でき、Station Nameで現在設定したDevice名を確認も可能です。

Add Slots

API>右クリック>Add New Itemで新しいSlotを追加します。

Device Configuration画面が表示され、この画面から現物のCouplerにインストールしたModuleと同じように設定します。

Slot1 750-1417

DI>750-1417 8DIを選択しダブルクリックしIO Moduleを追加します。

Slot2 750-1516

DOで750-1516を選択しダブルクリックしIO Moduleを追加します。

Slot3 750-597

AOで750-597を選択しダブルクリックしIO Moduleを追加します。

Slot4 750-471

最後はAIで750-471を選択しダブルクリックしIO Moduleを追加します。

これで設置OKです。

Configuration

アナログ入力モジュールSlot4 750-471は入力は電圧か、電流か、それともScalingする範囲もTwinCATから設定できます。

下図のように、Slot4をダブルクリックしParameterize ModuleのTab>Index 0x2000を開くと様々なパラメータ設定ができます。AI Instance 1 at connection 1 and 5はつまりモジュールの接点”1”と接点”5”の設定項目だと示しています(Channel1)。

今回使用したいのはChannel2なので下にScollしていきます。

AI Instance 2 at connection 2 and6が表示され、ここからはChannel2の設定になります。

中にSignal typeという項目があり、Offline Valueではいま0-10vだと示しています。

実際自分のアプリケーションにあ合わせて設定してください。

Add PLC

PLC>右クリック>Add New Itemします。

Standard PLC Projectを選び>Okします。

DUT

右クリック>Add>DUTします。

8BIT ChannelのモジュールにまとめるDUTを作成します。

TYPE DUT_8DI :
STRUCT
c1,c2,c3,c4,c5,c6,c7,c8:BIT;
END_STRUCT
END_TYPE

Add GVL

次はWago750-375 Profinet CouplerとMappingする変数をGVL内に定義します。

Slot1-4に必要な変数を定義します。

{attribute ‘qualified_only’}
VAR_GLOBAL
Slot1 AT %I*:DUT_8DI;
Slot2 AT %Q*:DUT_8DI;
Slot3 AT %Q*:ARRAY[1..8]OF INT;
Slot4 AT %I*:ARRAY[1..4]OF INT;
END_VAR

MAIN

PROGRAM MAIN
VAR
TON1 :TON;
SetPoint :INT;
IntputData :REAL;
END_VAR

FOR i :=0 TO 19 DO
GVL.Outputs[i]:=INT_TO_BYTE(i+10);
END_FOR

TON1(IN:=GVL.Slot1.c1 AND GVL.Slot1.c3,PT:=T#1S);
GVL.Slot2.c4:=TON1.Q;
GVL.Slot3[5]:=SetPoint;

IntputData:=(INT_TO_REAL(GVL.Slot4[2])/32727.0) *10.0;

Build

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

Mapping

750-1417 8DI Slot1

Term 2(750-1417 8DI)>Inputs>Digital Inputs 0-7を選択し>右クリック>Change Linkします。

データサイズが同じであれば一括Mappingできます。

750-1516 8DO Slot2

Term 3(750-1516 8DO)>Outputs>Digital Outputs 0-7を選択し>右クリック>Change Linkします。

750-597 8AO Slot3

Term 4(750-1417 8DI)>Outputs>Outputs>Analog Output Channelを一括選択し>右クリック>Change Linkします。

データサイズが同じであれば一括Mappingできます。

750-471 4DI Slot4

データサイズが同じであれば一括Mappingできます。

Activate 

Activate ConfigurationでHardware ConfigurationをDownloadします。

TwinCATを再起動します。

Login

LoginでUser programをDownloadします。

Start

Start でUser programを起動します。

Result

こちらのLinkから動作確認できます。

https://youtu.be/-vlNe_WzdzM

Implementation-2

Implementation2ではCodesys Runtime内蔵してるイタリアメーカーPixysysからProfinet IO Controllerを立ち上げ、Wago Profinet Couplerと接続します。

Install the GSDML File

CodesysからTools>Deice Repositoryします。

InstallでGSDMLをインストールします。

WAGO HPからDownloadしたGSDMLを開きます。

Done!GSDML Fileがインストールされました。

Add the Ethernet Interface

Ethernet Interfaceを追加するためにDevice>右クリック>Add Deviceします。

Profinet IO >Ethernet Adapter>Ethernet を選びます。

Configuration

Ethernet>General TabからNetwork Interfaceに”Browse”ボタンをクリックします。

Add the PN Controller

次はProfinet IO Controllerを追加します。

Ethernet>右クリック>Add Devicesします。

Fieldbus>Profinet IO>Profinet IO Master>PN-Controllerを追加しましょう。

これでProfinet IO Controllerが追加されました。

Add the Wago 750-375 Coupler

PN Controllerから右クリック>Add Deviceします。

検索のところで375を入力し>今回記事で使用する750-375 V02.05.xx(FW08)を選び>Add Deviceで追加します。

Wago Profinet Couplerが追加されました。

Configuration

まずSettingsのところでWebserver (TCP Port 80)のValueを1にします。

この設定により750-375のWeb Sever機能が有効になります。

次はWago Profinet CouplerのIPアドレスですね。

Add Slot1-750-1417

Wago Profinet Couplerを右クリック>Add Deviceします。

検索のFieldから1417を検索し750-1417 8DIを追加します。

Add Slot2 750-1516

検索のFieldから1516を検索し750-1516 8DOを追加します。

Add Slot3 750-597

検索のFieldから597を検索し750-597 8AOを追加します。

Add Slot4 750-471

最後は検索のFieldから471を検索し750-471 4AIを追加します。

Modules Parameters

最後はパラメータの設定を行います。今回の記事で特に設定必要なのはSlot4のアナログ入力です。

_4AI_INT16_4_1をクリックします。

General TabのところにParametersの項目があります。

AI Instaance2 at connection 2 and 6のところで、Signal Typeを0-10vに変更します。

そうすると、Channel2の検知タイプが0-10v電圧になります。

Program

GVL

Slot1-4に必要な変数を定義します。

{attribute ‘qualified_only’}
VAR_GLOBAL
Slot1 :ARRAY[0..0]OF BYTE;
Slot2 :ARRAY[0..0]OF BYTE;
Slot3 :ARRAY[1..8]OF INT;
Slot4 :ARRAY[1..4]OF INT;
END_VAR

MAIN

PROGRAM PLC_PRG
VAR
TON:TON;
setPoint:INT;
CurrentValue :REAL;
END_VAR



TON(IN:=GVL.Slot1[0].0 AND GVL.Slot1[0].2,PT:=T#1S);

GVL.Slot2[0].3:=TON.Q;

GVL.Slot3[5]:=setPoint;

CurrentValue:=
(
TO_REAL(
GVL.Slot4[2])/32767.0)*10.0;

;

Mapping

Process IOとUser ProgramのMappingを忘れずに。

Result

ProjectをDownloadし、Runtimeをスタートします。

よし、すべては緑で、つまり通信OK。

こちらのLinkから動作の確認できます。

https://youtu.be/APl7p46LdjU

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

シェアする

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

フォローする