覚えていれば役に立つ!Modbusを知ろう

前回の「タッチパネルは怖くない!?メッセージの処理方法」の「Modbusの通信方式」の続きです。

ModbusはPLC(プログラマブルロジックコントローラ)用の通信規格で、とても普及しているプロトコルです。

物理層はRS485規格に準拠していますので、インターフェース回路を作成するのも簡単です。


    Modbus信号波形の例 黄色Data+ 青色Data-

信号D1、D2は反転信号となりスレーブでは差動信号で入力します。


 このD1とD2は一般的にData+、Data-と呼び、信号が反転しています。


信号波形をオシロスコープで観測すると何をしているかが分かります。

データは下の図1のように非同期式の連続信号です。


■1バイト構成


スタートビット+データビット+パリティビット+ストップビット=11ビット

                              図1


データ数はファンクションコードにより変わります。

局番=1、レジスタアドレス=107H ワード数=1レジスタを読み出してみます。 ファンクションコードは 03H を使用します。


1.全体の信号波形


左の固まりがマスター側のクエリです。

右側の固まりはスレーブ側からのレスポンス信号です。

2.マスター側のみを表示して、データを読んでいきます。


1/0反転信号で1ビットの幅が分かります。

1データは11ビットです。

スタートビットは0なので、次から読み出します。


3.スレーブアドレスとファンクション


図1の順序にあてはめると 

最初は16進数 01h  スレーブアドレス1の意味です。

2番目は16進数 03h ファンクション 3の意味です。
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        

4.読出し先頭レジスタアドレス


3番目は16進数 01h 

4番目は16進数 0Fh

この2ワードで レジスタアドレス 010Fh を指定しています。

5.読出しレジスタアドレス数


5番目は16進数 00h
 
6番目は16進数 01h

この2ワードで 読み込みレジスタ数 0001h を指定しています。

以上、信号波形より表のようなクエリデータを読み取ることが出来ます。

パソコンとRS485-USB変換機を使って簡単に読み取るキャプチャプログラムもできます。

 図2 EXSELのマクロプログラムでデータをキャプチャ

Modbusはオープン規格で認証機関が無いのですが、このぐらいの事を知っていれば何かあっても?自分で問題を解決できます!

Modbusについての詳細は  

Modbus Organization  http://www.modbus.org/

を参照して下さい。



コメントは受け付けていません。