温度調節器

温度調節器:Modbus(ASCII)のLRCの計算方法 「RTUモードでメッセージを作成」について 

Modbus(RTU)で送信メッセージ 参考例

温度調節器などで使用している、Modbus(ASCII)のエラーチェックで使用しているLRCの計算方法は

 

[LRCの計算方法]
① RTUモードでメッセージを作成します。
② スレーブアドレスからデータの最後までを加算し,Xに代入します。
③ Xの補数(ビット反転)をとり,Xに代入します。
④ Xに1を足し,Xに代入します。
⑤ XをLRCとして,データの後にセットします。
⑥ メッセージをASCII文字に変換します。
(KT4H/Bユーザーズマニュアルより)

 

局番1のデータ項目0080Hからのデータ読出しを例にすると

①Modbus(RTU)で送信メッセージを作成

スレーブアドレス01Hに続けて機能コード03H データ項目0080H データ数0001H

 

②スレーブアドレスからデータの最後までを加算し,Xに代入

8ビットごとにデータを加算

X=01H+03H+00H+80H+00H+01H=85H

 

③Xの補数(ビット反転)をとり,Xに代入

85H=10000101 ⇒ビット反転 X=1111010

 

④Xに1を足し,Xに代入

X=1111010+1=1111011=7BH

 

⑤XをLRCとして,データの後にセット

010300800001Hに7BHを付け加えて 0103008000017BH

 

⑥ メッセージをASCII文字に変換

0⇒30H
1⇒31H
0⇒30H
3⇒33H
0⇒30H
0⇒30H
8⇒38H
0⇒30H
0⇒30H
0⇒30H
0⇒30H
1⇒31H
7⇒37H
B⇒42H

 

これにデリミタとしてCRコード(0DH)とLFコード(0AH)を加えてModbus(ASCII)のメッセージが完成です。