LabVIEW​を​使​っ​た​既存​コード​の​再​利用

概要

テスト​要件​が​頻繁​に​変更​さ​れ​テ​ス​タ​プロジェクト​の​開発​サイクル​も​短縮​さ​れ​てい​く​なか、​既存​の​テスト​ソフトウェア​や​計測​ライブラリ​を​できるだけ​再​利用​する​こと​の​重要性​が​増し​てい​ます。​それなのに​なぜ、​もっと​多く​の​テスト​エンジニア​が​より​頻繁​に​ソフトウェア​を​再​利用​でき​ない​ので​しょう​か。​テスト​グループ​から​最も​多く​寄せ​られる​意見​は、​次​の​よう​な​もの​です。
  • グループ​や​会社​を​去​っ​た​社員​が​開発​した​レ​ガ​シー​ソフトウェア​が​ある​が、​現在​も​現役​で​使​われ​て​いる​ので、​未知​の​もの​へ​の​変更​に​は​重大​な​リスク​と​コスト​が​伴う。
  • テスト​や​検証​の​エンジニアリング​チーム​で​使用​さ​れ​て​いる​ツール​や​言語​は、​個人​的​な​好み​や​グループ​ごと​の​標準​が​ある​が、​過去​の​プロジェクト​で​使用​してき​た​ツール​や​ソフトウェア​が​現在​使用​中​の​もの​と​互換性​が​ない​ため、​コード​モジュール​の​再​利用​が​困難。
  • ソフトウェア​を​最大限​に​再​利用​し、​抽象​化​した​レイヤ​や​フレーム​ワーク​を​構築​する​必要​は​ある​の​だが、​それに​は​費用​と​時間​が​かかる。​プロジェクト​の​要求​が​短期​的​で​ある​ため、​標準​の​再​利用​や​ベスト​プ​ラ​ク​テ​ィ​ス​について​の​優先​順位​は、​いつも​後回し​に​さ​れ​続​け​て​いる。

​ ​真​の​難題​は、​標準化​による​長期​的​な​メリット​と、​既存​の​コード​や​ソフトウェア​について​の​スキル​や​嗜好​と​の​バランス​を​取る​ことに​あり​ます。​こうした​微妙​な​バランス​に​取り組む​にあたり、​オープン​プラットフォーム​で​ある​LabVIEW​の​設計​は、​あらゆる​テスト​ハードウェア​と​ソフトウェアシステム​の​統合​を​支援​する​よう​配慮​さ​れ​てい​ます。

​LabVIEW​を​使用​すると、​複数​の​プログラミング​手法​と​グラフィカル​データ​フロー​を​1​つ​の​アプリケーション​で​組み合わせる​こと​が​でき​ます。​こうした​柔軟性​を​活用​する​こと​で、​テスト​対象​デバイス (DUT) の​制御、​構成、​計測​ライブラリ​の​作成​にあたって、​各自​が​最適​な​ツール​を​選択​でき​ます。​LabVIEW​は、.m、​C、​Python、.NET​など、​複数​の​言語​を​ユーザ​の​アプリケーション​に​統合​し、​ローカル​または​ネットワーク​上​で​実行​さ​れる​他の​ソフトウェア​と​相互​運用​性​を​確保​する​こと​で、​開発​チーム​が​目的​を​達成​する​まで​の​時間​を​短縮​し​ます。

 



内容

既存​の​DLL​および.NET​アセンブリ​の​呼び出し

ソース​コード​を​LabVIEW​ブロック​ダイ​ア​グラム​に​イン​ポート​する​だけ​で​なく、​他の​言語​で​開発​さ​れ​た​既存​の​アプリケーション​や​アルゴリズム​を​LabVIEW​アプリケーション​から​呼び出す​こと​で​再​利用​する​こと​が​でき​ます。​たとえば、​既存​の​C/​C​+​+共有​ライブラリ​を​LabVIEW​で​再​利用​する​必要​が​ある​場合、​ライブラリ​関数​呼び出し​ノード​を​使用​し​て​呼び出す​こと​が​でき​ます。​外部​ライブラリ​の​イン​ポート​を​シンプル​に​する​ため​に、​LabVIEW​では​「共有​ライブラリ​を​イン​ポート」​という​ウィザード​を​用意​し​てい​ます。​これ​は、​LabVIEW​ブロック​ダイ​ア​グラム​に​取り込む​ため​の​LabVIEW​ラッパー​VI​プロジェクト​ライブラリ​を​自動的​に​作成​または​更新​する​もの​です。

図​1.ライブラリ​関数​呼び出し​ノード​を​使用​する​こと​で、​既存​の​C​または​C​+​+共有​ライブラリ​を​G​プログラミング​の​インライン​で​再​利用

 

MATLAB​スクリプト​の​呼び出し

The MathWorks​社​の​MATLAB®​ソフトウェアで開発された​MATLAB​スクリプト​の​呼び出し​を​行い​ます。​この​ソフトウェア​では、​数値​分析、​信号​処理、​応用​数学​の​分野​で​一般​的​な​プログラミング​方式​を​扱う​こと​が​でき​ます。​MATLAB Script Node​を​使​って​これら​を​VI​スクリプト​の​中​で​G​オブジェクト​と​組み合わせる​こと​で、​テスト​および​計測​の​ため​の​システム​を​MATLAB​の​解析​機能​と​統合​でき​ます。

Python​スクリプト​の​統合

LabVIEW​は​システム​で​実行​中​の​他の​アプリケーション​を​呼び出す​こと​も​でき​ます。​この​10​年間​で​Python​の​人気​は​高​ま​って​おり、​各種​アプリケーション​で​数​十万​の​ライブラリ​が​提供​さ​れ​てい​ます。​大規模​な​LabVIEW​リソース​に​組み込む​こと​を​前提​と​した​Python​オートメーション​スクリプト​の​開発​は、​Python​の​柔軟​な​スクリプティング​機能​を​LabVIEW​の​システム​設計​ツール​群​に​統合​する​という​点​で、​直感​に​即​した​ソリューション​です。​Python​コード​を​再​利用​する​方法​は​いくつか​あり、​たとえば​Enthought​社のPython Integration Toolkit for LabVIEWを​用いる​こと​が​でき​ます。​また、​LabVIEW​内​で​コマンド​ライン​式​インタフェース​を​使​って、​実行​可能​ファイル​や​その他​の​ビル​ド​ライブラリ​を​呼び出す​OS​固有​の​インタフェース​を​利用​する​こと​も​でき​ます。

図​3.Python Integration Toolkit for LabVIEW​を​用​い​た​インライン​呼び出し​による、​LabVIEW​で​の​既存​Python​スクリプト​の​再​利用

 

標準​の​工業​用​プロトコル​を通じ​た​外部​システム​と​の​通信

LabVIEW​に​は、​イーサネット​および​シリアル​ベース​の​通信​用​の​汎用​および​業界​固有​の​周辺​通信​ライブラリ​が​あり​ます。​CAN、​PROFINET、​OPC UA、​EtherCAT​など​の​一般​的​な​工業​用​プロトコル​の​ネイティブ​サポート​により、​LabVIEW​は​さまざま​な​デバイス、​装置、​インフラ​ストラクチャ​に​接続​でき​ます。​多く​の​プロトコル​を​サポート​する​必要​が​ある​ブラウン​フィールド​アプリケーション​が​ある​場合、​LabVIEW​は​DNP3​や​FlexRay​など​業界​固有​の​プロトコル​を​含む​約​20​の​サポート​プロトコル​間​で​変換​する​ゲート​ウェイ​として​機能​でき​ます。

LabVIEW​で​FPGA​を​プログラム​する​こと​で、​従来​の​または​専用​の​通信​ニーズ​に​対応​する​カスタム​の​通信​プロトコル​を​効率​的​に​構築​する​こと​さえ​可能​です。​LabVIEW FPGA​モジュール​に​は、​シリアル、​I2C、​SPI​など、​開始​点​として​デジタル​バス​プロトコル​の​コード​サンプル​が​含​まれ​て​おり、​それ​を​ベース​に​構築​でき​ます。​また、​Xilinx Aurora、​Serial RapidIO、​JESD204B、​10​ギガ​ビット​イ​ー​サ​ネット​など​高速​シリアル​プロトコル​用​の​FPGA IP​コア​も​含​まれ​ます。

図​4.NI-​XNET​計測​器​ドライバ​など​LabVIEW​が対応する標準プロトコルを使った、​DUT​その他​の​システム​コンポーネント​と​の​通信

関連​情報