Siemens#TCP/IPで別の装置を通信

みんなさんお久しぶりです。今回はSiemensのPLCを使ってTCP/IPを使って他の装置を通信しようと思います。もちろんSiemens同士ならそれではなくIO Devicesという便利な機能がありますがそれは別のPOSTで紹介しよう思います。

まずはここで簡単なTCP/IPの説明があります↓

Python#Network Connections -1

WIKIとかも凄く詳しい説明がありますのでどうぞ読んでくださいね。

最初には送り側と受け側のIP,Port番号決めないといけません。ここで仮に:

送り側-192.168.11.2 Port:1000
受け側-192.168.11.3 Port:1000

にしましょう。

送り側

Step#1

Tsend1

SiemensはこのTSEND_CというFUNCTION BLOCKを使ってデータをEtherent Portからデータを外に投げ込みますね。ではまずEmpty Blockを追加し”TSEND_C”を入力してください。そのあとにBlockの右上の青いアイコンを押してください。

Step#2

TSend2

これはデータ送るときの設定ですね。
LOCALは自分で
IP Addressは192.168.11.2
Connection Type:TCP
Configuration Mode: Use Configured connection
Connection ID: 好きな番号
Connection Data:この設定を保存するDB
Address details:Local Portは1000

Partnerは相手で
Unspecifiedを選ぶの理由はSiemens同士で通信するわけではないですね。(仮に)
Addressは192.168.11.3

はい、ここでOKです。

Step#3

Tsend1

先のBlockに戻しますね。まだ設定できてない所もありますので。
ReqはPositive Edgeを受けると送るというFlagです、ここで仮に”TEST”をします。
CONTはConnectionを確立しますかというFlagです、もちろんTRUE。
LENは送るデータの長さです。ここで注意するなのは660はBtyeで、送り側と受け側も同じの長さを設定すること。
DATAはPointer式でP#DB3.DBX0.0 BTYE660となります。つまりDB3のDBX0.0から660BYTEを送りますという意味です。
ADDRはアドレスです。実はDATAを設定すればほかをしなくて平気なんですけど、ここで全部のParametersを入れます。
COM_RSTはいまのCommunication PortをリセットするFlagです。

あとはOutputするBusy,Done,Status,ERRORのFlagを割り付けておけば、完成ですね。

受け側

Step#1

TRCV_1

SiemensはこのTRCV_CというFUNCTION BLOCKを使ってデータをEtherent Portからデータを外に投げ込みますね。ではまずEmpty Blockを追加し”TRCV_C”を入力してください。そのあとにBlockの右上の青いアイコンを押してください。

Step#2

TRCV_2

これはデータ送るときの設定ですね。
LOCALは自分で
IP Addressは192.168.11.3
Connection Type:TCP
Configuration Mode: Use Configured connection
Connection ID: 好きな番号
Connection Data:この設定を保存するDB
Address details:Local Portは1000

Partnerは相手で
Unspecifiedを選ぶの理由はSiemens同士で通信するわけではないですね。(仮に)
Addressは192.168.11.2

はい、ここでOKです。

Step#3

TRCV_1

先のBlockに戻しますね。まだ設定できてない所もありますので。
EN_RはTRUEにしてデータを受けてもOKというFLAGです。
CONTはConnectionを確立するかどうかのFlagです。
LENはもらうデータの長さです。ここで660BYTEにします。
Connectionは設定値を保存するDBです。
Dataは受け先のDBです。
あとはDONE、BUSY、ERROR、STATUSとRCVD_LENのFLAGを割り付けておけば完成です。


プログラムは以上です!最後は送り側のほうの”TEST”BITにPositive Edgeを作ればデータが通信することができます。

Footer_Basic

Find ME

Twitter:@3threes2
Email:soup01threes*gmail.com (* to @)
YoutubeChannel:https://www.youtube.com/channel/UCQ3CHGAIXZAbeOC_9mjQiWQ

シェアする

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

フォローする