N3uron、MQTT、Modbusを使用した産業データのAWSクラウドへの公開
はじめに
産業オートメーションにおいて、Modbusは最も一般的なプロトコルの一つとして際立っています。MQTTは、多くの特性により産業オートメーションにおけるIoTの主要プロトコルとして台頭してきました。その軽量設計、効率性、スケーラビリティ、非同期メッセージングのサポートが注目されています。MQTTでは、デバイスは報告可能なイベントがある場合にのみ通信を行い、これは常時更新チェックを行うのとは対照的です。このイベント駆動型アプローチは、例外による報告(データが標準から逸脱した場合や特定のトリガーでのみデータを送信)と組み合わされることで、帯域幅とリソースを節約し、重要なIoTアプリケーションのデータ伝送を最適化します。
reComputer R1000とN3uron Duoの強力な組み合わせは、堅牢な接続性とデータ操作機能を提供することで、効率的なプラント管理を促進します。このWikiは、産業環境におけるModbus TCPの重要性を強調し、接続性をさらに向上させるためのMQTTデバイスのシームレスな統合をハイライトしています。
前提条件
ハードウェア
reComputer R1000 |
---|
![]() |
ソフトウェア
N3uronを始めるガイドを学習することを強くお勧めします。このガイドでは、N3uronのWebインターフェースのナビゲーション、Web UIやWeb Visionモジュールなどの概念の理解、タグの概念の把握、基本的なダッシュボードの作成に関する重要な洞察を提供しています。これらの基礎をまだ探索していない場合は、さらに進む前に探索することをお勧めします。提供されたリンクからガイドにアクセスできます。
Modbus TCP/IP用のイーサネット設定を構成する
PLC/デバイスのIPドメインがワイヤレス設定と異なるため、IP設定を手動で変更する必要がある場合があります。そのために、
- ステップ01: Bullseyeを実行している場合は、以下のコマンドを実行してください:
sudo nano /etc/dhcpcd.conf
- ステップ 02: 次に、PLC/デバイスのネットワークドメインに応じてイーサネットポートの設定を構成し、metric コマンドを使用して優先度を設定します。最も低いメトリック値が最も高い優先度を持ちます。
- ステップ 01: Bookworm OS を実行している場合は、GUIを使用してネットワークアイコンをクリックできます。詳細オプションの下で、「Edit Connections」を選択します。
- ステップ 02: 「Wired Connection 2」(ETH 1)を選択し、IPv4設定の下でアドレス、ネットマスク、ゲートウェイを追加します。
Modbusモジュールの作成と設定
N3uronのWebUIインターフェース内でモジュールインスタンスを作成する
- ステップ 01: ナビゲーションパネルで、Config を選択します。
- ステップ 02: エクスプローラーパネルで、Modules を選択します。
- ステップ 03: Modelメニューをクリックし、New Module を選択します。
- ステップ 04: インスタンスには任意の名前を付けることができますが、この例では ModbusClient を使用します。
- ステップ 05: Module Typeプロパティを ModbusClient に設定します。残りのプロパティはデフォルト値のままにして、Save をクリックします。
チャンネルの作成と設定
- ステップ 01: 作成したModbus Clientとモデルの下で、New Channel を選択します。チャンネル名を Client とします。
- ステップ 02: 次に、Modbus TCPを使用してPLCと通信します。PLCの IPアドレス と ポートアドレス を提供してください。
Modbus RTUを使用している場合は、考慮すべき様々な設定があります。そのためには、COMポート、ボーレートなどの詳細を提供する必要があります。N3uronでModbus RTUとTCPプロトコルの両方を設定する詳細については、提供されたガイドを参照してください。
- ステップ 03: デバイスを追加する: 各チャンネルは1つ以上のデバイスを持つことができます。デバイスの 名前 を設定し、設定を続行します。この場合、デバイス名は PLC です。
- ステップ 04: このインターフェースを通じて調整できる設定がいくつかあります。詳細についてはこのリンクから確認できます。ただし、この場合はそのままにしておきます。
タグ設定
- ステップ01: WebUIに移動し、Configを選択し、Tagをクリックします。Modelセクションで、メニューをクリックしてNew Tagを選択します。Q1と名前を付けます。通常、Qは出力コイルを示すために使用されます。
- ステップ02: 次に、以下の設定を行う必要があります。
- Source : Enabled/Yes
- Module Type : ModbusClient
- ModuleName: ModbusClient
- Config: Device: Client/PLC
- Modbusアドレス: 008931
- Data type: Boolean そしてSaveします。
Modbusアドレスについては、PLCまたはデバイスメーカーのデータシートを参照することをお勧めします。そこには、入力、出力、保持アドレスの詳細が記載されています。これらの仕様に従って、タグ設定のModbusアドレス行で調整を行う必要があります。例えば、メーカーが出力コイルQ1を8193と表記している場合、アドレスは008193として設定する必要があります。同様に、ネットワーク入力が1として表記され、それがコイルタイプの場合、アドレスは000001として設定する必要があります。
- ステップ03: リアルタイムシミュレーション
システムに接続すると、出力コイルと入力コイルのリアルタイムステータスを表示できます。
N3uronインターフェースを介してPLCと相互作用するには、読み取りと書き込みの両方の機能を含む適切なアクセス許可が必要です。
N3uronのWebUIインターフェース内でMQTTモジュールインスタンスを作成する
- ステップ01: Navigationパネルで、Configを選択します。
- ステップ02: Explorerパネルで、Modulesを選択します。
- ステップ03: ModelメニューをクリックしてNew Moduleを選択します。
- ステップ04: インスタンスには任意の名前を付けることができますが、この例ではMQTTを使用します。
- ステップ05: Module TypeプロパティをMqttClientに設定します。残りのプロパティはデフォルト値のままにして、Saveをクリックします。
N3uronのMQTTモジュールを設定する
-
ステップ01: Explorerパネルで、作成したばかりのMQTTインスタンスを選択します。
-
ステップ02: Modelメニューボタンをクリックして、New Connectionを選択します。
-
ステップ03: 新しい接続に名前を付けます。この例では、MqttClientと名前が付けられています:
- Destination broker : Custom
- Authentication mode: Password
- Username : Your Broker Username
- Password: Your Broker Password
- Protocol:MQTT
- Broker URL:Broker ip 設定をSaveします
N3uronのMQTTモジュールを使用してトピックを購読する
- ステップ01: Modelパネルで、AWS Connectionを右クリックし、New Subscriberを選択して名前を付けます。この例では、単純にSubscriberを使用します。
- ステップ02: それをクリックして、Topicフィールドに名前を追加します。この例では、device/dataを使用しています。
テストと実践的な体験のために、XIAOで実行できるArduinoコードを提供しています。さらに、アップロードする前に、このコードに独自の認証情報を入力する必要があります。
-
ステップ03: 以下に示す値を使用して次のプロパティを設定し、残りはデフォルト値のままにします:
- Qos: Qos 0.
- Encoding: UTF8
- Compression: None
- Serialization: JSON
- Data parser/Type: MqttClient JSON そしてSaveします。
ここでは、MQTTClient JSON形式用に設定されたデータパーサーを利用します。XIAOデバイスは、この形式でブローカーにデータを公開します。デバイスがこの特定の形式でデータを公開しない場合は、使用している形式を特定し、デバイスを適切に処理するためのカスタムJavaScriptコードスニペットを作成する必要があります。詳細なガイダンスについては、提供されたガイドラインを参照してください。
タグを作成する
- ステップ01: Explorerパネル内で、Tagsを選択します。
- ステップ02: Modelメニューで、フォルダアイコンを右クリックし、New Tagを選択して名前を付けます。この例では、testを使用します。
-
ステップ03: Configurationパネルで、以下の値を使用して次のプロパティを設定し、残りはデフォルト値のままにします:
- Type: Number.
- Source/Enabled: Yes
- Module Type: MqttClient
- Module name: MQTT
- Config/Subscriber: MqttClient/Subscriber Saveをクリックします。
- ステップ04: リアルタイムシミュレーション システムに接続すると、MQTTブローカーからの出力のリアルタイムステータスを表示できます。
ボーナス : AWSで工場のステータスを公開しよう
AWSクラウドをreComputer R1000デバイスに接続する方法について、ステップバイステップの手順を提供しています。このwikiが初めての場合は、このリンクを参照してください。
- ステップ01: Explorerパネルで、作成したばかりのMQTTインスタンスを選択します。
- ステップ02: Modelメニューボタンをクリックし、New Connectionを選択します。
- ステップ03: 新しい接続に名前を付けます。この例では、MqttPublisherと名付けられています。
-
ステップ04: 接続プロパティを設定します:
- A: Destination BrokerドロップダウンメニューからAmazon Web Servicesを選択します。Authentication modeはCertificateになります。また、この例ではClient IdはN3uronです。
- B: AWS IoTコンソールでThingを作成したときにダウンロードして保存したCertificate、Private key、CA certificateをロードします。
- C: AWS IoTコンソールで、左側のメニューからSettingsに移動し、Device Data Endpointをコピーします。N3uronに戻り、Broker URLフィールドに貼り付けます。
- D: 残りのプロパティはデフォルト値のままにして、Saveをクリックします。
- ステップ05: Modelパネル内で、設定したばかりのMqttPublisher接続を右クリックし、New Publisherを選択して名前を付けます。この例では、単純にAWSを使用します。
-
ステップ06: それをクリックし、Topicフィールドに名前を追加します。この例では、N3uronを使用しています。
-
ステップ07: Tag Filterボタンをクリックし、New Tag Filterを選択してデフォルト名を変更します。この例ではTagFilterを使用しています。Mode、Path、Regex patternはデフォルト値のままにします。この設定により、N3uronで設定されたすべてのタグがAWSブローカーに公開されます。
- ステップ08: AWS IoTコンソールに移動し、左側のメニューでMQTT test clientを選択します。Subscribe to a topicタブをクリックし、Topic filterにN3uronと入力してすべてを購読し、Subscribeをクリックします。
技術サポート & 製品ディスカッション
弊社製品をお選びいただき、ありがとうございます!お客様の製品体験を可能な限りスムーズにするため、さまざまなサポートを提供いたします。異なる好みやニーズに対応するため、複数のコミュニケーションチャネルをご用意しております。