FX5S

LoTツール開発のために、PLCとPCの通信をPythonでおこなう その1

IMG 2795 768x1024

はじめに

三菱のシーケンサ FX5S を購入し、PLCのネットワークポートを利用した通信ソフトを Python で作成しています。
現在、LoTツールを自作してみようと思い立ち開発を進めていますが、思っていたよりもはるかに簡単に最初の通信に成功しました。

「三菱のPLCが優秀なのか、Pythonが優秀なのか、それとも両方なのか」──とにかく数日でひとまず通信ができてしまいました。


背景:なぜLoTツールを自作するのか

PLCやシーケンサのレジスタをPCから直接読み取れるようになれば、

  • サイクルタイム
  • 生産個数
  • 稼働時間
  • 停止時間

といったデータを集計できるようになります。これは生産性向上の重要なヒントを与えてくれるものです。

従来の日本の生産は「現場スタッフの優秀さ」に支えられてきましたが、昨今は人手不足や外国人労働者への依存といった課題も見られます。そのような状況で LoTを安価に導入できる方法 は多くの現場にメリットをもたらすはずです。

実際、ある展示会で大手メーカーが大規模なLoT導入モデルを展示していました。しかしそれを見て、

「LoTはもっと安価に導入できなければ意味がないのでは?」

と感じ、自分で開発してみることにしました。


実際にやってみた

今回購入した FX5S は、量販店で 3万円台で入手可能です。

これを1台PCとつなぐだけで、さまざまなデータを集計することができます。さらに Python を使うことで、ラズベリーパイを介してPLCからデータを収集し、Wi-Fi経由でPCに送るような構成も可能です。

実際に試してみると、数日で以下のように通信が成立しました。

  • PCからPLCのレジスタ(例:D100)を直接読み出し
  • ターミナルに値を表示
  • 1秒ごとにデータを更新
FX5S
三菱シーケンサ FX5S

Python開発画面、下にD100,101の数値を読み込んで表示しています。


技術的な所感

  • Pythonのソケット通信はシンプルで扱いやすい
  • 三菱のMCプロトコルはドキュメント通りに組み立てればすぐ動作
  • 「思ったよりずっと簡単に動いた」というのが正直な感想です

いくつか調べたところ、すでに技術力のある企業ではこうした方法を実際に導入し、生産性を大きく向上させているようです。

仮のサンプルラダー

PLCはタイマーで簡単に数字が表示されるようにしてあります


次のステップ

今回、最初のハードルである「通信の確立」を超えることができました。

次は、

  • サンプルデータを作成
  • 画面上に表示する機能を実装

を目指します。ここがソフト面では一番のキモとなる部分なので、今度は少し時間がかかるはずです。

IMG 2796 1024x768

まとめ

  • FX5SとPythonを使えば、数日でPLCとの通信ができる
  • レジスタを読むことで、生産データを簡単に集計可能
  • 高額なLoTシステムの代替として「安価に導入できる可能性」がある

次回の記事では、実際に読んだデータを画面に表示し、LoTツールとしての第一歩を形にしていきます。