LabVIEW​により​既存​の​コード​を​再​利用​し​て​開発​時間​を​削減

概要

LabVIEW​を​使用​すると、​複数​の​プログラミング​手法​と​グラフィカル​データ​フロー​を​1​つ​の​アプリケーション​で​組み合わせる​こと​が​でき​ます。​この​柔軟性​を​利用​し​て、​アルゴリズム​を​作成​した​り​様々​な​工学​的​問題​を​解決​した​り​する​ため​の​ツール​を​選ぶ​こと​が​でき​ます。​LabVIEW​は、​複数​の​言語​(.m、​C、​Python、​IEC 61131-3、.NET​など)​を​お客様​の​アプリケーション​に​統合​し、​ローカル​または​ネットワーク​で​実行​し​て​いる​他の​ソフトウェア​と同時に​使用​する​こと​で、​チーム​の​作業​時間​を​短縮​し​ます。

コンテンツ

既存​の​ソース​コード​と​共有​ライブラリ​を​LabVIEW​に​統合​する

LabVIEW​に​は​既存​の​コード​ベース​を​再​利用​する​ため​の​多数​の​オプション​が​用意​さ​れ​て​いる​ため、​新しい​コード​の​作成​に​投資​する​必要​が​ありま​せん。

.m​コード​の​統合

The MathWorks​社​の​MATLAB®​や​GNU Octave​ソフトウェアで開発された.m​ファイル​の​イン​ポート、​編集、​実行​を​行い​ます。​これらの​ソフトウェア​は​数値​分析、​信号​処理、​高等​数学​で​一般​的​な​プログラミング​手法​です。​これらの​ソフトウェア​を​VI​で​G​と​組み合わせる​こと​で、​デスク​トップ​PC​で​実行​する​スタンドアロン​の​実行​可能​ファイル​や​確定​的​な​リアルタイム​ハードウェア​に​これらの​スクリプト​を​組み​込​んで、​現実​世界​の​I/​O​に​迅速​に​アクセス​でき​ます。

テキスト​形式​の​数式​処理​を​デスク​トップ​や​確定​的​な​リアルタイム​LabVIEW​アプリケーション​に​追加​する​方法​の​詳細​情報​を​ご​確認​くだ​さい。

図​1: MathScript​ノード​により、​G​プログラミング​および​現実​世界​の​I/​O​と.m​スクリプト​の​結合​が​容易​に​なる。

 

C​コード​の​統合

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

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

Python、​ActiveX、.NET​コード​の​統合

LabVIEW​は​システム​で​実行​中​の​他の​アプリケーション​を​呼び出す​こと​も​でき​ます。​より​大きい​包括​的​な​LabVIEW​に​取り込む​ため​の​Python​オートメーション​スクリプト​を​開発​する​こと​は、​Python​の​柔軟​な​スクリプト​記述​機能​と​システム​設計​ツール​を​LabVIEW​に​結合​する​直感​的​な​ソリューション​です。​コマンド​ライン​と​連動​する​こと​も、​実行​可能​ファイル​や​他の​ビル​ド​ライブラリ​を​呼び出す​ため​の​OS​固有​の​インタフェース​を​提供​する​System Exec.vi​により​可能​です。​また​LabVIEW​は、​ActiveX​や.NET​インタフェース​を​介​し​て​公開​さ​れる​外部​コード​を​呼び出す​こと​も​でき​ます。

LabVIEW​ベース​の​テスト​および​測定​システム​で​Python​を​使用​する​方法​の​詳細

Linux​コミュニティ​の​パッケージ​の​統合

NI​プラットフォーム​自体​は​多く​の​標準​テクノロジ​を​ベース​に​構築​さ​れ​て​いる​ので、​LabVIEW​の​ユーザ​は​他の​テクノロジ​の​エコ​システム​へ​の​アクセス​により、​チーム​が​再​利用​する​範囲​を​広げる​こと​が​でき​ます。​これ​に​は​Linux​ベース​の​ライブラリ​や​LabVIEW Real-​Time​アプリケーション​の​使用​が​含​まれ​ます。​これらの​方法​は​既存​の​コード​を​使用​する​ので、​開発​チーム​は​可能​な​限り​多く​の​コード​を​再​利用​し、​テスト、​計測、​制御​システム​に​統合​する​こと​が​でき​ます。

Linux​が​NI​プラットフォーム​で​果たす​役割​と​LabVIEW​ユーザ​にとって​の​メリット​の​詳細

VHDL​コード​の​統合

LabVIEW FPGA​モジュール​を​使用​し​て、​G​を​使用​する​FPGA​で​実行​する​コード​を​記述​でき​ます。​ただし、​前​の​プログラミング​手法​と​同様​に、​既存​の​コード​を​再​利用​した​い​場合​や、​実装​方法​を​選択​する​柔軟性​が​必要​な​場合​が​あり​ます。​ほとんど​の​FPGA​は、​テキスト​ベース​の​データ​フロー​記述​言語​で​ある​VHDL​を​使用​し​て​プログラム​さ​れ​ます。​G​の​VHDL​から​既存​の​知的​財産​(IP)​を​書き直す​代わり​に、​コンポーネント​レベル​IP(CLIP)​ノード​を​使用​し​て​VHDL​を​VI​に​イン​ポート​する​こと​が​でき​ます。

外部​IP​を​LabVIEW FPGA​に​イン​ポート​する​方法​の​詳細

チーム​コラボレーション​の​ため​の​相互​運用性

チーム​の​ソフトウェア​言語​能力​を​活用​する​こと​で、​LabVIEW​を​使用​した​コラボレーション​環境​で​効率​的​に​システム​を​設計​し​て、​適切​な​ツール​で​タスク​を​完了​し​ます。​生産​的​に​コラボレーション​する​ため​に、​LabVIEW​は​様々​な​環境​で​作業​する​チーム​メンバー​に​インタフェース​を​提供​し​ます。

標準​の​工業​用​プロトコル​を通して​外部​システム​と​通信​する

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

LabVIEW​で​FPGA​を​プログラム​する​こと​で、​従来​の​または​専用​の​通信​ニーズ​に​対応​する​カスタム​の​通信​プロトコル​を​効率​的​に​構築​する​こと​さえ​可能​です。​LabVIEW FPGA​に​は、​シリアル、​I2C、​SPI​など、​開始​点​として​デジタル​バス​プロトコル​の​コード​サンプル​が​含​まれ​て​おり、​それ​を​ベース​に​構築​でき​ます。​また、​Xilinx Aurora、​Serial RapidIO、​JESD204B、​10​ギガ​ビット​Ethernet​など​高速​シリアル​プロトコル​用​の​FPGA IP​コア​も​含​まれ​ます。​LabVIEW​を​使用​し​て​シームレス​に​接続​できる工業​用​プロトコル​ハードウェア​製品の​詳細​情報​を​ご​確認​くだ​さい。

C/​C​+​+アプリケーション​を​開発​する

多く​の​チーム​に​は、​LabVIEW​で​構築​さ​れ​た​システム​と​共存​し、​相互​運用​できる、​既存​の​使い​慣​れ​た​開発​環境​や​ツール​チェーン​が​あり​ます。​たとえば​NI Linux Real-​Time​ターゲット​の​場合、​開発​者​は​Eclipse​または​好み​の​統合​開発​環境​(IDE)​および​LabVIEW​アプリケーション​の​インタフェース​を​使用​し​て、​C​または​C​+​+で​完全​に​記述​さ​れ​た​組​込​プロセッサ​に​アプリケーション​を​開発、​デバッグ、​デプロイ​でき​ます。

C/​C​+​+リアルタイム​アプリケーション​共同​開発​オプション​と​LabVIEW​の​詳細​情報

 

図​3: LabVIEW​または​任意​の​Linux​互換​ツール​を​使用​し​て​組​込​プロセッサ​を​プログラム​し​て、​NI​再​構成​可能​I/​O(RIO)​ドライバ​を​使用​し​て​LabVIEW FPGA​と​通信​する。

IEC 61131-3​工業​オートメーション​規格​と​の​インタフェース

IEC 61131-3​は、​ラダーロジック​や​ストラクチャード​テキスト​など、​プログラマブル​ロジック​コントローラ​(PLC)​用​の​ソフト​アーキテクチャ​と​プログラミング​言語​を​定義​する​国際​規格​です。​LabVIEW 2017 FPGA IEC 61131-3​インタフェース​ユーティリティ​を​使用​すると、​この​規格​によって​定義​さ​れる​工業​オートメーション​コード​が​3S CODESYS IDE​を​介​し​て​NI Linux Real-​Time​デバイス​の​FPGA​ファブリック​と​連携​できる​よう​に​なり​ます。​これ​により、​コード​の​再​利用​や​デバッグ​作業​を​容易​に​する、​標準​的​で​使い​慣​れ​た​インタフェース​を​介​し​て、​設計​チーム​と​メンテナンス​チーム​間​の​コラボレーション​が​可能​に​なり​ます。

IEC 61131-3​工業​オートメーション​規格​と​の​インタフェース​の​詳細

図​4: IEC 61131-3​インタフェース​ユーティリティ​により、​CODESYS IDE​を​介​し​て​NI FPGA​に​接続​できる。

FPGA​と​Python​の​インタフェース

Python​は​高​レベル​の​インタプリタ​型​スクリプト​言語​で、​主に​テキスト​処理、​ウ​ェ​ブ​フレーム​ワーク、​ネットワーク​通信​など​の​ため​の​膨大​な​ライブラリ​の​コレクション​を​提供​する​科学​計算​で​使用​さ​れ​ます。​FPGA Interface Python API​を​使用​すると、​Python​を​使用​し​て​NI​ハードウェア​ターゲット​の​LabVIEW FPGA​コード​に​接続​でき​ます。​FPGA Interface Python API​は​Windows、​Linux​の​両方​の​開発​環境​と​互換性​が​あり、​NI Linux Real-​Time​導入​ターゲット​とも​互換性​が​あり​ます。

FPGA​と​Python​の​インタフェース​の​詳細

図​5: FPGA Interface Python API​により、​Python​を​介​し​て​NI FPGA​に​接続​する。

 

物理​システム​の​シミュレーション​と​モデリング

モデリング​と​物理​システム​の​シミュレーション​は、​組​込​システム​の​設計​で​よく​使用​さ​れ​ます。​LabVIEW​で​記述​さ​れ​た​監視​または​制御​コード​を、​物理​システム​シミュレーション​と​組み合わせ​て​テスト​でき​ます。​または、​テスト​や​計測​の​結果​を​LabVIEW​で​実行​し​て​いる​モデル​と​比較​する​こと​も​でき​ます。​LabVIEW Control Design and Simulation Module​の​グラフィカル​信号​フロー​機能​により、​動的​システム​特性​解析​について​調べる​ため​に​モデル​を​作成​し​て​分析​でき​ます。​また、​必要​な​動作​を​実現​する​制御​システム​も​作成​でき​ます。​図​4​に​示す​よう​に、​モデル​ベース​の​プログラミング​手法​を​G​や​MathScript​ノード​など​他の​手法​と​組み合わせる​こと​が​でき​ます。

Simulation Model Converter​を​使用​すると、​The MathWorks​社​の​Simulink®​ソフトウェア​で​開発​した​モデル​を​LabVIEW​で​使用​できる​よう​に​する​こと​も​可能​です。​これらの​動的​システム​は、​ラピッドコントロールプロトタイピング​や​HIL(hardware-​in-​the-​loop)​に​適​した​LabVIEW Real-​Time​モジュール​により、​中間​ステップ​なし​に​リアルタイム​ハードウェア​ターゲット​に​導入​でき​ます。​Simulink​環境、​または​各種​シミュレーション​環境​で​モデル​開発​を​保持​した​い​場合​は、​LabVIEW Model Interface Toolkit​を​使用​し​て​LabVIEW​と​LabVIEW Real-​Time​を​結合​でき​ます。

LabVIEW Control Design and Simulation Module​を​使用​した、​動的​シミュレーション​コン​ピ​テン​シー​の​再​利用​の​詳細

図​6: LabVIEW​および​他社​製​モデリング​環境​から​制御​アルゴリズム​と​システム​モデル​を​イン​ポート​する。

まとめ

多く​の​ユーザ​は​LabVIEW​を​総合​システム​の​接着​剤​として​使用​し​てい​ます。​チーム​が​コラボレーション​する​異なる​サブシステム​の​組み込み、​既存​コード​および​ソフトウェア​コン​ピ​テン​シー​の​再​利用、​将来​の​拡張​性​の​ため​の​柔軟性​を​LabVIEW​が​提供​する​から​です。​生産​性​を​向上​させる​ため、​NI​は​この​30​年間、​LabVIEW​コード、​ツール、​パートナー​の​エコ​システム​を​組み立て​て、​テスト、​計測、​制御​システム​を​正常​かつ​迅速​に​構築​できる​よう​に​支援​してき​ま​した。

関連​情報

登録​商標​Linux®​は、​全世界​における​商標​保持​者​Linus Torvalds​氏​から​排他​的​ライセンス​を​受け​て​いる​LMI(Linux Mark Institute)​から​の​許諾​により​使用​し​てい​ます。

MATLAB®​および​Simulink®​は​The MathWorks​社​の​登録​商標​です。​登録​商標​Linux®​は、​全世界​における​商標​保持​者​Linus Torvalds​氏​から​排他​的​ライセンス​を​受け​て​いる​LMI(Linux Mark Institute)​から​の​許諾​により​使用​し​てい​ます。

CODESYS®​は​3S-​Smart Software Solutions GmbH​の​商標​です。