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バイト以上のデータは有効データとみなし、リストを通じてデータを解析処理します。
アドレス、機能コード、データをそれぞれの変数で受け取ります。
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を通じて)。
アドレス、機能コード、データをそれぞれの変数で受け取り、リストを通じてデータを取得し、データを判断処理します。同時に、状態をマスターに報告します(機能コード2を通じて)。A/Bボタンを手動で押下して自身の応答を送信し、同時にマスターに報告します(機能コード2を通じて)。