ziGPIB2550 分室

zigpopcf()


■ 測定器の ステータス・バイト・レジスタ の監視 を実行します。(エラーフラグ有り)
zigopcf (ADRS, DET, TOUT, ERRFLG)
概要
以下の機能を実行します。
・ クエリ *OPC? の送信
・ 測定器のステータス バイト の受信
・ ステータス バイトの 監視 (監視ビットがTrueの時、本プロシージャは終了)
・ 測定器から送信する "1" を受信 (これは コマンド *OPC? の仕様)

定義 戻り値 無し
ADRS
(Byte)
測定器の GPIB アドレス (0〜30)
DET
(Byte)
ループを抜ける値。 (0〜255)
0 を代入した場合、DETの値ではループは抜けられません。
TOUT(タイムアウト)の時間でループを抜ける事になります。
TOUT
(Byte)
ループのタイムアウト (sec) (1〜30)
ERRFLG
(Integer)
本プロシジャを実行後、0以外の値の場合は、本器でエラーが発生して中断した事を意味します。
ERRFLG は参照渡しです。

Dim ERR As Integer
Dim ADRS As Byte
ADRS = 12

Call zigout(ADRS, "F2 T3") 'HP3478A AC測定、1回測定
Call zigpopcf(ADRS, 1, 10, ERR)

測定器に "F2 T3" を送信。
zigpopcf()で、シリアル・ポールを送信し、戻り値 と 1(第2引数) のバイナリand を取ります。
結果、1以上の時に本プロシージャが終了し、プログラムは次のステップに進む事ができます。

DET=1: 測定器のステータス・バイト・レジスタ と 1 のバイナリand を取り、1以上の時に本プロシージャは終了します。
TOUT=10: ステータス・バイト・レジスタ と 1 の バイナリand 結果が 0 でも、10秒で本プロシージャは終了します。

本プロシージャ実行後、変数ERR(第4引数) が 0以外の時、本プロシージャでエラーして中断した事を意味します。
補足 ● 本プロシージャの流れ。
(1) シリアルポール コマンド を測定器に送信。
(2) シリアルポールに対する測定器の戻り値 (1バイト) を受信。
(3) 戻り値 と 第2引数 DET のバイナリand を演算し、1以上は(5)に進む。
(4) 第3引数 TOUT 以下の時間経過であれば、(1) に戻る。
(5) 測定器よりテキスト"1" を受信。
(6) 本プロシージャを終了。

適応
機種
HP3478A