10-24-2007 11:07 PM
10-24-2007 11:52 PM
2通りほど例示します。ご参考下さい。
片方は、ループを2秒で回して2秒ごとの処理を行い、100回に1回だけ別の処理を追加します(200秒の1回)。こちらの方法は、ループの待ち時間が2秒でよい場合と、長いほうの処理がループ周期の整数倍の場合に有効です。
もう片方は、ループは高速で回しておき(CPU負荷を考えて50msec程度)、Tick Countで経過時間が2秒もしくは200秒になるたびに処理を行います。こちらは、ループの中は速く回るので他の処理の反応が早くなるのと、複数の処理の周期が整数倍の関係になくても大丈夫です。(こちらは経過時間比較は経過時間ExpressVIでも記述可能と思います)
他にも用途に応じていろいろ書き方が出来ますが、2通りの異なる方法としてご参考下さい。
10-25-2007 02:05 AM
10-25-2007 02:11 AM
例えば、フィードバックノードをシフトレジスタに直し(ワイヤ長くなりますが)、Caseの枠内にワイヤを突入させて処理して再度Caseから出すようにしては如何でしょうか。そのCaseの処理しない面では、ワイヤを素通りさせます。
10-25-2007 02:48 AM
自己レスです。
シフトレジスタにする必要はありませんでした・・・フィードバックノードをCaseの外に出して、Caseから出たワイヤをフィードバックノードに入れてその出力をまたCaseに戻せば良くて、先ほどの投稿のように、Caseで処理しない面はワイヤを素通りさせればOKかと思います。フィードバックノードがCaseの中には入らないので、Caseの周りをワイヤが回りますが、シフトレジスタよりマシでしょう。
10-25-2007 03:58 AM
10-25-2007 04:05 AM
「DAQアシスタントを複数置いてエラー・・」というのはこのフォーラムでも時折見られるものでして、DAQアシスタントを単純に2つ以上置いてしまうと、両方のアシスタントで同一のリソースをつかもうとするため、後発のアシスタントでエラーが出ます。
おそらくスレッドを見回すと同様なエラーに対する対処が載っているものがあると思いますので、是非ご覧下さい。(アシスタントを使用できる7.0以上をめったに使わないのと、7.0以上の場合でもアシスタントなどめったに使わないため、申し訳ありませんが、アシスタントに関して的確にアドバイス出来ません・・・DAQアシスタントは便利ですが、組み合わせて2つ以上置こうとするとすぐエラーになりやすく、混乱の元・・と考えています) DAQ関数で組上げた方が、処理もすっきりするし、お勧めです。
10-25-2007 04:10 AM
アドバイスありがとうございました。
非常に参考になりました。DAQ関数での構成を考えたいと思います。