LoRaWAN・Modbusゲートウェイ MS48-LRのLoRaWANとModbus/TCP システム統合 ~ Tips & Tricks

MS48-LR-top.png

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/TCPLoRaWAN実装するために追加のLoRaWANゲートウェイを追加する必要性を排除します。

ステップ1: LoRa無線を地域の周波数プランに合わせて設定する

周波数プランは、センサー ノードの周波数プランと同じように設定する必要があります。

Fig-01

Fig-01.png

ステップ2:** 固有のゲートウェイEUIをコピーし、LoRaWANサーバーのアドレスを構成する**

ユーザーは、MS48-LR 構成を組み込みの lorawan サーバーに接続する必要があります。

すべての MS48-LR には固有のゲートウェイ EUI があります。ID は LoRaWAN Semtech ページで確認できます。

Fig-02

Fig-02.png

ステップ3:** 内蔵LoRaWANネットワークサーバーを有効にする**

Fig-03

Fig-03.png

ステップ****4: 内蔵LoRaWANネットワークサーバーにログインする

Fig-04

Fig-04.png

ステップ5:** ゲートウェイを組み込みChirpStackに登録する**

前の手順からゲートウェイ EUI を次のインターフェイスにコピーします。

Fig-05

Fig-05.png

ステップ6:** センサーノードを組み込みChirpStackに登録する**

MS48-LR ゲートウェイは、組み込み ChirpStack ネットワークに接続するようにすでに設定されているため、組み込み ChirpStack に接続するようにセンサー デバイスを構成する必要があります。

まず、デバイス プロファイルとアプリケーションを追加する必要があります (すでに追加されている場合は無視してください)。

1) デバイスプロファイルを追加する

Fig-06

Fig-06.png

2) エンドノードデバイスを追加する

アプリケーションを作成する

Fig-07

Fig-07.png

センサーノードのデバイスを追加する

Fig-08

Fig-08.png

ノードデバイスのデバイスEUI、参加EUI(APP EUI)、APPKEYを入力し、前の手順で追加したデバイスプロファイルを選択します。

Fig-09

Fig-09.png

Fig-10

Fig-10.png

ステップ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

Fig-11.png

センサー ノードが組み込みサーバー Chirpstack でアクティブになった後、ユーザーはそれをこのページに追加し、Modbus RS485-RTU スレーブを有効にすることができます。

次に、MS48-LR はアップリンク データを 03 コード レジスタに書き込み、アップリンク データを記録します。

PLCMS48-LRレジスタを読み取る****

設定:

機能:03コード

ビットレート: 9600****

パリティビット:なし

ストップビット: 1****

応答タイムアウト: 3000ms** 以上**

2) TCP モード:****

Fig-12

Fig-12.png

PLCMS48-LRレジスタを読み取る****

設定:

機能:03コード

IP アドレス:** ゲートウェイ IP アドレス**

サーバーポート:** スレーブポート**

接続タイムアウト: 3000ms** 以上**

3) PLC(Modbus サーバー/マスター)** データの表示**:****

Fig-13

Fig-13.png

履歴データ:****

「センサー履歴を表示」をクリックするとこのページが開きます。

Fig-14

Fig-14.png

ステップ8:** センサーデコードを組み込みChirpstackに設定する**

1) Chirpstackにセンサーのデコードを追加する****

ユーザーは、Dragino End ノードの ChirpStack v4 デコーダー コードをこのリンクで見つけることができます。

次の例は、LHT65N デコーダーを追加するものです。

Fig-15

Fig-15.png

Fig-16

Fig-16.png

2) ChiprStackでデコードを確認する****

Fig-17

Fig-17.png

ステップ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

Fig-18.png

PLC(Modbus サーバー/マスター)** のデータは次のようになります**:****

:** **デコードされたデータは浮動小数点型であるため、Mobdbus のレジスタに書き込まれる前に整数に変換されます。

例: 23.20(実データ) —> 2320(レジスタ表示)。

Fig-19

Fig-19.png

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

Fig-20.pngFig-20.png

PLC(Modbus サーバー/マスター)** のデータは次のようになります**:****

Fig-21

Fig-21.png

Fig-22

Fig-22.png