GPIBドライバでのSRQ割り込みサービスルーチンの設定方法



使用ソフトウェア: Driver Software>>NI-488.2
使用ソフトウェア・バージョン: 2.2
使用ソフトウェア・バージョンに特化: N/A
二次のソフトウェア: N/A

問題:
GPIBドライバを使用してSRQ割り込みサービスルーチンを設定することはできますか?


解決策:
SRQラインがGPIBバス上でアサートすると、すぐに自動ポーリングはプロセッサを中断しますが、SRQラインがアサートされたかどうかは、GPIB実行プログラムに通知されません。自動ポーリングを使用した場合、サービスリクエストが発生したかどうか確認するために、何度も繰り返してGPIBステータスワードのibstaの値を手動でチェックしなければなりません。これは、任意でおこなっていたことを自動でおこなわれる関数がGPIBドライバに含まれているかどうかで対応策が異なります。その関数が基本的にすることは、SRQラインがアサートされたときに実行プログラムを中断させ、SRQサービスでプログラマが設定した事項を自動で呼び出すことです。

DOS GPIBドライバには、割り込みサービスルーチンと同等のような事をおこなう2つのコマンドがあります。1つ目は、ibsrqで、ドライバがSRQラインのアサートを検知する場合に呼ばれるSRQに対してのサービス定義をプログラマがおこなえます。しかし、このSRQ状態のチェックはGPIBドライバの呼び出しがあった時のみおこなわれます。したがって、これは完全な割り込みサービスルーチンではなく、模擬関数となります。

より良い模擬関数は、「ON SRQ」呼ばれて、DOSベーシック、QuickBasic、およびBASICプログラムで利用可能です。詳しくは、NI-488.2 User Manual for DOSを参照してください。これは、プログラマがBASICのON PEN機能を使用し、SRQに対してのサービスルーチンの設定をします。これは、BASIC言語コードの実行ライン間でSRQに応答することを可能にします。これらの2つの方法は、DOS GPIBドライバで開発されるSRQサービスルーチン関数に限られます。

しかし、完全な割り込みサービスルーチン機能は、Windows 2000/98/95/NT GPIBドライバにおいて利用可能です。この機能を備えた関数は、ibnotifyと呼ばれ、これはプログラム実行中にibstaの値を常に監視します。また、ibstaのステータスによってプログラムを中断し、プログラマが定義した割り込みサービスルーチンへ移行します(監視されるステータスはmaskで設定された特別なibstaの値によって決まります)。詳細に関しては、NI-488.2 User Manual for Windowsを参照してください。

メモ:  ibnotifyは、Visual Basicでサポートされていません。Visual Basicでは、ibnotifyの動作に似たGpibNotify OLEコントロールを使用する必要があります。このOLEコントロールは、Visual Basic用GPIB Language Interfacesに付属しています。


関連リンク:
製品マニュアル: NI-488.2 User Manual for DOS (PDF)
製品マニュアル: NI-488.2 User Manual for Windows (2000/98/95/NT) (PDF)
製品マニュアル: NI-488.2 User Manual (PDF)
GPIB Language Interfaces


添付:





報告日時: 12/29/1995
最終更新日: 06/30/2016
ドキュメントID: 0GSH8AVD