NI製品ディスカッション

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

チャートに追加したデータの削除

チャート(波形グラフ)へクラスタを通じてデータを追加しています。
 
グラフに表示したいデータは1000件程度ですが、1000件を超えた場合古いデータから順に削除を行いたいのですが、
どのような方法がありますか?
 
現在、削除できておらず、データ数がかなり多くなると処理が止まってしまいます。
 
よろしくお願いします。

0 件の賞賛
メッセージ1/6
4,270件の閲覧回数

Katuyo様、こんにちは

 

恐らくデータを配列で扱っていると思いますので、

1000件を超えた件数だけ先頭のデータを削除してデータをずらす形になるのではないかと思います。

(1002件の場合、先頭の1~2番目のデータを消してそれ以降のデータを詰めた後に2件追加する)

 

手元に開発環境がないため確認できませんが、配列操作関数でそれらしいのがあるかもしれません。

 

以上です。

0 件の賞賛
メッセージ2/6
4,256件の閲覧回数

Katuyo 様

 

波形グラフと波形チャートは動作が異なりますので、お使いのVIを添付していただけると、より具体的な回答が得られると思います。

波形グラフと波形チャートの違い - National Instruments

http://digital.ni.com/public.nsf/allkb/D9DFD053025E72E986256C21002D82E3

 

質問文からはどちらを使用されているか判断しかねるので、各場合について回答いたします。

 

・波形チャートをご使用の場合

波形チャートであれば、指定されたバッファサイズ(デフォルトは1024)を超えるデータは順次古いデータから上書きされていきますので、ご所望の動作は特に処理を行う必要なく実現できると思います。

バッファサイズは、チャートを右クリックして「チャート履歴の長さ...」から変更できます。

http://digital.ni.com/public.nsf/allkb/E9784F413A2269E086256F3A0064C8BB?OpenDocument

 

・波形グラフをご使用の場合

波形グラフで表示されているのであれば、toffy様のおっしゃるとおり「配列から削除」関数を使用して古いデータを削除すれば実現可能だと思います。

 

波形グラフを使用する特別な理由がないのであれば、Katuyo様のケースでは波形チャートをご使用になるのが簡単だと思います。

 

0 件の賞賛
メッセージ3/6
4,247件の閲覧回数

LabVIEWの2010にて、波形チャートにデータ(クラスタ)を追加し続けると、数時間から24時間程度( 発生タイミングは不定 )で、

グラフの更新が遅くなる現象が発生しており、原因が掴めておりません。

 

試しに、1分ごとに履歴データのクリアを追加したところ、症状は改善されました。

( グラフが1分ごとに消えてしまう為、実運用では問題が残りますが )

 

もう一点、グラフ自体を削除してみても、異常は発生しておりません。

 

 

実際には、開発環境はLabVIEW2014で、作成したVIをLabVIEW2010へ変換して使用しています。

何か、解決策が見つかればと思い投稿致しました。

0 件の賞賛
メッセージ4/6
4,238件の閲覧回数

Katuyo 様

 

そういった症状ですと、メモリ使用の問題なのではないかと想像しますが、VIがないので具体的な提案は難しいです。

数時間から24時間程度とばらつきがあるのは、他のアプリケーションでのメモリ使用や前回実行時のデータが残っているため、などの可能性が考えられます。

 

一度「パフォーマンスおよびメモリをプロファイル」を試されてはいかがでしょうか。

http://zone.ni.com/reference/ja-XX/help/371361J-0112/lvdialog/profile/

0 件の賞賛
メッセージ5/6
4,222件の閲覧回数

もし波形グラフにてご自身で配列データを管理(循環バッファ)されるのでしたら、以下のライブラリが便利です。

 

Software Circular Buffer in LabVIEW

http://www.ni.com/tutorial/7188/en/

 

ご参考まで。

0 件の賞賛
メッセージ6/6
4,204件の閲覧回数