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

ここに画像の説明を挿入

1. 06 (0x06) 単一のレジスタに書き込みます

このファンクション コードを使用して、保持レジスタの値をリモート アドレスに書き込みます。

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

ここに画像の説明を挿入

より詳細なフォーマットは次のとおりです:
MBAP メッセージ ヘッダー + ファンクション コード + レジスタ アドレスの上位ビット + レジスタ アドレスの下位ビット + 出力値の上位ビット + 出力値の下位ビット、合計 12 バイト。

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

ここに画像の説明を挿入

より詳細なフォーマットは次のとおりです:
MBAP メッセージ ヘッダー + ファンクション コード + レジスタ アドレスの上位ビット + レジスタ アドレスの下位ビット + 出力値の上位ビット + 出力値の下位ビット、合計 12 バイト。

4. ケース

子局アドレス:1
保持レジスタアドレス:8
出力値:1000
子局アドレス1、アドレス8で保持レジスタの値を1000に設定したいとします。

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

0x00、0x04、0x00、0x00、0x00、0x06、0x01、0x06、0x00、0x08、0x03、0xe8
各バイトの意味は次のとおりです。最初のバイト 0x00 はトランザクション処理フラグの上位バイトです

おすすめ

転載: blog.csdn.net/qq_34059233/article/details/131877506