.net VC++です。
GPIB測定器制御を行うにはどのような手順を踏めばいいのでしょうか。
例えば、Agilent製のマルチメータにて
1秒間隔でデータ採取する等のことがしたいのです。
どなたかわかる人、ご教示お願いします。
↓たとえばこんなのでお手軽に済ませてはいかがでしょか
http://www.ratocsystems.com/products/subpage/usb220.html
たぶん、最初にGPIBボード挿すとおもいます。
次にドライバーをインストール。
そしてGPIBボード付属(してるハズ)のライブラリ(lib、dll、h)を、ご自分の開発環境
にコピー。
んで、取説読みながらコーディング。
基本は232C通信と同じです。
ここに投げる前に調べて見ましたか?
GPIBをキーワードにすると色々ヒントが得られますよ。
http://www.home.agilent.com/agilent/educationDetail.jspx?
cc=JP&lc=jpn&ckey=284:epsg:cou&nid=-536902435.0.00&id=284:epsg:cou
の講習を受けてみるとか。
VEE ProにVCのサンプルがあるので、それを参考に実際に処理したい
ことを関数にしたら良いと思う。
それ以外にも色々ありそうですので、調べてみてください。
VEE Proは5,6年前に使用しましたけど、そこにあるサンプルだけでも
わかりやすかったですよ。
後、使用する製品とGPIBでやり取りするためのコマンドはそちらの
製品マニュアルか別の資料にあるはずです。
その資料があれば、VEE Pro上でチャートを作成し、その上でデバッグ
できます。
うまくいったら、そのチャートを呼び出す関数をサンプルを元に作成
し、それを呼び出せばできます。
1秒間隔ということは、VC+VEE Proで1つのデータを取得できる関数を
作成し、1秒毎にその関数を呼び出す。
厳密に行いたい場合は、GPIBの処理時間の考慮や、タイマ自体の精度を
考える必要があります。
後は、測定器自身の操作方法を理解したほうが良いかも?
制御するコマンドは手動でやることと同じなので、モード切替や設定変更
などの手順を控えて、対応するコマンドに変換して順番にコマンドを
叩くような感じになるかと思います。
なので、作成する関数としては3つかな?
1.モードや設定変更
2.データ取得
3.モードや設定を元に戻す
アプリで通信開始時に1を呼び出し、
1秒間隔で2を呼び続ける
通信完了時に3を呼び出して元に戻すといった感じかな?
こちらには、その製品もないのでこれ以上のことは言えません。
+さんが書かれているのサイトに該当する製品がある場合は、そちらを
購入したほうが手っ取り早いかもしれませんね。
>+さんが
ではなく
επιστημηさんの間違いでした。
すみません。
っていうか0からプログラムかいてたら多分、人件費と開発期間がもったいない
LabView で済ませちゃえ
Agilent製ならRS-232Cの通信が使えるタイプがあるんじゃないでしょうか。
GPIB通信でやりたいのなら、まずボードを選定して決まるのがいいと思います。
NI社、インターフェース社、コンテック社それぞれ違うGPIBの関数が用意されて
います。
後は関数説明にそってプログラムを組むだけです。
もしsatoさんがC言語初心者ならば、NI社のGPIBボードを購入してtetrapodさんの
ご意見どおり、LabViewで済ませるのがいいと思います。
GPIBの通信に関しては、C言語を勉強するよりLabViewを勉強するほうがいい
と思います。
ただ、LabViewはいくつか欠点があります。
1. 開発ツールの値段が高い。(2.3ヶ月で1回限りなら評価版を使う)
2. I/FボードはNI社製を選定しなければならない。
(他社製で使えるのは非常に少ないです。)
3. C言語に慣れてるとプログラムを組みにくい。
遅くなりましたが、回答ありがとうございます。
いろいろ試してなんとか暫定版という形までには
なりました。しかし、実行すると、
VI_ERROR_RSRC_NFOUND
とエラーが表示されてしまいました。
InInsufficient location information or
the device or resource is not present in the system.
と書いてありますが、原因不明です。
GPIBは接続されていますし、アドレスも間違いありません。
参考情報ありましたら、ご教示いただきたく宜しくお願いいたします。
あてずっぽですけど
Insufficient location information (不完全な位置情報)
というからにはアドレッシングのマチガイちゃうかしら。
GPIBならIDは0から7までしかないんだから片っ端から試してみては?
>VI_ERROR_RSRC_NFOUND
てことは「NI(ナショナルインスツルメント)」社製?
もしそうなら、GPIBの接続を診断ツールがあるはずです。
επιστημη さんのご意見どおりアドレスIDを調べてみたらどうですか。