この記事では、Beckhoff TwinCAT3のTF6281 Ethernet/IP ScannerとRockwell PLCのEthenret/IP Scanner間でTag通信する構築を1から説明します。
Rockwell側は古いPLCを使用していますが、新しいデバイスも同じ思想です。
さ、FAを楽しもう!
Implementation
Beckhoff Side
まずはBeckhoff 側から構築します。
Configure Etherent/IP Network
TwinCAT3側でEthenret/IP ネットワークを構築します。
Add Ethernet/IP Scanner
Ethernet/IP Scannerを追加するため、I/O>Devices>Add New Itemします。
Ethernet/IP>Ethernet/IP Scannerを選び>OKします。
Done!Ethernet/IP Scannerが追加されました。
Configure Ethernet Adapter
AdapterのTabを開き、Serachボタンをクリックし現在TwinCAT Runtime稼働してるPCに使用できるEthernet Adapterを検索します。
適切なInterfaceを設定し、OKで進みます。
Configure Task
次はEthernet/IPの同期Taskを設定するため、Sync TaskのTab開>Special Sync Task>Create New IO Taskをクリックします。
Task名を入力します。
Done!
Configure IP Address
TwinCATのEthenret/IP Scanner IPアドレスを設定します。Settings>IP AddressとNetwork Maskをアプリケーションに合わせて設定しましょう。
Done!
Add Producer Object List
Scanner同士が通信するには、Producer TagとConsumer Tagを定義する必要があります。
Producer Tagは出力で、Consumer Tagは入力になります。Scannerを右クリック>Add New Itemします。
Miscellaneous>Producer Object Listを選び>OKで進みます。
Done!Producer Object Listが追加されました。
Append Producer Connection
TwinCAT 側のEthernet/IP ScannerにProducer Tagを追加するため、右クリック>Append Producer Connectionをクリックします。
Done!Producer Tagが追加されました。
Setting Tabを開き、Producer Tagを設定します。
Output Size
Producer Tagのサイズ(Byte)を設定するため、”0 Bytes”をクリックします。
今回は4ByteのProducer Tagを構築します。
Done!
Connection Tag
Connection Tagの項目にProducer Tag名を設定します。そのTag名はあとでRockwellに合わせて設定する必要があります。
Result
Done!Producer Tagの設定が完了しました。
Add Generic EtherNet/IP Slave
今度はRockwell PLC側のProducer Tag(TwinCAT3の視点ではConsumer Tag)と接続するため、Ethernet/IP Scanner>右クリック>Add New Itemします。
Miscellaneous>Generic Ethernet/IP Slaveを選択し、Okで進みます。
Generic Ethernet/IP Slaveが追加されました。
IP Address
Generic Ethernet/IP SlaveのIPアドレスを設定するため、右クリック>Change IP Addressします。
RockwellのPLCのIPアドレスに設定してください。
Rockwell側ではPort Configuration TabからIPアドレスを確認できます。
Append Consumer Connection
Generic Ethernet/IP Slave(今回の記事ではRockwellのPLC)にCousumer Tagを追加するため、Append Consumer Connectionをクリックします。
Cousumer Tagが追加されました。
こちらはConsumer Tagの設定画面になります。
Input Data Size
Consumer Tagの入力データサイズを設定します。
このデータサイズはRockwell側で設定したProducer Tagに合わせて設定しましょう。
Transport Type/Cycle Time Multiplier
RPIと接続設定はアプリケーションに合わせて設定しましょう。
Port/Slot
Plot=1を設定します。このパラメータは通常は1ですが、Rockwell側の設定をしっかり確かめましょう。
Connection Tag
次に、Connection TagはRockwell PLCのProducer Tag名に合わせて設定してください。
Result
Done!これで設定OKです。
GVL
Global Variables Listを追加します。
下図のようにProcess 入出力データを定義します。
Build
Build>Build Solutionでプロジェクトをコンパイルします。
Mapping-OutputData
Producer Tag とプログラム内の変数と紐つけるため、Producer Tag>右クリック>Change Linkをクリックします。
先ほどと定義した変数と紐つけましょう。
Mapping-InputData
Cosumer Tag とプログラム内の変数と紐つけるためCosumer Tag>右クリック>Change Linkをクリックします。
先ほどと定義した変数と紐つけましょう。
PROGRAM
最後は簡単な通信確認プログラムを確認します。
Activate Configuration
Activate CofigurationでHardware ConfigurationをTwinCAT RuntimeにDownloadします。
OKで進みます。
TwinCAT RuntimeをRun Modeに切り替えます。
Login
LoginでプログラムをDownloadします。
Yesで進みます。
Start
最後あhStartボタンでTwinCAT Runtimeを起動しましょう。
Rockwell Side
Consume TagとProduce Tagを使用してPLC – PLC通信を有効にするには、Rockwell側にEtherNet/IPコントローラをインストールする必要があります。ですが、Beckhoff Controllerを直接Rockwell Controllerを使用することはできないので、構成ツールでRockwellのコントローラを作成する必要があります。
Add New Module
Hardware ConfigurationにTwinCAT3の接続を作成するため、仮のRockwell Controllerを追加します。LocalENB>右クリック>New Moduleします。
RockwellのCPUを追加します。型式はなんでもよいので、今回の記事では1756‐EN2Tを設置します。
Done!
CPU Name
先ほど追加したCPUがわかりやすいように、CPU名をTC3(TwinCAT3)に設定します。
IP Address
IPアドレスをTwinCAT3側に合わせて設定してください。
Module Definition
次はModuleの設定を行うため、Changeをクリックしてください。
今回の記事はあくまでもTwinCAT Ethernet/IP Scannerを”Rockell”のPLCとして見せかけますので、Electronic KeyingをDisable Keyingし、Rack Connection とTime Sysnc ConnectionをNoneにしていきましょう。
Add New Local PLC
先程追加した”Rockwell PLC”を右クリック>New Moduleで新しいモジュールを追加します。
ここも適当なRockwell PLCでよいので、今回の記事では”1756‐L61”に設定します。
CPU Name/Slot
Module 名を設定し、Slotを1にします。
Configure Tag
TwinCAT PLCの接続を構築完了したら、次はController Tagを追加します。
Controller>Controller Tags>New Tagします。
こちらはTag追加の画面になります。
Consume Tag
この操作で追加できるのが”Consumer Tag”で、つまりRockwell側の入力データ、TwinCAT側の出力データになります。
Name
NameはTag名を定義します。そのNameはTwinCAT側で定義したProducer Tagと一致する必要があります。今回の記事ではTWIN_OUTにします。
Type
Typeは変数のデータ・タイプになります。ここでConsumedとして設定しましょう。
Connection
次はConnectionの設定です。つまりこのConsumer TagはどこのConnectionからのTagなのかを設定します。
こちらはConsumer Tag接続の設定画面になります。
Producer は先程追加したRockwell PLCに見せかけたTwinCAT3 Ethernet/IP Scanner接続を選択します。
Remote Dataは先程追加したTWIN_OUT Tagに設定します。
Data Type
次はデータ・タイプを設定します。
こちらのデータ・タイプにもTwinCAT3に設定したTagに合わせていきましょう。
Result
Done!Consumer Tagが追加されました。
最後はCreateボタンをクリックしTag設定を保存します。
Done!
Producer Tag
今度はProducer Tagを設定します。このTagはRockwellの出力データ、つまりTwinCAT3 Ethernet/IP Scanner側の入力データになります。Controller Tagを右クリック>New tagで新しいTagを追加します。
先ほどProducer Tagの操作と同じく、TypeだけをProducedに設定していきます。
Result
Done!
Producer Tagも追加されました。
PROGRAM
最後は簡単に通信プログラムを作成するため、Task>Main Task>MainProgram>MainRoutineをクリックします。
Add Rungで新しい空き回路を追加します。
これでよし。
Add Ladder ElementでRungにラダー部品を追加します。
こちらはラダー部品の追加画面になります。
ADD関数を追加します。
Done!
MyInTag(Rockwell PLCの出力)をCycleごとに1を加算します。
他のラダー部品も追加します。
GRT関数を追加します。
これは比較関数で、AがBより大きいの場合はTrueになります。
TWIN_OUTが1000より大きくなるとTrueになります。
Add Ladder Elementで次のラダー部品を追加します。
MOV関数を追加し、TWIN_OUTが1000より大きい場合0MyInTagを0に格納します。
Download
最後はRockwell側のプログラムをDownloadするため、Communication>Downloadします。
Downloadで進みます。
少々お待ち下さい…
Yesで進みます。
Result
最後はEthernet/IP Scanner間の通信を確認しましょう。EIP Scanner>Producer Object List>Stateをクリックします。
Stateの現在値は0で、つまりエラーがありません。
次はEIP Scanner本体のDevState変数を確認します。
現在値も0でつまり通信エラーもありません。
最後はGeneric Ethernet/IP SlaveのState変数も確認しましょう。
現在値も0でつまり通信エラーもありません。
RSLogix5000からI/O OKのLEDが緑点灯であり、通信エラーが発生してません。
WiresharkからもForward Openの成功Responseが見えます。
Rockwell PLCとTwinCAT PLCにも無事にデータ交換できました。