【PLC上位リンク通信】C#でTCP通信ソケット通信を使用してPLCに機種問合せをしてみた

C#.NET

【PLC上位リンク通信】C#でTCP通信ソケット通信を使用してPLCに機種問合せをしてみた

キーエンス

キーエンス製のPLCを使用してPCとの通信を確立するPLC上位リンク通信機能を試してみる。

機種問合せのコマンドを投げるとどう返ってくるのかをご紹介します。

画面設計

今回は、サンプルとして、実行ボタンと、結果表示テキストボタンを配置。あとは、好みでタイマー(Tick)を設定。

plc_link

ソースコード

結果

PLC:KV-7500の場合⇒「55」が返ってくる。

plc_link_result

★機種別のresponseの値一覧★

KV-8000  :‘57’(35H、37H)
KV-7300  :‘54’(35H、34H)
KV-7500  :‘55’(35H、35H)
KV-3000  :‘51’(35H、31H)
KV-5000  :‘52’(35H、32H)
KV-5500  :‘53’(35H、33H)
KV-NC32T :‘128’(31H、32H、38H)

エラー

IPアドレスが違っている場合、下記のエラーが表示される。

System.Net.Sockets.SocketException: ‘接続済みの呼び出し先が一定の時間を過ぎても正しく応答しなかったため、接続できませんでした。または接続済みのホストが応答しなかったため、確立された接続は失敗しました。

PC側のIPアドレスとPLC側のIPアドレスは同一ネットワークになっているか確認しましょう。

例. PC⇒192.178.10.30    PLC⇒192.178.10.15

ポート番号:8501を使用するのですでに他のアプリで使用している場合は変更しましょう。

あとがき

PLCリンク通信を使用している現場はどれほどあるのだろうか?

このブログの中では結構アクセスがあるので、需要があるのかな。。

現場では、どのような活用がされているのか?

私の場合は、トレーサビリティシステムの構築、データの見える化で傾向管理などに利用している。