TwincCATでTF6271を使用しRuntime内でProfinet RT Controllerを立ち上げ、
Device側はCodesysを使用し実験します。
System Requirment
構成
Controller追加
まずTwinCATでProfinet RT Controllerを追加します。
I/O>Devices>Add New Itemします。
Profinet>Profinet I/O Controller(RT)を選び、OKします。
OKをすると、次はNetwork Interface Cardが選択します。
それでProfinet Controllerが追加されました。
Device追加
Controller追加されたところ、次はそのProfinet Networkにぶら下げてるDeviceを追加します。PNController>Add New Itemします。
Miscellaneous>Profinet IO Deviceを選択し、Okします。
PN ControllerのGSDMLを選び、OKします。
IO Deviceが追加されましたね。ProfinetではDeviceにIO交換の領域を自分で設定する場合は多く、そしてGSDMLはあくまでもそのDeviceの雛形だけImportするのイメージです。
何Byte交換するのか自分で設定し、ControllerとDeviceに同じく合わせないといけないのです。
Slot追加
PN-Device>API>Add New Itemします。
以下のようなTableが出てきます。DeviceのほうがInOut64Bytesに設定しましたのでControllerにもそれに合わせましょう。
これでOKです。
XのボタンでWindows閉じるとTerm2 が追加されました。これは先あなた入れた64InOutのSlotになります。
Device名・IP設定
ProfinetではDevice名とIP設定する必要があります。Device名はRT通信用でIPはSubの形で診断情報みたりするのは目的です。
Pn-Deviceをクリックします。
Stationameが変更できないと思ったら先のPn-Deviceと自動で連結できたらしい。
残りはそのIP Addressだけ設定すればOKです。
Task Cycle Time設定
コンパイルするときもし The PNIO-Controller Cycle Time must be a power of 2!のメッセージあれば、TaskのCycletimeを修正する必要があります。
PNController1をクリックします。
下のSync TaskをCycle ticksを設定し、隣のmsのCycle Timeを2のPower合わせて設定してください。
PLC 追加
次は検証するためにPLCを追加しましょう。
PLC>Add New Itemsします。
POUs>MAINを開きます。
変数を定義します。
Activate Configurationすると…
もし以下のようなNeeds sync masterのPopupがあれば、最低限1つの変数をTaskにつながってくださいということです。
Links to Variable
では、先のPn-deviceのところに戻りますね。
Pn-Device>API>Subterm>Inputsをクリックします。
Input Dataで右クリックし、Change Link..します。
先MAIN POUで追加されたByte Arrayを選び、Okします。
Codesys-Device側設定
昔別の記事で書いてたことがあります。
ちなみに、自分はRaspberryを使用しました。
I/O Mappingも忘れずに。
WireShark使用する場合
TwinCAT側一回Controllerとして立ち上がったらWireShark使えなくなります。そこで使えるような設定があります。
PNControllerをクリックします。
AdapterのTabでPromiscuous Mode(Use with WireShark Only)のCheckboxをいれましょう。
はーい、お疲れ様です。
もしなにか質問あれば、メール・コメント・Twitterなどでもどうぞ!
Twitterのご相談:@3threes2
メールのご相談:soup01threes*gmail.com (*を@に)