-
リレー・カプラー
-
コネクタ
-
スイッチ/インプットデバイス
-
ボリューム/エンコーダ
-
制御機器商品全般
-
問合せ窓口
-
ファイバセンサ
-
ビーム(光電)・レーザセンサ
-
フォトマイクロセンサ
-
エリアセンサ
-
ライトカーテン
-
安全機器
-
近接センサ
-
特殊用途センサ
-
圧力センサ・流量センサ
-
検査・判別・測定用センサ
-
静電気対策機器・イオナイザ
-
センサ周辺機器
-
IoT関連ユニット・省配線システム
-
レーザマーカ
-
コードリーダ
-
PLC
-
表示器
-
省エネ支援機器
-
タイマ・カウンタ・コンポ
-
画像センサ・画像処理機
-
UV照射器
-
サーボモータ・アンプ
-
小形ギヤードモータ(受注終了品)
-
ブラシレスモータ アンプ(受注終了品)
-
インバータ
Modbus(RTU)のCRC-16の計算で使用するデータは8ビット単位か16ビット単位か?
Modbus(RTU)のCRC-16の計算で使用するデータは8ビット単位か16ビット単位か?
番1に対してデータ項目0036Hからデータを読取る場合を例に考えると送信メッセージは、スレーブアドレス01Hに続いて機能コード03H データ項目0036H データ数0001Hと続きます。
CRC-16の計算は、
① CRC-16 のデータ(X とする)を初期化(FFFFH)します。
② 一つ目のデータとX の排他的論理和(XOR)を取り、X に代入します。
③ X を右に1 ビットシフトし、X に代入します。
④ シフト結果でキャリーが出れば、③の結果X と固定値(A001H)でXOR を取り、X に代入します。キャリーが出なければ⑤へ進みます。
⑤ 8 回シフトするまで、③と④を繰り返します。
⑥ 次のデータとX のXOR を取り、X に代入します。
⑦ ③~⑤を繰り返します。
⑧ 最後のデータまで③~⑤を繰り返します。
⑨ X をCRC-16 として、メッセージに下位上位の順にデータの後にセットします。
(KW1M-Hユーザーズマニュアルより)
このときのデータとは、送信メッセージ先頭から8ビット毎に切り取ったものになります。
今回の例ですとまず01H、次に03H、00H、36H、00H、01Hをデータとして上記①~⑨を計算します。