LabVIEW備忘録

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

パネルアップデート更新を切り替えて高速化

UIの使いやすさ向上のためにプロパティノード変更を多用するとVIが非常に重くなるが、フロントパネル更新を一度Offしプロパティノードを変更してから再度更新をONすると、見掛けの変更にかかる処理が省かれるため一気に高速化することが多々ある。VBAでいう…

ディスク残量に応じてアラートメッセージを出す

PCベース計測はストレージを安価に使えるのがメリットの一つで、ついつい大量のデータを記録領域に流し込みがちになるのだけれどもHDDといっても容量は有限なので、案外現場でディスク残量が足りなくなる事故が発生する。ファイルパスに噛まして残量でエラー…

エラー処理

LabVIEWエラーコードは非LabVIEWユーザーに取っ付きにくいので、分かりやすく翻訳したリストをXML化しておき、エラー発生時にメッセージとして発生させるとユーザーフレンドリー。 こちらはリストXMLの書き込み側

WEBカメラのFPS評価

IMAQdxの手習いでUSBカメラの実効FPSをモード毎に評価した。カメラモードを積み上げてから、Time Targetsの間ループを回して、安定した最後のFPSをtxtに出力。 FPSカウントは何故かパレットには無く、\vi.lib\vision\Calculate Frames per Second.viにある。

Max hold

スペアナよろしく波形の最大値を記録する機能を実装した。シフトレジスタに波形各要素の最大値を入れて比較しているだけ。Reset端子にラッチボタンを接続すればクリアできる。 MaxHoldSingleWave_LV14.zip - Google ドライブ下図は方形波+一様ノイズ信号(…

Advanced plotting toolkit

前回グラフをPNGに出力する話題をしたが、直接ライブラリから画像を生成する方法を紹介。 Advanced Plotting Toolkit一見してわかるように中身はmatplotlibであり、そこそこ美麗な各種グラフを出力することが可能である。Picture表示器に出力されるだけなの…

グラフをPNGに保存

グラフやチャートを瞬間的にスナップショットをしたい場合の選択肢は インボークノード⇒画像を取得 インボークノード⇒画像をエクスポート 外部ライブラリなどに投げる の3択になる。 1.はお世辞にも見た目が良いとは言えないLabVIEWのUIをそのまま保存してし…

前回実行時の設定値を復元

開発環境の場合は現在の値を設定をデフォルトを都度すればよいが、exeを作ってしまうと毎回制御値の値がデフォルトに初期化されてしまう。Ctrl Val.Get Allを用いて全ての制御器値を取得、xml化してcfgファイルに書き込み/読み込みをすることで制御器設定を…

tdms記録の勘所

tdmsファイルはなかなか良く考えられたファイルフォーマットであり、LabVIEWを使うならこれを活用しないと損である。が、何も考えないでtdmsに記録すると嵌る。時間チャンネルを生成する方法 http://www.kyowa-ei.com/jpn/download/product/special/ni_diade…

波形を間引く

入力波形を係数分だけ間引いた波形を返す。平均化や実効値計算などはしておらず、単純に点を間引いているだけである。グラフやチャートが重すぎる場合や、サンプリング設定を変更しないで記録データを間引きたい場合に使用する。 DecimateWaveforms.zip - Go…

DAQデバイスが認識されない

Q:NI MAX(Measurement & Automation Explore)上でCompactDAQデバイスが見えているけど型番が正常に認識されないのだけれど(下図)?A:シャーシやデバイスが対応していません。または、タスク数がシャーシ仕様の上限を超えています。図の場合は旧世代の9162に対…

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

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

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

LabVIEWで初心者が戸惑うポイントの一つに波形データの概念がある。波形は値Y、開始時刻t0、データ間隔dt、属性attributesから構成されているため、直感的な横軸時刻、縦軸値のデータペアになっていないのである。複数チャンネルの波形データをcsvに保存する…

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

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

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

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