Skip to main content

reTerminal DM RS485ポートとNode-RED

RS485、Modbus、Modbus RTU、およびModbus Node-REDノードについての概要

pir


RS485

RS485はデバイス間でデータを送信するために使用されるシリアル通信プロトコルです。RS485は、産業用アプリケーションで一般的に使用されるデータのシリアル通信伝送の標準です。差動信号を使用し、通信用に2つのデータライン(AとB)と1つのグランドライン(GND)があることを意味します。この差動信号により、より優れたノイズ耐性が提供され、最大4,000フィートまでのより長いケーブル長が可能になります。RS485の最大データレートは通常RS232よりも高く、最大10 Mbpsです。RS485はマルチポイント通信用に設計されています。これは、RS485が同じバス上の複数のデバイス間でデータを送信できることを意味します。要約すると、RS485は産業制御システムなど、複数のデバイス間の長距離通信に一般的に使用されます。

Modbus RTU

Modbus RTUは、監視制御およびデータ取得(SCADA)システムにおけるデバイス間のデータ交換に使用される人気の産業通信プロトコルです。これは、RS485またはRS232バス標準の上で動作するシリアル通信プロトコルです。Modbus RTUはマスター・スレーブアーキテクチャを使用し、マスターデバイスが1つ以上のスレーブデバイスとの通信を開始します。マスターはスレーブデバイスに要求メッセージを送信し、スレーブデバイスは要求されたデータを含むメッセージで応答します。Modbus RTUメッセージは、ヘッダー、データ、およびエラーチェックフィールドで構成されます。ヘッダーには、スレーブアドレスやファンクションコードなど、メッセージに関する情報が含まれます。データフィールドには、送信される実際のデータが含まれます。エラーチェックフィールドは、メッセージの整合性を確保するために使用されます。Modbus RTUは、バイナリ、整数、浮動小数点、文字列など、さまざまなデータタイプをサポートします。また、ホールディングレジスタの読み取り、単一コイルの書き込み、入力レジスタの読み取りなど、さまざまなタイプのデータアクセスを可能にするさまざまなファンクションコードもサポートします。Modbus RTUの利点の1つは、その単純さと実装の容易さです。さまざまなデバイスやソフトウェアで広くサポートされており、産業オートメーションおよび制御システムの人気の選択肢となっています。また、リアルタイムデータ交換と低遅延通信を必要とするアプリケーションにも適しています。

Modbus RTUは、以下のようなさまざまな産業アプリケーションで使用される人気の通信プロトコルです:

  • ビルディングオートメーションおよび制御システム:Modbus RTUは、照明、HVAC、およびその他のビルディングシステムの監視と制御に一般的に使用されます。

  • エネルギー管理システム:Modbus RTUは、商業および産業ビルでのエネルギー消費の監視と制御に使用できます。

  • 製造およびプロセス制御:Modbus RTUは、組立ライン、コンベヤシステム、包装機械などの製造プロセスの監視と制御によく使用されます。

  • 上下水道処理:Modbus RTUは、上下水道処理施設でのポンプ、バルブ、およびその他の機器の動作の監視と制御に使用されます。

  • 石油・ガス生産:Modbus RTUは、石油・ガス生産施設でポンプ、コンプレッサー、およびその他の機器の監視と制御に使用されます。

  • 再生可能エネルギーシステム:Modbus RTUは、ソーラーパネル、風力タービン、およびその他の再生可能エネルギーシステムの監視と制御に使用できます。

  • 交通システム:Modbus RTUは、交通システムにおける信号機、照明、およびその他の機器の監視と制御に使用されます。

一般的に、産業環境でリアルタイムデータ交換と低遅延通信を必要とするアプリケーションは、Modbus RTUの使用から恩恵を受けることができます。

Modbusノード

Node-REDには組み込みのModbusノードがあり、ユーザーはModbusデバイスをNode-REDワークフローに簡単に統合できます。ModbusノードはModbus TCPとModbus RTUの両方のプロトコルをサポートし、Modbusデバイスからデータを読み書きするために使用できます。

Node-REDでModbusノードを使用するには、キャンバスにドラッグアンドドロップし、デバイスアドレス、ファンクションコード、データタイプなどの適切なModbus設定で構成するだけです。構成が完了すると、Modbusノードはワークフロー内の他のノードに接続して、データを処理および表示できます。

Node-REDには、その機能を拡張し、他のシステムやデバイスと統合するために使用できる他のノードやプラグインも多数あります。たとえば、MQTT、HTTP、およびその他の通信プロトコル用のノード、ならびにデータ処理、可視化、およびストレージ用のノードがあります。

全体的に、Node-REDはIoTおよび産業オートメーションアプリケーションを構築するための強力で柔軟なプラットフォームを提供し、その組み込みModbusノードにより、Modbusデバイスをこれらのワークフローに簡単に統合できます。

reTerminal DMでのModbusノードの使用開始

詳細情報はModbus Node-REDページで確認できます。

Senscraft Edge OSを使用している場合は、modbusノードのインストール手順をスキップして、reTerminal DMでのModbusノードの使用方法に進むことができます。

Modbusノードのインストール

このセクションではnode-red-contrib-modbusノードをインストールします。ノードのインストール方法を確認してください。

オプション1: コマンドライン

まず、SSHを介してreTerminal DMにアクセスする知識を復習してください。手順はこちらで確認できます。

SSHでreTerminal DMにアクセスできたら、以下の手順に進んでください:

ステップ1: Node-REDフォルダに移動してください


cd .node-red/

STEP 2: Modbus ノードのインストール


npm install node-red-contrib-modbus

STEP 3: ノードがインストールされたら、以下のコマンドでNode-REDサービスを再起動してください:


node-red-restart

オプション 2: Node-RED エディター

ステップ 1: 右上角にある「三本線」アイコンの Settings ボタンをクリックし、Manage palette を選択します

ステップ 2: パレットタブで Install タブをクリックします

ステップ 3: ノード検索バーでノードを検索し、install ボタンをクリックしてインストールします

ステップ 4: ドロップダウン警告ウィンドウから Install ボタンをクリックしてインストールを確認します

ステップ 5: インストールが完了するまで待ち、install ボタンが installed に変わることを確認します

ステップ 6: サイドバーに Modbus ノードが表示されることを確認します

reTerminal DM で Modbus ノードを使用する方法

前提条件

ハードウェア

  • 1 x USB to RS485/RS232 アダプター
  • 6 x ケーブル
  • 1 x reTerminal DM
  • 1 x ホストコンピューター

ソフトウェア

  • ホストマシンにインストールされた ModbusMechanic などの MODBUS 通信 GUI ツール

準備

ステップ 1: 以下に示すようにハードウェアを接続してください

ステップ 2: 以下の手順に従いたい場合は、ModbusMechanic をインストールしてください。

ステップ 2-1: ModbusMechanic release のリリースファイルをダウンロードします

note

この wiki を準備した時点で、ModbusMechanic の最新リリースバージョンは v2.7 です。

ステップ 2-2: リリースファイルを解凍し、Linux で以下のコマンドを使用して Java 実行ファイル ModbusMechanic.jar を実行します:


java -jar ModbusMechanic.jar

STEP 2-3: 以下に示すように、ModbusMechanicSerial Settings Portを同じように設定してください

STEP 3: Slave Simulatorのセットアップ

STEP 3-1: ModbusMechanicのToolsからSlave Simulatorを開く

STEP 3-2: ポップアップからRTUを選択する1 Mbit

STEP 3-4-2: Register numberとして1を入力する

STEP 3-4-3: Data typeとしてU int 16を選択する

STEP 3-4-4: Valueとして120を入力する

STEP 3-4-5: Word Swapをチェックする

STEP 3-4-6: Addをクリックして確定する

STEP 3-5: 以下の画像と同様の設定になっているはずです

STEP 3-6: STEPS 4-4を繰り返して、以下に示すように2つのレジスタを追加します。Register 2Value 12Register 3Value 1とします

フローの編集

STEP 1: Modbus ReadFlow Editorパネルにドラッグする

STEP 2: Modbusサーバーの設定

STEP 2-1: Modbus ReadをダブルクリックしてNode editor panelを開く

STEP 2-2: サーバー設定オプションの鉛筆アイコンをクリックする

鉛筆アイコンをクリックすると、Add new modbus-client config node設定パネルが表示されます

STEP 2-3: 以下の画像に示すように、Modbusポートを設定するために以下の手順を注意深く実行してください。

STEP 2-3-1: ドロップダウンリストからタイプをSerial Expertに設定する

STEP 2-3-2: シリアルポート/dev/ttyCH343USB1を選択する

STEP 2-3-3: 以下の画像に示すようにシリアルポートオプションを設定する

STEP 2-3-4: 以下の画像に示すように追加のModbusサーバーポートオプションを設定する

STEP 2-3-5: AddまたはUpdateをクリックして変更を適用する。

STEP 3: 以下の画像に示すようにModbus-Readノードを設定し、Doneをクリックする

note

以下の手順は単なる例の手順です。ご自身の状況に応じて設定を変更することができます

STEP 4: debug nodeModbus Response nodeを見つけてドラッグし、以下に示すようにノードを接続する

最終結果

おめでとうございます!reTerminal DMでnode-REDを使用してModbusを使用する方法を正常に体験し、学習しました。最終結果は以下に示す画像と同様になるはずです

以下のJSONコードをコピーしてノードをインポートできます

[
{
"id": "0692ee641d6fffbc",
"type": "tab",
"label": "Flow 1",
"disabled": false,
"info": "",
"env": []
},
{
"id": "d16d0d962267f762",
"type": "modbus-client",
"name": "",
"clienttype": "serial",
"bufferCommands": true,
"stateLogEnabled": false,
"queueLogEnabled": false,
"failureLogEnabled": true,
"tcpHost": "127.0.0.1",
"tcpPort": "502",
"tcpType": "DEFAULT",
"serialPort": "/dev/ttyACM1",
"serialType": "RTU",
"serialBaudrate": "9600",
"serialDatabits": "8",
"serialStopbits": "1",
"serialParity": "none",
"serialConnectionDelay": "100",
"serialAsciiResponseStartDelimiter": "0x3A",
"unit_id": "1",
"commandDelay": "1",
"clientTimeout": "1000",
"reconnectOnTimeout": true,
"reconnectTimeout": "2000",
"parallelUnitIdsAllowed": true,
"showWarnings": true,
"showLogs": true
},
{
"id": "aef2687aed916539",
"type": "modbus-read",
"z": "0692ee641d6fffbc",
"name": "",
"topic": "1",
"showStatusActivities": true,
"logIOActivities": false,
"showErrors": true,
"showWarnings": true,
"unitid": "1",
"dataType": "InputRegister",
"adr": "1",
"quantity": "3",
"rate": "500",
"rateUnit": "ms",
"delayOnStart": false,
"startDelayTime": "",
"server": "d16d0d962267f762",
"useIOFile": false,
"ioFile": "",
"useIOForPayload": false,
"emptyMsgOnFail": true,
"x": 250,
"y": 300,
"wires": [
[
"c17ac94368fd6df1"
],
[
"409e4a77818587d8"
]
]
},
{
"id": "c17ac94368fd6df1",
"type": "debug",
"z": "0692ee641d6fffbc",
"name": "debug 1",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "false",
"statusVal": "",
"statusType": "auto",
"x": 560,
"y": 240,
"wires": []
},
{
"id": "409e4a77818587d8",
"type": "modbus-response",
"z": "0692ee641d6fffbc",
"name": "",
"registerShowMax": 20,
"x": 530,
"y": 380,
"wires": []
}
]

reTerminal DMでNode-REDを使用してより多くのノードを探索する

技術サポートと製品ディスカッション

私たちの製品をお選びいただき、ありがとうございます!私たちは、お客様の製品体験が可能な限りスムーズになるよう、さまざまなサポートを提供しています。異なる好みやニーズに対応するため、複数のコミュニケーションチャネルを用意しています。

Loading Comments...