Skip to main content

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

はじめに

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

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

はじめに

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

ハードウェアの準備

ソフトウェア準備

  • FIN Framworkのインストール方法については、このwikiを参照してください。

  • reComputer R1000のmodbus機能の使用方法については、このwikiを参照してください。

  • W10 PCでmodbusmechanicを使用します。他のmodbusテストツールも使用できます。

ハードウェア構成

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

pir

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

pir

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

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

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

ステップ2: プロジェクトを開き、DB Builderに入り、Connectorsをクリックすると、この時点ではModbusオプションがないことがわかります。FIN FramworkModbus 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、標準の場合は省略可能
    RTU over TCP/IPmodbus-rtutcp://host:port/modbus-rtutcp://192.168.1.120:9001/デフォルトポートは502、標準の場合は省略可能
    RTU over RS-485modbus-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 をクリックすると、StatusOK に変わり、通信が正常であることを示します。

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サービスを再起動します

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

システムは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をクリックすると、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...