【シリアル通信】Modbusとは?RTU/ASCII/TCPの違い・ライブラリ

シリアル通信の1つであるModbusとは?RTU/ASCII/TCPの違い・ライブラリについて解説します。

【Modbusとは】RTU/ASCII/TCPの違い

Modbus(モドバス)とは、Modicon社がPLC (プログラマブルロジックコントローラ) 用途に開発したシリアル通信プロトコルです。 通信方式はマスタ・スレーブ方式で、マスターからのクエリー(通信の開始)とスレーブからの応答メッセージで通信します。
このように、通信プロトコルは規定されていますが、物理レイヤ(RS-232-C、RS-485、イーサネットなどの通信媒体)は規定されておらず、通信媒体の違いで主に以下の3つに別れます。

種別 概要
Modbus/RTU ●1バイト(8ビット)データをそのまま伝送(ASCIIより伝送効率が良いため、RTUg主流)
●エラーチェック:CRC法
Modbus/ASCII ●1バイト(8ビット)データを2文字のASCIIコードに変換して伝送(RTUより伝送効率が悪い)
●エラーチェック:LRC法
Modbus/TCP ●ModbusメッセージをTCP/IPネットワークに乗せて送信
●マスタ/スレーブ通信だけでなく、1対1通信も可能
●産業用イーサネットで最も一般的

【プログラミング】Python/C

Modbusの通信が簡単に行えるプログラム用のライブラリをまとめました。

ライブラリ名 概要
libmodbus C/C++言語向けのオープンソースライブラリ
pymodbus Python向けのオープンソースライブラリ
おすすめ記事
1 【ネットワーク】通信プロトコル
2 【情報処理入門】テクノロジ系、マネジメント系、ストラテジ系、資格試験
関連記事