NI製品ディスカッション

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

波形チャートに表示されている内容をスプレッドシートに書き込むには

いつもお世話になっております。
表題のように、現在波形チャートに表示されている内容をスプレッドシートに
書き込むには、どのような処理にすれば宜しいのでしょうか?
グラフに表示させている値はWhileループ内で作成しているので、Whileループの外で
「波形をスプレッドシートファイルにエクスポート」を接続してみたのですが、最後の値しか
保存されません・・・。
現状のソースを添付します。
初心者で申し訳ありませんが、宜しくお願い致します。
0 件の賞賛
メッセージ1/12
4,744件の閲覧回数
お世話になっております。
すみません、質問しておりました件に関してはWhileループの外で波形チャートの履歴データプロパティを参照して
スプレッドシートに書き込む事が出来ました。
ただ、波形チャートでは古いデータの情報も残っているので、STARTイベントからSTOPイベントまでのデータのみを
書き込むという方法が分かりません。
何か方法はあるのでしょうか?
ご存じの方がいらっしゃいましたら、宜しくお願い致します。
0 件の賞賛
メッセージ2/12
4,728件の閲覧回数
添付のように、シフトレジスタを使うとWhileループが回っている間のデータが蓄積されます。シフトレジスタを作るにはWhileループの枠上で右クリックすると「シフトレジスタを追加」があるのでそれをクリックしてください。シフトレジスタの左の入力には空の配列(シフトレジスタの入力側の上で右クリックして作成→定数)を作っておく必要があります。でないと2回以上走らせると前のデータが残ってしまいます。ご参考まで。
0 件の賞賛
メッセージ3/12
4,699件の閲覧回数

tsuruさん

ご返信頂きましてありがとうございます。

tsuruさんのソースの内容はどうにか理解出来ました。(初心者でスミマセン)

実は「STARTイベントからSTOPイベントまでのデータ」というふうに書いていたのですが

正確には、STARTボタンが押下されてからSTOPボタンで計測終了するまでの間で、尚且つ

RECORDボタンが押下されている間だけのデータを書き込みたいのです。

tsuruさんのソースを参考にどうにか出来ないかと検討しておりますが、RECORDボタン押下時の時刻を

初期値としてシフトレジスタに接続する箇所や、現在、表示されているデータから該当する箇所(ポイント)

を取得して書き込む方法がどうしてもわかりません・・・。

私が添付しておりましたソースでお教えいただけたら有難いです。

(お恥ずかしい話なのですが、画像で見たオブジェクトを探すのも一苦労するような現状です。)

どうか、宜しくお願い致します。

0 件の賞賛
メッセージ4/12
4,689件の閲覧回数
 添付のようにすると良いと思います。貴職が使用しているバージョンが判らないので、JPEGにしています。
 ある条件のときだけ、という時はケースストラクチャを使用します。その条件端子にRECORDボタンを配線しTRUEのケースに処理内容を入れると当該ボタンがTRUEになったときにTRUEのケースを処理します。FALSEの間はFALSEのケースの処理をします。添付ではFALSEケースには何も入っていないのでなんら処理は行われません。従い、RECORDボタンをクリックしない限り、外側のWHILEループが回っているだけになります。TRUEとFALSEの表示切替は、ケースストラクチャ上辺中央のTRUEの箱の両側の矢印をクリックすると替わります。
 RECORDボタンをクリックすると、ケースストラクチャの中のWHILEループが回ります。シフトレジスタでデータを蓄積します。ケースストラクチャの中に入るとRECORDボタンの状態を検出できないので、RECORDボタンのローカル変数を使って、当該ボタンがTRUEかFALSEかを検出します。ローカル変数は当該ボタンの端子上で右クリックして作成→ローカル変数とすると作成できます。ローカル変数上で右クリックして読み取りに変更をクリックするとWhileループの外にある端子をWhileループ内で読み取ります。Whileループの停止端子にこれをつなぐと、RECORD端子が離された時にWhileループが停止してデータがエクスポートされます。停止端子は入力がFALSEになると停止する設定にしています。これは停止端子の上で右クリックしてTRUEの場合継続をクリックすると切り替えられます。
 なお、RECORDボタンの動作を設定する必要があります。ボタン上で右クリックしてプロパティを表示し、操作のタブを開きます。そして離されるまでスイッチを選ぶと、RECORDボタンをクリックしている間TRUEになり、離すとFALSEになる動作をします。その他の動作については、それぞれを選択するとその右に動作の絵が表示されるので勉強してください。
 
 RECORDボタンのローカル変数の変わりにもう一つ別のボタンをつないで、RECORDボタンを記録開始、新しいボタンを記録終了とすると、RECORDボタンを押し続ける必要はありません。記録開始をクリックしてから、記録終了をクリックするまで手を離しておけます。
 
 右端のWhileループの停止端子にFALSEをつないで1回ループにしておられるが、処理の順番を規制するだけならシーケンスストラクチャを使ってもできます。
 
0 件の賞賛
メッセージ5/12
4,667件の閲覧回数

tsuruさん

早速お返事頂きましてありがとうございます。

色々と説明不足で申し訳ありません。

ケースストラクチャとボタンの動作についてはだいたいは理解しておりました。

まだ、tsuruさんから頂いたjpgを参考にしてプログラミングしている最中なのですが、

シフトレジスタの入口に配線されている配列の作成方法が分かりません。

私がやってみた方法は、1.配列定数を配置 -> 2.タイムスタンプ定数を配列上にドラッグ です。

ただそれだと、要素の枠をドラッグして要素数を増やしても、同じデータの要素が増えるだけで

他のデータ型が入れられません・・・。どうすれば、tsuruさんのような配列になるのでしょうか?

クラスタというのもあるようですが、それとは違うんですよね?

開発環境も何も記述していなくてスミマセンでした。

LabVIEWのバージョン:8.2

OS:WindowsXP Pro SP2

申し訳ありませんが、お教え下さいますでしょうか?

0 件の賞賛
メッセージ6/12
4,651件の閲覧回数
シフトレジスタの入力定数を作成するには、入力側のシフトレジスタの上で右クリック、作成、定数と選んでいくと自動的に適切な定数が作成されます。
0 件の賞賛
メッセージ7/12
4,630件の閲覧回数
追伸です。シフトレジスタの入力につながっている配列の要素はクラスタになっています。クラスタ内には文字列、数値、配列、クラスタなど何でも入ります。空の文字列や空の配列などをクラスタの中においてそれを配列の中に入れればよいのですが、面倒なので、クリック、作成、定数と選んで自動的に作成させています。
0 件の賞賛
メッセージ8/12
4,624件の閲覧回数

tsuruさん

すみません、シフトレジスタの入力につながっている配列の要素(Caseの左外側)の設定方法がどうしても

わかりません・・・。

今は、1.配列定数を配置 -> 2.クラスタ定数を配列定数内にドロップ までを作成しましたが、

その後はどのような処理になるのでしょうか?

シフトレジスタには何も配線されていない状態なので定数は選択出来ないので、配列定数上で

作成-定数とするのでしょうか?

しかしその方法だと、tsuruさんから頂いたjpegファイルとは違う表示になってしまうので、私が

何か間違っているのだと思うのですが・・・。

何度もすみませんが、宜しくお願い致します。

0 件の賞賛
メッセージ9/12
4,610件の閲覧回数
配列連結追加の下側の端子にBody Tempのデータを配線し、配列連結追加の出力を右側のシフトレジスタに配線しさえすれば出来ます。
0 件の賞賛
メッセージ10/12
4,604件の閲覧回数