LabVIEW備忘録

National Instruments社のグラフィカル言語 LabVIEWに関する学習Blogです。

NI Badging Pilot Program:学習プログラム

NIの認定資格を持っている人は既知かと思うが、Acclaimからデジタルバッジが付与させるようになった。CLAD/CLA/CLAや日本ではやってないCTD/CTAの他に、学習目安用のバッジ(資格ではない)がWebテスト合格者にも付与されるようだ。

NI Badging Pilot Program:学習プログラム - National Instruments

ためしにエンジニアリングシステムデザインのバッジを取ってみた(SSP加入していない場合もテストできるかどうかは不明)。
学習開始を開始のリンクからオンライントレーニングポータルにログインし、Take An Assessment から確認テストが受講できる。

f:id:labviewtips:20170812185523p:plain

  • LabVIEW Discovery
  • NI-DAQmx Programming
  • Sensors and Signals
  • Measurement Fundamentals

の各バッジをテストをクリアし揃えると、Measurements System Designのバッジが付与された。4択なのでそこそこDAQ計測を実施した経験のある人間なら数回やり直せばパス可能。初見で取りこぼしたポイントは知識の抜けなので非常に役に立つ。

波形データをCSVで保存(絶対時間)

LabVIEWで初心者が戸惑うポイントの一つに波形データの概念がある。波形は値Y、開始時刻t0、データ間隔dt、属性attributesから構成されているため、直感的な横軸時刻、縦軸値のデータペアになっていないのである。複数チャンネルの波形データをcsvに保存する場合など、ちょっとしたコーディングが必要となる。
下図のVIでは複数チャンネルを積んだ2D配列を転置することでチャンネルが列となる配列を作成、絶対時刻配列をテキスト上で置換合成している。そこそこ重たい処理なので、高速サンプリングした波形への適用は注意が必要。

f:id:labviewtips:20170811190156p:plain

LabVIEWを使うようなハード寄りの職場ではExcelで開ける事の価値は高いと思うので重宝するのでは。ファイルサイズが大きくなる場合は素直にバイナリやtdmsへの記録方法切替をお薦めする。

Waveforms2CSV_LV14.zip - Google ドライブ

と、ここまで書いたところで
NIのフォーラムに同じようなVIが紹介されていた(こちちらは相対時間だが)。
DAQmx アナログ集録で集録したデータをCSV形式で保存/Writing data acquired with DAQmx AI into CSV files - Discussion Forums - National Instruments

ループ実行時間を計測する

While Loopのエラー配線に接続し実行時間と回数を表示する。生産者/消費者デザインパターンなどの各ループに配置しておけば、コードのボトルネックが判別できる。エラー配線上に配置しているのは実行タイミングを明示化するため。

f:id:labviewtips:20170811182146p:plain

ElapsedTimerbyError_LV14.zip - Google ドライブ

ネタ元
使えるLabVIEWテクニック 時間を計る
ループの実行時間を測定するサンプル: LabVIEWの杜 Blog

アナログ波形データのデータ量最適化(0)

NI社のCompatDAQシリーズを用いてアナログデータ収録を行う際のデータサイズについて検討する。簡単のため構成はNI cDAQ-9172 / NI 9221(±60 V、アナログ入力、800 kS/秒、8 Chモジュール)とする。

検証用として以下のコードを作成した。(もう少し複雑な処理を追加する場合は収録ループと記録ループを生産者/消費者デザインパターン化する必要がある。)

f:id:labviewtips:20170812094624p:plain

ここで想定しているアナログ入力NI9221は12bitの分解能だが、DAQmxでアナログ波形を何も考えずに読み取るとループ上段のようにデータが32bitの倍精度小数(BDL)になってしまうのである。ループ中段のように16bitの単精度小数(SGL)に変換するのが望ましく、これによりファイルサイズを50%改善できる。

NI社のCモジュールで16bit以上の分解能のあるものは熱電対がほとんどで、これらは低速サンプリングしかできないため、DBLのまま使用してもファイルサイズ上ほとんど問題がない。タイムスタンプ/DBL変換と同じく、このあたりが初心者のひっかかりポイントな気がする。