12-08-2015 07:51 PM
チャート(波形グラフ)へクラスタを通じてデータを追加しています。
グラフに表示したいデータは1000件程度ですが、1000件を超えた場合古いデータから順に削除を行いたいのですが、
どのような方法がありますか?
現在、削除できておらず、データ数がかなり多くなると処理が止まってしまいます。
よろしくお願いします。
12-08-2015 10:49 PM
Katuyo様、こんにちは
恐らくデータを配列で扱っていると思いますので、
1000件を超えた件数だけ先頭のデータを削除してデータをずらす形になるのではないかと思います。
(1002件の場合、先頭の1~2番目のデータを消してそれ以降のデータを詰めた後に2件追加する)
手元に開発環境がないため確認できませんが、配列操作関数でそれらしいのがあるかもしれません。
以上です。
12-08-2015 11:19 PM
Katuyo 様
波形グラフと波形チャートは動作が異なりますので、お使いのVIを添付していただけると、より具体的な回答が得られると思います。
波形グラフと波形チャートの違い - National Instruments
http://digital.ni.com/public.nsf/allkb/D9DFD053025E72E986256C21002D82E3
質問文からはどちらを使用されているか判断しかねるので、各場合について回答いたします。
・波形チャートをご使用の場合
波形チャートであれば、指定されたバッファサイズ(デフォルトは1024)を超えるデータは順次古いデータから上書きされていきますので、ご所望の動作は特に処理を行う必要なく実現できると思います。
バッファサイズは、チャートを右クリックして「チャート履歴の長さ...」から変更できます。
http://digital.ni.com/public.nsf/allkb/E9784F413A2269E086256F3A0064C8BB?OpenDocument
・波形グラフをご使用の場合
波形グラフで表示されているのであれば、toffy様のおっしゃるとおり「配列から削除」関数を使用して古いデータを削除すれば実現可能だと思います。
波形グラフを使用する特別な理由がないのであれば、Katuyo様のケースでは波形チャートをご使用になるのが簡単だと思います。
12-09-2015 12:32 AM
LabVIEWの2010にて、波形チャートにデータ(クラスタ)を追加し続けると、数時間から24時間程度( 発生タイミングは不定 )で、
グラフの更新が遅くなる現象が発生しており、原因が掴めておりません。
試しに、1分ごとに履歴データのクリアを追加したところ、症状は改善されました。
( グラフが1分ごとに消えてしまう為、実運用では問題が残りますが )
もう一点、グラフ自体を削除してみても、異常は発生しておりません。
実際には、開発環境はLabVIEW2014で、作成したVIをLabVIEW2010へ変換して使用しています。
何か、解決策が見つかればと思い投稿致しました。
12-09-2015 06:09 AM
Katuyo 様
そういった症状ですと、メモリ使用の問題なのではないかと想像しますが、VIがないので具体的な提案は難しいです。
数時間から24時間程度とばらつきがあるのは、他のアプリケーションでのメモリ使用や前回実行時のデータが残っているため、などの可能性が考えられます。
一度「パフォーマンスおよびメモリをプロファイル」を試されてはいかがでしょうか。
http://zone.ni.com/reference/ja-XX/help/371361J-0112/lvdialog/profile/
12-09-2015 06:56 PM
もし波形グラフにてご自身で配列データを管理(循環バッファ)されるのでしたら、以下のライブラリが便利です。
Software Circular Buffer in LabVIEW
http://www.ni.com/tutorial/7188/en/
ご参考まで。