Thread Content
版主と皆さん、485バス通信は幅広く利用されており、プロトコルとしては一般的にMODBUSが選ばれます。MODBUS_RTUプロトコルでは、1回にn個のデータを送信できますが、このnはどれくらいになるのでしょうか?
実際の応用において、このnは1つのメッセージの全長によって制限され、通常は通信モジュールのハードウェアによって制約を受けます。実際にはおおよそ120バイト程度が限界であり、ヘッダーとテイラーのバイトを除けば、50個以上のレジスタ、あるいは800~900個のデジタル値程度と見積もることができます。基本的に、一般的な用途ではこれほど大量のデータを一度に読み取る必要はあまりありません。
1、すべての情報はシュナイダー社のModbusプロトコルに記載されており、そこが最も権威のある公式な資料です。
2、メッセージの長さはModbusプロトコルでは1バイトで保存されるため、理論上の最大バイト数は16進数のFF、つまり255バイトに過ぎません。
3、ハードウェアの選定についてですが、申し訳ありませんが私は製品開発を担当していないため、ご自身でインターネットで調べていただけます
この投稿は最後にhoya911によって2015-12-7 11:25に編集されました。Modbusのマスター側が送信する文字列の長さは固定で、その構成は「デバイス機能コード・開始アドレス高ビット・開始アドレス低ビット・00・データ量低ビット・CRC高ビット・CRC低ビット」の8バイトです。Modbusのスレーブ側が返信するデータ量は1ビットで表され、最大値はFF、つまり255です。その構成は「デバイス機能コード・返信データ量・データ1高ビット・データ1低ビット……・CRC高ビット・CRC低ビット」です。固定長が5バイトなので、255-5=250となり、250÷2=125となります。理論上は125個ですが、実際には120個を超えないことが推奨されます
上のが正解です。1フレームあたりの情報量は256バイトを超えてはならず、通常は120アドレス分のデータまでです。
投稿者が気にしているこの問題は実際にはあまり意味がなく、これはModbusの開発者が注意すべき問題であり、ユーザーが考える必要はないのです!
上の意見は適切ではない。通信を行う際にはデータ転送量を考慮しなければならず、そうでなければ多くの問題が生じる。
正解、ドライバ開発をしている場合を除き、この知識は必要ありません。住所を正確にすればOKです