NI LabVIEWの概要(PDF/3.64MB)

NI LabVIEWの概要
あらゆる計測・制御アプリケーションに対応する
システム開発ソフトウェア
ni.com
30年に渡って積み重ねた実績と信頼
OS、バス、技術など、様々な面において時代のニーズに応えてきました
ni.com
2
計測器制御用途におけるシェアの高さ
36%
NI LabVIEW
29%
Microsoft Visual C/C++
20%
20%
Microsoft Visual Basic
Microsoft Visual Basic 6.0
14%
13%
13%
13%
10%
9%
9%
NI - LabWindows™/CVI
Microsoft C#
The MathWorks, Inc. - MATLAB®
NI Measurement Studio
Agilent VEE
NI TestStand
Agilent IO Libraries Suite
5%
Python
GeoTest ATEasy
Other
Don't use
2%
8%
7%
Base: All qualified respondents. Total = 598; US = 399; China = 199
2011 US Platform Awareness Study: Which of the following software packages/programming languages do you use to control your instruments?
(Multiple response question.^) ^For multiple response questions, the sum of the frequencies may equal more than the total respondents, and the sum
of the percentage of respondents may equal more than 100%.
ni.com
3
ハードウェアとの優れた統合性
•
NIハードウェア
•
•
•
•
ni.com
•
200種類以上のデータ集録デバイス
450種類以上のモジュール計測器
カメラ
モーションコントロール
4
他社製ハードウェア
•
計測器ドライバネットワーク
o
o
o
•
10,000種類以上の計測器ドライバ
350社以上の計測器ベンダ
100種類以上の計測器タイプ
いかなるバスでも通信可能
NI LabVIEWの基盤:
Virtual Instrumentation(仮想計測器)
ソフトウェアを使用したオートメーションが辿り着いたのは機能が固定された計測器
冗長性:電源
実際の信号を集録する回
路を動作させるためには
各計測器にそれぞれ独自
の電源が必要。
冗長性:メモリ
PCであれば、メモリのアップグレードによ
る性能向上の恩恵が得られるが、個別の計
測器だとそれができない。
冗長性:ディスプレイ
モニタ技術ははるかに高度な発達を遂げて
いるが、計測器ベンダが提供する計測器の
ディスプレイの質には限界がある。
冗長性:ストレージ
PCであれば記憶装置の容量が大きく、コス
トパフォーマンスは良いが、計測器はそれ
ぞれオンボード・ストレージ持っているだ
けである。
冗長性:プロセッサ
チップメーカーは、ムーアの法則に
従って、プロセッサの強化を急速に進
めているが、計測器には決められたプ
ロセッサしか使用できない。
ni.com
5
NI LabVIEWの基盤:
Virtual Instrumentation(仮想計測器)
市販のPCコンポーネントのメリットを活用することでソフトウェア自体が計測器に
NI LabVIEWはPC技術を活用し
計測器およびデータ集録ハードウェアのパワーを解放します。
ni.com
6
そのため、NI LabVIEWの構成要素は
Virtual Instrument(*.VI)と呼ばれる
アイコン/コネクタペーン
入力と出力をマッピング
NI LabVIEW
フロントパネル
VIの
ユーザインタフェース
LabVIEW
ブロックダイアグラム
VIのソースコード
ni.com
7
メモ:A *.viファイルは3要素
全てをカプセル化します。
NI LabVIEWフロントパネルの作成
制御器パレット(右クリック)
階層型パレットの全てのフロントパネ
ル要素にアクセス
クイックドロップ
(<Ctrl>+<スペース>キー)
オブジェクト名で検索
ni.com
8
フロントパネルオブジェクト
装飾体
装飾要素と画像
•
テキスト
•
矢印
•
吹き出し
•
ライン
•
イメージ
•
…など
カスタマイズ可能な表示器
出力結果をユーザに対して表示
•
グラフとチャート
•
進行状況バー
•
ゲージとメータ
•
LED
•
数値
•
文字列とパス
•
…など
カスタマイズ可能な制御器
ユーザからの入力を受け取る
•
ノブとダイアル
•
スライダ
•
ボタン
•
数値
•
文字列とパス
•
…など
ni.com
9
NI LabVIEWフロントパネルの様々な活用例
米宇宙企業スペースX社
無人宇宙船ドラゴンの打ち上げに
LabVIEWが使用されました
(写真提供:Elon Musk氏)
上のフロントパネルは全てLabVIEWのグロー
バルコミュニティのメンバーによって共有・
再利用されています。
ni.com
10
フロントパネルの要素には
必ず対応するブロックダイアグラムの端子がある
ブロックダイアグラムの端子はフロントパネルの値にアクセスできます
ni.com
11
従来のソースコードの検証
人間が抽象化された言語を使用するのは、マシン語がわかりにくいためです
Java / C#
C++
抽
C
象
アセンブリ言語
化
マシン語
システムの複雑性
ni.com
12
私たちが住む世界は視覚的
…なのに、全てが文字列で表されたとしたらどうなるでしょう
ガントチャート
アメリカンフットボールのプレー
楽譜
私たちが住む世界
絵のない世界
プロジェクト開始
同時にタスクAおよびBを開始
タスクAが終了したら、
同時にタスクC、D、およびHを開始
タスクBとC両方が終了したら、
タスクEを開始
タスクDが終了したら、
タスクFを開始
タスクEが終了して、もしタスクHが終
了していたら
タスクGを開始
タスクFおよびGが終了したら、
プロジェクト終了
ni.com
曲開始
スプリットバックのフォーメーションを組む
センターがクォーターバックにボールをスナップする 3/4拍子で2拍休み
繰り返しを3回弾く前に
同時に、
左手でローC、G、およびミドルCを弾く
センターがディフェンシブタックルをブロック
そして右手でE、G、およびハイCを弾く
クォーターバックがテイルバックにボールを渡す
2拍延ばす
オフェンシブタックル1-4がディフェンシブエンド
1拍休止
をブロック
左手でローA、D、Fを弾く
ワイドレシーバー(右)がルートに走り込む
ワイドレシーバー(左)がスクリーンパスルートを そして右手でハイF、A、Fを弾く
3拍休止
走る
繰り返し
タイトエンドがラインバッカーをブロック
曲終了
テイルバックがセンターのホールを走る
フルバックがミドルラインバッカーをブロック
プレイ終了
13
NI LabVIEWでは思い描いた通りにプログラミングできる
ni.com
14
NI LabVIEWでは頭で描いたとおりにプログラミングできる
グラフィカルなデータフローベースGプログラミング言語は、
並列データ集録ハードウェアのプログラミングに最適です。
ni.com
15
データフローとは
•
各ブロックダイアグラムのノードは全てが入力されて初めて実行される
•
各ノードは実行後に出力データを生成する
•
データはワイヤで定義されたパスに沿って流れる
•
データの動きが実行順序を決める
公式:結果 = (A+B*C) / (D-E)
ni.com
16
データフローとは
•
各ブロックダイアグラムのノードは全ての入力データを受信して初めて実行
される
•
各ノードは実行後に出力データを生成する
•
データはワイヤで定義されたパスに沿って流れる
•
データの動きが実行順序を決める
「乗算」と「減算」の演算は、データの相互依存がないため、
同時に実行できます。
ni.com
17
データフロー言語で表現する並列処理はわかりやすい
NI LabVIEWのコンパイラは並列で表されたコードを自動的にマルチスレッド処理します
タスクの並列処理
データの並列処理
ni.com
18
NI LabVIEWブロックダイアグラムの作成
関数パレット(右クリック)
全てのブロックダイアグラム関数の階
層型パレットにアクセス
クイックドロップ
(<Ctrl>+<スペース>キー)
オブジェクト名で検索
ni.com
19
NI LabVIEWブロックダイアグラムの検証
連続的な電圧計測アプリケーション
の典型的なフル機能の
LabVIEWブロックダイアグラム。
次のような機能を含む。
•
•
•
•
•
ユーザインタフェース処理
イベント処理
並列処理
マルチスレッドデータ転送
信号解析
次のスライドでこのソースコードのコンポーネントを詳細に見てみましょう。
ni.com
20
NI LabVIEWブロックダイアグラムの検証
UIスレッド
このスレッドではフロントパネル
(UI)からイベントを扱う。
2つの非同期スレッド
エンティティ間でデータの受け渡しが
ないため、並列実行する。
DAQスレッド
このスレッドはデータ集録
ハードウェアとやり取りする。
ni.com
コードを内に含むことができるブロックダイアグラムエンティティは
21
ストラクチャと呼ばれます。
実行制御ストラクチャ:ループ
Forループ
カウント端子
このForループに含まれるコード
はN回実行される。
While ループ
ループ反復端子
現在のループ反復カウントを
0~N-1の範囲で示す。
条件端子
このWhileループ内のコードは
ni.com
True値になるまで実行される。
22
テキストループとそれに対応するNI LabVIEWの表現
for (i = 0; i < 10; i++)
{
/* loop body */
}
for (i = 0; i < 10; i++)
{
if(check(i)) break;
}
int x = 0;
String y;
while (x < 5)
{
y = functionCall(x);
printf(y);
x++;
}
ni.com
23
イベントとケースストラクチャ
イベントストラクチャ
イベントセレクタラベル
表示されるサブダイアグラムを示
し、ダイアグラム内のコードが処理
するイベントを説明する。
ケースストラクチャ
ケースセレクタラベル
表示されるサブダイアグラムを
示す。
セレクタ端子
この端子に配線される値が、どのサブ
ダイアグラム、つまりケースを実行す
るかを判断する。
ni.com
24
テキストのイベント、ケースとそれに対応する
NI LabVIEWの表現
Button B = new Button();
B.Click += new RoutedEventHandler(OnBClick);
void OnBClick(object Source)
{
Text1.Text = “Button B was Clicked!”;
}
if condition1 then
-- statements;
elseif condition2 then
-- more statements
elseif condition3 then
-- more statements;
else
-- other statements;
end if
switch (n) {
case 5:
printf(“Small number.");
break;
case 100:
printf(“Large number.");
break;
default:
printf(“Outside range”);
break;
}
ni.com
25
NI LabVIEWブロックダイアグラムの検証
イベントストラクチャ
Exイベントや割り込みに基づいた
異なるサブダイアグラムを実行する。
Whileループ
TRUE値が停止端子に渡されるまで反復
が継続する。
ケースストラクチャ
セレクタ端子の値に基づいた異なるサ
ブダイアグラムを実行する。
ni.com
26
NI LabVIEWブロックダイアグラムの検証
プリミティブ関数
黄色いサブVIはG言語の一部で変更がで
きない。
標準関数
これらのサブVIはユーザによる作成が
可能だったり、ドライバ、ライブラ
リ、ツールキットの一部の場合もあ
る。
プリミティブ関数
黄色いサブVIはG言語の一部で変更がで
きない。
ni.com
これらのLabVIEW関数(サブVI)の静的な呼び出しは
全ての入力端子にデータが到達するまでは実行されません。
27
NI LabVIEWの関数はどんな複雑なニーズにも対応
Express
VI
通常の
VI
低レベル
の
VI
ni.com
• 手軽
• プログラミング不要
• 制限あり
• 不要な詳細は
見せない
• 性能の良さと柔軟性
を保持
• 性能の良さ、柔軟性
• 難解で時間がかかる
28
サブVI(関数)の動作
•
•
•
コードは必要な入力が全て配線されて初めて
コンパイルされる
必須の入力は太字である
オプションの入力にデータを供給しないと、
デフォルト値が実行に使用される
ヒント: <Ctrl>+<H>キーで詳細ヘルプにアクセス
ni.com
29
アプリケーション階層
プリミティブではないサブVIをダブルクリックすると
関数が開きます
全てのVIがサブVIであり得る
各サブVIには独自のフロントパネル
とブロックダイアグラムがある。
ni.com
30
大規模なアプリケーションにおける
アプリケーションリソースの管理
LabVIEWプロジェクトエクスプローラ
• アプリケーションリソースの整理
• クラスとライブラリの作成
• 実行ファイルとインストーラの作成
• コンポーネントのアクセス権の定義
• ハードウェアの実装ターゲットの
作成と管理
ni.com
31
NI LabVIEWプロジェクトは一から始める必要はありません
種類豊富なサンプルプロジェクトとテンプレートをあらゆる開発の開始点として利用できます
• 一般的なLabVIEWアプリケーション
の推奨開始点
• 機能の追加/変更場所を明確に示す
• コードの設計、文書化、および管理
のベストプラクティスを提示
• カスタムのテンプレートおよびサン
プルプロジェクトを追加
ni.com
32
NI LabVIEWブロックダイアグラムの検証
入力端子
入力端子がフロントパネルの制御器に
接続され、ユーザインタフェースから
入力データを受け取る。
出力端子
出力端子がフロントパネルの表示器
に接続され、ユーザインタフェース
へ出力としてデータが表示される。
端子が制御器か表示器を判断するには、端子の向きを確認します。
ni.com
33
NI LabVIEWブロックダイアグラムの検証
定数
これらの定数値はブロックダイアグラ
ムでハードコード化されており、編集
時にのみ変更できる。
定数の色は表示されているデータのタ
イプを示す。
ni.com
34
NI LabVIEWブロックダイアグラムの検証
ワイヤ
データはブロックダイアグラムのノー
ド間のワイヤを流れる。
ワイヤの色がデータタイプを示します
ni.com
35
一般的なワイヤの色、スタイル、太さ
ワイヤタイプ
スカラ
1D配列
2D配列
色
浮動小数点
オレンジ
整数
青
ブール
緑
文字列
ピンク
エラー
黄色
「不良ワイヤ」は、LabVIEWが自動的に解決できないデータ
タイプの競合があることを示しています。修正しないとコー
ドは実行できません!
ni.com
36
ワイヤに沿ったデータフローの可視化:
実行部分のハイライト
ユーザは「開始」ボタンを押して最初のイベントを実行する。
ユーザは「停止」ボタンを押して2つ目のイベントを実行する。
ni.com
37
NI LabVIEWの様々な用途
高度な解析
複雑な可視化
外部コードの統合
レポートの自動生成
.NETアセンブリ、C DLL、.m ファイル
ni.com
38
LabVIEW Real-Timeモジュール
LabVIEW FPGA モジュール
ARM対応LabVIEW組込システム開発モジュール
LabVIEW タッチパネルモジュール
LabVIEWワイヤレスセンサネットワークモジュール
LabVIEW Cコードジェネレータ
NI Real-Time Hypervisor
LabVIEW対応Vision開発モジュール
音響/振動解析ソフトウェアパッケージ
音響/振動ツールキット
LabVIEW上級信号処理ツールキット
LabVIEW適応フィルタツールキット
abVIEWデジタルフィルタ設計ツールキット
LabVIEW MathScript RTモジュール
スペクトル計測ツールキット
abVIEW対応モジュレーションツールキット
LabVIEW Robotics モジュール
LabVIEW生体医学ツールキット
ECU計測/キャリブレーションツールキット
LabVIEW用GPSシミュレーションツールキット
固定WiMAX計測ツールキット
無線LAN計測ツールキット
Automotive Diagnostic Command Set
LabVIEW GPU解析ツールキット
マルチコア解析/スパースマトリクスツールキット
PID/ファジーロジックツールキット
LabVIEW制御系設計/シミュレーションモジュール
LabVIEWシステム同定ツールキット
LabVIEWシミュレーションインタフェースツールキット
LabVIEW用SoftMotionモジュール
LabVIEWデータロギング/監視制御モジュール
LabVIEWレポート生成ツールキット、Microsoft Office用
LabVIEWデータベースコネクティビティツールキット
LabVIEW DataFinderツールキット
LabVIEW SignalExpress
LabVIEW VIアナライザツールキット
LabVIEWステートチャートモジュール
LabVIEWデスクトップ実行トレースツールキット
NI Requirements Gateway
Real-Time実行トレースツールキット
LabVIEWユニットテストフレームワークツールキット
Windows用LabVIEWアプリケーションビルダ
NI LabVIEWエコシステムの活用
LabVIEWツールネットワーク
1,000,000以上のアドオンのダウンロード
26以上の認定アドオン
100以上の使用可能なアドオン
ユーザコミュニティ
9,000以上の認定ユーザ
700以上のアライアンス
パートナー
60以上の登録ユーザグループ
モジュールとツールキット
40以上のツールキットとモジュール
ni.com
39