Project#Setup Profinet Connection wtih Siemens CPU x TwinCAT Profinet Devices

この記事ではTF6720をProfinet RT Devicesとして立ち上げ、SiemensのS7-1200をControllerとしてProfinet Real-Time通信します。本来はTwinCATのProfinet RT Devices立ち上げなども昔書いてたことありますが、Siemens PLCとどう繋がりますか?の質問が多く

この記事を書きました。TF6720からGSDMLを生成、SiemensのTIAにImportする

でもこの構成でもいくつかの調整Pointがありますので、それも含めて紹介します。

Reference Link

PLCNEXT#Communicate with Beckhoff TwinCAT PN Devices
Beckhoff#TwinCAT3 TF6270 Profinet RT Device立ち上げよう
Beckhoff#TwinCAT3 TF6271 Profinet RT Controller立ち上げよう

TwinCAT Side

Add Profinet Device

TwinCATを起動し、I/O>Devices>Add New Itemします。

Profinet >Profinet I/O Device(RT)します。


Setup the adapter

次はNetwork Adapterを設定します。

AdapterのTabを開き、Searchします。

Siemens CPUをとつながってるNetwork interfaceを選び、OKします。

それでAdapterが設定OKになります。


Add PNTC Device

次はPNTC DevicesをInsertします。

Device 1を右クリック>Add New Itemします。

PNTC Deviceを選び>OKします。

TwinCAT Device V2.3 1Portを選びOKします。


Add Slot

今度はSlotを追加します。それは実際Controller側とIOデータ交換する領域です。

tcpniodevice>API>Add New Itemします。

Device Configuration 画面が出てきます。

今回は64Byteのデータ交換をします。

In64 Insertし、そのあとまたOut64を入れる形でもよいが、少し面倒なので64 Bytes in and 64 Bytes outをダブルクリックします。

Slot1に勝手に4 Bytes in and 64 Bytes out Insertされます。

APIの下にもTerm1とTerm2がぶら下がてるのが、わかりますね。


Greate GDSML

ProfinetはEIPと違ってパラメータだけでConnectionを構成することができないので、GSDML Fileが必要です。TwinCAT側ではこのGSDMLを生成できます。

tcpniodeviceをクリックします。

GSDML GeneratorのTab開き、Create GSDML from orignal..のボタンをクリックする、GSDML Fileが生成され、好きな場所で保存できます。

Link the Inputs variables

IOをプログラムとLinkしないと更新できませんので。

まずInputsからLinkします。

Ctrl+Aですべて選び>Change Multi Link..します。

同じ領域をもってる変数が表示されますので、その変数を選び、OKします。

Linkされた変数は[X]の列ではXがついてます。

Link the output variables

次はOuputs変数をLinkします。

同じくCtrl+Aですべて選び>Change Multi Link..します。

同じ領域をもってる変数が表示されますので、その変数を選び、OKします。

Linkされた変数は[X]の列ではXがついてます。


Task

次はPNIOの更新Taskですね。Sync Task>Settings>Special Sync Task>Create new I/O Taskをします。

そのままではTask周期を変更できないので、Project>SYSTEM>Task>TaskPNIOをクリックします。

Cycle ticksのところで調整できます。

Test Program

プログラムは簡単な0番目と63番目を与えを書き込み、そしてInputの0番目と63番目を読み取るだけです。

Download

もちろんDownloadとRunを忘れずに。

Siemens Side

TwinCAT側はすべて用意が終わりましたので、次はSiemens側ですね。TIAを立ち上げます。

Install GSD

Options>Manage general station description files(GSD)。

Source PathからGSDML Fileが格納されてるFolderを選び>Installします。

しばらく待ちます。

自分はもうインストールされたので、成功が出ないですが、登録されてないGSDMLであればSuccess画面出てきます。


Insert Device

GSDMLインストールが完了したら次はProfinet Networkを構築します。

Device & Networksをクリックします。

右にあるHardware CatalogにTwinCATを入力し検索します。

先インストールされたGSDML Deviceが見えるはずです。

もし複数の同名のGSDMLがあればVersionのDrop ListからInsertするバージョンを選べます。

次はそのDeviceを選びそのまま左にDrapするか、ダブルクリックするか。

TwinCAT PN RT Deviceが追加されました。

Assign Profinet Network

TwinCAT PN RT DeviceをProfinetに取り込みます。

Not Assiginmentのところをクリックし>Select IO ControllerのところでPN Controllerを選びます。(自分はS7-1200を使用してる)

このような形でOK。

Check TwinCAT Side

TwinCAT側もすでにProfinet RT Deviceが立ち上がってるはずなので、TIAからAccessible devicesをTwinCATの構成を見てみます。

Type of the PG/PC InterfaceをPN/IEにします。

PG/PC InterfaceはSiemens CPUとつながってるNetwork interface Cardを設定し、Start searchします。

いまはS7-1200とTwinCAT Device..が見えますね。

Deviceのところでかいてるtcpniodevice000はTwinCAT Profinet RT DevicesのDevice nameです。それをメモしてください。Profinet通信ではDevice NameがMustです。

Device Parameters

Profinet RT Deviceのパラメータを設定します。

先ほど追加したTwinCAT Profinet RT Deviceをダブルクリックします。

IP

まずはIPです。ProfinetではNetwork立ち上げるときにDevice NameでDeviceのIPを振ります。ここでアプリケーションに合わせて設定してください。

Device Name

次はDevice Nameのほうです。Profinet>Generate PROFINET device automaticallyのCheckBoxを外してください。

そうすると自分でデバイスのDevice Nameを設定できます。


IO Numbers

ProfinetのIO番号を設定します。Device Viewを切り替え>I Address とQ Addressのところからアプリケーションに合わせて設定しましょう。

設定方法はクリックし、数字を入れるだけです。

今回は300から始まるとします。

Real Time settings

次は更新CycleとWatch dogを設定します。

General>PROFINET Interface>Advanced options>Real time settingsをクリックします。

もしManualで調整したいのであればUpdate timeを”Set update time manually”し、Update timeをDrop Listから選択しましょう。

あと、Adapte update time when send clock changesのOptionsがある程度Timeoutの問題解決できます。

最後に、Watchdog timeのところにAccepted update cycles without IO dataは何回Packetが届かなくても許すのかを設定できます。

いまは8だと2.0msx8、Watchdog timeは16.0msになります。


Add user data type

User data typeを追加します。こちらのStepはMustではありませんが、やったほうが便利です。PLC data types>Add new data typeします。

NameにUser data type名を入力し、OKします。

Data typeを64Byteの配列だと定義します。

Define Tags

次はPNIOのTagを定義します。

PLC tags>Default tag tableをクリックします。

枠のようにInDataとOutputDataを定義します。

Data Typeは先ほど定義したudt_dataになります。

Test Program

プログラムは簡単な0番目と63番目を与えを書き込み、そしてInputの0番目と63番目を読み取るだけです。

Download

もちろんDownload忘れずに。


Test

If Connection is failed..

もしConnectionに問題があればTIA側ではデバイスがこのようなICONになります。


If connection is OK

もしConnectionがOKであればTIA側ではこのような緑のCheckが表示されます。

Test In Siemens Side

Siemens S7-1200がDataがちゃんとTwinCATから受け取り、そしてTwinCATにデータを出力します。

Test in TwinCAT Side

同じく、TwinCAT側もSiemens S7-1200からちゃんとデータを受け、与えをSiemens S7-1200に出力します。

Diagnosis

TwinCATではいつくのところでProfinet診断を行うことできます。

まずはNetwork全体の診断ですね。

I/O>Devices>Your Profinet Deviceします。

DiagnosisのTabを開いてくると診断状態が見えます。

いま表示されるものは古いかもしれませんので、Clear Frame Statisticボタンをクリックします。

Last情報がみえるようになります。

DevState

次はPN Deviceの状態です。

I/O.Devices>Your PN Devices>Inputs>DevStateをクリックします。

現在値は0でつまりエラーないですね。

PnIoBoxState

PnloBoxStateはProfinet Controllerと接続してる状態を示しています。

いまは5なので、0x0001+0x004です。

0x0001はDeviceがControllerと通信中。

0x0004はProvider state、Device側はRunしています。

In wireshark

最後はWiresharkからも見てみましょう。

TwinCATがちゃんとSiemensS7-1200からPN-DCP Protocol届いてますね。


そして接続のPackets PNIO_CMもやりとりしており、成功の返事を返しましたね。

もちろんPNIO_PSのIO やり取りPacketsも見えます。

What can u do IF Double

もしつながらないとき、どうすればよいですか?

Check Device Name・IP・Data Size

IP・Device Name・Memory 領域を再確認しましょう。ControllerとDevice側の設定が一致してるかどうか。

Adjust watchdog time/update time

もしWiresharkが枠のようなWatchdog Overtimeのようなアラームであれば。

デバイスのWatchdog timer、Update Timeなどを調整してみましょう。

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

シェアする

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

フォローする