OPC UA を使用した IDS NXT とのインターフェース
IDS NXT カメラを OPC UA を使用してファクトリーオートメーションに統合
ソフトウェアアップデートにより、IDS NXT カメラをシームレスにファクトリーオートメーションに統合するための、未来志向のコンポーネントを追加します。プラグインによって OPC UA サーバーをカメラに統合します。ソフトウェアアップデートによって OPC UA が搭載され、ネットワーク内の「レシピ収集」を通じて AI 機能を利用でき、結果を現場レベルからマシンおよび制御レベルに、迂回せずに直接伝達できます。したがって、OPC UA は IDS NXT カメラに最適な補完機能となり、カメラ構成およびビジョンアプリベースの推論タスクを、OPC UA クライアントが読み取れる互換性がある形式で産業環境からアクセスできるようにします。OPC UA は IDS NXT カメラにとって理想的なインダストリー 4.0 アドオンになります。
このテクニカルティップスは、「IDS NXT 通信」の続編で、OPC UA を通じた IDS NXT カメラの新しい通信の可能性を紹介しています。保存したカメラ設定の使用、推論タスクの開始、OPC UA クライアントを介した結果の問い合わせの方法を説明します。サンプルワークフローを使うと準備はほとんど不要で、IDS NXT カメラと PC を同じネットワーク上に設定するだけです。
OPC UA
OPC UA は重要なテクノロジーです。クライアントとサーバーとの通信を統一します。さらに、デバイス (サーバー) のクライアントへの自己記述の方法と、提供する情報とサービスも決定します。クラウドに至るまでのすべての物理レイヤーとイーサネットベースのフィールドバスで交換が統一されるので、データを異なるプロトコルで読み取り、変換、同期する必要がない場合のエンジニアリング作業が大幅に簡素化されます。このため、オートメーションの時間とコストが削減され、産業プラントへ迅速に統合できます。OPC Machine Vision Companion 仕様により、メーカー間および業界間の通信技術で IDS NXT にとっての理想的なインターフェース拡張を実現し、AI ベースの「レシピ」をファクトリーオートメーションで容易に使用できるようになります。
IDS NXT OPC UA サーバープラグイン
OPC UA サーバープラグインにより、IDS NXT カメラを OPC UA サーバーに転換でき、任意の OPC UA クライアントで使用できるようになります。画像処理タスクはプラグインによって「レシピ」と呼ばれる機能ブロックにカプセル化されます。同様に、特殊なアプリケーションの必須で、時には非常に詳細な設定がまとめられ、設定データレコードに保存されます。このため、プラグインは REST インターフェースを介して対応する機能を提供します。IDS NXT cockpit の GUI から非常に簡単に使用できます。画像処理結果は、結果管理またはイベントへのサブスクリプションとして、OPC UA クライアントによって問い合わせることができます。名前はシリアル番号などのデバイスの一般情報は、デバイス情報モデル経由で提供されます。OPC UA 通信は追加されたカメラインターフェースと同様に機能し、OPC UA サーバーを起動した後、イーサネットベースのネットワークで利用できます。
ダウンロード
IDS NXT OPC UA プラグインは IDS Web サイトのダウンロード領域にあります。ダウンロードするには、該当するカメラモデルを選択して、[IDS NXT Experience Kit > Vision Apps] カテゴリを開きます。プラグインは、IDS NXT cockpit を通じて、他のビジョンアプリと同様の方法でインストールできます。
プラグインを使用するには、カメラに IDS NXT OS 1.1 以上をインストールする必要があります。このテクニカルチップスでは、"Classifier" ビジョンアプリが必要な推論タスクのデモを行います。
"IDS NXT OS" のダウンロード
"OPC UA Plugin" のダウンロード
"Classifier Vision App" のダウンロード
手順
カメラのオペレーティングシステムをアップデートするには、クイックスタートガイド setup-ids-nxt-rio.pdf の「ファームウェアの更新」の章を参照してください。
プラグインのマニュアルでは、プラグインの機能、IDS NXT cockpit を介して使用する方法、すべての REST API の一覧を説明しています。
IDS NXT クイックスタートガイド
OPC UA サーバープラグインマニュアル
OPC UA クライアント
IDS NXT カメラは OPC UA プラグインを介して任意の OPC UA に接続できます。たとえば、マシン制御や管理システムの専用ソフトウェアなどを使用できまs。C++、C#、Python など、各種のプログラミング言語用の OPC UA 開発ライブラリを利用すると、独自の OPC UA クライアントを実装することもできます。ここではカメラを既存の OPC UA ネットワークにすばやく簡単に統合できることを示すため、よく知られた OPC UA クライアント "UaExpert®" を使用して OPC UA プラグインを実演します。機能を完備したクライアントは、多様な機能と GUI により、IDS NXT OPC UA サーバーの能力を容易に実証できます。データアクセスやイベント、OPC UA メソッド呼び出しなどの OPC UA 機能をサポートしています。
ダウンロード
OPC UA クライアント "UaExpert®" は、Unified Automation GmbH の Web サイトで一度登録すると、無料で利用できます。
"UaExpert®" のダウンロード
IDS NXT を OPC UA ビジョンシステムとして使用
ティップス:IDS NXT OPC UA チュートリアルのビデオ
IDS のチュートリアルビデオ「IDS NXT - Setup OPC UA communication」では、以降のステップの概要を説明し、OPC UA クライアント "UA Expert" との通信に基づくプラグインの使用事例を簡潔にまとめています。
IDS NXT カメラの OPC UA による制御を実演するため、このテクニカルティップスでは、AI 画像処理ワークフローを例に取ります。このワークフローは、IDS NXT カメラと数個の物体 (ボールペン、定規、消しゴム、鍵など) を使ってユーザー自身で容易に再現できます。手順をステップごとに進めるだけです。
1) 推論タスクのセットアップ
- このサンプルでは、"Classifier" ビジョンアプリと、事前にインストールされたニューラルネットワーク (CNN) "ImageNet1000" を使用します。IDS NXT cockpit で "Vapp Manager" からアプリをインストールして起動します。
- 分類器は、ポールペン、鍵、名刺などの多数の物体を、トレーニング済みの ImageNet1000 によって認識します。任意の物体を IDS NXT カメラの下に置いて、フリーランモードで画像撮影をセットアップし、物体の画像が適切な設定 (色、シャープネス、露出など) で完全に処理されるようにします。
- 識別する物体に ROI を使用します。
各画像撮影を分類した推論結果は ROI に表示され、結果領域にはそれぞれの確率が表示されます。
この例では、ボールペン (68%)、鉛筆削り (100%)、消しゴム (98%) が認識されています。
手順
分類器の使用方法に関するマニュアルも、カメラのダウンロード領域に用意されています。
Classifier ビジョンアプリのマニュアル
2) OPC UA サーバーの起動
- OPC と通信するために、カメラ側でのプログラミングは一切不要です。IDS NXT カメラで IDS NXT cockpit の "VAPP Manager" を介して、OPC UA プラグインをインストール (1) して起動 (2) するだけです。
- OPC UA サーバーはプラグインのアクションを通じて起動 (1) および停止 (2) できます。デフォルトでは、プラグインが起動するとサーバーは自動的に起動 (3) します。
3) OPC UA 構成とレシピの作成
- OPC UA プラグインを通じた IDS NXT カメラでの構成の作成と保存は、IDS NXT cockpit を使うと簡単です。
- 現在のカメラ設定 (構成名) と分類器による推論タスク (レシピ名) に名前を付けて、構成とレシピを対応するアクションで保存するだけです。これで、cockpit によるカメラの OPC UA のセットアップが完了しました。
手順
OPC UA サーバープラグインマニュアルの「アクション」の章を参照してください。
4) OPC UA クライアントサーバー接続の確立
- OPC UA クライアント "UaExpert®" をインストールして起動します。
- カメラの OPC UA サーバーを接続するには、メニューバーで (サーバーの追加) をクリックします。[Advanced] タブに切り替えます。
- 接続に構成名を指定します。
- サーバーの [Endpoint URL] を指定します ("opc.tcp://169.254.173.231:4840" など)。
- プロトコル: opc.tcp
- カメラの IP アドレス
- OPC UA サーバーポート:4840
- 目的の [Security Policy] を選択します (サポート内容:None、Basic128Rsa15、Basic256、Basic256Sha256)。
- [Message Security Mode] を選択します (None、Sign、Sign&Encrypt)。
- IDS NXT カメラのアクセスデータを [Authentication Settings] に入力します (admin または service ユーザーなど)。
- OPC UA サーバーに "接続" で接続できるようになりました。
5) デバイス情報の要求/編集
- サーバー接続をテストするには、[Address Space] ウィンドウでカメラの情報モデルを確認します。たとえば、UaExpert® でデバイス名を変更すると、IDS NXT cockpit でも更新されます。
- [ Data Access View] を通じてステータスや統計パラメーターをサブスクライブして、変更を追跡できます。画像カウンター "ImageTotal" をウィンドウにドラッグすると、新しい画像がカメラで撮影されるたびに値が動的に増加します。
- 画像カウンターをリセットするには、" ResetAll" メソッドのコンテキストメニューで "Call" を実行します。サブスクライブしたフレームカウンターが "0" からカウントを開始するようになります。
IDS NXT ビジョンシステム -- OPC UA マシンビジョンに基づくコンパニオン仕様
UaExpert® の [Address Space] にある [Vision System] ノードで、IDS NXT ビジョンシステムの標準化された属性が表示されます。これは、コンパニオン仕様「OPC Machine Vision」に従ってカメラの OPC UA サーバーに実装されます。
今後、カメラの準備した推論タスクを OPC UA のみで制御できるようになります。
バージョン v1.6 以降の OPC UA Client "UaExpert®" では、数値の入力引数があるメソッドのすべての呼び出しに対して、該当するフィールドに数値を入力する必要があります。空のフィールドがある呼び出しは無効で、対応するエラーメッセージが発生します。スクリーンショットとビデオは以前のバージョンで作成されています。
6) カメラ構成のアクティブ化
- まず、カメラに保存された構成のリストを、関数 GetConfigurationList への呼び出しによって取得します。
ResultCount には、InternalId "conf_classifier.json" の構成の数として "1" が表示されます。 - 関数 ActivateConfiguration を使用して、保存されているパラメーターがカメラで使用される、現在有効な構成を定義します。該当する InternalId を呼び出しの入力値 (Id) として設定します。
- ノード Active Configuration から現在アクティブな構成をチェックできます。ID " conf_classifier.json" が属性に表示されます。
7) タスクの準備 (レシピ)
カメラに事前に保存された画像処理タスクについても、同様の方法で処理できます。
- 関数 GetRecipeListFiltered を入力値 IsPrepared = 2 (DONTCARE_2) で呼び出すと、ResultCount として保存されたレシピの数 "1" が返されます。この例では、ID が "recipe_classifier_imagenet.json" の保存されたレシピを示しています。
- 関数 PrepareRecipe により、以前問い合わせた Id を入力値 "InternalIdIn" として設定することで、このレシピをアクティブな画像処理タスクとして準備できるようになりました。
一般に、複数のレシピを同時にアクティブにできます。ただしレシピは、他のレシピが同じビジョンアプリで準備されていないときに限り、アクティブ化できます。
レシピがすでに関数 GetRecipeListFiltered で入力値 IsPrepared = 1 (TRUE_1) によって実行されているか、チェックできます。ResultCount!= 0 の場合、レシピはすでに準備されています。この場合はまず、関数 UnprepareRecipe を使用します。
8) 結果イベントのサブスクライブ
カメラは OPC UA クライアントから完全に準備されました。カメラタスクを実行する前に、結果イベントにサブスクライブする必要があります。
- このためには [EventView...]
- を追加し、カメラの VisionSystem をこのビューにドラッグアンドドロップします。
- [SimpleEvents] および [ConditionTypes] フィールドをオンにして、すべての詳細を取得します。
- [Apply] ボタンで選択内容を確定します。
9) タスク (レシピ) の実行 - イベント結果の評価
カメラでジョブを 1 回だけ実行できます。
- このためには、メソッド StartSingleJob を 1 回呼び出します。
- ResultReadyEvent がカメラから EventView に返されます。
- イベント詳細に、指定された 3 つの ROI (ballpoint、pencil_sharpener、rubber_eraser) の推論結果と該当する分類確率が表示されます。
まとめ
デジタル入出力、RS-232、REST Web サービスにより、IDS NXT カメラと AI 機能はすでに、使用事例で高い柔軟性を発揮しています(テクニカルティップス「IDS NXT とのインターフェース」の最初の部分を参照)。
OPC UA サーバーを通じて、IDS NXT 推論カメラを、あらゆる先進的なファクトリーオートメーションシステムに、ほんの数ステップで統合できる、産業向けビジョンセンサーへと転換できます。
テクニカルティップスでは、IDS NXT cockpit の利用により。コンパニオン仕様「OPC Machine Vision」に従ってマシンビジョンシステムをすばやく簡単に標準化できることを示しています。事前の知識やプログラミングは不要です。準備したカメラ構成と AI タスクをカメラにレシピとして保存するだけです。この準備により、IDS NXT ビジョンシステムの機能を任意の OPC UA クライアントで制御し、使用できます。カメラは推論結果にジョブごとに 1 つのイベントを提供し、これを制御システムで今後のタスクに直接使用できます。
OPC UA 通信により、IDS NXT 推論カメラは物体の検出および分類の機能をファクトリーオートメーションに簡単に組み込めます。産業への人工知能の統合も簡単になりました。OPC UA IDS NXT カメラへの統合については、技術記事「レシピによる推論」を参照してください。さらに詳しい情報はナレッジベースをご確認ください。ご不明な点がございましたら、システムコンサルタントまでお気軽にお問い合わせください。
ティップス:IDS NXT ウェビナービデオ
ウェビナービデオ「Integration of IDS NXT in Factory Automation」では、IDS NXT カメラインターフェースを通じた通信を、Python サンプルコードと Jupiter Notebook を使って実演します。