ついに夏本番!さぁ、家族でキャンプに行くぞ! >>

以下のプログラムでGPIBでつないだヒーターから温度を受け取りたいのですがうまくいきません。
ibdevでdctに数値が入る(正の値)ので初期化はできていると思います。ibrdでタイムアウトしています。
GPIB診断プログラムでは値が帰ってきますのでプログラムに問題があると思うのですが原因がまったくわかりません。一行ごとにストップさせましたが時間は関係ないようです。
帰ってくる値300K(27℃)のときR+3000です。

dim dtc as integer
dim RD as string

private sub button1_click...
ibdev(0,24,0,T10s,1,0,dtc)
ibclr(dtc)
ibwrt(dtc,"$C3")
ibwrt(dtc,"$Q2")
RD=space$(20) 'これがないとタイムアウトしませんが値は帰ってきません。
ibwrt(dtc,"R2")
ibrd(dtc,RD)
textbox1.text=RD
以上

A 回答 (1件)

> ibdevでdctに数値が入る(正の値)ので初期化はできていると思います。



初期か出来たかどうかの判断はibdevの帰り値を確認するのでは?
ヘルプ、リファレンスを確認して、ibdevの帰り値が正常終了かどうか確認してください。

以降、ibclr、ibwrtも同様で、こういうケースでは「初期化出来ていないのに、出来ていると思い込んでいた。」というケースが多いです。

この回答への補足

初期化できていないかもしれません。
装置の電源が入っていなくても同じ値が帰ってきました。

補足日時:2005/04/19 12:43
    • good
    • 0
この回答へのお礼

初心者なのでよくわかりませんが値は31256が帰ってきます。
電流計と電圧計もつないでいますが電流計のみ使うときは電流計の返り値が31256となって、電流計と電圧計の両方を使うときは先に初期化したほうが31256であとのが31257になります。
電流計と電圧計は制御できます。

お礼日時:2005/04/18 17:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QVisual BasicでGP-IBの通信を制御したいのですが

VBを使ってGP-IBのポートの通信を制御したいのですが、それは可能ですか?また可能であれば、どのように制御すればいいのか教えてください。よろしくお願いします。
できれば、RS232Cとの違いも教えてください。お願いします。

Aベストアンサー

GP-IBを使うってことは、相手がレコーダやオシロスコープですかね。
温度や圧力、流量を電圧に変換してレコーダに入力させて、レコーダからPCにデータを送ることはやってます。データはエクセルに落としてグラフ化してます。
RS232Cとの通信手法は異なりますが、文字列を送って返事を待つことは同じです。
GP-IBにはAPIがたくさんあるので一つ一つ確認する手間が要ります。メーカーによっても異なるのでやっかいですが、細かな設定ができます。
ボードはコンテック社がいいかな。

QChr(13)とChr(10)の違いは?

myStr = Replace(myStr, Chr(13), "")

myStr = Replace(myStr, Chr(10), "")

で、改行を置換しているのですが、どちらかでも改行できる時や
どちらかじゃないと改行できない時があります。

そもそもChr(13)とChr(10)の違いはなんでしょう?
どちらも改行ですよね?
何が違うのでしょう?

Aベストアンサー

こんにちは。お邪魔します。

Chr(10) ・・・ ラインフィード ・・・ 略して、Lf

Chr(13) ・・・ キャリッジリターン ・・・ 略して、Cr

改行文字に何を使うのかはアプリケーションが規定するものです。

Win・Office環境では
上のふたつを組合わせた改行[CrLf]を使うことが多いと思います。
次に[Lf]、そして、[Cr]

なので、ソースによっては
  myStr = Replace(myStr, vbCrLf, "")
と、一発で置換できるケースも少なくないです。
■ソースごとに改行文字を確認しておくことから始めた方が有利になります。■

ひとまず、VBAでの改行の扱いに慣れるには
■VBAで用意された文字列定数について知っておいた方がよいと思います。■
 VBE(Visual Basicの編集画面)が開いている状態で、
 F2 キー → オブジェクトブラウザー起動
 検索小窓に、vbCrLf、とタイプして、検索ボタン
 VBA.Constantsクラスのメンバーが表示され
 その中にすべての改行文字(文字列定数)が含まれています。
 そのまま、F1 キーでヘルプを表示します。
詳しい説明はヘルプを読む方がいいでしょう。

実践的な話として、
Chr(10)やChr(13)は関数の戻り値です。
対して、
vbLfやvbCr(またはvbCrLf)は定数です。
定数で済ませられるなら、定数の方が何かと有利です。
定数の名前は略号ですから、実態をイメージし易くなっています。
定数の扱いに慣れることをお奨めします。
例)
  myStr = Replace(myStr, vbLf, "")
  myStr = Replace(myStr, vbCr, "")
  myStr = Replace(myStr, vbCrLf, "")

もしも文字列定数を先に覚えていたなら、疑問にもならなかったのかも知れませんね。
私の場合は、改行の何たるかを覚える前に文字列定数覚えていて、困ることありませんでしたから。

以上、ご参考まで。

こんにちは。お邪魔します。

Chr(10) ・・・ ラインフィード ・・・ 略して、Lf

Chr(13) ・・・ キャリッジリターン ・・・ 略して、Cr

改行文字に何を使うのかはアプリケーションが規定するものです。

Win・Office環境では
上のふたつを組合わせた改行[CrLf]を使うことが多いと思います。
次に[Lf]、そして、[Cr]

なので、ソースによっては
  myStr = Replace(myStr, vbCrLf, "")
と、一発で置換できるケースも少なくないです。
■ソースごとに改行文字を確認しておくことから始めた方が有利...続きを読む

Qシリアル通信におけるバイトデータの送受信(VB.NET)

Visual Basic .NETで、WriteLine("テキスト")やReadLineを使えば、テキストデータは送受信できますが、バイトデータはどのようにすれば送受信できるのでしょうか?具体的なコードを知っている方がいたら教えて頂きたいです。

Aベストアンサー

こんにちは
http://msdn2.microsoft.com/ja-jp/library/ms143551(VS.80).aspx

そこまでご存知でしたらあともうひと調べでしたね。


人気Q&Aランキング