ChatGPTに以下の質問をしてみました。
Dragino LoRaWAN - Modbusゲートウェイ MS48-LRは、LoRaWANとModbus/TCPと統合できますか?
はい、Dragino LoRaWAN - Modbusゲートウェイ MS48-LRは、LoRaWAN と Modbus/TCP の統合を提供します。 LoRaWAN デバイスからセンサーデータを収集してModbus/TCP サーバーに送信するように設計されており、LoRaWAN ネットワークと Modbus/TCPシステム間の相互作用を可能にします。
MS48-LRゲートウェイは通常、さまざまな LoRaエンドデバイス (センサー、メーターなど) から LoRaWAN データを受信し、このデータをModbus/TCP プロトコルに変換することで機能します。 これにより、Modbus経由で通信する既存の産業システムに統合できるため、産業用 IoT (IIoT) アプリケーションに役立ちます。
LoRaWAN と Modbus/TCP の統合にゲートウェイを効果的に使用するには、ゲートウェイを両方のプロトコルと適切にインターフェイスするように構成し、LoRaWANセンサーネットワークと Modbus ベースの制御システム間のデータ フローを確保する必要があります。
実は、以前まで同じ質問をするとChatGPTでは、完全統合する場合、他社製Modbusコンバーターが必要だと返答していました。そこでDragino社に下記マニュアルの追加要請をしたのです。
*Dragino LoRaWAN - Modbusゲートウェイ MS48-LRマニュアル更新
↓
MS48-LR -- LoRaWAN To Modbus Gateway - DRAGINO
2.3 LoRaWAN ネットワークを Modbus ネットワークにブリッジする
以下の設定例の手順に従うことで、ユーザーはlorawanセンサーのアップリンクデータをmodbus RTU/TCPデータに変換できます。
MS48-LRは、** **Modbus RTU/TCPにLoRaWANを実装するために追加のLoRaWANゲートウェイを追加する必要性を排除します。
ステップ1: LoRa無線を地域の周波数プランに合わせて設定する
周波数プランは、センサー ノードの周波数プランと同じように設定する必要があります。
Fig-01
ステップ2:** 固有のゲートウェイEUIをコピーし、LoRaWANサーバーのアドレスを構成する**
ユーザーは、MS48-LR 構成を組み込みの lorawan サーバーに接続する必要があります。
すべての MS48-LR には固有のゲートウェイ EUI があります。ID は LoRaWAN Semtech ページで確認できます。
Fig-02
ステップ3:** 内蔵LoRaWANネットワークサーバーを有効にする**
Fig-03
ステップ****4: 内蔵LoRaWANネットワークサーバーにログインする
Fig-04
ステップ5:** ゲートウェイを組み込みChirpStackに登録する**
前の手順からゲートウェイ EUI を次のインターフェイスにコピーします。
Fig-05
ステップ6:** センサーノードを組み込みChirpStackに登録する**
MS48-LR ゲートウェイは、組み込み ChirpStack ネットワークに接続するようにすでに設定されているため、組み込み ChirpStack に接続するようにセンサー デバイスを構成する必要があります。
まず、デバイス プロファイルとアプリケーションを追加する必要があります (すでに追加されている場合は無視してください)。
1) デバイスプロファイルを追加する
Fig-06
2) エンドノードデバイスを追加する
アプリケーションを作成する
Fig-07
センサーノードのデバイスを追加する
Fig-08
ノードデバイスのデバイスEUI、参加EUI(APP EUI)、APPKEYを入力し、前の手順で追加したデバイスプロファイルを選択します。
Fig-09
Fig-10
ステップ7: Modbus RTU/TCPスレーブを構成する
ゲートウェイは Modbus RTU スレーブとして実行でき、ユーザーはセンサー ノードのアップリンク データを書き込むレジスタの範囲を設定できます。
たとえば、センサー ノードの EUI が 70b3d57ed0051e22 で、レジスタの開始が 0xABCD、レジスタの長さが 14 の場合、アップリンク データは 0xABCD レジスタから始まるレジスタに書き込まれ、最大書き込み長は 14 レジスタを超えないことを意味します。
したがって、センサー ノード 70b3d57ed0051e22 アップリンク データは 0xABCD - 0xABE1 レジスタに書き込まれます。
注:** ペイロードの長さは異なるセンサー ノード間で同じであるため、データの長さが構成長より大きい場合、データは FFFF に置き換えられます。**
スレーブ設定:****
スレーブモード —> RTU モードと TCP モードの両方をサポート
Modbusスレーブを有効にする —> スレーブを有効にする
スレーブアドレス/ポート —> スレーブアドレス/ポートを設定します
センサー履歴を表示 —> センサーデータログを表示
センサー設定:****
デバイス EUI —> センサーノードの EUI
レジスタ開始 —> センサーノードのデータを書き込むための開始レジスタアドレスの設定
レジスタ長 —> レジスタの最大書き込み長
注:** レジスタで設定された範囲内に書き込めるセンサーは 1 つだけです。**
1) RTUモード****:
Fig-11
センサー ノードが組み込みサーバー Chirpstack でアクティブになった後、ユーザーはそれをこのページに追加し、Modbus RS485-RTU スレーブを有効にすることができます。
次に、MS48-LR はアップリンク データを 03 コード レジスタに書き込み、アップリンク データを記録します。
PLCはMS48-LRレジスタを読み取る****
設定:
機能:03コード
ビットレート: 9600****
パリティビット:なし
ストップビット: 1****
応答タイムアウト: 3000ms** 以上**
2) TCP モード:****
Fig-12
PLCはMS48-LRレジスタを読み取る****
設定:
機能:03コード
IP アドレス:** ゲートウェイ IP アドレス**
サーバーポート:** スレーブポート**
接続タイムアウト: 3000ms** 以上**
3) PLC(Modbus サーバー/マスター)** データの表示**:****
Fig-13
履歴データ:****
「センサー履歴を表示」をクリックするとこのページが開きます。
Fig-14
ステップ8:** センサーデコードを組み込みChirpstackに設定する**
1) Chirpstackにセンサーのデコードを追加する****
ユーザーは、Dragino End ノードの ChirpStack v4 デコーダー コードをこのリンクで見つけることができます。
次の例は、LHT65N デコーダーを追加するものです。
Fig-15
Fig-16
2) ChiprStackでデコードを確認する****
Fig-17
ステップ9: Modbus RTU/TCPスレーブセンサーデコードを構成する
たとえば、センサー ノードの EUI が a840411be186e411 で 、レジスタの開始が 0x0000、レジスタの長さが 14 の場合、アップリンク データは 0x0000 レジスタから始まるレジスタに書き込まれ、最大書き込み長は 14 レジスタを超えないことを意味します。
デコード データ TempC_SHT を追加します。レジスタ開始アドレスは 0x000F、レジスタ長は 2 です。つまり、デコード データ TempC_SHT は0x000Fレジスタから始まるレジスタに書き込まれ、最大書き込み長は 2 レジスタを超えません。
したがって、センサー ノード a840411be186e411 アップリンク データは 0x0000 - 0x000E レジスタに書き込まれ、デコード データ TempC_SHT は 0x000F - 0x0010 レジスタに書き込まれます。
注:** ペイロードの長さは異なるセンサー ノード間で同じであるため、データの長さが構成長より大きい場合、データは FFFF に置き換えられます。**
データのデコード :
デバイス タイプ —> センサーデコーダーデータ
レジスタ開始 —> センサーノードのデコーダデータを書き込むための開始レジスタアドレスの設定
レジスタ長 —> レジスタの最大書き込み長
注 : レジスタで設定された範囲内に書き込めるのは 1********つのデータのみです。
Fig-18
PLC(Modbus サーバー/マスター)** のデータは次のようになります**:****
注:** **デコードされたデータは浮動小数点型であるため、Mobdbus のレジスタに書き込まれる前に整数に変換されます。
例: 23.20(実データ) —> 2320(レジスタ表示)。
Fig-19
2.4 指定されたFポートのレジスタにデータを受け入れる
例えば、センサーノードのEUIがf4bbf5a0da6f4da5の場合、
・センサーペイロードアップリンクはFport=2を使用しています
・センサーステータスアップリンクはFport=5を使用しています
accept fport が設定されていない場合、ステータス アップリンクには通常デコードされたデータが含まれていないため、ステータス アップリンク中にレジスタに 0 のデコードされたデータが書き込まれる可能性があります。
レジスタに0データが書き込まれるのを避けるために、ユーザーはセンサーの受け入れFポートを設定することができます。
つまり、MS48-LRが指定されたFortのアップリンクを受信した場合にのみ、データがレジスタに書き込まれます。
Fポートを受け入れる********:****
DevEUI —> センサーノード DevEUI
Accept FPort —> Accept FPort の設定
Fig-20
PLC(Modbus サーバー/マスター)** のデータは次のようになります**:****
Fig-21
Fig-22