LabVIEW備忘録

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

マウスホイールでトリガ

計測PCからはなれた場所から計測開始トリガをかけるテクニック。ペーン上でホイールマウスのホイール(button3)がクリックされるのをイベントストラクチャで処理する。もちろんはハードウェア的にDIモジュールに何らかのボタンを接続してもよいが、ワイヤレスマウスを活用すれば非常に簡便である。下図ではBeepを鳴らしているが、実際は計測開始キューなどに割り当てると良い。

f:id:labviewtips:20181113232346p:plain

シミュレーションデバイスの波形をすり替え

MAXのシミュレーションデバイスは実機レスである程度の計測システムを構築することが可能であり非常に有用である。が、シミュレーションデバイスの吐き出すアナログ波形は正弦波のみであり、物足りなく感じる場面も多々ある。下記は熱電対のチャートをそれっぽくすり替えた例。
f:id:labviewtips:20180502013707p:plain

DAQ読み取りのデータを流しこむと実機っぽい温度チャートにしてくれる。
f:id:labviewtips:20180502014137p:plain
f:id:labviewtips:20180502015145p:plain

計測値をフィードバックして次の制御に移るようなシステムのデバッグにはよく使う波形のエミュレーションVIを用意しておいて極力実機レスでの完成度を高めるようにしている。

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

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

OFF処理
f:id:labviewtips:20180106233251p:plain

ON処理
f:id:labviewtips:20180106233514p:plain

ブール値が反転してるだけなのにわざわざ別名VIにしていのは、見た目でON/OFFを間違わないためです。エラーワイヤの入り口と出口に接続して使用する。

用例
f:id:labviewtips:20180106235744p:plain

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

PCベース計測はストレージを安価に使えるのがメリットの一つで、ついつい大量のデータを記録領域に流し込みがちになるのだけれどもHDDといっても容量は有限なので、案外現場でディスク残量が足りなくなる事故が発生する。ファイルパスに噛まして残量でエラーメッセージを発生させれば、これを回避できる。呼ばれたタイミングでしかチェックしないので長時間運転する用途であればウォッチドッグ化した方が良いかもしれない。

f:id:labviewtips:20180103123848p:plain

AlertDiskEmpty_LV14.zip - Google ドライブ

エラー処理

LabVIEWエラーコードは非LabVIEWユーザーに取っ付きにくいので、分かりやすく翻訳したリストをXML化しておき、エラー発生時にメッセージとして発生させるとユーザーフレンドリー。
f:id:labviewtips:20171230235136p:plain

こちらはリストXMLの書き込み側
f:id:labviewtips:20171230235723p:plain

WEBカメラのFPS評価

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

Max hold

スペアナよろしく波形の最大値を記録する機能を実装した。シフトレジスタに波形各要素の最大値を入れて比較しているだけ。Reset端子にラッチボタンを接続すればクリアできる。
f:id:labviewtips:20171118173508p:plain
MaxHoldSingleWave_LV14.zip - Google ドライブ

下図は方形波+一様ノイズ信号(青線)が時間積算にしたがって方形波の最大値(赤線)に近づいていく様子が見て取れる。
FFT後の周波数波形などに適用すると威力を発揮すかも。
f:id:labviewtips:20171118172717p:plain