Upload
trinhkien
View
227
Download
1
Embed Size (px)
Citation preview
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氏)
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拍休止 繰り返し 曲終了
16 ni.com
データフローとは
• 各ブロックダイアグラムのノードは全てが入力されて初めて実行される
• 各ノードは実行後に出力データを生成する
• データはワイヤで定義されたパスに沿って流れる
• データの動きが実行順序を決める
公式:結果 = (A+B*C) / (D-E)
17 ni.com
データフローとは
• 各ブロックダイアグラムのノードは全ての入力データを受信して初めて実行される
• 各ノードは実行後に出力データを生成する
• データはワイヤで定義されたパスに沿って流れる
• データの動きが実行順序を決める
「乗算」と「減算」の演算は、データの相互依存がないため、 同時に実行できます。
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ブロックダイアグラムの検証
定数 これらの定数値はブロックダイアグラムでハードコード化されており、編集時にのみ変更できる。
定数の色は表示されているデータのタイプを示す。
36 ni.com
一般的なワイヤの色、スタイル、太さ
ワイヤタイプ スカラ 1D配列 2D配列 色
浮動小数点 オレンジ
整数 青
ブール 緑
文字列 ピンク
エラー 黄色
「不良ワイヤ」は、LabVIEWが自動的に解決できないデータタイプの競合があることを示しています。修正しないとコー
ドは実行できません!
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アプリケーションビルダ