- Jelina 概要
- CommBridge
- データ収集
modbus-RTU 収集
1. ノードの作成
Section titled “1. ノードの作成”(1) CommBridge の【スマートツイン】を開き、左側で【デバイス接続】に切り替えます。

(2) Modbus クライアント【マスター】、データ処理、MQTT アップロードの各プラグインをプラグインワークスペースへ順にドラッグし、3 つのノードを作成します。

(3) Modbus クライアント【マスター】 → データ処理 → MQTT アップロードの順に 3 つのノードを接続します。

2. プランの作成
Section titled “2. プランの作成”プロトコルには
Modbus-RTUを選択します。
(1) Modbus クライアント【マスター】をダブルクリックし、【プランを追加】をクリックします。

(2) 接続設定を入力し、【次へ】をクリックします。

(3) 【グループを追加】をクリックし、グループ情報を入力して【確認】をクリックします。

(4) 【データを追加】をクリックし、データポイントを入力して【確認】をクリックします。

(5) 【完了】をクリックし、収集プランの追加を完了します。

(6) プランのスイッチをオンにし、【保存】をクリックします。

3. 結果の確認
Section titled “3. 結果の確認”(1) 【デバイス接続】の【デプロイ】をクリックし、デプロイを完了します。

図は共通の「デプロイ」操作を示しています。このページのノードとプランには、前述の Modbus-RTU 設定を使用してください。
(2) 【スマートツイン】に切り替え、Modbus クライアント【マスター】ノードにマウスポインターを合わせると、ノード情報の一覧が表示されます。

(3) プランをクリックし、そのプランの各グループに含まれるデータポイントのリアルタイムデータと履歴データを確認します。

4. データの書き込み
Section titled “4. データの書き込み”書き込み設定は Modbus-TCP と同じです。
5. 設定項目の説明
Section titled “5. 設定項目の説明”| パラメーター | 説明 | 形式 | 例 |
|---|---|---|---|
| プラン名 | ユーザーが設定するプランの名前 | 必須 | 温度収集 |
| プロトコル | Modbus プロトコル | Modbus TCP、Modbus RTU | Modbus RTU |
| 同期収集 | 同期収集を行うかどうか。Yes または No | Yes、No | YES |
| 収集周期 | データ読み取りのポーリング周期。プラン全体の各グループがレジスターを読み取る間隔 | 数値、範囲:(100,2147483647] | 2000 |
| 収集有効時間 | グループ内のすべてのデータポイントを指定時間内に収集できなければ、そのグループのデータを破棄します。この時間にはフレーム遅延を含みます | 数値、範囲:(0, 収集周期] | 1000 |
| タイムアウト | プラン内の各グループで 1 回のデータ収集に許容する時間。超過すると、その回の読み取りデータを破棄します | 数値、範囲:(0, 収集周期] | 1000 |
| 最大一括レジスター数 | 連続するデータポイントを一括収集する際の最大レジスター数 | 自然数、範囲:[1,120] | 120 |
| インターフェース | デバイスに実装されているシリアルポートに応じて選択します。一般に RS485 を使用し、USB を挿入すると対応するインターフェース名が追加されます | ttyS0、ttyS1 | ttyO4 |
| データビット | 1 組のデータに実際に含まれるデータビット数 | 7、8 | 8 |
| ストップビット | 1 つのパケットの終端を示します | 1、2 | 1 |
| パリティ | シリアル通信で使用する簡易的な誤り検出方式 | Odd、Even、None | None |
| ボーレート | シンボルの伝送速度を表すパラメーター。1 秒間に伝送するシンボル数 | 115200、57600、38400、19200、9600、4800 | 9600 |
| フレーム遅延 | 2 回の収集の最小間隔。既定値は 0。収集時にタイムアウトが頻発する場合は適宜増やします。それ以外では変更不要です | 単位:ミリ秒、数値、範囲:[0, 2147483647] | 0 |
| 書き込みフレーム遅延 | データ書き込み時の追加待機時間。書き込み処理が遅いデバイスで設定します。0 は追加遅延なし | 単位:ミリ秒、数値、範囲:[0, 2147483647] | 0 |
| レジスター書き込み機能コード | 保持レジスターへの書き込み機能コードを設定します | Auto、06、10。下記の説明を参照 | Auto |
| 変化時収集 | データ収集方式。No:変化時収集なし。SingleData:変化したデータポイントのみ送信。WholeGroup:グループ内のいずれかのデータが変化したらグループ全体を送信 | No、SingleData、WholeGroup | SingleData |
| 変化時収集のリセット時間 | データが変化しない状態がこの時間を超えたら、強制的にデータを 1 回送信します。0 にすると実行しません | 単位:秒、数値、範囲:(0, 2147483647] | 0 |
| 失敗時バックオフ | 収集失敗後、バックオフ率に応じて次の収集までの時間を延長します。最大時間は収集周期 × 最大バックオフ率 | Yes、No。下記の説明を参照 | Yes |
| バックオフ率 | 失敗時の時間増加率。0 より大きく、1 以外であること | 数値 | 2 |
| 最大バックオフ率 | 最大バックオフ時間の倍率。この倍率に達すると、それ以上変化しません | 数値 | 16 |
同期収集:
- Yes:プラン内の全グループの収集周期、タイムアウト、収集有効時間を共通で設定します。適用範囲はプラン内のすべてのデータポイントです。
- No:グループごとに収集周期、タイムアウト、収集有効時間を設定します。
レジスター書き込み機能コード:Auto はレジスター 1 個の書き込みに 06、複数個の書き込みに 10 を使用します。06 はすべての書き込みに 06 を使用し、10 はすべての書き込みに 10 を使用します。
失敗時バックオフ:収集周期が 1 秒、バックオフ率が 2、最大バックオフ率が 16 の場合、収集失敗が続くと待機時間は 1s、2s、4s、8s、16s となります。同様に、収集周期が 10 秒、バックオフ率が 0.5、最大バックオフ率が 0.1 の場合は、10s、5s、2.5s、1.25s となります。収集が成功すると、最初の収集周期に戻ります。
バックオフ率が 1 より大きい場合、最大バックオフ率はバックオフ率より大きくする必要があります。バックオフ率が 1 より小さい場合、最大バックオフ率はバックオフ率より小さくする必要があります。
グループの追加
Section titled “グループの追加”| パラメーター | 説明 | 形式 | 例 |
|---|---|---|---|
| グループ名 | ユーザーが設定するグループの名前 | 必須 | 温度グループ 1 |
| Slave ID | Modbus デバイスのアドレス。収集対象デバイスのスレーブアドレス | 数値、範囲:(0,255] | 1 |
| 収集周期 | データ読み取りのポーリング周期。個々のグループがレジスターを読み取る間隔 | 数値、範囲:(100,2147483647] | 1000 |
| 収集有効時間 | 個々のグループに含まれる全データポイントの収集有効時間。時間内に全ポイントを読み取れなければ、そのグループの全データを破棄します | 数値、範囲:(0, 収集周期] | 500 |
| タイムアウト | 個々のグループで 1 回の収集に許容する時間。超過すると、その回の読み取りデータを破棄します | 数値、範囲:(0, 収集周期] | 500 |
注意: 接続設定の同期収集が No の場合、グループ内のデータポイント全体に適用されます。 Modbus には、1 回に読み取れるレジスター数の上限があります。連続レジスターのグループを 1 回で読み取る場合、Holding Register と Input Register は最大 120 ポイント、Discrete と Coils は最大 2000 ポイントです。
データの追加
Section titled “データの追加”| パラメーター | 前提条件 | 説明 | 形式 | 例 |
|---|---|---|---|---|
| データエイリアス | データポイントの名前。同じグループ内で一意であること | 必須。数字やアンダースコアで始めることはできず、空白も使用不可 | T | |
| アドレス | レジスターアドレス。同じグループ内で重複不可 | 数値、範囲:(0,2147483647) | 0 | |
| レジスター種別 | Modbus の操作コード | Holding Register、Input Register、Discrete、Coils。下記の説明を参照 | Holding Register | |
| データ型 | レジスター種別により決定 | レジスターデータの元の型 | uint16、int16、uint32、int32、float、boolean、combine、string、hex string。下記の説明を参照 | uint16 |
| バイトオーダー | レジスター種別とデータ型により決定 | 1 バイトを超えるデータ型のメモリー内格納順序 | AB、BA、ABCD、CDAB、BADC、DCBA。下記の説明を参照 | AB |
| レジスター数 | レジスター種別とデータ型により決定 | データ型に必要なレジスターの数 | 下記の説明を参照 | 1 |
| 読み書きモード | レジスター種別により決定 | r(読み取り専用)、rw(読み書き)に対応 | r、rw | r |
| 計算 | データのエイリアスを使用してユーザーが定義する式 | T/10 | ||
| オフセット | データ型が bit | バイトオーダーの調整後、上位から下位へのビットオフセット | 数値、範囲:[0,15] |
例えば温度プロパティをデバッグする場合、デバイスの温度プロパティのアドレスが 1 であれば、レジスターアドレスを 1 に設定します。
- レジスター種別が Discrete または Coils の場合、データ型の既定値は boolean です。
- データ型が uint16、int16、combine の場合は AB、BA、uint32、int32、float の場合は ABCD、CDAB、BADC、DCBA を選択できます。その他のデータ型にはバイトオーダーの設定はありません。
- レジスター種別が Discrete、Coils の場合、レジスター数の既定値は 1 です。データ型が uint16、int16、boolean の場合も既定値は 1、uint32、int32、float の場合は 2 です。combine の場合は 1、2 から選択できます。string、hex string の場合は手動で入力できます。
16 ビットの順序:
- AB:1 ワードのレジスター。上位ワード、下位ワードの順で、ワード内は上位バイト、下位バイトの順(ビッグエンディアン)。
- BA:1 ワードのレジスター。上位ワード、下位ワードの順で、ワード内は下位バイト、上位バイトの順(リトルエンディアン)。
32 ビットの順序:
- ABCD:2 ワードのレジスター。上位ワード、下位ワードの順で、ワード内は上位バイト、下位バイトの順(ビッグエンディアン)。
- BADC:2 ワードのレジスター。上位ワード、下位ワードの順で、ワード内は下位バイト、上位バイトの順(ビッグエンディアンのバイトスワップ)。
- CDAB:2 ワードのレジスター。下位ワード、上位ワードの順で、ワード内は上位バイト、下位バイトの順(リトルエンディアンのバイトスワップ)。
- DCBA:2 ワードのレジスター。下位ワード、上位ワードの順で、ワード内は下位バイト、上位バイトの順(リトルエンディアン)。
6. Modbus プロトコルの関連パラメーター
Section titled “6. Modbus プロトコルの関連パラメーター”modbus-RTU の関連プロトコル設定は modbus-TCP と同じです。