03-24-2013 09:30 AM
Serial 接続(USBに変換)して、データを計測しています。LabVIEWは8.6です。
使っているのは、サンプルの「ハードウエア入力&出力」-「シリアル」-「Basic Serial Write and Read.vi」です。
これをSubVIとして、メインのVIで測定データの処理をしています。
全体としては順調に動作しているのですが、「Portの設定」が毎回リセットされてしまいます。
NIの技術者の方にご指導いただいたのですが、
サンプルとしていただいたものが、「GPIB」のもので、
ちょうど家族の不幸や私の入院、手術が重なり、長期間放置してしまいました。
3つの改善ポイントが残った状態でしたが、本日、その一つが解決しました。
数か月、抱えていて解決することができません。
serial.vi がSubVIとして使っているものです。
VISA.viがサンプルとしていただいたものです。
ご指導いただけるとありがたいです。
これとは別に、間違えて英語の掲示板サイトに投稿してしまいました
解決済! 解決策の投稿を見る。
03-24-2013 10:35 AM
添付されたserial.vi でシリアル通信のポート設定が問題なく行えるはずですよ。
ポートの設定が毎回リセットされるとのことですが、毎回というのはVI を開くたびにということでしょうか。
同じ設定を使用するのであれば、制御器を定数に変換すればブロックダイアグラムに値が保持されますので
VI を閉じても次回も同じ値が使用できます。
なお、VISA.vi が添付されてなかった様ですので、問題と関係していれば添付してください。
03-24-2013 09:49 PM
回答ありがとうございます。
説明が不足だったと思います。
ユーザーが自分のPCのポートを選択できるようにしたいのです。
しかし、選択したポートが再起動のたびにリセットされてしまうので、
選択したポートの設定は保持したいということです。
シリアルポートを使っていますが、実際にはUSB変換ケーブルを間に入れています。
差し込むUSBのポートによって、ポート番号も変わりますので、
柔軟に対応できるようにしたいと考えています。
よろしくお願いいたします。
VISA.VIを添付いたします。
03-25-2013 11:40 AM
すみません、いまいちご希望されている動作がわかりません。
添付されたVISA.vi はご希望のものではないのでしょうか?
添付されたVI はVISAリソース制御器の値を最初に構成ファイルから取得しまして、
前回のリソースと値が異なっていれば、構成ファイルに新しいリソースの値を書き込み、
同じリソースであれば、構成ファイルをいじらないというVI になっています。
>ユーザーが自分のPCのポートを選択できるようにしたいのです。
VISAリソース制御器は制御器なので、VI 実行前や実行中にPCのCOMポートを指定できます。
>しかし、選択したポートが再起動のたびにリセットされてしまうので、
>選択したポートの設定は保持したいということです
再起動というのはVI を一度閉じて開くということでいいでしょうか。
選択されたポートの設定は構成ファイルに書き込まれているので、そちらを参照できていれば同じポートが表示されるはずですよ。
もしVISAリソース制御器のGPIBというデフォルト値が問題ということでしたら、
COMポートを選択した状態で、制御器を右クリック>>操作>>現在の値をデフォルトに設定 で変更できますよ。
余談ですが「VISAリソース 検索」というVI でパソコン上で使用可能なCOMポートを検索して、
その一覧をもとに上記のVISAリソース制御器の値を設定することも可能ですよ。
ただ複数COMポートが認識されてしまうと、どのCOMポートが使用したいものなのか、
シリアル通信を行なって確認するという面倒な処理にはなります。
03-25-2013 08:30 PM
回答ありがとうございます。
初めて本格的なLabVIEWのプログラムに取り組んでいるところです。
なんとかSerial通信でデータ取得、データ保存、グラフ表示までこぎつきました。
VISA.viのダイアグラムを十分に読めていないのが原因と思います。
何度も、Serial.viにVISA.viを組み込もうと試みたのですが、
ことごとく失敗に終わっています。
しかし、組み込み方が問題ということにょうですので、
もう一度やってみたいと思います。
03-26-2013 02:52 AM
いろいろやってみたところ、まだ問題はありますが、
ポート情報をできることが確認できました。
再実行の際には、
保存したポート情報ではなく、もとものとポート情報に戻ってしまうのですが、
解決の糸口はつかめたように思います。
ありがとうございました。