NI製品ディスカッション

キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

TSA Independent Component Analysis VIをタイムアウトする方法

解決済み
解決策を見る

Labview上で計測したデータを自動で解析するプログラムを作成しています.

解析に"TSA Independent Component Analysis VI"を用いているのですが,特性上,予期せぬパターンの信号が入力されると計算量が多くなり,演算に時間がかかってしまいます.

タイムアウトの時間を設定し,計算量が多くなってしまった場合はエラーを出す等の処理をして"TSA Independent Component Analysis VI"の計算処理を途中で停止してスキップしたいのですが,当該のVIの引数にタイムアウトの設定事項が見当たりません.

何か良い方法がございましたらご教授いただけると幸いです.

0 件の賞賛
メッセージ1/3
1,043件の閲覧回数
解決策
トピック作成者kusavani21が受理

この関数は内部を確認できますが、複数のサブVIから構成されており、

サブVIの中ではForループやWhileループが複数使用されています。

どこで処理時間を要しているかわかりませんが、ご所望の機能を実装する場合はこのサブVI一つ一つに対して編集を行う必要がありますので、難しいかと思います。

これはLabVIEWに限らず、タイムアウトが設定できない関数で起こりうる問題で、課題の一つです。

 

特定の条件で処理時間を要することが既知の場合、例えば前処理でデータ数を減らす、

並列処理が可能であれば動的に関数を呼び出して放置し、あとで結果を回収するなどが考えられます。

Asynchronously Calling VIs

Certified LabVIEW Developer
There are only two ways to tell somebody thanks: Kudos and Marked Solutions

GCentral
0 件の賞賛
メッセージ2/3
1,026件の閲覧回数

ご対応ありがとうございます.

実装が当該のVI内を編集しないことには難しいということがわかり大変助かりました.

並列処理による方法を試した後,実装が難しい場合は条件を洗い出して対応しようと思います.

 

0 件の賞賛
メッセージ3/3
941件の閲覧回数