シーメンス#S7-1200(Adapter)とTwinCAT(Scanner)EtherNET/IP通信

EtherNet/IP?

本来ならSiemens同士でProfinetでデータ通信するのは一般的ですが、Profinetでは他のProtocolと共用できます。Ethernet/IPはその一例です。Ethernet/IPはIEE802.3ベースのProtocolでIPV4のネットワーク技術を使用しTCPかUDPできます。そのProtocolはODVA協会で管理されています。

DevicesにScannerとAdapterも2つのデバイスあります。

Scanner:名前通り、ネットワーク内のデバイスをScanするものです。そのScannerがField Devicesのデータなどの情報を収集します。ProfinetだとController・Masterの意味です。

Adapter:ScannerにDataを提供するものです。AdapterはEtherNet/IP Protocol使用しScannerに送信します。ProfinetだとDevice・Slaveの役割です。

そして、Scanner とAdapterのCommunicationsを確立したあと、UDPを使用しEtherNet/IP のIOデータを送受信します。そこで、また2つの名称が出てきます。

Originator:デバイスでConnectionの初期化するものです。一般的にはScannerがやります。

Target:デバイスでそのConnectionをAccept側です。一般的にAdapterになります。

いま、SiemensではFunction Block -”LCCF_EnetAdapter ”を提供し、EtherNet/IPを使用で通信できるようになります。今回の例ではS7-1200をEtherNet/IP Adapterとして働きScannerとやりとります。制限がありますが(Signal I/O Connection)

例のExampleではシーメンス同士でEtherNet/IPやりますが、今回はTwinCAT+TF6281でScannerを立ち上げ、S7-1200がAdapterとして通信確立し、送受信します。


Topology Setup

Line Topology

こちらは一番簡単な接続方法で、Netowork debuggingには向いていません。

Star Topology

Star Topologyはネットワークスイッチを中間デバイスとして使用します。その方法はWireshakeなど使用するときPort MirroiringやPort spawning ネットワークに向いてます。

ライブラリ

https://support.industry.siemens.com/cs/document/109782315/ethernet-ip-adapter-connecting-third-party-control-systems-to-simatic-s7-controllers-via-ethernet-ip?dti=0&lc=en-DE

1でDocumentsをDownloadします。

2でTIAバージョン合わせてDownloadできます。

3でEtherNET/IPの通信ライブラリDownloadできます。

4でS7-1200,S7-1500のEDS FileのDownloadします。

最低限はItem3,4をDownloadしましょう。

ライブラリを解凍します。

TIAを開き、右側にあるGlobal libraries>右クリック>Open libraryします。

Files of typおwCompressed librariesを選びます。

そしてLCCF_EnetAdapter.zal1xを選択し、Openします。

ライブラリに展開先を設定します。

それでライブラリがインストールされました。

説明

Input

enablebool立ち上げ=通信Startたち下げ=通信Stop
interfaceHW_ANYCPUのInterfaceを指定する
endiannessboolTrue=BigEndianFalse=Little Endian
inputAssemblyUintT->O のAssembly ID
Default=101
outputAssemblyUintO->T のAssembly IDDefault=102
configAssemblyUintO->TのAssembly IDDefault=104AdapterのConfigurationデータを送信する
adapterNameString[32]Adapter Nameの名前
adapterIPAddrIP_V4そのAdapterのIP

InOut

inputsvariantScannerのInput Area
outputsvariantScannerのOutput Area
configurationvariant


Output

validbool1=通信してる
busybool1=Block実行中
errorbool1=Errorあり
statuswordBlock現在の状態
actUpdIntervalOuttimeAdapterがScannerから受信したCycle Time
actUpdIntervalIntimeScannerがAdapterへ送信したCycle Time
diagnosticsLCCF_typeAdaptDiagエラーの診断情報

TIA側

Function Block呼び出し

先のGlobal librariesからS7-1200のFolderを開き、LCCF_EnetAdapterを選びます。

そしてOB30の周期OBを追加します。Cyclic timeは100msに設定します。

そしてFunction BlockをOB30に追加します。

InstanceDBを追加します。

これでOKです。

Function Blockの下に小さいな矢印をクリックします。

そして隠しパラメタが表示するようになります。

DB追加

次はやりとり用のData Blockを追加します。

中身は64長さのByte配列を定義します。

デバイス振り分け

Inputs/outputs/configurationに先のDBに宣言した変数に割り付けます。

そしてEnableの信号割り付けます。

TwinCAT側実装

TwinCAT側はScanner役なので、S7-1200のEDS FileをImportする必要があります。

EtherNET/IPの立ち上げ方法を昔も書いてたので、以下で参考してください。

Beckhoff#TwinCAT3 TF6281 Ethernet/IP Scanner立ち上げよう

EDS

EDS Fileは先SiemensのWebからDownloadし、解答したらEDS Fileが出てきます。

そしてTwinCATにImportしてください。

Variables追加

何回も書いてたことありますが、TwinCATでは変数を割り付けないと更新しない・Connectしないです。

実装

このように構成してください。


Test

両方のProjectもダウンロードし、TwinCAT側でStateをみてみましょう。

0x0000なら通信問題なしです。

TIA Output

Siemens側に123の値を入れてみます。

そしてTwinCAT側にも123も入っています。

TwinCAT Output

逆にTwinCAT側1番目のByteに91の値入れます。

そのようにSiemens側にも反映されますね。

最後

はーい、お疲れ様です。

もしなにか質問あれば、メール・コメント・Twitterなどでもどうぞ!

Twitterのご相談:@3threes2

メールのご相談:soup01threes*gmail.com (*を@に)

Youtube Channel:https://www.youtube.com/channel/UCQ3CHGAIXZAbeOC_9mjQiWQ

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

シェアする

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

フォローする