03-25-2025 09:29 PM
長文で失礼しますが、表題の件について原因・解決策を教えていただけますと幸いです。
複数の計測器をノートPCに接続して、PC内のLabVIEWを用いて計測器を制御するような自作VIを実行しました。
最初はきちんと動作するのですが、数十分ほど時間が経つとフリーズした感じになって動作しなくなります。その際にエラー表示はでておらず、停止ボタンを押しても止まらない状態になってしまいます。
現在は出先のためVIの添付はできないのですが環境は下記の通りです。
・計測器は負荷抵抗装置で、電気的なモジュールに接続して電流・電圧などを計測する機器です
・負荷抵抗装置は2つ使用。別型番のものでそれぞれの計測設定・計測実行をする制御をLabVIEWで実施。
・計測器からPCへはRS232-USBケーブルで接続。ただし、PCのポート数が少ないためUSBハブを用いて1つのポートから計測器2つを接続。
・LabVIEWでは、2つの計測器の設定(測定モードなど)⇒(Whileループ突入)⇒計測器でデータ取得⇒取得データを別PCへHTTP送信⇒(Whileループ終了)
・Whileループ内ではms待機関数を設置。これをいじることで測定間隔の設定としています。1秒、5秒、10秒と値を大きくしていくと実行開始からフリーズするまでの時間が長くなっていく感じがします。(10秒の際は数時間ほど持続できました)
03-27-2025 02:50 AM
こんにちは
今の情報から特定することは難しいですが一般的な注意点を上げておきますので確認してみてください。
LabVIEWが「フリーズしたような状態」になるのは下記のケースが多いです。
①計測器などハードウェアからのデータ待ち中→タイムアウトの設定時間を見直してください暫定的に短くするのも手です
②取得データのPCへの保存待機中→タイムアウトの設定時間を見直してください暫定的に短くするのも手です。保存先が見えない、データがいっぱいになっていませんか
③PCがスリープに移行しようとしている→スリープやバッテリー保護などの電源管理を見直してください。ACアダプタを確認してください。
④処理手順が間違っている、もしくは厳密に定義できていない→例:読み込むデータが準備出来ていないのにデータ読み込みを実行している、もしくは処理や状況によって手順の入れ替わりが発生するケースがあるなど
気になったのは②に関連してHTTPで転送している点です。ネットワークが見えていない、ネットワークには入れていないなどないでしょうか
いずれにしてもエラークラスタを上手に利用してフリーズの直前がどうだったか各処理ごとのエラー情報を伝達、表示できるようにすると原因がわかるかもしれません。
04-01-2025 08:41 PM
Tas9 さんこんにちは。
大きな配列の連結や文字列連結を行うとパフォーマンスが下がることがあります。
下記ツールを使いメモリ使用量など確認してみて下さい。
「LabVIEW VIで実行時間とメモリ使用量を監視する」
https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z0000019LT1SAM&l=ja-JP
メモリ使用量の多いサブviに「メモリ解放要求(Request Deallocation)関数」を置くと良いでしょう。