MQTTを使用したAltair EmbedとAltair Panopticonの連携


MQTTを使用したAltair EmbedとAltair Panopticonの連携方法を紹介します。

Altair Embedで演算したデータや計測したデータをPanopticonでリアルタイムに可視化することができます。


事前準備

今回はすべてローカル環境を使用します。

Panopticon(ローカル)のセットアップ方法はこちら

MQTTブローカ(ローカル)のセットアップ方法はこちら


Altair Embedの設定

MQTTを使用して、メッセージと値を送信します。メッセージはJSONを使用します。

下記Exampleを使用します。サイン波とのこぎり波を生成して、MQTTで送受信するサンプルです。

以下の構成となっています。

信号生成にて、JSON文字列作成とMQTT送信のタイミングを指定する5Hzのトリガーとサイン波、のこぎり波を生成しています。

JSON文字列生成にて、サイン波とのこぎり波にラベルを付与した文字列を生成しています。

MQTT送信にて、生成したJSON文字列をMQTTブローカに送信しています。

MQTT受信にて、MQTTブローカに送信された文字列を受信しています。

サンプルでは、インターネットのブローカを使用していますが、今回はローカルインストールしたブローカを使用したいので、

MQTT Publishのプロパティを以下のように変更します。Topic名はEmbedとしました。

Keep Aliveはデフォルト0ですが、60程度に設定いただくと送信が安定します。

PowerShellを起動し、Topic名'embed'で受信状態とします。

./mosquitto_sub -t 'embed'

Embedを実行すると、送信したJSON文字列がPowerShellのウィンドウに表示され、ただしくローカルのMQTTブローカに送信できていることがわかります。

以上でEmbedの準備は完了です。


Altair Panopticonの設定

Panopticonを起動して、新規ワークブックを作成します。

ワークブック名はEmbed Visualizationとしました。


データテーブルの作成

まずはデータテーブルを作成します。

データソースとしてMQTTを選択します。

今回はローカルのブローカを使用しますので、デフォルトのtcp://localhost:1883のままでOKです。

トピック名をembedとします。合わせて、データテーブルの名称もembedにしておきます。

データ列を作成します。

Embedを実行し、Topic名embedのデータが送信されている状態で、Panopticonの列作成をクリックします。

そうすると、JSONで定義したラベルを自動認識して、列が作成されます。

今回はサイン波とのこぎり波の二つのデータに対応したsinとsawが作成されます。

これらのデータをリアルタイムで表示させるための設定を行います。

まずは、下記のリアルタイム設定のID列をLevel_0とし、時間ID列を[Automatic Time ID]、時間ID列名称をAutomatic_Timestamp_Columnとします。

次に、変換設定にて時系列分析を有効化する変換をオンにしてください。

以上でデータの準備は完了です。右上のボタンで保存してください。

画面左下のデータ列のアイコンが時系列アイコンになっていれば成功です。

データの更新時間を変更します。デフォルト900 (ms)です。Embed側からの送信が5Hzですので、200 (ms)に変更しておきます。

再度保存して、左上のボタンで戻ります。


グラフの作成

ダッシュボードをマウスでドラッグすることで、グラフを配置できます。

時系列のグラフを作成する場合は、時系列ビジュアライゼーションからグラフを選択します。まずはニードルを配置してみます。

のこぎり波のグラフを表示するには、データテーブルのsawをドラッグアンドドロップでY軸に設定します。

生値を表示する場合は、集計なしとしてください。

同様に折れ線でサイン波を表示してみます。

Y軸をsinとします。

できましたら、右上の保存、ビューとクリックします。


リアルタイム可視化

Embedを実行するとPanopticonに リアルタイムでグラフが描画されました。

Altair EmbedはHardware in the loop / Human in the loopに対応しており、実機を含めた様々なデータを取り扱うことができます。

Altair Panopticonで様々なダッシュボートを作成してみてください。