FINSデータをMQTTにブリッジング：プロトコルの説明と実践チュートリアル

# 

![Bridging FINS Data to MQTT: Protocol Explained and Hands-on Tutorial](https://assets.emqx.com/images/8fc67edf0eaaf0a7b1c5eb2e7544bbd3.png?imageMogr2/thumbnail/1520x684)

このブログでは、EMQから[Neuron](https://www.emqx.com/en/products/neuronex)と[EMQX](https://www.emqx.com/en/products/emqx)を使用してFINSからMQTTへのブリッジングを実現します。NeuronはFINSプロトコルをMQTTに変換でき、EMQXは[MQTTブローカー](https://www.emqx.com/en/blog/the-ultimate-guide-to-mqtt-broker-comparison)として機能し、大量の接続とデータを処理します。

## FINSからMQTTへのブリッジングのアーキテクチャ

Neuronは、標準プロトコルまたはデバイス固有のプロトコルを使用するさまざまな産業デバイスに接続できる、最新の[産業用IoT](https://www.emqx.com/en/blog/iiot-explained-examples-technologies-benefits-and-challenges)接続サーバーです。軽量産業ソフトウェアとして、Neuronはリソースが限られたさまざまなIoTエッジハードウェアデバイス上で実行できます。データ中心の自動化デバイスへの統一アクセスの問題を解決し、インテリジェント製造のための基本的なサポートを提供することを目的としています。

> Neuronについてもっと知る：[Neuron: 産業用IoT接続サーバー](https://www.emqx.com/en/products/neuronex)

EMQXは、大規模で弾性的なクラウドネイティブ分散IoT MQTTメッセージサーバーです。世界で最もスケーラブルなMQTTメッセージサーバーとして、EMQXはIoTデバイスの効率的かつ信頼性の高い大量接続を提供し、メッセージおよびイベントフローデータのリアルタイム処理を高性能で実現し、ユーザーが重要なIoTプラットフォームおよびアプリケーションを迅速に構築するのを支援します。

> EMQXについてもっと知る：[EMQX Enterprise: スケールでのエンタープライズMQTTプラットフォーム](https://www.emqx.com/en/products/emqx)

以下の図は、Neuronがエッジからデータを収集し、MQTTに変換してEMQXにアップロードする方法を示しています。

![diagram](https://assets.emqx.com/images/820e4a0fa4ee05c049c40b83ff97a477.png?imageMogr2/thumbnail/1520x)

## Neuronを介したFINSからMQTTへのブリッジング

このセクションでは、Neuronを使用してFINS TCPデバイスからデータを収集し、収集したデータをEMQXにアップロードし、[MQTTX](https://mqttx.app/)を使用して表示する方法を紹介します。

### EMQXクイックスタート

EMQXは複数のインストール方法を提供しており、詳細なインストール方法は[ドキュメント](https://www.emqx.io/docs/en/v5.0/deploy/install.html?__hstc=3614191.b33d76295d5ea0e3bb7790a771a4b313.1708493974704.1710309138403.1710376253278.32&__hssc=3614191.2.1710376253278&__hsfp=4192984096)で確認できます。この例では、コンテナデプロイメントを使用してEMQXをすぐに体験できます。

Dockerイメージを取得するには、以下のコマンドを実行します：

```
docker pull emqx/emqx-enterprise:5.1.0
```

Dockerコンテナを起動するには、以下のコマンドを実行します：

```
docker run -d --name emqx-enterprise -p 1883:1883 -p 8083:8083 -p 8084:8084 -p 8883:8883 -p 18083:18083 emqx/emqx-enterprise:5.1.0
```

Webブラウザを通じて`http://localhost:18083`にアクセスし（「localhost」を実際のIPアドレスに置き換えてください）、EMQXダッシュボードにアクセスします。これにより、デバイス接続を管理し、関連するメトリックを監視できます。このチュートリアルのためにDockerコンテナを実行し続けてください。ダッシュボードのさらなる機能を体験したい場合は、[ドキュメント](https://www.emqx.io/docs/en/v5.0/?__hstc=3614191.b33d76295d5ea0e3bb7790a771a4b313.1708493974704.1710309138403.1710376253278.32&__hssc=3614191.2.1710376253278&__hsfp=4192984096)を参照してください。

初期ユーザー名：admin、初期パスワード：public

### Neuronクイックスタート

Neuronはさまざまなインストール方法を提供しており、詳細なインストール方法は[ドキュメント](https://neugates.io/docs/en/latest/installation/installation.html)で確認できます。この例では、コンテナ化されたデプロイメントを使用しています。

Dockerイメージを取得するには：

```
$ docker pull emqx/neuron:latest
```

Dockerコンテナを起動するには：

```
$ docker run -d --name neuron -p 7000:7000 --privileged=true --restart=always emqx/neuron:latest
```

Webブラウザを開き、Neuronを実行しているゲートウェイのアドレスとポート番号にアクセスします。これにより、管理コンソールページに移動します。デフォルトのポート番号は7000です。ブラウザを通じてhttp://localhost:7000/にアクセスできます（「localhost」を実際のIPアドレスに置き換えてください）。

#### ステップ1：ログイン

初期ユーザー名とパスワードでログインします：

- ユーザー名：`admin`
- パスワード：`0000`

#### ステップ2：「Southbound」デバイスの追加

**設定**メニューから**「Southbound」デバイス**を選択し、「Southbound」デバイスインターフェイスに入ります。**デバイス追加**をクリックして新しいデバイスを追加します。

- 名前：デバイスの名前を入力します。例えば「fins-tcp-1」；
- プラグイン：ドロップダウンボックスから**FINS TCP**プラグインを選択します。

#### ステップ3：「Southbound」デバイスのパラメータ設定

「Southbound」デバイスを追加した後、自動的にデバイス設定インターフェイスに入り、パラメータを入力して送信します。デモ機器ではOmron CP2Eを使用します。

- 機器タイプ：CPを選択； -PLC IPアドレス：PLCのIPを入力；
- PLCポート：デフォルトは9600；

#### ステップ4：デバイスカードにグループを作成

デバイスノードカードの任意の空白スペースをクリックして、グループリスト管理インターフェースに入ります。**作成**をクリックして、グループ作成のダイアログボックスを表示します。パラメータを入力して送信します：

- グループ名：グループ名を入力します。例えば「group-1」；
- インターバル：1000。

#### ステップ5：グループにタグを追加

グループカードの任意の空白スペースをクリックし、ポイントリスト管理インターフェースに入り、**作成**をクリックしてデータポイントの追加ページに入ります。

![图片png](https://assets.emqx.com/images/ebcb7ae859c18b0830bda06a7ef30e67.png?imageMogr2/thumbnail/1520x)

データポイントのパラメータを入力して送信します：

- 名前：ロケーション名を入力します。例えばtag-1；
- 属性：ドロップダウンメニューからロケーション属性を選択します。例えばRead、Write；
- タイプ：ドロップダウンメニューからデータタイプを選択します。例えばINT16；
- アドレス：ドライバアドレスを入力します。例えば、CIO1。CIOはPLCのCIO領域を表し、1はロケーションのレジスタアドレスを表します。
- 説明、Decimal、Precision：未記入。

#### ステップ6：データ監視で収集データを表示

左側のナビゲーションメニューから**監視 → データ監視**を選択します。作成したデータポイントによって読み取られた値を表示します。

データ監視はグループごとに値を表示します：

- 「Southbound」デバイス：ドロップダウンメニューから表示したい「Southbound」デバイスを選択します。例えば、作成したfins-tcp-1；
- グループ名：選択した「Southbound」デバイスの下で表示したいグループをドロップダウンメニューから選択します。例えば、作成したgroup-1；
- 選択後、ページは選択したグループの読み取られたすべてのポイントの値を表示します。

#### ステップ7：アプリケーションに「Northbound」プラグインモジュールを追加

「Northbound」アプリケーションを作成することにより、Neuronは「Northbound」アプリケーションとの接続を確立し、収集されたデバイスデータをEMQXにアップロードします。

**設定**メニューの**「Northbound」アプリ**を選択し、**アプリケーション追加**をクリックします。

MQTTクラウド接続モジュールを追加します：

- 名前：アプリケーション名を入力します。例えば、MQTT；
- プラグイン：ドロップダウンからMQTTプラグインを選択。

#### ステップ8：「Northbound」アプリケーションパラメータを設定

「Northbound」アプリケーションを追加した後、自動的にアプリケーション設定インターフェースに入り、パラメータを入力して送信します。

MQTT接続の設定：

- クライアントID：このIDは互いに独立している必要があります（IDが重複するとクライアントがキックされる原因になります）。例として、MQTT-12123を設定します；
- QoSレベル：デフォルトは0；
- アップロード形式：デフォルトはValues-format；
- 書き込み要求トピック：デフォルトは/neuron/MQTT/write/req；
- 書き込み応答トピック：デフォルトは/neuron/MQTT/write/resp；
- オフラインデータキャッシング：デフォルトはオフ；
- ブローカーホスト：作成したemqxブローカーのアドレスを入力します。通常はlocalhost、つまり実際のIPアドレスです。
- ブローカーポート：デフォルトは1883；
- ユーザー名、パスワード：不要；
- SSL：デフォルトはオフ。

#### ステップ9：「Southbound」ポイントグループをサブスクライブ

新しく作成したMQTTアプリケーションノードカードの任意の空白スペースをクリックして、サブスクリプショングループインターフェースに入り、「サブスクリプション追加」をクリックします。

「Southbound」デバイスのデータグループをサブスクライブします：

- 「Southbound」デバイス：ドロップダウンリストから作成した「Southbound」デバイスを選択します。例えば、fins-tcp-1；
- グループ：ドロップダウンリストからサブスクライブするグループを選択します。例えば、group-1；
- トピック：MQTTトピックはこの例ではデフォルトで`/neuron/MQTT/fins-tcp-1/group-1`に設定されています。次に、このトピックをMQTTXでサブスクライブしてメッセージを受信します。

#### ステップ10：MQTTクライアントでデータを表示

サブスクライブした後、[MQTTクライアント](https://www.emqx.com/en/blog/mqtt-client-tools)を使用してEMQXに接続し、報告されたデータを表示できます。ここでは、[公式ウェブサイト](https://www.emqx.com/en/products/mqttx)からダウンロードできる強力なクロスプラットフォームMQTTクライアントツールであるMQTTXを使用します。

MQTTXを起動したら、メインページで**+ 新しい接続**をクリックし、設定パラメータを入力し、右上隅の**接続**をクリックします。

- 名前：メッセージの名前を付けると表示しやすくなります。例えば、fins-tcpと命名します。
- クライアントID：デフォルト値を使用しても問題ありませんが、IDが独立していることを確認してください；
- ホスト：**mqtt://**を選択し、`localhost`を入力します（「localhost」を実際のIPアドレスに置き換えてください）。
- ポート：1883。

オプショナルパラメータを入力した後、完了したら右上隅の**接続**ボタンをクリックします。成功した接続の後、トピックをサブスクライブします。

- **サブスクリプション追加**をクリックし、トピックはステップ9でのものと同じである必要があります。例として、`/neuron/MQTT/fins-tcp-1/group-1`を入力します；

サブスクライブに成功すると、MQTTXはNeuronによって収集および報告されたデータを継続的に受信します。以下の図のように表示されます。

![MQTTX](https://assets.emqx.com/images/a84ca7156be60a96e43c4762b7d4b406.png?imageMogr2/thumbnail/1520x)

## まとめ

インダストリ4.0においてクラウド-エッジ協力が進む中、FINSブリッジングは一般的なIoTプロトコルとしてますます人気を博しています。このブログで言及されたソリューションを活用することにより、ユーザーは接続性が向上し、生産効率、コスト削減、製品品質が大幅に改善された[IIoTプラットフォーム](https://www.emqx.com/en/blog/iiot-platform-key-components-and-5-notable-solutions)を安全かつ便利に必要に応じて実装することができます。