コントローラ関数
- 更新日2025-07-30
- 12分で読める
コントローラ関数はコントローラを構成します。また、すべての計測器が応答するIEEE 488コマンドを送信します。
cac―アクティブコントローラになる
| 構文 | cac 0(同期的に制御を取得します) |
| cac 1(直ちに制御を取得します) |
cacは制御を同期的にまたは即時に、場合によっては非同期に取得します。 You generally do not need to use the cac function because other functions, such as cmd and rpp, take control automatically.
データのハンドシェイク処理中に制御を同期的に取得しようとすると、関数はハンドシェイクが完了するまで制御の取得動作を行いません。ハンドシェイク処理中でなければ、関数は制御の取得動作をただちに実行します。読み取りまたは書き込み操作がタイムアウトやその他のエラーで完了した場合、同期的な制御の取得は保証されません。
制御の同期的取得が不可能な場合(タイムアウトエラーの後など)は、非同期に制御を取得する必要があります。
GPIBコントローラがCICではない場合は、ECICエラーが発生します。
cmd―IEEE 488コマンドを送信する
| 構文 | cmd string |
cmdはGPIBコマンドメッセージを送信します。これらのコマンドメッセージには、デバイスのトークアドレス、リスンアドレス、2次アドレス、シリアルおよびパラレルポール構成メッセージ、およびデバイスクリアとトリガメッセージが含まれます。
cmdは、デバイスにプログラミング命令を転送する目的では使用しません。 The GPIB Read and GPIB Write functions transmit programming instructions and other device-dependent information.
文字列には、コントローラが送信するコマンドバイトが含まれています。 ASCII characters represent these bytes in cmd string. 表示できない文字を送らなければならない場合は、 、文字列コントロールまたは文字列定数で バックスラッシュ・コードを有効に するか、フォーマット関数を使用してコマンドを16進数でリストすることができる。
dma―DMAモードまたはプログラムI/Oモードに設定する
| 構文 | dma 0(プログラムI/Oを使用) |
| dma 1(DMA使用) |
dmaは、データ転送にDMAを使用するかどうかを示します。
GPIBコントローラにはDMA機能を持たないものがあります。 dma 1を実行しようとすると、この関数は GPIBエラー 11を返し、能力がないことを示します。
gts―アクティブコントローラからスタンバイに移行する
| 構文 | gts 0(シャドウハンドシェイクなし) |
| gts 1(シャドウハンドシェイクあり) |
gtsは、GPIBコントローラをコントローラスタンバイに設定し、アクティブコントローラの場合はATN信号をアサート解除します。通常、データ転送にはGPIBコントローラが必要です。gtsを使用すると、GPIBデバイスはGPIBコントローラがなくてもデータ転送できます。
シャドウハンドシェイクがアクティブの場合、GPIBコントローラはリスナとしてGPIB転送に加わりますが、データを受け取ることはありません。ENDメッセージを検出すると、GPIBコントローラはNRFD(データに対する準備ができていません)をアサートして、ハンドシェイクのホールドオフ状態にします。
シャドウハンドシェイクがアクティブでない場合は、GPIBコントローラはシャドウハンドシェイクもハンドシェイクホールドオフも実行しません。
シャドウハンドシェイクオプションを有効にすると、GPIBコントローラはリスナとしてデータハンドシェイクに加わりますが、実際にはデータを読み取りません。GPIBコントローラは、ENDメッセージを検出するまで転送をモニタし、それ以降の転送を停止します。 This mechanism allows the GPIB controller to take control synchronously on subsequent operations such as cmd or rpp.
gtsコマンドの送信後は、必ずENDの転送を待ってから次のGPIBコマンドを送信してください。これには「GPIB待機」関数を使用できます。
GPIBコントローラがCICではない場合は、ECICエラーが発生します。
ist―各ステータスビットを設定する
| 構文 | ist 0(個々のステータスビットをクリアします) |
| ist 1(個々のステータスビットを設定します) | |
| ist sets the sense of the individual status (ist) bit. |
istを使用するのは、GPIBコントローラがCICではないが、アクティブコントローラのデバイスが実行するパラレルポールに加わる場合です。CICは、識別(IDY)メッセージを送信するEOIとATN信号をアサートして、パラレルポールを実行します。このメッセージがアクティブである場合、ポールに加わるように構成された各デバイスは、あらかじめ決められたGPIBデータラインをアサートし、そのローカルistビットの値に応じてTRUEまたはFALSEで応答します。例えば、GPIB コントローラが DIO3 データラインをドライブするように割り当てることができます。逆に、DIO3を駆動するために、 istが 0の場合はTRUE、 1の 場合はFALSEを割り当てることができる。
各デバイスに有効なパラレルポールイネーブル(PPE)メッセージは、istの値、動作しているライン、および動作しているラインの検出との間の関係を決定します。GPIBコントローラは、このメッセージをppcを使用してローカルに受信するか、CICからのコマンドによってリモートに受け取ることができます。PPEメッセージがいったん実行されると、istはGPIBコントローラがパラレルポール時にラインを動かす際の検出を変更し、GPIBコントローラは1ビットのデバイス特有のメッセージをコントローラに伝えることができます。
llo―ローカルロックアウト
| 構文 | llo |
lloはすべてのデバイスをローカルロックアウト状態にします。通常、この動作によりデバイスのフロントパネルからの入力は認識できなくなります。
lloは、Local Lockout(LLO)コマンドを送信します。
loc―コントローラをローカル状態にする
| 構文 | loc |
locは、GPIBコントローラがリモートモードにロック(ステータスのLOKビットに表示)されていない場合、ローカルメッセージのReturn To Local (RTL)を送信してGPIBコントローラをローカル状態にします。コンピュータを使用して測定器をシミュレーションしている場合は、locを使用してフロントパネルのRTLスイッチをシミュレーションすることができます。
off―デバイスをオフラインにする
| 構文 | OFF |
offはコントローラをオフラインにします。これが必要なのは、NI-488ライブラリを使用している他のアプリケーションとコントローラを共有している場合のみです。
ppc―パラレルポール構成(有効および無効)
| 構文 | ppc byte |
ppc configures the GPIB Controller to participate in a parallel poll by setting its Local Poll Enable (LPE) message to the value of byte. バイトの値が0の場合、GPIBコントローラは自身の構成を解除します。
パラレルポール時にデバイスが識別(IDY)メッセージに応答する際に使用するGPIBデータライン(DIO1~DIO8)と検出(1または0)は、16種のParallel Poll Enable(PPE)メッセージそれぞれによって選択されます。デバイスは割り当てられたメッセージと個々のステータス(ist)ビットの現在値を解釈し、選択されたラインがTRUEになっているかFALSEになっているかを判断します。例えば、PPE=0x64 の場合、DIO5 は 0 で あれば TRUE、1 で あれば FALSE に駆動される。PPE=0x68 の場合、DIO1 PPE メッセージが有効である。どのPPEおよびPPDのメッセージが送信されたかを知り、応答が何を示すのかを判断する必要があります。
ppu―パラレルポーリング構成を解除する
| 構文 | ppu |
ppuは、すべてのデバイスが、パラレルポールへ応答しないようにします。
ppuは、Parallel Poll Unconfigure(PPU)コマンドを送信します。
rpp―パラレルポールを実行
| 構文 | rpp |
rppは、IDYメッセージを送信するATNまたはEOI信号をアサートして、前に構成したデバイスのパラレルポールを実行します。
rppは、パラレルポール応答をASCII文字で出力文字列に入れます。
rsc―システム制御の解放または要求する
| 構文 | rsc 0(システム制御を解放) |
| rsc 1(システム制御を要求) |
rsc releases or requests the capability of the GPIB controller to send the Interface Clear (IFC) and Remote Enable (REN) messages to GPIB devices using the sic and sre functions. GPIBコントローラが別のコントローラによって送信されたIFCに応答するには、そのGPIBコントローラはシステムコントローラであってはなりません。
ほとんどのアプリケーションでは、GPIBコントローラが常にシステムコントローラです。コンピュータがプログラムの実行中を通してシステムコントローラでない場合にのみrscを使用します。
rsv―サービス要求とシリアルポールステータスバイト設定の両方またはどちらかを実行する
| 構文 | rsv byte |
rsv sets the serial poll status byte of the GPIB controller to byte. GPIBコントローラはまた、バイトに0x40ビットが設定されると、GPIB RQSラインをアサートしてコントローラにサービス要求も行います。たとえば、GPIB RQSラインをアサートする場合、0x40ビットが設定されているASCII文字@を送信します。
rsvを使用すると、Service Request(SRQ)信号を使用してコントローラにサービスを要求したり、コントローラがGPIBポートにシリアルポールを実行する場合にシステム特定のステータスバイトを提供することもできます。
sic―インタフェースクリアを送信する
| 構文 | sic |
コントローラがシステムコントローラの権限を持っている場合、sicは最低100ミリ秒間そのコントローラにIFC信号をアサートさせます。この動作はGPIBを初期化し、コントローラポートをCICにします。一般的にsicは、デバイスをCICにしたり、バスのフォルト状態をクリアするときに使用します。
IFC信号はバスデバイスのGPIB関数のみをリセットします。内部デバイスの関数はリセットしません。デバイス関数は、Device Clear(DCL)とSelected Device Clear(SDC)コマンドによってリセットされます。これらのメッセージによる動作を判断するには、計測器の資料を参照してください。
sre―リモート有効のアサートまたはアサート解除する
| 構文 | sre 0(リモート有効のアサートと解除) |
| sre 1(リモート有効のアサート) |
sreは、GPIB RENラインをアサートまたはアサート解除します。デバイスは、操作のローカルモードまたはリモートモードを選択する際にRENをモニタします。リスンアドレスを受信して初めて、デバイスは実際にリモートモードに入ります。
コントローラがシステムコントローラでない場合は、ESACエラーが発生します。