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
© Copyright 2025 Paperzz