Skip to main content

reComputer R1000 と FIN を使用した Modbus TCP/RTU の利用

note

この文書は AI によって翻訳されています。内容に不正確な点や改善すべき点がございましたら、文書下部のコメント欄または以下の Issue ページにてご報告ください。
https://github.com/Seeed-Studio/wiki-documents/issues

はじめに

FIN Framework (FIN) は、統合、制御、管理、分析、可視化、接続を可能にするアプリケーションスイートを備えたソフトウェアフレームワークです。その機能は、OEM によってさまざまな製品やサービスに統合することができます。

この記事では、FIN FrameworkModbus Connector の使用方法を紹介し、FIN Framework における Modbus TCP/RTU の使用方法を詳しく説明します。主に以下の3つの側面を含みます:FIN Framework プロジェクトの作成、シリアルポート番号 の設定、Modbus Connector の設定、および Equip にデータポイントを追加する方法。

始める前に

このプロジェクトを開始する前に、以下に記載されているように、ハードウェアとソフトウェアを事前に準備する必要があります。

ハードウェアの準備

reComputer R1000

ソフトウェアの準備

  • FIN Framework のインストール方法については、この wiki を参照してください。
  • reComputer R1000 の Modbus 機能の使用方法については、この wiki を参照してください。
  • W10 PC 上で modbusmechanic を使用します。他の Modbus テストツールを使用することもできます。

ハードウェアの構成

ModbusTCP の場合、Ethernet ケーブルを使用して W10 PC と reComputer R1000 をスイッチに接続し、同じネットワークセグメント上にあることを確認します。

pir

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

pir

新しいプロジェクトの作成

ステップ 1: ホームページの左下にある Create ボタンをクリックすると、新しいポップアップウィンドウが表示されます。このポップアップウィンドウには、以下の3つの属性を入力する必要があります:

  • NAME: 新しいプロジェクトの名前
  • DISPLAY NAME: 表示されるプロジェクト名
  • DESCRIPTION: プロジェクトの説明

ステップ 2: プロジェクトを開き、DB Builder に入り、Connectors をクリックします。この時点では Modbus オプションが表示されていません。FIN FrameworkModbus 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/IPmodbus-tcp://host:port/modbus-tcp://10.0.0.17/デフォルトポートは 502、標準の場合は省略可能
    TCP/IP 経由の RTUmodbus-rtutcp://host:port/modbus-rtutcp://192.168.1.120:9001/デフォルトポートは 502、標準の場合は省略可能
    RS-485 経由の RTUmodbus-rtu://<port>-<baud>-<dataBits>-<parity>modbus-rtu://serial0-9600-8n1-none

この例では、"r1000_demo" をレジスタマップとして指定し、デバイスの IP を 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.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 - ブール値
      • 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(オプション):ポイントを整理するためにフォルダパスを適用できます。

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

Modbus RTU用のModbus Connectorを設定する

シリアルポートを設定する

以下のスクリプトを実行します:

## FINサービスを停止
sudo systemctl stop fin
## 設定ファイルをダウンロード後、/opt/finFramework_5.1.6.55/etc/finStackSerial/に配置
sudo cp ~/config.props /opt/finFramework_5.1.6.55/etc/finStackSerial/
## config.propsファイルを以下のように変更:serialPorts=/dev/ttyAMA30, /dev/ttyAMA31, /dev/ttyAMA32
sudo nano /opt/finFramework_5.1.6.55/etc/finStackSerial/config.props
## FINサービスを再起動し、しばらく待ってからブラウザで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サービスを再起動します。

ステップ 3Folio => launchをクリックし、以下のクエリを挿入します:serialPorts()。結果には、特定のポートに使用する名前が表示されます。このポート名は物理ポートの名前ではなく、デバイスの物理ポートと使用するポート名(例:serial0serial1など)の間に対応があります。

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をクリックします。

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

ステップ 4: 読み取るレジスタ情報を追加します。Modbus Connector は Modbus マスターとして存在します。これにより、スレーブのレジスタを読み取ることができます。読み取るレジスタ情報を設定する必要があります。r1000_demo_rtu をクリックすると、デフォルトで ping の説明が表示されます。これは必須です。新しいレジスタ情報を追加し続け、Register Maps => r1000_demo_rtu => Add をクリックします。

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

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 をクリックします。

技術サポート & 製品に関する議論

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

Loading Comments...