Modbus Master

功能说明

Modbusマスターを作成し、ModBusプロトコルを利用してデータを封装し、シリアル通信を通じてデータをスレーブに送信します。データの範囲は0-65535です。

Init baud tx rx in uart crc 通信インタフェースを初期化操作し、ボーレート、送信ピン、受信ピン、シリアル番号、CRC検査のビッグエンディアン/リトルエンディアンモードを指定できます。

Send addr function reg addr value 指定のスレーブアドレスにデータパケットを送信します。addrはスレーブのアドレス、functionは機能コード、reg addrはレジスタのアドレス、valueはユーザデータです。

Rx buffer cache number バッファーから読み取るバイト数

Read rx data 受信したデータパケットを読み取る、カスタム処理に適用

Get rx addr function data コールバック方式でデータパケットを受信し、変数を通じてパラメータを受け取り、自動的に更新

使用说明

主な機能:(スレーブのコードは下記説明を参照)M5Stackの2台を接続し、Modbusを通じてマスターとスレーブを確立します。マスターはA/Bボタンを押下してデータを送信し、スレーブから返信されたデータパケット(機能コード2)を受信します。データパケットの処理方法は以下の2種類あります:

1.LOOPを通じてスレーブから返信されたデータパケットを処理し、画面上に表示します。

Modbusプロトコル定義に基づき、スレーブから返信されたデータパケットは少なくとも3つの有効データ(アドレス、機能コード、データ)を含む必要があります。因此、3バイト以上のデータは有効データとみなし、リストを通じてデータを解析処理します。

  1. コールバック函数を通じて返信されたデータパケットを処理します。コールバックを使用する場合はLOOPを使用しないでください、さもなければコールバックがブロックされます。

アドレス、機能コード、データをそれぞれの変数で受け取ります。

Modbus Slave

功能说明

Modbusスレーブを作成し、ModBusで封装されたデータパケットを受信し、シリアルインタフェースを通じてマスターと通信します。データの範囲は0-65535です。

Init addr baud tx rx in uart 通信インタフェースを初期化操作し、スレーブのアドレス、ボーレート、送信ピン、受信ピン、シリアル番号を指定できます。CRC検査はビッグエンディアンモードです。

Init function reg addr value method Modbusデータ操作形式を定義します。functionは機能コード、reg addrはレジスタのアドレス、valueは初期のデフォルト値、methodは読み込みまたは書き込み操作モードです。

Update function reg addr value 指定の機能コードに基づき、指定のレジスタアドレスのデータを更新します。

Get rx buffer data バッファーのデータを読み取る

Get reg write function reg addr value コールバック方式でマスターから送信されたデータパケット(機能コード、レジスタアドレス、データ)を取得し、変数を通じて受け取ります。処理は自分自身で行う必要があります。

Get function reg addr value 指定のマスターのデータパケットの内容を取得し、機能コード、レジスタアドレスを指定します。

send addr function reg addr value マスターからデータパケットを受信した後、マスターに返信するデータパケットの内容を送信します。

使用说明

主な機能:(マスターのコードは上記説明を参照)2台のM5Stackを接続し、Modbusを通じてマスターとスレーブを確立します。スレーブはアドレス1、機能コード1、レジスタアドレス1のデータパケットを受信し、データを解析します。データが1の場合はLED Barを点灯し、2の場合はLED Barを消灯します。同時に、スレーブは自身のデータをリアルタイムで更新し、マスターに応答を返します(機能コード2を通じて)。スレーブは自身のA/Bボタンを操作してもリアルタイムでデータをマスターに報告します。実装方法は以下の2種類あります:

1.LOOPを通じてスレーブから返信されたデータパケットを処理し、画面上に更新したデータを表示し、応答を送信します。

指定のデータパケットを受信し、データを解析し、応答をマスターに送信します(機能コード2を通じて)。A/Bボタンを押下して自身の応答を送信し、同時に状態をマスターに報告します(機能コード2を通じて)。

  1. コールバック函数を通じて返信されたデータを処理します。指定のデータパケットはfunとreg_addrを基準に処理を加えます。コールバック函数を使用する場合はLOOPを使用しないでください、さもなければコールバックがブロックされます。

アドレス、機能コード、データをそれぞれの変数で受け取り、リストを通じてデータを取得し、データを判断処理します。同時に、状態をマスターに報告します(機能コード2を通じて)。A/Bボタンを手動で押下して自身の応答を送信し、同時にマスターに報告します(機能コード2を通じて)。

On This Page