産業用制御の専門家である皆さんは、おそらく Modbus 通信プロトコルに精通しているでしょう。これはおそらく、産業オートメーションの分野で最も広く使用されている通信プロトコルです。そのオープン性、拡張性、標準化により、それは世界的な業界標準となっています。
Modbus プロトコルの利点は言うまでもないと思います。この記事の主な目的は、Modbus プロトコルの欠点について説明することです。
すべてのものには 2 つの側面があり、どのプロトコルにも欠点があります。 Modbus に欠点があるという事実は、それが悪いプロトコルであることを意味するものではありません。皆さんもこれを合理的に見てほしいと思います。
1. 読み出し可能なデータ量の制限
次の図は、Modbus RTU プロトコル機能コード 03 のデータ形式を示しています。

図に示すように、スレーブ局から返信されるデータ数(バイト数)は1バイトのみです。
バイト数は 1 バイトのみを占めるため、入力/保持レジスタを読み取る場合、一度に最大 127 個のレジスタを読み取ることができます。データ量が非常に大きいアプリケーションでは、すべてのデータを取得するために複数回の読み取りが必要となり、必然的に通信効率が低下します。
2. 個々のレジスタビットへの書き込みがサポートされていない
一般的に使用される 8 つの Modbus 機能コードの中には、レジスタ内の個々のビットに書き込むための特定の機能はありません。したがって、レジスタ内の特定のビットをセットまたはクリアする必要がある場合、そのプロセスは非常に煩雑になります。
これを処理するには通常、次の 2 つのアプローチがあります。
最初のアプローチ: まずレジスタの値を読み取り、次にその値の特定のビットを操作し、最後に変更した値を書き戻す必要があります。これを完了するには 2 回の往復が必要であり、ある観点からは安全ではありません。-
2 番目のアプローチ: 単一ビットを別個のレジスタとして扱うことができます。1 を書き込むと True を表し、0 を書き込むと False を表します。この方法は 1 回の対話で実行できますが、大量のメモリ領域が無駄になります。
Modbus プロトコルは 1979 年に作成され、現在数万のデバイスで使用されています。発明者はこれらの問題を確かに認識していたと思いますが、統一された解決策を実装することはできませんでした。
おそらくいつか、Modbus プロトコルがこれら 2 つの問題を解決できるようになるでしょう...
Modbus プロトコルにはセキュリティ上の脆弱性があると主張する人もいるかもしれません。ただし、産業分野のアプリケーション向けに設計されたプロトコルとして、その主な目的はデータ交換を容易にすることです。オフライン環境では、攻撃がなければ害はありません。




