39
ni.com NI LabVIEW の概要 あらゆる計測・制御アプリケーションに対応する システム開発ソフトウェア

Introduction to LabVIEW 5 NI LabVIEWの基盤: Virtual Instrumentation(仮想計測器) ソフトウェアを使用したオートメーションが辿り着いたのは機能が固定された計測器

Embed Size (px)

Citation preview

ni.com

NI LabVIEWの概要

あらゆる計測・制御アプリケーションに対応する

システム開発ソフトウェア

2 ni.com

30年に渡って積み重ねた実績と信頼 OS、バス、技術など、様々な面において時代のニーズに応えてきました

3 ni.com

計測器制御用途におけるシェアの高さ

36% 29%

20% 20%

14% 13% 13% 13%

10% 9%

9% 5%

2% 8%

7%

NI LabVIEW

Microsoft Visual C/C++

Microsoft Visual Basic

Microsoft Visual Basic 6.0

NI - LabWindows™/CVI

Microsoft C#

The MathWorks, Inc. - MATLAB®

NI Measurement Studio

Agilent VEE

NI TestStand

Agilent IO Libraries Suite

Python

GeoTest ATEasy

Other

Don't use

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%.

4 ni.com

ハードウェアとの優れた統合性

• NIハードウェア

• 200種類以上のデータ集録デバイス

• 450種類以上のモジュール計測器

• カメラ

• モーションコントロール

• 他社製ハードウェア

• 計測器ドライバネットワーク o 10,000種類以上の計測器ドライバ

o 350社以上の計測器ベンダ

o 100種類以上の計測器タイプ

• いかなるバスでも通信可能

5 ni.com

NI LabVIEWの基盤: Virtual Instrumentation(仮想計測器) ソフトウェアを使用したオートメーションが辿り着いたのは機能が固定された計測器

冗長性:ディスプレイ モニタ技術ははるかに高度な発達を遂げているが、計測器ベンダが提供する計測器の

ディスプレイの質には限界がある。

冗長性:プロセッサ チップメーカーは、ムーアの法則に

従って、プロセッサの強化を急速に進めているが、計測器には決められたプ

ロセッサしか使用できない。

冗長性:メモリ PCであれば、メモリのアップグレードによる性能向上の恩恵が得られるが、個別の計測器だとそれができない。

冗長性:ストレージ PCであれば記憶装置の容量が大きく、コストパフォーマンスは良いが、計測器はそれぞれオンボード・ストレージ持っているだけである。

冗長性:電源 実際の信号を集録する回路を動作させるためには各計測器にそれぞれ独自

の電源が必要。

6 ni.com

NI LabVIEWの基盤: Virtual Instrumentation(仮想計測器) 市販のPCコンポーネントのメリットを活用することでソフトウェア自体が計測器に

NI LabVIEWはPC技術を活用し 計測器およびデータ集録ハードウェアのパワーを解放します。

7 ni.com

そのため、NI LabVIEWの構成要素は Virtual Instrument(*.VI)と呼ばれる

NI LabVIEW フロントパネル VIの ユーザインタフェース

LabVIEW ブロックダイアグラム VIのソースコード

アイコン/コネクタペーン 入力と出力をマッピング

メモ:A *.viファイルは3要素全てをカプセル化します。

8 ni.com

NI LabVIEWフロントパネルの作成

制御器パレット(右クリック) 階層型パレットの全てのフロントパネル要素にアクセス

クイックドロップ (<Ctrl>+<スペース>キー) オブジェクト名で検索

9 ni.com

フロントパネルオブジェクト 装飾体 装飾要素と画像 • テキスト • 矢印 • 吹き出し • ライン • イメージ • …など

カスタマイズ可能な表示器 出力結果をユーザに対して表示 • グラフとチャート • 進行状況バー • ゲージとメータ • LED • 数値 • 文字列とパス • …など

カスタマイズ可能な制御器 ユーザからの入力を受け取る • ノブとダイアル • スライダ • ボタン • 数値 • 文字列とパス • …など

10 ni.com

NI LabVIEWフロントパネルの様々な活用例

上のフロントパネルは全てLabVIEWのグローバルコミュニティのメンバーによって共有・再利用されています。

米宇宙企業スペースX社

無人宇宙船ドラゴンの打ち上げにLabVIEWが使用されました (写真提供:Elon Musk氏)

11 ni.com

フロントパネルの要素には 必ず対応するブロックダイアグラムの端子がある ブロックダイアグラムの端子はフロントパネルの値にアクセスできます

12 ni.com

従来のソースコードの検証 人間が抽象化された言語を使用するのは、マシン語がわかりにくいためです

C++

Java / C#

C

アセンブリ言語

システムの複雑性

マシン語

13 ni.com

私たちが住む世界は視覚的 …なのに、全てが文字列で表されたとしたらどうなるでしょう

私たちが住む世界

絵のない世界

ガントチャート アメリカンフットボールのプレー 楽譜

プロジェクト開始 同時にタスクAおよびBを開始 タスクAが終了したら、 同時にタスクC、D、およびHを開始 タスクBとC両方が終了したら、 タスクEを開始 タスクDが終了したら、 タスクFを開始 タスクEが終了して、もしタスクHが終了していたら タスクGを開始 タスクFおよびGが終了したら、 プロジェクト終了

スプリットバックのフォーメーションを組む センターがクォーターバックにボールをスナップする 同時に、 センターがディフェンシブタックルをブロック クォーターバックがテイルバックにボールを渡す オフェンシブタックル1-4がディフェンシブエンドをブロック ワイドレシーバー(右)がルートに走り込む ワイドレシーバー(左)がスクリーンパスルートを走る タイトエンドがラインバッカーをブロック テイルバックがセンターのホールを走る フルバックがミドルラインバッカーをブロック プレイ終了

曲開始 3/4拍子で2拍休み 繰り返しを3回弾く前に 左手でローC、G、およびミドルCを弾く そして右手でE、G、およびハイCを弾く 2拍延ばす 1拍休止 左手でローA、D、Fを弾く そして右手でハイF、A、Fを弾く 3拍休止 繰り返し 曲終了

14 ni.com

NI LabVIEWでは思い描いた通りにプログラミングできる

15 ni.com

NI LabVIEWでは頭で描いたとおりにプログラミングできる

グラフィカルなデータフローベースGプログラミング言語は、並列データ集録ハードウェアのプログラミングに最適です。

16 ni.com

データフローとは

• 各ブロックダイアグラムのノードは全てが入力されて初めて実行される

• 各ノードは実行後に出力データを生成する

• データはワイヤで定義されたパスに沿って流れる

• データの動きが実行順序を決める

公式:結果 = (A+B*C) / (D-E)

17 ni.com

データフローとは

• 各ブロックダイアグラムのノードは全ての入力データを受信して初めて実行される

• 各ノードは実行後に出力データを生成する

• データはワイヤで定義されたパスに沿って流れる

• データの動きが実行順序を決める

「乗算」と「減算」の演算は、データの相互依存がないため、 同時に実行できます。

18 ni.com

データフロー言語で表現する並列処理はわかりやすい NI LabVIEWのコンパイラは並列で表されたコードを自動的にマルチスレッド処理します

データの並列処理

タスクの並列処理

19 ni.com

NI LabVIEWブロックダイアグラムの作成

関数パレット(右クリック) 全てのブロックダイアグラム関数の階層型パレットにアクセス

クイックドロップ (<Ctrl>+<スペース>キー) オブジェクト名で検索

20 ni.com

NI LabVIEWブロックダイアグラムの検証

連続的な電圧計測アプリケーションの典型的なフル機能の

LabVIEWブロックダイアグラム。 次のような機能を含む。

• ユーザインタフェース処理 • イベント処理 • 並列処理 • マルチスレッドデータ転送 • 信号解析

次のスライドでこのソースコードのコンポーネントを詳細に見てみましょう。

21 ni.com

NI LabVIEWブロックダイアグラムの検証

2つの非同期スレッド エンティティ間でデータの受け渡しがないため、並列実行する。

DAQスレッド このスレッドはデータ集録 ハードウェアとやり取りする。

UIスレッド このスレッドではフロントパネル(UI)からイベントを扱う。

コードを内に含むことができるブロックダイアグラムエンティティは ストラクチャと呼ばれます。

22 ni.com

実行制御ストラクチャ:ループ

カウント端子 このForループに含まれるコード

はN回実行される。

条件端子 このWhileループ内のコードは

True値になるまで実行される。

ループ反復端子 現在のループ反復カウントを

0~N-1の範囲で示す。

Forループ

While ループ

23 ni.com

テキストループとそれに対応するNI LabVIEWの表現

int x = 0; String y; while (x < 5) {

y = functionCall(x); printf(y); x++;

}

for (i = 0; i < 10; i++) { /* loop body */ }

for (i = 0; i < 10; i++) { if(check(i)) break; }

24 ni.com

イベントとケースストラクチャ

イベントセレクタラベル 表示されるサブダイアグラムを示

し、ダイアグラム内のコードが処理するイベントを説明する。

セレクタ端子 この端子に配線される値が、どのサブダイアグラム、つまりケースを実行す

るかを判断する。

イベントストラクチャ

ケースストラクチャ ケースセレクタラベル

表示されるサブダイアグラムを 示す。

25 ni.com

テキストのイベント、ケースとそれに対応する NI LabVIEWの表現

switch (n) { case 5: printf(“Small number."); break; case 100: printf(“Large number."); break; default: printf(“Outside range”); break; }

if condition1 then -- statements; elseif condition2 then -- more statements elseif condition3 then -- more statements; else -- other statements; end if

Button B = new Button(); B.Click += new RoutedEventHandler(OnBClick); void OnBClick(object Source) { Text1.Text = “Button B was Clicked!”; }

26 ni.com

NI LabVIEWブロックダイアグラムの検証

Whileループ TRUE値が停止端子に渡されるまで反復が継続する。

ケースストラクチャ セレクタ端子の値に基づいた異なるサブダイアグラムを実行する。

イベントストラクチャ Exイベントや割り込みに基づいた 異なるサブダイアグラムを実行する。

27 ni.com

NI LabVIEWブロックダイアグラムの検証

これらのLabVIEW関数(サブVI)の静的な呼び出しは 全ての入力端子にデータが到達するまでは実行されません。

標準関数 これらのサブVIはユーザによる作成が

可能だったり、ドライバ、ライブラリ、ツールキットの一部の場合もある。

プリミティブ関数 黄色いサブVIはG言語の一部で変更ができない。

プリミティブ関数 黄色いサブVIはG言語の一部で変更ができない。

28 ni.com

NI LabVIEWの関数はどんな複雑なニーズにも対応

Express VI

• 手軽 • プログラミング不要 • 制限あり

通常の VI

• 不要な詳細は 見せない

• 性能の良さと柔軟性を保持

低レベルの VI

• 性能の良さ、柔軟性

• 難解で時間がかかる

29 ni.com

サブVI(関数)の動作 • コードは必要な入力が全て配線されて初めて コンパイルされる

• 必須の入力は太字である

• オプションの入力にデータを供給しないと、 デフォルト値が実行に使用される

ヒント: <Ctrl>+<H>キーで詳細ヘルプにアクセス

30 ni.com

アプリケーション階層

プリミティブではないサブVIをダブルクリックすると

関数が開きます

全てのVIがサブVIであり得る 各サブVIには独自のフロントパネル

とブロックダイアグラムがある。

31 ni.com

大規模なアプリケーションにおける アプリケーションリソースの管理

LabVIEWプロジェクトエクスプローラ

• アプリケーションリソースの整理

• クラスとライブラリの作成

• 実行ファイルとインストーラの作成

• コンポーネントのアクセス権の定義

• ハードウェアの実装ターゲットの 作成と管理

32 ni.com

NI LabVIEWプロジェクトは一から始める必要はありません 種類豊富なサンプルプロジェクトとテンプレートをあらゆる開発の開始点として利用できます

• 一般的なLabVIEWアプリケーションの推奨開始点

• 機能の追加/変更場所を明確に示す

• コードの設計、文書化、および管理のベストプラクティスを提示

• カスタムのテンプレートおよびサンプルプロジェクトを追加

33 ni.com

NI LabVIEWブロックダイアグラムの検証

入力端子 入力端子がフロントパネルの制御器に接続され、ユーザインタフェースから入力データを受け取る。

端子が制御器か表示器を判断するには、端子の向きを確認します。

出力端子 出力端子がフロントパネルの表示器に接続され、ユーザインタフェースへ出力としてデータが表示される。

34 ni.com

NI LabVIEWブロックダイアグラムの検証

定数 これらの定数値はブロックダイアグラムでハードコード化されており、編集時にのみ変更できる。

定数の色は表示されているデータのタイプを示す。

35 ni.com

NI LabVIEWブロックダイアグラムの検証

ワイヤ データはブロックダイアグラムのノード間のワイヤを流れる。

ワイヤの色がデータタイプを示します

36 ni.com

一般的なワイヤの色、スタイル、太さ

ワイヤタイプ スカラ 1D配列 2D配列 色

浮動小数点 オレンジ

整数 青

ブール 緑

文字列 ピンク

エラー 黄色

「不良ワイヤ」は、LabVIEWが自動的に解決できないデータタイプの競合があることを示しています。修正しないとコー

ドは実行できません!

37 ni.com

ワイヤに沿ったデータフローの可視化: 実行部分のハイライト

ユーザは「開始」ボタンを押して最初のイベントを実行する。

ユーザは「停止」ボタンを押して2つ目のイベントを実行する。

38 ni.com

NI LabVIEWの様々な用途

複雑な可視化

レポートの自動生成

高度な解析

外部コードの統合

.NETアセンブリ、C DLL、.m ファイル

39 ni.com

ユーザコミュニティ 9,000以上の認定ユーザ 700以上のアライアンス

パートナー 60以上の登録ユーザグループ

LabVIEWツールネットワーク 1,000,000以上のアドオンのダウンロード

26以上の認定アドオン 100以上の使用可能なアドオン

NI LabVIEWエコシステムの活用

モジュールとツールキット 40以上のツールキットとモジュール

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アプリケーションビルダ