ziGPIB2550 分室


ziginp()


■ 測定器からテキストを受信します。
ziginp (ADRS, TOUT, CRLF) As String
概要
測定器から送られたテキストを PC が受信します。
本器のエラー情報は受け取れません。
定義 戻り値
(String)
受信したテキスト (最大 65530文字)
ADRS
(Byte)
測定器の GPIB アドレス (0〜30)
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 の終端コードが利用されます。

Cells(1, 1).Value = ziginp(17)

GPIBアドレス17 の測定器から送られたテキストは、Excel の一番左上のセルに代入されます。
受信テキストが数字のみの時、数値に自動変換され (Excel のデフォルト機能)、セルに代入されます。
第2引数(TOUT) を省略したので、タイムアウト値(sec) は EEPROMの値を使用します。
第3引数(CRLF) を省略したので、終端コードは、EEPROM の終端コードを使用します。

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

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