IO-Link Collector
IO-Linkスマートセンサーを差し込むだけで、センサーごとの設定なしで名前付き・スケーリング済みの工学値が得られます。IO-Linkマスター — およびその背後のセンサーやアクチュエータ — を接続し、それらのプロセスデータをフリートデータベースへ直接ストリーミングします。すべてはブラウザで設定されます:コーディングも、再デプロイも、ダウンタイムもありません。
このアプリは、マスターごとに選択する3つのトランスポートで動作します:HTTP/REST(ifm IoT Core API、Balluffマスターが実装するベンダー中立のIO-Link Community JSON標準、そしてそれ以外の何にでも対応する汎用の設定可能なREST方言)、OPC UA(例:OPC UA IO-Link Companion Spec)、MQTT(例:Pepperl+Fuchs)。OPC UAとMQTTのトランスポートはサブスクリプションベースで、値が変化するとプッシュされます。どのトランスポートでも、接続されたセンサーはそのIODDから自動的にデコードされます — 生のプロセスデータが、センサーごとの設定なしで、名前付き・スケーリング済みの工学値になります。
このアプリの利点
自動的なセンサー検出。 アプリをIO-Linkマスターに向けると、すべてのポートをプローブし、どのセンサーが接続されているかを検出して、デバイスID、ベンダーID、製品名を読み取ります。接続された各ポートは自動的にデータポイントになります。
自動IODDデコード — マッピングなしで名前付き・スケーリング済みの値。 これがこのアプリの標準的な動作方法です。接続されたすべてのセンサーを認識し、その生のプロセスデータを自前で完成された工学値に変換します — センサーの公式IODD(IO-Linkデバイス記述)を公開のIODD Finderで、アカウント不要・APIキー不要で参照し、各値を正しい名前、スケーリング、単位でデコードします。センサーを差し込むだけで、温度が°C、圧力がbar、距離がmmで現れます。オフラインまたはエアギャップ環境のゲートウェイでは、IODDを組み込みカタログに貼り付ければ同じデコーダーがそれを使用します(貼り付けられたIODDは、取得されたものより常に優先されます)。
ホットプラグ対応。 センサーを交換したり、取り外したり、新しく追加したりすると、アプリが自動的に気づきます — マスターを再検出し、再起動なしでデータポイントカタログを更新します。
重要なものだけを保存。 個々のデータポイントを一時停止したり、値が実際に変化したときだけ記録するstore-on-changeをオンにしたりできます — ノイズの多い信号や高速サイクルの信号がデータベースを肥大化させるのを防ぎます。
対応マスター、トランスポート、センサー
すべての検出、ホットプラグ、IODD/プロセスデータのデコードは、すべてのトランスポートで共通です。Master Type設定は、アプリが特定のマスターにどのように到達するかを選ぶだけです。
トランスポート
| Master Type | トランスポート | API / ソース |
|---|---|---|
ifm | HTTP / REST(ポーリング) | ifm IoT Core REST(getdatamulti) — ifm ALシリーズおよび互換マスター |
iolink_json(デフォルト) | HTTP / REST(ポーリング) | IO-Link Community「JSON for IO-Link」標準(/iolink/v1/...) |
balluff | HTTP / REST(ポーリング) | Balluffマスター — JSON for IO-Link標準を実装 |
generic | HTTP / REST(ポーリング) | ポートごとに設定可能なREST — HTTP URLを公開する任意のマスター |
opcua | OPC UA(サブスクリプション/プッシュ) | IO-Linkデータを公開するOPC UAサーバー、例:OPC UA IO-Link Companion Spec |
mqtt | MQTT(サブスクリプション/プッシュ) | ブローカーにパブリッシュするマスター/ゲートウェイ、例:Pepperl+Fuchs ICE2/ICE3 |
Turck(TBEN / FEN)マスターは、これらのいずれでもなくModbus/TCPやフィールドバス経由でIO-Linkを公開します — それらにはModbus Collectorを使用してください。
マスターベンダー
- ifm — IoT Core REST(AL13xx / AL19xx / AL11xxおよび互換);すべてのポートがサイクルごとに1つのバッチ化されたリクエストで読み取られます。
- Balluff — BNI(現行ファームウェア)およびCMTK、JSON-for-IO-Link標準経由。
- Pepperl+Fuchs — ICE2 / ICE3、MQTT(またはOPC UA)経由。
- IO-Link Community JSON標準を実装する、OPC UAサーバーを公開する、MQTTにパブリッシュする、またはポートごとのREST URLを提供する任意のマスター(
generic)。
IO-Linkセンサーとプロセスデータのデコード
- ポートごとの自動検出:デバイスID、ベンダーID、製品名。
- 自動再検出を伴うホットプラグ検出 — 再起動なし。
- 自動IODDデコード — IODD FinderからのキーレスでのIODD自動取得と、手動でのIODD貼り付けカタログ(貼り付けられたIODDが取得されたものより優先されます)。
- ポートごとの手動YAMLデコード仕様オーバーライド。
- デコードタイプ:
UINT8/16/32、INT8/16/32、FLOAT32、BOOL。 - バイト整列とビットフィールドのデコード — 例:測定値とステータスビットが1つのプロセスデータワードにパックされている場合(IODD形式)。
- 値ごとの線形スケーリング(
value = raw × scale + bias)と工学単位。 - デコードが設定されていない場合は、生のプロセスデータ(16進数)のパススルー。
セキュリティと認証
- OPC UA — セキュリティポリシー(
None、Basic256Sha256、Basic256、Basic128Rsa15)、セキュリティモード(None、Sign、SignAndEncrypt)、クライアント証明書 + 秘密鍵。 - MQTT — TLS、オプションでCA証明書。
- OPC UAおよびMQTT向けのユーザー名 / パスワード。
得られるもの
プロジェクトにアプリをインストールし、エッジPC(ゲートウェイ)を割り当てます。次にアプリボードを開き、設定ビューに移動してマスター接続を追加します:ゲートウェイを選び、マスタータイプ(デフォルトiolink_json)を選び、マスターのアドレス(タイプに応じて192.168.0.10のようなREST URL、opc.tcp://…エンドポイント、またはmqtt://…ブローカー)を入力し、収集間隔を設定します。接続されたセンサーは、そのIODDから自動的にデコードされます。
その瞬間からアプリはマスターから収集を行い — HTTPマスターは設定された間隔でポーリングし、OPC UA / MQTT経由ではプッシュされた更新を受信します — すべての値をフリートデータベースのmeasurementsテーブルに保存します。各読み取り値は、ポートの接続ステータス(さらに利用可能な場合はOPC UAの品質とソースタイムスタンプ、またはMQTTのソーストピック)を伴います。マスターごと・サイクルごとに1行が書き込まれ、各マスターのライブのオンライン/オフライン状態はassetstatusテーブルで追跡されます。収集された読み取り値はデフォルトで3か月間保持されます(調整可能)。
手動デコード仕様(フォールバック)
デコードはIODDを介して自動的に行われるため、これはめったに必要ありません — センサーに公開されたIODDがない場合や、カスタムレイアウトが必要な場合にのみ使用してください。マスターのDatapointsフィールドにYAML配列を入れます。各エントリは、ポートのプロセスデータの一部を、名前付き・スケーリング済みの値にマッピングします。
- label: Temperature
port: 1
offset: 0 # byte offset into the port's process data
length: 2 # number of bytes
type: INT16 # UINT8/16/32, INT8/16/32, FLOAT32, BOOL
scale: 0.1 # value = raw × scale + bias
unit: degCビットフィールド — 値とステータスビットを1つのプロセスデータワードにパックするセンサー向け(ビットはLSBから数えます、IODD形式)、例:ifm O5D距離センサー:
- label: Distance
port: 1
type: UINT
bit_offset: 4
bit_length: 12
scale: 10
unit: mm
- label: OUT1
port: 1
type: BOOL
bit_offset: 0共通のコレクター機能
すべてのIronFlockコレクターと同様に、IO-Link Collectorはブラウザで完全に設定でき — 組み込みのアプリボードで、パラメータファイルや再起動なしにマスター接続を追加・編集・一時停止できます。フォームには選択したトランスポートに関連するフィールドのみが表示され、ゲートウェイごとに無制限のマスターを接続して、ベンダーとトランスポートを自由に混在させられます。エッジで信頼性が高く:各マスターは分離して収集され(1台の到達不能なマスターが他を停滞させることは決してありません)、ゲートウェイがプラットフォームへの接続を失っても、アプリは読み取りを続け、ローカルにバッファリングしてから、再接続時に効率的な一括キャッチアップで、すべてを順番どおりに転送します(バッファサイズはゲートウェイごとに設定可能で、オプションで転送専用モードもあります)。そしてハードウェアなしで試せます:任意のマスターをデモモードに切り替えると、アプリがリアルなセンサーデータ(温度、圧力、流量、スイッチ)を生成するため、実際のハードウェアを接続する前に全体的な使い心地を確認できます。
データを活用する
付属のアプリボードは、流入するデータの即時概要を提供します。カスタマイズされた表示には、IO-Linkの測定値を他のアプリのデータと並べて表示するカスタムダッシュボードを構築し、Data Backendを介してクエリし、Alarmsアプリを使って収集した値をSMSまたはメール通知でリアルタイムに監視します。デバイスをオンラインにしてアプリをインストールするには、デバイス管理とアプリ管理を参照してください。