プログラム(EXCEL VBA)の説明
GPIBとのやり取りは、PICが行っているため、excel側からは、要求コマンド(PICのファームの表参照)を送り、その応答を受信して処理を行います。
たとえば、マルチメータR6441の電圧のデータを得る場合の全体の流れを示します。
全体の流れ
@PC→PIC “C”+バスコマンドを送信(アドレスなど)
APC←PIC 応答を返信 ER=0:正常 ER=1:異常
BPC→PIC “W” + マルチメータの設定(レンジなど)を送信
CPC←PIC 応答を返信 ER=0:正常 ER=1:異常
DPC→PIC “W” + 測定開始を送信
EPC←PIC 応答を返信 ER=0:正常 ER=1:異常
FPC→PIC “E” を送信
GPC←PIC EOIを受けるまでデータ送信(ER=1になれば中断)
Excel上でデータ処理しセルに表示
*PICへのコマンドは、それぞれのコマンドに対応した標準プロシージャーをcallすることになっています。
コマンドS resetプロシージャー
コマンドT Timeoutプロシージャー
コマンドC Cmdプロシージャー
コマンドW wDataプロシージャー
コマンドD readData_LFプロシージャー
コマンドE readData_EOIプロシージャー
コマンドR readDataプロシージャー
F以降のデータ受信時のプログラム例を抜粋で示します。
Call readData_EOI ’sub readData_EOIで”E”を送りデータを受信する
If ERR = True Then ’エラーを受信すれば終了
MsgBox "TIME OUT" ’エラー時TIME OUT表示
GoTo d
End If
rData() = eoiData() ’受信したデータを代入
rrData = StrConv(rData, vbUnicode)
Func = Mid(rrData, 1, 3) ’Funcの取出
sData = Mid(rrData, 5, 10) ’データの取出
n = n + 1 ’セルの行数
Range("C" & n).Value = Func ’セルに表示
Range("B" & n).Value = sData ’セルに表示
TextBox11Text = sData ’TextBoxに表示
Range("A" & n).Value = txttime ’セルに表示
TextBox10Text = txttime ’TextBoxに表示
デジタルオシロスコープTDS420やTDS744についても同様の流れでHGPLデータの波形を表示することができました。
なお、現在はSRQには、対応していません。回路的には受け付けていますが、処理は行っていません。
(*SRQの発信を禁止する設定をする必要はありません。)