今回の記事ではBeckhoff TwinCAT3 TF6281 Ethernet/IP Scannerを立ち上げ、Schneider TM221 CPUのEthernet/IP AdapterとEIPでIO データ交換します。よろしくお願いします。
Version
こちらはツールのVersionです。
Thanks!
この記事が出来上がるのはベッコフ日本法人ベッコフオートメーション株式会社さまとMana Design worksさまから機材を貸してくださったおかけです。誠にありがとうございます。
ベッコフ日本法人ベッコフオートメーション株式会社
IPC6920-005はベッコフ日本法人ベッコフオートメーション株式会社さまが貸してくださったものです。Beckhoff Automationは1980 年会社設立、PCベースの制御技術をベースにしたオープンオートメーションシステム導入の先頭に立つドイツ企業です。
ベッコフ日本法人ベッコフオートメーション株式会社は、2011年に横浜に本社、2017年に名古屋オフィスを設立しました。
こちらはベッコフ日本法人ベッコフオートメーション株式会社様のホームページです。
どうぞよろしくお願いします。
https://www.beckhoff.com/ja-jp/
Mana Design Works
今回の記事はMana Design Works 様からのご提供でお送ります。内容は自体はシュナイダーですが、Mana Design Worksは大阪に本社あるSiemensの正式なソリューション パートナーで、Siemens製のCPU・HMI・Drive・Motion Controller・SCADAから国産メーカまで常に最適な提案できます
こちらはMana Design Works 様のホームページです。
どうぞよろしくお願いします。
Reference Link
http://soup01.com/ja/category/beckhoff/
http://soup01.com/ja/category/schneider%e3%82%b7%e3%83%a5%e3%83%8a%e3%82%a4%e3%83%80%e3%83%bc/
http://soup01.com/ja/category/protocol/ethernet-ip/
Configuration
Schneider TM221ME16TG Side
ETH Set-up
ETH1をクリックします。
EthernetにFixed IP addressを選択し、IPを設定します。
EtherNet/IP protocol enabled のCheckboxを入れ、EtherNet/IP Adapter機能を有効します。
Ethernet/IP Adapter Set-up
次はEtherNet/IPの設定を行い、ETH1>EtherNet/IP Adapterをクリックします。
Parameters>EnableのCheckboxをれいます。
Instance番号やSize(Words)をDefault設定します。
Output=Instance 100,20 Words
Input=Instance 150,20 Words
Applyで設定を適用します。
Program
Define
まずEthernet/IP Adapterの変数を定義します。
Input
Tools>Network objects>Input assembly(Ethernet/IP)をクリックします。
Address %QWE0のSymbolにDEVICES1の変数名を定義します。
Output
Tools>Network objects>Output assembly(Ethernet/IP)をクリックします。
Address %IWE0のSymbolにDATAFROMTWINCAT0という変数名に宣言します。
Address %IWE19のSymbolにDATAFROMTWINCAT19という変数名で宣言します。
Code
Task>Master Task>1-New Pouでプログラムを作成します。
Rung0-Move Constant Value
最初はTwinCAT3側に定数を出力します。
Operation Blockをクリックシアmす。
Rung0のところに移動し、クリックします。
Rung0にOperation Blockが追加されました。
次はOperation Blockの”Operation expression” Fieldをクリックします。
%QWE0:=1234を入力します。つまりいま%QWE0は1234を書き込み、その%QWE0が先程定義した変数”DEVICES1″に該当します。
Rung 1-Increase itself
さきRung0 と同じくOpeation Blockを追加し、%QWE19:=%QWE19+1でCycleに自分を加算します。
Rung2-Timer with Constant setpoint
右クリックでAdd rung新しいRungを追加します。
まずTimerにTrigger用の条件を追加します。Contactを選択しRungにひっばります。
NO Contactが追加されました。
SymbolからNO Contactのデバイスを入力します。
TwinCATからもらったデータを使用したいので、NO ContactのSymbolに
DATAFROMTWINCAT0:X0を入れています。このNO Contact使用するデバイスはDATAFROMTWINCATの0Bit目になります。
もう1つのNO Contactを追加します。NO ContactのSymbolに
DATAFROMTWINCAT0:X1を入れています。このNO Contact使用するデバイスはDATAFROMTWINCATの1Bit目になります。
Timerを追加するためFunction BlockからTimerをクリックします。
NO Contactの最後にDropします。
Timerが追加しました。
Timerを設定します。先程追加TimerをクリックするとConfiguration Popupが表示されます。
Presetは2にします。
Time baseは1sに設定すると、先のPreset=2はつまりこのTimerはSetpointが2sになります。
最後はApplyで設定を適用します。
Timer設定OKです。
次はTimerがTriggerされたときの出力Qを割り付けます。Coilを選び、TimerのQところに引っ張ります。
いまはCoilが追加されました。
Address Fieldをクリックします。
QWE1:X0を設定します。つまりTimer1がONになるとTwinCATへ出力する1番目Wordの0番目のBitがTrueになります。
Rung3-Timer with Dynamic Setpoint
Rung2と同じくTimerを追加します。でも今回TimerのSetpointを変数に変えます。その前に、まず%TM1をクリックし、Timer番号を変更します。
とりあえず使ってない%TM2に変更します。
%TM2をクリックし、Configuration PopupからTimerの設定を行います。Dynamic PresetのCheckboxを入れてApplyします。
Rung-Add Timer Dynamic Setpoint
Rung3を選び>右クリックInsert rungします。
Operation blockをRung3に追加します。
operaton expressionのFieldをクリックします。
%TM2.P:=5を入れます。つまりTM2のSetpointは5sになります。
Compile
プログラムが終わったらCompile ProgramでProjectをコンパイルします。
Download
Comissioning Tabを開き>Loginします。
PC to Controller (download)ボタンでProjectをCPUにDownloadします。
現在CPUにあるプロジェクトを上書きしますか?OKです。
Start Controller
Start ControllerでCPUをRunにします。
OKで確認します。
TwinCAT Side
Add Ethernet/IP Scanner
I/O>Device>右クリック>Add New Itemします。
EtherNet/IP Scannerを選び>Okします。
Schneider TM221 CPUと繋がってるInterfaceを選びOKします。
Adapter TabでIP設定などを確認しましょう。
Configure the Task
Sync TaskのTabを開き、Special Sync Taskを選択>Create new I/O Taskで新しい実行Taskを作成します。
Task名を入力しOKします。
Cycle ticksを設定します。
Set the Virtual IP
Settings Tabを開きます。F800:21,F800:22にEthernet/IP ScannerのIPを設定します。そのIP設定はEthernet interfaceのIPとかぶらないようにしてください。
Add Generic EtherNet/IP Slave
先程追加したEthernet/IP Scannerを右クリック>Add New Itemします。
Generic EtherNet/IP Slaveを選び>Okします。
Configure the IP
次は追加したAdapterをクリックします。
SettingsのTab開き>8000:21にSchneider TM221 CPUのIPに合わせて設定します。
Append IO Connection
IO Connectionsを追加します。Box 1>右クリック>Append IO Connection>Default(without eds)します。
Connection1が追加されました。
Add Inputs
Connection1>Inputs>右クリック>Add New Itemします。
変数を定義する画面が表示されます。
Data typeをWORD選び、Create Array Typeをクリックします。
0のCheckboxを入れて、0…19を入力しOKで配列変数を作成します。
OKで完了します。
Add Outputs
次はOutpus>右クリック>Add New Itemします。
先ほど追加したARRAY[0..19]OF WORDが直接選べるようになります。
そのARRAY[0..19]OF WORDを選択し>OKで確定します。
Configure the Connections
AdapterのConnection設定を行い、Connection1をクリックします。
以下のように、
InputのConnection Portは100、OutputのConnection Portは150です。
Transport TypeはPoint to Pointにします。
Add PLC
最後は簡単なプログラムを追加します。
PLC>右クリック>Add New Itemします。
Standard PLC Projectを選びAddでPLCを追加します。
MAIN
POUs>MAINをクリックします。
VAR
Schneider TM221 CPU Ethernet/IP AdapterのI/O DataとLinkする変数を宣言します。
Program
プログラムはSchneider TM221 CPUのプログラムに合わせてTure/Falseに変更できるようにします。
Build
Build>Buld SolutionでProjectをコンパイルします。
Link to INPUT
User Programで定義した変数をSchneider TM221 CPUのInputと紐つけます。
Box1>Connection1>Input>変数で右クリック>Change Linkします。
User programにある%I*の変数を選びOKします。
Link to OUTPUT
User Programで定義した変数をSchneider TM221 CPU Outputと紐つけます。
Box1>Connection1>Output>変数で右クリック>Change Linkします。
User programにある%Q*の変数を選びOKします。
Activate
Activate ConfigurationでHardware ConfigurationをDownloadします。
Okで進みます。
Runtimeを再起動します。
Login
LoginでUser ProgramをDownloadします。
Yesで進みます。
Start
最後はStartでRuntimeをRun Modeに変更します。
Summary
ここからは重要な設定箇所をまとめます。
Ip Address
Ip addressはTwinCAT Ethernet/IP Adapterの8000:21に合わせてください。
Input Assembly(T–>O) Instance
T–>OのInstance番号はTwinCAT Ethernet/IP Adapter SettingsのInput Connection Portに合わせてください。
Input assembly(T–>O) Size
T–>OのData SizeはTwinCAT Ethernet/IP AdapterのInput Data追加するときに合わせてください。
Output Assembly(O–>T) Instance
O–>TのInstance番号はTwinCAT Ethernet/IP Adapter SettingsのOutput Connection Portに合わせてください。
Input assembly(O–>T) Size
O–>TのData SizeはTwinCAT Ethernet/IP AdapterのOutput Data追加するときに合わせてください。
Result
まずWiresharkからCIP I/OのPackageがありますね。
TwinCAT側出力0番目のBit2,3をTrueにするとTimerがTriggerされます。
TwinCAT入力の0番目と19番目にもSchneider TM221 CPUからのデータが反映されます。
TwinCAT側0番目出力のBit0,1,2,3 をTrueします。
Schneider TM221 CPU側をみると、TimerがTriggerされ、Qも出力します。
TwinCAT側の1番目入力は3で、つまりBit0、Bit1 がTrueになってるからです。