zigspe (ADRS) As Byte | ||
---|---|---|
概要 |
シリアルポール(SPE)を送信し、測定器から返ってくる値 (ステータス・バイト・レジスタ) を戻します。 |
|
定義 | 戻り値 (Byte) |
SPEの結果 (測定器のステータス・バイト・レジスタ) (1-Byte) |
ADRS (Byte) |
測定器の GPIB アドレス (0〜30) |
|
例1 | Dim STA As Byte STA = zigspef(ADRS) 変数 STA には測定器のステータス・バイト・レジスタの値が代入されます。 ステータス・バイト・レジスタの各ビット定義は測定器により異なります。 |
|
例2 | Sub Test() Dim STA As Byte Dim ADRS As Byte ADRS = 18 Call zigout(ADRS, "init:cont off") 'スペアナ フリーラン を OFF にして、シングルスイープに設定 Call zigout(ADRS, "init:rest") 'スイープ、リスタート Call zigout(ADRS, "*opc?") ' *OPC? 実行 Do ' シリアル・ポールのループ STA = zigspef(ADRS) STA = zibandbt(STA, 16) ' FLG and 16 (VBAのユーザ関数) Loop While STA <> 16 ' ビット4=1 でループ脱出 TMP = ziginp(ADRS) '"1"を読取る End Sub Function zibandbt(a As Byte, b As Byte) As Byte zibandbt = (a And b) End Function スペアナのスイープをシングルに設定し、*OPC? を送信します。 測定器のスイープ終了時、ステータス・バイト・レジスタ の ビット5 が1になります。 Doループ文で ビット5 が1の時にループを抜けるようにします。 測定終了時、測定器は "1" のデータを送信します。(*OPC? のスペック) 変数 TMP にその "1" が代入されます。 この "1" を読まないと、測定データを受信したつもりでも、そのデータの先頭に "1" が紛れ込み、 読み取る順番が 1つずれてしまいます。 この手法は、たとえば、スペアナ測定で、16回アベレージの結果を取得する場面で利用できます。 RBW や VBW によってスイープスピードが変わりますので、一定時間待ってからデータ取得するやり方ですと、 そのWAIT時間の設定に悩んでしまいます。 このやり方だと、測定終了を待ってからデータ取得できますし、WAIT時間の設定に悩む事がありません。 |
|
補足 | ●zigspef(ADRS) の動作 (1) GPIBコマンド・モード UNL + UNT + TA + MLA + SPE を送信 (2) 測定器から 1バイトを受信 (3) GPIBコマンド・モード SPD + UNT を送信 |