こんにちはドルフィンシステムの笹生です。
今回は前回の「LabVIEW に AI がやって来た! ~ NI Nigel™ AIアドバイザをちょっと使ってみた」という記事の続きで「特定のタスクの手順を聞いてみた」という記事です。
使うためのセットアップや準備などは前回の記事を参考にしてください。
今回は Nigel の紹介ページに記載されていた主な7つの効果のうちの2つ目「特定のタスクの手順を提供」というところを試してみたいと思いますが、現在紹介ページが更新されているようで 5つに集約されておりました。
紹介ページは変更されていましたが、 LabVIEW のユーザーマニュアルでは7つの効果について記載がありましたので、今回はその2つ目を試してみたいと思います。
ちなみにレート制限についての記述を見つけました。VI に関しての相談機能は1日に 20件までだそうです。
特定のタスクの手順を提供とは何か?Nigel に聞いてみた
Nigel さんにできることを聞くのは Nigelさんに聞くのが最も適切だということで、素直に聞いてみます。
一旦、以下のようなプロンプトを作成しておいてチャットにコピペします。
「Nigelさん、NI でのあなたの紹介ページであなたは以下のような項目について良き相談相手になってくれると書いてありました。
・検索バーを使用してサンプルを検索することで、プロジェクトの開始点を明確にさせる
・特定のタスクを完了するための手順を提供する
・LabVIEWおよびVIの主な設計概念を解説する
・既存のVIの機能を説明する
・LabVIEW環境で特定の設定またはダイアログボックスの検索を支援する
・ドキュメントのトピックを要約する
・ハードウェアの機能や構成に関する質問に回答する
この中で、2番目の「特定のタスクを完了するための手順を提供する」という機能について具体的な例を挙げてどのようなことが相談できるのか教えてください。」
送信してみました。
ーーーー
素晴らしいご質問です!
「特定のタスクを完了するための手順を提供する」という機能は、LabVIEWやNIハードウェアを使って具体的な作業を達成したいときに、私が手順やベストプラクティスを分かりやすく案内することを指します。
たとえば、以下のような相談が可能です。
具体例:どんな相談ができる?
| 相談内容 | 具体的なタスク例 | 私ができること |
|---|---|---|
| データ収集 | PXIやUSB DAQでアナログ信号をサンプリングしたい | 必要なVIや設定手順、サンプルコード、信号の保存方法を案内 |
| ハードウェア制御 | リレーやモーターをLabVIEWからON/OFFしたい | デジタル出力の使い方、配線例、タイミング制御の方法を説明 |
| ファイル保存 | 測定データをCSVやTDMSファイルに記録したい | ファイルI/O関数の使い方、保存形式の選び方、サンプルVIの紹介 |
| エラー処理 | エラー発生時にログを残したい | エラークラスタの扱い方、エラーハンドリングの設計例を解説 |
| ユーザーインターフェース | 操作パネルを作りたい | コントロール・インジケータの配置、イベント駆動型UIの設計手順 |
| 通信 | シリアル通信やTCP/IPで外部機器とやりとりしたい | VISAやTCP関数の使い方、通信プロトコルの設定方法を案内 |
| テスト自動化 | 複数の測定を自動で繰り返したい | ループ構造、状態機械(ステートマシン)設計、ログ保存の流れを説明 |
相談の流れ(例)
- 「○○をしたい」と伝える
例:「PXI-6363でアナログ入力を連続的に記録したい」 - 目的に合った手順やサンプルを案内
- 必要なVIや関数の選び方
- 設定すべきパラメータ
- 実装例や参考リンク
- 追加の質問やカスタマイズにも対応
- 「サンプリングレートを変更したい」
- 「複数チャンネルを同時に記録したい」など
どんな相談でもOK!
- 「LabVIEWで○○を実現したい」
- 「NIハードウェアで△△を制御したい」
- 「このVIの使い方が分からない」
など、目的が明確なタスクであれば、手順・設計ポイント・サンプル・注意点などを具体的に案内できます。
もし、やりたいことが決まっていれば、ぜひ「○○をしたい」と教えてください。
その内容に合わせて、最適な手順やサンプルを提案します!
ーーーーー
例を出してくれたので、それをそのまま聞いてみましょう。
Nigel に「PXI-6363でアナログ入力を連続的に記録したい」と聞いてみた
とコピペして送信しました。
回答はこちらになりました。
ーーー
PXI-6363でアナログ入力を連続的に記録するには、LabVIEWとNI-DAQmx APIを使って「連続サンプリング」タスクを構成します。
この方法は、長時間にわたってデータを取り続けたり、リアルタイムで波形を監視・保存したい場合に最適です。
連続アナログ入力の基本手順
| ステップ | 主なVI・関数 | ポイント |
|---|---|---|
| 1. タスク作成 | DAQmx Create Virtual Channel | PXI-6363のAIチャンネルを選択、入力範囲を設定 |
| 2. タイミング設定 | DAQmx Timing | サンプルクロック、レート、連続サンプルモードを指定 |
| 3. タスク開始 | DAQmx Start Task | タスクを明示的に開始(省略可) |
| 4. データ取得 | DAQmx Read (例: Analog 1D Wfm NChan NSamp) | ループ内で繰り返し呼び出し、バッファからデータを取得 |
| 5. データ保存 | ファイルI/O関数 | 必要に応じてCSVやTDMSに保存 |
| 6. タスク停止・解放 | DAQmx Stop Task / DAQmx Clear Task | 終了時に必ず実行 |
LabVIEWでのプログラミング例
DAQmx Create Virtual Channel
- 例:
Dev1/ai0:3(複数チャンネルも可) - 入力範囲(例: -10V~+10V)を設定
- 例:
DAQmx Timing
- サンプルクロック: 内部クロック(空文字列"")
- サンプリングレート: 例 10kS/s
- サンプルモード:
Continuous Samples - バッファサイズ: 必要に応じて指定
Whileループ内でDAQmx Read
DAQmx Read (Analog 1D Wfm NChan NSamp)- 「Number of Samples per Channel」には1回で読み出すサンプル数を指定(例: 1000)
- データを配列や波形として取得
データ保存や表示
- ファイルI/O関数やグラフ表示を組み合わせる
DAQmx Stop Task / Clear Task
- ループ終了後に必ず実行
参考画像・リソース
追加のヒント
- サンプル数やバッファサイズの設定は、PCのメモリや用途に応じて調整してください。
詳細: Specifying Number of Samples When Continuously Acquiring with NI-DAQmx for LabVIEW - トリガや複数チャンネルの設定も柔軟に可能です。
詳細: NI-DAQmx Data Acquisition Triggering Techniques Using LabVIEW
まとめ
PXI-6363の連続アナログ入力は、DAQmxの基本VIを組み合わせてループでデータを取得するのが王道です。
LabVIEWの「サンプルを検索」バーやNI公式サンプルも活用できます。
さらに具体的なサンプルVIや、保存形式、トリガ設定など知りたい場合は、ぜひ詳細を教えてください!
ーーーー
遂に LabVIEW に AI アドバイザーが搭載されました。
Nigel さんの指示に従って VI を作成してみよう
以下に、LabVIEWでの具体的な手順とポイントをまとめます。
1. DAQmx Create Virtual Channel VI の使い方
| パラメータ | 設定例 | 説明 |
|---|---|---|
| physical channels | Dev1/ai0Dev1/ai0:3 | PXI-6363の物理AIチャンネル名(複数可) |
| name to assign to channel | 空欄または任意 | チャンネルのエイリアス名(省略可) |
| min value | -10.0 | 入力信号の最小電圧(例:-10V) |
| max value | 10.0 | 入力信号の最大電圧(例:+10V) |
| units | Volts | 単位(通常はVolts) |
| input terminal configuration | DefaultRSENRSEDifferential | 配線方式(差動、RSEなど) |
フロントパネルでの設定例
- physical channels:
- PXI-6363のデバイス名が
Dev1の場合、Dev1/ai0(1ch)やDev1/ai0:3(4ch同時)など
- PXI-6363のデバイス名が
- min value / max value:
- 測定する信号の範囲に合わせて設定(例:-5V~+5V、-10V~+10Vなど)
- input terminal configuration:
- 通常は
DefaultでOKですが、ノイズ対策や配線方式に応じてDifferential(差動)などを選択
- 通常は
ブロックダイアグラムでの接続例
- DAQmx Create Virtual Channel VIを配置
- physical channels端子に「物理チャンネル名」をワイヤで接続(例:文字列定数やコントロール)
- min value / max value端子に数値定数やコントロールを接続
- input terminal configuration端子に「差動」や「RSE」などを指定(必要に応じて)
例:差動入力で-5V~+5Vを測定する場合
| パラメータ | 設定値 |
|---|---|
| physical channels | Dev1/ai0 |
| min value | -5.0 |
| max value | 5.0 |
| input terminal configuration | Differential |
参考画像・ドキュメント
補足
- min/max値は、実際の信号範囲に合わせて設定してください。広すぎると分解能が下がり、狭すぎるとクリッピングします。
- 物理チャンネル名は、NI MAX(Measurement & Automation Explorer)で確認できます。
もし、複数チャンネルや特定の配線方式での設定例が必要であれば、さらに詳しくご案内できます!
3.フロントパネルで適宜設定します。例えば以下
| パラメータ | 設定値 |
|---|---|
| physical channels | Dev1/ai0 |
| min value | -5.0 |
| max value | 5.0 |
「サンプルクロック:内部クロック」「サンプリングレート:10kS/s」「サンプルモード:Continuous Samples」「バッファサイズ:任意」
を設定する方法を具体的に解説します。
DAQmx Timing VI の主な端子と設定例
| 端子名 | 設定値 | 説明 |
|---|---|---|
| source | ""(空文字列) | 内部クロックを使用(外部クロックの場合は物理端子名) |
| rate | 10000 | サンプリングレート(例:10,000サンプル/秒) |
| sample mode | Continuous Samples | 連続サンプリング(Finite Samplesは一度きり) |
| samples per channel | 任意(例:1000) | バッファサイズ(1回のDAQmx Readで取得するサンプル数) |
設定方法(ブロックダイアグラム例)
- DAQmx Timing VIを配置
- source端子に空文字列(
"")を接続
→ これでPXI-6363の内部クロックが使われます - rate端子に数値定数(例:
10000)を接続
→ 10kS/s(10,000サンプル/秒) - sample mode端子に「Continuous Samples」を選択
→ 定数または列挙型(Enum)で指定 - samples per channel端子にバッファサイズ(例:
1000)を接続
→ 1回のDAQmx Readで取得するサンプル数
参考画像・ドキュメント
- DAQmx Timing VI 詳細(公式ヘルプ)
- Continuous Analog Input Programming Flowchart
- Specifying Number of Samples When Continuously Acquiring with NI-DAQmx for LabVIEW
設定例まとめ
| 端子名 | 設定値(例) |
|---|---|
| source | "" |
| rate | 10000 |
| sample mode | Continuous Samples |
| samples per channel | 1000 |
補足
- samples per channel(バッファサイズ)は、PCのメモリやリアルタイム性に応じて調整可能です。
大きくするとバッファオーバーフローしにくくなりますが、リアルタイム性は下がります。 - sample modeは「Continuous Samples」を選択することで、DAQmx Readをループで繰り返し呼び出して連続データ取得が可能です。
もし、バッファサイズの最適値や、外部クロックの使い方など追加の設定例が必要であれば、さらに詳しくご案内できます!
まとめ
今回は LabVIEW に AI アドバイザーの記事2回目ということで、「特定のタスクの手順を提供」というところを試してみました。
いかがでしたでしょうか。
分からないことはこれまでフォーラムに投稿したり、サポートに相談する事も多かったと思いますが、Nigel さんにまずは相談することで大部分の疑問は解消できるのではないでしょうか。
Nigel™、LabVIEW™ は National Instruments Corporation およびその関連会社の商標または登録商標です。本記事は National Instruments により承認、後援、または提携されたものではありません。

0 件のコメント :
コメントを投稿