ziGPIB2550 分室

ziginpf()


■ 測定器からテキストを受信します。(エラーフラグ有り)
ziginp (ADRS, ERRFLG, TOUT, CRLF) As String
概要
測定器から送られたテキストを PC が受信します。
本器のエラー情報、第2引数 ERRFLG の値から判定できます。
定義 戻り値
(String)
受信したテキスト (最大 65530文字)
ADRS
(Byte)
測定器の GPIB アドレス (0〜30)
ERRFLG
(Integer)
本プロシジャを実行後、0以外の値の場合は、本器でエラーが発生して中断した事を意味します。
ERRFLG は参照渡しです。
TOUT
(Byte)
測定器からテキストが来ない時、TOUT(sec) で本プロシージャを終了します。
TOUT=0: PICマイコンの EEPROM の値を使用します。
TOUT=1〜30: 指定した時間(秒) が使用されす。
TOUT>30: PICマイコンの EEPROM の値を使用します。
TOUT=省略: VBA側で TOUT=0 が設定され、EEPROM の値が使用されます。
CRLF
(Byte)
終端コード 下位 3ビットで制御します。(ビット2=EOI, ビット1=CRLF, ビット0=LF)
・ビット2=1: 最後の1文字の区間、EOI ピンを Low にします。
・ビット1=1: 最後にASCIIコード CR(0x0D) と LF(0x0A) のデータを追加送信します。
・ビット0=1: 最後にASCIIコード LF(0x0A) のデータを追加送信します。
例 CRLF=5: LF の受信 or EOIピン=Low の時、本関数を終了します。
例 CRLF=7: LF の受信 or CR+LF の受信 or EOIピン=Low の時、本関数を終了します。
例 CRLF=2: CR+LF の受信の時、本関数を終了します。
例 CRLF=255〜8 or 0: PICマイコンの EEPROM の終端コードで本関数を終了します。
例 CRLF=省略: VBA側で CRLF=0 が設定され、EEPROM の終端コードが利用されます。

Dim ERR As Integer
Cells(1, 1).Value = ziginp(17, ERR)

GPIBアドレス17 の測定器から送られたテキストは、Excel の一番左上のセルに代入されます。
受信テキストが数字のみの時、数値に自動変換され (Excel のデフォルト機能)、セルに代入されます。
第3引数(TOUT) を省略したので、タイムアウト値(sec) は EEPROM の値を使用します。
第4引数(CRLF) を省略したので、終端コードは、EEPROM の終端コードを使用します。
本プロシージャ実行後、変数ERR が 0以外の時、本器でエラーして中断した事を意味します。

補足 ● 第3引数 TOUT の用途:
実行中にエラーが判明した時は直ぐにプログラムを終了したいと思います。(デバッグ中)
その為、EEPROM のタイムアウトの初期値は短めの 3(sec) に設定しています。
長い測定時間を必要とする部分の ziginp() プロシージャ だけ、個別に長いタイムアウト値が欲しくなる事を想定して 第3引数 TOUT を用意しました。

● 第4引数 CRLF の用途:
通常、第3引数 CRLF は省略したいものです。EEPROM の 終端コード の設定を LF※ にした場合、
CR+LF の終端コードを測定器から受信すると、最後の CR コードがデータに混じってしまい、
Excel が数値と判定しない為、Excel 側で CR を取り除く処理が追加的に必要になります。
このような状態を想定して、プロシージャで終端コードが指定できるようにしました。
※ 80年代(アジレント) の測定器の終端コードは CR+LF が多く、90年代以降は LF のみのようです。
古い世代の測定器が混入している場合に、このような事が発生します。
ただし、EEPROM の 終端コードを 7 に設定していると、CR+LF でも、LF でも、EOI でも
本器は終端するので、このような状態にならないようです。