C# Modbus 通信の入門から習熟まで (16) - Modbus ASCII (0x04 関数コードと C# コード実装)

1. 04 (0x04) 読み取り入力レジスタ

このファンクションコードはリモートアドレスから 1 ~ 125 の入力レジスタの値を読み出すために使用します。各入力レジスタは 2 バイトを占有し、読み出す入力レジスタの数は読み出し時にマスタステーションによって指定されます。

2. 送信メッセージフォーマット

ここに画像の説明を挿入

より詳細なフォーマットは、
スタートキャラクタ + スレーブ局アドレス + ファンクションコード + 上位スタートアドレス + 下位スタートアドレス + 上位レジスタ数 + 下位レジスタ数 + LRC + エンドキャラクタの合計 17 バイトです。 LRC の計算には開始文字、終了文字は含まれません。

3. 返信メッセージのフォーマット

72bdbbb181f4ef19b5744e92702dae7.png)

より詳細なフォーマットは次のとおりです。
スタートキャラクタ + スレーブ局アドレス + ファンクションコード + レジスタが占有するバイト数 + レジスタ値の下位バイト + ... + レジスタ値の上位バイト + LRC + ターミネータレジスタの数は N、合計 4N+11 バイト

4. ケース

スレーブアドレス:1
開始アドレス:0
レジスタ数:3
スレーブアドレスが1、開始アドレスが0の3つのレジスタの値を読みたいとします。

4.1 次のようにメッセージを送信します。

0x3a、0x30、0x31、0x30、0x34、0x30、0x30、0x30、0x30

Supongo que te gusta

Origin blog.csdn.net/qq_34059233/article/details/131858365
Recomendado
Clasificación