1 :
名無しさん@1周年 :
01/09/09 05:21 今度、実験室での測定器制御用にUSB-GPIB I/Fを入れます。 今まで手で色々設定していた作業を自動化できると期待して いるんですが、実際のところいかがでしょうか。10BASE-T、 EIA-232で制御できる機械もあるようなので、そちらの情報 もできればお願いします。
2 :
名無しさん@1周年 :01/09/09 05:47
沢山浸かってますHP−IB いまはアジレント つか232Cは嫌い 自動化は制御ソフト次第
3 :
名無しさん@1周年 :01/09/09 07:13
1です。制御は、Excel付属のVBAを考えています。 それとも新たにVBを買ったほうがいいでしょうか。 他にいい制御ソフトありますか? 制御するものは、電源、パルジェネ、サーモスト リーマを考えています。
4 :
名無しさん@1周年 :01/09/09 08:43
HP以外の商品でまともに動くGPIBに出会ったことがない。 GPIB大嫌い。 ちょっと速い処理するとすぐハング。
5 :
名無しさん@1周年 :01/09/09 16:02
> ちょっと速い処理するとすぐハング。 測定器スっとぼける時はデバイスクリア送信で頭殴る HPの他はアンリツとアドバン混載で使ってるど >他にいい制御ソフトありますか? おいらは全部C++で組んでるよ 他の方法はHPやNIナショナルインスツルメントからGUIフローのウィンドウズ制御ソフト出てるでよ
6 :
名無しさん@1周年 :01/09/09 20:58
>5さん VEEとLabViewとかですか。 C++で組んだほうが速く動くみたいですね。 >3さん Ethernetでコントロールできる測定機器も増えてきています。 私が見たことあるのはオシロぐらいです。 PCを232CかGPIBでつないで、とばすならなにかできそうですね。
7 :
名無しさん@1周年 :01/09/09 21:01
会社にGP-IBを使った設備があります。 抵抗測定用。 今はUSBのタイプがあるんですか?
8 :
名無しさん@初回限定 :01/09/09 22:46
学生時代にPC-98x1にGPIBボード差して、TurboPASCALで GPIB-BIOS叩いて計測機器を自動制御して計測してた。 PC9801ではGPIBはBIOS叩くだけでよかったから便利だったネ。 AT互換機ではこういうのはないんだろーな・・・
9 :
名無しさん@1周年 :01/09/10 05:09
GPIBって何ですか?メリットとかも教えて下さい.
10 :
名無しさん@1周年 :01/09/11 07:39 ID:f3kgbEcc
1です。GPIBは、計測器を制御するためのI/Fで、最大15台まで 接続できます。メリットは、手作業で色々ボタンやダイヤル操作 が必要な部分を、PCでプログラム組んで自動化できること、 デメリットはマイナーなのでPC側I/Fが入手しづらく、価格も 高いといったところでしょうか。 > 9さん こちらは、これから導入しようという段階なので他にも色々な 話があると思いますが、専門家の皆さんお願いします。
11 :
ななし :01/09/11 10:12 ID:r5m12aug
>>10 さらに、対応している計測器が多いというのもメリットですね。
また、転送速度が遅いのと、ケーブルの太いのがデメリットと思う。
LabViewで組んで見たのですが、結構面倒です。LabWindowsCVI(Cの
処理系を含む)を使ってC言語(最近はC++も対応)がいいと思う。
>>5 さんと同意見ですね。
12 :
名無しさん@1周年 :01/09/11 13:26 ID:drRS9CMk
学生時代にはずっとLabViewつかってました、UNIXで動かしてたんだけど、 視覚的にわかりやすいし、後輩への引継も楽だから重宝してたんだよね、 一考されてはいかが?
13 :
名無しさん@1周年 :01/09/28 16:19 ID:FlT7dVMU
>>2 アジレントになってからHP-IBって言わなくなった。
HP BASICが簡単でいいよ。あれってどっちが売ってるんだろう?HPかアジレントか?
14 :
名無しさん@1周年 :01/09/28 20:27 ID:B0Sz7hyI
もうHP-BASICは止めちゃって売ってません。
15 :
名無しさん@1周年 :01/09/28 23:29 ID:HFPs8Ma6
>>13 アジレントのWebにE2060C HP BASIC for Windows ってあったよ。
16 :
名無しさん@1周年 :01/09/29 11:18 ID:jX5vzTTE
17 :
名無しさん@1周年 :01/09/29 20:14 ID:EdL36F46
MATLABでやってる人いる?
18 :
名無しさん@1周年 :01/09/29 21:08 ID:QfYRdMuY
AgilentのVEEもver.6になってからMatlab Scriptが使えるようになって 便利になった。まあお世辞にもはやいとはいえんが。
19 :
名無しさん@1周年 :01/09/29 22:21 ID:.Mw3piUs
>18 VEEってver6になったんだ。LabViewとどっちが使いやすい? VEEは単純なループ回すのもめんどくさい(笑) そして、遅い。パネルドライバは使い物にならなかったので、 結局はDirectI/OでGPIBコマンド打ち込んでいました。 それより、HS488に対応している機種ってあるの?
20 :
名無しさん@1周年 :01/09/30 14:18 ID:eSHnTduo
>>16 HT BasicってHP Basic for DOSとかfor WindowsのOEM元じゃん。
結局そっちに行ったのか。
21 :
名無しさん@1周年 :01/10/02 10:20 ID:.tGVXijs
学生時代にペンレコ、ひずみゲージを使って実験してまして。。。
昨日農家の知人の所有しているハウスで温度センサや湿度センサ
を発見して昔の記憶がよみがえりました
東京なんたらのゲージを使ってペンレコ取り付けて
完璧にセットしてもCALやりなおし。。。
しまいにはゲージがへっちょこむいてたりして、、、
どうにかインターネット環境を利用して、ハウスのモニタリングおよび遠隔操作したい。。。
北沢の電磁弁も転がってましたし。。。
昨日はとりあえず、
http://www.adwin.com/adwin/products/industry/24_tpkit/note_01.html (温度管理とモニターをして、アラームが出たらメールで知らせてくれるらしい)
こんなものを探し当てました。。。
誰か安価で扱いやすいセンサとコンバータご存知無いでしょうか?
+-1,2度程度の誤差が出てもハウスの温度管理だから問題無いので
とにかく、安価で信頼性があればいいのですが。。。
ご教授よろしくお願いいたします。。。
プログラムは化石になったFORTRANしか知らないのは痛いですよね。。。
22 :
名無しさん@1周年 :01/10/02 22:54 ID:3swODAUE
>21 PICはダメなの?安いよ。自作になるけど。 リンク先のブツは使いようがありそうですね。 私としては熱伝対(K or R)が使えるタイプがほしいですが(笑)
23 :
名無しさん@1周年 :01/10/04 02:33 ID:Q9ErpGCg
>>21 ハウスの環境内にPCを設置するの?
ハウスから制御室(自宅)までは何m?
ハウスから制御室(自宅)までは有線/無線?
24 :
マッド君 :01/10/04 14:35 ID:RZBKkKeY
GP-IBって、処理速度を早くしたいんだけど、どーしたら良いですか? 今、僕は、Visual Basicでプログラムを組んでます。 Visual C++は、難しいので何とか避けたいのですが・・・・(笑)
25 :
FLEX10K :01/10/04 15:54 ID:1iv0a6Bg
GP-IBってハンドシェークする相手の速度に合わせてしまうので コントローラ側をいくら速くしても相手が遅いと効果有りません。 VBで書いても今のパソコンの能力ならGP-IBの転送速度を上回る くらいのパフォーマンスは得られるのではないでしょうか。
・コマンド処理時間を短くする 例えばアジレントだとMEAS?よりFETCH?のほうが早く答えを教えてくれることがある。 ・ウエイト時間を短くする 必要最低限のウエイト時間になるように調整する。 (私は窓APIのGetTickCountを使って待つためのSubプロシージャを作っています) ・テキストデータを大量にやり取りする場合はバイナリ転送を考える データを取り込む場合NIだとibrd32,RATOCだとgp_tfrin(だったっけ?)を使います。 VB4.0向けに組まれたプログラムの中にはバイナリデータを文字列型の変数に 代入しているものが見られますが、VB5.0 6.0でそれをするとスゴいことに なりますので後者ではバイト型変数の配列を使用します。
27 :
:01/10/30 00:14 ID:R5yhrCrJ
LabVIEWについての基本的な質問です。 例えばDMMの値を一度読み取るviをGPIBwrite関数とread関数で 作ったとします。これを1秒で100回サンプリングできるように ForやWhileループで囲んでタイミングを設定しても、DMMの方が 速度についていけないのか正確なタイミングで読み取りができません。 LabVIEWに詳しい方いませんか?
28 :
名無しさん@1周年 :01/10/30 00:26 ID:1q4+8yNy
安いのDMMでは、1秒で100回サンプリングは不可能。 高くてもいいならアジレントのコールセンターに聞いてみたら? 制御する言語を何にするかはその次の問題。
GPIB突きのDMMって安物とは思えないが・・・ GPIBボードもISAはやめて(今時いないか) NIのHS-488.2をつかって(8-9万したような) コマンドもHS-488.2で書くのはいかが? あと、シリアルポールかパラレルポールかわからんが そこらへんの設定はどうっすか?
30 :
27 :01/10/30 01:06 ID:R5yhrCrJ
どうもです。 まあ実際にDMMを1秒に100回もサンプリングする必要は ないんだけど、、LabVIEWのプログラムの仕方が悪いのかと思ったもので。 とりあえずもう少し勉強します。皆さんのことは一生忘れません。 さようなら。
31 :
27 :01/10/30 01:20 ID:R5yhrCrJ
もう一度戻ってきました。 使っていたDMMはKeithley2000なんだけど webで確認したら6.5桁で50回/s 、 4.5桁で2000回/sって ちゃんと書いてました。 鬱。明朝、電車に飛び込みます。さようなら。
32 :
名無しさん@1周年 :01/10/30 01:24 ID:1q4+8yNy
28だが、垂直分解能が8ビット程度でよければそもそもDMMではなく、デジタル・ストレージ・オシロスコープ(GPIB付き)を使う手もある。 サンプリング周波数が100Hz(1秒に100回)なら垂直分解能がもっと高いA/Dコンバータもある。 おぼえてろよ一生忘れないぞと言われても困るが、目的はひとつでも手法はいくらでもある。ただし、お金もかかる。
33 :
28です :01/10/30 01:33 ID:1q4+8yNy
キースレーのDMMだったら高級品。お金をちゃんともっているようですね。
34 :
29 :01/10/31 21:23 ID:2p9HyY6E
けいすれ〜のDMMすか。いいなぁ。 あっしのところはあどてすですよ。 転送速度と測定器の内部サンプリングは 必ずしも一致しないのでは? (ちがったらごめんなさい)
35 :
:01/11/03 15:36 ID:mADXeEUD
ケースれーのDMM 誰も使ってないのが研究室に5,6個落ちてます。 あげようか?
36 :
29 :01/11/03 18:17 ID:nBpgXl1p
35さん GPIB突きだったらほしぃなぁーー
37 :
名無しさん@1周年 :01/11/12 21:26 ID:he9mzL9o
38 :
age :01/12/28 16:25 ID:pPQNqDgG
age
39 :
38 :01/12/28 16:27 ID:pPQNqDgG
↑もうすこしでIDがDQNだった。。。
40 :
名無しさん@1周年 :01/12/28 18:13 ID:ni4JcHhW
次期SCPI規格では *DQN コマンドを追加してもらおう!!
41 :
名無しさん@1周年 :01/12/28 18:15 ID:KK1joCTe
IDがniだ!!
42 :
名無しさん@1周年 :01/12/28 20:01 ID:pPQNqDgG
niよかCONTECの方が安いしサポートしてくれていいね
43 :
名無しさん@1周年 :01/12/29 21:35 ID:8Aqh3azi
IGBTなら使っているが
IGBTって小信号デバイスにならないのはなぜ?
45 :
37 :01/12/29 23:02 ID:EO8+m/Ee
>>40 これを投げるとブラウザが立ち上がって2chに繋がるのだろうか(藁)
最近の測定器はWindowsやEthernetを搭載しているので無理な話ではない。
SCPIにはEthernet-TCP/IP環境での接続プロコトルを標準化して欲しい。
馬鹿高GPIBバスはもういらん。
46 :
名無しさん@1周年 :01/12/30 02:39 ID:mxSI1zob
47 :
名無しさん@1周年 :02/01/12 18:46 ID:+ROSZPug
48 :
名無しさん@1周年 :02/01/12 23:06 ID:6GM5OKie
49 :
名無しさん@1周年 :02/01/13 13:27 ID:6jD4PrZZ
>>48 PCIのGPIBが3万円くらいで買える...
N.IのPCI-GPIBボードは、10万近かったと思うが何でこんなに価格差がでるんだ?
50 :
名無しさん@1周年 :02/01/13 22:58 ID:4DeUddeR
IGBTなら使ってます。
51 :
48 :02/01/13 23:50 ID:BgFdN9UH
・数が出るものではない。 ・各社のGPIBカードで互換性がない。 (NI用に書いたプログラムはNIのカードでしか実行できない。) ・トップシェアのNIがいい気になっている。 ではないかと。
52 :
? :02/01/14 00:36 ID:OZKLrVhV
??
53 :
名無しさん@1周年 :02/01/15 14:14 ID:k7HQIXue
CONTECやFBIの低価格品は転送速度が低かったりFIFO省略したり して能力が低い。 あと使ってるFPGAが新しくて大容量&低価格になって2chip構成から1chip になったり基板も小さくコストダウンできる。 頻繁に生データを転送する用途でなけりゃコレで充分だし、 高速化が必要ならLANにした方が良い。
54 :
名無しさん@1周年 :02/01/26 13:59 ID:mWaNLmSH
GP-IBプログラムの互換性って VISAとかSICLとかなら互換性取れますよ。 私の場合,アジレントとNI,inesで互換性取れています。 自分で、ドライバと作って互換性をとるのも手ですね。 アジレントの計測器のマニュアルを読むとISCIPIってLANによる 制御方法があったのですがこれって、簡単にGP-IB対応のプログラムを LANによる制御にうつすことができるのかな?
>>49 3万円てわけには行かないが、アジレントGPIBなら5万円くらいだぞ。
NI-VISA2.6インストールしたらあとはおんなじ。
>>54 それってVXI-11に置き換えっていう意味?
56 :
某 :02/02/28 23:02 ID:iKAT+0Re
>>53 (ぼそっ)
某FBIのボードは、安いほうでも1MB/s出るので、普通の用途では、それなりの速度は確保されてたり。
実は、GPIB程度の転送スループットを確保するとき、PCIバスならFIFOの容量が支配的でなかったり、、、、、
某Cのボードは知りませんけどね。
#FIFOの容量が支配的なら、GPIB-メインメモリのスループットがめろめろってことだったりして、、、、
ま、4MB/sとか、そう言う速度がほしいのだったら、上位互換の独自規格で突っ走る某Nのボードしかないわけですけど。
#何とつなぐの?というのは別として。
57 :
某 :02/02/28 23:07 ID:iKAT+0Re
互換性ですか。 LabViewで仮想計測機が動作するドライバーを用意してるところがいくつかありますね。 いったい、どうしてなんでしょう?
58 :
55 :02/02/28 23:33 ID:Udkka7/G
>>56 GPIBボードは、速度性能面で言えば最低ランクのものでも十分。
計測器の応答速度のほうが足引っ張ってるからね。
でも安価なボードで一番困るのはVISAライブラリに対応してない事。
>>57 それって計測器の実機がなくても仮想的に動作するって事?
だとしたらそれはきっとIVI計測器ドライバのシミュレーションモード
じゃないかな。
59 :
某 :02/02/28 23:54 ID:NheWl5vk
VISAライブラリですか。勉強になりました。 #一休の無視にもゴムのたわし。
60 :
某 :02/03/01 00:08 ID:EfvEr/Wd
しかし、最低レベルかぁ。悲しい表現ですね。 ま、一度使ってみてください。ただで貸しているとこもありますんで。
61 :
名無しさん@1周年 :02/03/01 00:26 ID:L6T1Ad0S
HS488規格に対応してる計測器なんて見た事ある?
63 :
名無しさん@1周年 :02/03/02 13:18 ID:KtqLTUcr
アジレントからもUSB-GPIBでたね
64 :
0000 :02/03/03 01:21 ID:9cDylyOu
>1 テユウカァ ツカッテナイトコロナンテアルノ?
65 :
名無しさん@1周年 :02/03/03 15:32 ID:u9mr7PtF
>>64 つうか、よくある。
計測器は値段が高いので、簡単に買い替えができない。。
10年近く使うのはザラ
計測器のIFにUSB,Ether,IEEE1394が使用されるようになったのはここ2、3年の話
現在でもUSB,Ether,IEEE1394がサポートされている計測器のほうが少ない。
RS-232Cはトロイ
よってGP-IBは現役です。
66 :
名無しさん@1周年 :02/03/03 16:42 ID:SlV/h1Wq
>>65 Ethernet端子付きは、各社増やしてきてるね。横河のDA型とか、三栄のロガーとか。
IEEE1394端子付きって、何があったっけ?
68 :
名無しさん@1周年 :02/03/06 19:28 ID:AWgIEuL5
>>66 、
>>67 どこかのロガーで、HDDとのインタフェースにSCSIでなくIEEE1394を採用したのを見た記憶が。
69 :
名無しさん@1周年 :02/03/11 20:22 ID:oGiwJk7A
>>68 いやそういう使い方じゃなくて、PCからの制御がGPIBではなく1394になってるっていうことで。
70 :
困ったちゃん :02/03/15 00:27 ID:88HR7XA6
GPIB初心者ですが参加させてください。 EXCEL_VBAでGPIB制御させるには何から準備を始めたら良いでしょうか? 現場にはLABVIEWで組んだ測定器があるのですが担当者が辞めたため 私的には慣れたVBA化にしたいんです。
71 :
名無しさん@1周年 :02/03/15 01:15 ID:oNr4/wSF
>>70 GP-IBカードと測定器の機種を教えていただけますでしょうか?
アジレントだと測定器が対応していればIntuiLinkって便利なソフトがって
Excelとかから制御しやすいですよ
72 :
困ったちゃん :02/03/15 01:38 ID:88HR7XA6
>>71 さん
どもです。
確か
測定器
ソニーテクトロニクス370A
GPIB-ボード
ナショナルインスツルメンツ
だったと思います、明日会社で確認してみます。
アジレントのマルチメーターもあるのでそういえば添付CDの中に
IntuiLinkってEXCELアドオン有りましたね。
参考にしようとコード見ようとしたんですがさすがに駄目でした(笑
73 :
名無しさん@1周年 :02/03/16 14:09 ID:ljw7ESpH
>>70 EXCEL_VBAでGPIB等通信制御VBA文の自作経験は、どの程度あるのでしょうか。
GPIB通信方面では、VBAでなくVBそのものを使うのが、通常だた思うのですが。
また、LabVIEWからVBA又はVBへの移行は、英語を独語に翻訳するようには
いかないとも思うのですが。
370Aは、オシロスコープの型番でしょうか?
>>71 アジレントのIntuiLinkをお使いでしたら、その使い勝手を教えて頂けませんか。
ユーザにVBA作文知識がなくとも、ExcelのWorkshetに計測値が表示収録されるのでしょうか。
用意されたダイアログボックスの選択肢から、ch指定等を択ぶだけでよいのでしょうか。
74 :
困ったちゃん :02/03/16 23:45 ID:45ChrPcS
>>73 さん
レス、サンクスです。
VBAはデータ処理・集計・グラフ作成・レポート作成用に組める程度で
機器との通信自体はこれから勉強しようと思っているのですが
やはり、需要が少ないのか良い参考書が見つかりません。
LabViewからVBAはコンバートではなく、同機能をEXCEL_VBAで再現と
考えています。
実際、LABVIEWで取り込んだデータをEXCELのシートに
取り込む作業をしているので、それなら最初からEXCELに取り込んだ方が
良いかと思いまして。
現在、下記のような方法なのですが
計測器<=>Labview(Mac)->Excel95(Mac)->Excel2000(Win)
下のようにシンプルにしたいのです。
計測器<=>Excel2000(win)
テクトロ370Aはデジタルカーブトレーサーです。
主にMOSFET、IGBTの測定に使用しています。
いまはBになってますね。
http://www.sonytek.co.jp/Products/Measurement_Prod/Semicon/370b.html >>71 >アジレントのIntuiLinkをお使いでしたら、その使い勝手を教えて頂けませんか。
71さんじゃないですが、代わりにお答えします。
PC画面上のボタンを押すだけなので誰でも間単に使用できると思います。
EXCELにIntuiLinkのツールバーが追加され、そこで機器の設定およびデータの
取得やグラフの自動生成までやってくれます。
>>74 >下のようにシンプルにしたいのです。
>計測器<=>Excel2000(win)
MACとWin機がLANで繋がってるなら、我慢できる範囲では無いでしょうか。
計測器にDDEソフトがあれば可能ですが、無いみたいですね。
結局これを買うしかなさそうです。
S9CP370AW 型370A 型用静特性測定ソフトウエア (Windows 対応版)・・・・ ¥198,000
高いね...
76 :
名無しさん@1周年 :02/03/17 09:17 ID:SdWTohV2
>>73 71です。
VBAからIntuiLinkがサポートしていない測定器を制御する方法として、
AgilentIOUtils Libraryを使うと制御できそうです。
IntuiLinkをインストールすると
C:\Program Files\Common Files\Agilent\IOLibraries
というフォルダにPDFファイルと、HLPファイルができていたので読んだところ、
ActiveXのGP-IB Utilityが含まれているみたいです。
これをつかえばNI,アジレントのカード、測定器の機種を問わず
VBAから測定器を制御できそうです。
ま、IntuiLinkがサポートしていないとSCIPIコマンドをいちいち書かないといけないみたいですが。
こちらからの質問になっていしまうのですが、
テクトロの製品ってVXI Plug&Play driverを配布しているのでしょうか?
ホームページを見てもなかったので。。
77 :
名無しさん@1周年 :02/03/29 02:37 ID:5pWvADB3
NIのボード使ってるんですけど、 タイムアウトエラーになって、 ボードステータスが -16128 になったんですけどこういうことありました? Win98のマシンでは全然問題なく使えている機械なんですけど、 Win95に繋ぐと、時々エラーが出る。 何が原因なのかもよく分からないです。
78 :
:02/04/23 00:05 ID:VLE5Z2Uw
79 :
:02/04/23 21:03 ID:7kffKE8H
GW-BASICって何だ?
あぼーん
81 :
IntuiLinkって? :02/04/26 12:30 ID:ZrVDDZHP
>>76 >IntuiLinkをインストールすると...
>NI,アジレントのカード、測定器の機種を問わずVBAから測定器を制御できそうです...
NI以外の他社機材も制御できるんでしょうか?。IntuiLinkって、単体売りソフトでなく
アジレント製機器に付属構成品の記憶あり、他社機材を制御可能とは思えないんですが?
82 :
名無しさん@1周年 :02/04/26 13:38 ID:OMgKhmMC
83 :
名無しさん@1周年 :02/04/29 11:03 ID:eHDNM86k
>>81 PSA/ESAのIntuiLinkヘルプより
You need to have an Agilent or National Instruments GP-IB card installed with drivers unless you will be using the RS-232 (COM) ports only on your PC.
IntuiLinkの実態はアジレント測定器をサポートするIVI-COMドライバと、
GP-IB,232CなどのIOをサポートするCOMドライバから成り立っているようなので、
IOをサポートするCOMドライバを使用すれば計測器をVBAから制御できると思われます。
84 :
名無しさん@1周年 :02/05/03 02:37 ID:870VGGJg
>>76 ,
>>83 EXCEL-VBAの構文で、COMドライバやN.IのGP-IBドライバを呼び出すのって、
どのように記述するんだろう?
85 :
名無しさん@1周年 :02/05/04 11:34 ID:L+RrFKQB
こっちはパナのVP-7723でパソコンにインターフェース社のGP−IBカード のっけてソフトはボーランドのC++ビルダー使ってるよ、たまに取りこぼしがあるのは ご愛敬(w
86 :
labview love :02/05/14 19:36 ID:nNDdIFfs
labview->excelって必要だろうか。 昔はやってましたが、excelは操作がたるいので、最近は全部labviewで 数値処理してグラフに出して、画面切り取ってレポートに貼り付けてる。 グラフィックはがたがただが必要十分でらくちんですよ。
87 :
名無しさん@1周年 :02/05/14 23:26 ID:SWIEgsn3
88 :
名無しさん@1周年 :02/05/15 23:41 ID:mLHymqvU
labview遅くない?
89 :
labview_love :02/05/16 01:54 ID:1OiRAt2T
labviewの動作は遅いが最近のマシンならまあOK。 プログラミングは超早い。
90 :
名無しさん@1周年 :02/05/16 22:12 ID:qEMS+ffl
>>86 >全部labviewで数値処理してグラフに出して...
は凄いですね。レポートに載せるグラフをexcelで描く理由のひとつに、以前の
測定値との重ね描きの簡便さがあるんだけど、labviewでも重ね描きはそんなに
手間じゃないってこと?。
91 :
86 :02/05/16 23:43 ID:GTtoJ1UM
>>90 labviewはプログラミング言語なのでシートに追加するという感じではなく、
プログラミングしてそれを使う。
計測プログラムではとりあえずテキストファイルにデータをセーブしておく。
指定したディレクトリの中をリストアップする関数でファイルリストを作成して
全ファイルのデータを読み込むか、
ファイルダイアログ(選択)をループしてファイルをユーザに選択させて以下同様。
そしてデータを束ねてグラフ端子につなぐ。
グラフの拡大縮小、数値表現、グリッド、線色、ポイント形はGUIがついている。
これくらいのビュープログラムだけならプログラミング時間おそらく15分以内。
あとは繰り返し使うだけ。もう少し使いやすくすることも1日あればできるでしょう。
このスレはじめてみました。 用途にもよるんだろうがExcelでデータを直接シートに書き込んだほうが labviewなんかよりもよっぽど楽だと思ってます。 計測結果取得に合わせて必要なグラフがリアルタイムで出てくるしね。 ちなみにNIのGPIBをExcelで制御してます。 やり方は会社のノウハウの問題も絡むから聞かないでね。スマソ
93 :
名無しさん@1周年 :02/05/31 10:26 ID:T7ZNexUF
>>92 >ちなみにNIのGPIBをExcelで制御してます。
>やり方は会社のノウハウの問題も絡むから聞かないでね。スマソ
横レス失礼
NIのGPボードをExcelから制御するのって大変なの?
漏れVisualBasicを2週間で捨てた身なんでVBAでの開発環境が
わからんのだけど...
Cでプログラム書いて各社ボードのライブラリ呼び出して使ってるんだけど、
NIのは高価で買った事ないのれす。
94 :
名無しさん@1周年 :02/05/31 23:17 ID:JemuNRO7
>>92 >Excelでデータを直接シートに書き込んだほうがよっぽど楽だ...
同感なんです。
>NIのGPIBをExcelで制御してます。やり方は...聞かないでね。
でも聞きたい。計測器からExcelセルへ逐次OLE転送する通信文法を。
RS232通信の場合のMscomm32.ocxに相当するGP-IB通信文法なんですが、
どうすれば通信制御できるんですか。その部分を社内作成されたんですね。
NI提供のNI.488ドライバを、VBAプロシージャ中でどう読み込むのですか。
>>93 NIのGPIB.DLLを呼び出すだけなんで、そんなに大変じゃないと思いますよ。
VisualBasic自体の問題点はいろいろ指摘されていると思いますが、それを
差し引いてもExcelで直接制御してデータをシートにリアルタイムで書き込
めるのは魅力的だと思います。
95です。 94さんと投稿時間がかぶってますね。^^; で、やり方については・・・とりあえずがんばれと言うしかないかな。 私はやり始めたころはプログラムほぼ知識ゼロからスタートしたんで結構 苦労したけど、93さんみたいなプログラム通の人がやれば結構簡単にでき ちゃうんじゃないでしょうか。 以上、健闘を祈る。
97 :
名無しさん@1周年 :02/06/01 00:06 ID:N76ARBU6
>>95 ,
>>96 >GPIB.DLLを呼び出すだけなんで...大変じゃない...
非プログラム通に私には、使うべきVBAメソッド文自体が、見当がつかないのです。
それとも、VBA既製メソッドじゃなく、その呼び名のみ知るAPI文の領域なのかなあ。
98 :
93 :02/06/01 15:22 ID:BFYwaM6M
情報どーもです。 GP-IBボードって最近はFBIかコンテックしか使った事ないけど、 他にはNI,アジレント,ケースレーとかなのかな? A/DやPIO等の他のボードがあると同じメーカで揃えたいけど、 混載して使ってる人っている? コンテックのGPドライバの前バージョンで例外出された時は焦った...
99 :
名無しさん@1周年 :02/06/01 17:09 ID:aNo3/REF
ExcelでのGPIBの制御方法
NI,Agilent限定ですが、AgilentのIntuiLinkをホームページ
http://www.agilent.com/find/intuilink ->Softweare,Firmware and Drivers
よりダウンロードしてインストールする
(対応測定器はどれでもかまわない
VBAエディタで
C:\Program Files\Common Files\Agilent\IOLibraries\AgtIOUtils.dll
を参照設定する。
次にヘルプファイル
C:\Program Files\Common Files\Agilent\IOLibraries\AgtIOUtils.hlp
のGetting Startedv with Agilent I/O Utilities->VB Exampleを
参考にしてプログラミングするとよい。
100 :
名無しさん@1周年 :02/06/01 18:08 ID:mlWU/gvj
>>99 >対応測定器はどれでもかまわない
NI製GP-IBカードとの組合わせであれば、横河等の国内各社のどの計測器とも
通信可能という意味で合ってますか。
101 :
名無しさん@1周年 :02/06/01 22:43 ID:aNo3/REF
>>100 99です。
IntuiLinkはアジレントのスペアナ、オシロ、SGみたいに分かれているが
まあ、適当に選んでインストールしてください。という意味です。
使用するのは各IntuiLinkが共通で使用していると思われる
GPIBに関するDLL(COM)を利用させてもらおうという方法です。
で、NI製GP-IBカードとの組合わせであれば、横河等の国内各社のどの計測器とも
通信可能か?という意味合いではGPIBの部分のDLLを使用するだけなら可能みたいです。
NI,アジレントともにこの方法はサポートしないと思いますが。。
IntuiLinkの概念はこんなかんじなのかな?
Excel, Word
---------------------------------------------
アジレントの各測定器に対応するDLL
---------------------------------------------
GPIBに関するDLL <--------この部分を利用する
---------------------------------------------
NIのGPIBに関するDLL | AgielntのGPIBに関するDLL
102 :
名無しさん@1周年 :02/07/11 21:12 ID:VhFLDt2l
GPIB機器の弱点って
同じ種類の測定器間でもコマンドに違いがあって使いにくく
VXI Plug&Playドライバも互換性に乏しいと思っていたのですが、
IVIなるドライバの規格団体があることを発見。
IVI Foundation
http://www.ivifoundation.org/ で、IVIのドライバって実際にあるかと調べたけどあんまり見当たらない。
メーカは古い測定器とかの対応なんかしてくれそうにもないし。。
103 :
名無しさん@1周年 :02/07/13 23:58 ID:sWJp+1dJ
labview 何て呼んでます? 「らぶびゅー」なのか「らぼびゅー」なのか どうなのよ。
ラブユー東京
105 :
名無しさん@1周年 :02/07/19 12:15 ID:KTNmtwAv
106 :
名無しさん@1周年 :02/08/01 18:01 ID:hMxTyyNV
>>26 GetTickCount ではなく Sleep では駄目なの?
107 :
名無しさん@1周年 :02/09/11 12:56 ID:WXRdCJrw
NI社かぁ・・・サポートが最悪だったよ。 間違い教えられたし、HELPファイルが間違ってたし。
108 :
名無しさん@1周年 :02/10/06 16:21 ID:3GVWUK73
AgilentのVEEってどうなのかな? NIのLabViewの方がメジャーなのは知っていますが、 LabViewに対しての長所って何かあるのかな?
109 :
名無しさん@1周年 :02/10/06 16:49 ID:neuFWZS7
英語が達者なら、ラブビューだろ・・・ ブはラブのブではなく、Bのブだろうが。ウ”か? ラボビューって言い張る奴いたけど、英語できんのではないかと。
あぼーん
111 :
名無しさん@1周年 :02/10/09 02:19 ID:410TN5cx
らぼびゅーだよ。
112 :
名無しさん@1周年 :02/10/21 15:11 ID:C3EHB9Fq
BASICで実験プログラムを走らせていた時はGP−IBを使っていましたが、今はエクセルのVBAを使って計測してるのでRS−232Cを使っています。
113 :
名無しさん@1周年 :02/10/21 23:49 ID:29Yzmib3
>>112 >エクセルのVBAを使って計測してるのでRS−232Cを...
VBでなくVBAってことは、Active-Xでなく、API文利用の方ですね。
トランジスタ技術の1996.6月号のExcel5.0用RS232通信API文を、写したけど
さっぱり動かない。Win95or98+Excel97環境でのRS232通信API文例の載った
サイトなり書籍をご存知ないでしょうか。
114 :
名無しさん@1周年 :02/10/21 23:51 ID:JDodhYwf
115 :
名無しさん@1周年 :02/10/23 13:29 ID:9zj+wP81
GPIBプログラムでわかりやすい、例文とかあるHPあったらおしえてください。 簡単な正弦波を取り込むだけとかでいいので
116 :
名無しさん@1周年 :02/10/23 23:42 ID:HoHTGAl6
>>115 GPIBプログラムってのが意味不明瞭ですが、例文云々とあるので例文を応用自作目的だと
察すると、使用言語ソフトを提示してくれぬとね。
例えばVBなのか、LabVIEWなのかね。もっとも正弦波形受信表示だけなら、GPIBカード付属の
おまけソフトそのまま使うのが、楽と思うが。
117 :
名無しさん@1周年 :02/10/24 01:24 ID:pMyqgVDH
>>113 VBAならActiveXをつかえるよ。ってAPIよりActiveXの方を利用するのが普通と思うが。。
118 :
名無しさん@1周年 :02/10/24 23:14 ID:FhqjqXES
>>117 VBAならつかえるActiveXって、VBに含有のMscomm32.ocxが代表例だろうけど、
実質1万円をきってるExcelへ、Mscomm32.ocxの為に、10万円近いVB6.0を買うのは、
普通じゃないと思うのですが。
119 :
名無しさん@1周年 :02/10/25 21:23 ID:8jrkemR9
>>118 VB6ランタイムのインストーラとかをつかえないかな?
MSCOMM32.OCXも入っているのがありそうだが。。
120 :
名無しさん@1周年 :02/10/27 23:33 ID:+VAnhmjB
121 :
113 :02/10/28 22:49 ID:C+o01niI
>トランジスタ技術の1996.6月号のExcel5.0用RS232通信API文... トランジスタ技術の1995.2月号の誤記でした。 「表計算ソフトによる測定データの処理技術」のP309でした。
122 :
名無しさん@1周年 :02/10/30 16:17 ID:FEz/pzAl
CONTEC製のGPIBボード(今の型)使ってる人っています? 現在オシロスコープはhpのやつなんだけど どうもサンプルプログラムがうまく機能しません。 データ読み取れません。 あれって他社のオシロだとやっぱプログラム修正しないといけないの? サンプルはソニーエレクトロ向けに作ってありますと書いてあったけど。 タイムアウトエラーで読み取れない。(GPIBエラーではないので接続はOKのはずだが)
123 :
名無しさん@1周年 :02/10/31 01:26 ID:0zqNFNVY
>>122 修正しないといけないです。。
って、テクトロとhp間でコマンドおよび測定器から取得する
データの形式に互換性はないので最初から作り直したほうがいい。。
hpのオシロのマニュアルにサンプルコードがあると思うけど、
これはhpのGPIBカードとSICLかVISAとかで
HP-BasicかC言語をを前提としているので参考にならない。
私はhp製の測定器のマニュアルのサンプルコードに頼りたかったので
Agilent製のカードを購入しました。。
124 :
名無しさん@1周年 :02/10/31 09:55 ID:rQ+z57Nh
>>123 え、そそんな・・
そんな最初から作る能力ないですよ・・
ああああ・・
*OPC? とかの動作で引っかかってたりして... 各SCPIコマンド間に適当な待ち時間入れて、毎回戻り値を確認して行く 地道な努力が望まれます。
VEEはVer5.0しか使ったことないけど VEEって慣れるまで大変 今までの言語とは全く異質な感じ なんかパターンエディタ使っているような感覚がする でも慣れると面白い 初めて制御ソフト使う人にとっては逆に覚えやすいかも
127 :
122 :02/10/31 13:29 ID:rQ+z57Nh
えーっと用はテクトロ用送信受信コマンド
たぶん
Ret=GpTalk(Cmd,Srlen,srBuffer);
とかの()内のがいわゆるテクトロオシロ用コマンドなんですよね?
ここをhpオシロのコマンドに換えれば動くと思います??
ちなみに
>>123 さんのマニュアルにあるコマンド表は使い物にならないってのが
きになるのですが。MFCのダイアログボックスかSDI窓で動くものを
作りたいのですが。 どっかのサイトにhpオシロGPIBコマンドの
VCとか用の表とかってありますかね。C言語対応でもMFCじゃダメ?
128 :
名無しさん@1周年 :02/11/01 00:39 ID:GPJiQHVx
>>127 123です。。
どうもGPIBで制御するのは初めてのようですね。
コンテックのカードは価格で選ばれたのでしょうか?
計測器の使用経験についても浅いとお見受けしたのですが。。
>Ret=GpTalk(Cmd,Srlen,srBuffer);
コンテックのカードは知らないのですが、()内のCmdがGPIBコマンドっぽさそうですね。
>ちなみに
>>123 さんのマニュアルにあるコマンド表は使い物にならないってのがきになるのですが。
マニュアルのGPIBのコマンド表は役に立ちます。
ただし、サンプルコードをそのまま使えないという意味でして。
(送る手順とかは参考になりますけど)
誤解されているようですがGPIBの機器にVC用の表といったものはありません。
GPIBのコマンドのリファレンスがありますが。。
ですが、GPIBの機器ってメーカー間でコマンドが統一されているとか、
手順が同じになっているとかというわけではないので移植には労力を必要としますよ。
129 :
127 :02/11/05 11:47 ID:P4NMlr91
たとえば超簡単な初期化するだけってプログラムはどうなりますか? DOS窓でもいいので
130 :
mmm :02/11/05 16:12 ID:bwnYH+N0
131 :
127 :02/11/05 17:43 ID:ZLjSI6Ae
なんというかオバカ質問ですいません。ほんと無知すぎですよね。 もし、親切な人いたら怒らずに教えてください。 単純に*CLS初期化コマンド。を送るだけというDOS窓のプログラム 作りたい時って。 #include <stdio.h> int main (void) { マニュアルの初期化文 Ret = 〜〜とかって2,3行のやつ return (0); } と思ってたけど、こんだけで動かないですよね。どうしたらいいんだろう・・ かなりバカですいません・・
132 :
無責任。 :02/11/05 18:51 ID:nJMz4SS8
#機械屋だけどちょっとGPIB周りは興味があるのでサボり。
#GPIB使ったこと無いんだけど(ゲラゲラ、ま、識者が出てくるまでの繋ぎにでも。
>>131 調べてみたらGpIni、GpIfc、GpDcl、GpRenっつー順番に
打っていかんとあかんのちゃうけ?で、やることやったらGpExit。
そこらへん打ってRet見るところから始められたらどうでっしゃろ?
133 :
127 :02/11/05 21:03 ID:H4OzVQQn
>>132 ほうほう。順番あったのか。やってみます
134 :
127 :02/11/06 15:34 ID:ZvDOP9RN
char Srbuf[10]; Cmd[0]=1; Cmd[1]=7; Cmd[2]=1; Cmd[3]=1; lstrcpy((char*)Srbuf,":CHAN1:PROBE X10"); Srlen = lstrlen((char*)Srbuf); Ret=GpTalk(Cmd,Srlen,Srbuf); たとえばプローブを10にする命令を送信するだけというもの。 これをポンといれただけでは当然のごときGpTalkが定義されていないエラーがでる。 なんか頭にインクルードとかつけるんですかね。
135 :
127 :02/11/06 16:19 ID:ZvDOP9RN
すいません
>>134 のわすれてください。
サンプルのGPIBAC.Hってのをコピペしたら解決しました
が・・
今度は、コンパイルは完結するのですが、次のとこで↓のようにエラります。原因わかりますでしょうか。
リンク中...
gpibsdiView.obj : error LNK2001: 外部シンボル "_GpExit@0" は未解決です
gpibsdiView.obj : error LNK2001: 外部シンボル "_GpTalkEx@12" は未解決です
gpibsdiView.obj : error LNK2001: 外部シンボル "_GpRen@0" は未解決です
gpibsdiView.obj : error LNK2001: 外部シンボル "_GpDcl@0" は未解決です
gpibsdiView.obj : error LNK2001: 外部シンボル "_GpCcls@4" は未解決です
gpibsdiView.obj : error LNK2001: 外部シンボル "_GpIfc@4" は未解決です
gpibsdiView.obj : error LNK2001: 外部シンボル "_GpCrst@4" は未解決です
gpibsdiView.obj : error LNK2001: 外部シンボル "_GpIni@0" は未解決です
Debug/gpibsdi.exe : fatal error LNK1120: 外部参照 8 が未解決です。
link.exe の実行エラー
gpibsdi.exe - エラー 9、警告 0
ちなみにMFCのSDI形式です。
136 :
無責任132 :02/11/06 18:09 ID:JG1wvoDP
>>135 おー、タコってるな(w。ちょっとサンプルをダウンロードしてみた。
VC6なら[プロジェクト][設定]で[リンク]の[カテゴリ]を「インプット」にして、
ライブラリモジュールにApiGpBc1.libとApiGpib1.libを追加、追加ライブラリパスに
そいつらまでのパスを与えてみ。
ちなみに、
>>132 で書いた初期化等はSubFunc.cのGpibInit()/GpibExit()呼んだほうがよさげね。
GpDcl()なんて呼んでないし、なんかチョロチョロやってるし。
137 :
136 :02/11/06 18:21 ID:JG1wvoDP
>>135 訂正。Readme読んだら
ApiGpib1.lib Visual C++用
ApiGpBc1.lib Borland C++用
だ。ApiGpib1.libだけでいい。
あと、プロジェクトワークスペースのFileView、ソースファイルフォルダを
右クリック→ファイルをフォルダへ追加、でApiGpib1.libを追加することもできるのな。
今知った。まあ俺は滅多にプログラムしねえし許せ(ゲラゲラ
おーなんかすごい親切に! ありがとう!!
139 :
127 :02/11/07 10:18 ID:XRwytx31
>>137 よっしゃ。マジありがとー!です!。
できました。
完全にいきづまってたんだよ。
てか、なんで本業じゃないのにこんなスラスラできるんだー。すごい。
SEですか?いやほんとありがと
∧,,∧
>>139 よ、おめでとう。
ミ 彡 もう君に教えられることは何もない。自分で歩いていきたまえ。
(ミ ミ) ただ、最後に1つ、教訓を伝えさせてくれ。
ミ ミ 「ソースコードが1万行を越えたら、自分の胸に手を当てて、目的が何か思い出せ」
∪ ∪ 健康に悪いからな。アディオス。
141 :
名無しさん@1周年 :02/11/07 23:33 ID:NDFFQ4ha
HT-Basicをまだ使用し続けている人っている? 昔のコードを保守するのではなくて新規開発とかで。。 上の1万行じゃないけど HT-Basicの6万行のコードを見たときはさすがに 頭がクラクラしました。
142 :
名無しさん@1周年 :02/11/08 01:44 ID:qfoknVPX
GPIB使ってみたいけど、NI製の高すぎる。 自腹にはきつ過ぎる。 皆さん主に何を計測しているのですか?
143 :
名無しさん@1周年 :02/11/08 02:11 ID:7vjQBSJo
>>142 個人でGPIBを持ちたいとは思わないなぁ
何か計測器を個人でお持ちなのですか?
144 :
名無しさん@1周年 :02/11/09 22:16 ID:uEJbAw7G
個人で測定するのなら作業効率なんて関係ないし あまりGPIBのメリットないよね 役に立つのはプロットアウトくらいかな・・(これも手で出来るか・・) 仕事だと、機種によって設定を変更したり、自動測定したり いろいろ高速で出来るし、測定器が使えない人も作業ができたり、 無人化も出来る。
146 :
142 :02/11/10 21:03 ID:+WzwdoH/
142です。 電子工作が好きな学生です。 電源の波形などをオシロで計測を計測していたのですが ふとオシロに付いているGPIBがどんなものか気になり 質問したしだいです。 今一特性が分からず、シリアルとの差がどの程度 あるのか、なぜこんなに高価なのか不思議でしたので。 >仕事だと、機種によって設定を変更したり、自動測定したり >いろいろ高速で出来るし、測定器が使えない人も作業ができたり、 >無人化も出来る。 145さんが言われている見ると、、、今は私にはいらないかも、、、。 ありがとうございました
147 :
名無しさん@1周年 :02/11/12 00:03 ID:r0okEPhp
>>146 個人もちのオシロ1台ならシリアルで十分ですね。
GPIBの利点ってシリアルと比べれればありますが、
他のインターフェースが進歩しているので現在では
過去の遺産を引き継ぐためってところが多いね。。
個人的には安価で汎用性があるUSB、IEEE1394,Ether等に移ってもらいたいですね。
これらを測定器のI/Oに適応する規格はあるそうだが新製品においてもあまり見受けない。。
なぜだろう??
148 :
名無しさん@1周年 :02/11/12 23:19 ID:Zaucq+tQ
149 :
名無しさん@1周年 :02/11/13 16:00 ID:+7KHFuHK
質問です。GPIB(CONTEC)のプログラムを作成しているのですが、 コマンド送信してオシロを操作するってのはできます。 でも受信したいのですが、タイムアウトエラーとなりどうしても じゅしんできません。タイムアウトの時間設定が短過ぎるのかなと思い 長めにしてみましたが無駄でした。どっかほかのところが原因のようです。 だれかわかりますでしょうか。
150 :
名無しさん@1周年 :02/11/13 16:34 ID:+7KHFuHK
あ、オシロはhp製です。
151 :
名無しさん@1周年 :02/11/13 22:36 ID:ejydYxnT
152 :
名無しさん@1周年 :02/11/14 01:32 ID:gxIxnECn
>>147 agilentのめがずーむぐらいのメモリーあると、到底シリアルで送る気しなくなるよ。
なんてったて、シリアルだと10分とかかかるからねえ。
>>149 まず、お城の画面にエラーが出ていないかを確認。
受信したいと言うことだから、当然○○?ってコマンド送ってるよねえ?
あと、お城のとーくんと、りーすんはちゃんと設定されてる?
153 :
名無しさん@1周年 :02/11/14 09:39 ID:eZ8yUsMr
てかコンテックならドライバーと一緒にインストールされる GP-IB動作確認ソフトで確認すれば? 自動で*IDN?コマンドの戻り値とかチェックしてくれるけど SCPI以前の機種じゃなければ、これだけでもいいんじゃない?
154 :
名無しさん@1周年 :02/11/14 11:57 ID:6cttvpBg
デリミタってのがいまいちわかんないのですが、 プログラムの方ではCR+LFってのに指定しています。 これってオシロ側でもなにか設定が必要なのですか?
155 :
名無しさん@1周年 :02/11/14 12:21 ID:eZ8yUsMr
>>154 機種によるでしょう
あとはオシロの取説を読んでね
取説なくて設定方法がわかんないなら、全ての組み合わせを試してみれば?
156 :
名無しさん@1周年 :02/11/14 15:19 ID:6cttvpBg
VC++で、 サンプルソフトをビルドしようとすると LINK : fatal error LNK1104: ファイル "nafxcwd.lib" を開けません。 link.exe の実行エラー Oscillo.exe - エラー 1、警告 0 とでて、できません。原因わかりますでしょうか。
157 :
149 :02/11/14 16:44 ID:6cttvpBg
>>149 です。どうしてもタイムアウトになります。
ちなみにコマンドエラーではないようです。送信はもう確実にできます。
一応受信部分のソースかいておきます。 どうなんでしょうかこれ。(MFCでつくってます)
/****クウェリ***/
Adr=7;
Srlen=256;
/* きゅ〜*/
Ret = GpQidn(Adr,&Srlen,Srbuf);
UpdateData(FALSE);
/*データの受信*/
UpdateData(FALSE);
Cmd[0]=1;
Cmd[1]=7;
Srlen=256;
Srlen = sizeof(Srbuf);
Ret=GpListenEx(Cmd,&Srlen,Srbuf);
UpdateData(FALSE);
ちょっといま家なんで忘れちゃったけど ↑に書いてないけど送信トークのところで、オシロの製品番号をくれって *なんとか?コマンドおくってあります。 いわゆる、*●●?のPCからオシロに「PCにデータをください」の命令がうまくいってないのか。 (でもサンプルソフトで、そのやつたったら受信できたんだよな) 要求はいってて、オシロも発信したけどPCにくる途中でつまってるのか・・
159 :
名無しさん@1周年 :02/11/15 00:16 ID:bj97/M7d
NIとアジ以外のGP-IB IF使ったこと無いからよくわからんけど、 お城がシステムコントローラーになっている気がする。 とりあえず、今までの経験から言わせてもらうと、NI以外のIFは コントローラでないと思ったほうがよい。
>>157 >Ret = GpQidn(Adr,&Srlen,Srbuf);
1.Retの戻り値は正しいの?
2.GpQidnで読んだSrbufの文字列は?
3.その後にTalkしていないのに、Listenしているのはなぜ?
(ここで*IDN?の受信を期待しているとか?)
161 :
149 :02/11/15 10:12 ID:+xKiYuj9
>>160 そのへんプンプン臭います。やってみます。
162 :
名無しさん@1周年 :02/11/15 14:20 ID:+xKiYuj9
Query UNTERMINATED という表示がオシロにでます。これってつまりは クウェリ命令がきてないのでそっち(PC)に発信できねーよ って意味ですよね。 すなわちクウェリ(たとえば*IDN?)がオシロに伝わってないってこと? ここで詰ってるのかな・・ たしかにTalkで送ってるはずなんだけど・・ サンプルソフトだとうまくいくのになあ。 Ret= ~~ Ret=~~っていろいろなTalk命令で使ってるけどこれがだめなのかな。
163 :
名無しさん@1周年 :02/11/15 15:07 ID:+xKiYuj9
たとえばこういった状態になってます。これってRetのところで毎回送信してるの?同じ変数でだいじょうぶ? /*********データの送信**************/ BYTE Srbuf[256]; Cmd[0]=2; Cmd[1]=7; lstrcpy((char*)Srbuf,":AUToscale"); /*送信コマンド*/ Srlen = lstrlen((char*)Srbuf); /*コマンドの文字数*/ Ret = GpTalkEx(Cmd,&Srlen,Srbuf); lstrcpy((char*)Srbuf,":DIGITIZE CHANNEL1"); Srlen = lstrlen((char*)Srbuf); Ret = GpTalkEx(Cmd,&Srlen,Srbuf); lstrcpy((char*)Srbuf,":CHAN1:PROBE X10"); Srlen = lstrlen((char*)Srbuf); Ret = GpTalkEx(Cmd,&Srlen,Srbuf);
164 :
名無しさん@1周年 :02/11/15 15:38 ID:+xKiYuj9
UpdateData(true); ってのが関係あるかもしれないですが、どうですか?
165 :
名無しさん@1周年 :02/11/15 15:48 ID:+xKiYuj9
あ、たった今意味はわからないものの ture,falseをRetの間に入れてみたら一応受信はしました。 ただ以前オシロにQuery UNTERMINATED は表示されます。まだどっかおかしい。
166 :
名無しさん@1周年 :02/11/15 16:04 ID:ylU24v8K
167 :
名無しさん@1周年 :02/11/20 14:24 ID:ZxEriwBP
HP社のオシロってまさかIEE488.2規格じゃないとか?? どうだっけ?
168 :
名無しさん@1周年 :02/11/20 14:42 ID:JCBtAC16
12Vじゃ感電はしませんよ。 だめだこりゃー。
169 :
名無しさん@1周年 :02/11/20 14:43 ID:JCBtAC16
誤爆すまソ
170 :
ヘルプ :02/11/20 16:40 ID:ZxEriwBP
ヘルプです。GPIBでプログラム してみたのですが、受信がうまくいきません。 送信関係はALLOKのはずです。オシロにエラーメッセージでてませんし。 〜〜?のクウェリもいっているはずです。ただ受信ができずPC側では タイムアウトとでます。なぜでしょうか
171 :
名無しさん@1周年 :02/11/21 18:18 ID:OMdcQ+Tp
GpListenEx(Cmd,&Srlen,Srbuf); てのが、受信じゃないの??ダメ?
172 :
名無しさん@1周年 :02/11/22 01:31 ID:HBKxggpW
LabWindows/CVIユーザーです。 NIのGPIBカードを使うときは、何も気にせず プログラミングすればいいのですが、 他社のカードを使う場合どおすればいいのでしょうか? VEEユーザーがいて、そいつのマシンにはHPのGPIBが 刺さっています。 ご存知のように、VEEだと猿レベルの単純な制御しかできないので、 複雑な制御をするために、CVIで作ったアプリを導入しようとしたのですが、 動きませんでした。(あたりまえか)。 あと、CONTECユーザーもいます。 開発に時間をかけてられなかったので、NOTE PCとNI−GPIBを与えて、 高度な制御はそのPCに入れたCVIでやってもらってます。 時間に余裕ができたら直してあげようかと思いますが、 すでに方法をご存知の方がいらっしゃいましたら御教授願います。
173 :
名無しさん@1周年 :02/11/22 15:11 ID:+48THI51
えーと受信には成功したのですが、周波数を読み取りたいんですけど わけのわからない数字の羅列が出ます。 これってなにか変換しないといけないんでしたっけ??
174 :
名無しさん@1周年 :02/11/23 00:43 ID:N5IX71aH
>>172 Labwindow/CVIは詳しくないのですが、
Labwindows/CVIがVISAを使用してGP-IBを制御しているのならば、
VISAを変更すればいいんじゃないのかな。
たしか、アジレントのAgilent Developer Networkってのに
NI-VISAとAgilent-VISAを入れ替える方法が記載されていたはず。。
これでアジレントのカードでLabwindow/CVIを使えると思いますよ。
Contecは無理っぽいね。
175 :
172 :02/11/23 23:31 ID:5r+jldLB
>>174 確かに、できそうですね。ありがとうございます。
176 :
名無しさん@1周年 :02/11/26 15:36 ID:Wmf0D7yI
GpListenEx(Cmd,&Srlen,Srbuf); で受信したデータ(周波数1.232kHz)を表示したい。 Srbufを単純に表示してもどうも変です。全然関係ない数字がでます。 ちなみに受信は確実に行われているはずです。 どうやって1.232kHzと表示させればいいのでしょうか。 なにか変換作業が必要なのですか?
177 :
名無しさん@1周年 :02/11/29 16:25 ID:oK/avP/l
atof使えばできる。 ところで、波形データをオシロから取り込むと 「#80004000120121211110110101111111100」みたいな ものすごい文字列受信しますが、これを一体どうしたらグラフ化できるの? まずはなにか数値になおす必要があると思うけど検討がつかん。
178 :
名無しさん@1周年 :02/12/02 00:08 ID:9y/MbOE9
>>177 >ところで、波形データをオシロから取り込むと
>「#80004000120121211110110101111111100」みたいな
>ものすごい文字列受信しますが、これを一体どうしたらグラフ化できるの?
最初の #8 は、「次の8文字が波形データのバイト数(10進)を表します。」ということ。
すなわち、「この波形データは4000バイトから構成される」ということを言ってます。
事前に、波形データの転送形式が1byteなのか、2byte(1word)なのかを調べ、
2byteなら、LSBまたはMSBのどっち側のバイトが先に転送されるのかを把握しておきます。
LSBの方のバイトが先なら、4000バイトのデータをそのままunsigned short int にキャストして
しまえばいいし、逆なら、奇数と偶数のバイトを入れ替えればいいでしょう。
その後、オシロのマニュアルに書いてあるとおりの変換式を使って
電圧データに直しておしまい。
179 :
名無しさん@1周年 :02/12/03 18:44 ID:UZSd5t1U
>>178 どもです。
なんだか難しい・・ サンプルのようなものあればいいけど(付属のはゴチャゴチャしすぎてダメ)
あと、↑の波形データ受信はできるんだけどデータ領域オーバーになりますね。これもどうしたらいいのやら。
そういえば自分でやってて今思ったんだけど、オシロの画面波形をPCに表示させるのって意味ないんじゃ・・
本体についてるハードコピー昨日つかえばいいのだし。
目的としては 入力いくつのとき出力いくつ、の作業自動化と結果数値一覧をグラフにするってのだよね?
180 :
名無しさん@1周年 :02/12/03 18:52 ID:UZSd5t1U
もうストレスで変になりそうだ・・ 困った卒研だ・・こんな私をヒマな技術者さん助けてください。 これから末期にかけて、いろいろ質問すると思うのでこのスレチェックしてくださいね。 ものすごい勢いで答えてくれると助かります。 教授のスーパー頭脳の目線と常識で、バカな一般人の俺に「べつに難しくないよ」っていわれてもなー・・
182 :
名無しさん@1周年 :02/12/03 23:09 ID:UZSd5t1U
じゃあ親切な技術者さんw
183 :
名無しさん@1周年 :02/12/04 00:16 ID:/hqYVJza
179は、どのメーカーのオシロを使っているのでしょう? Tektronixか、Agilent(旧HP)か? メーカーによって、preambleが違います。 まさか、YOKOGAWAなんて使ってないでしょうね。 それじゃ答えてくれる人、めったにいないと思いますよ。 波形取り込むだけなら、メーカーが専用のソフトを出してたと 思ったんだけど、あれって有償でしたっけ?。 あとTDSだと、内部形式でフロッピーに落として、テクトロの サイトからダウンロードできるcnvrtwfm.exeをDOS窓で使うことで、 csvに変換できます。 とりあえず実験を進めておきたいのであれば、それもひとつの手かと。
184 :
学生◇Gakusei :02/12/04 10:05 ID:lqn4o0zq
コテハンにしました。 まとめ オシロ:HP ボード:コンテックの新しいやつ 製作:VC++MFC形式で作ってます。 現在上記のように周波数、波形の数字羅列(バイナリ?)の取り込みまでは完成しております。 なんとか私をみなの力で卒業させてください。基本的に私はバカですトンチンカン質問などあったらすいません。
185 :
波形取り込みサンプル :02/12/04 23:18 ID:/hqYVJza
オシロはAgilentのInfiniiumか、テクトロのTDSを想定しています。 ボードとGPIBライブラリはは、NI製を想定しました。 古いHPのオシロだと、":waveform:byteorder lsbfirst"あたりが認識されないかも。 その場合は、波形読み込みの後にバイトオーダーの入れ替えが必要です。 NIのライブラリで、STOPendとは、EOI信号を受信したときに読み込みを終了するという意味です。 ご自分の環境に合わせて書き換えてください。 以下、見づらいですが、ご勘弁を。先ずは前半部分。 #include <stdio.h> #include <stdlib.h> #include <stdarg.h> #include <string.h> #include <gpib.h> #define IB_BUF 512 static char ib_buf[IB_BUF]; void gprintf (Addr4882_t addr, char *format, ...) {long len;va_list args;va_start (args, format);vsprintf (ib_buf, format, args);va_end (args); len = (long) strlen (ib_buf);Send (0, addr, ib_buf, len, NLend);} char *ggets (Addr4882_t addr){Receive (0, addr, ib_buf, IB_BUF, STOPend); ib_buf[ibcnt] = '\0';if (ib_buf[ibcnt - 1] == '\n'){ib_buf[ibcnt - 1] = '\0';}return ib_buf;} double gqueval (Addr4882_t addr, char *format, ...){long len;va_list args;va_start (args, format); vsprintf (ib_buf, format, args);va_end (args);len = (long) strlen (ib_buf); Send (0, addr, ib_buf, len, NLend);return atof (ggets (addr));}
186 :
波形取り込みサンプル :02/12/04 23:22 ID:/hqYVJza
その2。 /*Memo : time[sec] = [(data point index - xref)*xinc]+xorg*/ void getwaveform (Addr4882_t osc, int channel, double *waveform) {int i, num_of_digit;char prebuf[16], *wavebuf;short *pshortwave;long num_of_byte, wavepoints; double xinc, xorg, xref, yinc, yorg, yref;/* HP */wavepoints = gqueval (osc, ":waveform:points?"); /* TDS *//*wavepoints = gqueval (osc, ":WFMP:CH%d:NR_P?", channel); gprintf (osc, "data:start 1");gprintf (osc, "data:stop %d", wavepoints); */wavebuf = calloc (wavepoints + 1, 2);/* HP */gprintf (osc, ":waveform:source channel%d", channel); xinc = gqueval (osc, ":waveform:xincrement?");xorg = gqueval (osc, ":waveform:xorigin?"); xref = gqueval (osc, ":waveform:xreference?");yinc = gqueval (osc, ":waveform:yincrement?"); yorg = gqueval (osc, ":waveform:yorigin?");yref = gqueval (osc, ":waveform:yreference?"); gprintf (osc, ":waveform:data?");/* TDS *//*gprintf (osc, ":DAT:SOU CH%d", channel); xinc = gqueval (osc, ":WFMP:CH%d:XIN?", channel);xorg = 0; xref = gqueval (osc, ":WFMP:CH%d:PT_O?", channel);yinc = gqueval (osc, ":WFMP:CH%d:YMU?", channel); yorg = gqueval (osc, ":WFMP:CH%d:YZE?", channel);yref = gqueval (osc, ":WFMP:CH%d:YOF?", channel); gprintf (osc, ":CURVE?");*/Receive (0, osc, prebuf, 1, STOPend);/* skip first '#' */ Receive (0, osc, prebuf, 1, STOPend);/* read number of digit */prebuf[1] = '\0';num_of_digit = atoi (prebuf); /* read number of byte */Receive (0, osc, prebuf, num_of_digit, STOPend);prebuf[num_of_digit] = '\0'; num_of_byte = atol (prebuf);Receive (0, osc, wavebuf, num_of_byte + 2, STOPend);
187 :
波形取り込みサンプル :02/12/04 23:23 ID:/hqYVJza
長くてごめん。これで最後。 /* MSB 1st の時は、この間にバイトオーダーを入れ替えておく */ pshortwave = (short *)wavebuf;for (i = 0; i < wavepoints; i++) {waveform[i] = (pshortwave[i] - yref) * yinc + yorg;}free (wavebuf);} int main (int argc, char *argv[]){long wavepoints;double *waveform;Addr4882_t osc = 7;/* オシロのアドレス */ SendIFC (0);/* ボード0番を初期化 */DevClear (0, osc);/*デバイスクリア */ /* HP */gprintf (osc, ":system:header off");gprintf (osc, ":waveform:format word"); gprintf (osc, ":waveform:byteorder lsbfirst");wavepoints = (long)gqueval (osc, ":waveform:points?"); /* TDS *//*gprintf (osc, "header off");gprintf (osc, ":DAT:ENC RIB;WID 2"); wavepoints = gqueval (osc, ":WFMP:CH%d:NR_P?", channel);*/ waveform = (double *)calloc (wavepoints, sizeof (double));getwaveform (osc, 1, waveform); /*お好きな処理*/free (waveform);ibonl (0, 0);/* 終了処理 */}
188 :
名無しさん@1周年 :02/12/05 01:10 ID:8RsuEgQK
189 :
学生 :02/12/05 17:43 ID:Ruc0gLiM
今日は例の「#80002000120121211110110・・・・」 の2000文字だよという「2000」と言う数値の吸いだしに成功しました。 で、、上で一応説明してくださってますが、まだちょっとわかりません。 2000バイトということがわかったらそれ以下の1201210100010010010100 とかの数値羅列をどうするんでしたっけ?
190 :
学生 :02/12/05 18:21 ID:jfcd/vzC
なんだかこれ2がまざってて変だけど本来01だけなんだっけ? そんで4つづつくぎって、0011-0011-0000-0000 ならば10進の3-3-0-0てなってその点を結んだのが波形?? ほんとトンチンカンですいません。
191 :
名無しさん@1周年 :02/12/06 00:01 ID:P+4cRgXy
>>189 たまたまとは言え、紛らわしい文字が並びましたね。
ASCIIコードでみれば12012101・・・ですが、16進数だと 31 32 30 31 32 31 30 31 ・・・ということです。
この並び方から察するに、このデータは垂直8ビット分解能で転送されたデータでしょう。
だとすれば、1バイト毎に区切って数値に変換すれば良く、10進数に直せば
49 50 48 49 50 49 48 49 ・・・ と、2000個の数値データになります。
HPのオシロであれば
"WAVEFORM:YINCREMENT?" , ":WAVEFORM:YORIGIN?" , ":WAVEFORM:YREFERENCE?"
の問い合わせをして、その結果をそれぞれ yinc, yorg, yref に格納したとします。
2000個のデータが char data[2000] に入っていると仮定すると
volt[i] = (data[i]- yref) * yinc + yorg;
で、電圧に直せます。
192 :
名無しさん@1周年 :02/12/06 14:03 ID:MxpRpRpK
最近の私の結論 ナショナルインスツルメンツのGPIBしか使ってはいけない。。 アジレントの計測ソフトウェアを使用するときのみアジレントのGPIBを使用する。 でないと、ケチって安いGPIBを購入したとしても あっという間にケチった金額以上の 労力が費やされてしまう。。
193 :
学生 :02/12/06 16:35 ID:F0x4YC8B
>>191 ありがとうございます。そのへんはわかってきましたが、
すこし逆戻りで、1度に波形バイナリデータを2000文字も受信できない
ことが判明しました。Srlen限界値が256だそうです。
で、調べたら1文字づつ取り込んで、それをゴゴゴと格納してて
最後にまとめるんですが、単純に例えば「h番目の受信値をくれ」と
Srlen=1;
Ret = GpListenEx(Cmd,&Srlen,Srbuf[h]);
とやろうとすると、
C:\Windows\デスクトップ\gpib001波形をとりこむ\gpib001Dlg.cpp(402) : error C2664: 'GpListenEx' : 3 番目の引数を 'unsigned char' から 'unsigned char *' に変換できません。 (新しい機能 ; ヘルプを参照)
整数型からポインタ型への変換には reinterpret_cast、C スタイル キャストまたは関数スタイル キャストが必要です。
となります。GPIBというよりプログラムうんぬんの領域ですが、よろしければ
おしえてください。
194 :
学生 :02/12/06 18:27 ID:5qs+zfrW
いまちょっと家なんで確認できないんだけど ひょっとして、たっとえば256個を8回読み込んで 格納してまとめるってパターンとした場合、 単純にリッスンを8回やったら 「0〜256」「257〜513」「514〜1028」・・ みたいに順々に読みこんでくれます?これなら解決なんだけど。 「0〜256」「0〜256」「0〜256」 って頭256の同じモノを読み込みそうだなぁ。
195 :
名無しさん@1周年 :02/12/06 22:27 ID:P+4cRgXy
学生さんへ 何回聞いても「0〜255」を返すことはありえません。 必ず、残りのデータを返してきます。 また、 Ret = GpListenEx(Cmd,&Srlen,Srbuf[h]); ではなく、 Ret = GpListenEx(Cmd,&Srlen,Srbuf); ではないかとおもいます。 あと、2000バイトを一度に読み込めないという件ですが、 N88-BASICではあるまいし、そんなことはないのでは。 波形データを読むとき、デリミタを無効にしてますか? デリミタを有効にしていると、LF を見つけたとたん受信を終了しちゃいますよ。 必ず、EOIで受信終了するように設定しておいてください。 この先、どんな会社・部署に就職するかはわかりませんが、 研究開発職に就くのなら、GPIBはマスターしていて損は無いと思います。 がんばってね。
196 :
学生 :02/12/07 01:00 ID:2qycbR1o
なんだーそんなことだったんですかー。灯台下暗しというか まさかと思い実行してなかった。月曜日さっそくやってみます。 これでおそらく完成!・・といきたい・・
197 :
学生 :02/12/09 15:16 ID:EF2FwmVp
リッスンで続きからよんでくれることは確認しました、 しかしなぜか200文字以降くらいから突然 それまでは正常だったのが、 010101010011ホマママホホホマホマママホホホマママホホホホ と200以降突然文字化けします なぜ!?
198 :
学生 :02/12/09 17:43 ID:EF2FwmVp
あ、すいません解決したんで上のわすれてください。 そんで1文字ずつ2000回格納していくというものなんですが、理論上は完成したと思われます。 でも、どうも800回あたりでフリーズしてしまいます。 これはリッスンリッスンリッスン!ってものすごい勢いでやりすぎの せいでしょうか。
199 :
学生 :02/12/09 18:34 ID:rxWrTNXX
すいません198も解決したんでわすれてくださいw。 一人スレ状態ですいません。
200 :
学生 :02/12/11 12:57 ID:enTqmxTW
波形を一応強引に書かせることには成功しました。 ちなみに正弦波の場合見るも無残なわけのわからないぶっ壊れた状態に、 方形波は一応それっぽいかたちはですのですが、すさまじくビリビリしたかんじに波形が乱れてます。 00000のところは当然きれいなストレートなんですが上側がギザギザです。 8ケタを10進への作業がどこかでズレてるのかな。 それとどこか俺勘違いしてるような気がしてきたんだけど、上に書いた2000コのデータだよ というヘッダ情報は例えば「11111011(251)」の塊が2000コある、つまり01状態では16,000コの情報があるのか、 もしくは01が2000コ、つまり10進に直したものは255個ということでしょうか。 後者でやってるのですが、どうも255個じゃあ足りないような気がするのですが x軸ドットが255個でいいの? で正しい方形波であれば例えば、 251 251 251・・・0 0 0・・・251 251・・ となる?? かなり数値も乱れてるようです。
201 :
学生 :02/12/11 14:11 ID:enTqmxTW
あと縦軸についてなんだけど、整数データ0〜255を 直にY軸座標点と考えて書かせると妙にきれいに方形波がでるんです。 でも例の電圧データvolt=(整数データ-Yref):Yinc+Yorg のvoltを縦軸プロット位置とするとギザギザになってしまいます。 本来後者でやるんですよね?
202 :
学生 :02/12/11 15:08 ID:enTqmxTW
ひょっとして飛んでもないとこでまちがってたかもしれないけど 読みこむバイナリデータって2進(0か1)ではないの?? 0〜8とか?そもそも2進じゃなかったりとか
203 :
学生 :02/12/11 18:37 ID:2mWGDL+y
わかった。やはりとんでもないところで間違ってた。
方形派を読み込んだデータを%sで表示すると以前書いた
111101201010210111111101ママママミミマミマママミミマミマママミミマ110102001010201021
となってます。「マ」はアスキーコードで数値に直すと「207」
http://yutopia.s8.xrea.com/manual/prg/ascii.htm つまり方形波の底の部分が0102001で上のほうは207,207,208,207
ってなって絵画はしてないが理論上きれいに波形よみとれてることになる。
そこで質問なんだけど、
マを数値207に直したいんだけど、アスキーコードってのは何ビット何バイトで
できているのかわかりません。
どう直したらいいですか?
もう、解決済みかもしれませんが
>>200 ヘッダー部分が "#80002000" ならば、8bit(=1byte)のunsigned char データが2000個です。
で、垂直分解能が8bit(=1byte)の波形ならば2000ポイントのデータ、
16bit(=2byte)分解能ならば、1000ポイントのデーターです。
>>201 整数データ、Yrefともにunsigned charですか?
言うまでもありませんが、volt, Yind, Yorg は、float または double です。
そうか...ASCIIコードなんて習わないか。本来7bitなんだけど、拡張されて8bitです。
EBCDICなんてもっと知らんか。
206 :
学生 :02/12/12 10:50 ID:OrUPfHNI
よし読み取り成功しました。 あとはグリッドとか表示をつけて完成です。 みなさんありがとう
207 :
学生 :02/12/13 14:48 ID:Vl0wh50P
しぶとくてすいませんw ソフトは完璧にとりこんでいるのですがオシロの画面に 「Query INTERPUTTED」クウェリが割りこみしました?って意味? の表示がでます。考えられる原因はなんでしょうか。 なかなかみつからなくて。 まあ当然クウェリに問題があるとは思うのですが
208 :
名無しさん@1周年 :02/12/13 21:55 ID:BaOrR1f1
相手の話は最後まで聞いてあげなさい。 ということ。
209 :
学生 :02/12/14 21:52 ID:dm94zR6v
あ、解決しました。
210 :
名無しさん@1周年 :02/12/16 15:37 ID:53XI9uIT
いきなりの質問、失礼します。 GPIBに対応したプリンタ、またはプロッタを探しています。 現在使っているHPのプロッタのペンがディスコンになって、使用できなくなり ます。ネットワークで出力できる計測器もあるんですけど、まだまだ古い機種 が多く、波形のプロットをするために必要なようです。 当方OAヘルプデスクで、計測器にたいして、まったくの無知です。ウェブで いろいろググってるんいるんですが、なかなか該当製品が分かりません。 GPIB I/Fに直接できるものがあればベストですが、GPIBからセントロに変換 できて、それに接続できるプリンタという形でもかまいません。その時のプリ ンタはHPGLが出力できるものが良いのでしょうか?HPGLに対応したプリンタ はHPでも出してないようですし、ちょっと困ってます。
211 :
210 :02/12/16 15:40 ID:53XI9uIT
変な日本語になってる。ごめんなさい。
212 :
名無しさん@1周年 :02/12/16 22:20 ID:ISMZCjr2
>>210 会社のネットワークアナライザはHP製のインクジェットへ
GP-IBをセントロに変換して接続されているのでちょっと調べてみます。
会社に戻るのが数日後なので、お急ぎでしたら
アジレントの電話窓口に相談したらいかがでしょうか?
213 :
名無しさん@1周年 :02/12/17 00:00 ID:i8+0gi0L
>>210 エプソンのHI-80はない。
リコーのGPK-7はとっくに製造終了。
日立電子(現:日立国際電子)の682-XAも製造終了。
この世の中にはない ...と思うぞ。
214 :
210 :02/12/17 08:58 ID:kwdxWy33
レスありがとうございます。 >212さん 急いでないんで、もし良ければ教えて下さい。 >213さん 直接GPIBのI/Fで出力するものがないということですよね。やっぱり そうなのか。。。ググっても古い機種しか引っかからないはずですね。 たとえ、セントロにコンバートできたとして、HPGLに対応したプリン タがあるかとところですね。リコーのレーザでHPGLをオプションにし たものがあったと思うけど、インクジェットでは壊滅かもしれない。。
215 :
210 :02/12/17 09:28 ID:kwdxWy33
216 :
213 :02/12/17 23:29 ID:i8+0gi0L
>>210 グラフテックにHPGLプロッタがあったので訂正する。
ただし、100万弱。
217 :
名無しさん@1周年 :02/12/18 00:03 ID:IWENiwXn
218 :
213 :02/12/23 01:19 ID:qLFoR2/m
>>210 デジカメで撮影すれば、ファイルで保存しJPEGとかBMPにできる。
10cm角の接写も可能だし、銀塩写真でいうところの、ISO1600、F5.6、1/30程度の感度も得られる。
ただし、手持撮影はブレるので、専用の冶具をつくる。
ヨドバシカメラの用品売り場行けば、吸盤式の小型三脚(ハマ製)がある。
外光が入らないようにフードが必要だが、ダンボール紙でも可能。
長方形の管面を撮影して、台形にならないように位置を調整するのが面倒。
219 :
サンプル求む :03/01/09 15:54 ID:u9zsbT+W
inesのGPIBカードを使ってVBでプログラミングしてますが、よく分かりません。 どこかにサンプルとかないですか??
220 :
山崎渉 :03/01/11 08:08 ID:NaLJZZUj
(^^)
>>219 うろ覚えですまんが、確かAgilent GPIBと同じライブラリ使ってるんじゃないの?
だとすればSICLかVISAが使えるはず。
222 :
219 :03/01/15 09:59 ID:1jsDXxaC
219です。
>>221 アリガト!!
でもSICLとかVISAってのは良く聞くけど、一体どんなモノなの?
223 :
221 :03/01/16 00:21 ID:1c1F7uI7
>>222 SICLは昔HPの時代に作られたI/Oライブラリ。他社製GPIBとは互換性が無い。
いわばAgilent GPIB (= HP-IB)専用の方言みたいなもん。
(inesはちょっとしたデバイスドライバのレイヤを使ってAgilent GPIBと同じ
ライブラリが使えるようになってるので、これだけはAgilentと同じと見ていい。)
VISAはVXI Plug&Playで定義された共通I/Oライブラリの仕様。VISAを使えば
NI-GPIB, Agilent-GPIB, RS232C, TCP/IPとかでアプリケーションを共通にできる。それどころかRS232C
今からライブラリの使い方を覚えるんだったら、Agilent VISAにしたほうがいいよ。
NI-VISAでもまったく同じに使えるし。
224 :
山崎渉 :03/01/18 14:07 ID:c3f/l9l4
(^^)
225 :
219 :03/01/21 09:56 ID:2Qm5gdnn
>>223 たびたびアリガト!
いまVISAを試してるんだけど、
viOpenDefaultRM(sesn)
viWrite(vi,*,*,*)
とかってあるじゃない。
この関数のsesnとかviってパラメータには何が入るのかな?
聞いてばっかでゴメン、なんせ素人なもんで・・・
今回からコテハンにします。=223 =221でつ。
>>225 まず、VISA関数はすべて戻り値がViStatus(=long)型になります。
viOpenDefaultRM の引数は受け取り変数で、ViSession型の変数をポインタ
(参照)渡しします。viOpenDefaultRM はプロセス毎に一度呼べば十分です。
計測器デバイスのオープンはそれとは別に計測器毎に行ないます。
最後には計測器とデフォルトリソースマネージャの両方に対してクローズ
するのを忘れないように。以下、サンプルでつ。
ViStatus vs;
ViSession viRM;
viSession viMyInstr;
vs = viOpenDefaultRM( &viRM); //プロセスに一度でいい
vs = viOpen( viRM, "GPIB0::1::INSTR", VI_NO_LOCK, 1000, &viMyInstr);//計測器毎に
DWORD dwRet;
vs = viWrite( viMyInstr, "*IDN?\n", 6, &dwRet);
TCHAR szRd[256];
RtlZeroMemory( szRd, sizeof(szRd));
vs = viRead( viMyInstr, szRd, 256, &dwRet);
vs = viClose( viMyInstr); // 計測器のクローズ
vs = viClose( viRM); //プロセスの終了時に一度だけ
読み返してみたら、なんだVBじゃんよ。C++で書いてしまった。 書き直すね。 Dim vs As Long Dim viRM As Long Dim viMyInstr As Long vs = viOpenDefaultRM( viRM) vs = viOpen( viRM, "GPIB0::1::INSTR", VI_NO_LOCK, 1000, viMyInstr) Dim dwRet As Long vs = viWrite( viMyInstr, "*IDN?" & vbLF, 6, dwRet) Dim strRd As String strRd = SPACE( 256) vs = viRead( viMyInstr, strRd, 256, dwRet) vs = viClose( viMyInstr) vs = viClose( viRM) VBだとこんな感じか。
228 :
219 :03/01/24 00:43 ID:9se4T+6O
>>219 サンキュ!!
試してみたらなんとかなりそうだよ!
まじでアリガト!!
229 :
219 :03/01/24 00:44 ID:9se4T+6O
230 :
山崎渉 :03/03/13 14:08 ID:XsBsiqkW
(^^)
231 :
山崎渉 :03/04/17 09:38 ID:TD8w3T+L
(^^)
232 :
山崎渉 :03/04/20 04:09 ID:NZVEJMjC
∧_∧ ( ^^ )< ぬるぽ(^^)
233 :
山崎渉 :03/05/22 00:01 ID:k3WilOHW
━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━―
234 :
234 :03/05/29 21:38 ID:AEMudqny
235 :
234 :03/05/30 20:47 ID:VuUxoOc5
愚痴を言わせてくれ
236 :
234 :03/05/30 20:48 ID:VuUxoOc5
何でC社なの?I社なの?
237 :
234 :03/05/30 20:50 ID:VuUxoOc5
だからなんで、GPIBじゃなくて232cのボードを追加するの?
238 :
234 :03/05/30 20:51 ID:VuUxoOc5
ほれみろ。
239 :
234 :03/05/30 20:52 ID:VuUxoOc5
だからNIのボードを買ってくれよ!
240 :
234 :03/05/30 20:54 ID:VuUxoOc5
もう、昨日から言っているのに・・・
241 :
234 :03/05/30 20:56 ID:VuUxoOc5
だ〜か〜ら〜
242 :
234 :03/05/30 21:00 ID:VuUxoOc5
俺の言うこと聞かなかったんだからお前ら勝手にやってろ!
243 :
234 :03/05/30 21:04 ID:VuUxoOc5
・・・
244 :
234 :03/05/30 21:12 ID:VuUxoOc5
これ(GPIB+)貸すから・・・ 月曜日に結果。 なっ!
245 :
名無しさん@3周年 :03/06/08 03:05 ID:djtOQgJe
日本のNIのサイトではまだないですけど、 LabView7 Express がでてるぞ。 個人的にはLabViewは慣れなかったのと 過去の資産がHP-BASICなので そのままHP-BASICを使い続けるけど。。
LabVIEWって結局C言語より小回りきかないよな。それにいちいちマウス で操作するからコーディングに手間かかってしょうがない。
247 :
山崎 渉 :03/07/12 12:43 ID:mXBxKMRu
__∧_∧_ |( ^^ )| <寝るぽ(^^) |\⌒⌒⌒\ \ |⌒⌒⌒~| 山崎渉 ~ ̄ ̄ ̄ ̄
248 :
名無しさん@3周年 :03/07/26 11:55 ID:mGpQF6s7
>>248 米国サイトにあるUpgrade Advidorで見たけどFull(any) -> Full(7.0)で
9マソ円ですね。めちゃくちゃ古いバージョン持ってても6.1持ってても
同じ値段つうのが。。。米国内だと$595だってさ。
せめてこまめにアップグレードしてきたユーザくらい優遇しれ。
ついでに保守あげ
250 :
名無しさん@3周年 :03/07/31 15:02 ID:SMxlainp
VEE Pro...昨日から始めました... わからん...ループが組めん..._| ̄|○
251 :
名無しさん@3周年 :03/07/31 15:29 ID:eZkQK3xM
252 :
名無しさん@3周年 :03/07/31 15:57 ID:zkkL2pc+
253 :
名無しさん@3周年 :03/07/31 23:34 ID:cUkWs7YR
>250 アジレントの測定器を制御するのでなければ、 Labviewに移るのがいいよ。 知っている人が少ないので 困ったときに助けてくれる人が少ないから ま、Labview似たりよったりだけど。。 VEE使っている人ってどれくらいいるのかなぁ
254 :
50 :03/08/01 01:32 ID:lZ0tFGKJ
255 :
名無しさん@3周年 :03/08/01 01:40 ID:LkkofsYT
256 :
名無しさん@3周年 :03/08/01 22:21 ID:5w1LrpAt
>>249 >めちゃくちゃ古いバージョン持ってても6.1持ってても同じ値段...
直近の6.1ユーザだけは、特待価格で75000円では。
∧_∧ ∧_∧ ピュ.ー ( ・3・) ( ^^ ) <これからも僕たちを応援して下さいね(^^)。 =〔~∪ ̄ ̄ ̄∪ ̄ ̄〕 = ◎――――――◎ 山崎渉&ぼるじょあ
258 :
250 :03/08/04 17:31 ID:TPqKGqhA
>>253 アジレントのSG、HPのカウンタ、KENWOODの電源などを制御予定です。
まだSGとカウンタしか制御できてませんが。。。
なんかlabviewの方が良さげなのは上の人もわかってるみたいなんですがね。。。
下っ端なので言われた物を使ってやるだけです。(´ー`)y-~~
とりあえず、このdataの流れとFlowの流れって概念を理解するのが大変そうですね。
なんとかループは組めましたが。。。二重のループが組めません。。。_| ̄|○
コイツは強敵のようです。。。Σ(´д`;)
259 :
高周波のエンジニアはVEE使い多いがぞ :03/08/14 20:55 ID:oD23i6k2
>>258 VEEでやさしく二重ループを組む方法。
(1)内側のループの部分をまず組む。
(2)それを User ObjectもしくはUser Functionに変換する。
(3)その中に入って、入力端子を追加する。
(4)入力端子と、外側ループカウンタの値を使う部分、およびForかWhileのゲート
(箱の上の端子)につなぐ。
(5)元のウィンドウに戻って、ForやWhileの出力端子と、User Object(or
Function)の入力端子をつなぐ。
とこんな感じ。とにかく何でもUser Functionにしてしまって(二度と使わない
ならUser Objectでも良い)、プログラムを極力隠蔽するようにすると思い通り
に動かし易いですよ。
役に立たなかったらごめんなさい。
260 :
山崎 渉 :03/08/15 17:58 ID:c/ebNb1T
(⌒V⌒) │ ^ ^ │<これからも僕を応援して下さいね(^^)。 ⊂| |つ (_)(_) 山崎パン
261 :
名無しさん@3周年 :03/08/15 18:41 ID:sghMwUAI
>259 高周波のエンジニアはVEE使い多いがぞ さんへ ああ、確かに高周波エンジニアはVEE使いが多いですね。 私はスペアナ、ネットアナ、SGなどの 測定器を購入したついでにGP-IBウインターフェースと VEEを購入した経験があります。 ついでに購入するなら予算が通りやすいですからね。 あと、アジレントがLabviewのドライバを出していないのと、 R&Sがドライバを出しているのが原因かと。。 でも、Labviewは、タブとか表があるから計測結果を きれいに表示しやすそうなんだよね。
262 :
高周波のエンジニアはVEE使い多いがぞ :03/08/16 17:03 ID:Ncj1LRaB
>>261 ついでで予算通しやすいのは確かですね(藁)。測定器はアジレントがほとんどだ
から(高周波関係の会社では)。
でも、漏れの周りではみんなドライバを使わずに素のコマンドをIOに直接書いて
いるし、漏れもそうしてる(藁)。だからLabViewでもVEEでもVisualBasicでもほ
とんど関係なしだったり。むしろつきあいがある客先・外注さん・下請けさん等
がVEEとLabViewのどっちを使っているかのほうが影響大。ドライバの使い方を
調べるよりキーに対応するコマンド打ち込んだ方が簡単に組めるから。
たった一つだけ、VEEがLabViewより良いところがあるとしたら、LoacalLockOut
(だっけ、家にいるから正式名称不明だけど、リモート時にパネルのキーを受け付
けなるなるモード)の解除が簡単ってことぐらいかな。LabView使いがこの点だけ
VEEを誉めていた(藁)。
VEE使いは提出用の測定結果を表示するのにExcelが必須だったりするし。
雑談でごめんなさいね
>>250 さん
Local Lock Outの解除って、Go To Local送るか一括でRemote Disable するだけじゃん。別にLabViewでも簡単だと思うが。
264 :
名無しさん@3周年 :03/08/22 23:24 ID:f5aMb8Kb
LabView、デモ版で使ってみたけど難しくてよくワカンナイ… FDDとか付いてない測定器で、測定データをPCに落としたいだけなんだけど。
265 :
名無しさん@3周年 :03/08/23 22:39 ID:pKrgnSKx
Windows上でPerlとかRubyでGP-IBを制御する方法ってないかな? HT-Basicはデータベースや、TCP/IP、他のプログラムとの連携が難しいし。。 Labview、VEEは高いし。。 C++などはコンパイルがめんどくさい。。 Perlとか、Rubyならフリーで、ソースコードの参考例が おおいので乗り換えたいのですが、 肝心のGP-IBや、232Cの制御例が少ない。 誰かPerl、RubyなどのスクリプトでGP-IB制御をしたことはありませんか?
>>265 >>C++などはコンパイルがめんどくさい。。
コンパイルがめんどうなだけで、言語習得は楽勝なのか...
C#なんかはどーだろ
VBやVBAならサンプル多いと思うが
>>265 Perlとかのスクリプト系言語はあんまし詳しくないけど、DLL関数を呼ぶか
COMオブジェクトを操作することができれば可能なはず。
269 :
名無しさん@3周年 :03/08/27 00:44 ID:7u357r8K
>267 最近実験したのはAgilentのVISA-COM、VISAのCOM版なので Ruby,PerlのOLEモジュールを使ってうまくいくと思われたんですが、 実際書こうとするとVISA-COMの参考例がVBで参照で設定している ものしかないので、プログラム識別子がわからなくて挫折しております。。
>>269 ResourceManagerのProgram IDの事か。それなら"AgilentRM.SRMCls"だよ。
しかしVISA-COMはAutomation互換じゃない(IDispatchをサポートしない)
COMオブジェクトだから、スクリプト系言語だとダメポかも。実際VBScript
使えないし。
271 :
名無しさん@3周年 :03/08/31 00:35 ID:K5uEvOcf
>270 そうですか、やっぱりだめですか。。。 レジストリやOLEViewを使いながら調べたのですが。。 残念です。 正規表現を駆使できたり、開発環境のセットアップに時間が かからない点でPerlや、Rubyを使いたかったんですけどね。 あと、VISAって点にも期待していたんですけどね。
>>271 IDispatchさえあればなんとかなるなら、VBとかでラッパーDLLを書いて
しまうって方法もある。とりあえず最小限必要な機能だけに限定して。
273 :
名無しさん@3周年 :03/09/04 03:02 ID:+UH2Whho
すいません おしえてください すこし内容的に便乗なんですが AgilentのGP-IBを使用して、VBAやHP-BASICでプログラムを書いて、 装置の制御をおこなっていたんですが、今度それをRS-232Cで制御する必要が 発生してしまいました。 そこで、質問なんですがRS-232Cで装置と通信する場合、agilentのライブラリは 必要なんでしょうか? 開発言語はVBAでやろうとおもってるんですが、GP-IBの場合、VBAやHP-BASICで作ってみた感じだと GP-IBのカードの初期化処理みたいのとEnterやOutput命令のために、ライブラリを使ってる印象が あるので、シリアルポートに命令をおくったり、結果を受け取ったりする場合、単純にシリアルポート制御の ライブラリを使用すれば大丈夫なのかな とかおもってしまうのですが、実際のところどうなのでしょうか? ちなみに、制御しようとおもってるのHP製のマルチメータで、それにQBASICでのプログラム例 がのってるんですが、それを見た限りだとライブラリいらなそうってかんじなんですが
>>273 QBASIC(QuickBASIC)とVBA(Visual Basic)ではそのあたり全然違う。
QBはOpen "COM1:xxx"命令が使えるのでライブラリ無しでRS232を制御できる
けど、VBA(VB)ではその命令が使えない。だから外部のライブラリに頼る必要が
ある。その点ではGPIB使う場合と同じような感じ。
VBAでAgilent GPIB使った事があるなら、多分VISAかSICLを使っているはず。
ならば、同じライブラリでGPIBもRS232を制御可能でつ。例えばVISAだったら
viOpen()関数に渡す文字列を"GPIB0::1::INSTR"から"ASRL1::INSTR"に変えて、
あとボーレートとかデータビットのRS232固有の補助的アトリビュートを設定すれ
ば、あとはGPIBと全く同じに動く。SICLは使った事無いからわからないけど、
確かGPIBとRS232をサポートしてるはずだからVISAと似た要領でできると思う。
ていうかAgilent VISAってSICLをラップしてるだけなんだよね。
>>227 あたりにVBサンプル書いたから参考にしてみて。
>>273 関係ないけど、IDが一瞬 U2とThe Whoに見えた。
おいら一応楽器板の住人なもんで。。。
276 :
ぱくちゃん :03/09/17 17:43 ID:pk1QgPI3
Linux でRS232CによりHP34401マルチメータの測定を行おうと思い、プログラム(C言語)を作成したのですがうまく動作しません。 単に*IDN?コマンドを送信しているだけなのですが。ちなみに、同じプログラムをソニーTektroで試したところ問題はありません。また、コマンドプロンプトからecho コマンドで同じ*IDN?を送っても、うまく行きません。誰か原因と対策法を教えていただけないでしょうか?
>>276 GPアドレスとかデリミタが間違ってる程度だったりして
>>276 ケーブルが正しいかどうかチェック。クロスとストレート間違えるとアウト。
あと、ボーレート、データビット、とか全然違ってるなんてことない?
他には277も言ってるとおり、ターミネーションキャラクタとしてLF(0x0A)か、
CR+LF(0x0D, 0x0A)が送信されるか。
それと、Agilent 34401はコマンド言語選択でSCPIとFLUKE互換が切り替え
可能になってるけど、FLUKE互換になってると*IDN?には応答しないかも。
279 :
ぱくちゃん :03/09/18 13:38 ID:3j3FAqnf
名無しさん、マニクさんご返事ありがとうございます。設定の確認のため、 パソコンとのシリアル接続では、TeraTermを用いて行いました。34401の 設定と合せて、ボーレート9600、8ビットノンパリティ、また、ソフト上 でターミネーションキャラクタをCR+LF、フロー制御なしで行ったところ、 通信ができました。しかし、次にLinuxのカード型PC(LCard+)とPCを TeraTermでTCP/IP接続し、LCardと34401をシリアル接続してインター ネット上で拾ったサンプルプログラムを改造した(送受信)プログラム を使用したところ、*CLSやSYSTem:BEEPerなど送信のみのコマンドは 動作するのですが、*RSTの後でも*IDN?などのクエリコマンドを実行 すると34401でQuery INTERRUPTEDのエラーが起こります。TektoroTDS のオシロでは、問題ありません。プログラムのシリアルポートの設定 に問題があるのでしょうか?主なパラメータの設定は下記のとおりです。 newtio.c_iflag = IGNBRK | IGNPAR; newtio.c_oflag = 0; newtio.c_cflag = B9600 | CS8 | CLOCAL | CREAD ;newtio.c_lflag = ICANON;
280 :
ぱくちゃん :03/09/18 13:40 ID:3j3FAqnf
リティ、また、ソフト上でターミネーションキャラクタをCR+LF、 フロー制御なしで行ったところ、通信ができました。 しかし、次にLinuxのカード型PC(LCard+)とPCをTeraTermで TCP/IP接続し、LCardと34401をシリアル接続してインターネット 上で拾ったサンプルプログラムを改造した(送受信)プログラム を使用したところ、*CLSやSYSTem:BEEPerなど送信のみのコマンド は動作するのですが、*RSTの後でも*IDN?などのクエリコマンド を実行すると 34401でQuery INTERRUPTEDのエラーが起こります。 TektoroTDSのオシロでは、問題ありません。プログラムのシリアル ポートの設定に問題があるのでしょうか?主なパラメータの設定は 下記のとおりです。 newtio.c_iflag = IGNBRK | IGNPAR; newtio.c_oflag = 0; newtio.c_cflag = B9600 | CS8 | CLOCAL | CREAD ; newtio.c_lflag = ICANON;
281 :
ぱくちゃん :03/09/18 14:01 ID:3j3FAqnf
TeraTermによるPCとの接続では9600ボー、8ビットノンパリティ、ターミ ネーションキャラクタをCR+LF、フロー制御なしで、通信ができました。 Linuxのカード型PC(LCard+)とPCをTeraTermでTCP/IP接続し、 LCardと34401をシリアル接続してインターネット上で拾ったサンプル プログラムを改造した(送受信)プログラムでは、*CLSやSYSTem:BEEPer など送信のみのコマンドは動作するのですが、*RSTの後でも*IDN?などの クエリコマンドを実行すると 34401でQuery INTERRUPTEDのエラーが起こり ます。TektoroTDSのオシロでは、問題ありません。プログラムのシリアル ポートの設定に問題があるのでしょうか?主なパラメータの設定は下記 のとおりです。 newtio.c_iflag = IGNBRK | IGNPAR; newtio.c_oflag = 0; newtio.c_cflag = B9600 | CS8 | CLOCAL | CREAD ; newtio.c_lflag = ICANON;
*RSTの内部処理に時間が掛かっていて次のコマンドが早く来すぎてダメだとか。 ステータスバイトとか読んでみるとかダミーで1秒くらいずつ間隔を空けながら 送受信して状態が変わるかチェックしてみたら?
>>281 Query INTERRUPTEDは普通、クエリを送ったのにそれを読まずして別の何かの
コマンド或いはクエリを送った時に出ます。ただ、全二重シリアルの場合では、
ホストが読み込みアクションを明示的に行なわなくても、デバイスが一方的に
ホスト側着信バッファへレスポンスを送りつけるのが普通なので、一般にはRS232
ではQuery INTERRUPTEDは発生しません。にもかかわらずそれが出るというのは、
デバイスがホストに向かってレスポンスを送ることを阻むようなブレーキが
かかってるのだと思います。
記憶ではAgilent 34401はRS232通信でRTS/CTS、DSR/DTRのハードウェア
ハンドシェイクが有効になってた思います。(それを機能OFFできたかどうかは
知りません。) もしハードウェアハンドシェイクが有効であれば、ケーブル接続
がそれに対応しているか、或いはホスト側の受信条件でRTS/CTS、DSR/DTR
ハンドシェークが可能になってるか、確認したほうが良いと思います。
あとOSが違うと、RS232の受信バッファリング動作が全然違う場合もあります。
Linuxは詳しくないので解かりませんが、PC(多分Windows?)の場合だと、デフォルト
で何でもありあり全二重で受信できてしまいますので。
ちょっと説明変だったね。 誤: Query INTERRUPTEDは普通、クエリを送ったのにそれを読まずして別の何かの コマンド或いはクエリを送った時に出ます。 正: Query INTERRUPTEDは普通、デバイスがクエリを受信した後にそのレスポンスを ホストに対して送信しないまま(或いは送信が完了しないまま)、何かの別のコマンド 或いはクエリをホストから受け取った時に出ます。
285 :
ぱくちゃん :03/09/24 09:55 ID:A0XptCua
名無しさん、マクニさん お世話になります。マニュアルを見直しました。 34401は、ハードウェア・ハンドシェークモードでDTR,DSR信号監視による 通信のみとなっていました。 しかし、今回使用しているLinuxマシン(カード型PC,LCard)のCN1には DTR,DSRの端子がないのが分かりました。従って、単に接続しただけでは 通信不可能のようです。回路に細工をするか、空きの拡張用シリアルポート に新たにインタフェースを作製するしかないようです。
>>285 そんな仕様なんですか?
8250(NS16550)と完全コンパチじゃないんだぁ
パラレルポートを使ってなければ、232Cドライバ外付けして代用するとか
>>285 追伸:
あと、単純にDTRとDSRをコネクタでショートして、勝手に信号を折り返させるんじゃ
ダメなのかな?
>>285 おいおい、俺のコテハンはマクニじゃなくてマニクだよ。
>>287 8250/16550互換じゃないというより、単にコネクタにピンが割り当てされてない
だけなのかも。
DTR⇔DSR(必要ならCTS⇔RTSも)をコネクタハウジング内でショートするって
のは、よくやる方法ですね。多分それで動作すると思います。ただ注意点としては、
ハンドシェーク機構が一切動作しないので転送データがオーバーランしないように
気をつける事です。設定コマンドを一気に大量に送りつけるとすぐオーバーラン
するので、例えば適当な間隔でSYSTem:ERRor?とか適当な問い合わせを行ない
ながら同期を維持する必要があります。
289 :
ぱくちゃん :03/09/26 16:12 ID:Q24h7YCL
名無しさん、マニクさん(間違ってごめんなさい) お世話になります。 34401は、DSR信号を見て通信し、その際DTRとDSR信号は論理が逆の設定 となっていました。一方、LCardのほうは、MAX3232ECAEが用いられてい ますが、DTR,DSR端子が割り当てられていませんでした。そこで、正電圧が 出力されている、LCardのRTS端子と34401側のDSR信号をショートさせたところ 通信可能となりました。 いろいろ教えていただきどうもありがとうございました。
290 :
名無しさん@3周年 :03/09/27 11:26 ID:ErBmSgMs
>272 その後、VISAをWSHで利用するためにいろいろ調べているうち 菊水製のVISAライブラリがあることを発見しました。 コンテックや、インターフェース社のGP-IBをサポートしている用意です。 VISA-COMの詳細な解説が日本語で書かれていて GP-IB系のソフトウェアを仕事で作成しているなら一読の価値はありますね。
>>290 問題はIDispatchをサポートしないVISA COMインターフェースをどうやって
スクリプトから使うか、という事に尽きる。
ちょっと調べたら、Sciript Adapterという魔法のDLLがあってそれを使うとIUnknwon
ベースのカスタムインターフェースをレイトバインディングで使えるらしい。
まだ試してないけど、VC++(ATL)ソースまで付いてて至れりつくせりみたいだ。
試してみる価値はあるかも。
http://homepage.interaccess.com/~hollp/ScriptAdapter.htm IDLファイルながめた限りでは、多分下のようになると思われ。
もしかしたらOpenメソッドの戻りをSetで受ける時も何か小細工が要るかも。
(試してないので、違ったてたらゴメソ)
Dim adapter
Set adapter = CreateObject( "ScriptAdapter.Adapter")
Dim rm
Set rm = adapter.CreateAndWrap( "VISA.GlobalRM")
Dim instr
Set instr = rm.Open( "GPIB0::1::INSTR")
Dim r
r = instr.WriteString( "*IDN?")
Dim strRd
strRd = instr.ReadString(100)
instr.Close()
さっきのじゃダメみたい。VB6でちょこっと試してみた。WSHの場合は、As Object とかAs Variantは削除してくれ。あと、サンプルのリソースマネージャはAgilent環境 に依存したProg IDだから、NIとかの場合はVISA.GlobRMに書き換えないとだめだ。 試したのはVB6なので、WSHで上手く行くかどうかは知らん。 それにしてもレイトバイディングは使いにくい。インテリセンス出ないし。 しかしスクリプトアダプタってのはすごい魔法だ。 Dim adapter As Object Set adapter = CreateObject("ScriptAdapter.Adapter") Dim rm As Object Set rm = adapter.CreateAndWrap("AgilentRM.SRMCls") Dim message As Object Set message = adapter.WrapObject(rm.Open("ASRL1")).QueryInterface("IMessage") Dim r As Variant r = message.WriteString("*IDN?") Dim strRd As Variant strRd = message.ReadString(100) message.Close
293 :
名無しさん@3周年 :03/10/04 14:41 ID:UU1JTwfp
マニクさんのを元にWSH向けに加筆、修正 テストした環境はAgilent34401A、シリアル制御です、 シリアルの設定例の追加しました。 WriteStringにてvblfで改行コードを入れないと 正常に動作しなかったのでvblfを追加しました。 Dim adapter Set adapter = CreateObject("ScriptAdapter.Adapter") Dim rm Set rm = adapter.CreateAndWrap("AgilentRM.SRMCls") Dim message Set message = adapter.WrapObject(rm.Open("ASRL1")).QueryInterface("IMessage") Set rs232 = adapter.WrapObject(message.QueryInterface("ISerial")) rs232.Timeout = 3000 rs232.BaudRate = 9600 message.WriteString("*IDN?"& vblf) Dim idn idn=message.ReadString(1000) Wscript.Echo(idn) message.Close
>>293 おお動いたか! そりゃすごい。ちなみに、
rs232.EndOut = ASRL_END_TERMCHAR
と書いておけば、vbLF付け足さなくてもVISAが勝手に TerminationCharacterのコード
を付加して送信してくれるよ。もしタイプライブラリで定義されたenum値をシンボルで
使えないなら、ASRL_END_TERMCHARの代わりに数値「2」を指定して。
295 :
名無しさん@3周年 :03/10/07 11:50 ID:LT6DhrTD
お忙しいところごめんなさい、ひとつ質問させてください、 ボードはCONTEC、オシロはLEADER 3060Dを使用、 開発はVC++でやってます。 CONTECのサンプルについていたプログラムを元に送受信を試していますが、 コマンドの送信は出来ましたがデータ受信が巧く行きません。 受信リクエスト(オシロからPCへのデータ要求)をすると、 アドレスエラーの戻り値が帰ってきます。 アドレスは送信時と同じアドレスを使用しています。 コマンド送信を行うと確かにオシロの表示が変わるので、 コマンドはオシロに届いているはずなんです。 なにか予想される勘違いがあったら教えて下さい。 足りない情報があるのなら追加して書き込みさせていただきます。 よろしくお願いします。
>>295 オシロ側の設定がLISTEN ONLYになってるとかー
CONTECなら相手アドレスやデリミタを指定すれば送受信を自動で確認できる
ツールがインストールされるんだから、先ずそれで試してみたの?
*IDN?の応答は?
でも、そのオシロってSCPI非対応機種なのかな?
297 :
sage :03/10/08 13:13 ID:OMi/nbEY
>>296 早速のご対応ありがとう御座います。解決しました。
先ほど最新版のツールをDLして動作確認してみました。
自動検査機能がついててとっても便利でしたね。
ボートとオシロの動作は至って正常でした。
なので、プログラムミスを疑い、くまなく見ていると送信コマンドの間違いと
送信時、受信時のリスナとトーカの位置付けの間違いがありました。
参考書のあやふやな書き方にすっかり騙されました。
あとは、見た目にこだわるだけで済みそうです。
対応感謝です!
>>290 VISAライブラリって3種類か4種類くらい有りますね。
299 :
名無しさん@3周年 :03/11/29 13:16 ID:HHeB4G4A
>298 知っているVISAライブラリはAgilent,NI,菊水
>299 Tek-VISAをわすれちゃいかん。
301 :
名無しさん@3周年 :03/12/29 14:25 ID:v8i8ZxT9
>>95 >NIのGPIB.DLLを呼び出すだけなんで..Excelで直接制御して
データをシートにリアルタイムで書き込めるのは魅力的...
なのは、CONTECでもINTERFACEでも同じと思うが、GPIB.DLLを使う
ために、馬鹿高いN.I.のGPIBカードを買う長所は何なんですか。
>>301 そりゃVISAライブラリを使うためでしょ。アジレントでもいいけど。
おっとアジレントのGPIBボードのほうがNIよりか安いね。
304 :
名無しさん@3周年 :04/01/24 09:46 ID:+9aPxCtH
島津製万能試験機オートグラフとPCをGP-IBで接続して使う別売ソフトSHiKiBUの 使い勝手はどうでしょうか。
305 :
名無しさん@3周年 :04/02/04 19:58 ID:3/vA6Dyz
307 :
305 :04/02/04 23:24 ID:3/vA6Dyz
そうそう。 HARDCOPY です。 コマンドは送られているんだけど、 データの受信がうまくいかないのです。 もうちょっとがんばる。
>>307 サンプルソフトがメーカのWEB上に公開されてなければ、
製品に添付されるマニュアルかCD-ROMを見るしかないと思うけど、
紛失したとか?
309 :
305 :04/02/05 18:23 ID:aOvuUud8
>>308 テクトロからはVBAのサンプルは付いてきてないなぁ。
WEBでもLabViewとかばっかり。
EXCELでVBAでやってる。
310 :
305 :04/02/05 19:52 ID:aOvuUud8
HARDCOPYでうまくいきました。 TimeOutが短かったみたい。 お騒がせしました。
311 :
名無しさん@3周年 :04/02/05 23:26 ID:RXefEYdQ
>>309 >EXCELでVBAでやってる..
RS232ならよく見受けますが、GP-IBインタフェースでVBA構文って見かけませんが、
計測値送信要求前段階の通信ポート?OPEN命令って、VBAではどのメソッド文を使う
んですか?
313 :
名無しさん@3周年 :04/02/07 07:27 ID:FoDWz396
あああ、EasyGPIBって使いやすそうですね。 コンテックのGPIBボードが結構安くなってるから導入を考えるか。
315 :
305 :04/02/09 18:11 ID:w6KOWcMo
使いやすいですよ>EasyGPIB。 LabViewとかCとかで出来る人にはあまり意味がないかもしれないけど、 VBAをちょっと知っている、くらいのれべるでも、 データを読んだり、簡単な制御はすぐ出来る。 まぁ、会社で正式に導入するには、個人のフリーソフトってことで サポートの問題とかがあるかもしれないけれど。 あんまり複雑なことはできないみたいだけど、ぼくは重宝しています。
>>315 ソースがオープンなら勝手に改造できるから良いのだが。
317 :
305 :04/02/10 20:52 ID:rSHuc1g7
>>316 まぁ、そういう人向けじゃないですね。
勝手に改造が出来る人だったら、Cとか使ったほうが勝手がいいんじゃないでしょうか?
とりあえずやりたい、細かいことはわからないけど必要、って人向けと私は理解しています。
318 :
名無しさん@3周年 :04/04/02 02:38 ID:lJW7R/M8
テクトロニクスのスコープで ”Measurement1”から”Measurement4”までの値を一度に読み出すコマンドはないですか? いまは 1番読んで、2を読んで、、、ってやっているのですが、 もうすこしサンプリングレートをあげたいのです。
319 :
名無しさん@3周年 :04/04/17 11:28 ID:8M8RRPN/
179 :177 :03/04/13 21:34
>>178 まず,GPIB接続のものなら,GPIBボードが必要です.
で,業界標準的なのはNational InstrumentsのGPIBボード.
安いのだとInterfaceのものとかありますけど.ただ,ドライバやら使う命令
やらが互換でないんで,どこか一社のにまとめておいたほうが楽.
GPIBボードを買うと,ボードにドライバと,VC,VB,LabViewあたりで使う
ためのモジュール等がついてくる.GPIBバス上に流すデータの形式は規格化
されているため,"A"という文字列を送りたければ,例えばNIのボードをVB
で使うとすると,VBのプログラムにNIのボードについてきたモジュールを
組み込んだ上で"send(0,add,A,NLend)"とやればAという文字列がadd番の
アドレス番号(SCSI IDのようなもの)を持つデバイスに送られる.
レポート作成に役立つソフト
http://science2.2ch.net/test/read.cgi/bake/986325785/179
320 :
名無しさん@3周年 :04/05/21 00:43 ID:2PnenJWu
C++builder&GPIB(NI)で、VISAを使ってアジレントの測定器を 動かしたいんですが、サンプルプログラム(IDN?を取得するヤツ) すら動きません。 とりあえずはフォームに作ったボタンを押して、その隣のリッチテキスト窓に IDNを表示したいんですが、ボタンを押した後に、でバックモードに入ってしまいます。 (visaのコマンドを無効にすれば完走します) Cすら理解していなくて恐縮ですが、どうすればいいのでしょうか? もしかして、gpib.hをインクルードしてボードの初期化とか必要ですか?
321 :
名無しさん@3周年 :04/05/23 16:48 ID:N638rQzO
スレ違いかも知れませんが、他にスレがなかったのでここで 質問させてください。 今LabVIEW7.0でプログラムを作成していまして、 それはLabVIEWからMatlab scriptを呼び出して行うものです。 昨日までは特に問題はなかったのですが、 今日LabVIEWからMatlab scriptを呼び出そうとすると、 Matlabのcommand windowが立ち上がってしまい、 LabVIEWはフリーズしてしまいます。 全く原因がわからないので、ご存知の方よろしくお願いします。 なお、OSはWindows2000です。
322 :
kkkk :04/06/18 11:15 ID:HQKzSE3E
初めての書き込みになります。宜しくお願いします。 今、GPIB接続を用いて、PCとネットワークアナライザ(HEWLETT PACKARD 8720D)を繋ぎ、Agilent VEE(VEE one Lab veision 6.0)上でネットアナを制御しようとしています。 その際、ネットアナ上に“マーカー”を表示させて、その値をVEE上で読み取ろうとしているのですが、うまくいかないのです。 今は、VXI plug&play という方法で機器の制御を行おうとしており、機器制御用のドライバもHPのホームページからダウンロードしました。 基本的に、VEE上でネットアナを制御するのには、制御関数が与えられており、それを用いて制御する、と言う事までは理解し、簡単な回路図を組んでみました。 その結果、ネットアナはVEE上で制御出来るようになったのですが、ネットアナ上のマーカーで示している値を、VEE上に吸い上げる事がどうしても出来ません。 制御関数(Function)の扱いに何か問題があるのではないかと思うのですが。。。 ちなみに、別のHPの測定機器(マイクロパーメーター)で試してみたら、 (もちろん回路は書き換えました)ちゃんと値をVEE上で呼んでくれました。 色々私の方でも考えたのですが、結局結論は出ず・・・、と言う感じです。 もしかしたら似たような経験をされた方がいるかも、と思い今回書き込みをさせて頂きました。 宜しくお願い致します。
325 :
名無しさん@3周年 :04/11/27 09:51:22 ID:BcLUNiA9
326 :
名無しさん@3周年 :04/12/12 10:56:03 ID:cQ8UTuwg
過疎スレだとしてもちょっと遅い回答だな。
328 :
名無しさん@3周年 :04/12/27 20:35:36 ID:3SMbU5z7
>>324 >『IEEE-488(GPIB)とその応用』...
って、1981年初版で当時\1200だったんだね。著者所属の日本原子力事業株って
何分野の会社だったんだろう。正式な書名は、
標準ディジタル・バス(IEEE-488)とその応用 岡村みち男 CQ出版 1981 \1200
3年前のカキコにレスするのもどうかとは思うが
>>68 まぁIEEE1394もSCSIに含まれているしな
今月のトラ技
331 :
名無しさん@3周年 :05/02/14 23:37:52 ID:QurBioaC
>>324 持ってるよその本
カバーは破れてなくなったけど
GPIBの基本的な部分は詳しく書かれてるし今も変わってないから 役に立つね。でもコンピュータから制御する部分はさすがに 古臭いわ今読み返すと。
333 :
名無しさん@3周年 :2005/06/21(火) 22:38:02 ID:B5qB/Ofr
>>332 >コンピュータから制御する部分はさすがに古臭い...
1981年当時って、使えるPCが今では絶滅状態のN88-BASICの時代ですか?
>334 だな
>>333 じゃあもしかしてPC-8001、N-BASICの時代とか。
>>336 そのころだね。あとAPPLE][ とか TRS-80とか…
ANSI/IEEE規格488-1978というぐらいだからふるいね。
俺もオッサンだな。_| ̄|○
338 :
だい :2005/07/19(火) 23:30:32 ID:OYjLiPb9
LabVIEWでGPIB制御をするのが、確実で簡単だと思うよ。。。。
またまた御冗談を。
いや、それが旦那、ホントですって。
でもお高いんでしょう。うちの家計では厳しいわ。 奥様のところがうらやましいですわ。オホホホ
つまんね
漏れはHP-BASICつこうてました。
344 :
名無しさん@3周年 :2005/12/05(月) 21:15:04 ID:PRMHLQxx
NIのUSB-GPIB-Bを使っています。 デバイスドライバのイントールはうまく行き、アプリケーションからも 正常に使用できています。 ところが、USB-GPIB-Bを接続する度に、"新しいハードウェアが検出されました" のウィザートが立ち上がります。 つなぎっぱなしにしていれば、再起動の度にこうなります。 複数の計算機で試してみましたが、どこでもこのようになります。 OSはWindows2000でもXPでもこうなります。 毎回デバイスドライバをインストールしないでも済む方法はあるのでしょうか。
347 :
344 :2005/12/06(火) 10:33:30 ID:CI3BnbmF
>>345 メーカーに直接問い合わせる手がありましたね。
NIのホームページにある、NI製品ディスカッションに問い合わせてみました。
(あれ、これはNIから直接回答があるわけではないのかな?)
>>346 付属のCD-ROMに入っていた2.1と, Webからダウンロードした最新の2.4
両方試してみましたが、だめでした。
348 :
名無しさん@3周年 :2006/04/21(金) 09:38:34 ID:Ivg5fmGT
E4440て横軸何ポイントですか? 可変ですか?
350 :
名無しさん@3周年 :2006/11/13(月) 23:50:32 ID:M7R+AAYC
アンリツの MG3602Aという古いSGをGPIBで制御したいのですが、 CWの周波数と電力を設定するGPIBコマンドをご存じの方はいませんか? CW 1GHz; とか FREQ:CF 1GHz; とかやってみましたが、だめでした。
FREQ 1GZ
352 :
名無しさん :2007/06/30(土) 03:53:59 ID:WSCi/PSW
?
353 :
名無し :2007/06/30(土) 03:55:26 ID:WSCi/PSW
??
GPIBケーブルの選びどころは何でしょうか? 探してみたところ、サンワサプライと、YOKO (?) 製のケーブルが 見つかりますが、値段が 3 倍くらい違います。 ケーブルを 2 社しか作ってないのか?と思い 外国のショッピングサイトを見たところ、バラツキはありますが 安いですね。メーカーもいろいろありますし。
>>354 > 見つかりますが、値段が 3 倍くらい違います。
え?と思って見たんですが、確かに えらい違いますね。
Webページの表記を比較してみたんですが、
・サンワサプライは、ツイストペア、シールド対策、EMI対策を謳っている
という事で、「ケーブルへの金かけ具合の差」ではないかと思います。
(後は、ブランド、販売店経由時の卸率かな)
ケーブル自体は、GPIB計測器やボードを扱っているメーカだったら、
大抵扱っていると思います。
まぁ、順当に考えれば、
・ノイズ源の多い所、長いケーブル長、システム設置なら、ノイズ処理対策を明示したケーブル
・短いケーブル長、ちょこっとしか使わないなら、安いケーブル
で、いいんじゃないでしょうか?
(そういえば、IEEE488規格に、ケーブルの電気特性の要求仕様ありましたっけ?)
356 :
354 :2007/08/20(月) 00:35:33 ID:NKfF6ir+
>>355 用途で使い分けるのがベストとは、頭では分かるのですが
時間が経つと流用してしまうことが多く、実際はちゃんと運用できません。
特に GP-IB ケーブルは、見た目で品質が分からないので困ります。
普及率の割には使い勝手悪いですよね。プロしか使わないから?
>>356 まぁ、繋ぐ対象(GP-IB計測器)が、大抵数十万以上しますからねぇ。
仕事で使うのは、大抵2m程度ですが、「動かねぇ」と思ったら、
大抵「コネクタのネジ留めちゃんとしてない」なので、
正直ケーブルの品質の違いは、よく判りません。
問題発生時の比較用に、1本高いの買っておいて、後はテキトーじゃ
ダメですかね?
>>356 >時間が経つと流用してしまうことが多く、実際はちゃんと運用できません。
ケーブルの素性書いてはっとけばいいじゃん
359 :
354 :2007/08/27(月) 23:12:02 ID:mrnazc6C
結局、高いのも安いのも両方買ってみることにしました。 買ったときに性能・特徴を書いて貼っておくべきですよね。 ところで、GP-IB ケーブルを接続すると オシロの波形が汚くなった経験がある人いますか? これが原因で、手動制御にしている機器があるんです。
360 :
名無しさん@3周年 :2007/09/01(土) 12:54:03 ID:MDVwvTnj
グランドループ?
362 :
362 :2007/09/07(金) 19:37:00 ID:AMiFZ0AH
お初です。 GPIB接続に関して問題があり困っております。 突然で大変失礼かと思いますが質問がありますのでもし、誰か詳しい方がいらっしゃいましたら教えてください。 現状、VB6にて NI PCI-GPIBを介して、古いSA(HP 8561A)を接続しようと思っています。 VB6にvisa32.dllをライブラリとしてリンクさせてコンパイルしようとしたところ, "viVPrintf" が使用できません。なお、"viOpen" や "viWrite" は使用することができるのですが、使用しているライブリを間違えているのでしょうか? なお、AgilentSa.dllは非対応の機種です。 大変、初歩的で申し訳ない質問ですが、どうかよろしくお願いします。
>>362 ちょっと教えてください。
「"viVPrintf" が使用できません。」というのは、どんな現象が発生するんでしょうか?
1.「そんなAPIは、visa32.dllに無いよ」エラーが起きる
2.APIは呼べるが、何の反応も無いように見える
1.の場合、宣言が抜けているか間違えている、あるいは本当にDLLがAPIを用意していない。
2の場合、まず返値が正常である事からチェックする。
のが、セオリーだと思います。
364 :
362 :2007/09/10(月) 11:29:46 ID:atyGmEKW
>363さん 返信ありがとうございます。また遅レスで大変申し訳ありません。 現在、自分が引き起こしている現象は "1.「そんなAPIは、visa32.dllに無いよ」エラーが起きる" です。 宣言に関しては、VB6の「プロジェクト(P)」→「参照設定」で、 C:\WINDOWS\system32 上に置いたvisa32.dllを選択しVISA Libraryを登録して使用しています。 ちなみに使用しているvisa32.dllは、NI-VISA / ver. 4.2.0.49152 です。 現在、テストプログラム上では、visa32.dllを宣言する類の記述は行っていません。 "viOpen" や "viWrite" に関しては、APIとして呼び出せているようですが、"viVPrintf"に関しては "コンパイルエラー: SubまたはFunctionが定義されていません"と表示され、コンパイルができません。 dllそのものより、361さんのご助言のように自分の宣言法に問題があるのかと思っていますが、如何でしょうか?
365 :
362 :2007/09/11(火) 11:47:51 ID:Vgbu5k1k
すいません。誤りがありました。 361さんのご助言 > 363さんのご助言
>>366 の続きです
もし、visa32.basを取り込み済みでしたら、viPrintfの宣言を睨んで、
呼び出し方(引数の与え方)に間違いが無いかチェックされる事を
お奨めします。
368 :
362 :2007/09/18(火) 20:37:57 ID:/aZlQhd2
>366さん こちらも返信遅くてもうしわけありません。 丁寧な回答ありがとうございます。 visa32.basは取込んでいないような気がします。 ここでいうvisa32.basの取り込み方は、VBのライブラリの参照による追加で良いですよね。 (364での書き込みの方法) まず、明日試してみようと思います。 結果は、また後日、報告させてください。 ひとまず、お礼まで。
>>386 さん
> ここでいうvisa32.basの取り込み方は、VBのライブラリの参照による追加で良いですよね。
う〜ん、ちょっと違うかも。
VB6のメニューから、「プロジェクト」→「標準モジュールの追加」で、「既存のファイル」タブから
visa32.basを指定して取り込む形になると思います。
visa32.basの在り処は、マニュアルか面倒だったらエクスプローラ上から、右クリックメニュー
を使って、「検索」するのが良いでしょう。(多分、"C:\Program Files"の下層でしょう)
370 :
362 :2007/09/19(水) 20:38:59 ID:T0ObjHDO
>369さん ありがとうございました。アドバイスのおかげで、viVPrintfが使用可能に なり、スペクトラムアナライザHP 8561Aへ命令文を送ることができました。 まだ全て試した訳ではありませんが、他のVISA関数も利用可能だと思います。 恥かしながら、今更、basファイルとdllファイルの関係が少し理解できました。重ねて 御礼を申し上げます。 今回、viVPrintf()が呼び出せなかった理由は、 >・visa32.basを取り込まずに、viOpen等を独自に宣言して使っている です。visa32.basに関しては369さんの手順に従い、標準モジュールへ 取り込み、その後、visa32.dllをライブラリに加えました。また、補足 ですが、HP 8561Aへコマンドを送る際に使用したソースを挙げておきます。 Dim stat As Long: Dim dfltRM As Long: Dim sesn As Long stat = viOpenDefaultRM(dfltRM) stat = viOpen(dfltRM, "GPIB0::3::INSTR", 0, 0, sesn) stat = viVPrintf(sesn, "SP 5KHz" + VBLF, 0) stat = viClose(sesn) stat = viClose(dfltRM)
372 :
名無しさん@3周年 :2007/12/13(木) 21:01:44 ID:tAQ82gst
Cで制御プログラム作ろうかと思ってるんですが、 NIで ibdev→ibwrt だとデータ送信できるのに SendIFC→Send だと何故か通信できません。エラーはでないです。 同じような症状起こった方いますか?
>>372 さん
こんにちは。
> だと何故か通信できません。エラーはでないです。
通信できないというのは、「プロトコルアナライザで監視して」でしょうか?
このレベルで出てないならば、デバイスの指定が間違っている可能性が
あるような気がします。
うろ覚えなんですが、ibdevとSendIFCは、自ボードを指すデバイス番号
(で良かったでしたっけ?)の概念が違っていたと思います。
(要するに、ibdevで使っていたデバイス番号を、そのままSendIFCに適用
出来なかったと思います)
後は、送信文字列の文字数を間違えている…とかですかね。
例えば、"*IDN?"を送るために、4文字送るべきが、3文字しか送ってない
とか、5文字以上指定してしまって結果的にゴミデータ一緒に送ったとか。
似たようなケースとして、古いGPIB計測器では、送受信時の終端コードが
特別なものでないといけない。というのがありますね。
374 :
372 :2007/12/16(日) 18:27:38 ID:AEgbb4x+
レスありがとうございます。 NISpy(これがプロトコルアナライザ?)を走らせながら色々やってみたのですが、 通信できないというのは Spy上ではエラーではないのに計測器が反応を示さないということです。(Sendで命令を送ると) ちなみに使ってるのはアドバンテストのTR8652です。 LabVIEWやibwrtでは反応するのにSendで反応しないのはどうもおかしいなと。 複数の計測器と通信するプログラムならSend使えたほうがいいと思うのでなんとかしたいところですが・・・。 ご指摘のように送信文字数とデリミタ指定をちょっといじってやってみます。 ちなみに別の計測器にSendで命令送ったら通信できたので 計測器が悪いという結論が自分の中で早くも出ています(笑)
>>374 こんばんは。
送信データは送っているのですね。後、別の機器との通信は出来ると。
http://www.adcmt.com/techinfo/product/end_of_sale/TR8652/c_TR8652.html GPIBコマンド表を眺めていたんですが、6-6の「(2)ストリングデリミタ」の項が
少々気になりますね。
もし、
char* msg = "F1,R0";
Addr4882_t TR8652_addr[] = { 2, NOADDR };
Send(0, TR8652_addr, msg, strlen(msg), NLend); // デリミタにNLendを指定
のように記述していると、送信されるデータは、
"F1,R0\n", EOI
ではないか?と思います。
もしかしたら、
char* msg = "F1,R0\r\n"; // 改行コードを自分で指定
Addr4882_t TR8652_addr[] = { 2, NOADDR };
Send(0, TR8652_addr, msg, strlen(msg), NULLend); // デリミタにNULLendを指定
の方が良いかも知れませんね。
376 :
名無しさん@3周年 :2007/12/27(木) 13:46:21 ID:+PfyP0Vl
こんにちは NI-VISAの日本語リファレンスマニュアルってありますか? 英語版PDFとHelpファイルはあったのですが、日本語が見つかりません。
377 :
名無しさん@3周年 :2008/02/12(火) 14:13:23 ID:/xnYDzUK
Ratoc Systems 社製のREX-USB220というUSB/GPIBコンバータを使って DMMからデータを読み取る、というCのプログラムを作成中なのですが、 どうにも行き詰ってしまい、何か指摘してもらえる点があればと思って来ました。 ”これ読め”とか”ここ行け”とかでも構いませんので、 助言を頂ければ助かります。 以下に現状を示します。 DMM:HEWLETT PACKERD 34970A(DMM内臓のデータロガー) KEITHLEY Model 197 TakedaRiken TR6851 OS:Fedora Core 6 Cコンパイラ:gcc 4.0.0 20050519 (Red Hat 4.0.0-8) ※ドライバやGPIB制御を行う関数のライブラリはコンバータ付属のものを使用 プログラムの大体の流れ: 1.コンバータのオープン 2.コンバータの初期化(init) 3.クリアコマンドによるデバイスの初期化(cli) 4.GPIB制御モードにDMMを移行(REN) 5.データ読み込み(指示があるまで繰り返す) 6.コンバータのクローズ 実行結果: 5.で”GPIBバスタイムアウトエラー”が返ってくる。 ※DMMのデバイスアドレス、読み込まれるデータの型、ディレイ時間、デリミタ等の設定を変更しても変化なし。 ※設定したバスタイムアウト時間に応じてバスタイムアウト。 ※DMMを変更しても(上記の3機種)変化なし。 と、大体こんな感じです。 後、これは参考になるか分かりませんが、PCの再起動直後に一回だけ、 周辺環境やプログラムの中身をいじっていないのに正常に動作したことがあります。
>>377 こんにちは。
どんな処理をしているのか、コードを見ないと何とも言えないけど、
「GP-IBバスタイムアウトエラー」という文言から、
・制御対象のGP-IB機器のGP-IBアドレスと異なるGP-IBアドレスに
対して送受信しようとしている。
結果、相手先が居ないのでエラー。
・あるいは、正しくないデリミタを使って命令を送っている為、
命令が完了せずエラー。
辺りでは無いかな?と。
バス上のGP-IB機器を列挙する、gp_findlstn関数とかあるようですし、
それを使ってチェック&送受信先を変更するようコードを書き換えるか、
制御対象のGP-IBアドレスが合っているかマニュアルと見比べてみては?
保守
380 :
名無しさん@3周年 :2008/02/26(火) 10:43:33 ID:0Ro1nfnT
アジレントのPNAシーリズで、掃引の終了、アベレージングの終了時に何か フラグを立ててLOOPから抜け出したいのですが、何かよい方法はありますか? Status Register Commands "*OPC?"だとうまくいきません。 よろしくお願いします。 VB 6.0/NI社 USB-GPIB
nju nju fi fi piki pi
382 :
名無しさん@3周年 :2008/03/13(木) 18:17:11 ID:sMO6XqDG
>>378 お返事遅れてすいません。
あれからいろいろ試してみたのですが、結局メーカーに問い合わせてみた所、測定機器側の準備ができていなかったようです。
測定動作の開始にRENに加えてGETというコマンドを送る必要があるとのことで、アドレスやデリミタの設定は問題なかったみたいです。
正常に動作したときはなんだったのかが結局よく分からないままですが、ひとまず動いているので、やっとやりたかった実験ができると思います。
ご丁寧にレス頂いてありがとうございました。
383 :
名無しさん@3周年 :2008/03/24(月) 21:13:36 ID:ucviE/Cy
このたび,GPIBで計測をしようとしている者です. NI 488.2M(PCI-GPIB)を使って,レーザーで長さ測定をしようと思います. GPIBでの測定がよくわからないのでメーカーに聞いたところ, HP-BASICを使って↓こんな感じのコマンドを送ってみるように言われました. 10 CLEAR 7 ! インタフェイス クリア 20 OUTPUT 703;"RS" ! 位置リセット 30 LOOP ・ ・ それで,てっとり早く,HP-BASICを使える環境を整えたいのですが, そういうユーティリティはありますか?できればタダだとありがたいです. 当方,VB,VCのプログラム経験はあります. まだ,GPIBがよくわかっていないので,とんちんかんな質問になってるかも 知れませんが,よろしくお願いいたします.
>>383 VCでプログラムの経験があるのならまんまVCで組んじゃえばいいよ。
GPIBってもうなくしてもいいですか?
お金があるなら・・・
シンセサイザー(ファンクションジェネレータ)をGPIBで制御してたんだけど、 最近のはUSBで制御できるようになってる。 んじゃあUSBで制御できれば、 GPIBボードとかコードとかUSB-GPIBコンバータとかが必要なくなる →イイ! と思ってUSB付きのシンセサイザー買ったものの、 USB利用とGPIB利用では言語が違うのね? 当然と言えば当然か… シンセサイザーのコマンドはおんなじみたいだけど。 で、USB制御の本でお勧めってないですか。 言語はVBでお願いします。
389 :
名無しさん@3周年 :2008/07/20(日) 19:21:28 ID:TnqHuiLz
USB制御の本って、ドライバから自作するの? USBは、RS-232Cみたいな Windows標準のAPIがないから メーカ提供のライブラリを使うのが 手っ取り早い。
NI製のGPIBが欲しいのですが、どこかで安く手に入らないでしょうか? 秋葉原で探し回ってみたのですが、GPIBの格安ケーブルしか見つけられませんでした・・ ※GPIBの接続方法は、ISAでもPCIでもUSBでも構いません。
>メーカ提供のライブラリを使うのが >手っ取り早い。 痒いところに手が届かないと言うか…
>391 う〜ん。 USBTMC準拠か、バルク転送で制御できるなら VISAライブラリが使えるけど、どんなプロトコルかわかる?
>>392 レスサンクスです。
うは。初心者の俺には用語他わかんね(^_^;)
取説にNIのHPからVISA Run-time Engineをダウンロードして…
ってあるからVISAライブラリとやらを使えそうですね。
ちと勉強してからまた来ます。
本ではなくて取説+ネットで学ぶって感じみたいですね。
解決しますた。 VBの問題ですたorz
396 :
名無しさん@3周年 :2008/11/08(土) 00:30:34 ID:kBZlVgAv
contec GPIBってどう?
>>396 普通だと思う。ごくフツーの使い方するなら
どこのメーカーもオーバースペックだよね。
もっと安くして!
>>397 作ってる側から言うと
自社で設計、生産、サポートするので
これぐらいの価格にせざるを得ない。
保守部品だと思ってください。
オクで買え
400 :
名無しさん@3周年 :2008/11/27(木) 00:24:17 ID:LOR1GV2m
CB CIO-PC2A を使ってC言語で『波形を最初から200個までのデータを保存する』というプログラミングはどう構成すればいいですか?
年末の会社の大掃除で、AT-GPIB(TNT)を2枚ぐらい廃棄したゎ。
Set up e-mail correspondence between mentors and youth if you are permitted and if your youth has e-mail access where the mentoring program is located. ,
403 :
名無しさん@3周年 :2009/11/24(火) 20:35:18 ID:znS/S5ci
contec GPIB(PM)をAgilent DMM 34970Aにつなごうと思ってるんだけど、なんかうまくつながらない。 使ってる人いますか?