PLCNEXT Tutorialの続きです。今回はTwinCAT TF6720とPLCNEXT AXC F2152をProfinetでリアルタイム通信します。TwinCAT側はDeviceでPLCNEXT AXC F2152はControllerになります。よろしくお願いします。
参考Link:
TwinCAT Side
まず下記の記事では基本のセットアップ方法を書いています。
Point1-Cycle Time
うまくつながってないときはCycle timeを調整してみてください。
I/O>Devices>Your Profinet Device
Sync TaskのTab開き、ProfinetIO専用のTaskを設定し、Cycle ticksを調整しましょう。
Point2-Device Name
Profinet通信するにはDevice NameのAssignが必要です。
最初に通信テストするときいきなりControllerからAssignなど少しややこしいことでやるより、TwinCATのProjectで設定したStation Nameをそのまま流用しましょう。
DeviceのTab開いて、Get Station Name from TreeのCheckboxを入れます。
Point3-Link to variable
もちろん、IOをUser programとLinkするも忘れずに。
Programming
Profinetの通信テストなので難しいプログラムなくてもOKです。
最初の0Btye目と最後の63 Byte目を数字を書き込めばよいです。
PLCNEXT Side
Import GSDML
Profinet通信にはGSDML Fileが必要になります。そのGSDLMLは先のStepでTwinCATから生成することが可能です。
PLCNEXT Engineerを立ち上げ、File>Import>Import GSDML Files(s)をクリックします。
GSDML Fileを選択します。
ImportのCheckboxを入れ、OKします。
Inert RT Device
PLCNEXT側はControllerなので、BeckhoffのProfinet RT Deviceを追加します。
Profinetをクリックします。
#0のとろこにSelect type hereのFieldをクリックします。
TwinCATのGDSML File Importされましたので、Devices>Local>Devices>Beckoff Automation>TwinCAT Profinet I/O>TwinCAT Device V2.3.1 Port Rev >= 1/V1.6.0を選択します。
自動的に交換するデータ領域や各Slotが追加されました。
Update Task setup
ProfinetのUpdate cycle を設定します。
Profinetをクリックします。
Settings>Update Tasks>IO Controller System and global VariablesとIO Device system variablesをESMで追加したTaskに割り付けます。
Update Cycle setup
次は更新周期です。
TwinCAT Device V2.3.1 1portをクリックします。
Settings>Reduction ratio(symmetric/inputs)を調整してください。
Device name/IP
Device名とIPを設定します。
Profinet>tcpniodevice(この名前はGSDMLにより違いので)をクリックします。
Settings>Ethernetを開きます。
IP address assignment modeをManualします
IP addressはTwinCAT側のNetwork adapterに合わせてください。
Define the variable
Profinetネットワークを構築したら次はProfinet IOをプログラム変数と紐つけます。
NewProgramをクリックします。
4つのExternal変数を定義しました。
Assign
Profinet>1:64 Byte In and Output(1)>1:64Byte In and Outputを開きます。
Profinet /1/1/1 Byte InputやProfinet /1/1/1 Byte Outputなどを割り付けましょう。
Programming
簡単なプログラムを書きます。TwinCAT側と同じく0Byte目と63Byte目に数字を書き込みます。
Download
設定が終わりましたら、CPUにDownloadします。
Verification
最後にネットワークを検証します。
Project>your PLCをクリックします。
If OK
診断情報を確認してみます。NotificationのTabをクリックし>Arp t PnC ArReadyのメッセージが見えます。Selectすると、Connection to device established tcpniodeviceのメッセージが表示されます。
つまりデバイス名tcpniodeviceのPN IO Deviceと接続成立しました。
If Fault
NotificationのTabをクリックし>Arp t PnC PnStationStateChangedのメッセージが見えます。Selectすると、Led state changed Arp to Pnc(Controller),BF=On、SF=oFFのメッセージが表示されます。
つまPN IO Deviceと接続成立できないってことです。
Result-TwinCAT Side
TwinCAT側は64,65が0番目と63番目に格納されます。それはPLCNEXTから受信したデータです。そしてTwinCAT側0番目と63番目のByteに98と99を送信します。
Result-PLCNEXT Side
PLCNEXT SideでもTwinCAT側から送信されたデータみえます。
WireShark
もちろん、WireSharkからもPNIOのPacketが交換してるとわかります。
LED Status
最後はCPUのLED statusを説明します。実機ではBF-CとBF-DのLEDがあり、Profnet Controllerの状態とProfinet Deviceの状態を示しています。
BF-C
詳しく説明しませんが、BF-Cは赤LED OFFにすれば、ControllerとしてDeviceと通信が確立すると示しています。
BF-D
BF-Dが赤LED OFFにすれば、Deviceとして上位のPN Controllerと通信が確立すると示しています。