【初心者向け】PythonでModbus TCP通信するには

Python

入手すべき情報

ざっくり下記の3つは必須で入手する必要があります。Modbus自体がなにかわからない人は、コレを読むと幸せになれます。

入手すべき情報
  • 通信相手(機器)の通信仕様書を入手
  • PythonでModbusTCP通信するパッケージの入手
  • 自PC周辺のネットワーク情報の入手

通信相手の通信仕様書

Modbusで通信するためには、相手のどこに値を書き込めば良いか知る必要があります。そのために、通信仕様書というものが必要になります。

下記の画像のビット番号が書き込む場所です。こういった書き込む場所、内容、値についての詳細が書かれた仕様書を入手するようにしましょう。

たいていは、機器メーカーに確認するか、Webページでダウンロードできるようなものなので、Modbus通信ができるかどうかも含めて先に確認することをおすすめします。

PythonでModbusTCP通信するパッケージの入手

ModbusTCPで通信するために下記のパッケージを入手します。(TCPの他RTU通信のMaster,Slaveに対応しています)

GitHub - ljean/modbus-tk: Create Modbus app easily with Python
Create Modbus app easily with Python. Contribute to ljean/modbus-tk development by creating an account on GitHub.

基本的には、pip install modbus_tkでパッケージをインストールすることができるかと思います。pip installの意味がよくわからない人は、Pythonについて少し勉強した上で戻ってくることをおすすめします。

下記のオンラインコースなどを受講すると早いかもしれません。

Python 3 入門+アメリカのシリコンバレー流コードスタイル

このパッケージを使うことで、比較的簡単にPythonでModbusTCPの通信が行えます。

Masterとして動かす場合には、下記のURLのソースコードを参考に構築していくのが近道かと思います。

modbus-tk/tcpmaster_example.py at master · ljean/modbus-tk
Create Modbus app easily with Python. Contribute to ljean/modbus-tk development by creating an account on GitHub.

ちなみに、このパッケージを使ってソフトウェアを構築したあとには、下記のシミュレータでSlaveを模擬してテストを行いました。

自PC周辺のネットワーク情報の入手

複数の機器が混在するネットワーク内では、IPなどのネットワーク情報は必須です。

こういった機器が混在するネットワークの場合は、DHCPではなく静的にIPが割り当てられているので、必ずIPを確認できる資料を入手しましょう。

例えば、こんな感じで各機器のIPがわかる情報です。

出典:https://www.cman.jp/network/term/dhcp/

まとめ

情報入手後、modbus_tkを中心にソフトウェアを構築していくことになると思いますので、がんばりましょう。

コメント

タイトルとURLをコピーしました