06-14-2017 03:19 AM
manakaと申します。
表題の件で悩んでおります。
1つのフォルダを監視することは、「File System Watcher Example」で実現できたのですが、
2つのフォルダ(仮にAとBとする)を常に監視し、Aにファイルが入ったらAのケースを実行し、Bにファイルが入ったらBのケースを実行するという仕組みが作れません。
また、同時に入った場合も見逃さないように順に処理できるようにしたいのですが、、
どなたかお力お貸しください。
よろしくお願いいたします。
解決済! 解決策の投稿を見る。
06-15-2017
02:14 AM
- 最終編集日:
05-15-2025
01:01 PM
、編集者:
Content Cleaner
こんにちは
「File System Watcher Example」を使用して、2つのフォルダを監視したいとのことですが
以下のVIスニペットにありますように
While loopを2つ並列に使用し、中にイベントストラクチャを配置することで
ひとまずはご希望の動作を実装できるかと思います。
ただし、イベントストラクチャとケースストラクチャ内に
記述される処理を一つのWhile loopに含めると
フォルダにファイルを入れてから、処理が発生するまでの時間が
非常に長くなってしまう恐れがありますので
キューを利用した生産者/消費者ループデザインパターンを使うのも一つの方法かと思います。以下参考のリンク(英語)です。
Application Design Patterns: Producer/Consumer - National Instruments
ぜひお試しいただければと思います。
06-16-2017 01:45 AM
tombo1111様
ご返信ありがとうございます。
そして質問がございます。
初心者の為、初歩的な質問で恐縮なのですが、
並列Whileループについて、ChangeTypeのTrue信号は、1回出力されると
ブールが付きっぱなしになりますが、これは何が起きているということなのでしょうか?
動作させたいケースが膨大なため、第3のループに受け渡そうとしているのですが、
永遠にTRUEが出力されて困っています。
お時間あります時に教えて頂けたらと思います。よろしくお願いいたします。
06-18-2017 06:43 AM - 編集済み 06-18-2017 06:45 AM
こんにちは
実際に現在作成されているプログラムを確認していないため
不具合を正確に把握することはできませんが
おそらくイベントストラクチャが入っているWhileループの中でさらに複雑な処理を行っているため
(ケースストラクチャの中にループが入っている?)、ループが回らずブールが消灯しないのではないかと推察されます。
こちらの問題を解消する一つの方法として前回ご案内した
キューを利用した生産者/消費者ループデザインパターンを使用すると良いかと思います。
今簡単にこちらのパターンを、以前ご紹介したサンプルの一つ目のループに追加したプログラムを作りましたので、参考までにご覧ください。
添付画像はブロックダイアグラムにドラッグすると、編集/実行できるプログラムとして配置されます。
また併せてキューの基本的な使い方を学ぶ上でこういった動画も参考になるかと思います。
脱初心者シリーズベストプラクティス - 05: Queue - YouTube
https://www.youtube.com/watch?v=WDg4bU69UhU
ではVIの作成、頑張ってください!
06-18-2017 08:03 PM
tombo1111様
ご返信ありがとうございます。
ケースストラクチャの中にはループはいれておりません(何かでそれはだめと拝見したことがありました)
原因はまだわからないのですが、キューで解決する方がよさそうですね。。
初心者なもので、ネットで調べただけではキューが理解できず困っておりました。
動画を拝見したのですが、大変わかりやすく助かります!!教えて頂きありがとうございます。
そしてサンプルVIもありがとうございます。
ですが、2016は見れません。お手数ですが2015版でも保存していただけないでしょうか?
よろしくお願いいたします。
06-19-2017 09:24 PM - 編集済み 06-19-2017 09:32 PM
manaka様
キューの動画がお役に立ちましたようで何よりです。
ケースストラクチャの中でWhile loop等を使用していないのであれば
比較的簡単にキューを使用しての処理が行えるかと思います。
キューを使用したサンプルVIをバージョン 15.0用に保存いたしましたので
添付いたします。こちらのVI単体には実行に必要な関連するVIが含まれていないため、
実際に使用される際は「File System Watcher Example」プロジェクト上で「File System Watcher Example」を添付のサンプルのVIに置き換えて頂く、もしくは添付VIを参考に既存のVIを編集頂ければ良いかと存じます。
ご参考になりましたら幸いです。
06-20-2017 08:10 PM
tombo1111様
添付いただいたデータですが、このVIのバージョンは16.0ですとでてしまい、拝見できませんでした。お忙しいところすみませんが、もう一度お願いできますでしょうか。
06-20-2017 09:52 PM - 編集済み 06-20-2017 09:55 PM
manaka様
再度ファイルが開けなかったとのことで大変失礼致しました。
添付のファイルに関しては
私のPC上のLabVIEW 15.0で使用できる事を確認しましたので
ご確認頂ければと思います。
ご参考になりましたら幸いです。
06-20-2017 10:00 PM
tombo1111様
ファイル開くことが出来ました!
丁寧に教えて頂き大変感謝しております。
こちらで勉強させていただきます。ありがとうございました。