コンテンツにスキップ

5.1.1 概要

5.1.1.1 カスタムコンポーネントとは#

SpeeDBee Synapseでは、データの収集や送信を担うモジュールのことを「コンポーネント」と呼びます。

標準ではPLC等のデータを収集するコンポーネントや、クラウドにデータを送信するコンポーネントが用意されていますが、ユーザーが独自にコンポーネントを開発、運用することも可能です。

コンポーネントの開発にはC、もしくは、Pythonを使用できますが、本章では言語によらず、カスタムコンポーネントの開発に共通して必要な基本概念を説明します。

5.1.1.2 コンポーネントベースとコンポーネントインスタンス#

通常はひとまとめに「コンポーネント」と呼称しますが、カスタムコンポーネントを実装する上では、「コンポーネントベース」と「コンポーネントインスタンス」の違いを理解する必要があります。

コンポーネントベースとインスタンス

左側に1列に並べられている項目が、「コンポーネントベース」、中央~右側にある3つの要素が「コンポーネントインスタンス」です。

「コンポーネントインスタンス」は、いずれかの「コンポーネントベース」をドラッグアンドドロップすることで作成されます。 特殊なものを除き、1つの「コンポーネントベース」から複数の「コンポーネントインスタンス」を作成することができます。

カスタムコンポーネントを実装する場合もこれは同様になります。 1つのカスタムコンポーネントを作成すると、画面の左側の列に新しい「コンポーネントベース」が1つ追加されます。 この追加されたコンポーネントベースをドラッグアンドドロップすることで、「コンポーネントインスタンス」を複数作成することができます。

5.1.1.3 コンポーネントインスタンスのライフサイクル#

すべてのコンポーネントインスタンスは、作成されてから削除されるまで下図のライフサイクルで動作します。

コンポーネントインスタンスのライフサイクル

  • コンポーネントインスタンスの作成直後はStandby状態です
    この状態ではコンポーネントは何も動作していません。何のデータも出力せず、何のデータも入力されません。
  • コンポーネントインスタンスの起動アイコンをクリックすると、Running状態に遷移します
    この状態にあると、コンポーネントインスタンスは継続的にデータを出力したり、他のコンポーネントからデータを受け取ったりすることができます。
  • コンポーネントインスタンスの停止アイコンをクリックすると、Stopping状態になり、その後すべての処理を完了するとStandby状態に戻ります。
  • Running途中でコンポーネントインスタンスの処理が継続できないエラー等が発生した場合は、Error状態に移行し、処理を停止します

カスタムコンポーネントの開発では、このライフサイクルの中で、様々な処理をプログラミングすることができます。 以降の章ではプログラミング言語ごとの実装方法を説明します。

5.1.1.4 コンポーネントの入力ポートと出力ポート#

各コンポーネントは、出力ポートと入力ポートを備えています。 出力ポートは、そのコンポーネントが生成したり、外部にアクセスしたりして収集したデータをSpeeDBee Synapseに出力するための要素。 入力ポートは、別のコンポーネントが出力したデータを受け入れて、そのコンポーネントで利用するための要素です。

入力ポートと出力ポート

カスタムコンポーネントの実装においては、それぞれのポート数を指定する必要があります。 データを出力するコンポーネントの場合は出力ポート数を1に、データを受け入れるコンポーネントの場合は入力ポート数を1に、それぞれのポートが必要のない場合は0としてください。 将来的には複数のポートを扱えるようにする可能性がありますが、現時点では各ポートは最大1つに制限されています。