reComputer R1000 と FIN を使用した Modbus TCP/RTU の利用
はじめに
FIN Framework (FIN) は、統合、制御、管理、分析、可視化、接続が可能なアプリケーションスイートを備えたソフトウェアフレームワークです。その機能は、OEM によって様々な製品やサービスに統合することができます。
この記事では、FIN Framework
の Modbus Connector
の使用方法を紹介し、FIN Framework における Modbus TCP/RTU の使用について詳しく説明します。主に3つの側面を含みます:FIN Framework
プロジェクトの作成、シリアルポート番号
の設定、Modbus Connector
の設定、および Equip
へのデータポイントの追加です。
はじめに
このプロジェクトを開始する前に、ここで説明されているように、ハードウェアとソフトウェアを事前に準備する必要があります。
ハードウェアの準備
reComputer R1000 |
---|
![]() |
ソフトウェア準備
-
FIN Framworkのインストール方法については、このwikiを参照してください。
-
reComputer R1000のmodbus機能の使用方法については、このwikiを参照してください。
-
W10 PCでmodbusmechanicを使用します。他のmodbusテストツールも使用できます。
ハードウェア構成
ModbusTCPの場合、イーサネットケーブルを使用してW10 PCとreComputer R1000をスイッチに接続し、同じネットワークセグメント上にあることを確認します。

ModbustRTUの場合、rs485からUSBモジュールを使用してreComuputer R1000をW10 PCと接続しました。

新しいプロジェクトの作成
ステップ1: ホームページの左下角にあるCreate
ボタンをクリックすると、新しいポップアップウィンドウが表示されます。ポップアップウィンドウには主に3つの属性を入力する必要があります:
- NAME: 新しいプロジェクトの名前
- DISPLAY NAME: 表示されるプロジェクト名
- DESCRIPTION: プロジェクトの説明

ステップ2: プロジェクトを開き、DB Builder
に入り、Connectors
をクリックすると、この時点ではModbus
オプションがないことがわかります。FIN Framwork
のModbus Connector
を開く必要があり、そうするとModbus
オプションがここに表示されます。

Modbus TCPのModbus Connector
設定
ステップ1: Modbus Connector
を開きます。Settrings => Ext
をクリックしてModbus
を見つけます。この時点でModbus
は赤色でマークされています。Enable
をクリックすると、Modbus
マークが緑色に変わり、Modbus Connector
が正常に開かれたことを示します。再びDB Builder
に入ると、すでにModbus
オプションがあることがわかります。

ステップ2: 新しいModbus接続を追加します。Modbus => Add
をクリックすると、新しいポップアップウィンドウに主に以下のパラメータを入力する必要があります:
-
Dis: コネクタの名前
-
ModbusSlave: これは接続されるmodbusデバイスのスレーブになります(デフォルトは1)
-
Existing Register Map: ユーザーがすでにModbusコネクタを設定している場合、ここで利用可能なレジスタを選択するか、次のプロパティModbusRegMapUriで新しいものを作成できます。
-
ModbusRegMapUri: ここでユーザーはこのコネクタとリンクするレジスタマップの名前を指定します。「xxx」をレジスタマップの名前に置き換えてください。
-
Uri: ここでmodbusコネクタのuriを指定します。URIの形式は表に示すとおりです:
プロトコル URI設定 例 注記 TCP/IP modbus-tcp://host:port/
modbus-tcp://10.0.0.17/
デフォルトポートは502、標準の場合は省略可能 RTU over TCP/IP modbus-rtutcp://host:port/
modbus-rtutcp://192.168.1.120:9001/
デフォルトポートは502、標準の場合は省略可能 RTU over RS-485 modbus-rtu://<port>-<baud>-<dataBits>-<parity>
modbus-rtu://serial0-9600-8n1-none
この例では、レジスタマップとして「r1000_demo」を指定しました。次に、UriでデバイスのIPを追加しました。

ステップ3: 新しいRegister Maps
を追加します。Register Maps => Add
をクリックし、Name
を入力します。これはステップ2のModbusRegMapUri
の名前と一致する必要があります。最後にADD
をクリックします。

システムはopt/finFramework_5.1.6.55/var/proj/recomputer_R1000_demo/data/modbus/
ディレクトリに新しいr1000_demo.csv
ファイルを作成します。このファイルは読み取る必要があるModbusレジスタ情報を記述します。

ステップ4: 読み取るレジスタ情報を追加します。Modbus Connector
はModbusマスターとして存在します。スレーブのレジスタを読み取ります。読み取るレジスタ情報を設定する必要があります。r1000_demo
をクリックすると、デフォルトでping
の説明があることがわかります。これは必須です。新しいレジスタ情報を追加し続け、Register Maps => r1000_demo => Add
をクリックします。新しいポップアップウィンドウには主に以下のパラメータを入力する必要があります:
-
name(必須): レジスタの名前。
-
一意である必要があります
-
小文字のa-zで始まる必要があります
-
a-z、A-Z、0-9、アンダースコアのみ許可されます。スペースやその他の特殊文字は使用できません。
-
-
addr(必須): これはmodbusの規約に従うレジスタのアドレスです。
- 0xxxx - コイル (00001-065536)
- 1xxxx - 離散入力 (10001-165536)
- 3xxxx - 入力レジスタ (30001-365536)
- 4xxxx - 保持レジスタ (40001-465536)
-
data(必須): これはレジスタのデータ型を定義します。
- タイプ:
- bit - Bool
- u1 - 符号なし8ビット整数
- u2 - 符号なし16ビット整数
- u4 - 符号なし32ビット整数
- s1 - 符号付き8ビット整数
- s2 - 符号付き16ビット整数
- s4 - 符号付き32ビット整数
- s8 - 符号付き64ビット整数
- f4 - 32ビット浮動小数点
- f8 - 64ビット浮動小数点
- タイプ:
-
rw(必須): これは読み取り/書き込み権限を決定します
- rw - レジスタは読み取りと書き込みが可能
- r - レジスタは読み取り専用
- w - レジスタは書き込み専用
-
scale(オプション): これにより、ユーザーはレジスタにスケールファクターを適用できます。形式は [演算子] [数値] で、ファクターは数値定数です。
- 例:
- 加算: +1.5
- 減算: -0.25
- 乗算: *10
- 除算: /1000
- 例:
-
dis(オプション): これは、ユーザーがレジスタに対して見やすい表示名を指定できるオプションのタグです。
-
unit(オプション): これはレジスタに使用する単位を定義します。
-
tags(オプション): これは、データベースに学習される際にポイントに適用するタグです。
-
folderPath(オプション): ユーザーがポイントを整理したい場合、folderPathを適用することで整理できます。

ステップ 5: 通信テスト。レジスタの説明情報を追加した後、通信を実行できます。ここでは ModbusMechanic
を Modbus スレーブとして使用します。Modbus => Ping
をクリックすると、Status
が OK
に変わり、通信が正常であることを示します。

Modbus RTU用の Modbus Connector
の設定
シリアルポートの設定
実行する必要があるスクリプトは以下の通りです:
## Turn off FIN service
sudo systemctl stop fin
## After downloading the config file, place it in /opt/finFramework_5.1.6.55/etc/finStackSerial/
sudo cp ~/config.props /opt/finFramework_5.1.6.55/etc/finStackSerial/
## Modify the config.props file to: serialPorts=/dev/ttyAMA30, /dev/ttyAMA31, /dev/ttyAMA32
sudo nano /opt/finFramework_5.1.6.55/etc/finStackSerial/config.props
## Restart the FIN service, wait for a while and then use a browser to open FIN
sudo systemctl restart fin
ステップ 1: FINサービスを停止し、設定ファイルをダウンロードして/opt/finFramework_5.1.6 .55/etc/finStackSerial/
ディレクトリに保存します

ステップ 2: config.propsを以下のように変更します:
serialPorts=/dev/ttyAMA30, /dev/ttyAMA31, /dev/ttyAMA32
修正が完了したら、FINサービスを再起動します

ステップ3:Folio => launch
をクリックし、次のクエリを挿入します:serialPorts()
、結果には特定のポートに使用する必要がある名前が表示されます。ポートは物理ポートの名前ではありませんが、デバイスの物理ポートとserial0
、serial1
...のような使用するポート名の間には対応関係があります。

Modbus RTUの設定
ステップ1: Modbus Connector
を開きます。Settrings => Ext
をクリックし、Modbus
を見つけます。この時、Modbus
は赤色でマークされています。Enable
をクリックすると、Modbus
マークが緑色に変わり、Modbus Connector
が正常に開かれたことを示します。再度DB Builder
に入ると、Modbus
オプションが表示されます。

ステップ2: 新しいModbus接続を追加します。Modbus => Add
をクリックします。この例では、レジスタマップとして「r1000_demo_rtu」を指定しました。次に、Uriのデバイスにシリアルポートを追加しました。

ステップ3: 新しいRegister Maps
を追加します。Register Maps => Add
をクリックし、Name
を入力します。これはステップ2のModbusRegMapUri
の名前と一致する必要があります。最後にADD
をクリックします。

システムはopt/finFramework_5.1.6.55/var/proj/recomputer_R1000_demo/data/modbus/
ディレクトリに新しいr1000_demo_rtu.csv
ファイルを作成します。このファイルは、読み取る必要があるModbusレジスタ情報を記述します。
ステップ4: 読み取るレジスタ情報を追加します。Modbus Connector
はModbusマスターとして存在します。スレーブのレジスタを読み取ります。読み取るレジスタ情報を設定する必要があります。r1000_demo_rtu
をクリックすると、デフォルトでping
の説明があることがわかります。これは必須です。新しいレジスタ情報を追加し続け、Register Maps => r1000_demo_rtu => Add
をクリックします。

ステップ5: 通信テスト。レジスタの説明情報を追加した後、通信を行うことができます。ここではModbusMechanic
をModbusスレーブとして使用します。Modbus => Ping
をクリックすると、Status
がOK
に変わり、通信が正常であることを示します。

Equip Tree
にデータポイントを追加
ステップ1: Equip
を追加します。Equip Tree => + => Add site
をクリックし、Name
を入力します。ここではTower
と入力し、Tower
という名前のsite
を追加できます。次にEquip Tree => Tower => + => Add Floor
をクリックし、Name
を入力します。ここではFloor1
と入力し、Floor1
という名前のFloor
を追加できます。再度Equip Tree => Tower => Floor1 => + => Add Equip
をクリックし、Name
を入力します。ここではModbusEquip
と入力して新しいEquip
を追加します。

ステップ2: ModbusEquip
の右側にある->
をクリックして、システムパスをTower/Floor1/ModbusEquip
の下に設定します。

ステップ3: データポイントを追加します。Modbus => Modbus Conn
をクリックし、新しいウィンドウでDiscover Points
をクリックすると、設定したレジスタ情報ポイントが表示されます。読み取るレジスタを選択し、Add
をクリックします。

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