13.01.2015 Views

GPC-4304 - インタフェース

GPC-4304 - インタフェース

GPC-4304 - インタフェース

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

GPIB-EX(PCI /C-PCI)<br />

<strong>GPC</strong>-<strong>4304</strong><br />

GP-IB <strong>インタフェース</strong>モジュール 用 Windows ドライバ<br />

Help for Windows<br />

www.interface.co.jp


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

目 次<br />

第 1 章 はじめに 3<br />

1.1 概 要 ................................................................................................................................................. 3<br />

1.2 特 長 ................................................................................................................................................. 3<br />

第 2 章 製 品 仕 様 4<br />

2.1 基 本 仕 様 ......................................................................................................................................... 4<br />

2.2 <strong>インタフェース</strong>・ファンクション ............................................................................................. 5<br />

2.3 製 品 構 成 ......................................................................................................................................... 6<br />

第 3 章 導 入 方 法 7<br />

3.1 インストール 手 順 ......................................................................................................................... 7<br />

3.2 コントロールパネル ..................................................................................................................... 7<br />

3.3 動 作 確 認 ( 動 かしてみよう) ................................................................................................... 11<br />

3.4 高 機 能 版 DLL 実 行 手 順 ................................................................................................................ 19<br />

3.5 標 準 版 DLL 実 行 手 順 .................................................................................................................... 29<br />

3.6 機 器 アドレステーブルについて ............................................................................................... 31<br />

第 4 章 リファレンス 39<br />

4.1 高 機 能 版 DLL ............................................................................................................................... 39<br />

4.2 標 準 版 DLL ................................................................................................................................. 167<br />

4.3 コールバック 関 数 ..................................................................................................................... 202<br />

4.4 戻 り 値 一 覧 ................................................................................................................................. 205<br />

4.5 プログラム 例 ............................................................................................................................. 209<br />

4.6 マルチライン<strong>インタフェース</strong>メッセージ 一 覧 ..................................................................... 221<br />

第 5 章 サンプルプログラム 223<br />

5.1 高 機 能 版 DLL ............................................................................................................................. 223<br />

5.2 標 準 版 DLL ................................................................................................................................. 223<br />

第 6 章 ユーティリティ 224<br />

6.1 動 作 確 認 プログラム ................................................................................................................. 224<br />

6.2 自 己 診 断 プログラム ................................................................................................................. 230<br />

第 7 章 重 要 な 情 報 233<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

2


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

第 1 章 はじめに<br />

1.1 概 要<br />

<strong>GPC</strong>-<strong>4304</strong> は、Windows 上 のアプリケーションから、 弊 社 GP-IB <strong>インタフェース</strong> 製 品 を 制 御 す<br />

る 為 のソフトウェアです。<br />

弊 社 GP-IB <strong>インタフェース</strong> 製 品 を Windows 上 のアプリケーションから DLL をダイナミックリ<br />

ンクし、API をコールすることにより 制 御 します。<br />

本 ドキュメントは、Windows 上 で <strong>GPC</strong>-<strong>4304</strong> を 使 用 するための 情 報 を 掲 載 しています。<br />

1.2 特 長<br />

1.2.1 高 機 能 版 DLL<br />

●コントローラ・イン・チャージにおいて、データ 送 信 / 受 信 時 におけるトーカ、リスナの 指 定 を<br />

GP-IB バスコマンドにて 事 前 に 行 う 必 要 はありません。わずらわしいトーカ、リスナの 指 定 は<br />

ドライバ 側 にて 自 動 で 設 定 するため、 機 器 の GP-IB アドレスの 指 定 のみでデータの 送 信 / 受 信 を<br />

実 行 することができます(トーカ、リスナを 意 識 しないデータ 送 受 信 )。<br />

●1 枚 だけではなく、 弊 社 GP-IB <strong>インタフェース</strong>を 混 在 にて 最 大 16 枚 まで 制 御 することができ<br />

ます( 複 数 枚 サポート)。<br />

●データ 転 送 終 了 まで 待 たずに 別 の 処 理 を 行 うことができます( 非 同 期 入 出 力 サポート)。<br />

● 非 コントローラとしての 使 用 も 可 能 なため、 弊 社 GP-IB <strong>インタフェース</strong>を 制 御 機 器 の 代 わりに<br />

して、コントローラから 制 御 させる 場 合 にも 使 用 できます。<br />

●SRQ 受 信 時 のイベント、およびコールバック 関 数 の 呼 び 出 しをサポートしています。<br />

●トーカ、リスナのみならず、デバイストリガ、デバイスクリア、IFC 受 信 など、 多 種 多 様 な 状<br />

態 を 検 出 することができます( 非 コントローラ 時 )。<br />

●ドライバの 様 々な 動 作 設 定 (デリミタ、GP-IB アドレス 等 )をソフトウェアにより 動 的 に 変 更 /<br />

取 得 可 能 です。<br />

●1 次 アドレスのみだけでなく、1 次 /2 次 アドレスも 使 用 可 能 です。<br />

1.2.2 標 準 版 DLL<br />

●GP-IB 制 御 に 必 要 最 小 限 の 関 数 を 用 意 しています。<br />

●SRQ 受 信 時 に、イベント、およびコールバック 関 数 を 呼 び 出 すことができます。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

3


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

第 2 章 製 品 仕 様<br />

2.1 基 本 仕 様<br />

最 大 デバイス 数 16 枚<br />

入 出 力 チャンネル 数 1チャンネル<br />

入 出 力 形 式 IEEE-488.1 規 格 (GP-IB) 準 拠<br />

IEEE-488.2 対 応<br />

マイアドレス 設 定 1 次 アドレスのみ<br />

1 次 アドレス、2 次 アドレス<br />

上 記 、2 つのアドレスモードをソフトウェアにて 設 定 可 能<br />

送 信 / 受 信 デリミタ ・デリミタ 無 し<br />

・EOI のみ<br />

・CR のみ<br />

・CR+EOI<br />

・LF のみ<br />

・LF+EOI<br />

・CRLF<br />

・CRLF+EOI<br />

・NULL (00h) (※1)<br />

・"!x" 感 嘆 符 に 続 く 文 字 をデリミタとする (※1)<br />

上 記 から 任 意 選 択 可 能<br />

データ 転 送 速 度 最 大 1.1 MB/s<br />

(バスマスタ 転 送 。 使 用 環 境 および 機 器 の 速 度 に 依 存 します。)<br />

※1 高 機 能 版 DLL の 機 能 です。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

4


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

2.2 <strong>インタフェース</strong>・ファンクション<br />

Function 機 能 内 容<br />

C C1 システム・コントローラ 機 能<br />

C2 IFC 送 信 、コントローラ・イン・チャージ 機 能<br />

C3 REN 送 信<br />

C4 SRQ 応 答<br />

C5 <strong>インタフェース</strong>・メッセージ 送 信 、コントロール 受 け、コントロール 渡 し、<br />

自 分 自 身 へのコントロール 渡 し、パラレル・ポール、ハンドシェークに 同 期<br />

してコントロール(※1)<br />

C28 <strong>インタフェース</strong>・メッセージ 送 信 (※2)<br />

SH SH1 ソース・ハンドシェイク 全 機 能<br />

AH AH1 アクセプタ・ハンドシェイク 全 機 能<br />

T T6 基 本 的 トーカ、シリアル・ポール、MLA によるトーカ 解 除<br />

TE TE6 基 本 的 拡 張 トーカ、シリアル・ポール、MSA によるトーカ 解 除<br />

L L4 基 本 的 リスナ、MTA によるリスナ 解 除<br />

LE LE4 基 本 的 拡 張 リスナ、MSA によるリスナ 解 除<br />

SR SR0 サービス・リクエスト 機 能 無 し(※2)<br />

SR1 サービス・リクエスト 全 機 能 (※1)<br />

RL RL0 リモート・ローカル 機 能 無 し(※2)<br />

RL1 リモート・ローカル 全 機 能 (※1)<br />

PP PP0 パラレル・ポール 機 能 無 し(※2)<br />

PP1 リモート・コンフィギュレーションによるパラレル・ポール(※1)<br />

PP2 ローカル・コンフィギュレーションによるパラレル・ポール(※1)<br />

DC DC1 デバイス・クリア 全 機 能<br />

DT DT1 デバイス・トリガ 全 機 能<br />

※1 高 機 能 版 DLL の 機 能 です。<br />

※2 標 準 版 DLL の 機 能 です。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

5


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

2.3 製 品 構 成<br />

製 品 構 成 ファイル 名 説 明<br />

弊 社 管 理 用 ファイル <strong>GPC</strong><strong>4304</strong>.VER 弊 社 ソフト 管 理 用 ファイル<br />

最 新 情 報 ドキュメント README.HTM 最 新 ドキュメント 掲 載 ファイル<br />

インストールプログラム SETUP.EXE インストール 用 ファイル<br />

動 作 確 認 プログラム<br />

GpibUtil.EXE<br />

ManualOp.EXE<br />

動 作 確 認 用 プログラム<br />

手 動 関 数 実 行 プログラム<br />

自 己 診 断 プログラム DIAGGPIB.EXE 自 己 診 断 プログラム<br />

サンプルプログラム<br />

Visual C# .NET *.cs Visual C# .NET 用 サンプルプログラム<br />

Visual C++ *.c Visual C++(MFC) 用 サンプルプログラム<br />

Visual Basic .NET *.vb Visual Basic .NET 用 サンプルプログラム<br />

Visual Basic *.bas Visual Basic 用 サンプルプログラム<br />

Delphi *.pas Delphi 用 サンプルプログラム<br />

DLL <strong>GPC</strong><strong>4304</strong>.DLL 高 機 能 版 ダイナミックリンクライブラリファイル<br />

<strong>GPC</strong><strong>4304</strong>.LIB<br />

<strong>GPC</strong><strong>4304</strong>2.DLL<br />

<strong>GPC</strong><strong>4304</strong>2.LIB<br />

MSVCRT.DLL<br />

高 機 能 版 インポートライブラリファイル<br />

標 準 版 ダイナミックリンクライブラリファイル<br />

標 準 版 インポートライブラリファイル<br />

C ランタイム 共 有 DLL<br />

デバイスドライバ <strong>GPC</strong><strong>4304</strong>.SYS Windows 2000 以 降 の OS 用 ドライバ<br />

ヘッダファイル<br />

Help<br />

<strong>GPC</strong><strong>4304</strong>.INF<br />

<strong>GPC</strong><strong>4304</strong>.SLD<br />

<strong>GPC</strong><strong>4304</strong>.SYS<br />

<strong>GPC</strong><strong>4304</strong>.INF<br />

<strong>GPC</strong><strong>4304</strong>.VXD<br />

<strong>GPC</strong><strong>4304</strong>.INF<br />

Windows 2000 以 降 の OS 用 ドライバ インストールファイ<br />

ル<br />

Windows Embedded 用 ドライバ SLD ファイル<br />

Windows NT 4.0 用 ドライバ<br />

Windows NT 4.0 用 ドライバ インストールファイル<br />

Windows Me/98/95 用 ドライバ<br />

Windows Me/98/95 用 ドライバ インストールファイル<br />

<strong>GPC</strong><strong>4304</strong>.H Visual C++ 用 ヘッダファイル( 高 機 能 版 )<br />

<strong>GPC</strong><strong>4304</strong>2.H Visual C++ 用 ヘッダファイル( 標 準 版 )<br />

<strong>GPC</strong><strong>4304</strong>.BAS Visual Basic 用 ヘッダファイル( 高 機 能 版 )<br />

<strong>GPC</strong><strong>4304</strong>2.BAS Visual Basic 用 ヘッダファイル( 標 準 版 )<br />

<strong>GPC</strong><strong>4304</strong>.PAS Delphi 用 ヘッダファイル( 高 機 能 版 )<br />

<strong>GPC</strong><strong>4304</strong>2.PAS Delphi 用 ヘッダファイル( 標 準 版 )<br />

HELP.PDF<br />

HELP_NET.PDF<br />

Help<br />

.NET 用 補 足 Help<br />

※Visual C# .NET,Visual Basic.NET 用 サンプルプログラムは、それぞれ Viausl C# .NET 2003,<br />

Visual Basic .NET 2003 を 使 用 して 作 成 しています。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

6


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

第 3 章 導 入 方 法<br />

3.1 インストール 手 順<br />

README.HTM のインストール 方 法 を 参 照 してください。<br />

3.2 コントロールパネル<br />

コントロールパネルの 設 定 により、デバイス 使 用 時 の 初 期 状 態 を 指 定 できます。<br />

インストール 直 後 の 動 作 モードおよびドライバの 状 態 は 下 図 の 通 りです。<br />

パラメタ 説 明 インストール 直<br />

後 の 初 期 値<br />

ボード 番 号 <strong>インタフェース</strong>モジュール 上 の RSW1 設 定 値 。 0<br />

動 作 モード コントローラ 動 作 をさせるためには「MASTER」、 非 コン MASTER<br />

トローラ 動 作 をさせるためには「SLAVE」を 設 定 します。<br />

1 次 アドレス 00h~1Eh の 範 囲 内 で、GP-IB バスに 接 続 している 他 の 機 00(h)<br />

器 と 重 ならないアドレスを 設 定 します。<br />

2 次 アドレス 60h~7Eh の 範 囲 内 で、アドレスを 設 定 します。<br />

FF(h)<br />

FFh を 設 定 すると、2 次 アドレスは 無 しとなります。<br />

送 受 信<br />

タイムアウト<br />

1~65535 の 範 囲 内 で、 機 器 とのデータ 転 送 時 間 を 考 えて、 100(×100ms)<br />

十 分 余 裕 のある 時 間 を 設 定 します。<br />

事 象 変 化<br />

タイムアウト<br />

コマンド 送 出<br />

タイムアウト<br />

ハンドシェイク<br />

タイミング<br />

送 信 デリミタ<br />

受 信 デリミタ<br />

STB 応 答 時 間<br />

PP 実 行 時 間<br />

1~65535 の 範 囲 内 で、 非 コントローラ 側 の 各 事 象 変 化 (ト<br />

ーカ 指 定 /リスナ 指 定 /デバイストリガ 受 信 などが 検 出 され<br />

るまで 待 つタイムアウト 時 間 を 設 定 します。<br />

1~65535 の 範 囲 内 で、マルチラインメッセージ,バスコ<br />

マンドの 送 出 タイムアウト 時 間 を 設 定 します。<br />

応 答 を 取 りあうまでの 時 間 を「 超 高 速 (350ns)」,「 高 速<br />

(500ns)」,「 通 常 (2μs)」から 選 択 します。(マルチライ<br />

ンメッセージセットリングタイム T1)<br />

GP-IB 制 御 を 行 う 機 器 のデリミタと 一 致 させるようにしま<br />

す。ご 使 用 の 機 器 の 取 扱 説 明 書 を 参 照 してください。<br />

1~65535 の 範 囲 内 で、 測 定 器 からステータスバイトが 送<br />

られてくるのを 待 つ 時 間 を 設 定 します。<br />

パラレルポールを 行 うときの 待 ち 時 間 を「2μs」,<br />

「10μs」から 選 択 します(パラレルポール 実 行 時 間 T6)。<br />

光 ケーブルを 使 用 してパラレルポールを 実 行 する 場 合 は、<br />

「10μs」に 変 更 します。<br />

ドライバパラメタの 初 期 値 を 必 要 に 応 じて 変 更 してください。<br />

ドライバパラメタ(ボード 番 号 を 除 く)は、プログラム 実 行 時 に 変 更 可 能 です。<br />

100(×100ms)<br />

100(×100ms)<br />

超 高 速<br />

CRLF+EOI<br />

CRLF+EOI<br />

100(×100ms)<br />

10μs<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

7


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

ドライバパラメタの 初 期 設 定 方 法 を 以 下 に 示 します。<br />

1) 「コントロールパネル」を 起 動 し、「Interface GP-IB Configuration」をダブルクリックします。<br />

【ボタンの 確 認 】<br />

追 加 : <strong>インタフェース</strong>モジュールの 追 加 を 行 います( 通 常 は 使 用 する 必 要 はありませ<br />

ん)。<br />

削 除 : <strong>インタフェース</strong>モジュールの 削 除 を 行 います。<br />

初 期 化 情 報 : 現 在 登 録 されている<strong>インタフェース</strong>モジュールの 初 期 化 情 報 を 設 定 します。<br />

閉 じる : 終 了 します。<br />

※ 削 除 、 初 期 化 情 報 のボタンは、 処 理 を 行 う<strong>インタフェース</strong>モジュールを 選 択 してからク<br />

リックしてください。<br />

2) 変 更 する<strong>インタフェース</strong>モジュール 型 式 をクリックして、 選 択 状 態 にしてください。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

8


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

3) 初 期 化 情 報 の 設 定 ( 変 更 )<br />

選 択 した<strong>インタフェース</strong>モジュールのドライバパラメタ 設 定 ( 変 更 )を 行 います。<br />

「Interface GP-IB Configuration」ダイアログボックスの「 初 期 化 情 報 」ボタンをクリックす<br />

ると、 初 期 情 報 設 定 ダイアログボックスが 表 示 されます。<br />

※ボード 番 号 は、<strong>インタフェース</strong>モジュール 上 のロータリスイッチ RSW1(CardBus 製 品 は<br />

CardBus ID)と 同 じ 値 に 設 定 してください。<br />

※1 次 アドレスは 00h~1Eh の 範 囲 内 で、その GP-IB バスに 接 続 されている 他 の 機 器 と、 重 複 し<br />

ない 値 に 設 定 してください。<br />

※2 次 アドレスは 60h~7Eh の 範 囲 内 で、その GP-IB バスに 接 続 されている 他 の 機 器 と、 重 複 し<br />

ない 値 に 設 定 してください。また、FFh を 設 定 しますと、GP-IB <strong>インタフェース</strong>モジュール 自<br />

身 の 2 次 アドレスは 無 しとなります。<br />

※ 送 信 / 受 信 デリミタは、GP-IB 制 御 を 行 う 機 器 のデリミタと 一 致 させるようにしてください。<br />

※ 送 受 信 タイムアウト 時 間 は、 機 器 とのデータ 転 送 時 間 を 考 えて、 十 分 余 裕 のある 時 間 を 設 定 し<br />

てください。<br />

※コマンド 送 出 タイムアウト 時 間 は、マルチラインメッセージ 送 信 時 に 機 器 がタイムアウトする<br />

場 合 、 値 を 増 やすようにしてください。<br />

※ 光 ケーブルを 使 用 してパラレルポールを 実 行 する 場 合 は、PP 実 行 時 間 を 10µs に 変 更 してくだ<br />

さい。<br />

※ハンドシェイクタイミングは、 機 器 とのハンドシェイクを 行 う 際 の 信 号 待 ち 時 間 を 設 定 します。<br />

・「 超 高 速 」 : 350ns (デフォルト)<br />

・「 高 速 」 : 500ns<br />

・「 通 常 」 : 2µs<br />

デフォルト 状 態 にて 送 信 / 受 信 時 に「 送 信 エラー:-13」または「タイムアウト:-14」が 発 生 す<br />

る 場 合 には、ハンドシェイクタイミングの 速 度 を 変 更 してみることをお 勧 めします。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

9


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

4) 設 定 変 更 後 、 再 起 動 を 行 います。<br />

再 起 動 後 、 変 更 した 情 報 がドライバに 反 映 されます。<br />

■ 非 コントローラで 使 用 する 場 合<br />

「 動 作 モード」を「SLAVE」に 変 更 してください。<br />

■ボードアクセス 番 号 と<strong>インタフェース</strong>モジュールの 関 係<br />

ボードアクセス 番 号 は、<strong>インタフェース</strong>モジュールを 識 別 するための 番 号 で、<strong>インタフェース</strong><br />

モジュール 上 にあるボード ID 設 定 用 ロータリスイッチ(RSW1)の 番 号 (CardBus 製 品 は<br />

CardBus ID)を 指 定 します。<br />

このボードアクセス 番 号 は、「 初 期 化 情 報 」で 設 定 し、 各 <strong>インタフェース</strong>モジュールと 対 応 付 け<br />

されます。1 台 のコンピュータで 複 数 枚 の<strong>インタフェース</strong>モジュールを 使 用 する 場 合 は、この<br />

ボードアクセス 番 号 を 重 複 しないように 設 定 してください。<br />

同 時 に 使 用 できる<strong>インタフェース</strong>モジュール 枚 数 は、 各 GP-IB <strong>インタフェース</strong>モジュールを 合<br />

せて 最 大 16 枚 までです。<br />

■デリミタの 扱 いについて<br />

PCI-<strong>4304</strong>/<strong>4304</strong>P, CTP-<strong>4304</strong>/<strong>4304</strong>P でデータ 送 受 信 時 に「デリミタ 無 し」をご 使 用 する 場 合 に<br />

は、'PciGpibExSetConfig' 関 数 にて '/MODE=IRQ' (データ 転 送 モードとして 割 り 込 み 転 送 を 使<br />

用 )にする 必 要 があります。<br />

通 常 のご 利 用 ではデータ 転 送 モードを 変 更 する 必 要 はありません。<br />

詳 細 につきましては、<br />

・ 高 機 能 DLL (<strong>GPC</strong><strong>4304</strong>.DLL) → PciGpibExSetConfig 関 数<br />

・ 標 準 DLL (<strong>GPC</strong><strong>4304</strong>2.DLL) → GpibSetConfig 関 数<br />

の 各 Help をご 参 照 ください。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

10


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

3.3 動 作 確 認 ( 動 かしてみよう)<br />

この 節 では、 本 ソフトウェアに 含 まれている GP-IB ユーティリティを 用 いて、 例 として PCI-<strong>4304</strong><br />

と GP-IB で 接 続 された 計 測 機 器 との 間 の 基 本 的 なバス 動 作 を 確 認 してみましょう。<br />

※ 以 下 の 準 備 をしてください。<br />

1. PCI-<strong>4304</strong> を、GP-IBケーブルでGP-IB 機 器 と 接 続 します。<br />

ユーザーズマニュアル『 機 器 への 接 続 方 法 』を 参 照 してください。<br />

2. PCI-<strong>4304</strong> のドライバのインストール、コントロールパネルの 設 定 を 行 います。<br />

『3.2 コントロールパネル』を 参 照 してください。 動 作 モードは「MASTER」に 設 定 します。<br />

3. PCI-<strong>4304</strong> のソフトウェアのインストールを 行 います。<br />

README.HTMのインストール 方 法 を 参 照 してください。<br />

4. 接 続 された 計 測 機 器 の、 機 器 アドレスをご 確 認 ください。<br />

確 認 方 法 は、 計 測 機 器 のマニュアルをご 覧 ください。<br />

計 測 機 器 の 機 器 アドレス ※ 1 は、<strong>インタフェース</strong>モジュールの 機 器 アドレス(プライマリアドレス ※ 2)<br />

と 重 複 しないようにしてください。 重 複 していた 場 合 には、 計 測 機 器 側 もしくは<strong>インタフェース</strong>モジ<br />

ュール 側 のどちらかの 機 器 アドレスを 変 更 してください。<br />

3.3.1 ユーティリティ 起 動 とボードの 初 期 化<br />

GPIB ユーティリティの 起 動 と、PCI-<strong>4304</strong> を 初 期 化 します。<br />

1)「スタート」メニューより「プログラム」-「Interface <strong>GPC</strong>-<strong>4304</strong>」-「GpibUtil」を 起 動 しま<br />

す。<br />

2)「ファイル」-「ボードのオープン」を 選 択 します。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

11


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

3)「ボードのオープン」ダイアログボックスが 表 示 されます。<br />

使 用 するボード,ボードの 機 器 アドレス, 計 測 機 器 のデリミタを 設 定 し、OK ボタンをクリック<br />

します。<br />

● 「コントロールパネル」を 起 動 し、「Interface GPIB Configuration」をダブルクリックしま<br />

す。<br />

● 「ボード」リストには、アクセスできる GPIB ボードの 型 式 とボード 識 別 番 号 の 一 覧 が 表 示<br />

されます。このリストからアクセスしたいボードを 一 つ 選 択 します。<br />

ユーザーズマニュアル 『 ボード 識 別 ロータリスイッチ(RSW1) 』 を 参 照<br />

● 「プライマリアドレス」,「セカンダリアドレス※2」は、 選 択 したボードの 機 器 アドレスを<br />

設 定 します。 初 期 値 はコントロールパネルで 設 定 した 値 になっています。<br />

※16 進 数 で 入 力 してください。<br />

オンラインヘルプ 『 コントロールパネル 』 を 参 照<br />

● 「デリミタ」は、 接 続 する 計 測 機 器 のマニュアルを 参 照 し、 一 致 するものを 設 定 します。<br />

以 上 で、PCI-<strong>4304</strong> が GPIB ユーティリティで 使 用 できるようになりました。<br />

次 に、 計 測 機 器 を GPIB の 手 順 によって 初 期 化 します。<br />

1) 「IFC」ボタンをクリックして、IFC ※ 3 メッセージを 発 行 します。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

12


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

IFC メッセージ 発 行 によって、GP-IB に 接 続 されているすべての 機 器 の GP-IB インタフェー<br />

スは 初 期 化 されます。<br />

IFC を 発 行 すると、 本 <strong>インタフェース</strong>モジュールが 当 番 コントローラ ※ 4 になり、CIC ランプ<br />

が 点 灯 します。<br />

同 時 に、ATN ランプも 点 灯 します。<br />

2) REN ※ 5 メッセージを 発 行 します。<br />

「REN」ボタンをクリックして、REN ランプを 点 灯 させます。<br />

この 時 、 本 <strong>インタフェース</strong>モジュールは REN メッセージを 有 効 にしています。<br />

3) SDC ※ 6 メッセージを 発 行 します。<br />

1.「Device Clear」ボタンをクリックします。<br />

2.「Address」ボックスに 計 測 機 器 のアドレスを 16 進 数 で 入 力 します。<br />

3. 最 後 に「Clear」ボタンを 押 します。<br />

SDC メッセージによって、GP-IB <strong>インタフェース</strong>に 接 続 されている 計 測 機 器 自 体 の 初 期 化 が<br />

行 われます。<br />

以 上 で、GP-IB 機 器 の 初 期 化 が 完 了 しました。<br />

【 用 語 解 説 】<br />

※1 機 器 アドレス<br />

計 測 機 器 ,GP-IB <strong>インタフェース</strong>モジュールに 割 り 当 てる GP-IB アドレスのことです。<br />

GP-IB の 制 御 を 行 うとき、この 機 器 アドレスを 指 定 することで 通 信 相 手 を 特 定 します。<br />

<strong>インタフェース</strong>モジュールと 計 測 機 器 の 機 器 アドレスは 重 複 しないように 設 定 してください。<br />

GP-IB ユーティリティ 側 では、「ボード 機 器 アドレス」として、<strong>インタフェース</strong>モジュール 自 身<br />

のアドレスを 表 示 しています。<br />

※2 プライマリアドレス、セカンダリアドレス<br />

機 器 アドレスの 種 類 として、 次 の 2 種 類 があります。<br />

・プライマリアドレス(1 次 アドレス) :16 進 数 00h~1Eh(10 進 数 では 0~30)の 値 が 設 定<br />

可 能 です。<br />

・セカンダリアドレス(2 次 アドレス) :16 進 数 60h~7Eh(10 進 数 では 96~126)の 値 が 設 定<br />

可 能 です。<br />

大 半 の 計 測 機 器 はプライマリアドレスのみ 指 定 します。<br />

これは、1 つのアドレス 指 定 で 計 測 機 器 を 特 定 可 能 だからです。<br />

しかし、 計 測 機 器 によっては、セカンダリアドレスを 持 つものもあります。<br />

これは、1 台 の 計 測 機 器 の 中 に 複 数 の 機 能 を 持 っている 場 合 などに 使 用 します。<br />

( 例 :マルチメータとロジックアナライザーが 1 台 の 計 測 機 器 となっており、 機 能 を 切 替 えて 使<br />

用 する 場 合 など)<br />

セカンダリアドレスのみ 単 独 で 指 定 することはできません。<br />

必 ず、プライマリアドレスとセカンダリアドレスはペアで 指 定 します。<br />

・プライマリアドレス 0Ah を 指 定 →1 つの 計 測 機 器 を 特 定<br />

・セカンダリアドレス 60h を 指 定 →プライマリアドレスで 特 定 した 計 測 機 器 の 中 で 更 に 機 能<br />

を 特 定<br />

※3 IFC(Interface Clear)<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

13


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

システムコントローラが、すべての 機 器 の<strong>インタフェース</strong> 機 能 (コントローラ,トーカ,リス<br />

ナ 機 能 )を 初 期 化 するために 送 信 するメッセージ。<br />

※4 コントローラ<br />

どの 機 器 がトーカやリスナになるかを 指 定 したり、バスの 制 御 機 能 を 持 つもの。コンピュータ<br />

の 中 の 管 理 者 , 会 議 の 進 行 役 にあたる。<br />

※5 REN(Remote Enable)<br />

システムコントローラが、 相 手 機 器 を GP-IB バスを 経 由 して 制 御 できるよう(リモートモード)<br />

に 指 示 する 時 に 送 信 するメッセージ。<br />

※6 SDC(Selected Device Clear)<br />

リスナに 指 定 された 機 器 を、 初 期 状 態 に 戻 すコマンドです。 機 器 により、 初 期 状 態 の 意 味 は<br />

異 なります。<br />

3.3.2 データの 送 信<br />

計 測 機 器 にデータを 送 信 してみましょう。<br />

計 測 機 器 の 中 には、 計 測 を 行 う 時 にデータ(デバイスディペンデントメッセージ)を 要 求 するものがあり<br />

ます。<br />

データの 意 味 やその 後 の 動 作 は、 個 々の 計 測 機 器 によって 定 義 されています。<br />

たとえば、マルチメータの 場 合 は、 計 測 トリガや 入 力 レンジなどを、データを 与 えることによって 設 定 で<br />

きます。<br />

1) 1.「Data Send」ボタンをクリックします。<br />

2.「Address」ボックスに 相 手 機 器 のアドレスを 16 進 数 で 入 力 します。<br />

3.「Exec」ボタンをクリックします。<br />

PCI-<strong>4304</strong> がトーカ ※ 1 になったことは、TA ランプが 点 灯 したことで 確 認 でき、データが 送 信<br />

できる 状 態 になります。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

14


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

2) 「Send Data」テキストボックス 内 に、リスナ ※ 2 へ 送 信 するデータを ASCII 文 字 で 入 力 し、<br />

「Enter」キーを 押 すと、リスナに 対 してデータを 送 信 します。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

15


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

【 用 語 解 説 】<br />

※1 トーカ<br />

送 信 機 能 を 持 つもの( 話 し 手 )。<br />

GP-IB では 接 続 している 機 器 が、 勝 手 にデータを 送 信 することができない。コントローラによ<br />

りトーカに 指 名 されると、データを 送 信 することができる。<br />

※2 リスナ<br />

受 信 機 能 を 持 つもの( 聞 き 手 )。<br />

GP-IB では 接 続 している 機 器 が、 勝 手 にデータを 受 信 することができない。コントローラによ<br />

りリスナに 指 名 されると、データを 受 信 することができる。<br />

3.3.3 データの 受 信<br />

計 測 機 器 が 出 力 するデータを 受 信 してみましょう。<br />

1) 1.「Data Receive」ボタンをクリックします。<br />

2.「Address」ボックスに 相 手 機 器 のアドレスを 16 進 数 で 入 力 します。<br />

3.「Exec」ボタンをクリックします。<br />

PCI-<strong>4304</strong> がリスナになったことは、LA ランプが 点 灯 したことで 確 認 でき、データが 受 信 で<br />

きる 状 態 になります。<br />

2) データを 受 信 します。<br />

「Recv」ボタンをクリックします。クリックすると、 計 測 機 器 が 出 力 するデータをデリミタ<br />

まで 受 信 し、「Receive Data」テキストボックス 内 に 受 信 データを 表 示 します。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

16


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

3.3.4 シリアルポールの 実 行<br />

計 測 機 器 の 中 には、サービス 要 求 のために SRQ ※ 1 メッセージを 有 効 にし、ステータスバイト(STB)<br />

※2 の 受 け 取 りを 要 求 するものがあります。コントローラが STB を 受 信 することをシリアルポール ※ 3<br />

といいます。<br />

1) 計 測 機 器 がサービス 要 求 するように 制 御 します。<br />

計 測 機 器 によって、サービス 要 求 する 条 件 が 違 います。 計 測 機 器 のマニュアルを 参 照 してくだ<br />

さい。<br />

計 測 機 器 がサービス 要 求 を 行 うと、SRQ メッセージが 有 効 になります。SRQ ランプが 点 灯 す<br />

ることにより 確 認 できます。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

17


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

2) シリアルポールを 実 行 します。<br />

1.「Serial Poll」ボタンを 押 します。<br />

2.「Address」ボックスに 相 手 機 器 のアドレスを 16 進 数 で 入 力 します。<br />

3.「Serial Poll」ボタンをクリックします。<br />

クリック 後 、 計 測 機 器 から 受 信 された STB 値 が「STB」ボックスに 表 示 されます。<br />

計 測 機 器 がサービス 要 求 を 取 り 下 げると、SRQ ランプは 消 灯 します。<br />

※ユーティリティの 詳 細 (その 他 の 機 能 等 )については『ユーティリティプログラム』を 参 照<br />

してください。<br />

以 上 で、PCI-<strong>4304</strong> を 使 った GP-IB の 基 本 的 バス 動 作 を 確 認 できました。<br />

【 用 語 解 説 】<br />

※1 SRQ<br />

サービスリクエスト。<br />

機 器 からの 事 象 の 変 化 を、コントローラに 伝 えるための 仕 組 みです。 事 象 の 変 化 を 受 け 取 るた<br />

めに「 割 り 込 み」を 用 いますが、サービスリクエストも 同 じことを 実 現 します。<br />

※2 ステータスバイト(STB)<br />

機 器 の 状 態 を 示 す 1 バイトのデータ。<br />

コントローラからのシリアルポールによって 読 み 取 られます。 通 常 、SRQ を 発 行 した 場 合 、そ<br />

の SRQ の 発 行 理 由 を、この STB によって 知 ることができます。<br />

※3 シリアルポール<br />

コントローラが 機 器 に 対 して、サービスリクエストを 送 信 したかどうか、1 台 ずつ 順 番 に 問 い<br />

合 わせ、ステータスバイトを 取 得 する 処 理 です。<br />

3.3.5 終 了 方 法<br />

<strong>インタフェース</strong>モジュールの 使 用 を 終 了 する 場 合 は、「ファイル」-「ボードのクローズ」を 選 択 し<br />

ます。<br />

本 ユーティリティを 終 了 する 場 合 は、<strong>インタフェース</strong>モジュールがクローズされている 状 態 で、「フ<br />

ァイル」-「アプリケーションの 終 了 」を 選 択 します。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

18


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

3.4 高 機 能 版 DLL 実 行 手 順<br />

ボードを 複 数 枚 使 用 する 場 合 は、PCI/CompactPCI ボード 上 のロータリスイッチ RSW1 の 設 定 値 が<br />

重 複 しないように 設 定 してからパソコンに 挿 入 してください。 複 数 のボードが 存 在 する 場 合 、ボード<br />

を 一 意 に 識 別 するための 番 号 となります。 重 複 していた 場 合 、 本 DLL は 正 常 に 動 作 いたしません。<br />

ボードをコントローラ(マスタ)として 使 用 する 場 合 の 基 本 的 な 制 御 の 手 順 は 以 下 の 通 りです。<br />

( 記 述 例 は C 言 語 です)<br />

1. 初 期 化<br />

<strong>インタフェース</strong>モジュールを PciGpibExInitBoard 関 数 で 初 期 化 します。このとき、アプリケ<br />

ーションのウィンドウハンドルも 一 緒 に 指 定 します。 非 同 期 で 送 受 信 を 行 わない 場 合 や、メッ<br />

セージポストを 行 わない 場 合 は WM_NULL または 0 を 指 定 します。<br />

PciGpibExInitBoard(0, hWnd);<br />

初 期 化 が 正 常 終 了 後 、 指 定 したボードアクセス 番 号 (この 場 合 は 0)で 以 後 の 各 関 数 を 使 用 するこ<br />

とができます。<br />

2. <strong>インタフェース</strong>モジュールの 設 定<br />

PciGpibExSetConfig 関 数 で、<strong>インタフェース</strong>モジュールのデリミタ 等 の 各 種 設 定 を 行 います。<br />

この 関 数 を 実 行 しない 場 合 は、 初 期 値 で 設 定 されます。 初 期 値 については、コントロールパネ<br />

ルアプレットで 設 定 した 値 が 使 用 されます。<br />

また、この 関 数 は 初 期 化 (PciGpibExInitBoard 関 数 )の 実 行 後 は 何 度 でも 実 行 できます。<br />

※コントロールパネルアプレットの 説 明 については、README およびユーザーズマニュアル<br />

を 御 参 照 ください。<br />

PciGpibExSetConfig(0, "/SDELIM=EOI /RDELIM=CRLF+EOI");<br />

送 信 デリミタとして[EOI のみ]、 受 信 デリミタとして[CRLF+EOI]を 設 定 しました。<br />

3. GP-IB <strong>インタフェース</strong>の 初 期 化<br />

コントローラの 場 合 は、PciGpibExSetIfc 関 数 を 使 用 して GP-IB バスの 初 期 化 を 行 います。 続<br />

いて、PciGpibExSetRen 関 数 を 使 用 して REN 信 号 を 有 効 にします。<br />

PciGpibExSetIfc(0, 1);<br />

PciGpibExSetRen(0);<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

19


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

4. 送 信<br />

機 器 固 有 の 制 御 コマンドは GP-IB バスのデータ 送 信 として 実 行 します。<br />

PciGpibExMastSendData 関 数 で 指 定 した 機 器 に 対 してデータを 送 信 します。<br />

・1 番 目 の 引 数 はボードアクセス 番 号 です。<br />

・2 番 目 の 引 数 はデータ 送 信 先 の 機 器 アドレステーブルを 指 定 します。<br />

・3 番 目 の 引 数 は 送 信 データ 長 ( 単 位 :バイト)です。<br />

・4 番 目 の 引 数 は 送 信 データへのポインタです。<br />

・5 番 目 の 引 数 は 同 期 転 送 時 には WM_NULL または 0 を 指 定 します。 非 同 期 転 送 の 場 合 には<br />

データ 送 信 完 了 時 にこの 引 数 に 設 定 したメッセージコードがポストされます。<br />

int nAdrsTbl[8];<br />

・<br />

・<br />

nAdrsTbl[0] = 1;<br />

nAdrsTbl[1] = -1;<br />

// 制 御 する 測 定 機 器 のアドレス<br />

// アドレステーブルの 終 端<br />

// 機 器 アドレステーブルの 終 端 には 必 ず -1 を 代 入 してください。<br />

・<br />

・<br />

PciGpibExMastSendData(0, nAdrsTbl, 10, ″0123456789″, 0);<br />

5. 受 信<br />

機 器 から 送 られてくるデータは PciGpibExMastRecvData 関 数 にて 受 信 します。<br />

PciGpibExMastRecvData 関 数 を 実 行 することで 受 信 データおよび 受 信 データ 長 を 取 得 するこ<br />

とができます。<br />

・1 番 目 の 引 数 はボードアクセス 番 号 です。<br />

・2 番 目 の 引 数 はデータを 送 信 してくる 機 器 アドレステーブルを 指 定 します。<br />

・3 番 目 の 引 数 は 受 信 バッファ 長 ( 単 位 :バイト)です。<br />

API 呼 出 し 前 に 受 信 バッファ 長 にはあらかじめ 受 信 バッファの 長 さを 格 納 しておく 必 要 があ<br />

ります。<br />

受 信 バッファ 長 のサイズはデリミタサイズも 含 めて 充 分 余 裕 を 持 って 指 定 してください。<br />

これは 機 器 から 送 られてくるデータ 長 が 10 バイトと 判 明 しており、デリミタに CRLF を 指<br />

定 している 場 合 、 受 信 バッファサイズは 最 低 12 バイト 必 要 であることを 示 します。<br />

・4 番 目 の 引 数 は 受 信 バッファへのポインタです。<br />

・5 番 目 の 引 数 は 同 期 転 送 時 には WM_NULL または 0 を 指 定 します。 非 同 期 転 送 の 場 合 には<br />

データ 受 信 完 了 時 にこの 引 数 に 設 定 したメッセージコードがポストされます。<br />

char szData[1024]; // グローバル 変 数 : 受 信 バッファ<br />

・<br />

int nAdrsTbl[8]; // 機 器 アドレステーブル<br />

DWORD dwLen; // 受 信 バッファ 長 を 格 納 、API 呼 び 出 し 後 には 実 際 の 受 信 データ 長<br />

が 格 納 される<br />

・<br />

・<br />

nAdrsTbl[0] = 1; // 制 御 する 測 定 機 器 のアドレス<br />

nAdrsTbl[1] = -1; // アドレステーブルの 終 端<br />

・<br />

・<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

20


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

dwLen = 1024; // 受 信 バッファのサイズ<br />

PciGpibExMastRecvData(0, nAdrsTbl, &dwLen, szData, 0);<br />

関 数 呼 び 出 し 後 に 変 数 dwLen には 実 際 に 受 信 したデータ 長 が 格 納 されています。<br />

6. シリアル・ポーリング<br />

シリアルポーリングの 実 行 手 順 は 次 の 通 りです。<br />

1.PciGpibExCheckSrq 関 数 を 実 行 し、 機 器 からの SRQ 信 号 が 有 効 であるかを 確 認 します。<br />

2. 機 器 からの SRQ 信 号 が 有 効 であれば、 機 器 からのステータスバイト(STB)を 受 信 するために、<br />

必 ずシリアルポーリング(PciGpibExExecSpoll 関 数 )を 実 行 します。<br />

7. その 他 の 動 作<br />

情 報 取 得 、バス・ステータス 取 得 等 、 他 の API は 必 要 に 応 じて 個 別 に 実 行 します。<br />

PciGpibExGetConfig(0, 3, &ulPrm);<br />

// 送 信 デリミタ 値 取 得<br />

・<br />

・<br />

PciGpibExExecSpoll(0, nAdrsTbl, nStbTbl, nStbAdrs); // シリアル・ポール 実 行<br />

・<br />

・<br />

PciGpibExGetStatus(0, &uStatus);<br />

// バス・ステータス 取 得<br />

コントローラでのみ 実 行 可 能 なAPIもあります。 詳 細 については『4.1 高 機 能 版 DLL』をご 参<br />

照 ください。<br />

8. 終 了<br />

<strong>インタフェース</strong>モジュールを PciGpibExFinishBoard 関 数 で 使 用 終 了 します。<br />

必 ず 本 関 数 を 実 行 して 処 理 を 終 了 してください。<br />

PciGpibExFinishBoard(0);<br />

2.~7.は 初 期 化 、 終 了 の 間 で 必 要 に 応 じて 繰 り 返 し 実 行 できます(ただし、3.だけは 最 初 の 1<br />

回 のみの 実 行 となります。)<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

21


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

3.4.1 非 コントローラとしての 実 行 手 順<br />

<strong>インタフェース</strong>モジュールを 非 コントローラとして 使 用 する 場 合 の 基 本 的 な 制 御 の 手 順 は 以 下 の 通<br />

りです。( 記 述 例 は C 言 語 です)<br />

1. 初 期 化<br />

<strong>インタフェース</strong>モジュールを PciGpibExInitBoard 関 数 で 初 期 化 します。このとき、アプリケ<br />

ーションのウィンドウハンドルも 一 緒 に 指 定 します。 非 同 期 で 送 受 信 を 行 わない 場 合 や、メッ<br />

セージポストを 行 わない 場 合 は WM_NULL または 0 を 指 定 します。<br />

PciGpibExInitBoard(0, hWnd);<br />

初 期 化 が 正 常 終 了 後 、 指 定 したボードアクセス 番 号 (この 場 合 は 0)で 以 後 の 各 関 数 を 使 用 するこ<br />

とができます。<br />

2. <strong>インタフェース</strong>モジュールの 設 定<br />

PciGpibExSetConfig 関 数 で、<strong>インタフェース</strong>モジュールのデリミタ 等 の 各 種 設 定 を 行 います。<br />

この 関 数 を 実 行 しない 場 合 は、 初 期 値 で 設 定 されます。 初 期 値 については、コントロールパネ<br />

ルアプレットで 設 定 した 値 が 使 用 されます。<br />

また、この 関 数 は 初 期 化 (PciGpibExInitBoard 関 数 )の 実 行 後 は 何 度 でも 実 行 できます。<br />

※コントロールパネルアプレットの 説 明 については、README およびユーザーズマニュアル<br />

を 御 参 照 ください。<br />

PciGpibExSetConfig(0, ″/SDELIM=EOI /RDELIM=CRLF+EOI″);<br />

送 信 デリミタとして[EOI のみ]、 受 信 デリミタとして[CRLF+EOI]を 設 定 しました。<br />

以 上 、 非 コントローラとしての 初 期 化 は 完 了 です。<br />

3. バス・ステータス 確 認<br />

非 コントローラで 使 用 する 場 合 、データの 送 信 / 受 信 を 行 うためには<strong>インタフェース</strong>モジュール<br />

がトーカ/リスナの 状 態 になる 必 要 があります。PciGpibExGetStatus 関 数 にて<strong>インタフェース</strong><br />

モジュールがどのような 状 態 かを 取 得 することができます。<br />

PciGpibExGetStatus(0, &uStatus);<br />

if (uStatus & 0x01000000) { // <strong>インタフェース</strong>モジュールはトーカ 指 定 されているか<br />

// トーカ 指 定 済 ならば、データ 送 信 を 行 う<br />

DataSend(…);<br />

}<br />

else if (uStatus & 0x02000000) { // <strong>インタフェース</strong>モジュールはリスナ 指 定 されているか<br />

// リスナ 指 定 済 ならば、データ 受 信 を 行 う<br />

DataRecv(…);<br />

}<br />

PciGpibExGetStatus 関 数 にて<strong>インタフェース</strong>モジュールの 状 態 を 確 認 後 に、データ 送 信 また<br />

はデータ 受 信 の 処 理 を 実 行 します。<br />

※コントローラからデータ 送 信 またはデータ 受 信 を 実 行 した 後 にマルチラインメッセージ<br />

[UNT], [UNL]を 送 信 することで、 非 コントローラ 側 のトーカ 状 態 /リスナ 状 態 を 完 全 に 解 除 さ<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

22


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

せることができます。こうすることで 非 コントローラ 側 は 次 のトーカ 指 定 /リスナ 指 定 を 検 出 す<br />

ることが 可 能 です。<br />

4. 送 信<br />

<strong>インタフェース</strong>モジュールがトーカ 指 定 されている 場 合 には、GP-IB バスへデータ 送 信 を 実 行<br />

することができます。<br />

PciGpibExSlavSendData 関 数 でデータを 送 信 します。<br />

・1 番 目 の 引 数 はボードアクセス 番 号 です。<br />

・2 番 目 の 引 数 は 送 信 データ 長 ( 単 位 :バイト)です。<br />

・3 番 目 の 引 数 は 送 信 データへのポインタです。<br />

・4 番 目 の 引 数 は 同 期 転 送 時 には WM_NULL または 0 を 指 定 します。 非 同 期 転 送 の 場 合 には<br />

データ 送 信 完 了 時 にこの 引 数 に 設 定 したメッセージコードがポストされます。<br />

int DataSend(…)<br />

{<br />

・<br />

PciGpibExSlavSendData(0, 10, ″0123456789″, 0);<br />

・<br />

}<br />

5. 受 信<br />

<strong>インタフェース</strong>モジュールがリスナ 指 定 されている 場 合 には、GP-IB バスからのデータ 受 信 を<br />

実 行 することができます。<br />

PciGpibExSlavRecvData 関 数 を 実 行 することで 受 信 データおよび 受 信 データ 長 を 取 得 するこ<br />

とができます。<br />

・1 番 目 の 引 数 はボードアクセス 番 号 です。<br />

・2 番 目 の 引 数 は 受 信 バッファ 長 ( 単 位 :バイト)です。<br />

API 呼 出 し 前 に 受 信 バッファ 長 にはあらかじめ 受 信 バッファの 長 さを 格 納 しておく 必 要 があ<br />

ります。<br />

受 信 バッファ 長 のサイズはデリミタサイズも 含 めて 充 分 余 裕 を 持 って 指 定 してください。<br />

これは 機 器 から 送 られてくるデータ 長 が 10 バイトと 判 明 しており、デリミタに CRLF を 指<br />

定 している 場 合 、 受 信 バッファサイズは 最 低 12 バイト 必 要 であることを 示 します。<br />

・3 番 目 の 引 数 は 受 信 バッファへのポインタです。<br />

・4 番 目 の 引 数 は 同 期 転 送 時 には WM_NULL または 0 を 指 定 します。 非 同 期 転 送 の 場 合 には<br />

データ 受 信 完 了 時 にこの 引 数 に 設 定 したメッセージコードがポストされます。<br />

char szData[1024]; // グローバル 変 数 : 受 信 バッファ<br />

int DataRecv(…)<br />

{<br />

DWORD dwLen; // 受 信 バッファ 長 を 格 納 、API 呼 び 出 し 後 には 実 際 の 受 信 データ 長 が<br />

// 格 納 される<br />

・<br />

・<br />

dwLen = 1024; // 受 信 バッファのサイズ<br />

PciGpibExSlavRecvData(0, &dwLen, szData, 0);<br />

・<br />

・<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

23


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

}<br />

関 数 呼 び 出 し 後 に 変 数 dwLen には 実 際 に 受 信 したデータ 長 が 格 納 されています。<br />

6. その 他 の 動 作<br />

PciGpibExGetConfig(0, 3, &ulPrm);// 送 信 デリミタ 値 取 得<br />

・<br />

・<br />

PciGpibExSlavSetSrq(0, 0x5); // STB 設 定 、SRQ 信 号 送 出<br />

・<br />

・<br />

PciGpibExSlavCheckStb(0); // コントローラよりシリアルポーリングされたかを 確 認<br />

非 コントローラでのみ 実 行 可 能 なAPIもあります。 詳 細 については『4.1 高 機 能 版 DLL』をご<br />

参 照 ください。<br />

7. 終 了<br />

<strong>インタフェース</strong>モジュールを PciGpibExFinishBoard 関 数 で 使 用 終 了 します。<br />

必 ず 本 関 数 を 実 行 して 処 理 を 終 了 してください。<br />

PciGpibExFinishBoard(0);<br />

2.~6.は 初 期 化 、 終 了 の 間 で 必 要 に 応 じて 繰 り 返 し 実 行 できます。<br />

送 信 / 受 信 API を 実 行 する 場 合 には、<strong>インタフェース</strong>モジュールが 送 信 可 能 か 受 信 可 能 かを<br />

確 認 するために「3.バス・ステータス 取 得 」にて<strong>インタフェース</strong>モジュールの 状 態 をあらか<br />

じめ 確 認 しておく 必 要 があります。<br />

その 他 の 状 態 については、2.~6.のどの 時 点 でも PciGpibExGetStatus 関 数 を 呼 び 出 すこと<br />

が 可 能 です。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

24


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

3.4.2 Programming Tips<br />

■ 数 秒 間 隔 で 連 続 してデータを 送 受 信 する 方 法 について<br />

数 秒 間 隔 の 連 続 データ 送 受 信 方 法 については、 各 言 語 にて 下 記 の 方 法 が 挙 げられます。<br />

●Visual C++の 場 合<br />

1) Win32API の SetTimer 関 数 を 使 用 し、 一 定 周 期 のタイマイベントを 発 生 させて、データ 送 受<br />

信 を 実 行 。<br />

※C 言 語 ではマルチメディアタイマを 使 用 することも 可 能 です。マルチメディアタイマの 詳<br />

細 については 書 籍 もしくは Visual C++のヘルプなどをご 参 照 ください。<br />

2) データ 送 受 信 を 行 う 専 用 のスレッドを 作 成 し、スレッドの 中 で 待 ち 時 間 を 取 りながら、データ<br />

送 受 信 を 実 行 。<br />

3) 間 隔 が 多 少 不 正 確 でもかまわない 場 合 には、 機 器 からの 計 測 完 了 時 の SRQ を 利 用 し、インタ<br />

フェースモジュール 側 では PciGpibExSetSrqEvent 関 数 を 使 用 して SRQ 受 信 コールバック 関<br />

数 内 でデータ 送 受 信 を 実 行 。<br />

※SRQ を 使 用 する 場 合 には、シリアルポーリングを 実 行 する 必 要 があります。<br />

4) または、 高 機 能 ActiveX の SRQ イベントを 使 用 し、SRQ イベントプロシージャ 内 でデータ 送<br />

受 信 を 実 行 。<br />

※SRQ を 使 用 する 場 合 には、シリアルポーリングを 実 行 する 必 要 があります。<br />

●Visual Basic の 場 合<br />

1) タイマコントロールを 使 用 し、 一 定 周 期 のタイマイベントを 発 生 させて、データ 送 受 信 を 実 行 。<br />

2) 間 隔 が 多 少 不 正 確 でもかまわない 場 合 には、 高 機 能 ActiveX の SRQ イベントを 使 用 し、SRQ<br />

イベントプロシージャ 内 でデータ 送 受 信 を 実 行 。<br />

※SRQ を 使 用 する 場 合 には、シリアルポーリングを 実 行 する 必 要 があります。<br />

●Delphi の 場 合<br />

1) タイマコントロールを 使 用 し、 一 定 周 期 のタイマイベントを 発 生 させて、データ 送 受 信 を 実 行 。<br />

2) 間 隔 が 多 少 不 正 確 でもかまわない 場 合 には、 高 機 能 ActiveX の SRQ イベントを 使 用 し、SRQ<br />

イベントプロシージャ 内 でデータ 送 受 信 を 実 行 。<br />

※SRQ を 使 用 する 場 合 には、シリアルポーリングを 実 行 する 必 要 があります。<br />

SRQ の 利 用 方 法 については、 機 器 のマニュアルもしくは 計 測 機 器 メーカへお 問 い 合 わせください。<br />

■ 複 数 台 の 機 器 からの SRQ を 利 用 して 制 御 する 方 法 について<br />

各 言 語 毎 での SRQ 確 認 方 法 と 注 意 事 項 は 次 の 通 りです。<br />

●Visual C++の 場 合<br />

■パターン 1 PciGpibExCheckSrq 関 数 を 使 用 して SRQ 受 信 をチェック<br />

1) PciGpibExCheckSrq 関 数 で 現 在 の SRQ 受 信 状 況 を 確 認 します。<br />

2) SRQ 受 信 を 確 認 後 、 複 数 台 の 機 器 に 対 して PciGpibExExecSpoll 関 数 を 実 行 (シリアルポーリ<br />

ング)します。<br />

利 点 : ・ 特 にはありません。 標 準 的 な 手 順 です。<br />

欠 点 : ・メイン 処 理 内 で 常 に SRQ 受 信 状 況 を 確 認 しておく 必 要 があります。<br />

→スレッドを 使 用 すれば、メイン 処 理 とは 別 に、 常 時 確 認 を 実 行 させることが 可 能<br />

です。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

25


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

・ 複 数 台 の 機 器 からほぼ 同 時 ( 数 ms~ 数 100ms の 間 隔 )に SRQ が 送 出 された 場 合 、そ<br />

れぞれの 機 器 の SRQ を 区 別 することができません。<br />

常 に 複 数 台 の 機 器 を 指 定 してシリアルポーリングを 実 行 してください。<br />

■パターン 2 SRQ コールバック 関 数 を 使 用 する<br />

1) あらかじめ、PciGpibExSetSrqEvent 関 数 で SRQ 受 信 時 のコールバック 関 数 を 登 録 しておき<br />

ます。<br />

2) 機 器 からの SRQ を 受 信 、 検 出 すると、ドライバがコールバック 関 数 の 呼 出 しを 行 います。<br />

3) コールバック 関 数 内 で、 複 数 台 の 機 器 に 対 して PciGpibExExecSpoll 関 数 を 実 行 (シリアルポ<br />

ーリング)します。<br />

利 点 : ・SRQ 受 信 検 出 の 監 視 をドライバ 側 で 行 うため、アプリケーション 側 で SRQ 受 信 の 確<br />

認 を 行 う 必 要 がありません。<br />

欠 点 : ・ 複 数 台 の 機 器 からほぼ 同 時 ( 数 ms~ 数 100ms の 間 隔 )に SRQ が 送 出 された 場 合 、そ<br />

れぞれの 機 器 の SRQ を 区 別 することができません。<br />

そのため、SRQ コールバック 関 数 内 の 処 理 としては<br />

a)1 台 のみのシリアルポーリング 実 行 は 行 わない。<br />

b)SRQ が 有 効 であれば 常 に 複 数 台 の 機 器 をシリアルポーリングする。<br />

ようにしてください。<br />

弊 社 ドライバのシリアルポーリングは、ポーリングする 機 器 を 複 数 台 指 定 可 能 です。<br />

■パターン 3 常 に 複 数 台 の 機 器 に 対 してシリアルポーリングを 実 行 して SRQ の 有 無 を 確 認 する<br />

1) SRQ 検 出 の 確 認 を 省 いて、 常 に 複 数 台 の 機 器 に 対 して PciGpibExExecSpoll 関 数 を 実 行 する。<br />

利 点 : ・SRQ 受 信 確 認 の 処 理 は 不 要 です。<br />

複 数 台 の 機 器 に 対 して、 常 にシリアルポーリングを 行 うことで SRQ の 有 無 とステー<br />

タスバイト 取 得 の 同 時 を 処 理 することが 可 能 です。<br />

・スレッドを 使 用 することで、メインの 処 理 とは 別 にポーリングを 実 行 することが 可 能<br />

です。<br />

欠 点 : ・シリアルポーリングの 処 理 は 比 較 的 重 いため、 頻 繁 に 実 行 させるとパフォーマンスに<br />

影 響 が 出 る 可 能 性 があります。<br />

・ 送 受 信 処 理 とは 別 のスレッド 内 で 実 行 させる 場 合 は、 送 受 信 処 理 とは 排 他 制 御 を 掛 け<br />

て 実 行 させるようにしてください。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

26


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

●Visual Basic の 場 合<br />

■パターン 1 PciGpibExCheckSrq 関 数 を 使 用 して SRQ 受 信 をチェック (DLL を 直 接 ご 利 用 の<br />

場 合 )<br />

1) PciGpibExCheckSrq 関 数 で 現 在 の SRQ 受 信 状 況 を 確 認 します。<br />

2) SRQ 受 信 を 確 認 後 、 複 数 台 の 機 器 に 対 して PciGpibExExecSpoll 関 数 を 実 行 (シリアルポーリ<br />

ング)します。<br />

利 点 : ・ 特 にありません。 一 定 周 期 で SRQ 受 信 の 確 認 を 行 う 場 合 には、タイマコントロール<br />

を 使 用 してください。<br />

欠 点 : ・ 複 数 台 の 機 器 からほぼ 同 時 ( 数 ms~ 数 100ms の 間 隔 )に SRQ が 送 出 された 場 合 、そ<br />

れぞれの 機 器 の SRQ を 区 別 することができません。<br />

常 に 複 数 台 の 機 器 を 指 定 してシリアルポーリングを 実 行 してください。<br />

■パターン 2 常 に 複 数 台 の 機 器 に 対 してシリアルポーリングを 実 行 して SRQ の 有 無 を 確 認<br />

(DLLを 直 接 ご 利 用 の 場 合 )<br />

1) SRQ 検 出 の 確 認 を 省 いて、 常 に 複 数 台 の 機 器 に 対 して PciGpibExExecSpoll 関 数 を 実 行 する。<br />

利 点 : ・SRQ 受 信 確 認 の 処 理 は 不 要 です。<br />

複 数 台 の 機 器 に 対 して、 常 にシリアルポーリングを 行 うことで SRQ の 有 無 とステー<br />

タスバイト 取 得 の 同 時 を 処 理 することが 可 能 です。<br />

・ 一 定 周 期 でポーリングを 実 行 させる 場 合 には、タイマコントロールを 使 用 してくださ<br />

い。<br />

欠 点 : ・シリアルポーリングの 処 理 は 比 較 的 重 いため、 頻 繁 に 実 行 させるとパフォーマンスに<br />

影 響 が 出 る 可 能 性 があります。<br />

■パターン 3 高 機 能 版 ActiveX による SRQ イベントを 使 用<br />

1) IfxGpib::SrqEvent イベントプロシージャ 内 に ExecSpoll メソッドを 記 述 してシリアルポーリ<br />

ングを 実 行 させる。<br />

利 点 : ・ 高 機 能 版 ActiveX を 使 用 することで、Visual C++の SRQ コールバックと 同 じ 形 で<br />

ActiveX 側 が SRQ 受 信 の 検 出 を 行 います。<br />

そのため、アプリケーションのプログラミング 手 順 が 軽 減 されます。<br />

欠 点 : ・Visual Basic ではイベントの 処 理 中 に 次 のイベントを 多 重 に 発 生 させることはでき<br />

ません。<br />

そのため、SRQ イベントプロシージャを 実 行 中 に SRQ が 発 生 した 場 合 、 次 の SRQ<br />

イベントが 発 生 しない 場 合 があります。<br />

→ 上 記 ケースが 発 生 する 場 合 には「 手 順 その 4 高 機 能 版 ActiveX を 使 用 して 直 接<br />

ExecSpoll メソッドを 使 用 」をご 利 用 ください。<br />

・ 複 数 台 の 機 器 からほぼ 同 時 ( 数 ms~ 数 100ms の 間 隔 )に SRQ が 送 出 された 場 合 、そ<br />

れぞれの 機 器 の SRQ を 区 別 することができません。<br />

常 に 複 数 台 の 機 器 を 指 定 してシリアルポーリングを 実 行 してください。<br />

■パターン 4 高 機 能 版 ActiveX を 使 用 して 直 接 ExecSpoll メソッドを 使 用<br />

1) 「 手 順 その 2」を 高 機 能 版 ActiveX で 実 行 させます。<br />

SRQ 検 出 の 確 認 を 省 いて、 常 に 複 数 台 の 機 器 に 対 して ExecSpoll メソッドを 実 行 します。<br />

また、「 手 順 その 1」の 方 法 についても、 高 機 能 版 ActiveX のメソッドを 使 用 して 実 行 するこ<br />

とができます。<br />

利 点 : ・DLL 直 接 制 御 と 同 様 です。<br />

欠 点 : ・DLL 直 接 制 御 と 同 様 です。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

27


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

●Delphi の 場 合<br />

■パターン 1 PciGpibExCheckSrq 関 数 を 使 用 して SRQ 受 信 をチェック (DLL を 直 接 ご 利 用 の<br />

場 合 )<br />

1) PciGpibExCheckSrq 関 数 で 現 在 の SRQ 受 信 状 況 を 確 認 します。<br />

2) SRQ 受 信 を 確 認 後 、 複 数 台 の 機 器 に 対 して PciGpibExExecSpoll 関 数 を 実 行 (シリアルポーリ<br />

ング)します。<br />

利 点 : ・ 特 にはありません。 標 準 的 な 手 順 です。<br />

欠 点 : ・メイン 処 理 内 で 常 に SRQ 受 信 状 況 を 確 認 しておく 必 要 があります。<br />

→スレッド、タイマを 使 用 すれば、メイン 処 理 とは 別 に、 常 時 確 認 を 実 行 させるこ<br />

とが 可 能 です。<br />

・ 複 数 台 の 機 器 からほぼ 同 時 ( 数 ms~ 数 100ms の 間 隔 )に SRQ が 送 出 された 場 合 、そ<br />

れぞれの 機 器 の SRQ を 区 別 することができません。<br />

常 に 複 数 台 の 機 器 を 指 定 してシリアルポーリングを 実 行 してください。<br />

■パターン 2 SRQ コールバック 関 数 を 使 用 する<br />

1) あらかじめ、PciGpibExSetSrqEvent 関 数 で SRQ 受 信 時 のコールバック 関 数 を 登 録 しておき<br />

ます。<br />

2) 機 器 からの SRQ を 受 信 、 検 出 すると、ドライバがコールバック 関 数 の 呼 出 しを 行 います。<br />

3) コールバック 関 数 内 で、 複 数 台 の 機 器 に 対 して PciGpibExExecSpoll 関 数 を 実 行 (シリアルポ<br />

ーリング)します。<br />

利 点 : ・SRQ 受 信 検 出 の 監 視 をドライバ 側 で 行 うため、アプリケーション 側 で SRQ 受 信 の 確<br />

認 を 行 う 必 要 がありません。<br />

欠 点 : ・ 複 数 台 の 機 器 からほぼ 同 時 ( 数 ms~ 数 100ms の 間 隔 )に SRQ が 送 出 された 場 合 、そ<br />

れぞれの 機 器 の SRQ を 区 別 することができません。<br />

そのため、SRQ コールバック 関 数 内 の 処 理 としては<br />

a)1 台 のみのシリアルポーリング 実 行 は 行 わない。<br />

b)SRQ が 有 効 であれば 常 に 複 数 台 の 機 器 をシリアルポーリングする。<br />

ようにしてください。<br />

弊 社 ドライバのシリアルポーリングは、ポーリングする 機 器 を 複 数 台 指 定 可 能 です。<br />

■パターン 3 常 に 複 数 台 の 機 器 に 対 してシリアルポーリングを 実 行 して SRQ の 有 無 を 確 認 する<br />

1) SRQ 検 出 の 確 認 を 省 いて、 常 に 複 数 台 の 機 器 に 対 して PciGpibExExecSpoll 関 数 を 実 行 する。<br />

利 点 : ・SRQ 受 信 検 出 の 監 視 をドライバ 側 で 行 うため、アプリケーション 側 で SRQ 受 信 の 確<br />

認 を 行 う 必 要 がありません。<br />

欠 点 : ・メイン 処 理 内 で 常 に SRQ 受 信 状 況 を 確 認 しておく 必 要 があります。<br />

→スレッド、タイマを 使 用 すれば、メイン 処 理 とは 別 に、 常 時 確 認 を 実 行 させるこ<br />

とが 可 能 です。<br />

・ 複 数 台 の 機 器 からほぼ 同 時 ( 数 ms~ 数 100ms の 間 隔 )に SRQ が 送 出 された 場 合 、そ<br />

れぞれの 機 器 の SRQ を 区 別 することができません。<br />

常 に 複 数 台 の 機 器 を 指 定 してシリアルポーリングを 実 行 してください。<br />

■パターン 4 高 機 能 版 ActiveX コントロールを 使 用 する<br />

1) Delphi 上 で 高 機 能 版 ActiveX コントロールを 使 用 することで、SRQ イベントを 利 用 すること<br />

が 可 能 です。<br />

利 点 : ・「●Visual Basic の 場 合 」を 参 照 ください。<br />

欠 点 : ・「●Visual Basic の 場 合 」を 参 照 ください。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

28


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

3.5 標 準 版 DLL 実 行 手 順<br />

ボードを 複 数 枚 使 用 する 場 合 は、GP-IB ボード 上 のロータリスイッチ RSW1 の 設 定 値 が 重 複 しないよう<br />

に 設 定 してからパソコンに 挿 入 してください。 複 数 のボードが 存 在 する 場 合 、ボードを 一 意 に 識 別 するた<br />

めの 番 号 となります。 重 複 していた 場 合 、 本 DLL は 正 常 に 動 作 いたしません。<br />

基 本 的 な 制 御 の 手 順 は 以 下 の 通 りです。( 記 述 例 は C 言 語 です)<br />

1. 初 期 化<br />

<strong>インタフェース</strong>モジュールを GpibOpen 関 数 で 初 期 化 します。ボード 番 号 を 指 定 します。<br />

GpibOpen( ulBoardNo );<br />

初 期 化 が 正 常 終 了 後 、 指 定 したボード 番 号 で 以 後 の 各 関 数 を 使 用 することができます。<br />

2. <strong>インタフェース</strong>モジュールの 設 定<br />

GpibSetConfig 関 数 で、デリミタ 等 の<strong>インタフェース</strong>モジュールの 設 定 を 行 います。この 関 数<br />

を 実 行 しない 場 合 は、 初 期 値 で 設 定 されます。 初 期 値 については、コントロールパネルで 設 定<br />

した 値 が 使 用 されます。また、この 関 数 は 初 期 化 の 実 行 後 は 何 度 でも 実 行 できます。<br />

GpibSetConfig( ulBoardNo, "/SDELIM=EOI /RDELIM=CRLF+EOI" );<br />

3. GP-IB <strong>インタフェース</strong>の 初 期 化<br />

GpibSetIfc 関 数 を 使 用 して GP-IB バスの 初 期 化 を 行 います。 続 いて、GpibSetRen 関 数 を 使 用<br />

して REN 信 号 を 有 効 にします。<br />

GpibSetIfc( ulBoardNo );<br />

GpibSetRen( ulBoardNo );<br />

4. 送 信<br />

送 りたいデータを GpibSend 関 数 で 指 定 した 機 器 に 対 して 送 信 します。<br />

機 器 アドレステーブルの 終 端 には 必 ず -1 を 代 入 してください。<br />

int nAdrsTbl[8];<br />

・<br />

nAdrsTbl[0] = 1; // 制 御 する 測 定 機 器 のアドレス<br />

nAdrsTbl[1] = -1; // アドレステーブルの 終 端<br />

・<br />

GpibSend( ulBoardNo, nAdrsTbl, 10, "0123456789" );<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

29


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

5. 受 信<br />

受 信 データおよび 受 信 データ 長 を GpibReceive 関 数 で 指 定 した 機 器 から 受 信 します。<br />

受 信 バッファサイズの 指 定 はデリミタサイズも 含 めて 充 分 余 裕 を 持 って 指 定 してください。こ<br />

れは、 機 器 から 送 られてくるデータ 長 が 10 バイトと 判 明 しており、デリミタに CRLF を 指 定<br />

している 場 合 、 受 信 バッファサイズは 最 低 12 バイト 必 要 であることを 示 します。<br />

int nAdrsTbl[8];<br />

DWORD dwLen;<br />

char szData[1024];<br />

・<br />

nAdrsTbl[0] = 1; // 制 御 する 測 定 機 器 のアドレス<br />

nAdrsTbl[1] = -1; // アドレステーブルの 終 端<br />

・<br />

dwLen = 1024; // 受 信 バッファのサイズ<br />

GpibReceive( ulBoardNo, nAdrsTbl, &dwLen, szData );<br />

関 数 呼 び 出 し 後 に、 変 数 dwLen には 実 際 に 受 信 したデータ 長 が 格 納 されています。<br />

6. シリアル・ポール 実 行<br />

GpibExecSpoll( ulBoardNo, nAdrsTbl, nStbTbl, nStbAdrs ); // シリアル・ポール 実 行<br />

7. SRQ イベントコールバックの 登 録 / 解 除<br />

SRQ イベントが 発 生 した 時 に、 登 録 した 関 数 を 実 行 させることができます。<br />

これをコールバックイベント 機 能 と 呼 びます。<br />

GpibSetSrqEvent 関 数 にてイベントが 発 生 した 時 にコールされる 関 数 を 登 録 します。<br />

イベントが 発 生 すると、 設 定 した 関 数 がコールされます。<br />

GpibWaitSrqEvent 関 数 にてタイムアウトを 設 定 し、イベントを 待 つことができます。<br />

イベントの 処 理 が 必 要 なくなった 場 合 は、GpibKillSrqEvent 関 数 でコールバック 関 数 の 登 録 を<br />

解 除 します。<br />

8. 終 了 処 理<br />

<strong>インタフェース</strong>モジュールを GpibClose 関 数 で 使 用 終 了 します。<br />

必 ず 本 関 数 を 実 行 して 処 理 を 終 了 してください。<br />

GpibClose( ulBoardNo );<br />

2.~6.は 初 期 化 、 終 了 の 間 で 繰 り 返 し 実 行 できます(ただし、3.だけは 最 初 の 1 回 のみの 実 行 と<br />

なります)。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

30


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

3.6 機 器 アドレステーブルについて<br />

機 器 アドレステーブルには、1 次 、2 次 アドレスを 混 在 して 複 数 台 の 機 器 を 指 定 することができます。<br />

コントローラ 時 、 機 器 の 指 定 が 必 要 な 関 数 にて 機 器 アドレステーブルを 引 数 とする 場 合 、 以 下 のよう<br />

に int 型 ( 整 数 型 )の 配 列 に 機 器 のアドレスを 設 定 して 使 用 します。<br />

3.6.1 データ 送 信 時<br />

弊 社 GP-IB <strong>インタフェース</strong>からデータを 送 信 し、 指 定 機 器 で 受 信 します。<br />

アドレスとして 指 定 するのは 全 て 受 信 先 機 器 のアドレスとなります。<br />

■1 次 アドレスのみの 場 合 (1 台 だけを 指 定 する 場 合 )<br />

配 列 Index 格 納 値<br />

0 1 次 アドレス<br />

1 終 端 (-1)<br />

【 例 】<br />

受 信 先 機 器 のアドレスが 1 次 アドレス=2 の 場 合<br />

●C 言 語<br />

int nAdrs[2] = { 2, -1 };<br />

●Visual Basic<br />

Dim nAdrs(1) As Long<br />

nAdrs(0) = 2<br />

nAdrs(1) = -1<br />

●Delphi<br />

var<br />

nAdrs[0..2] of Integer;<br />

nAdrs[0] := 2;<br />

nAdrs[1] := -1;<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

31


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

■2 次 アドレスを 設 定 した 場 合 (1 台 だけを 指 定 する 場 合 )<br />

配 列 Index 格 納 値<br />

0 1 次 アドレス<br />

1 2 次 アドレス<br />

2 終 端 (-1)<br />

【 例 】<br />

受 信 先 機 器 のアドレスが 1 次 アドレス=2、2 次 アドレス=96 の 場 合<br />

●C 言 語<br />

int nAdrs[3] = { 2, 96, -1 };<br />

●Visual Basic<br />

Dim nAdrs(2) As Long<br />

nAdrs(0) = 2<br />

nAdrs(1) = 96<br />

nAdrs(2) = -1<br />

●Delphi<br />

var<br />

nAdrs[0..3] of Integer;<br />

nAdrs[0] := 2;<br />

nAdrs[1] := 96;<br />

nAdrs[2] := -1;<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

32


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

■1 次 アドレスのみの 場 合 ( 複 数 台 を 指 定 する 場 合 )<br />

配 列 Index 格 納 値<br />

0 1 次 アドレス<br />

1 1 次 アドレス<br />

…<br />

…<br />

n-1 1 次 アドレス<br />

n 終 端 (-1)<br />

【 例 】<br />

1 台 目 の 受 信 先 機 器 のアドレスが 1 次 アドレス=2、2 台 目 の 受 信 先 機 器 のアドレスが 1 次 アド<br />

レス=7 の 場 合 ( 本 ドライバが 送 信 したデータは 2 台 の 機 器 とも 同 じデータを 同 時 に 受 信 します)<br />

●C 言 語<br />

int nAdrs[3] = { 2, 7, -1 };<br />

●Visual Basic<br />

Dim nAdrs(2) As Long<br />

nAdrs(0) = 2<br />

nAdrs(1) = 7<br />

nAdrs(2) = -1<br />

●Delphi<br />

var<br />

nAdrs[0..3] of Integer;<br />

nAdrs[0] := 2;<br />

nAdrs[1] := 7;<br />

nAdrs[2] := -1;<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

33


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

■2 次 アドレスを 設 定 した 場 合 ( 複 数 台 を 指 定 する 場 合 )<br />

配 列 Index 格 納 値<br />

0 1 次 アドレス<br />

1 2 次 アドレス<br />

2 1 次 アドレス<br />

3 2 次 アドレス<br />

…<br />

…<br />

n-2 1 次 アドレス<br />

n-1 2 次 アドレス<br />

n 終 端 (-1)<br />

【 例 】<br />

1 台 目 の 受 信 先 機 器 のアドレスが 1 次 アドレス=2、2 次 アドレス=96、2 台 目 の 受 信 先 機 器 のア<br />

ドレスが 1 次 アドレス=7、2 次 アドレス=97 の 場 合 ( 本 ドライバが 送 信 したデータは 2 台 の 機<br />

器 とも 同 じデータを 同 時 に 受 信 します)<br />

●C 言 語<br />

int nAdrs[5] = { 2, 96, 7, 97, -1 };<br />

●Visual Basic<br />

Dim nAdrs(4) As Long<br />

nAdrs(0) = 2<br />

nAdrs(1) = 96<br />

nAdrs(2) = 7<br />

nAdrs(3) = 97<br />

nAdrs(4) = -1<br />

●Delphi<br />

var<br />

nAdrs[0..5] of Integer;<br />

nAdrs[0] := 2;<br />

nAdrs[1] := 96;<br />

nAdrs[2] := 7;<br />

nAdrs[3] := 97;<br />

nAdrs[4] := -1;<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

34


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

3.6.2 データ 受 信 時<br />

配 列 の 先 頭 位 置 に 記 述 されたアドレスの 機 器 からデータを 送 信 し、 弊 社 GP-IB <strong>インタフェース</strong>(お<br />

よび、 配 列 に 続 けて 記 述 されたアドレスの 機 器 )で 受 信 します。<br />

配 列 の 先 頭 位 置 に 記 述 されたアドレスが、 送 信 機 器 アドレスとなります。<br />

この 時 、 他 に 受 信 させる 機 器 を 指 定 する 場 合 には、 続 いて 機 器 アドレスを 記 述 することにより 設 定 し<br />

ます。<br />

■1 次 アドレスのみの 場 合 (1 台 だけを 指 定 する 場 合 )<br />

配 列 Index<br />

格 納 値<br />

0 1 次 アドレス( 送 信 機 器 )<br />

1 終 端 (-1)<br />

【 例 】<br />

送 信 元 機 器 のアドレスが 1 次 アドレス=2 の 場 合<br />

●C 言 語<br />

int nAdrs[2] = { 2, -1 };<br />

●Visual Basic<br />

Dim nAdrs(1) As Long<br />

nAdrs(0) = 2<br />

nAdrs(1) = -1<br />

●Delphi<br />

var<br />

nAdrs[0..2] of Integer;<br />

nAdrs[0] := 2;<br />

nAdrs[1] := -1;<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

35


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

■2 次 アドレスを 設 定 した 場 合 (1 台 だけを 指 定 する 場 合 )<br />

配 列 Index<br />

格 納 値<br />

0 1 次 アドレス( 送 信 機 器 )<br />

1 2 次 アドレス( 送 信 機 器 )<br />

2 終 端 (-1)<br />

【 例 】<br />

送 信 元 機 器 のアドレスが 1 次 アドレス=2、2 次 アドレス=96 の 場 合<br />

●C 言 語<br />

int nAdrs[3] = { 2, 96, -1 };<br />

●Visual Basic<br />

Dim nAdrs(2) As Long<br />

nAdrs(0) = 2<br />

nAdrs(1) = 96<br />

nAdrs(2) = -1<br />

●Delphi<br />

var<br />

nAdrs[0..3] of Integer;<br />

nAdrs[0] := 2;<br />

nAdrs[1] := 96;<br />

nAdrs[2] := -1;<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

36


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

■1 次 アドレスのみの 場 合 ( 他 の 受 信 機 器 も 指 定 する 場 合 )<br />

配 列 Index<br />

格 納 値<br />

0 1 次 アドレス( 送 信 機 器 )<br />

1 1 次 アドレス( 受 信 機 器 )<br />

…<br />

…<br />

n-1 1 次 アドレス( 受 信 機 器 )<br />

n 終 端 (-1)<br />

【 例 】<br />

送 信 元 機 器 のアドレスが 1 次 アドレス=2、 受 信 先 機 器 のアドレスが 1 次 アドレス=7 の 場 合 (1<br />

台 目 の 機 器 が 送 信 したデータを 本 ドライバと 受 信 先 の 機 器 とが 同 時 に 受 信 します)<br />

●C 言 語<br />

int nAdrs[3] = { 2, 7, -1 };<br />

●Visual Basic<br />

Dim nAdrs(2) As Long<br />

nAdrs(0) = 2<br />

nAdrs(1) = 7<br />

nAdrs(2) = -1<br />

●Delphi<br />

var<br />

nAdrs[0..3] of Integer;<br />

nAdrs[0] := 2;<br />

nAdrs[1] := 7;<br />

nAdrs[2] := -1;<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

37


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

■2 次 アドレスを 設 定 した 場 合 ( 他 の 受 信 機 器 も 指 定 する 場 合 )<br />

配 列 Index<br />

格 納 値<br />

0 1 次 アドレス( 送 信 機 器 )<br />

1 2 次 アドレス( 送 信 機 器 )<br />

2 1 次 アドレス( 受 信 機 器 )<br />

3 2 次 アドレス( 受 信 機 器 )<br />

…<br />

…<br />

n-2 1 次 アドレス( 受 信 機 器 )<br />

n-1 2 次 アドレス( 受 信 機 器 )<br />

n 終 端 (-1)<br />

【 例 】<br />

送 信 元 機 器 のアドレスが 1 次 アドレス=2、2 次 アドレス=96、 受 信 先 機 器 のアドレスが 1 次 ア<br />

ドレス=7、2 次 アドレス=97 の 場 合 (1 台 目 の 機 器 が 送 信 したデータを 本 ドライバと 受 信 先 の<br />

機 器 とが 同 時 に 受 信 します)<br />

●C 言 語<br />

int nAdrs[5] = { 2, 96, 7, 97, -1 };<br />

●Visual Basic<br />

Dim nAdrs(4) As Long<br />

nAdrs(0) = 2<br />

nAdrs(1) = 96<br />

nAdrs(2) = 7<br />

nAdrs(3) = 97<br />

nAdrs(4) = -1<br />

●Delphi<br />

var<br />

nAdrs[0..5] of Integer;<br />

nAdrs[0] := 2;<br />

nAdrs[1] := 96;<br />

nAdrs[2] := 7;<br />

nAdrs[3] := 97;<br />

nAdrs[4] := -1;<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

38


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

第 4 章 リファレンス<br />

4.1 高 機 能 版 DLL<br />

4.1.1 関 数 一 覧<br />

No 関 数 名 機 能<br />

1 PciGpibExInitBoard <strong>インタフェース</strong>モジュールの 初 期 化 を 行 います。<br />

2 PciGpibExFinishBoard <strong>インタフェース</strong>モジュールの 使 用 を 終 了 します。<br />

3 PciGpibExGetInfo <strong>インタフェース</strong>モジュールの 情 報 を 取 得 します。<br />

4 PciGpibExSetConfig ドライバの 動 作 パラメータを 設 定 / 変 更 します。<br />

5 PciGpibExGetConfig ドライバの 動 作 パラメータを 取 得 します。<br />

6 PciGpibExSetIfc IFC の 送 出 を 行 います。<br />

(System Controller のみ)<br />

7 PciGpibExSetRen REN ラインをセットします。<br />

(System Controller のみ)<br />

8 PciGpibExResetRen REN ラインをリセットします。<br />

(System Controller のみ)<br />

9 PciGpibExSetRemote 指 定 した 機 器 をリモートモードに 設 定 します。<br />

(System Controller のみ)<br />

10 PciGpibExExecTrigger 指 定 した 機 器 に 対 してトリガを 行 います。<br />

(CIC – Master のみ)<br />

11 PciGpibExExecDevClear 全 ての 機 器 に 対 してデバイスクリアを 行 います。<br />

(CIC – Master のみ)<br />

12 PciGpibExExecSdc 指 定 した 機 器 に 対 してデバイスクリアを 行 います。<br />

(CIC – Master のみ)<br />

13 PciGpibExSetLocal 指 定 した 機 器 をローカルモードに 設 定 します。<br />

(CIC – Master のみ)<br />

14 PciGpibExSetLlo 全 ての 機 器 をローカルロックアウト 状 態 に 設 定 します。<br />

(CIC – Master のみ)<br />

15 PciGpibExSetRwls 指 定 した 機 器 をリモートロックアウト 状 態 に 設 定 します。<br />

(System Controller のみ)<br />

16 PciGpibExExecPassCtrl 指 定 した 機 器 に 対 してパス・コントロールを 行 います。<br />

(CIC – Master のみ)<br />

17 PciGpibExExecFindListen<br />

er<br />

バス 上 に 接 続 されているリスナを 探 します。<br />

(CIC – Master のみ)<br />

18 PciGpibExExecDevReset 指 定 した 機 器 を 完 全 にリセットします。<br />

(System Controller のみ)<br />

19 PciGpibExReSysCtrl システムコントローラの 要 求 または 解 除 を 行 います。<br />

(System Controller のみ)<br />

20 PciGpibExGoStandby コマンドモードからデータモードへ 遷 移 させます。<br />

(CIC – Master のみ)<br />

21 PciGpibExGoActCtrller データモードからコマンドモードへ 遷 移 させます。<br />

(CIC – Master のみ)<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

39


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

No 関 数 名 機 能<br />

22 PciGpibExExecSpoll 指 定 した 機 器 をシリアルポーリングします。<br />

(CIC – Master のみ)<br />

23 PciGpibExCheckSrq SRQ 受 信 の 有 効 / 無 効 を 確 認 します。<br />

(CIC – Master のみ)<br />

24 PciGpibExClearSrq SRQ 受 信 フラグのクリアを 行 います。<br />

(CIC – Master のみ)<br />

25 PciGpibExEnableSrq SRQ 受 信 の 許 可 を 行 います。<br />

(CIC – Master のみ)<br />

26 PciGpibExDisableSrq SRQ 受 信 の 禁 止 を 行 います。<br />

(CIC – Master のみ)<br />

27 PciGpibExExecPpoll パラレルポーリングを 行 います。<br />

(CIC – Master のみ)<br />

28 PciGpibExCfgPpoll パラレルポール 応 答 条 件 を 設 定 します。<br />

(CIC - Master のみ)<br />

29 PciGpibExUnCfgPpoll パラレルポール 応 答 条 件 を 解 除 します。<br />

(CIC - Master のみ)<br />

30 PciGpibExWriteBusCmd バスコマンドの 送 出 を 行 います。<br />

(CIC - Master のみ)<br />

31 PciGpibExSetSignal 事 象 変 化 検 出 条 件 の 設 定 を 行 います。<br />

32 PciGpibExWaitSignal 事 象 変 化 検 出 を 待 ちます。<br />

33 PciGpibExGetStatus 現 在 のバス・ステータスを 取 得 します。<br />

34 PciGpibExClrStatus 現 在 のバス・ステータスのクリアを 行 います。<br />

35 PciGpibExGetBusLine GP-IB バスラインの 状 態 を 取 得 します。<br />

36 PciGpibExSetBusLine GP-IB バスの 各 ラインを 直 接 制 御 (アサート)します。<br />

37 PciGpibExMastSendData バスにデータの 送 信 を 行 います。<br />

(CIC - Master のみ)<br />

38 PciGpibExMastRecvData バスからデータの 受 信 を 行 います。<br />

(CIC - Master のみ)<br />

39 PciGpibExMastSendFile ファイルから 読 み 込 んだデータをバスに 送 信 します。<br />

(CIC - Master のみ)<br />

40 PciGpibExMastRecvFile バスから 受 信 したデータをファイルに 書 き 込 みます。<br />

(CIC - Master のみ)<br />

41 PciGpibExSlavSendData バスにデータの 送 信 を 行 います。<br />

(CIC - Master / Not CIC - Slave)<br />

42 PciGpibExSlavRecvData バスからデータの 受 信 を 行 います。<br />

(CIC - Master / Not CIC - Slave)<br />

43 PciGpibExSlavSendFile ファイルから 読 み 込 んだデータをバスに 送 信 します。<br />

(CIC - Master / Not CIC - Slave)<br />

44 PciGpibExSlavRecvFile バスから 受 信 したデータをファイルに 書 き 込 みます。<br />

(CIC - Master / Not CIC - Slave)<br />

45 PciGpibExSlavCheckStb コントローラからシリアルポーリングされたかを 確 認 します。<br />

46 PciGpibExSlavSetSrq SRQ の 送 出 (サービス 要 求 )を 行 います。<br />

47 PciGpibExSlavSetIst パラレル・ポール 応 答 フラグを 設 定 します。<br />

48 PciGpibExSlavSetPp2 パラレル・ポール 応 答 モード(pp2)を 設 定 します。<br />

49 PciGpibExWaitTimer 指 定 した 時 間 待 ちます。<br />

50 PciGpibExStartTimer 汎 用 タイマのスタートを 行 います。<br />

51 PciGpibExClearTimer 汎 用 タイマのカウンタ 値 のクリアを 行 います。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

40


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

No 関 数 名 機 能<br />

52 PciGpibExReadTimer 汎 用 タイマのカウンタ 値 の 読 み 出 しを 行 います。<br />

53 PciGpibExStopTimer 汎 用 タイマの 停 止 を 行 います。<br />

54 PciGpibExSetSrqEvent SRQ コールバックイベントを 登 録 します。<br />

(CIC - Master のみ)<br />

55 PciGpibExWaitSrqEvent SRQ コールバックイベントを 待 ちます。<br />

(CIC - Master のみ)<br />

56 PciGpibExKillSrqEvent SRQ コールバックイベントの 登 録 を 解 除 します。<br />

(CIC - Master のみ)<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

41


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

4.1.2 関 数 個 別 説 明<br />

1. PciGpibExInitBoard<br />

【 機 能 】<br />

<strong>インタフェース</strong>モジュールの 初 期 化 を 行 います。<br />

【 書 式 】<br />

●C 言 語<br />

int PciGpibExInitBoard (<br />

int BoardNo,<br />

HWND Wnd<br />

);<br />

●Visual Basic<br />

Declare Function PciGpibExInitBoard Lib "gpc<strong>4304</strong>.dll"( _<br />

ByVal BoardNo As Long, _<br />

ByVal Wnd As Long _<br />

) As Long<br />

●Delphi<br />

function PciGpibExInitBoard (<br />

BoardNo : Integer;<br />

Wnd : Cardinal<br />

) : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>.DLL';<br />

【パラメータ】<br />

BoardNo<br />

ボードアクセス 番 号 (0~15)を 指 定 します。<br />

<strong>インタフェース</strong>モジュール 上 のロータリスイッチの 値 がボードアクセス 番 号 となります。<br />

CardBus シリーズにつきましては、CardBus ID 設 定 ユーティリティで 設 定 した ID がボー<br />

ドアクセス 番 号 となります。<br />

※ 複 数 枚 使 用 時 、ボードアクセス 番 号 はそれぞれの<strong>インタフェース</strong>モジュールで 重 複 しな<br />

い 番 号 を 割 り 振 ってください。<br />

Wnd<br />

アプリケーションのウィンドウハンドルを 指 定 します。<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、0 が 返 されます。<br />

0 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

42


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

【 備 考 】<br />

あらかじめコントロールパネルにて、ボードアクセス 番 号 に 対 応 するデバイスの 初 期 設 定 して<br />

おく 必 要 があります。<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret;<br />

Ret = PciGpibExInitBoard( 0, hWnd );<br />

●Visual Basic<br />

Dim Ret As Long<br />

Ret = PciGpibExInitBoard( 0, 0 ) ' Visual Basic ではウィンドウハンドルに<br />

' 0を 指 定 してください<br />

●Delphi<br />

var<br />

Ret : Integer;<br />

Ret := PciGpibExInitBoard( 0, TfrmInitBoard.HANDLE);<br />

<strong>インタフェース</strong>モジュールを 初 期 化 します。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

43


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

2. PciGpibExFinishBoard<br />

【 機 能 】<br />

<strong>インタフェース</strong>モジュールの 使 用 を 終 了 します。<br />

【 書 式 】<br />

●C 言 語<br />

int PciGpibExFinishBoard (<br />

int BoardNo<br />

);<br />

●Visual Basic<br />

Declare Function PciGpibExFinishBoard Lib "gpc<strong>4304</strong>.dll"( _<br />

ByVal BoardNo As Long _<br />

) As Long<br />

●Delphi<br />

function PciGpibExFinishBoard (<br />

BoardNo : Integer<br />

) : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>.DLL';<br />

【パラメータ】<br />

BoardNo<br />

ボードアクセス 番 号 (0~15)を 指 定 します。<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、0 が 返 されます。<br />

0 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret;<br />

Ret = PciGpibExFinishBoard( 0 );<br />

●Visual Basic<br />

Dim Ret As Long<br />

Ret = PciGpibExFinishBoard( 0 )<br />

●Delphi<br />

var<br />

Ret : Integer;<br />

Ret := PciGpibExFinishBoard( 0 );<br />

<strong>インタフェース</strong>モジュールの 使 用 を 終 了 します。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

44


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

3. PciGpibExGetInfo<br />

【 機 能 】<br />

設 定 情 報 を 取 得 します。<br />

【 書 式 】<br />

●C 言 語<br />

int PciGpibExGetInfo(<br />

int<br />

BoardNo,<br />

int<br />

PrmNo,<br />

ULONG* GetPrm<br />

);<br />

●Visual Basic<br />

Declare Function PciGpibExGetInfo Lib "gpc<strong>4304</strong>.dll"( _<br />

ByVal BoardNo As Long, _<br />

ByVal PrmNo As Long, _<br />

ByRef GetPrm As Long _<br />

) As Long<br />

●Delphi<br />

function PciGpibExGetInfo (<br />

BoardNo : Integer;<br />

PrmNo : Integer;<br />

var GetPrm : Integer<br />

) : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>.DLL';<br />

【パラメータ】<br />

BoardNo<br />

ボードアクセス 番 号 (0~15)を 指 定 します。<br />

PrmNo<br />

<strong>インタフェース</strong>モジュールの 設 定 情 報 を 取 得 するためのパラメータ 番 号 を 指 定 します。<br />

パラメータ 番 号<br />

説 明<br />

0 ベースアドレス<br />

<strong>インタフェース</strong>モジュールのベースアドレスを 取 得 します。<br />

1 割 り 込 み 番 号<br />

<strong>インタフェース</strong>モジュールの 割 り 込 み 番 号 を 取 得 します。<br />

2 動 作 モード<br />

<strong>インタフェース</strong>モジュールの 初 期 化 時 の 動 作 モードを 取 得 します。<br />

0: コントローラ<br />

1: 非 コントローラ<br />

GetPrm<br />

情 報 を 格 納 する 変 数 へのポインタ( 参 照 渡 し)を 指 定 してください。<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、0 が 返 されます。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

45


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

0 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret;<br />

ULONG GetPrm;<br />

Ret = PciGpibExGetInfo( 0, 2, &GetPrm );<br />

●Visual Basic<br />

Dim Ret As Long<br />

Dim GetPrm As Long<br />

Ret = PciGpibExGetInfo( 0, 2, GetPrm )<br />

●Delphi<br />

var<br />

Ret : Integer;<br />

GetRrm : Integer;<br />

Ret := PciGpibExGetInfo( 0, 2, GetPrm );<br />

ボードアクセス 番 号 0 の<strong>インタフェース</strong>モジュールの 動 作 モードを 取 得 します。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

46


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

4. PciGpibExSetConfig<br />

【 機 能 】<br />

ドライバの 動 作 パラメータを 設 定 / 変 更 します。<br />

【 書 式 】<br />

●C 言 語<br />

int PciGpibExSetConfig (<br />

int BoardNo,<br />

char* Config<br />

);<br />

●Visual Basic<br />

Declare Function PciGpibExSetConfig Lib "gpc<strong>4304</strong>.dll"( _<br />

ByVal BoardNo As Long, _<br />

ByVal Config As String _<br />

) As Long<br />

●Delphi<br />

function PciGpibExSetConfig (<br />

BoardNo : Integer;<br />

Config : String<br />

) : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>.DLL';<br />

【パラメータ】<br />

BoardNo<br />

ボードアクセス 番 号 (0~15)を 指 定 します。<br />

Config<br />

設 定 に 関 する 各 種 情 報 を 含 んだ 文 字 列 を 指 定 してください。<br />

指 定 のなかった 項 目 に 対 しては、 初 期 値 が 設 定 されます。<br />

設 定 情 報 の 各 パラメータを 以 下 に 示 します。 各 パラメータは、スペースで 区 切 ってくださ<br />

い。 各 パラメータ 文 字 列 の 中 にはスペースを 入 れないようにしてください。<br />

文 字 列 の 最 後 に NULL 文 字 を 入 れてください。<br />

項 目 文 字 列 内 容<br />

送 受 信 タイムアウト "/TMO=" 送 受 信 時 に 使 用 するタイムアウト 時 間 ( 単 位 :100ms)<br />

を 1~65535 で 設 定 します。<br />

デフォルトは、コントロールパネルアプレットでの<br />

設 定 値 が 使 用 されます。<br />

STB 応 答 時 間 "/SRT=" シリアルポール 時 のステータスバイト 応 答 時 間 ( 単<br />

位 :100ms)を 1~65535 で 設 定 します。<br />

デフォルトは、コントロールパネルアプレットでの<br />

設 定 値 が 使 用 されます。<br />

事 象 変 化 検 出 タイムア "/STM=" 事 象 変 化 検 出 (PciGpibExSetSignal 関 数 、<br />

ウト<br />

PciGpibExWaitSignal 関 数 )でのタイムアウト 時 間<br />

( 単 位 :100ms)を 設 定 します。<br />

0:タイムアウトなし<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

47


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

項 目 文 字 列 内 容<br />

送 信 デリミタ<br />

"/SDELIM="<br />

1~65535:タイムアウトあり<br />

デフォルトは、コントロールパネルアプレットでの<br />

設 定 値 が 使 用 されます。<br />

送 信 時 に 使 用 するデリミタを 設 定 します。<br />

デフォルトは、コントロールパネルアプレットでの<br />

設 定 値 が 使 用 されます。<br />

"NO" デリミタ 無 し<br />

"EOI" EOI<br />

"CR" CR<br />

"CR+EOI" CR+EOI<br />

"LF" LF<br />

"LF+EOI" LF+EOI<br />

"CRLF" CRLF<br />

"CRLF+EO CRLF+EOI<br />

I"<br />

"NULL" NULL (0x00)<br />

"!x" 感 嘆 符 に 続 く 任 意 の 1 文 字 をデリミタ<br />

受 信 デリミタ<br />

"/RDELIM="<br />

とする<br />

受 信 時 に 使 用 するデリミタを 設 定 します。<br />

デフォルトは、コントロールパネルアプレットでの<br />

設 定 値 が 使 用 されます。<br />

"NO" デリミタ 無 し<br />

"EOI" EOI<br />

"CR" CR<br />

"CR+EOI" CR+EOI<br />

"LF" LF<br />

"LF+EOI" LF+EOI<br />

"CRLF" CRLF<br />

"CRLF+EO CRLF+EOI<br />

I"<br />

"NULL" NULL (0x00)<br />

"!x" 感 嘆 符 に 続 く 任 意 の 1 文 字 をデリミタ<br />

非 同 期 入 出 力<br />

"/ASYNC="<br />

とする<br />

非 同 期 入 出 力 の 設 定 をします。<br />

"ON" データの 送 受 信 において、 非 同 期 によ<br />

る 入 出 力 を 行 います。<br />

"OFF" データの 送 受 信 において、 同 期 しての<br />

入 出 力 を 行 います。(デフォルト)<br />

1 次 アドレス "/MA=" 1 次 アドレスを 設 定 します。 範 囲 0~30<br />

デフォルトは、コントロールパネルアプレットでの<br />

設 定 値 が 使 用 されます。<br />

2 次 アドレス "/SA=" 2 次 アドレスを 設 定 します。 範 囲 :96~126<br />

96~126 以 外 の 値 を 設 定 すると 2 次 アドレスは 無 効<br />

となります。<br />

デフォルトは、コントロールパネルアプレットでの<br />

IEEE-488 バスハンドシ<br />

ェイクタイミング<br />

"/HSTMG="<br />

設 定 値 が 使 用 されます。<br />

IEEE-488 ソースハンドシェイク T1 タイミングの 設<br />

定 を 行 います。<br />

デフォルトは、コントロールパネルアプレットでの<br />

設 定 値 が 使 用 されます。<br />

0 T1 に 正 常 タイミング(2µs)<br />

1 T1 に 高 速 タイミング(500ns)<br />

2 T1 に 超 高 速 タイミング(350ns)<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

48


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

項 目 文 字 列 内 容<br />

"/PPETM="<br />

パラレルポール 実 行 時<br />

間<br />

NRFD 信 号 ラインアサ<br />

ート 待 ち[ 有 効 / 無 効 ]<br />

バスコマンド 送 信 タイ<br />

ムアウト<br />

コントローラ<br />

"/NRFDWAIT="<br />

"/CMDTMO="<br />

"/CONTROLLE<br />

R="<br />

パラレルポール 実 行 時 間 T6 の 設 定 を 行 います。<br />

デフォルトは、コントロールパネルアプレットでの<br />

設 定 値 が 使 用 されます。<br />

0 T6 を 2µs(デフォルト)<br />

1 T6 を 10µs<br />

コントローラデータ 送 信 の 最 終 データ 送 信 後 に<br />

GP-IB バスの NRFD 信 号 ラインがアサートされるま<br />

で「 待 つ」か「 待 たない」かの 設 定 を 行 います。<br />

「 待 ち 時 間 」には「データ 転 送 タイムアウト」の 時<br />

間 が 適 用 されます。<br />

"ON" NRFD 信 号 ラインがアサートされる<br />

まで 待 ちます。<br />

"OFF" NRFD 信 号 ラインのアサート 待 ちは<br />

無 効 となります。(デフォルト)<br />

GP-IB バスコマンド 送 信 時 に 使 用 するタイムアウト<br />

時 間 ( 単 位 :100ms)を 1~65536 で 設 定 します。<br />

デフォルトは、コントロールパネルアプレットでの<br />

設 定 値 が 使 用 されます。<br />

予 約 です。<br />

動 作 モードはコントロールパネルアプレットで 設 定<br />

してください。<br />

"ON" 予 約 です。<br />

"OFF" 予 約 です。<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、0 が 返 されます。<br />

0 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

【 備 考 】<br />

・ 各 設 定 情 報 のデフォルトは、コントロールパネルアプレットで 設 定 した 情 報 が 使 用 されます。<br />

「 送 受 信 タイムアウト 時 間 」および「STB 応 答 時 間 」には 0 を 指 定 しないようにしてくださ<br />

い。0 を 指 定 しますと、それぞれタイムアウト 時 間 が 0 となります。<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret;<br />

Ret = PciGpibExSetConfig( 0, "/SDELIM=CRLF /RDELIM=EOI" );<br />

●Visual Basic<br />

Dim Ret As Long<br />

Ret = PciGpibExSetConfig( 0, "/SDELIM=CRLF /RDELIM=EOI" )<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

49


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

●Delphi<br />

var<br />

Ret : Integer;<br />

Ret := PciGpibExSetConfig( 0, '/SDELIM=CRLF /RDELIM=EOI' );<br />

ボードアクセス 番 号 0 の<strong>インタフェース</strong>モジュールを 送 信 デリミタ CRLF、 受 信 デリミタ EOI<br />

として、 設 定 します。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

50


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

5. PciGpibExGetConfig<br />

【 機 能 】<br />

ドライバの 動 作 パラメータを 設 定 / 変 更 します。<br />

【 書 式 】<br />

●C 言 語<br />

int PciGpibExGetConfig (<br />

int BoardNo,<br />

int PrmNo,<br />

ULONG* GetPrm<br />

);<br />

●Visual Basic<br />

Declare Function PciGpibExSetConfig Lib "gpc<strong>4304</strong>.dll"( _<br />

ByVal BoardNo As Long, _<br />

ByVal PrmNo As Long, _<br />

ByRef GetPrm As Long _<br />

) As Long<br />

●Delphi<br />

function PciGpibExSetConfig (<br />

BoardNo : Integer;<br />

PrmNo : Integer;<br />

GetPrm : Cardinal<br />

) : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>.DLL';<br />

【パラメータ】<br />

BoardNo<br />

ボードアクセス 番 号 (0~15)を 指 定 します。<br />

PrmNo<br />

動 作 パラメータを 取 得 するためのパラメータ 番 号 を 指 定 します。<br />

PrmNo 項 目 内 容<br />

0 送 受 信 タイムアウト 送 受 信 時 に 使 用 するタイムアウト 時 間 ( 単 位 :100ms)<br />

を 取 得 します。<br />

1 STB 応 答 時 間 シリアルポール 時 のステータスバイト 応 答 時 間 ( 単<br />

位 :100ms) を 取 得 します。<br />

2<br />

3<br />

事 象 変 化 検 出 タイムアウト<br />

送 信 デリミタ<br />

事 象 変 化 検 出 でのタイムアウト 時 間 ( 単 位 :100ms)<br />

を 取 得 します。<br />

送 信 時 に 使 用 するデリミタを 取 得 します。<br />

0 デリミタ 無 し<br />

1 EOI<br />

2 CR<br />

3 CR+EOI<br />

4 LF<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

51


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

4 受 信 デリミタ<br />

5 LF+EOI<br />

6 CRLF<br />

7 CRLF+EOI<br />

8 NULL (0x00)<br />

9 感 嘆 符 に 続 く 任 意 の 1 文 字 をデリミタ<br />

とする<br />

受 信 時 に 使 用 するデリミタを 取 得 します。<br />

0 デリミタ 無 し<br />

1 EOI<br />

2 CR<br />

3 CR+EOI<br />

4 LF<br />

5 LF+EOI<br />

6 CRLF<br />

7 CRLF+EOI<br />

8 NULL (0x00)<br />

9 感 嘆 符 に 続 く 任 意 の 1 文 字 をデリミタ<br />

とする<br />

5 非 同 期 入 出 力<br />

非 同 期 入 出 力 の 取 得 をします。<br />

0 データの 送 受 信 において、 同 期 しての<br />

入 出 力 を 行 います。<br />

1 データの 送 受 信 において、 非 同 期 によ<br />

る 入 出 力 を 行 います。<br />

6 1 次 アドレス 1 次 アドレスを 取 得 します。<br />

7 2 次 アドレス 2 次 アドレスを 取 得 します。<br />

8 IEEE-488 バスハンドシェ<br />

イクタイミング<br />

9 パラレルポール 実 行 時 間<br />

255 のとき 2 次 アドレスは 無 効 です。<br />

IEEE-488 ソースハンドシェイク T1 タイミングの 取<br />

得 を 行 います。<br />

0 T1 に 正 常 タイミング(2µs)<br />

1 T1 に 高 速 タイミング(500ns)<br />

2 T1 に 超 高 速 タイミング(350ns)<br />

パラレルポール 実 行 時 間 T6 の 取 得 を 行 います。<br />

0 T6 を 2µs(デフォルト)<br />

1 T6 を 10µs<br />

GetPrm<br />

パラメータを 格 納 する 変 数 へのポインタ( 参 照 渡 し)を 指 定 します。<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、0 が 返 されます。<br />

0 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret;<br />

ULONG GetPrm;<br />

Ret = PciGpibExGetConfig( 0, 0, &GetPrm );<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

52


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

●Visual Basic<br />

Dim Ret As Long<br />

Dim GetRrm As Long<br />

Ret = PciGpibExGetConfig( 0, 0, GetPrm )<br />

●Delphi<br />

var<br />

Ret : Integer;<br />

GetPrm : Cardinal;<br />

Ret := PciGpibExGetConfig( 0, 0, GetPrm );<br />

ボードアクセス 番 号 0 の<strong>インタフェース</strong>モジュールの 現 在 の 送 受 信 タイムアウト 時 間 を 取 得<br />

します。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

53


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

6. PciGpibExSetIfc<br />

【 機 能 】<br />

IFC 信 号 の 送 出 を 行 います。<br />

【 書 式 】<br />

●C 言 語<br />

int PciGpibExSetIfc(<br />

int BoardNo,<br />

int Time<br />

);<br />

●Visual Basic<br />

Declare Function PciGpibExSetIfc Lib "gpc<strong>4304</strong>.dll"( _<br />

ByVal BoardNo As Long, _<br />

ByVal Time As Long _<br />

) As Long<br />

●Delphi<br />

function PciGpibExSetIfc (<br />

BoardNo : Integer;<br />

Time : Integer<br />

) : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>.DLL';<br />

【パラメータ】<br />

BoardNo<br />

ボードアクセス 番 号 (0~15)を 指 定 します。<br />

Time<br />

IFC 送 出 時 間 (1~255)を 指 定 します。<br />

100µs 単 位 で IFC 送 出 時 間 を 設 定 します。<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、0 が 返 されます。<br />

0 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

【 備 考 】<br />

・ 本 関 数 はシステムコントローラでのみ 使 用 できます。<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret;<br />

Ret = PciGpibExSetIfc( 0, 1 );<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

54


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

●Visual Basic<br />

Dim Ret As Long<br />

Ret = PciGpibExSetIfc( 0, 1 )<br />

●Delphi<br />

var<br />

Ret : Integer;<br />

Ret := PciGpibExSetIfc( 0, 1 );<br />

ボードアクセス 番 号 0 の<strong>インタフェース</strong>モジュールから IFC 送 出 を 行 います。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

55


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

7. PciGpibExSetRen<br />

【 機 能 】<br />

REN 信 号 を 有 効 にします。<br />

【 書 式 】<br />

●C 言 語<br />

int PciGpibExSetRen (<br />

int BoardNo<br />

);<br />

●Visual Basic<br />

Declare Function PciGpibExSetRen Lib "gpc<strong>4304</strong>.dll"( _<br />

ByVal BoardNo As Long _<br />

) As Long<br />

●Delphi<br />

function PciGpibExSetRen (<br />

BoardNo : Integer<br />

) : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>.DLL';<br />

【パラメータ】<br />

BoardNo<br />

ボードアクセス 番 号 (0~15)を 指 定 します。<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、0 が 返 されます。<br />

0 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

【 備 考 】<br />

・ 本 関 数 はシステムコントローラでのみ 使 用 できます。<br />

・ システムコントローラとして IFC 送 出 に 引 き 続 いて REN 信 号 を 有 効 にすることで 機 器 をリ<br />

モート 状 態 に 設 定 します。<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret;<br />

Ret = PciGpibExSetRen( 0 );<br />

●Visual Basic<br />

Dim Ret As Long<br />

Ret = PciGpibExSetRen( 0 )<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

56


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

●Delphi<br />

var<br />

Ret : Integer;<br />

Ret := PciGpibExSetRen( 0 );<br />

ボードアクセス 番 号 0 の<strong>インタフェース</strong>モジュールの REN 信 号 を 有 効 にします。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

57


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

8. PciGpibExResetRen<br />

【 機 能 】<br />

REN 信 号 を 無 効 にします。<br />

【 書 式 】<br />

●C 言 語<br />

int PciGpibExResetRen(<br />

int BoardNo<br />

);<br />

●Visual Basic<br />

Declare Function PciGpibExResetRen Lib "gpc<strong>4304</strong>.dll"( _<br />

ByVal BoardNo As Long _<br />

) As Long<br />

●Delphi<br />

function PciGpibExResetRen (<br />

BoardNo : Integer<br />

) : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>.DLL';<br />

【パラメータ】<br />

BoardNo<br />

ボードアクセス 番 号 (0~15)を 指 定 します。<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、0 が 返 されます。<br />

0 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

【 備 考 】<br />

・ 本 関 数 はシステムコントローラでのみ 使 用 できます。<br />

・ すべてのデバイスをローカル 状 態 (フロント・パネル 制 御 可 )の 状 態 にします。<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret;<br />

Ret = PciGpibExResetRen( 0 );<br />

●Visual Basic<br />

Dim Ret As Long<br />

Ret = PciGpibExResetRen( 0 )<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

58


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

●Delphi<br />

var<br />

Ret : Integer;<br />

Ret := PciGpibExResetRen( 0 );<br />

REN 信 号 を 無 効 にします。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

59


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

9. PciGpibExSetRemote<br />

【 機 能 】<br />

指 定 した 機 器 をリモートモードにします。<br />

【 書 式 】<br />

●C 言 語<br />

int PciGpibExSetRemote (<br />

int BoardNo,<br />

int* AdrsTbl<br />

);<br />

●Visual Basic<br />

Declare Function PciGpibExSetRemote Lib "gpc<strong>4304</strong>.dll”( _<br />

ByVal BoardNo As Long, _<br />

ByRef AdrsTbl As Long _<br />

) As Long<br />

●Delphi<br />

function PciGpibExSetRemote (<br />

BoardNo : Integer;<br />

AdrsTbl : Pointer<br />

) : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>.DLL';<br />

【パラメータ】<br />

BoardNo<br />

ボードアクセス 番 号 (0~15)を 指 定 します。<br />

AdrsTbl<br />

機 器 のアドレステーブルを 指 定 します。<br />

リモートモードに 設 定 する 機 器 のアドレステーブルへのポインタ( 参 照 渡 し)を 指 定 しま<br />

す。アドレステーブルへの 終 端 には 必 ず-1 を 設 定 します。<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、0 が 返 されます。<br />

0 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

【 備 考 】<br />

・ 本 関 数 はシステムコントローラでのみ 使 用 できます。<br />

・ 機 器 を GP-IB による 制 御 可 能 状 態 とし,フロントパネルからの 制 御 を 禁 止 します。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

60


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret;<br />

int AdrsTbl[2];<br />

AdrsTbl[0] = 2;<br />

AdrsTbl[1] = -1;<br />

Ret = PciGpibExSetRemote( 0, AdrsTbl );<br />

●Visual Basic<br />

Dim Ret As Long<br />

Dim AdrsTbl(1) As Long<br />

AdrsTbl(0) = 2<br />

AdrsTbl(1) = -1<br />

Ret = PciGpibExSetRemote( 0, AdrsTbl(0) )<br />

●Delphi<br />

var<br />

Ret : Integer;<br />

AdrsTbl : Array[0..4] of Integer;<br />

AdrsTbl[0] := 2;<br />

AdrsTbl[1] := -1;<br />

Ret := PciGpibExSetRemote ( 0, @AdrsTbl[0] );<br />

ボードアクセス 番 号 0 の<strong>インタフェース</strong>モジュールに 対 して AdrsTbl に 記 述 した 機 器 をリモー<br />

ト 状 態 に 設 定 します。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

61


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

10. PciGpibExExecTrigger<br />

【 機 能 】<br />

指 定 した 機 器 に 対 してトリガ 設 定 を 行 います。<br />

【 書 式 】<br />

●C 言 語<br />

int PciGpibExExecTrigger (<br />

int BoardNo,<br />

int* AdrsTbl<br />

);<br />

●Visual Basic<br />

Declare Function PciGpibExExecTrigger Lib "gpc<strong>4304</strong>.dll”( _<br />

ByVal BoardNo As Long, _<br />

ByRef AdrsTbl As Long _<br />

) As Long<br />

●Delphi<br />

function PciGpibExExecTrigger (<br />

BoardNo : Integer;<br />

AdrsTbl : Pointer<br />

) : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>.DLL';<br />

【パラメータ】<br />

BoardNo<br />

ボードアクセス 番 号 (0~15)を 指 定 します。<br />

AdrsTbl<br />

機 器 のアドレステーブルを 指 定 します。<br />

デバイストリガ 機 能 を 動 作 させる 機 器 のアドレステーブルへのポインタ( 参 照 渡 し)を 指<br />

定 します。アドレステーブルへの 終 端 には 必 ず-1 を 設 定 します。<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、0 が 返 されます。<br />

0 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

【 備 考 】<br />

・ 本 関 数 はコントローラ・イン・チャージでのみ 使 用 できます。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

62


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret;<br />

int AdrsTbl[2];<br />

AdrsTbl[0] = 2;<br />

AdrsTbl[1] = -1;<br />

Ret = PciGpibExExecTrigger( 0, AdrsTbl );<br />

●Visual Basic<br />

Dim Ret As Long<br />

Dim AdrsTbl(1) As Long<br />

AdrsTbl(0) = 2<br />

AdrsTbl(1) = -1<br />

Ret = PciGpibExExecTrigger( 0, AdrsTbl(0) )<br />

●Delphi<br />

var<br />

Ret : Integer;<br />

AdrsTbl : Array[0..4] of Integer;<br />

AdrsTbl[0] := 2;<br />

AdrsTbl[1] := -1;<br />

Ret := PciGpibExExecTrigger( 0, @AdrsTbl[0] );<br />

ボードアクセス 番 号 0 の<strong>インタフェース</strong>モジュールから AdrsTbl に 記 述 した 機 器 に 対 してトリ<br />

ガ 設 定 を 行 います。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

63


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

11. PciGpibExExecDevClear<br />

【 機 能 】<br />

全 ての 機 器 に 対 してデバイスクリア 機 能 ( 装 置 の 初 期 化 )を 動 作 させます。<br />

【 書 式 】<br />

●C 言 語<br />

int PciGpibExExecDevClear (<br />

int BoardNo<br />

);<br />

●Visual Basic<br />

Declare Function PciGpibExExecDevClear Lib "gpc<strong>4304</strong>.dll"( _<br />

ByVal BoardNo As Long _<br />

) As Long<br />

●Delphi<br />

function PciGpibExExecDevClear (<br />

BoardNo : Integer<br />

) : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>.DLL';<br />

【パラメータ】<br />

BoardNo<br />

ボードアクセス 番 号 (0~15)を 指 定 します。<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、0 が 返 されます。<br />

0 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

【 備 考 】<br />

・ 本 関 数 はコントローラ・イン・チャージでのみ 使 用 できます。<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret;<br />

Ret = PciGpibExExecDevClear( 0 );<br />

●Visual Basic<br />

Dim Ret As Long<br />

Ret = PciGpibExExecDevClear( 0 )<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

64


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

●Delphi<br />

var<br />

Ret : Integer;<br />

Ret := PciGpibExExecDevClear( 0 );<br />

ボードアクセス 番 号 0 の<strong>インタフェース</strong>モジュールからデバイスクリアの 送 出 を 行 います。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

65


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

12. PciGpibExExecSdc<br />

【 機 能 】<br />

指 定 した 機 器 に 対 してデバイスクリア 機 能 ( 装 置 の 初 期 化 )を 動 作 させます。<br />

【 書 式 】<br />

●C 言 語<br />

int PciGpibExExecSdc (<br />

int BoardNo,<br />

int* AdrsTbl<br />

);<br />

●Visual Basic<br />

Declare Function PciGpibExExecSdc Lib "gpc<strong>4304</strong>.dll”( _<br />

ByVal BoardNo As Long, _<br />

ByRef AdrsTbl As Long _<br />

) As Long<br />

●Delphi<br />

function PciGpibExExecSdc (<br />

BoardNo : Integer;<br />

AdrsTbl : Pointer<br />

) : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>.DLL';<br />

【パラメータ】<br />

BoardNo<br />

ボードアクセス 番 号 (0~15)を 指 定 します。<br />

AdrsTbl<br />

機 器 のアドレステーブルを 指 定 します。<br />

デバイスクリア 機 能 を 動 作 させる 機 器 のアドレステーブルへのポインタ( 参 照 渡 し)を 指<br />

定 します。アドレステーブルへの 終 端 には 必 ず-1 を 設 定 します。<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、0 が 返 されます。<br />

0 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

【 備 考 】<br />

・ 本 関 数 はコントローラ・イン・チャージでのみ 使 用 できます。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

66


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret;<br />

int AdrsTbl[2];<br />

AdrsTbl[0] = 2;<br />

AdrsTbl[1] = -1;<br />

Ret = PciGpibExExecSdc( 0, AdrsTbl );<br />

●Visual Basic<br />

Dim Ret As Long<br />

Dim AdrsTbl(1) As Long<br />

AdrsTbl(0) = 2<br />

AdrsTbl(1) = -1<br />

Ret = PciGpibExExecSdc( 0, AdrsTbl(0) )<br />

●Delphi<br />

var<br />

Ret : Integer;<br />

AdrsTbl : Array[0..4] of Integer;<br />

AdrsTbl[0] := 2;<br />

AdrsTbl[1] := -1;<br />

Ret := PciGpibExExecSdc( 0, @AdrsTbl[0] );<br />

ボードアクセス 番 号 0 の<strong>インタフェース</strong>モジュールから 指 定 した 機 器 に 対 してセレクテッドデ<br />

バイスクリアの 送 出 を 行 います。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

67


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

13. PciGpibExSetLocal<br />

【 機 能 】<br />

指 定 した 機 器 をローカル 状 態 にします(フロント・パネル 制 御 可 )。<br />

【 書 式 】<br />

●C 言 語<br />

int PciGpibExSetLocal (<br />

int BoardNo,<br />

int* AdrsTbl<br />

);<br />

●Visual Basic<br />

Declare Function PciGpibExSetLocal Lib "gpc<strong>4304</strong>.dll”( _<br />

ByVal BoardNo As Long, _<br />

ByRef AdrsTbl As Long _<br />

) As Long<br />

●Delphi<br />

function PciGpibExSetLocal (<br />

BoardNo : Integer;<br />

AdrsTbl : Pointer<br />

) : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>.DLL';<br />

【パラメータ】<br />

BoardNo<br />

ボードアクセス 番 号 (0~15)を 指 定 します。<br />

AdrsTbl<br />

機 器 のアドレステーブルを 指 定 します。<br />

ローカル 状 態 にさせる 機 器 のアドレステーブルへのポインタ( 参 照 渡 し)を 指 定 します。<br />

アドレステーブルへの 終 端 には 必 ず-1 を 設 定 します。<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、0 が 返 されます。<br />

0 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

【 備 考 】<br />

・ 本 関 数 はコントローラ・イン・チャージでのみ 使 用 できます。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

68


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret;<br />

int AdrsTbl[2];<br />

AdrsTbl[0] = 2;<br />

AdrsTbl[1] = -1;<br />

Ret = PciGpibExSetLocal( 0, AdrsTbl );<br />

●Visual Basic<br />

Dim Ret As Long<br />

Dim AdrsTbl(1) As Long<br />

AdrsTbl(0) = 2<br />

AdrsTbl(1) = -1<br />

Ret = PciGpibExSetLocal( 0, AdrsTbl(0) )<br />

●Delphi<br />

var<br />

Ret : Integer;<br />

AdrsTbl : Array[0..4] of Integer;<br />

AdrsTbl[0] := 2;<br />

AdrsTbl[1] := -1;<br />

Ret := PciGpibExSetLocal( 0, @AdrsTbl[0] );<br />

ボードアクセス 番 号 0 の<strong>インタフェース</strong>モジュールから 指 定 した 機 器 に 対 してローカル 状 態 の<br />

設 定 を 行 います。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

69


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

14. PciGpibExSetLlo<br />

【 機 能 】<br />

全 ての 機 器 をローカル・ロックアウト 状 態 (フロントパネルからの 操 作 を 一 切 禁 止 の 状 態 )にし<br />

ます。<br />

【 書 式 】<br />

●C 言 語<br />

int PciGpibExSetLlo (<br />

int BoardNo<br />

);<br />

●Visual Basic<br />

Declare Function PciGpibExSetLlo Lib "gpc<strong>4304</strong>.dll"( _<br />

ByVal BoardNo As Long _<br />

) As Long<br />

●Delphi<br />

function PciGpibExSetLlo (<br />

BoardNo : Integer<br />

) : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>.DLL';<br />

【パラメータ】<br />

BoardNo<br />

ボードアクセス 番 号 (0~15)を 指 定 します。<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、0 が 返 されます。<br />

0 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

【 備 考 】<br />

・ 本 関 数 はコントローラ・イン・チャージでのみ 使 用 できます。<br />

・ 機 器 によっては、ローカルロックアウト 状 態 を 解 除 するためには、 電 源 を 再 投 入 しなけれ<br />

ばならないものもあります。<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret;<br />

Ret = PciGpibExSetLlo( 0 );<br />

●Visual Basic<br />

Dim Ret As Long<br />

Ret = PciGpibExSetLlo( 0 )<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

70


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

●Delphi<br />

var<br />

Ret : Integer;<br />

Ret := PciGpibExSetLlo( 0 );<br />

ローカル・ロックアウトの 送 出 を 行 います。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

71


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

15. PciGpibExSetRwls<br />

【 機 能 】<br />

指 定 した 機 器 をリモート・ロックアウト 状 態 にします。<br />

【 書 式 】<br />

●C 言 語<br />

int PciGpibExSetRwls (<br />

int BoardNo,<br />

int* AdrsTbl<br />

);<br />

●Visual Basic<br />

Declare Function PciGpibExSetRwls Lib "gpc<strong>4304</strong>.dll”( _<br />

ByVal BoardNo As Long, _<br />

ByRef AdrsTbl As Long _<br />

) As Long<br />

●Delphi<br />

function PciGpibExSetRwls (<br />

BoardNo : Integer;<br />

AdrsTbl : Pointer<br />

) : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>.DLL';<br />

【パラメータ】<br />

BoardNo<br />

ボードアクセス 番 号 (0~15)を 指 定 します。<br />

AdrsTbl<br />

機 器 のアドレステーブルを 指 定 します。<br />

リモート・ロックアウト 状 態 にさせる 機 器 のアドレステーブルへのポインタ( 参 照 渡 し)<br />

を 指 定 します。アドレステーブルへの 終 端 には 必 ず-1 を 設 定 します。<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、0 が 返 されます。<br />

0 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

【 備 考 】<br />

・ 本 関 数 はシステムコントローラでのみ 使 用 できます。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

72


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret;<br />

int AdrsTbl[2];<br />

AdrsTbl[0] = 2;<br />

AdrsTbl[1] = -1;<br />

Ret = PciGpibExSetRwls( 0, AdrsTbl );<br />

●Visual Basic<br />

Dim Ret As Long<br />

Dim AdrsTbl(1) As Long<br />

AdrsTbl(0) = 2<br />

AdrsTbl(1) = -1<br />

Ret = PciGpibExSetRwls( 0, AdrsTbl(0) )<br />

●Delphi<br />

var<br />

Ret : Integer;<br />

AdrsTbl : Array[0..4] of Integer;<br />

AdrsTbl[0] := 2;<br />

AdrsTbl[1] := -1;<br />

Ret := PciGpibExSetRwls( 0, @AdrsTbl [0] );<br />

ボードアクセス 番 号 0 の<strong>インタフェース</strong>モジュールから 指 定 した 機 器 に 対 してリモート・ロッ<br />

クアウトの 設 定 を 行 います。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

73


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

16. PciGpibExExecPassCtrl<br />

【 機 能 】<br />

指 定 した 機 器 に 対 してパス・コントロールを 行 います。<br />

【 書 式 】<br />

●C 言 語<br />

int PciGpibExExecPassCtrl (<br />

int BoardNo,<br />

int* AdrsTbl<br />

);<br />

●Visual Basic<br />

Declare Function PciGpibExExecPassCtrl Lib "gpc<strong>4304</strong>.dll”( _<br />

ByVal BoardNo As Long, _<br />

ByRef AdrsTbl As Long _<br />

) As Long<br />

●Delphi<br />

function PciGpibExExecPassCtrl (<br />

BoardNo : Integer;<br />

AdrsTbl : Pointer<br />

) : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>.DLL';<br />

【パラメータ】<br />

BoardNo<br />

ボードアクセス 番 号 (0~15)を 指 定 します。<br />

AdrsTbl<br />

機 器 のアドレステーブルを 指 定 します。<br />

コントロールを 渡 す 機 器 のアドレステーブルへのポインタ( 参 照 渡 し)を 指 定 します。ア<br />

ドレステーブルへの 終 端 には 必 ず-1 を 設 定 します。<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、0 が 返 されます。<br />

0 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

【 備 考 】<br />

・ 本 関 数 はコントローラ・イン・チャージでのみ 使 用 できます。<br />

・ 本 関 数 を 実 行 することにより、 相 手 にコントローラ 機 能 があるかどうかに 関 係 なく、 本 イ<br />

ンタフェースモジュールはコントローラ・イン・チャージが 解 除 されます。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

74


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret;<br />

int AdrsTbl[2];<br />

AdrsTbl[0] = 2;<br />

AdrsTbl[1] = -1;<br />

Ret = PciGpibExExecPassCtrl( 0, AdrsTbl );<br />

●Visual Basic<br />

Dim Ret As Long<br />

Dim AdrsTbl(1) As Long<br />

AdrsTbl(0) = 2<br />

AdrsTbl(1) = -1<br />

Ret = PciGpibExExecPassCtrl( 0, AdrsTbl(0) )<br />

●Delphi<br />

var<br />

Ret : Integer;<br />

AdrsTbl : Array[0..4] of Integer;<br />

AdrsTbl[0] := 2;<br />

AdrsTbl[1] := -1;<br />

Ret := PciGpibExExecPassCtrl( 0, @AdrsTbl[0] );<br />

ボードアクセス 番 号 0 の<strong>インタフェース</strong>モジュールから 指 定 した 機 器 に 対 してパス・コントロ<br />

ールを 実 行 します。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

75


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

17. PciGpibExExecFindListener<br />

【 機 能 】<br />

バス 上 に 接 続 されているリスナ(デバイス)を 探 します。(IEEE 488.2 関 数 )<br />

【 書 式 】<br />

●C 言 語<br />

int PciGpibExExecFindListener (<br />

int BoardNo,<br />

int* AdrsTbl,<br />

int* FindAdrsTbl,<br />

int* FindCnt<br />

);<br />

●Visual Basic<br />

Declare Function PciGpibExExecFindListener Lib "gpc<strong>4304</strong>.dll”( _<br />

ByVal BoardNo As Long, _<br />

ByRef AdrsTbl As Long, _<br />

ByRef FindAdrsTbl As Long, _<br />

ByRef FindCnt As Long _<br />

) As Long<br />

●Delphi<br />

function PciGpibExExecFindListener (<br />

BoardNo : Integer;<br />

AdrsTbl : Pointer;<br />

FindAdrsTbl : Pointer;<br />

FindCnt : Pointer<br />

) : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>.DLL';<br />

【パラメータ】<br />

BoardNo<br />

ボードアクセス 番 号 (0~15)を 指 定 します。<br />

AdrsTbl<br />

接 続 されているか 確 認 したいリスナ(デバイス)の GP-IB アドレスを 格 納 したテーブルへの<br />

ポインタ( 参 照 渡 し)を 指 定 します。<br />

アドレステーブルへの 終 端 には 必 ず-1 を 設 定 します。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

76


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

FindAdrsTbl<br />

見 つかった 機 器 のアドレスを 格 納 するテーブルへのポインタ( 参 照 渡 し)を 指 定 します。<br />

本 API 実 行 後 、AdrsTbl で 指 定 した 機 器 が 見 つかった 場 合 、その 機 器 のアドレスが 格 納 さ<br />

れます。<br />

この 引 数 に 指 定 するテーブルのサイズは、AdrsTbl テーブル 以 上 の 格 納 領 域 を 確 保 しておく<br />

必 要 があります。<br />

本 API 呼 び 出 し 後 、 自 動 で 終 端 に-1 が 付 加 されます。<br />

FindCnt<br />

見 つかった 機 器 の 総 数 を 格 納 する 変 数 へのポインタ( 参 照 渡 し)を 指 定 します。<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、0 が 返 されます。<br />

0 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

【 備 考 】<br />

・ 本 関 数 はコントローラ・イン・チャージでのみ 使 用 できます。<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret;<br />

int AdrsTbl[2];<br />

int FindAdrsTbl[2];<br />

int FindCnt<br />

AdrsTbl[0] = 2;<br />

AdrsTbl[1] = -1;<br />

Ret = PciGpibExExecFindListener( 0, AdrsTbl, FindAdrsTbl, &FindCnt );<br />

●Visual Basic<br />

Dim Ret As Long<br />

Dim AdrsTbl(1) As Long<br />

Dim FindAdrsTbl(1) As Long<br />

Dim FindCnt As Long<br />

AdrsTbl(0) = 2<br />

AdrsTbl(1) = -1<br />

Ret = PciGpibExExecFindListener( 0, AdrsTbl(0), FindAdrsTbl(0), FindCnt )<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

77


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

●Delphi<br />

var<br />

Ret : Integer;<br />

AdrsTbl : Array[0..4] of Integer;<br />

FindAdrsTbl : Array[0..4] of Integer;<br />

FindCnt : Integer;<br />

AdrsTbl[0] := 2;<br />

AdrsTbl[1] := -1;<br />

Ret := PciGpibExExecFindListener( 0, @AdrsTbl[0], @FindAdrsTbl[0], @FindCnt );<br />

ボードアクセス 番 号 0 の<strong>インタフェース</strong>モジュールから'AdrsTbl'に 格 納 されているアドレス<br />

の 探 索 を 実 行 し、 見 つかった 機 器 アドレスとその 総 数 を 取 得 します。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

78


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

18. PciGpibExExecDevReset<br />

【 機 能 】<br />

指 定 した 機 器 を 完 全 にリセットします。(IEEE 488.2 関 数 )<br />

【 書 式 】<br />

●C 言 語<br />

int PciGpibExExecDevReset (<br />

uint BoardNo,<br />

int* AdrsTbl<br />

);<br />

●Visual Basic<br />

Declare Function PciGpibExExecDevReset Lib "gpc<strong>4304</strong>.dll”( _<br />

ByVal BoardNo As Long, _<br />

ByRef AdrsTbl As Long _<br />

) As Long<br />

●Delphi<br />

function PciGpibExExecDevReset (<br />

BoardNo : Integer;<br />

AdrsTbl : Pointer<br />

) : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>.DLL';<br />

【パラメータ】<br />

BoardNo<br />

ボードアクセス 番 号 (0~15)を 指 定 します。<br />

AdrsTbl<br />

機 器 のアドレステーブルを 指 定 します。<br />

リセット 機 能 を 動 作 させる 機 器 のアドレステーブルへのポインタ( 参 照 渡 し)を 指 定 しま<br />

す。アドレステーブルへの 終 端 には 必 ず-1 を 設 定 します。<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、0 が 返 されます。<br />

0 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

【 備 考 】<br />

・ 本 関 数 はシステムコントローラでのみ 使 用 できます。<br />

・ 本 関 数 は 次 の 処 理 を 行 います。<br />

1.バスの 初 期 化<br />

IFC、 次 に REN がアクティブになります。その 結 果 、 全 てのデバイスはアドレスされてい<br />

ない 状 態 になり、GP-IB <strong>インタフェース</strong>モジュール(システムコントローラ)がコントロ<br />

ーラ・イン・チャージ(CIC)になります。<br />

2.メッセージ 交 換 初 期 化<br />

DCL バスコマンドが 全 ての 接 続 されたデバイスに 送 られます。その 結 果 として 全 ての IEEE<br />

488.2 規 格 にあったデバイスは 次 の Reset(RST)メッセージを 受 信 できるようになります。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

79


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

3.デバイス 初 期 化<br />

*RST メッセージが 引 数 'AdrsTbl'にて 指 定 されるアドレスのデバイスに 送 られます。<br />

その 結 果 として、デバイス 特 有 の 機 能 が 初 期 化 されます。<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret;<br />

int AdrsTbl[2];<br />

AdrsTbl[0] = 2;<br />

AdrsTbl[1] = -1;<br />

Ret = PciGpibExExecDevReset( 0, AdrsTbl );<br />

●Visual Basic<br />

Dim Ret As Long<br />

Dim AdrsTbl(1) As Long<br />

AdrsTbl(0) = 2<br />

AdrsTbl(1) = -1<br />

Ret = PciGpibExExecDevReset( 0, AdrsTbl(0) )<br />

●Delphi<br />

var<br />

Ret : Integer;<br />

AdrsTbl : Array[0..4] of Integer;<br />

AdrsTbl[0] := 2;<br />

AdrsTbl[1] := -1;<br />

Ret := PciGpibExExecDevReset( 0, @AdrsTbl [0] );<br />

ボードアクセス 番 号 0 の<strong>インタフェース</strong>モジュールから 指 定 した 機 器 に 対 してリセットの 実 行<br />

を 行 います。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

80


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

19. PciGpibExReSysCtrl<br />

【 機 能 】<br />

システムコントローラの 要 求 または 解 除 を 行 います。<br />

【 書 式 】<br />

●C 言 語<br />

int PciGpibExReSysCtrl (<br />

int BoardNo,<br />

int Mode<br />

);<br />

●Visual Basic<br />

Declare Function PciGpibExReSysCtrl Lib "gpc<strong>4304</strong>.dll”( _<br />

ByVal BoardNo As Long, _<br />

ByVal Mode As Long _<br />

) As Long<br />

●Delphi<br />

function PciGpibExReSysCtrl (<br />

BoardNo : Integer;<br />

Mode : Integer<br />

) : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>.DLL';<br />

【パラメータ】<br />

BoardNo<br />

ボードアクセス 番 号 (0~15)を 指 定 します。<br />

Mode<br />

システムコントローラの 要 求 または 解 除 のモードを 指 定 します。<br />

パラメータ<br />

説 明<br />

0 システムコントローラの 解 除 を 行 います。<br />

1 システムコントローラの 要 求 を 行 います。<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、0 が 返 されます。<br />

0 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

【 備 考 】<br />

・ 本 関 数 はシステムコントローラでのみ 使 用 できます。<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret;<br />

Ret = PciGpibExReSysCtrl( 0, 1 );<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

81


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

●Visual Basic<br />

Dim Ret As Long<br />

Ret = PciGpibExReSysCtrl( 0, 1 )<br />

●Delphi<br />

var<br />

Ret : Integer;<br />

Ret := PciGpibExReSysCtrl( 0, 1 );<br />

ボードアクセス 番 号 0 の<strong>インタフェース</strong>モジュールからシステムコントローラの 要 求 を 行 いま<br />

す。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

82


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

20. PciGpibExGoStandby<br />

【 機 能 】<br />

<strong>インタフェース</strong>モジュールの 動 作 状 態 をコマンドモードからデータモードへ 遷 移 させます。<br />

【 書 式 】<br />

●C 言 語<br />

int PciGpibExGoStandby (<br />

int BoardNo,<br />

int Mode<br />

);<br />

●Visual Basic<br />

Declare Function PciGpibExGoStandby Lib "gpc<strong>4304</strong>.dll”( _<br />

ByVal BoardNo As Long, _<br />

ByVal Mode As Long _<br />

) As Long<br />

●Delphi<br />

function PciGpibExGoStandby (<br />

BoardNo : Integer;<br />

Mode : Integer<br />

) : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>.DLL';<br />

【パラメータ】<br />

BoardNo<br />

ボードアクセス 番 号 (0~15)を 指 定 します。<br />

Mode<br />

データモードを 指 定 します。<br />

パラメータ<br />

説 明<br />

0 通 常 のデータモードに 遷 移 します。<br />

1 シャドウ・ハンドシェークモードに 遷 移 します。<br />

本 モード 指 定 時 、 機 器 間 のデータ 転 送 を 監 視 し、デリミタ 検 出 時 には 自 動 でコマン<br />

ドモードに 遷 移 します。デリミタ 指 定 には、 受 信 デリミタの 設 定 が 使 用 されます。<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、0 が 返 されます。<br />

0 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

【 備 考 】<br />

・ 本 関 数 はコントローラ・イン・チャージでのみ 使 用 できます。<br />

・ 本 関 数 でシャドウ・ハンドシェークモードを 使 用 することにより、 自 分 自 身 が 関 与 しない<br />

機 器 間 でのデータ 転 送 を 行 うことができます。また 機 器 間 でのデータ 転 送 において、デリミ<br />

タ 検 出 時 に 自 動 でコマンドモードに 戻 ることができます。<br />

・ 本 関 数 を 使 用 してシャドウ・ハンドシェークを 行 う 場 合 、デリミタ 指 定 は 必 ず 行 うように<br />

してください。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

83


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret;<br />

Ret = PciGpibExGoStandby( 0, 0 );<br />

●Visual Basic<br />

Dim Ret As Long<br />

Ret = PciGpibExGoStandby( 0, 0 )<br />

●Delphi<br />

var<br />

Ret : Integer;<br />

Ret := PciGpibExGoStandby( 0, 0 );<br />

ボードアクセス 番 号 0 の<strong>インタフェース</strong>モジュールの 動 作 モードを 通 常 のデータモードに 遷 移<br />

させます。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

84


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

21. PciGpibExGoActCtrller<br />

【 機 能 】<br />

<strong>インタフェース</strong>モジュールの 動 作 状 態 をデータモードからコマンドモードへ 遷 移 させます。<br />

【 書 式 】<br />

●C 言 語<br />

int PciGpibExGoActCtrller (<br />

int BoardNo,<br />

int Mode<br />

);<br />

●Visual Basic<br />

Declare Function PciGpibExGoActCtrller Lib "gpc<strong>4304</strong>.dll”( _<br />

ByVal BoardNo As Long, _<br />

ByVal Mode As Long _<br />

) As Long<br />

●Delphi<br />

function PciGpibExGoActCtrller (<br />

BoardNo : Integer;<br />

Mode : Integer<br />

) : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>.DLL';<br />

【パラメータ】<br />

BoardNo<br />

ボードアクセス 番 号 (0~15)を 指 定 します。<br />

Mode<br />

コマンドモードへの 遷 移 方 法 を 指 定 します。<br />

パラメータ<br />

説 明<br />

0 非 同 期 にてコマンドモードへ 遷 移 します。<br />

1 同 期 してコマンドモードへ 遷 移 します。<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、0 が 返 されます。<br />

0 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

85


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

【 備 考 】<br />

・ 本 関 数 はコントローラ・イン・チャージでのみ 使 用 できます。<br />

・ 本 関 数 は PciGpibExGoStandby 関 数 で 通 常 のデータモードに 遷 移 後 にアプリケーションプロ<br />

グラムでコマンドモードにするために 使 用 します。<br />

・ Mode=1( 同 期 してコマンドモードへ 遷 移 )を 使 用 する 場 合 には、<strong>インタフェース</strong>モジュール<br />

はリスナ 状 態 である 必 要 があります。<br />

・ <strong>インタフェース</strong>モジュールがトーカ 状 態 もしくはデータ 転 送 エラー 発 生 後 などの 場 合 には、<br />

Mode=0( 非 同 期 にてコマンドモードへ 遷 移 )を 使 用 してください。<br />

その 場 合 、データ 転 送 が 完 了 しているかどうかに 関 係 無 く、ただちにコマンドモードに 遷 移<br />

します。そのため、データ 転 送 完 了 を 確 認 後 に 実 行 するようにしてください。<br />

・ データ 転 送 実 行 中 に、Mode=0( 非 同 期 にてコマンドモードへ 遷 移 )で 本 API を 実 行 した 場 合 、<br />

タイミングによっては 転 送 中 のデータが 失 われる 可 能 性 があります。<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret;<br />

Ret = PciGpibExGoActCtrller( 0, 0 );<br />

●Visual Basic<br />

Dim Ret As Long<br />

Ret = PciGpibExGoActCtrller( 0, 0 )<br />

●Delphi<br />

var<br />

Ret : Integer;<br />

Ret := PciGpibExGoActCtrller( 0, 0 );<br />

動 作 モードをデータモードからコマンドモードへ 非 同 期 にて 遷 移 させます。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

86


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

22. PciGpibExExecSpoll<br />

【 機 能 】<br />

指 定 した 機 器 に 対 してシリアル・ポーリングを 行 い、ステータス・バイトの 受 信 を 行 います。<br />

【 書 式 】<br />

●C 言 語<br />

int PciGpibExExecSpoll (<br />

int BoardNo,<br />

int* AdrsTbl,<br />

int* StbTbl,<br />

int* StbAdrs<br />

);<br />

●Visual Basic<br />

Declare Function PciGpibExExecSpoll Lib "gpc<strong>4304</strong>.dll”( _<br />

ByVal BoardNo As Long, _<br />

ByRef AdrsTbl As Long, _<br />

ByRef StbTbl As Long, _<br />

ByRef StbAdrs As Long _<br />

) As Long<br />

●Delphi<br />

function PciGpibExExecSpoll (<br />

BoardNo : Integer;<br />

AdrsTbl : Pointer;<br />

StbTbl : Pointer;<br />

StbAdrs : Pointer<br />

) : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>.DLL';<br />

【パラメータ】<br />

BoardNo<br />

ボードアクセス 番 号 (0~15)を 指 定 します。<br />

AdrsTbl<br />

シリアル・ポールを 行 う 機 器 のアドレステーブルへのポインタ( 参 照 渡 し)を 指 定 します。<br />

アドレステーブルへの 終 端 には 必 ず-1 を 設 定 します。<br />

StbTbl<br />

シリアル・ポーリングを 行 い 受 信 した 各 機 器 の 有 効 なステータス・バイトを 格 納 するテー<br />

ブルへのポインタ( 参 照 渡 し)を 指 定 します。<br />

本 関 数 呼 び 出 し 後 、 終 端 に-1 が 付 加 されます。<br />

StbAdrs<br />

SRQ を 送 出 し、 有 効 なステータス・バイトを 持 っていた 各 機 器 のアドレスを 格 納 するテー<br />

ブルへのポインタ( 参 照 渡 し)を 指 定 します。<br />

本 関 数 呼 び 出 し 後 、 終 端 に-1 が 付 加 されます。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

87


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、0 が 返 されます。<br />

0 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

【 備 考 】<br />

・ 本 関 数 はコントローラ・イン・チャージでのみ 使 用 できます。<br />

・ 本 関 数 を 呼 び 出 す 際 は、PciGpibExCheckSrq 関 数 もしくは PciGpibExWaitSignal 関 数 にて、<br />

機 器 よりの SRQ を 受 け 付 けていることを 確 認 してから 呼 び 出 してください。<br />

・ アドレステーブルに 複 数 の 機 器 アドレスを 指 定 することにより、 複 数 の 機 器 に 対 してシリ<br />

アル・ポーリングを 行 うことが 可 能 です。<br />

ステータス・バイト 格 納 テーブルと SRQ 送 出 機 器 アドレス 格 納 テーブルには、 機 器 の 数 + 終<br />

端 を 格 納 することができる 領 域 を 確 保 しておく 必 要 があります。<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret;<br />

int AdrsTbl[2];<br />

int StbTbl[2];<br />

int StbAdrs[2];<br />

AdrsTbl[0] = 2;<br />

AdrsTbl[1] = -1;<br />

Ret = PciGpibExExecSpoll( 0, AdrsTbl, StbTbl, StbAdrs );<br />

●Visual Basic<br />

Dim nRet As Long<br />

Dim AdrsTbl(1) As Long<br />

Dim StbTbl(1) As Long<br />

Dim StbAdrs(1) As Long<br />

AdrsTbl(0) = 2<br />

AdrsTbl(1) = -1<br />

Ret = PciGpibExExecSpoll( 0, AdrsTbl(0), StbTbl(0), StbAdrs(0) )<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

88


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

●Delphi<br />

var<br />

Ret : Integer;<br />

AdrsTbl : Array[0..4] of Integer;<br />

StbTbl : Array[0..4] of Integer;<br />

StbAdrs : Array[0..4] of Integer;<br />

AdrsTbl[0] := 2;<br />

AdrsTbl[1] := -1;<br />

Ret := PciGpibExExecSpoll( 0, @AdrsTbl[0], @StbTbl[0], @StbAdrs[0]);<br />

ボードアクセス 番 号 0 の<strong>インタフェース</strong>モジュールから AdrsTbl に 記 述 される 各 機 器 に 対 して<br />

シリアル・ポーリングを 実 行 します。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

89


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

23. PciGpibExCheckSrq<br />

【 機 能 】<br />

SRQ 信 号 受 信 フラグの 有 効 / 無 効 を 確 認 します。<br />

【 書 式 】<br />

●C 言 語<br />

int PciGpibExCheckSrq (<br />

int BoardNo<br />

);<br />

●Visual Basic<br />

Declare Function PciGpibExCheckSrq Lib "gpc<strong>4304</strong>.dll"( _<br />

ByVal BoardNo As Long _<br />

) As Long<br />

●Delphi<br />

function PciGpibExCheckSrq (<br />

BoardNo : Integer<br />

) : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>.DLL';<br />

【パラメータ】<br />

BoardNo<br />

ボードアクセス 番 号 (0~15)を 指 定 します。<br />

【 戻 り 値 】<br />

正 常 終 了 しますと、 以 下 の 値 を 返 します。<br />

戻 り 値<br />

意 味<br />

5 SRQ 信 号 を 受 け 付 けていません。<br />

4 SRQ 信 号 を 受 け 付 けています。<br />

上 記 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

【 備 考 】<br />

・ 本 関 数 はコントローラ・イン・チャージ/ 非 コントローラ・イン・チャージの 両 方 の 状 態 に<br />

て 使 用 できます。<br />

・ PciGpibExInitBoard 関 数 実 行 後 は SRQ 受 信 割 り 込 み 許 可 状 態 となっています。<br />

・ 本 関 数 を 実 行 後 、 機 器 からの SRQ 信 号 がアサート( 有 効 )になっている 場 合 には、 機 器 から<br />

のステータスバイトを 受 信 するために、 必 ず PciGpibExExecSpoll 関 数 を 実 行 してください。<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret;<br />

Ret = PciGpibExCheckSrq( 0 );<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

90


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

●Visual Basic<br />

Dim Ret As Long<br />

Ret = PciGpibExCheckSrq( 0 )<br />

●Delphi<br />

var<br />

Ret : Integer;<br />

Ret := PciGpibExCheckSrq( 0 );<br />

SRQ 受 信 フラグの 有 効 / 無 効 を 確 認 します。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

91


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

24. PciGpibExClearSrq<br />

【 機 能 】<br />

SRQ 受 信 フラグのクリアを 行 います。<br />

【 書 式 】<br />

●C 言 語<br />

int PciGpibExClearSrq (<br />

int BoardNo<br />

);<br />

●Visual Basic<br />

Declare Function PciGpibExClearSrq Lib "gpc<strong>4304</strong>.dll"( _<br />

ByVal BoardNo As Long _<br />

) As Long<br />

●Delphi<br />

function PciGpibExClearSrq (<br />

BoardNo : Integer<br />

) : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>.DLL';<br />

【パラメータ】<br />

BoardNo<br />

ボードアクセス 番 号 (0~15)を 指 定 します。<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、0 が 返 されます。<br />

0 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

【 備 考 】<br />

・ 本 関 数 はコントローラ・イン・チャージでのみ 使 用 できます。<br />

・ SRQ 受 信 フラグが 有 効 にも 関 わらず、シリアル・ポーリング 実 行 後 、SRQ 発 信 機 器 が 検 出 で<br />

きなかった 場 合 において、 本 関 数 にて 強 制 的 に SRQ 受 信 フラグのクリアを 行 います。<br />

・ 本 関 数 にてソフトウェアが 保 持 している SRQ 受 信 フラグのクリアを 行 いますが、これによ<br />

って、GP-IB バスラインの SRQ 信 号 がデアサート( 信 号 無 効 状 態 )にはなりません。<br />

・ 意 図 しない GP-IB バスラインの SRQ 信 号 アサート 状 態 を 解 除 するためには、SRQ 信 号 をアサ<br />

ートした 該 当 機 器 が SRQ 信 号 をデアサートさせるか、または 全 ての 機 器 の GP-IB インタフェ<br />

ース 機 能 を 再 初 期 化 させる 必 要 があります。<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret;<br />

Ret = PciGpibExClearSrq(0);<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

92


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

●Visual Basic<br />

Dim Ret As Long<br />

Ret = PciGpibExClearSrq(0)<br />

●Delphi<br />

var<br />

Ret : Integer;<br />

Ret := PciGpibExClearSrq(0);<br />

SRQ 受 信 フラグをクリアします。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

93


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

25. PciGpibExEnableSrq<br />

【 機 能 】<br />

SRQ 受 信 割 り 込 みを 許 可 します。<br />

【 書 式 】<br />

●C 言 語<br />

int PciGpibExEnableSrq (<br />

int BoardNo<br />

);<br />

●Visual Basic<br />

Declare Function PciGpibExEnableSrq Lib "gpc<strong>4304</strong>.dll"( _<br />

ByVal BoardNo As Long _<br />

) As Long<br />

●Delphi<br />

function PciGpibExEnableSrq (<br />

BoardNo : Integer;<br />

) : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>.DLL';<br />

【パラメータ】<br />

BoardNo<br />

ボードアクセス 番 号 (0~15)を 指 定 します。<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、0 が 返 されます。<br />

0 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

【 備 考 】<br />

・ 本 関 数 はコントローラ・イン・チャージでのみ 使 用 できます。<br />

・ 本 関 数 呼 び 出 し 後 に SRQ 信 号 がアサートされた 時 、PciGpibExCheckSrq 関 数 にて SRQ 受 信 フ<br />

ラグが 有 効 となります。<br />

・ PciGpibExInitBoard 関 数 実 行 後 は SRQ 受 信 割 り 込 み 許 可 状 態 となっています。<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret;<br />

Ret = PciGpibExEnableSrq( 0 );<br />

●Visual Basic<br />

Dim Ret As Long<br />

Ret = PciGpibExEnableSrq( 0 )<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

94


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

●Delphi<br />

var<br />

Ret : Integer;<br />

Ret := PciGpibExEnableSrq( 0 );<br />

SRQ 受 信 割 り 込 みを 許 可 します。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

95


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

26. PciGpibExDisableSrq<br />

【 機 能 】<br />

SRQ 受 信 割 り 込 みを 禁 止 します。<br />

【 書 式 】<br />

●C 言 語<br />

int PciGpibExDisableSrq (<br />

int BoardNo<br />

);<br />

●Visual Basic<br />

Declare Function PciGpibExDisableSrq Lib "gpc<strong>4304</strong>.dll"( _<br />

ByVal BoardNo As Long _<br />

) As Long<br />

●Delphi<br />

function PciGpibExDisableSrq (<br />

BoardNo : Integer<br />

) : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>.DLL';<br />

【パラメータ】<br />

BoardNo<br />

ボードアクセス 番 号 (0~15)を 指 定 します。<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、0 が 返 されます。<br />

0 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

【 備 考 】<br />

・ 本 関 数 はコントローラ・イン・チャージでのみ 使 用 できます。<br />

・ 本 関 数 呼 び 出 し 後 に SRQ 信 号 がアサートされても、PciGpibExCheckSrq 関 数 では SRQ 受 信 フ<br />

ラグは 無 効 のままです。<br />

・ PciGpibExInitBoard 関 数 実 行 後 は SRQ 受 信 割 り 込 み 許 可 状 態 となっています。<br />

・ 本 関 数 実 行 後 は、SRQ 受 信 割 込 みは 禁 止 となるため、PciGpibExCheckSrq 関 数 による SRQ 受<br />

信 の 確 認 はできません。<br />

・ 本 関 数 実 行 後 に SRQ 信 号 がアサートされ、SRQ 信 号 アサート 状 態 のままで<br />

PciGpibExEnableSrq 関 数 を 呼 び 出 しますと、SRQ 受 信 割 込 みが 有 効 となるため、<br />

PciGpibExCheckSrq 関 数 にて SRQ 受 信 が 有 効 となります。<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret;<br />

Ret = PciGpibExDisableSrq( 0 );<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

96


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

●Visual Basic<br />

Dim Ret As Long<br />

Ret = PciGpibExDisableSrq( 0 )<br />

●Delphi<br />

var<br />

Ret : Integer;<br />

Ret := PciGpibExDisableSrq( 0 );<br />

SRQ 受 信 割 り 込 みを 禁 止 します。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

97


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

27. PciGpibExExecPpoll<br />

【 機 能 】<br />

パラレルポーリングを 実 行 します。<br />

【 書 式 】<br />

●C 言 語<br />

int PciGpibExExecPpoll (<br />

int BoardNo,<br />

int* Pst<br />

);<br />

●Visual Basic<br />

Declare Function PciGpibExExecPpoll Lib "gpc<strong>4304</strong>.dll”( _<br />

ByVal BoardNo As Long, _<br />

ByRef Pst As Long _<br />

) As Long<br />

●Delphi<br />

function PciGpibExExecPpoll (<br />

BoardNo : Integer;<br />

var Pst : Integer<br />

) : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>.DLL';<br />

【パラメータ】<br />

BoardNo<br />

ボードアクセス 番 号 (0~15)を 指 定 します。<br />

Pst<br />

パラレルポーリング 時 の 応 答 ステータスを 格 納 する 変 数 へのポインタ( 参 照 渡 し)を 指 定<br />

します。<br />

各 機 器 毎 の 情 報 を 得 るために、 事 前 に 各 機 器 に 対 してどのビットを 使 用 するのか、また 応<br />

答 の 極 性 をどうするのかについては、PciGpibExCfgPpoll 関 数 で 指 定 する 方 法 (リモートコ<br />

ンフィグレーション)と 機 器 のフロントパネルからの 設 定 (ローカルコンフィグレーション)<br />

の 2 通 りがあります。<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、0 が 返 されます。<br />

0 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

【 備 考 】<br />

・ 本 関 数 はコントローラ・イン・チャージでのみ 使 用 できます。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

98


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret;<br />

int Pst;<br />

Ret = PciGpibExExecPpoll( 0, &Pst );<br />

●Visual Basic<br />

Dim Ret As Long<br />

Dim Pst As Long<br />

Ret = PciGpibExExecPpoll( 0, Pst )<br />

●Delphi<br />

var<br />

Ret : Integer;<br />

Pst : Integer;<br />

Ret := PciGpibExecPpoll( 0, Pst );<br />

パラレル・ポーリングを 実 行 します。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

99


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

28. PciGpibExCfgPpoll<br />

【 機 能 】<br />

機 器 に 対 してリモートにてパラレルポール・コンフィグレーションを 行 います。<br />

コンフィグレーションは 応 答 する DIO ラインの 割 り 当 てと、その 極 性 を 設 定 します。<br />

(リモート・コンフィグレーション)<br />

【 書 式 】<br />

●C 言 語<br />

int PciGpibExCfgPpoll (<br />

int BoardNo,<br />

int* AdrsTbl,<br />

int Ppe<br />

);<br />

●Visual Basic<br />

Declare Function PciGpibExCfgPpoll Lib "gpc<strong>4304</strong>.dll”( _<br />

ByVal BoardNo As Long, _<br />

ByRef AdrsTbl As Long, _<br />

ByVal Ppe As Long _<br />

) As Long<br />

●Delphi<br />

function PciGpibExCfgPpoll (<br />

BoardNo : Integer;<br />

AdrsTbl : Pointer;<br />

Ppe : Integer<br />

) : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>.DLL';<br />

【パラメータ】<br />

BoardNo<br />

ボードアクセス 番 号 (0~15)を 指 定 します。<br />

AdrsTbl<br />

パラレルポールに 応 答 させる 機 器 のアドレステーブルへのポインタ( 参 照 渡 し)を 指 定 し<br />

ます。<br />

アドレステーブルへの 終 端 には 必 ず-1 を 設 定 します。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

100


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

Ppe<br />

パラレルポール 応 答 設 定 を 指 定 します。<br />

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0<br />

0 0 0 0 S p3 p2 p1<br />

p3 p2 p1 DIO ライン 1~8 の 指 定<br />

0 0 0 DIO1 で 応 答<br />

0 0 1 DIO2 で 応 答<br />

0 1 0 DIO3 で 応 答<br />

0 1 1 DIO4 で 応 答<br />

1 0 0 DIO5 で 応 答<br />

1 0 1 DIO6 で 応 答<br />

1 1 0 DIO7 で 応 答<br />

1 1 1 DIO8 で 応 答<br />

S<br />

極 性 の 指 定<br />

0 機 器 の ist ビットがクリア(0)のとき、 割 り 当 てた 応 答 DIO ラインを<br />

アサートします。<br />

1 機 器 の ist ビットがセット(1)のとき、 割 り 当 てた 応 答 DIO ラインを<br />

アサートします。<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、0 が 返 されます。<br />

0 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

【 備 考 】<br />

・ 本 関 数 はコントローラ・イン・チャージでのみ 使 用 できます。<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret;<br />

int AdrsTbl[2];<br />

AdrsTbl[0] = 2;<br />

AdrsTbl[1] = -1;<br />

Ret = PciGpibExCfgPpoll( 0, AdrsTbl, 0x09 );<br />

●Visual Basic<br />

Dim Ret As Long<br />

Dim AdrsTbl(1) As Long<br />

AdrsTbl(0) = 2<br />

AdrsTbl(1) = -1<br />

Ret = PciGpibExCfgPpoll( 0, AdrsTbl(0), &H09 )<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

101


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

●Delphi<br />

var<br />

Ret : Integer;<br />

AdrsTbl : Array[0..4] of Integer;<br />

AdrsTbl[0] := 2;<br />

AdrsTbl[1] := -1;<br />

Ret := PciGpibExCfgPpoll( 0, @AdrsTbl[0], $09 );<br />

ボードアクセス 番 号 0 の<strong>インタフェース</strong>モジュールから、 指 定 した 機 器 に 対 してリモートにて<br />

パラレルポール・コンフィグレーションを 行 います。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

102


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

29. PciGpibExUnCfgPpoll<br />

【 機 能 】<br />

リモート・コンフィグレーションにて、パラレルポール・コンフィグレーションされている 機<br />

器 に 対 して PPD(Parallel Poll Disable)を 送 出 し、パラレルポール 応 答 設 定 を 解 除 します。<br />

【 書 式 】<br />

●C 言 語<br />

int PciGpibExUnCfgPpoll (<br />

int BoardNo,<br />

int* AdrsTbl<br />

);<br />

●Visual Basic<br />

Declare Function PciGpibExUnCfgPpoll Lib "gpc<strong>4304</strong>.dll”( _<br />

ByVal BoardNo As Long, _<br />

ByRef AdrsTbl As Long _<br />

) As Long<br />

●Delphi<br />

function PciGpibExUnCfgPpoll (<br />

BoardNo : Integer;<br />

AdrsTbl : Pointer<br />

) : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>.DLL';<br />

【パラメータ】<br />

BoardNo<br />

ボードアクセス 番 号 (0~15)を 指 定 します。<br />

AdrsTbl<br />

パラレルポール 応 答 設 定 を 解 除 する 機 器 のアドレステーブルへのポインタ( 参 照 渡 し)を<br />

指 定 します。<br />

アドレステーブルへの 終 端 には 必 ず-1 を 設 定 します。<br />

アドレステーブルの 先 頭 に-1 を 設 定 した 場 合 は、PPU(Parallel Poll Unconfigure)を 送 出 し<br />

てリモート・コンフィギュレーション 機 能 を 持 つ 全 ての 機 器 の 応 答 設 定 を 解 除 します。<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、0 が 返 されます。<br />

0 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

103


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

【 備 考 】<br />

・ 本 関 数 はコントローラ・イン・チャージでのみ 使 用 できます。<br />

・ 本 関 数 はリモート・コンフィグレーションにて、パラレルポール・コンフィグレーション<br />

されている 機 器 に 対 して PPD(Parallel Poll Disable)を 送 出 し、パラレルポール 応 答 設 定 を<br />

解 除 します。<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret;<br />

int AdrsTbl[2];<br />

AdrsTbl[0] = 2;<br />

AdrsTbl[1] = -1;<br />

Ret = PciGpibExUnCfgPpoll( 0, AdrsTbl );<br />

●Visual Basic<br />

Dim Ret As Long<br />

Dim AdrsTbl(1) As Long<br />

AdrsTbl(0) = 2<br />

AdrsTbl(1) = -1<br />

Ret = PciGpibExUnCfgPpoll( 0, AdrsTbl(0) )<br />

●Delphi<br />

var<br />

Ret : Integer;<br />

AdrsTbl : Array[0..4] of Integer;<br />

AdrsTbl[0] := 2;<br />

AdrsTbl[1] := -1;<br />

Ret := PciGpibExUnCfgPpoll( 0, @AdrsTbl[0] );<br />

ボードアクセス 番 号 0 の<strong>インタフェース</strong>モジュールから、パラレルポール 応 答 設 定 解 除 を 行 い<br />

ます。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

104


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

30. PciGpibExWriteBusCmd<br />

【 機 能 】<br />

機 器 に 対 してバス・コマンド(マルチライン・<strong>インタフェース</strong>・メッセージ)を 発 行 します。<br />

【 書 式 】<br />

●C 言 語<br />

int PciGpibExWriteBusCmd (<br />

int BoardNo,<br />

int* CmdTbl<br />

);<br />

●Visual Basic<br />

Declare Function PciGpibExWriteBusCmd Lib "gpc<strong>4304</strong>.dll”( _<br />

ByVal BoardNo As Long, _<br />

ByRef CmdTbl As Long _<br />

) As Long<br />

●Delphi<br />

function PciGpibExWriteBusCmd (<br />

BoardNo : Integer;<br />

CmdTbl : Pointer<br />

) : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>.DLL';<br />

【パラメータ】<br />

BoardNo<br />

ボードアクセス 番 号 (0~15)を 指 定 します。<br />

CmdTbl<br />

バス 上 に 送 出 されるコマンドを 格 納 してあるテーブルへのポインタ( 参 照 渡 し)を 指 定 し<br />

ます。<br />

また、コマンドテーブルの 終 端 には 必 ず-1 を 設 定 してください。<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、0 が 返 されます。<br />

0 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

【 備 考 】<br />

・ 本 関 数 はコントローラ・イン・チャージでのみ 使 用 できます。<br />

・ コマンドテーブルに 設 定 されるデータは、そのままの 形 で GP-IB バスに 送 出 されます。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

105


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret;<br />

int CmdTbl[3];<br />

CmdTbl[0] = 0x3F;<br />

CmdTbl[1] = 0x22;<br />

CmtTbl[2] = -1;<br />

Ret = PciGpibExWriteBusCmd( 0, CmdTbl );<br />

●Visual Basic<br />

Dim nRet As Long<br />

Dim CmdTbl(2) As Long<br />

CmdTbl(0) = &H3F<br />

CmdTbl(1) = &H22<br />

CmdTbl(2) = -1<br />

nRet = PciGpibExWriteBusCmd( 0, npCmdTbl(0) )<br />

●Delphi<br />

var<br />

Ret : Integer;<br />

CmdTbl : Array[0..9] of Integer;<br />

CmdTbl[0] := $3F;<br />

CmdTbl[1] := $22;<br />

CmtTbl[2] := -1;<br />

Ret := PciGpibExWriteBusCmd( 0, @CmdTbl[0] );<br />

ボードアクセス 番 号 0 の<strong>インタフェース</strong>モジュールから npCmdTbl に 記 述 されているバス・コ<br />

マンドを 送 出 します。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

106


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

31. PciGpibExSetSignal<br />

【 機 能 】<br />

各 種 バス・ステータスにおける 事 象 変 化 の 検 出 条 件 の 設 定 を 行 います。<br />

【 書 式 】<br />

●C 言 語<br />

int PciGpibExSetSignal (<br />

int BoardNo,<br />

UINT Signal,<br />

BOOL Detect<br />

);<br />

●Visual Basic<br />

Declare Function PciGpibExSetSignal Lib "gpc<strong>4304</strong>.dll”( _<br />

ByVal BoardNo As Long, _<br />

ByVal Signal As Long, _<br />

ByVal Detect As Long _<br />

) As Long<br />

●Delphi<br />

function PciGpibExSetSignal (<br />

BoardNo : Integer;<br />

Signal : UINT;<br />

Detect : Boolean<br />

) : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>.DLL';<br />

【パラメータ】<br />

BoardNo<br />

ボードアクセス 番 号 (0~15)を 指 定 します。<br />

Signal<br />

検 出 条 件 を 以 下 のビット 情 報 で 指 定 します。<br />

bit31<br />

bit30<br />

bit29<br />

bit28<br />

bit27<br />

bit26<br />

bit25<br />

IFC 受 信 検 出 許 可<br />

( 非 コントローラ・イン・チャージのみ)<br />

SRQ 受 信 検 出 許 可<br />

(コントローラ・イン・チャージのみ)<br />

シリアルポール 終 了 検 出 許 可<br />

( 非 コントローラ・イン・チャージのみ)<br />

デバイストリガ 受 信 検 出 許 可<br />

( 非 コントローラ・イン・チャージのみ)<br />

デバイスクリア 受 信 検 出 許 可<br />

( 非 コントローラ・イン・チャージのみ)<br />

データ 受 信 検 出 許 可<br />

( 非 コントローラ・イン・チャージのみ)<br />

リスナ 指 定 検 出 許 可<br />

( 非 コントローラ・イン・チャージのみ)<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

107


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

bit24 トーカ 指 定 検 出 許 可<br />

( 非 コントローラ・イン・チャージのみ)<br />

bit23 入 出 力 完 了 検 出 許 可<br />

(コントローラ・イン・チャージ/ 非 コントローラ・イン・チャージ)<br />

bit22 リモート 状 態 検 出 許 可<br />

( 非 コントローラ・イン・チャージのみ)<br />

bit21 ロックアウト 状 態 検 出 許 可<br />

( 非 コントローラ・イン・チャージのみ)<br />

bit20 デリミタ 検 出 許 可<br />

(コントローラ・イン・チャージのみ)<br />

bit19 コントローラ・イン・チャージ(CIC) 検 出 許 可<br />

(コントローラ・イン・チャージのみ)<br />

bit18 ATN 信 号 アクティブ 検 出 許 可<br />

(コントローラ・イン・チャージのみ)<br />

bit1~bit17 予 約 。0 を 指 定 してください。<br />

bit0 タイムアウト 有 り、0:タイムアウト 無 し<br />

※ 1: 検 出 許 可 , 0: 検 出 無 効<br />

複 数 の 条 件 設 定 (OR 指 定 )ができます。<br />

ただし、コントローラ・イン・チャージのみと 非 コントローラ・イン・チャージのみの 条<br />

件 は 一 緒 には 設 定 できません。<br />

Detect<br />

検 出 フラグを 指 定 します。<br />

パラメータ<br />

説 明<br />

0 検 出 を 無 効 にします。 指 定 された 検 出 項 目 の 状 態 はクリアされ、 事<br />

象 変 化 検 出 を 行 いません。<br />

1 検 出 を 有 効 にします。 指 定 された 検 出 項 目 の 設 定 を 有 効 とし、 事 象<br />

変 化 検 出 を 行 います。<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、0 が 返 されます。<br />

0 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret;<br />

Ret = PciGpibExSetSignal( 0, 0x02000001, 1 );<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

108


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

●Visual Basic<br />

Dim Ret As Long<br />

Ret = PciGpibExSetSignal( 0, &h02000001, 1 )<br />

●Delphi<br />

var<br />

Ret : Integer;<br />

Ret := PciGpibExSetSignal( 0, $02000001, 1 );<br />

ボードアクセス 番 号 0 の<strong>インタフェース</strong>モジュールに 対 して、リスナ 指 定 検 出 を 許 可 、タイム<br />

アウト 有 りとして 設 定 します。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

109


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

32. PciGpibExWaitSignal<br />

【 機 能 】<br />

各 種 バス・ステータスの 事 象 変 化 を 待 ちます。<br />

【 書 式 】<br />

●C 言 語<br />

int PciGpibExWaitSignal (<br />

int BoardNo,<br />

UINT* Signal<br />

);<br />

●Visual Basic<br />

Declare Function PciGpibExWaitSignal Lib "gpc<strong>4304</strong>.dll”( _<br />

ByVal BoardNo As Long, _<br />

ByRef Signal As Long _<br />

) As Long<br />

●Delphi<br />

function PciGpibExWaitSignal (<br />

BoardNo : Integer;<br />

var Signal : Cardinal<br />

) : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>.DLL';<br />

【パラメータ】<br />

BoardNo<br />

ボードアクセス 番 号 (0~15)を 指 定 します。<br />

Signal<br />

検 出 された 事 象 を 格 納 する 変 数 へのポインタ( 参 照 渡 し)を 指 定 します。<br />

バス・ステータスは 以 下 のビット 情 報 で 格 納 されます。<br />

bit31 IFC 受 信 検 出<br />

( 非 コントローラ・イン・チャージのみ)<br />

bit30 SRQ 受 信 検 出<br />

(コントローラ・イン・チャージのみ)<br />

bit29 シリアルポール 終 了 検 出<br />

( 非 コントローラ・イン・チャージのみ)<br />

bit28 デバイストリガ 受 信 検 出<br />

( 非 コントローラ・イン・チャージのみ)<br />

bit27 デバイスクリア 受 信 検 出<br />

( 非 コントローラ・イン・チャージのみ)<br />

bit26 データ 受 信 検 出<br />

( 非 コントローラ・イン・チャージのみ)<br />

bit25 リスナ 指 定 検 出 許 可<br />

( 非 コントローラ・イン・チャージのみ)<br />

bit24 トーカ 指 定 検 出<br />

( 非 コントローラ・イン・チャージのみ)<br />

bit23 入 出 力 完 了 検 出<br />

(コントローラ・イン・チャージ/ 非 コントローラ・イン・チャージ)<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

110


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

bit22 リモート 状 態 検 出<br />

( 非 コントローラ・イン・チャージのみ)<br />

bit21 ロックアウト 状 態 検 出<br />

( 非 コントローラ・イン・チャージのみ)<br />

bit20 デリミタ 検 出<br />

(コントローラ・イン・チャージのみ)<br />

bit19 コントローラ・イン・チャージ(CIC) 検 出<br />

(コントローラ・イン・チャージのみ)<br />

bit18 ATN 信 号 アクティブ 検 出<br />

(コントローラ・イン・チャージのみ)<br />

bit0~bit17 予 約 。0 が 格 納 されます。<br />

※ 1: 検 出 , 0: 未 検 出<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、0 が 返 されます。<br />

0 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

【 備 考 】<br />

・ 各 モードで 検 出 できない 事 象 のビットが 有 効 になることがあります。 検 出 できない 事 象 は<br />

無 視 するようにしてください。<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret;<br />

UINT Status;<br />

Ret = PciGpibExWaitSignal(0, &Status);<br />

●Visual Basic<br />

Dim Ret As Long<br />

Dim Status As Long<br />

Ret = PciGpibExWaitSignal(0, Status)<br />

●Delphi<br />

var<br />

Ret : Integer;<br />

Status : Cardinal;<br />

Ret := PciGpibExWaitSignal(0, Status);<br />

ボードアクセス 番 号 0 の<strong>インタフェース</strong>モジュールの 事 象 変 化 検 出 を 待 ちます。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

111


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

33. PciGpibExGetStatus<br />

【 機 能 】<br />

現 在 のバス・ステータスを 取 得 します。<br />

【 書 式 】<br />

●C 言 語<br />

int PciGpibExGetStatus (<br />

int BoardNo,<br />

UINT* Status<br />

);<br />

●Visual Basic<br />

Declare Function PciGpibExGetStatus Lib "gpc<strong>4304</strong>.dll”( _<br />

ByVal BoardNo As Long, _<br />

ByRef Status As Long _<br />

) As Long<br />

●Delphi<br />

function PciGpibExGetStatus (<br />

BoardNo : Integer;<br />

var Status : Cardinal<br />

) : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>.DLL';<br />

【パラメータ】<br />

BoardNo<br />

ボードアクセス 番 号 (0~15)を 指 定 します。<br />

Signal<br />

バス・ステータスを 格 納 する 変 数 へのポインタ( 参 照 渡 し)を 指 定 します。<br />

バス・ステータスは 以 下 のビット 情 報 で 格 納 されます。<br />

bit31 IFC 受 信 検 出<br />

( 非 コントローラ・イン・チャージのみ)<br />

bit30 SRQ 受 信 検 出<br />

(コントローラ・イン・チャージのみ)<br />

bit29 シリアルポール 終 了 検 出<br />

( 非 コントローラ・イン・チャージのみ)<br />

bit28 デバイストリガ 受 信 検 出<br />

( 非 コントローラ・イン・チャージのみ)<br />

bit27 デバイスクリア 受 信 検 出<br />

( 非 コントローラ・イン・チャージのみ)<br />

bit26 データ 受 信 検<br />

( 非 コントローラ・イン・チャージのみ)<br />

bit25 リスナ 指 定 検 出<br />

( 非 コントローラ・イン・チャージのみ)<br />

bit24 トーカ 指 定 検 出<br />

( 非 コントローラ・イン・チャージのみ)<br />

bit23 入 出 力 完 了 検 出<br />

(コントローラ・イン・チャージ/ 非 コントローラ・イン・チャージ)<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

112


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

bit22 リモート 状 態 検 出<br />

( 非 コントローラ・イン・チャージのみ)<br />

bit21 ロックアウト 状 態 検 出<br />

( 非 コントローラ・イン・チャージのみ)<br />

bit20 デリミタ 検 出<br />

(コントローラ・イン・チャージのみ)<br />

bit19 コントローラ・イン・チャージ(CIC) 検 出<br />

(コントローラ・イン・チャージのみ)<br />

bit18 ATN 信 号 アクティブ 検 出<br />

(コントローラ・イン・チャージのみ)<br />

bit17 非 同 期 入 出 力 中 に 送 信 エラーを 検 出<br />

(コントローラ・イン・チャージ/ 非 コントローラ・イン・チャージ)<br />

bit16 予 約 。0 が 格 納 されます。<br />

bit15 シリアルポールモードステータス[SPMS] 検 出<br />

(コントローラ・イン・チャージ)<br />

bit0~bit14 予 約 。0 が 格 納 されます。<br />

※ 1: 検 出 , 0: 未 検 出<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、0 が 返 されます。<br />

0 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

【 備 考 】<br />

・ 各 モードで 検 出 できない 事 象 のビットが 有 効 になることがあります。 検 出 できない 事 象 は<br />

無 視 するようにしてください。<br />

・ bit24(トーカ 指 定 )のクリアは、トーカ 指 定 が 解 除 された 時 に 自 動 的 に 行 われます。<br />

・ bit25(リスナ 指 定 )のクリアは、リスナ 指 定 が 解 除 された 時 に 自 動 的 に 行 われます。<br />

・ bit26(データ 受 信 )のクリアは、トーカ 指 定 時 、およびリスナ 指 定 解 除 時 に 自 動 的 に 行 われ<br />

ます。<br />

・ bit22(リモート 状 態 )のクリアは、ローカル 状 態 になったときに 自 動 クリアされます。<br />

・ bit21(ロックアウト 状 態 )のクリアは、ロックアウト 解 除 状 態 時 に 自 動 クリアされます。<br />

・ bit30(SRQ 受 信 )のクリアは、シリアル・ポーリングを 行 うと 自 動 クリアされます。<br />

・ bit15(SPMS)のクリアは、シリアルポールモードステータス 解 除 時 に 自 動 クリアされます。<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret;<br />

UINT Status;<br />

Ret = PciGpibExGetStatus( 0, &Status );<br />

●Visual Basic<br />

Dim Ret As Long<br />

Dim Status As Long<br />

Ret = PciGpibExGetStatus( 0, Status )<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

113


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

●Delphi<br />

var<br />

Ret : Integer;<br />

Status : Cardinal;<br />

Ret := PciGpibExGetStatus( 0, Status );<br />

バス・ステータスを 取 得 します。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

114


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

34. PciGpibExClrStatus<br />

【 機 能 】<br />

バス・ステータス 情 報 のクリアを 行 います。<br />

【 書 式 】<br />

●C 言 語<br />

int PciGpibExClrStatus (<br />

int BoardNo,<br />

UINT Status<br />

);<br />

●Visual Basic<br />

Declare Function PciGpibExClrStatus Lib "gpc<strong>4304</strong>.dll”( _<br />

ByVal BoardNo As Long, _<br />

ByVal Status As Long _<br />

) As Long<br />

●Delphi<br />

function PciGpibExClrStatus (<br />

BoardNo : Integer;<br />

Status : UINT<br />

) : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>.DLL';<br />

【パラメータ】<br />

BoardNo<br />

ボードアクセス 番 号 (0~15)を 指 定 します。<br />

Status<br />

クリアするバス・ステータスを 指 定 します。<br />

バス・ステータスは 以 下 のビット 情 報 で 指 定 します。<br />

bit31 IFC 受 信 検 出 クリア<br />

bit30 SRQ 受 信 検 出 クリア<br />

bit29 シリアルポール 終 了 検 出 クリア<br />

bit28 デバイストリガ 受 信 検 出 クリア<br />

bit27 デバイスクリア 受 信 検 出 クリア<br />

bit26 データ 受 信 検 出 クリア<br />

bit25 リスナ 指 定 検 出 クリア<br />

bit24 トーカ 指 定 検 出 クリア<br />

bit23 入 出 力 完 了 検 出 クリア<br />

bit22 リモート 状 態 検 出 クリア<br />

bit21 ロックアウト 状 態 検 出 クリア<br />

bit20 デリミタ 検 出 クリア<br />

bit19 コントローラ・イン・チャージ(CIC) 検 出 クリア<br />

bit18 ATN 信 号 アクティブ 検 出 クリア<br />

bit17 非 同 期 入 出 力 中 に 送 信 エラーを 検 出 クリア<br />

bit0~bit16 予 約 。0 を 指 定 してください。<br />

※ 1:クリアします, 0:クリアしません<br />

【 戻 り 値 】<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

115


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

正 常 終 了 した 場 合 は、0 が 返 されます。<br />

0 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

【 備 考 】<br />

・ データ 非 同 期 転 送 進 行 中 に bit23( 入 出 力 完 了 検 出 クリア)を 有 効 として 本 API を 呼 び 出 し<br />

た 時 、GP-IB ボードは 次 の 動 作 を 行 います。<br />

現 在 、 進 行 中 のデータ 非 同 期 転 送 を 強 制 終 了 させます。<br />

これは、 機 器 からの 応 答 が 無 くなる 等 の 状 態 となったとき、 非 同 期 転 送 中 の 場 合 には 上 記<br />

GP-IB ボードではタイムアウトの 検 出 ができないため、 何 らかの 手 段 にて 転 送 を 終 了 させる<br />

ために、アプリケーションプログラムの 責 任 において、 現 在 の 非 同 期 転 送 を 強 制 中 断 させる<br />

ものです。<br />

強 制 中 断 させた 場 合 、 送 受 信 完 了 状 態 とはならず、 送 受 信 は 実 行 されなかったものとなりま<br />

す。データ 受 信 の 場 合 には 今 まで 受 信 したデータは 無 効 となります。<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret;<br />

Ret = PciGpibExClrStatus(0, 0x02000000);<br />

●Visual Basic<br />

Dim Ret As Long<br />

Ret = PciGpibExClrStatus(0, &h02000000)<br />

●Delphi<br />

var<br />

Ret : Integer;<br />

Ret := PciGpibExClrStatus(0, $02000000);<br />

リスナ 指 定 をクリアします。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

116


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

35. PciGpibExGetBusLine<br />

【 機 能 】<br />

GP-IB バスラインの 状 態 を 取 得 します。<br />

【 書 式 】<br />

●C 言 語<br />

int PciGpibExGetBusLine (<br />

int BoardNo,<br />

UINT * GetBusLine,<br />

int Reserved<br />

);<br />

●Visual Basic<br />

Declare Function PciGpibExMastSendData Lib "gpc<strong>4304</strong>.dll"( _<br />

ByVal BoardNo As Long, _<br />

ByRef GetBusLine As Long, _<br />

ByVal Reserved As Long _<br />

) As Long<br />

●Delphi<br />

function PciGpibExMastSendData (<br />

BoardNo : Integer;<br />

var GetBusLine : UINT;<br />

Reserved : Integer<br />

) : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>.DLL';<br />

【パラメータ】<br />

BoardNo<br />

ボードアクセス 番 号 (0~15)を 指 定 します。<br />

GetBusLine<br />

現 在 の GP-IB バスラインの 状 態 を 格 納 する 変 数 へのポインタ<br />

バスライン 状 態 は 以 下 のビットパターンで 格 納 されます。<br />

bit15 ATN 信 号<br />

bit14 DAV 信 号<br />

bit13 NDAC 信 号<br />

bit12 NRFD 信 号<br />

bit11 EOI 信 号<br />

bit10 SRQ 信 号<br />

bit9 IFC 信 号<br />

bit8 REN 信 号<br />

bit0~bit7 予 約<br />

※ 1:アサート, 0:デアサート<br />

各 信 号 の 状 態 は、バスの 入 出 力 方 向 に 依 存 します。<br />

自 分 自 身 が 出 力 している 信 号 の 場 合 は、その 状 態 がリードバックされます。<br />

未 使 用 、 予 約 のビットは 不 定 値 となります。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

117


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

Reserved<br />

予 約 パラメータ。0 を 指 定 してください。<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、0 が 返 されます。<br />

0 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret;<br />

UINT GetBusLine;<br />

Ret = PciGpibExGetBusLine( 0, &GetBusLine, 0 );<br />

●Visual Basic<br />

Dim Ret As Long<br />

Dim GetBusLine As Long<br />

Ret = PciGpibExGetBusLine( 0, GetBusLine, 0 )<br />

●Delphi<br />

var<br />

Ret : Integer;<br />

GetBusLine: UINT;<br />

Ret := PciGpibExGetBusLine( 0, @GetBusLine, 0 );<br />

現 在 の GP-IB バスラインの 状 態 を 取 得 します。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

118


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

36. PciGpibExSetBusLine<br />

【 機 能 】<br />

GP-IB バスの 各 ラインを 直 接 制 御 (アサート)します。<br />

【 書 式 】<br />

●C 言 語<br />

int PciGpibExGetBusLine (<br />

int BoardNo,<br />

UINT GetBusLine,<br />

int Reserved<br />

);<br />

●Visual Basic<br />

Declare Function PciGpibExMastSendData Lib "gpc<strong>4304</strong>.dll"( _<br />

ByVal BoardNo As Long, _<br />

ByVal GetBusLine As Long, _<br />

ByVal Reserved As Long _<br />

) As Long<br />

●Delphi<br />

function PciGpibExMastSendData (<br />

BoardNo : Integer;<br />

GetBusLine : UINT;<br />

Reserved : Integer<br />

) : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>.DLL';<br />

【パラメータ】<br />

BoardNo<br />

ボードアクセス 番 号 (0~15)を 指 定 します。<br />

GetBusLine<br />

GP-IB バスラインの 設 定 値<br />

バスライン 状 態 は 以 下 のビットパターンにてアサートします。<br />

bit15 ATN 信 号<br />

bit14 DAV 信 号<br />

bit13 NDAC 信 号<br />

bit12 NRFD 信 号<br />

bit11 EOI 信 号<br />

bit10 SRQ 信 号<br />

bit9 IFC 信 号<br />

bit8 REN 信 号<br />

bit0~bit7 予 約<br />

※ 1:アサート, 0:デアサート<br />

アサート 可 能 な 信 号 線 は、 本 API 実 行 時 に 出 力 方 向 となっている 信 号 線 のみです。<br />

入 力 方 向 の 信 号 線 はアサートされません。<br />

未 使 用 、 予 約 のビットには 0 を 設 定 してください。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

119


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

Reserved<br />

予 約 パラメータ。0 を 指 定 してください。<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、0 が 返 されます。<br />

0 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret;<br />

Ret = PciGpibExSetBusLine(0, 0x8100, 0);<br />

●Visual Basic<br />

Dim Ret As Long<br />

Ret = PciGpibExSetBusLine(0, &h8100, 0)<br />

●Delphi<br />

var<br />

Ret : Integer;<br />

Ret := PciGpibExSetBusLine(0, $8100, 0);<br />

GP-IB バスラインの ATN 信 号 と REN 信 号 を 直 接 アサートします。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

120


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

37. PciGpibExMastSendData<br />

【 機 能 】<br />

指 定 した 機 器 に 対 して、データを 送 信 します。<br />

【 書 式 】<br />

●C 言 語<br />

int PciGpibExMastSendData (<br />

int BoardNo,<br />

int* AdrsTbl,<br />

DWORD Length,<br />

void* Buffer,<br />

UINT Msg<br />

);<br />

●Visual Basic<br />

バイト 型 / 数 値 型 変 数 のデータ 送 信 の 場 合<br />

Declare Function PciGpibExMastSendData Lib "gpc<strong>4304</strong>.dll"( _<br />

ByVal BoardNo As Long, _<br />

ByRef AdrsTbl As Long, _<br />

ByVal Length As Long, _<br />

ByRef Buffer As Any, _<br />

ByVal Msg As Long _<br />

) As Long<br />

文 字 列 型 変 数 のデータ 送 信 の 場 合<br />

Declare Function PciGpibExMastSendData Lib "gpc<strong>4304</strong>.dll"( _<br />

ByVal BoardNo As Long, _<br />

ByRef AdrsTbl As Long, _<br />

ByVal Length As Long, _<br />

ByVal Buffer As String, _<br />

ByVal Msg As Long _<br />

) As Long<br />

非 同 期 データ 送 信 の 場 合<br />

Declare Function PciGpibExMastSendData Lib "gpc<strong>4304</strong>.dll"( _<br />

ByVal BoardNo As Long, _<br />

ByRef AdrsTbl As Long, _<br />

ByVal Length As Long, _<br />

ByVal Buffer As Any, _<br />

ByVal Msg As Long _<br />

) As Long<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

121


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

●Delphi<br />

function PciGpibExMastSendData (<br />

BoardNo : Integer;<br />

AdrsTbl : Pointer;<br />

Length : Cardinal;<br />

Buffer : Pointer;<br />

Msg : Cardinal<br />

) : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>.DLL';<br />

【パラメータ】<br />

BoardNo<br />

ボードアクセス 番 号 (0~15)を 指 定 します。<br />

AdrsTbl<br />

機 器 のアドレステーブルへのポインタ( 参 照 渡 し)を 指 定 します。<br />

アドレステーブルへの 終 端 には 必 ず-1 を 設 定 します。<br />

Length<br />

送 信 データ 長 のバイトサイズを 指 定 します。<br />

Buffer<br />

送 信 バッファ 領 域 へのポインタ( 参 照 渡 し)を 指 定 します。<br />

※ Visual Basic の 場 合 には、API の Declare Function の 宣 言 がバイト 型 / 数 値 型 と 文 字 列 型<br />

とでは 異 なります。<br />

※ Visual Basic で 非 同 期 送 信 を 行 う 場 合 は、GlobalAlloc 関 数 などを 用 いて 割 り 当 てたメモ<br />

リ 領 域 を 指 定 してください。 詳 しくはサンプルプログラムをご 参 照 ください。<br />

Msg<br />

非 同 期 送 信 完 了 時 にアプリケーションに 通 知 されるメッセージを 指 定 します。<br />

同 期 動 作 時 には WM_NULL もしくは 0 を 指 定 してください<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、0 が 返 されます。<br />

0 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

【 備 考 】<br />

・ 本 関 数 はコントローラ・イン・チャージでのみ 使 用 できます。<br />

本 関 数 使 用 前 にあらかじめ、PciGpibExSetIfc 関 数 を 実 行 し、ボードをコントローラ イン チ<br />

ャージの 状 態 とする 必 要 があります。<br />

・ 同 期 入 出 力 時 には、タイムアウト 発 生 もしくは 何 らかの 要 因 により 処 理 が 終 了 した 場 合 に<br />

おいて、 本 関 数 の 処 理 を 終 了 します。<br />

・ 非 同 期 入 出 力 時 は、 本 関 数 はデータ 送 信 開 始 のみ 行 い、データ 送 信 完 了 を 待 たずに 本 関 数<br />

の 処 理 を 終 了 します。データ 送 信 完 了 の 確 認 は、PciGpibExGetStatus 関 数 において 入 出 力 完<br />

了 を 監 視 、または、アプリケーションに 通 知 されるメッセージにより 行 います。<br />

その 時 点 で、 本 関 数 を 再 度 呼 び 出 すことにより、 送 信 ステータスの 取 得 を 行 います。<br />

・ 非 同 期 入 出 力 時 のタイムアウト 検 出 について<br />

非 同 期 入 出 力 時 は、タイムアウトの 検 出 が 行 えません。 機 器 からの 応 答 がない 場 合 の 転 送 中<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

122


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

断 処 理 はアプリケーションプログラム 側 にて PciGpibExClrStatus 関 数 を 入 出 力 完 了 検 出 ク<br />

リアを 指 定 して 呼 び 出 すことにより、 非 同 期 入 出 力 の 中 断 処 理 が 行 われます。<br />

・ 送 信 データ 長 として 0 を 指 定 すると、マルチラインメッセージとして 本 <strong>インタフェース</strong>モ<br />

ジュールをトーカ、 指 定 デバイスをリスナとして 指 定 し、コマンドモードのまま 終 了 します。<br />

(データ 送 信 処 理 は 起 動 しません)<br />

・ 機 器 アドレステーブルの 先 頭 に-1 を 格 納 すると、マルチラインメッセージの 送 出 を 行 わず<br />

にデータモードに 遷 移 してデータ 送 信 を 開 始 します。<br />

・ デリミタは 関 数 内 で 自 動 的 に 付 加 されるので、 予 めデータに 付 加 しておく 必 要 はありませ<br />

ん。<br />

・ 送 信 完 了 メッセージはデリミタ 送 出 後 にポストされます。<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret;<br />

int BoardNo;<br />

int AdrsTbl[4];<br />

DWORD SendLen;<br />

char SendDat[ ] = "0123456789";<br />

BoardNo = 0;<br />

AdrsTbl[0] = 2;<br />

AdrsTbl[1] = -1; // 終 端 コードが 必 要 です<br />

SendLen = strlen(SendDat);<br />

Ret = PciGpibExMastSendData( BoardNo, &AdrsTbl[0], SendLen, SendDat, WM_NULL );<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

123


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

●Visual Basic<br />

Dim Ret As Long<br />

Dim BoardNo As Long<br />

Dim AdrsTbl(1) As Long<br />

Dim Data As String<br />

Dim SendLen As Long<br />

BoardNo = 0<br />

AdrsTbl(0) = 2<br />

AdrsTbl(1) = -1 ' 終 端 コードが 必 要 です<br />

Data = StrConv("0123456789", vbFromUnicode)<br />

SendLen = LenB(Data)<br />

Data = StrConv(Data, vbUnicode)<br />

Ret = PciGpibExMastSendData( BoardNo, AdrsTbl(0), SendLen, Data, 0 )<br />

●Delphi<br />

var<br />

Ret : Integer;<br />

BoardNo : Integer;<br />

AdrsTbl : Array[0..4] of Integer;<br />

SendLen : Cardinal;<br />

SendData : pChar;<br />

BoardNo := 0;<br />

AdrsTbl[0] := 2;<br />

AdrsTbl[1] := -1;<br />

SendData := StrNew('0123456789');<br />

SendLen := 10;<br />

Ret := PciGpibExMastSendData( BoardNo, @AdrsTbl[0], SendLen, SendData,<br />

WM_NULL );<br />

指 定 した 機 器 へ 文 字 列 "0123456789"のデータ 送 信 を 実 行 します。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

124


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

38. PciGpibExMastRecvData<br />

【 機 能 】<br />

指 定 した 機 器 からデータを 受 信 します。<br />

【 書 式 】<br />

●C 言 語<br />

int PciGpibExMastRecvData (<br />

int BoardNo,<br />

int* AdrsTbl,<br />

DWORD* Length,<br />

void* Buffer,<br />

UINT Msg<br />

);<br />

●Visual Basic<br />

バイト 型 / 数 値 型 変 数 のデータ 受 信 の 場 合<br />

Declare Function PciGpibExMastRecvData Lib "gpc<strong>4304</strong>.dll"( _<br />

ByVal BoardNo As Long, _<br />

ByRef AdrsTbl As Long, _<br />

ByRef Length As Long, _<br />

ByRef Buffer As Any, _<br />

ByVal Msg As Long _<br />

) As Long<br />

文 字 列 型 変 数 のデータ 受 信 の 場 合<br />

Declare Function PciGpibExMastRecvData Lib "gpc<strong>4304</strong>.dll"( _<br />

ByVal BoardNo As Long, _<br />

ByRef AdrsTbl As Long, _<br />

ByRef Length As Long, _<br />

ByVal Buffer As String, _<br />

ByVal Msg As Long _<br />

) As Long<br />

非 同 期 データ 受 信 の 場 合<br />

Declare Function PciGpibExMastRecvData Lib "gpc<strong>4304</strong>.dll"( _<br />

ByVal BoardNo As Long, _<br />

ByRef AdrsTbl As Long, _<br />

ByRef Length As Long, _<br />

ByVal Buffer As Any, _<br />

ByVal Msg As Long _<br />

) As Long<br />

●Delphi<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

125


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

function PciGpibExMastRecvData (<br />

BoardNo : Integer;<br />

AdrsTbl : Pointer;<br />

var Length : Cardinal;<br />

Buffer : Pointer;<br />

Msg : Cardinal<br />

) : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>.DLL';<br />

【パラメータ】<br />

BoardNo<br />

ボードアクセス 番 号 (0~15)を 指 定 します。<br />

AdrsTbl<br />

機 器 のアドレステーブルへのポインタ( 参 照 渡 し)を 指 定 します。<br />

アドレステーブルへの 終 端 には 必 ず-1 を 設 定 します。<br />

Length<br />

受 信 バッファのバイトサイズが 格 納 されている 変 数 へのポインタ( 参 照 渡 し)を 指 定 しま<br />

す。<br />

本 関 数 呼 び 出 し 後 、 実 際 に 受 信 したバイトサイズが 格 納 されます。( 同 期 入 出 力 時 )<br />

受 信 バッファの 領 域 は、 必 ず「 受 信 データ 長 」+「デリミタ」 分 の 領 域 を 確 保 するように<br />

してください。<br />

Buffer<br />

受 信 バッファ 領 域 へのポインタ( 参 照 渡 し)を 指 定 します。<br />

※ Visual Basic の 場 合 には、API の Declare Function の 宣 言 がバイト 型 / 数 値 型 と 文 字 列 型<br />

とでは 異 なります。<br />

※ Visual Basic では、 文 字 列 変 数 として 固 定 長 文 字 列 を 指 定 してください。<br />

例 : Dim RecvBuffer As String * 32 など<br />

※ Visual Basic で 非 同 期 送 信 を 行 う 場 合 は、GlobalAlloc 関 数 などを 用 いて 割 り 当 てたメモ<br />

リ 領 域 を 指 定 してください。 詳 しくはサンプルプログラムをご 参 照 ください。<br />

Msg<br />

非 同 期 送 信 完 了 時 にアプリケーションに 通 知 されるメッセージを 指 定 します。<br />

同 期 動 作 時 には WM_NULL もしくは 0 を 指 定 してください<br />

【 戻 り 値 】<br />

正 常 終 了 しますと、 以 下 の 値 を 返 します。<br />

戻 り 値<br />

意 味<br />

2 EOI を 検 出 して 受 信 が 完 了 しました。<br />

1 指 定 された 受 信 データ 数 に 達 して 受 信 が 完 了 しました。<br />

0 デリミタを 検 出 して 受 信 が 完 了 しました。<br />

上 記 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

【 備 考 】<br />

・ 本 関 数 はコントローラ・イン・チャージでのみ 使 用 できます。<br />

本 関 数 使 用 前 にあらかじめ、PciGpibExSetIfc 関 数 を 実 行 し、ボードをコントローラ イン チ<br />

ャージの 状 態 とする 必 要 があります。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

126


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

・ 同 期 入 出 力 時 には、タイムアウト 発 生 もしくは 何 らかの 要 因 により 処 理 が 終 了 した 場 合 に<br />

おいて、 本 関 数 の 処 理 を 終 了 します。<br />

・ 非 同 期 入 出 力 時 には、 本 関 数 はデータ 受 信 開 始 のみ 行 い、データ 受 信 完 了 を 待 たずに 本 関<br />

数 の 処 理 を 終 了 します。データ 受 信 完 了 の 確 認 は、PciGpibExGetStatus 関 数 において 入 出 力<br />

完 了 を 監 視 、または、アプリケーションに 通 知 されるメッセージにより 行 います。<br />

その 時 点 で、 本 関 数 を 再 度 呼 び 出 すことにより、 受 信 ステータスおよび 受 信 データ 長 の 取 得<br />

を 行 います。<br />

・ 非 同 期 入 出 力 時 のタイムアウト 検 出 について<br />

非 同 期 入 出 力 時 は、タイムアウトの 検 出 が 行 えません。 機 器 からの 応 答 がない 場 合 の 転 送 中<br />

断 処 理 はアプリケーションプログラム 側 にて PciGpibExClrStatus 関 数 を 入 出 力 完 了 検 出 ク<br />

リアを 指 定 して 呼 び 出 すことにより、 非 同 期 入 出 力 の 中 断 処 理 が 行 われます。<br />

・ 受 信 データ 長 として 0 を 指 定 すると、マルチラインメッセージとして 本 <strong>インタフェース</strong>モ<br />

ジュールをリスナ、 最 初 の 指 定 デバイスをトーカ、2 番 目 以 降 のデバイスをリスナとして 指<br />

定 し、コマンドモードのまま 終 了 します。(データ 受 信 処 理 は 起 動 しません)<br />

・ 機 器 アドレステーブルに-1 を 指 定 するとマルチラインメッセージの 送 出 を 行 わずにデータ<br />

モードに 遷 移 してデータ 受 信 を 開 始 します。<br />

・ 受 信 完 了 メッセージはデリミタ 受 信 後 にポストされます。<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret;<br />

int BoardNo;<br />

int AdrsTbl[4];<br />

DWORD RecvLen;<br />

char RecvBuf[64];<br />

BoardNo = 0;<br />

AdrsTbl[0] = 2;<br />

AdrsTbl[1] = -1;<br />

// 終 端 コードが 必 要 です。<br />

RecvLen = 64;<br />

// 受 信 バッファの Max サイズを 指 定 する<br />

Ret = PciGpibExMastRecvData( BoardNo, &AdrsTbl[0], &RecvLen, RecvBuf,<br />

WM_NULL );<br />

RecvBuf[RecvLen] = '¥0'; // 受 信 完 了 時 には、RecvLen 変 数 には 実 際 に<br />

// 受 信 したデータのデータ 長 が 格 納 される<br />

printf(" 受 信 データ %s, 受 信 データ 長 %d¥n", RecvBuf, RecvLen);<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

127


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

●Visual Basic<br />

Public RecvBuf As String * 64 ' 受 信 バッファ 領 域 は、 標 準 モジュール 内 ( .BAS ファイル)<br />

' で Public 宣 言 する<br />

Dim Ret As Long<br />

Dim BoardNo As Long<br />

Dim AdrsTbl(1) As Long<br />

Dim RecvLen As Long<br />

BoardNo = 0<br />

AdrsTbl(0) = 2<br />

AdrsTbl(1) = -1 ' 終 端 コードが 必 要 です<br />

RecvLen = 64 ' 受 信 バッファの Max サイズを 指 定 する<br />

Ret = PciGpibExMastRecvData( BoardNo, AdrsTbl(0), RecvLen, RecvBuf, 0 )<br />

●Delphi<br />

var<br />

Ret : Integer;<br />

BoardNo : Integer,<br />

AdrsTbl : Array[0..4] of Integer;<br />

RecvLen : Cardinal;<br />

RecvBuf : Array[0..64] of Char;<br />

BoardNo := 0;<br />

AdrsTbl[0] := 2;<br />

AdrsTbl[1] := -1;<br />

RecvLen := 64;<br />

Ret := PciGpibExMastRecvData( BoardNo, @AdrsTbl[0], RecvLen, @RecvBuf[0],<br />

WM_NULL );<br />

指 定 した 機 器 からのデータ 受 信 の 実 行 を 行 います。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

128


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

39. PciGpibExMastSendFile<br />

【 機 能 】<br />

ファイルからデータを 読 み 込 み、GP-IB バス 上 に 送 信 します。<br />

【 書 式 】<br />

●C 言 語<br />

int PciGpibExMastSendFile (<br />

int BoardNo,<br />

int* AdrsTbl,<br />

char* FileName<br />

);<br />

●Visual Basic<br />

Declare Function PciGpibExMastSendFile Lib "gpc<strong>4304</strong>.dll"( _<br />

ByVal BoardNo As Long, _<br />

ByRef AdrsTbl As Long, _<br />

ByVal FileName As String _<br />

) As Long<br />

●Delphi<br />

function PciGpibExMastSendFile (<br />

BoardNo : Integer;<br />

AdrsTbl : Pointer;<br />

FileName : String<br />

) : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>.DLL';<br />

【パラメータ】<br />

BoardNo<br />

ボードアクセス 番 号 (0~15)を 指 定 します。<br />

AdrsTbl<br />

機 器 のアドレステーブルへのポインタ( 参 照 渡 し)を 指 定 します。<br />

アドレステーブルへの 終 端 には 必 ず-1 を 設 定 します。<br />

FileName<br />

送 信 データが 格 納 されたファイル 名 を 指 定 します。<br />

ファイル 名 の 指 定 はフルパスで 記 述 する 必 要 があります。<br />

パスの 記 述 がない 場 合 には、カレントフォルダのファイル 指 定 となります。<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、0 が 返 されます。<br />

0 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

129


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

【 備 考 】<br />

・ 本 関 数 はコントローラ・イン・チャージでのみ 使 用 できます。<br />

・ ファイルの 内 容 は 加 工 されずにそのままの 形 でバスに 送 出 されます。<br />

・ ファイルの 最 後 には、 送 信 デリミタが 付 加 されます。そのため、CRLF 等 のデリミタを 指 定<br />

していた 場 合 、ファイルの 最 後 に CRLF が 付 加 されてしまいます。 従 ってファイル 転 送 等 に 使<br />

用 する 場 合 においては、 送 信 デリミタには 必 ず EOI のみを 指 定 してください。<br />

・ ファイルはバイナリデータとしてオープンされ 読 み 込 まれます。また、オープンされたフ<br />

ァイルは 読 み 込 み 終 了 後 、ただちにクローズされます。<br />

・ 本 関 数 では 非 同 期 入 出 力 設 定 がされていても、 非 同 期 処 理 は 行 われず、 同 期 して 処 理 され<br />

ます。<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret;<br />

int AdrsTbl[2];<br />

AdrsTbl[0] = 2;<br />

AdrsTbl[1] = -1;<br />

Ret = PciGpibExMastSendFile( 0, AdrsTbl, "test.dat" );<br />

●Visual Basic<br />

Dim Ret As Long<br />

Dim AdrsTbl(1) As Long<br />

AdrsTbl(0) = 2<br />

AdrsTbl(1) = -1<br />

Ret = PciGpibExMastSendFile( 0, AdrsTbl(0), "test.dat" )<br />

●Delphi<br />

var<br />

Ret : Integer;<br />

AdrsTbl : Array[0..4] of Integer;<br />

AdrsTbl[0] := 2;<br />

AdrsTbl[1] := -1;<br />

Ret := PciGpibExMastSendFile( 0, @AdrsTbl [0], 'test.dat' );<br />

ファイル 名 "test.dat"のファイルを 読 み 込 み、GP-IB バス 上 に 送 出 します。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

130


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

40. PciGpibExMastRecvFile<br />

【 機 能 】<br />

GP-IB バスから 受 信 したデータをファイルに 書 き 込 みます。<br />

【 書 式 】<br />

●C 言 語<br />

int PciGpibExMastRecvFile (<br />

int BoardNo,<br />

int* AdrsTbl,<br />

DWORD* Length,<br />

char* FileName<br />

);<br />

●Visual Basic<br />

Declare Function PciGpibExMastRecvFile Lib "gpc<strong>4304</strong>.dll"( _<br />

ByVal BoardNo As Long, _<br />

ByVal AdrsTbl As Long, _<br />

ByRef Length As Long, _<br />

ByVal FileName As String _<br />

) As Long<br />

●Delphi<br />

function PciGpibExMastRecvFile (<br />

BoardNo : Integer;<br />

AdrsTbl : Pointer;<br />

var Length : Cardinal;<br />

FileName : String<br />

) : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>.DLL';<br />

【パラメータ】<br />

BoardNo<br />

ボードアクセス 番 号 (0~15)を 指 定 します。<br />

AdrsTbl<br />

機 器 のアドレステーブルへのポインタ( 参 照 渡 し)を 指 定 します。<br />

アドレステーブルへの 終 端 には 必 ず-1 を 設 定 します。<br />

Length<br />

受 信 バッファのバイトサイズが 格 納 されている 変 数 へのポインタ( 参 照 渡 し)を 指 定 しま<br />

す。<br />

本 関 数 呼 び 出 し 後 、 実 際 に 受 信 したバイトサイズが 格 納 されます。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

131


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

FileName<br />

受 信 データを 格 納 するファイル 名 を 指 定 します。<br />

ファイル 名 の 指 定 はフルパスで 記 述 する 必 要 があります。<br />

パスの 記 述 がない 場 合 には、カレントフォルダのファイル 指 定 となります。<br />

【 戻 り 値 】<br />

正 常 終 了 しますと、 以 下 の 値 を 返 します。<br />

戻 り 値<br />

意 味<br />

2 EOI を 検 出 して 受 信 が 完 了 しました。<br />

1 指 定 された 受 信 データ 数 に 達 して 受 信 が 完 了 しました。<br />

0 デリミタを 検 出 して 受 信 が 完 了 しました。<br />

上 記 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

【 備 考 】<br />

・ 本 関 数 はコントローラ・イン・チャージでのみ 使 用 できます。<br />

・ バスから 読 み 込 まれたデータに 受 信 デリミタが 含 まれていた 場 合 、その 時 点 で 受 信 処 理 を<br />

終 了 します。 従 ってファイル 転 送 等 に 使 用 する 場 合 において、ファイル 中 に CRLF 等 のコード<br />

が 含 まれている 場 合 には、 受 信 デリミタには 必 ず EOI のみを 指 定 してください。<br />

・ ファイルはバスから 読 み 込 まれたデータがそのままの 形 式 で 書 き 込 まれます。<br />

・ オープンされたファイルは 書 き 込 み 終 了 後 、ただちにクローズされます。 既 にファイルが<br />

存 在 していた 場 合 は、 上 書 きされます。<br />

・ 本 関 数 では 非 同 期 入 出 力 設 定 がされていても、 非 同 期 処 理 は 行 われず、 同 期 して 処 理 され<br />

ます。<br />

・ 受 信 バッファサイズ(Length)の 指 定 はデリミタサイズも 含 めて 充 分 余 裕 を 持 って 指 定 して<br />

ください。<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret;<br />

int AdrsTbl[2];<br />

DWORD Length;<br />

AdrsTbl[0] = 2;<br />

AdrsTbl[1] = -1;<br />

Length = 64;<br />

Ret = PciGpibExMastRecvFile( 0, AdrsTbl, Length, "test.dat" );<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

132


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

●Visual Basic<br />

Dim Ret As Long<br />

Dim AdrsTbl(1) As Long<br />

Dim Length As Long<br />

AdrsTbl(0) = 2<br />

AdrsTbl(1) = -1<br />

Length = 64<br />

Ret = PciGpibExMastRecvFile( 0, AdrsTbl(0), Length, "test.dat" );<br />

●Delphi<br />

var<br />

Ret : Integer;<br />

AdrsTbl : Array[0..4] of Integer;<br />

Length : Cardinal;<br />

AdrsTbl[0] := 2;<br />

AdrsTbl[1] := -1;<br />

Length := 64;<br />

Ret := PciGpibExMastRecvFile( 0, @AdrsTbl[0], Length, 'test.dat' );<br />

データ 受 信 を 実 行 し、ファイル"test.dat"に 受 信 したデータを 書 き 込 みます。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

133


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

41. PciGpibExSlavSendData<br />

【 機 能 】<br />

データを 送 信 します。<br />

本 関 数 を 実 行 する 場 合 には、コントローラよりトーカ 指 定 済 、ATN 信 号 がデアサート( 信 号 無 効 )<br />

状 態 となっている 必 要 があります。<br />

【 書 式 】<br />

●C 言 語<br />

int PciGpibExSlavSendData (<br />

int BoardNo,<br />

DWORD Length,<br />

void* Buffer,<br />

UINT Msg<br />

);<br />

●Visual Basic<br />

バイト 型 / 数 値 型 変 数 のデータ 送 信 の 場 合<br />

Declare Function PciGpibExSlavSendData Lib "gpc<strong>4304</strong>.dll"( _<br />

ByVal BoardNo As Long, _<br />

ByVal Length As Long, _<br />

ByRef Buffer As Any, _<br />

ByVal Msg As Long _<br />

) As Long<br />

文 字 列 型 変 数 のデータ 送 信 の 場 合<br />

Declare Function PciGpibExSlavSendData Lib "gpc<strong>4304</strong>.dll"( _<br />

ByVal BoardNo As Long, _<br />

ByVal Length As Long, _<br />

ByVal Buffer As String, _<br />

ByVal Msg As Long _<br />

) As Long<br />

非 同 期 データ 送 信 の 場 合<br />

Declare Function PciGpibExSlavSendData Lib "gpc<strong>4304</strong>.dll"( _<br />

ByVal BoardNo As Long, _<br />

ByVal Length As Long, _<br />

ByVal Buffer As Any, _<br />

ByVal Msg As Long _<br />

) As Long<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

134


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

●Delphi<br />

function PciGpibExSlavSendData (<br />

BoardNo : Integer;<br />

Length : Cardinal;<br />

Buffer : Pointer;<br />

Msg : Cardinal<br />

) : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>.DLL';<br />

【パラメータ】<br />

BoardNo<br />

ボードアクセス 番 号 (0~15)を 指 定 します。<br />

Length<br />

送 信 データ 長 のバイトサイズを 指 定 します。<br />

Buffer<br />

送 信 バッファ 領 域 へのポインタ( 参 照 渡 し)を 指 定 します。<br />

※ Visual Basic の 場 合 には、API の Declare Function の 宣 言 がバイト 型 / 数 値 型 と 文 字 列 型<br />

とでは 異 なります。<br />

※ Visual Basic で 非 同 期 送 信 を 行 う 場 合 は、GlobalAlloc 関 数 などを 用 いて 割 り 当 てたメモ<br />

リ 領 域 を 指 定 してください。 詳 しくはサンプルプログラムをご 参 照 ください。<br />

Msg<br />

非 同 期 送 信 完 了 時 にアプリケーションに 通 知 されるメッセージを 指 定 します。<br />

同 期 動 作 時 には WM_NULL もしくは 0 を 指 定 してください<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、0 が 返 されます。<br />

0 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

【 備 考 】<br />

・ 本 関 数 はコントローラ・イン・チャージ/ 非 コントローラ・イン・チャージの 両 方 で 使 用 で<br />

きます。<br />

・ 同 期 入 出 力 時 には、タイムアウト 発 生 もしくは 何 らかの 要 因 により 処 理 が 終 了 した 場 合 に<br />

おいて、 本 関 数 の 処 理 を 終 了 します。<br />

・ 非 同 期 入 出 力 時 には、 本 関 数 はデータ 送 信 開 始 のみ 行 い、データ 送 信 完 了 を 待 たずに 本 関<br />

数 の 処 理 を 終 了 します。データ 送 信 完 了 の 確 認 は、PciGpibExGetStatus 関 数 において 入 出 力<br />

完 了 を 監 視 、または、アプリケーションに 通 知 されるメッセージにより 行 います。その 時 点<br />

で、 本 関 数 を 再 度 呼 び 出 すことにより、 送 信 ステータスの 取 得 を 行 います。<br />

・ 非 同 期 入 出 力 時 のタイムアウト 検 出 について<br />

非 同 期 入 出 力 時 は、タイムアウトの 検 出 が 行 えません。 機 器 からの 応 答 がない 場 合 の 転 送 中<br />

断 処 理 はアプリケーションプログラム 側 にて PciGpibExClrStatus 関 数 を 入 出 力 完 了 検 出 ク<br />

リアを 指 定 して 呼 び 出 すことにより、 非 同 期 入 出 力 の 中 断 処 理 が 行 われます。<br />

・ その 時 点 で、 本 関 数 を 再 度 呼 び 出 すことにより、 送 信 ステータスの 取 得 を 行 います。<br />

・ デリミタは 関 数 内 で 自 動 的 に 付 加 されるので、 予 めデータに 付 加 しておく 必 要 はありませ<br />

ん。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

135


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

・ 送 信 完 了 メッセージはデリミタ 送 出 後 にポストされます。<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret;<br />

int BoardNo;<br />

DWORD Len;<br />

char SendDat[ ] = "0123456789";<br />

BoardNo = 0;<br />

Len = strlen(SendDat);<br />

Ret = PciGpibExSlavSendData( BoardNo, Len, SendDat, WM_NULL );<br />

●Visual Basic<br />

Dim Ret As Long<br />

Dim Data As String<br />

Dim Len As Long<br />

Dim BoardNo As Long<br />

BoardNo = 0<br />

Data = StrConv("0123456789", vbFromUnicode)<br />

Len = LenB(Data)<br />

Data = StrConv(Data, vbUnicode)<br />

Ret = PciGpibExSlavSendData( BoardNo, Len, Data, 0 )<br />

●Delphi<br />

var<br />

Ret : Integer;<br />

BoardNo : Integer;<br />

SendLen : Cardinal;<br />

SendData : pChar;<br />

BoardNo := 0;<br />

SendData := StrNew('0123456789');<br />

SendLen := 10;<br />

Ret := PciGpibExMastSendData( BoardNo, @AdrsTbl[0], SendLen, SendData,<br />

WM_NULL );<br />

文 字 列 "0123456789"のデータ 送 信 を 実 行 します。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

136


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

42. PciGpibExSlavRecvData<br />

【 機 能 】<br />

データを 受 信 します。<br />

関 数 を 実 行 する 場 合 には、コントローラよりリスナ 指 定 済 、ATN 信 号 がデアサート( 信 号 無 効 )<br />

状 態 となっている 必 要 があります。<br />

【 書 式 】<br />

●C 言 語<br />

int PciGpibExSlavRecvData (<br />

int BoardNo,<br />

DWORD* Length,<br />

void* Buffer,<br />

UINT Msg<br />

);<br />

●Visual Basic<br />

バイト 型 / 数 値 型 変 数 のデータ 受 信 の 場 合<br />

Declare Function PciGpibExSlavRecvData Lib "gpc<strong>4304</strong>.dll"( _<br />

ByVal BoardNo As Long, _<br />

ByRef Length As Long, _<br />

ByRef Buffer As Any, _<br />

ByVal Msg As Long _<br />

) As Long<br />

文 字 列 型 変 数 のデータ 受 信 の 場 合<br />

Declare Function PciGpibExSlavRecvData Lib "gpc<strong>4304</strong>.dll"( _<br />

ByVal BoardNo As Long, _<br />

ByRef Length As Long, _<br />

ByVal Buffer As String, _<br />

ByVal Msg As Long _<br />

) As Long<br />

非 同 期 データ 受 信 の 場 合<br />

Declare Function PciGpibExSlavRecvData Lib "gpc<strong>4304</strong>.dll"( _<br />

ByVal BoardNo As Long, _<br />

ByRef Length As Long, _<br />

ByVal Buffer As Any, _<br />

ByVal Msg As Long _<br />

) As Long<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

137


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

●Delphi<br />

function PciGpibExSlavRecvData (<br />

BoardNo : Integer;<br />

var Length : Cardinal;<br />

Buffer : Pointer;<br />

Msg : Cardinal<br />

) : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>.DLL';<br />

【パラメータ】<br />

BoardNo<br />

ボードアクセス 番 号 (0~15)を 指 定 します。<br />

Length<br />

受 信 バッファのバイトサイズが 格 納 されている 変 数 へのポインタ( 参 照 渡 し)を 指 定 しま<br />

す。<br />

本 関 数 呼 び 出 し 後 、 実 際 に 受 信 したバイトサイズが 格 納 されます。( 同 期 入 出 力 時 )<br />

受 信 バッファの 領 域 は、 必 ず「 受 信 データ 長 」+「デリミタ」 分 の 領 域 を 確 保 するように<br />

してください。<br />

Buffer<br />

受 信 バッファ 領 域 へのポインタ( 参 照 渡 し)を 指 定 します。<br />

※ Visual Basic の 場 合 には、API の Declare Function の 宣 言 がバイト 型 / 数 値 型 と 文 字 列 型<br />

とでは 異 なります。<br />

※ Visual Basic では、 文 字 列 変 数 として 固 定 長 文 字 列 を 指 定 してください。<br />

例 : Dim RecvBuffer As String * 32 など<br />

※ Visual Basic で 非 同 期 送 信 を 行 う 場 合 は、GlobalAlloc 関 数 などを 用 いて 割 り 当 てたメモ<br />

リ 領 域 を 指 定 してください。 詳 しくはサンプルプログラムをご 参 照 ください。<br />

Msg<br />

非 同 期 送 信 完 了 時 にアプリケーションに 通 知 されるメッセージを 指 定 します。<br />

同 期 動 作 時 には WM_NULL もしくは 0 を 指 定 してください<br />

【 戻 り 値 】<br />

正 常 終 了 しますと、 以 下 の 値 を 返 します。<br />

戻 り 値<br />

意 味<br />

2 EOI を 検 出 して 受 信 が 完 了 しました。<br />

1 指 定 された 受 信 データ 数 に 達 して 受 信 が 完 了 しました。<br />

0 デリミタを 検 出 して 受 信 が 完 了 しました。<br />

上 記 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

【 備 考 】<br />

・ 本 関 数 はコントローラ・イン・チャージ/ 非 コントローラ・イン・チャージの 両 方 で 使 用 で<br />

きます。<br />

・ 同 期 入 出 力 時 には、タイムアウト 発 生 もしくは 何 らかの 要 因 により 処 理 が 終 了 した 場 合 に<br />

おいて、 本 関 数 の 処 理 を 終 了 します。<br />

・ 非 同 期 入 出 力 時 には、 本 関 数 はデータ 受 信 開 始 のみ 行 い、データ 受 信 完 了 を 待 たずに 本 関<br />

数 の 処 理 を 終 了 します。データ 受 信 完 了 の 確 認 は、PciGpibExGetStatus 関 数 において 入 出 力<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

138


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

完 了 を 監 視 、または、アプリケーションに 通 知 されるメッセージにより 行 います。<br />

その 時 点 で、 本 関 数 を 再 度 呼 び 出 すことにより、 受 信 ステータスおよび 受 信 データ 長 の 取 得<br />

を 行 います。<br />

・ 非 同 期 入 出 力 時 のタイムアウト 検 出 について<br />

非 同 期 入 出 力 時 は、タイムアウトの 検 出 が 行 えません。 機 器 からの 応 答 がない 場 合 の 転 送 中<br />

断 処 理 はアプリケーションプログラム 側 にて PciGpibExClrStatus 関 数 を 入 出 力 完 了 検 出 ク<br />

リアを 指 定 して 呼 び 出 すことにより、 非 同 期 入 出 力 の 中 断 処 理 が 行 われます。<br />

・ 受 信 完 了 メッセージはデリミタ 受 信 後 にポストされます。<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret;<br />

int BoardNo;<br />

DWORD RecvLen;<br />

char RecvBuf[64];<br />

BoardNo = 0;<br />

RecvLen = 64;<br />

// 受 信 バッファの Max サイズを 指 定 する<br />

Ret = PciGpibExSlavRecvData( BoardNo, &RecvLen, RecvBuf, WM_NULL );<br />

RecvBuf[RecvLen] = '¥0'; // 受 信 完 了 時 には、RecvLen 変 数 には 実 際 に 受 信 したデータの<br />

// データ 長 が 格 納 される<br />

printf(" 受 信 データ %s, 受 信 データ 長 %d¥n", RecvBuf, RecvLen);<br />

●Visual Basic<br />

Public RecvBuf As String * 64 ' 受 信 バッファ 領 域 は、 標 準 モジュール 内 ( .BAS ファイル)<br />

' で Public 宣 言 する<br />

Dim Ret As Long<br />

Dim BoardNo As Long<br />

Dim RecvLen As Long<br />

BoardNo = 0<br />

RecvLen = 64<br />

' 受 信 バッファの Max サイズを 指 定 する<br />

Ret = PciGpibExSlavRecvData( BoardNo, RecvLen, RecvBuf, 0 )<br />

' 受 信 完 了 時 には、RecvLen 変 数 には 実 際 に 受 信 したデータのデータ 長 が 格 納 される<br />

MsgBox Left(RecvBuf, RecvLen) ' 受 信 データを 表 示<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

139


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

●Delphi<br />

var<br />

Ret : Integer;<br />

BoardNo : Integer,<br />

RecvLen : Cardinal;<br />

RecvBuf : Array[0..64] of Char;<br />

BoardNo := 0;<br />

AdrsTbl[0] := 2;<br />

AdrsTbl[1] := -1;<br />

RecvLen := 64;<br />

Ret := PciGpibExSlavRecvData( BoardNo, RecvLen, @RecvBuf[0], WM_NULL );<br />

データ 受 信 の 実 行 を 行 います。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

140


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

43. PciGpibExSlavSendFile<br />

【 機 能 】<br />

ファイルからデータを 読 み 込 み、GP-IB バス 上 に 送 信 します。<br />

【 書 式 】<br />

●C 言 語<br />

int PciGpibExSlavSendFile (<br />

int BoardNo,<br />

char* FileName<br />

);<br />

●Visual Basic<br />

Declare Function PciGpibExSlavSendFile Lib "gpc<strong>4304</strong>.dll"( _<br />

ByVal BoardNo As Long, _<br />

ByVal FileName As String _<br />

) As Long<br />

●Delphi<br />

function PciGpibExSlavSendFile (<br />

BoardNo : Integer;<br />

FileName : String<br />

) : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>.DLL';<br />

【パラメータ】<br />

BoardNo<br />

ボードアクセス 番 号 (0~15)を 指 定 します。<br />

FileName<br />

送 信 データが 格 納 されたファイル 名 を 指 定 します。<br />

ファイル 名 の 指 定 はフルパスで 記 述 する 必 要 があります。<br />

パスの 記 述 がない 場 合 には、カレントフォルダのファイル 指 定 となります。<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、0 が 返 されます。<br />

0 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

141


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

【 備 考 】<br />

・ 本 関 数 はコントローラ・イン・チャージ/ 非 コントローラ・イン・チャージの 両 方 で 使 用 で<br />

きます。<br />

・ ファイルの 内 容 は 加 工 されずにそのままの 形 でバスに 送 出 されます。<br />

・ ファイルの 最 後 には、 送 信 デリミタが 付 加 されます。そのため、CRLF 等 のデリミタを 指 定<br />

していた 場 合 、ファイルの 最 後 に CRLF が 付 加 されてしまいます。 従 ってファイル 転 送 等 に 使<br />

用 する 場 合 においては、 送 信 デリミタには 必 ず EOI のみを 指 定 してください。<br />

・ ファイルはバイナリデータとしてオープンされ 読 み 込 まれます。また、オープンされたフ<br />

ァイルは 読 み 込 み 終 了 後 、ただちにクローズされます。<br />

・ 本 関 数 では 非 同 期 入 出 力 設 定 がされていても、 非 同 期 処 理 は 行 われず、 同 期 して 処 理 され<br />

ます。<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret;<br />

Ret = PciGpibExSlavSendFile( 0, "test.dat" );<br />

●Visual Basic<br />

Dim Ret As Long<br />

Ret = PciGpibExSlavSendFile( 0, "test.dat" )<br />

●Delphi<br />

var<br />

Ret : Integer;<br />

Ret := PciGpibExSlavSendFile( 0, 'test.dat' );<br />

ファイル 名 "test.dat"のファイルを 読 み 込 み、GP-IB バス 上 に 送 出 します。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

142


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

44. PciGpibExSlavRecvFile<br />

【 機 能 】<br />

GP-IB バスから 受 信 したデータをファイルに 書 き 込 みます。<br />

【 書 式 】<br />

●C 言 語<br />

int PciGpibExSlavRecvFile (<br />

int BoardNo,<br />

DWORD* Length,<br />

char* FileName<br />

);<br />

●Visual Basic<br />

Declare Function PciGpibExSlavRecvFile Lib "gpc<strong>4304</strong>.dll"( _<br />

ByVal BoardNo As Long, _<br />

ByRef Length As Long, _<br />

ByVal FileName As String _<br />

) As Long<br />

●Delphi<br />

function PciGpibExSlavRecvFile (<br />

BoardNo : Integer;<br />

var Length : Cardinal;<br />

FileName : String<br />

) : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>.DLL';<br />

【パラメータ】<br />

BoardNo<br />

ボードアクセス 番 号 (0~15)を 指 定 します。<br />

Length<br />

受 信 バッファのバイトサイズが 格 納 されている 変 数 へのポインタ( 参 照 渡 し)を 指 定 しま<br />

す。 本 関 数 呼 び 出 し 後 、 実 際 に 受 信 したバイトサイズが 格 納 されます。<br />

FileName<br />

受 信 データを 格 納 するファイル 名 を 指 定 します。<br />

ファイル 名 の 指 定 はフルパスで 記 述 する 必 要 があります。<br />

パスの 記 述 がない 場 合 には、カレントフォルダのファイル 指 定 となります。<br />

【 戻 り 値 】<br />

正 常 終 了 しますと、 以 下 の 値 を 返 します。<br />

戻 り 値<br />

意 味<br />

2 EOI を 検 出 して 受 信 が 完 了 しました。<br />

1 指 定 された 受 信 データ 数 に 達 して 受 信 が 完 了 しました。<br />

0 デリミタを 検 出 して 受 信 が 完 了 しました。<br />

上 記 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

143


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

【 備 考 】<br />

・ 本 関 数 はコントローラ・イン・チャージ/ 非 コントローラ・イン・チャージの 両 方 で 使 用 で<br />

きます。<br />

・ バスから 読 み 込 まれたデータに 受 信 デリミタが 含 まれていた 場 合 、その 時 点 で 受 信 処 理 を<br />

終 了 します。 従 ってファイル 転 送 等 に 使 用 する 場 合 において、ファイル 中 に CRLF 等 のコード<br />

が 含 まれている 場 合 には、 受 信 デリミタには 必 ず EOI のみを 指 定 してください。<br />

・ ファイルはバスから 読 み 込 まれたデータがそのままの 形 式 で 書 き 込 まれます。<br />

・ オープンされたファイルは 書 き 込 み 終 了 後 、ただちにクローズされます。 既 にファイルが<br />

存 在 していた 場 合 は、 上 書 きされます。<br />

・ 本 関 数 では 非 同 期 入 出 力 設 定 がされていても、 非 同 期 処 理 は 行 われず、 同 期 して 処 理 され<br />

ます。<br />

・ 受 信 バッファサイズ(Length)の 指 定 はデリミタサイズも 含 めて 充 分 余 裕 を 持 って 指 定 して<br />

ください。<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret;<br />

DWORD Length;<br />

Length = 64;<br />

Ret = PciGpibExSlavRecvFile( 0, &Length, "test.dat" );<br />

●Visual Basic<br />

Dim Ret As Long<br />

Dim Length As Long<br />

Length = 64<br />

Ret = PciGpibExSlavRecvFile( 0, Length, "test.dat" );<br />

●Delphi<br />

var<br />

Ret : Integer;<br />

Length : Cardinal;<br />

Length := 64;<br />

Ret := PciGpibExSlavRecvFile( 0, Length, 'test.dat' );<br />

データ 受 信 を 実 行 し、ファイル"test.dat"に 受 信 したデータを 書 き 込 みます。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

144


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

45. PciGpibExSlavCheckStb<br />

【 機 能 】<br />

ステータス・バイトがコントローラへ 通 知 済 であるかどうか 確 認 します。<br />

【 書 式 】<br />

●C 言 語<br />

int PciGpibExSlavCheckStb (<br />

int BoardNo<br />

);<br />

●Visual Basic<br />

Declare Function PciGpibExSlavCheckStb Lib "gpc<strong>4304</strong>.dll"( _<br />

ByVal BoardNo As Long _<br />

) As Long<br />

●Delphi<br />

function PciGpibExSlavCheckStb (<br />

BoardNo : Integer<br />

) : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>.DLL';<br />

【パラメータ】<br />

BoardNo<br />

ボードアクセス 番 号 (0~15)を 指 定 します。<br />

【 戻 り 値 】<br />

正 常 終 了 しますと、 以 下 の 値 を 返 します。<br />

戻 り 値<br />

意 味<br />

7 ステータス・バイトはコントローラへ 通 知 済 です。<br />

6 まだ、シリアル・ポールは 行 われていません。<br />

上 記 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

【 備 考 】<br />

・ 本 関 数 はコントローラ・イン・チャージ/ 非 コントローラ・イン・チャージの 両 方 にて 使 用<br />

可 能 です。<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret;<br />

Ret = PciGpibExSlavCheckStb( 0 );<br />

●Visual Basic<br />

Dim Ret As Long<br />

Ret = PciGpibExSlavCheckStb( 0 )<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

145


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

●Delphi<br />

var<br />

Ret : Integer;<br />

Ret := PciGpibExSlavCheckStb( 0 );<br />

ステータス・バイトがコントローラへ 通 知 済 であるか 否 かを 確 認 します。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

146


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

46. PciGpibExSlavSetSrq<br />

【 機 能 】<br />

ステータス・バイトを 設 定 し、SRQ 信 号 を 送 出 します。<br />

【 書 式 】<br />

●C 言 語<br />

int PciGpibExSlavSetSrq (<br />

int BoardNo,<br />

int Stb<br />

);<br />

●Visual Basic<br />

Declare Function PciGpibExSlavSetSrq Lib "gpc<strong>4304</strong>.dll"( _<br />

ByVal BoardNo As Long, _<br />

ByVal Stb As Long _<br />

) As Long<br />

●Delphi<br />

function PciGpibExSlavSetSrq (<br />

BoardNo : Integer;<br />

Stb : Integer<br />

) : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>.DLL';<br />

【パラメータ】<br />

BoardNo<br />

ボードアクセス 番 号 (0~15)を 指 定 します。<br />

Stb<br />

ステータスバイトを 指 定 します。<br />

設 定 できるステータス・バイト 情 報 は、ビット 6 を 除 く 7 ビットの 情 報 です。<br />

ビット 6 には 0 を 指 定 してください。<br />

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0<br />

STB7 0 STB5 STB4 STB3 STB2 STB1 STB0<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、0 が 返 されます。<br />

0 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

【 備 考 】<br />

・ 本 関 数 はコントローラ・イン・チャージ/ 非 コントローラ・イン・チャージの 両 方 にて 使 用<br />

可 能 です。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

147


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret;<br />

Ret = PciGpibExSlavSetSrq( 0, 0x01 );<br />

●Visual Basic<br />

Dim Ret As Long<br />

Ret = PciGpibExSlavSetSrq( 0, &h01 )<br />

●Delphi<br />

var<br />

Ret : Integer;<br />

Ret := PciGpibExSlavSetSrq( 0, $01 );<br />

ステータス・バイト 値 1 を 設 定 し、SRQ 信 号 を 送 出 します。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

148


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

47. PciGpibExSlavSetIst<br />

【 機 能 】<br />

パラレルポールにおけるステータスビット(ist ビット)のセット/クリアを 行 います。<br />

【 書 式 】<br />

●C 言 語<br />

int PciGpibExSlavSetIst (<br />

int BoardNo,<br />

int Mode<br />

);<br />

●Visual Basic<br />

Declare Function PciGpibExSlavSetIst Lib "gpc<strong>4304</strong>.dll"( _<br />

ByVal BoardNo As Long, _<br />

ByVal Mode As Long _<br />

) As Long<br />

●Delphi<br />

function PciGpibExSlavSetIst (<br />

BoardNo : Integer;<br />

Mode : Integer<br />

) : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>.DLL';<br />

【パラメータ】<br />

BoardNo<br />

ボードアクセス 番 号 (0~15)を 指 定 します。<br />

Mode<br />

パラレルポールステータス 設 定 を 指 定 します。<br />

設 定 できるステータス・バイト 情 報 は、ビット 6 を 除 く 7 ビットの 情 報 です。<br />

パラメータ<br />

説 明<br />

0 以 外 ist(Individual Status)ビットをセット(1)します。<br />

0 ist(Individual Status)ビットをクリア(0)します。<br />

・パラレルポール 応 答 の 極 性 、アサインはコントローラ(マスタ)からのリモートコンフィ<br />

グレーション(PciGpibExCfgPpoll 関 数 )により 決 まります。<br />

・パラレルポール 実 行 時 (PciGpibExExecPpoll 関 数 )、ist ビットの 設 定 とリモートコンフ<br />

ィグレーションでの 極 性 が 一 致 したとき、 割 り 当 てた DIO ラインをアサートします。<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、0 が 返 されます。<br />

0 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

149


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

【 備 考 】<br />

・ 本 関 数 はコントローラ・イン・チャージ/ 非 コントローラ・イン・チャージの 両 方 にて 使 用 可<br />

能 です。<br />

・リモート・コンフィギュレーションにおけるパラレルポール ステータスビット(ist ビット)<br />

を 設 定 します。<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret;<br />

Ret = PciGpibExSlavSetIst( 0, 1 );<br />

●Visual Basic<br />

Dim Ret As Long<br />

Ret = PciGpibExSlavSetIst( 0, 1 )<br />

●Delphi<br />

var<br />

Ret : Integer;<br />

Ret := PciGpibExSlavSetIst( 0, 1 );<br />

ist ビットをセット(1)します。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

150


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

48. PciGpibExSlavSetPp2<br />

【 機 能 】<br />

ローカルコンフィグレーション(pp2)における、パラレルポール 応 答 モードを 設 定 します。<br />

【 書 式 】<br />

●C 言 語<br />

int PciGpibExSlavSetPp2 (<br />

int BoardNo,<br />

int Mode<br />

);<br />

●Visual Basic<br />

Declare Function PciGpibExSlavSetPp2 Lib "gpc<strong>4304</strong>.dll"( _<br />

ByVal BoardNo As Long, _<br />

ByVal Mode As Long _<br />

) As Long<br />

●Delphi<br />

function PciGpibExSlavSetPp2 (<br />

BoardNo : Integer;<br />

Mode : Integer<br />

) : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>.DLL';<br />

【パラメータ】<br />

BoardNo<br />

ボードアクセス 番 号 (0~15)を 指 定 します。<br />

Mode<br />

パラレルポール 応 答 モードを 指 定 します。<br />

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0<br />

0 0 0 0 S p3 p2 p1<br />

【 戻 り 値 】<br />

p3 p2 p1 DIO ライン 1~8 の 指 定<br />

0 0 0 DIO1 で 応 答<br />

0 0 1 DIO2 で 応 答<br />

0 1 0 DIO3 で 応 答<br />

0 1 1 DIO4 で 応 答<br />

1 0 0 DIO5 で 応 答<br />

1 0 1 DIO6 で 応 答<br />

1 1 0 DIO7 で 応 答<br />

1 1 1 DIO8 で 応 答<br />

S<br />

極 性 の 指 定<br />

0 機 器 の ist ビットがクリア(0)のとき、 割 り 当 てた 応 答 DIO ラインをアサートします。<br />

1 機 器 の ist ビットがセット(1)のとき、 割 り 当 てた 応 答 DIO ラインをアサートします。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

151


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

正 常 終 了 した 場 合 は、0 が 返 されます。<br />

0 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

【 備 考 】<br />

・ 本 関 数 はコントローラ・イン・チャージ/ 非 コントローラ・イン・チャージの 両 方 にて 使 用<br />

可 能 です。<br />

・ ローカル・コンフィギュレーション 時 のパラレルポール 応 答 モードを 設 定 します。<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret;<br />

Ret = PciGpibExSlavSetPp2( 0, 0x09 );<br />

●Visual Basic<br />

Dim Ret As Long<br />

Ret = PciGpibExSlavSetPp2( 0, &H9 )<br />

●Delphi<br />

var<br />

Ret : Integer;<br />

Ret := PciGpibExSlavSetPp2( 0, $09 );<br />

パラレルポーリング 実 行 時 に、ist ビットが 1 ならば DIO ライン 2 をアサートする 設 定 を 行 い<br />

ます。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

152


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

49. PciGpibExWaitTimer<br />

【 機 能 】<br />

指 定 した 時 間 待 ちます。<br />

【 書 式 】<br />

●C 言 語<br />

int PciGpibExWaitTimer (<br />

DWORD Timeout<br />

);<br />

●Visual Basic<br />

Declare Function PciGpibExWaitTimer Lib "gpc<strong>4304</strong>.dll" ( _<br />

ByVal Timeout As Long _<br />

) As Long<br />

●Delphi<br />

function PciGpibExWaitTimer (<br />

Timeout : Cardinal<br />

) : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>.DLL';<br />

【パラメータ】<br />

Timeout<br />

待 ち 時 間 を 100 ミリ 秒 単 位 で 指 定 します。<br />

( 設 定 範 囲 :0~FFFFFFFFh)<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、0 が 返 されます。<br />

0 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

【 備 考 】<br />

・ 本 関 数 を 呼 び 出 し 後 、 指 定 時 間 を 経 過 するまでアプリケーションプログラムには 制 御 が 戻<br />

りません。<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret;<br />

Ret = PciGpibExWaitTimer( 10 );<br />

●Visual Basic<br />

Dim Ret As Long<br />

Ret = PciGpibExWaitTimer( 10 )<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

153


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

●Delphi<br />

var<br />

Ret : Integer;<br />

Ret := PciGpibExWaitTimer( 10 );<br />

1 秒 間 待 ちます。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

154


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

50. PciGpibExStartTimer<br />

【 機 能 】<br />

汎 用 タイマのスタートを 行 います。<br />

【 書 式 】<br />

●C 言 語<br />

int PciGpibExStartTimer (void);<br />

●Visual Basic<br />

Declare Function PciGpibExStartTimer Lib "gpc<strong>4304</strong>.dll"( ) As Long<br />

●Delphi<br />

function PciGpibExStartTimer : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>.DLL';<br />

【パラメータ】<br />

なし<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、0 が 返 されます。<br />

0 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

【 備 考 】<br />

・ 周 期 は 100ms、32bit カウンタです。<br />

・ 本 関 数 はマルチメディアタイマを 使 用 しているので、OS の 負 荷 により 数 ms~ 数 10ms の 誤<br />

差 が 出 る 場 合 があります。<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret;<br />

Ret = PciGpibExStartTimer( );<br />

●Visual Basic<br />

Dim Ret As Long<br />

Ret = PciGpibExStartTimer( )<br />

●Delphi<br />

var<br />

Ret : Integer;<br />

Ret := PciGpibExStartTimer( );<br />

汎 用 タイマのスタートを 行 います。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

155


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

51. PciGpibExClearTimer<br />

【 機 能 】<br />

汎 用 タイマの 現 在 値 をクリアして、 再 スタートを 行 います。<br />

【 書 式 】<br />

●C 言 語<br />

int PciGpibExClearTimer (void);<br />

●Visual Basic<br />

Declare Function PciGpibExClearTimer Lib "gpc<strong>4304</strong>.dll"( ) As Long<br />

●Delphi<br />

function PciGpibExClearTimer : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>.DLL';<br />

【パラメータ】<br />

なし<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、0 が 返 されます。<br />

0 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret;<br />

Ret = PciGpibExClearTimer( );<br />

●Visual Basic<br />

Dim Ret As Long<br />

Ret = PciGpibExClearTimer( )<br />

●Delphi<br />

var<br />

Ret : Integer;<br />

Ret := PciGpibExClearTimer( );<br />

汎 用 タイマの 再 スタートを 行 います。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

156


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

52. PciGpibExReadTimer<br />

【 機 能 】<br />

汎 用 タイマの 現 在 値 を 取 得 します。<br />

【 書 式 】<br />

●C 言 語<br />

int PciGpibExReadTimer (<br />

DWORD* TimerValue<br />

);<br />

●Visual Basic<br />

Declare Function PciGpibExReadTimer Lib "gpc<strong>4304</strong>.dll" ( _<br />

ByRef TimerValue As Long _<br />

) As Long<br />

●Delphi<br />

function PciGpibExReadTimer (<br />

var TimerValue : Cardinal _<br />

) : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>.DLL';<br />

【パラメータ】<br />

TimerValue<br />

現 在 のタイマ 値 を 格 納 する 変 数 のポインタ( 参 照 渡 し)を 指 定 します。<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、0 が 返 されます。<br />

0 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret;<br />

DWORD TimeVal;<br />

Ret = PciGpibExReadTimer( &TimeVal );<br />

●Visual Basic<br />

Dim Ret As Long<br />

Dim TimeVal As Long<br />

Ret = PciGpibExReadTimer( TimeVal )<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

157


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

●Delphi<br />

var<br />

Ret : Integer;<br />

TimeVal : Cardinal;<br />

Ret := PciGpibExReadTimer( TimeVal );<br />

汎 用 タイマの 読 み 出 しを 行 います。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

158


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

53. PciGpibExStopTimer<br />

【 機 能 】<br />

汎 用 タイマを 停 止 させます。<br />

【 書 式 】<br />

●C 言 語<br />

int PciGpibExStopTimer (void);<br />

●Visual Basic<br />

Declare Function PciGpibExStopTimer Lib "gpc<strong>4304</strong>.dll"( ) As Long<br />

●Delphi<br />

function PciGpibExStopTimer : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>.DLL';<br />

【パラメータ】<br />

なし<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、0 が 返 されます。<br />

0 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret;<br />

Ret = PciGpibExStopTimer( );<br />

●Visual Basic<br />

Dim Ret As Long<br />

Ret = PciGpibExStopTimer( )<br />

●Delphi<br />

var<br />

Ret : Integer;<br />

Ret := PciGpibExStopTimer( );<br />

汎 用 タイマを 停 止 させます。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

159


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

54. PciGpibExSetSrqEvent<br />

【 機 能 】<br />

SRQ コールバックイベントを 登 録 します。<br />

【 書 式 】<br />

●C 言 語 (x86)<br />

int PciGpibExSetSrqEvent (<br />

Int<br />

BoardNo,<br />

LPSRQCALLBACK SrqProc,<br />

DWORD<br />

dwUser<br />

);<br />

●C 言 語 (x64)<br />

int PciGpibExSetSrqEvent (<br />

int<br />

BoardNo,<br />

LPSRQCALLBACK SrqProc,<br />

PVOID<br />

dwUser<br />

);<br />

●Visual Basic<br />

Declare Function PciGpibExSetSrqEvent Lib "gpc<strong>4304</strong>.dll"( _<br />

ByVal BoardNo As Long, _<br />

ByVal SrqProc As Long, _<br />

ByVal dwUser As Long _<br />

) As Long<br />

●Delphi<br />

Function PciGpibExSetSrqEvent (<br />

BoardNo : Cardinal;<br />

SrqProc : FARPROC;<br />

DwUser : DWORD<br />

) : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>.DLL';<br />

【パラメータ】<br />

BoardNo<br />

ボードアクセス 番 号 (0~15)を 指 定 します。<br />

SrqProc<br />

コールバック 関 数 のポインタ( 参 照 渡 し)を 指 定 します。<br />

『4.3 コールバック 関 数 』をご 参 照 ください。<br />

dwUser<br />

コールバック 関 数 に 渡 す 任 意 のデータを 指 定 します。<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、0 が 返 されます。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

160


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

0 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

【 備 考 】<br />

コールバック 関 数 の 書 式 は 以 下 の 通 りです(C 言 語 (x86))。『4.3 コールバック 関 数 』もご 参 照<br />

ください。<br />

void CALLBACK EventProc (<br />

Int BoardNo,<br />

DWORD dwUser<br />

);<br />

【 使 用 例 】<br />

●C 言 語 (x86)<br />

void CALLBACK OnSrqProc(int BoardNo, DWORD dwUser){<br />

・<br />

・<br />

・<br />

}<br />

int Ret;<br />

Ret = PciGpibExSetSrqEvent( 0, (PLPSRQCALLBACK)OnSrqProc, 100 );<br />

●C 言 語 (x64)<br />

void CALLBACK OnSrqProc(int BoardNo, PVOID dwUser){<br />

・<br />

・<br />

・<br />

}<br />

int Ret;<br />

Ret = PciGpibExSetSrqEvent( 0, (PLPSRQCALLBACK)OnSrqProc, 100 );<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

161


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

●Visual Basic<br />

コールバックルーチンは PciGpibExSetSrqEvent 関 数 の 呼 び 出 しを 行 うプロジェクト 内 の 標 準<br />

モジュールの 中 に 記 述 しなければなりません。<br />

・ PciGpibExSetSrqEvent 関 数 の 引 数 パラメータでプロシージャのアドレスを 渡 す 為 に<br />

AddressOf 演 算 子 を 使 用 します。<br />

(PciGpibExSetSrqEvent 関 数 の 使 用 例 を 参 照 してください。)<br />

・ AddressOf 演 算 子 を 使 うと、プロシージャからの 戻 り 値 ではなく、プロシージャ 自 体 のア<br />

ドレスが、ダイナミック リンク ライブラリ (DLL)の PciGpibExSetSrqEvent 関 数 に 渡 されま<br />

す。<br />

Sub OnSrqProc(BoardNo As Long, dwUser As Long)<br />

' ・<br />

' ・ 割 り 込 みイベントに 対 応 する 処 理 を 記 述 します。<br />

' ・<br />

End Sub<br />

Dim Ret As Long<br />

Ret = PciGpibExSetSrqEvent( 0, AddressOf OnSrqProc, 100 )<br />

●Delphi<br />

procedure OnSrqProc(BoardNo : Integer, dwUser: DWORD); stdcall;<br />

var<br />

// 変 数 定 義<br />

begin<br />

end;<br />

// ・<br />

// ・ 割 り 込 みイベントに 対 応 する 処 理 を 記 述 します。<br />

// ・<br />

var<br />

Ret : Integer;<br />

Ret := PciGpibExSetSrqEvent( 0, OnSrqProc, 100 );<br />

ボード 番 号 0 の GP-IB <strong>インタフェース</strong>モジュールに 対 して SRQ コールバック 関 数 lpOnSrqProc<br />

を 登 録 します。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

162


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

55. PciGpibExWaitSrqEvent<br />

【 機 能 】<br />

SRQ コールバックイベントを 待 ちます。<br />

【 書 式 】<br />

●C 言 語<br />

int PciGpibExSetSrqEvent (<br />

int BoardNo,<br />

ULONG Timeout<br />

);<br />

●Visual Basic<br />

Declare Function PciGpibExSetSrqEvent Lib "gpc<strong>4304</strong>.dll"( _<br />

ByVal BoardNo As Long, _<br />

ByVal Timeout As Long _<br />

) As Long<br />

●Delphi<br />

function PciGpibExSetSrqEvent (<br />

BoardNo : Cardinal;<br />

Timeout : Cardinal<br />

) : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>.DLL';<br />

【パラメータ】<br />

BoardNo<br />

ボードアクセス 番 号 (0~15)を 指 定 します。<br />

Timeout<br />

タイムアウト 時 間 をミリ 秒 単 位 で 指 定 します。<br />

0 を 指 定 した 場 合 は、 状 態 を 調 べてからすぐに 制 御 を 戻 します<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、0 が 返 されます。<br />

0 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret, BoardNo;<br />

BoardNo = 0;<br />

Ret = PciGpibExWaitSrqEvent( BoardNo, 5000 );<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

163


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

●Visual Basic<br />

Dim Ret As Long<br />

Dim BoardNo As Long<br />

BoardNo = 0<br />

Ret = PciGpibExWaitSrqEvent( BoardNo, 5000 )<br />

●Delphi<br />

var<br />

Ret : Integer;<br />

BoardNo : Cardinal;<br />

BoardNo := 0;<br />

Ret := PciGpibExWaitSrqEvent( BoardNo, 5000 );<br />

SRQ コールバックイベント 待 ちをします。(タイムアウト 5 秒 )<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

164


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

56. PciGpibExKillSrqEvent<br />

【 機 能 】<br />

SRQ コールバックイベントの 登 録 を 解 除 します。<br />

【 書 式 】<br />

●C 言 語<br />

int PciGpibExKillSrqEvent (<br />

int BoardNo<br />

);<br />

●Visual Basic<br />

Declare Function PciGpibExKillSrqEvent Lib "gpc<strong>4304</strong>.dll"( _<br />

ByVal BoardNo As Long _<br />

) As Long<br />

●Delphi<br />

function PciGpibExKillSrqEvent (<br />

BoardNo : Cardinal<br />

) : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>.DLL';<br />

【パラメータ】<br />

BoardNo<br />

ボードアクセス 番 号 (0~15)を 指 定 します。<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、0 が 返 されます。<br />

0 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret, BoardNo;<br />

BoardNo = 0;<br />

Ret = PciGpibExKillSrqEvent( BoardNo );<br />

●Visual Basic<br />

Dim Ret As Long<br />

Dim BoardNo As Long<br />

BoardNo = 0<br />

Ret = PciGpibExKillSrqEvent( BoardNo )<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

165


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

●Delphi<br />

var<br />

Ret : Integer;<br />

BoardNo : Cardinal;<br />

BoardNo := 0;<br />

Ret := PciGpibExKillSrqEvent( BoardNo );<br />

SRQ コールバックイベント 登 録 を 解 除 します。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

166


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

4.2 標 準 版 DLL<br />

4.2.1 関 数 一 覧<br />

No 関 数 名 機 能<br />

1 GpibOpen <strong>インタフェース</strong>モジュールをオープンします。<br />

2 GpibSetIfc IFC 信 号 を 送 出 し、<strong>インタフェース</strong>モジュールをコントローラとします。<br />

3 GpibSetRen REN 信 号 を 有 効 にします。<br />

4 GpibSetConfig タイムアウト 時 間 、デリミタ 設 定 を 変 更 します。<br />

5 GpibExecDeviceTrigger デバイストリガを 実 行 します。<br />

6 GpibExecDeviceClear デバイスクリアを 実 行 します。<br />

7 GpibCheckSrq SRQ 信 号 を 受 信 しているかを 確 認 します。<br />

8 GpibExecSpoll シリアルポーリングを 実 行 します。<br />

9 GpibReceive 計 測 機 器 から 受 信 を 行 います。<br />

10 GpibSend 計 測 機 器 に 対 して 送 信 を 行 います。<br />

11 GpibClose <strong>インタフェース</strong>モジュールをクローズします。<br />

12 GpibSetSrqEvent SRQ コールバックイベントを 登 録 します。<br />

13 GpibWaitSrqEvent SRQ コールバックイベントを 待 ちます。<br />

14 GpibKillSrqEvent SRQ コールバックイベント 登 録 を 解 除 します。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

167


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

4.2.2 関 数 個 別 説 明<br />

1. GpibOpen<br />

【 機 能 】<br />

オープンを 行 い、 以 後 の<strong>インタフェース</strong>モジュールへのアクセスを 行 えるようにします。<br />

【 書 式 】<br />

●C 言 語<br />

int GpibOpen (<br />

ULONG BoardNo<br />

);<br />

●Visual Basic<br />

Declare Function GpibOpen Lib "gpc<strong>4304</strong>2.dll"( _<br />

ByVal BoardNo As Long _<br />

) As Long<br />

●Delphi<br />

function GpibOpen (<br />

BoardNo : Cardinal<br />

) : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>2.DLL';<br />

【パラメータ】<br />

BoardNo<br />

ボードアクセス 番 号 (0~15)を 指 定 します。<br />

<strong>インタフェース</strong>モジュール 上 のロータリスイッチの 値 がボードアクセス 番 号 となります。<br />

CardBus シリーズにつきましては、CardBus ID 設 定 ユーティリティで 設 定 した ID がボー<br />

ドアクセス 番 号 となります。<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、0 が 返 されます。<br />

0 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

【 備 考 】<br />

コントロールパネルで 次 のパラメータが 設 定 してある 場 合 には、エラーとなります。<br />

送 受 信 デリミタとして「デリミタなし」、「NULL」、「 任 意 の 1 文 字 」を 指 定 している。<br />

※デリミタは、「EOI のみ」,「CR」,「CR+EOI」,「LF」,「LF+EOI」,「CRLF」,「CRLF+EOI」<br />

の 7 種 のみ 使 用 可 能 です。<br />

動 作 モードで「 非 コントローラモード」を 指 定 している。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

168


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret;<br />

ULONG BoardNo;<br />

BoardNo = 0;<br />

Ret = GpibOpen( BoardNo );<br />

●Visual Basic<br />

Dim Ret As Integer<br />

Dim BoardNo As Long<br />

BoardNo = 0<br />

Ret = GpibOpen( BoardNo )<br />

●Delphi<br />

var<br />

Ret: Integer;<br />

BoardNo: Cardinal;<br />

BoardNo := 0;<br />

Ret := GpibOpen( BoardNo );<br />

<strong>インタフェース</strong>モジュールをオープンします。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

169


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

2. GpibSetIfc<br />

【 機 能 】<br />

IFC 信 号 を 送 出 して、<strong>インタフェース</strong>モジュールをコントローラとし、 以 後 の 計 測 機 器 への 制<br />

御 を 可 能 とします。<br />

【 書 式 】<br />

●C 言 語<br />

int GpibSetIfc (<br />

ULONG BoardNo<br />

);<br />

●Visual Basic<br />

Declare Function GpibSetIfc Lib "gpc<strong>4304</strong>2.dll"( _<br />

ByVal BoardNo As Long _<br />

) As Long<br />

●Delphi<br />

function GpibSetIfc (<br />

BoardNo : Cardinal<br />

) : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>2.DLL';<br />

【パラメータ】<br />

BoardNo<br />

ボードアクセス 番 号 (0~15)を 指 定 します。<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、0 が 返 されます。<br />

0 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret;<br />

ULONG BoardNo;<br />

BoardNo = 0;<br />

Ret = GpibSetIfc( BoardNo );<br />

●Visual Basic<br />

Dim Ret As Long<br />

Dim BoardNo As Long<br />

BoardNo = 0<br />

Ret = GpibSetIfc( BoardNo )<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

170


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

●Delphi<br />

var<br />

Ret : Integer;<br />

BoardNo : Cardinal;<br />

BoardNo := 0;<br />

Ret := GpibSetIfc( BoardNo );<br />

IFC 信 号 を 送 出 します。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

171


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

3. GpibSetRen<br />

【 機 能 】<br />

REN 信 号 を 有 効 にします。<br />

【 書 式 】<br />

●C 言 語<br />

int GpibSetRen (<br />

ULONG BoardNo<br />

);<br />

●Visual Basic<br />

Declare Function GpibSetRen Lib "gpc<strong>4304</strong>2.dll"( _<br />

ByVal BoardNo As Long _<br />

) As Long<br />

●Delphi<br />

function GpibSetRen (<br />

BoardNo : Cardinal<br />

) : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>2.DLL';<br />

【パラメータ】<br />

BoardNo<br />

ボードアクセス 番 号 (0~15)を 指 定 します。<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、0 が 返 されます。<br />

0 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret;<br />

ULONG BoardNo;<br />

BoardNo = 0;<br />

Ret = GpibSetRen( BoardNo );<br />

●Visual Basic<br />

Dim Ret As Long<br />

Dim BoardNo As Long<br />

BoardNo = 0<br />

Ret = GpibSetRen( BoardNo )<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

172


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

●Delphi<br />

var<br />

Ret : Integer;<br />

BoardNo : Cardinal;<br />

BoardNo := 0;<br />

Ret := GpibSetRen( BoardNo );<br />

REN 信 号 を 有 効 にします。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

173


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

4. GpibSetConfig<br />

【 機 能 】<br />

タイムアウト 時 間 、デリミタ 設 定 、GP-IB アドレス 設 定 、その 他 各 種 設 定 を 変 更 します。<br />

【 書 式 】<br />

●C 言 語<br />

int GpibSetConfig (<br />

ULONG BoardNo,<br />

PUCHAR Config<br />

);<br />

●Visual Basic<br />

Declare Function GpibSetConfig Lib "gpc<strong>4304</strong>2.dll"( _<br />

ByVal BoardNo As Long, _<br />

ByVal Config As String _<br />

) As Long<br />

●Delphi<br />

function GpibSetConfig (<br />

BoardNo : Cardinal;<br />

Config : String<br />

) : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>2.DLL';<br />

【パラメータ】<br />

BoardNo<br />

ボードアクセス 番 号 (0~15)を 指 定 します。<br />

Config<br />

設 定 に 関 する 各 種 情 報 を 含 んだ 文 字 列 を 指 定 してください。<br />

指 定 のなかった 項 目 に 対 しては、 初 期 値 が 設 定 されます。<br />

設 定 情 報 の 各 パラメータを 以 下 に 示 します。 各 パラメータは、スペースで 区 切 ってくださ<br />

い。 各 パラメータ 文 字 列 の 中 にはスペースを 入 れないようにしてください。<br />

文 字 列 の 最 後 に NULL 文 字 を 入 れてください。<br />

項 目 文 字 列 内 容<br />

送 受 信 タイムアウト "/TMO=" 送 受 信 時 に 使 用 するタイムアウト 時 間 ( 単 位 :100ms)<br />

を 1~65535 で 設 定 します。<br />

デフォルトは、コントロールパネルアプレットでの 設<br />

定 値 が 使 用 されます。<br />

STB 応 答 時 間 "/SRT=" シリアルポール 時 のステータスバイト 応 答 時 間 ( 単<br />

位 :100ms)を 1~65535 で 設 定 します。<br />

デフォルトは、コントロールパネルアプレットでの 設<br />

定 値 が 使 用 されます。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

174


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

項 目 文 字 列 内 容<br />

送 信 デリミタ<br />

"/SDELIM=" 送 信 時 に 使 用 するデリミタを 設 定 します。<br />

デフォルトは、コントロールパネルアプレットでの 設<br />

定 値 が 使 用 されます。<br />

"NO" デリミタ 無 し<br />

"EOI" EOI<br />

"CR" CR<br />

送 信 デリミタ<br />

"/SDELIM=" "CR+EOI" CR+EOI<br />

"LF" LF<br />

"LF+EOI" LF+EOI<br />

"CRLF" CRLF<br />

"CRLF+EOI<br />

"<br />

CRLF+EOI<br />

受 信 デリミタ<br />

"/RDELIM=" 受 信 時 に 使 用 するデリミタを 設 定 します。<br />

デフォルトは、コントロールパネルアプレットでの 設<br />

定 値 が 使 用 されます。<br />

"NO" デリミタ 無 し<br />

"EOI" EOI<br />

"CR" CR<br />

"CR+EOI" CR+EOI<br />

"LF" LF<br />

"LF+EOI" LF+EOI<br />

"CRLF" CRLF<br />

"CRLF+EOI CRLF+EOI<br />

"<br />

1 次 アドレス "/MA=" 1 次 アドレスを 設 定 します。 範 囲 0~30<br />

デフォルトは、コントロールパネルアプレットでの 設<br />

定 値 が 使 用 されます。<br />

2 次 アドレス "/SA=" 2 次 アドレスを 設 定 します。 範 囲 :96~126<br />

96~126 以 外 の 値 を 設 定 すると 2 次 アドレスは 無 効<br />

となります。<br />

デフォルトは、コントロールパネルアプレットでの 設<br />

NRFD 信 号 ラインアサ<br />

ート 待 ち[ 有 効 / 無 効 ]<br />

"/NRFDWAIT<br />

="<br />

定 値 が 使 用 されます。<br />

コントローラデータ 送 信 の 最 終 データ 送 信 後 に<br />

GP-IB バスの NRFD 信 号 ラインがアサートされるま<br />

で「 待 つ」か「 待 たない」かの 設 定 を 行 います。<br />

「 待 ち 時 間 」には「データ 転 送 タイムアウト」の 時 間<br />

が 適 用 されます。<br />

"ON" NRFD 信 号 ラインがアサートされる<br />

まで 待 ちます。<br />

"OFF" NRFD 信 号 ラインのアサート 待 ちは<br />

無 効 となります。(デフォルト)<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、0 が 返 されます。<br />

0 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

175


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret;<br />

ULONG BoardNo;<br />

CHAR Param[] = "/TMO=100 /SDELIM=EOI";<br />

BoardNo = 0;<br />

Ret = GpibSetConfig( BoardNo, &Param[0] );<br />

●Visual Basic<br />

Dim Ret As Long<br />

Dim BoardNo As Long<br />

Dim Param As String<br />

BoardNo = 0<br />

Param = "/TMO=100 /SDELIM=EOI"<br />

Ret = GpibSetConfig( BoardNo, Param )<br />

●Delphi<br />

var<br />

Ret : Integer;<br />

BoardNo : Cardinal;<br />

Param : String;<br />

BoardNo := 0;<br />

Param := '/TMO=100 /SDELIM=EOI';<br />

Ret := GpibSetConfig( BoardNo, Param );<br />

ボード 番 号 0 の GP-IB <strong>インタフェース</strong>モジュールの 各 種 パラメータ 情 報 を 変 更 します。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

176


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

5. GpibExecDeviceTrigger<br />

【 機 能 】<br />

デバイストリガを 実 行 します。<br />

【 書 式 】<br />

●C 言 語<br />

int GpibExecDeviceTrigger (<br />

ULONG BoardNo,<br />

PLONG AdrsTbl<br />

);<br />

●Visual Basic<br />

Declare Function GpibExecDeviceTrigger Lib "gpc<strong>4304</strong>2.dll"( _<br />

ByVal BoardNo As Long, _<br />

ByRef AdrsTbl As String _<br />

) As Long<br />

●Delphi<br />

function GpibExecDeviceTrigger (<br />

BoardNo : Cardinal;<br />

AdrsTbl : Pointer<br />

) : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>2.DLL';<br />

【パラメータ】<br />

BoardNo<br />

ボードアクセス 番 号 (0~15)を 指 定 します。<br />

AdrsTbl<br />

機 器 のアドレステーブルを 指 定 します。<br />

デバイストリガを 有 効 にする 機 器 のアドレステーブルへのポインタ( 参 照 渡 し)を 指 定 し<br />

ます。 機 器 アドレステーブルは 次 の 形 式 で 指 定 します。<br />

1 台 の 機 器 (アドレス 10)の 場 合 2 台 の 機 器 (アドレス 10, 11)の 場 合<br />

LONG 配 列<br />

LONG 配 列<br />

+0[10] +0[10]<br />

+1[-1]… 終 端 コード +1[11]<br />

+2[-1]… 終 端 コード<br />

※-1( 終 端 コード)は 必 ず 最 後 に 付 加 してください。<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、0 が 返 されます。<br />

0 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

177


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

【 備 考 】<br />

本 関 数 を 実 行 することにより、 計 測 機 器 に 対 してデバイストリガを 実 行 します。デバイストリ<br />

ガを 受 信 した 計 測 機 器 の 動 作 については、 計 測 機 器 のマニュアルをご 参 照 ください。<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret;<br />

ULONG BoardNo;<br />

LONG AdrTbl[] = { 10, -1 }; // 機 器 アドレステーブル<br />

BoardNo = 0;<br />

Ret = GpibExecDeviceTrigger( BoardNo, &AdrTbl[0] );<br />

●Visual Basic<br />

Dim Ret As Long<br />

Dim BoardNo As Long<br />

Dim AdrTbl(1) As Long<br />

BoardNo = 0<br />

AdrTbl(0) = 10<br />

AdrTbl(1) = -1<br />

Ret = GpibExecDeviceTrigger( BoardNo, AdrTbl(0) )<br />

●Delphi<br />

var<br />

Ret : Integer;<br />

BoardNo : Cardinal;<br />

AdrTbl : Array[0..1] of Integer;<br />

BoardNo := 0;<br />

AdrTbl[0] := 10;<br />

AdrTbl[1] := -1;<br />

Ret := GpibExecDeviceTrigger( BoardNo, AdrTbl[0] );<br />

ボード 番 号 0 の GP-IB <strong>インタフェース</strong>モジュールから GP-IB アドレス 10 の 機 器 に 対 して、デ<br />

バイストリガを 実 行 します。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

178


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

6. GpibExecDeviceClear<br />

【 機 能 】<br />

デバイスクリアを 実 行 します。<br />

【 書 式 】<br />

●C 言 語<br />

int GpibExecDeviceClear (<br />

ULONG BoardNo,<br />

PLONG AdrsTbl<br />

);<br />

●Visual Basic<br />

Declare Function GpibExecDeviceClear Lib "gpc<strong>4304</strong>2.dll"( _<br />

ByVal BoardNo As Long, _<br />

ByRef AdrsTbl As String _<br />

) As Long<br />

●Delphi<br />

function GpibExecDeviceClear (<br />

BoardNo : Cardinal;<br />

AdrsTbl : Pointer<br />

) : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>2.DLL';<br />

【パラメータ】<br />

BoardNo<br />

ボードアクセス 番 号 (0~15)を 指 定 します。<br />

AdrsTbl<br />

機 器 のアドレステーブルを 指 定 します。<br />

デバイスクリアを 有 効 にする 機 器 のアドレステーブルへのポインタ( 参 照 渡 し)を 指 定 し<br />

ます。 機 器 アドレステーブルは 次 の 形 式 で 指 定 します。<br />

1 台 の 機 器 (アドレス 10)の 場 合 2 台 の 機 器 (アドレス 10, 11)の 場 合<br />

LONG 配 列<br />

LONG 配 列<br />

+0[10] +0[10]<br />

+1[-1]… 終 端 コード +1[11]<br />

+2[-1]… 終 端 コード<br />

※-1( 終 端 コード)は 必 ず 最 後 に 付 加 してください。<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、0 が 返 されます。<br />

0 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

179


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

【 備 考 】<br />

本 関 数 を 実 行 することにより、 計 測 機 器 に 対 してデバイスクリアを 実 行 します。デバイスクリ<br />

アを 受 信 した 計 測 機 器 の 動 作 については、 計 測 機 器 のマニュアルをご 参 照 ください。<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret;<br />

ULONG BoardNo;<br />

LONG AdrTbl[] = { 10, -1 }; // 機 器 アドレステーブル<br />

BoardNo = 0;<br />

Ret = GpibExecDeviceClear( BoardNo, &AdrTbl[0] );<br />

●Visual Basic<br />

Dim Ret As Long<br />

Dim BoardNo As Long<br />

Dim AdrTbl(1) As Long<br />

BoardNo = 0<br />

AdrTbl(0) = 10<br />

AdrTbl(1) = -1<br />

Ret = GpibExecDeviceClear( BoardNo, AdrTbl(0) )<br />

●Delphi<br />

var<br />

Ret : Integer;<br />

BoardNo : Cardinal;<br />

AdrTbl : Array[0..1] of Integer;<br />

BoardNo := 0;<br />

AdrTbl[0] := 10;<br />

AdrTbl[1] := -1;<br />

Ret := GpibExecDeviceClear( BoardNo, AdrTbl[0] );<br />

ボード 番 号 0 の GP-IB <strong>インタフェース</strong>モジュールから GP-IB アドレス 10 の 機 器 に 対 して、デ<br />

バイスクリアを 実 行 します。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

180


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

7. GpibCheckSrq<br />

【 機 能 】<br />

機 器 から SRQ 信 号 を 受 け 付 けているかどうか 確 認 します。<br />

【 書 式 】<br />

●C 言 語<br />

int GpibCheckSrq (<br />

ULONG BoardNo<br />

);<br />

●Visual Basic<br />

Declare Function GpibCheckSrq Lib "gpc<strong>4304</strong>2.dll"( _<br />

ByVal BoardNo As Long _<br />

) As Long<br />

●Delphi<br />

function GpibCheckSrq (<br />

BoardNo : Cardinal<br />

) : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>2.DLL';<br />

【パラメータ】<br />

BoardNo<br />

ボードアクセス 番 号 (0~15)を 指 定 します。<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、 以 下 の 値 が 返 されます。<br />

戻 り 値<br />

意 味<br />

5 SRQ 信 号 を 受 け 付 けていません。<br />

4 SRQ 信 号 を 受 け 付 けています。<br />

上 記 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret;<br />

ULONG BoardNo;<br />

BoardNo = 0;<br />

Ret = GpibCheckSrq( BoardNo );<br />

●Visual Basic<br />

Dim Ret As Long<br />

Dim BoardNo As Long<br />

BoardNo = 0<br />

Ret = GpibCheckSrq( BoardNo )<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

181


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

●Delphi<br />

var<br />

Ret : Integer;<br />

BoardNo : Cardinal;<br />

BoardNo := 0;<br />

Ret := GpibCheckSrq( BoardNo );<br />

機 器 から SRQ 信 号 を 受 け 付 けているかどうか 確 認 します。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

182


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

8. GpibExecSpoll<br />

【 機 能 】<br />

シリアルポーリングを 実 行 します。<br />

【 書 式 】<br />

●C 言 語<br />

int GpibExecSpoll (<br />

ULONG BoardNo,<br />

PLONG AdrsTbl,<br />

PLONG StbTbl,<br />

PLONG StbAdrs<br />

);<br />

●Visual Basic<br />

Declare Function GpibExecSpoll Lib "gpc<strong>4304</strong>2.dll”( _<br />

ByVal BoardNo As Long, _<br />

ByRef AdrsTbl As Long, _<br />

ByRef StbTbl As Long, _<br />

ByRef StbAdrs As Long _<br />

) As Long<br />

●Delphi<br />

function GpibExecSpoll (<br />

BoardNo : Cardinal;<br />

AdrsTbl : Pointer;<br />

StbTbl : Pointer;<br />

StbAdrs : Pointer<br />

) : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>2.DLL';<br />

【パラメータ】<br />

BoardNo<br />

ボードアクセス 番 号 (0~15)を 指 定 します。<br />

AdrsTbl<br />

シリアル・ポールを 行 う 機 器 のアドレステーブルへのポインタ( 参 照 渡 し)を 指 定 します。<br />

機 器 アドレステーブルは 次 の 形 式 で 指 定 します。<br />

1 台 の 機 器 (アドレス 10)の 場 合 2 台 の 機 器 (アドレス 10, 11)の 場 合<br />

LONG 配 列<br />

LONG 配 列<br />

+0[10] +0[10]<br />

+1[-1]… 終 端 コード +1[11]<br />

+2[-1]… 終 端 コード<br />

※-1( 終 端 コード)は 必 ず 最 後 に 付 加 してください。<br />

StbTbl<br />

シリアル・ポーリングを 行 い 受 信 した 各 機 器 の 有 効 なステータス・バイトを 格 納 するテー<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

183


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

ブルへのポインタ( 参 照 渡 し)を 指 定 します。<br />

本 関 数 呼 び 出 し 後 、 終 端 に-1 が 付 加 されます。<br />

※AdrsTbl(シリアルポーリング 機 器 アドレステーブル)と 同 じサイズの 領 域 を 確 保 して 呼<br />

び 出 してください。<br />

StbAdrs<br />

SRQ を 送 出 し、 有 効 なステータス・バイトを 持 っていた 各 機 器 のアドレスを 格 納 するテー<br />

ブルへのポインタ( 参 照 渡 し)を 指 定 します。<br />

本 関 数 呼 び 出 し 後 、 終 端 に-1 が 付 加 されます。<br />

※AdrsTbl(シリアルポーリング 機 器 アドレステーブル)と 同 じサイズの 領 域 を 確 保 して<br />

呼 び 出 してください。<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、0 が 返 されます。<br />

0 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

【 備 考 】<br />

AdrsTbl(シリアルポーリング 機 器 アドレステーブル)、StbTbl( 受 信 STB 格 納 テーブル)、<br />

StbAdrs(STB 送 信 機 器 アドレステーブル)の 各 ポインタ( 参 照 渡 し)には 次 のような 手 順 でデー<br />

タを 格 納 、 取 得 します。<br />

1) 関 数 呼 び 出 し 前 、 呼 び 出 し 時<br />

シリアルポーリングを 行 う 機 器 のアドレスを AdrsTbl(シリアルポーリング 機 器 アドレステ<br />

ーブル)に 順 次 格 納 し、 終 端 -1 を 設 定 しておきます。<br />

StbTbl と StbAdrs は、 関 数 からのリターン 時 にそれぞれデータが 格 納 されて 戻 ってくるため、<br />

必 ず AdrsTbl と 同 じサイズの 領 域 を 確 保 して 関 数 に 指 定 します。そのとき、 確 保 領 域 には 何<br />

もデータを 入 れておく 必 要 はありません( 領 域 の 確 保 さえしておけば 問 題 はありません)。<br />

2) 関 数 の 動 作 、リターン 時<br />

AdrsTbl に 格 納 されている 機 器 に 対 して 順 次 シリアルポーリングを 行 っていきます。<br />

このとき、 機 器 からの 有 効 な STB(ステータスバイト)が 受 信 できた 場 合 には、その STB を<br />

StbTbl ポインタの 領 域 へ 格 納 します。また、そのときの 機 器 アドレスを StbAdrs ポインタに<br />

格 納 します(ポインタは 当 然 格 納 後 に 更 新 されます)。<br />

最 後 までシリアルポーリングを 行 った 時 点 で、StbTbl ポインタと StbAdrs ポインタの 指 す 領<br />

域 に 終 端 コード’-1’が 設 定 されます。<br />

GP-IB アドレス 10、11 の 機 器 に 対 してシリアルポーリングを 行 い、アドレス 11 の 機 器 が 有<br />

効 な STB を 送 信 した 場 合 には 以 下 のようなコードと 実 行 結 果 になります。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

184


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

3)<br />

ULONG BoardNo;<br />

LONG AdrsTbl[3], StbTbl[3], StbAdrsTbl[3];<br />

int Ret, i;<br />

BoardNo = 0;<br />

AdrsTbl[0] = 10; // 1 台 目<br />

AdrsTbl[1] = 11; // 2 台 目<br />

AdrsTbl[2] = -1; // 終 端 コード<br />

Ret = GpibExecSpoll(BoardNo, &AdrsTbl[0], &StbTbl[0], &StbAdrsTbl[0]);<br />

If (Ret == 0) { // 正 常 終 了<br />

for (i = 0; StbTbl[i] != -1; i++) {<br />

printf(“STB 送 出 機 器 アドレス : %d, 有 効 STB 値 : %x¥n”, StbTbl[i], StbAdrsTbl[i]);<br />

}<br />

} else { // 異 常 終 了<br />

…<br />

}<br />

< 実 行 結 果 ><br />

STB 送 出 機 器 アドレス : 11, 有 効 STB 値 : 41<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret;<br />

ULONG BoardNo;<br />

LONG AdrsTbl[3], StbTbl[3], StbAdrsTbl[3];<br />

BoardNo = 0;<br />

AdrsTbl[0] = 10; // 1 台 目<br />

AdrsTbl[1] = 11; // 2 台 目<br />

AdrsTbl[2] = -1; // 終 端 コード<br />

Ret = GpibExecSpoll( BoardNo, &AdrsTbl[0], &StbTbl[0], &StbAdrsTbl[0] );<br />

●Visual Basic<br />

Dim Ret As Long<br />

Dim BoardNo As Long<br />

Dim AdrTbl(2) As Long<br />

Dim StbTbl(2) As Long<br />

Dim StbAdr(2) As Long<br />

nBoardNo = 0<br />

AdrTbl(0) = 10<br />

AdrTbl(1) = 11<br />

AdrTbl(2) = -1<br />

Ret = GpibExecSpoll( BoardNo, AdrTbl(0), StbTbl(0), StbAdr(0) )<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

185


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

●Delphi<br />

var<br />

Ret : Integer;<br />

BoardNo : Cardinal;<br />

AdrTbl : Array[0..2] of Integer;<br />

StbTbl : Array[0..2] of Integer;<br />

StbAdr : Array[0..2] of Integer;<br />

BoardNo := 0;<br />

AdrTbl[0] := 10;<br />

AdrTbl[1] := 11;<br />

AdrTbl[2] := -1;<br />

Ret := GpibExecSpoll( BoardNo, @AdrTbl[0], @StbTbl[0], @StbAdr[0] );<br />

ボード 番 号 0 の GP-IB <strong>インタフェース</strong>モジュールから GP-IB アドレス 10、11 の 計 測 機 器 へ、<br />

シリアルポーリングを 実 行 します。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

186


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

9. GpibReceive<br />

【 機 能 】<br />

計 測 機 器 から 受 信 を 行 います。<br />

【 書 式 】<br />

●C 言 語<br />

int GpibReceive (<br />

ULONG BoardNo,<br />

PLONG AdrsTbl,<br />

PULONG Length,<br />

PVOID Buffer<br />

);<br />

●Visual Basic<br />

バイト 型 / 数 値 型 変 数 のデータ 受 信 の 場 合<br />

Declare Function GpibReceive Lib "gpc<strong>4304</strong>2.dll"( _<br />

ByVal BoardNo As Long, _<br />

ByRef AdrsTbl As Long, _<br />

ByRef Length As Long, _<br />

ByRef Buffer As Any _<br />

) As Long<br />

文 字 列 型 変 数 のデータ 受 信 の 場 合<br />

Declare Function GpibReceive Lib "gpc<strong>4304</strong>2.dll"( _<br />

ByVal BoardNo As Long, _<br />

ByRef AdrsTbl As Long, _<br />

ByRef Length As Long, _<br />

ByVal Buffer As String _<br />

) As Long<br />

●Delphi<br />

function GpibReceive (<br />

BoardNo : Cardinal;<br />

AdrsTbl : Pointer;<br />

var Length : Cardinal;<br />

Buffer : Pointer<br />

) : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>2.DLL';<br />

【パラメータ】<br />

BoardNo<br />

ボードアクセス 番 号 (0~15)を 指 定 します。<br />

AdrsTbl<br />

機 器 のアドレステーブルへのポインタ( 参 照 渡 し)を 指 定 します(『3.6 機 器 アドレステー<br />

ブルについて』 参 照 )。<br />

アドレステーブルへの 終 端 には 必 ず-1 を 設 定 します。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

187


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

Length<br />

受 信 バッファのバイトサイズが 格 納 されている 変 数 へのポインタ( 参 照 渡 し)を 指 定 しま<br />

す。 本 関 数 呼 び 出 し 後 、 実 際 に 受 信 したバイトサイズが 格 納 されます。<br />

受 信 バッファの 領 域 は、 必 ず「 受 信 データ 長 」+「デリミタ」 分 の 領 域 を 確 保 するように<br />

してください( 例 えば、 受 信 データ 長 が 16 バイト、デリミタが「CRLF+EOI」の 場 合 に<br />

は、16+2 の 18 バイト 以 上 の 領 域 を 確 保 する 必 要 となります)。<br />

Buffer<br />

受 信 バッファ 領 域 へのポインタ( 参 照 渡 し)を 指 定 します。<br />

※Visual Basic の 場 合 には、API の Declare Function の 宣 言 がバイト 型 / 数 値 型 と 文 字 列 型 と<br />

では 異 なります。<br />

※Visual Basic では、 文 字 列 変 数 として 固 定 長 文 字 列 を 指 定 してください。<br />

例 : Dim RecvBuffer As String * 32 など<br />

【 戻 り 値 】<br />

正 常 終 了 しますと、 以 下 の 値 を 返 します。<br />

戻 り 値<br />

意 味<br />

2 EOI を 検 出 して 受 信 が 完 了 しました。<br />

1 指 定 された 受 信 データ 数 に 達 して 受 信 が 完 了 しました。<br />

0 デリミタを 検 出 して 受 信 が 完 了 しました。<br />

上 記 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

【 備 考 】<br />

・ 機 器 からの 応 答 がタイムアウト 時 間 を 経 過 しても 無 い 場 合 には、タイムアウトエラーとし<br />

て 転 送 中 断 が 行 われます。<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret;<br />

ULONG BoardNo;<br />

LONG AdrsTbl[] = { 10, -1 }; // 機 器 アドレステーブル<br />

Static ULONG Length;<br />

Static BYTE RecvBuff[80];<br />

BoardNo = 0;<br />

Length = 80;<br />

Ret = GpibReceive( BoardNo, &AdrsTbl[0], &Length, &RecvBuff[0] );<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

188


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

●Visual Basic<br />

Dim Ret As Long<br />

Dim BoardNo As Long<br />

Dim AdrTbl(1) As Long<br />

Public Dim Length As Long<br />

Public Dim RecvBuff(80) As Byte<br />

BoardNo = 0<br />

Length = 80<br />

AdrTbl(0) = 10<br />

AdrTbl(1) = -1<br />

Ret = GpibReceive( BoardNo, AdrTbl(0), Length, RecvBuff(0) )<br />

●Delphi<br />

var<br />

Ret : Integer;<br />

BoardNo : Integer;<br />

AdrTbl : Array[0..1] of Integer;<br />

Length : Cardinal;<br />

RecvBuff : Array[0..79] of Char;<br />

BoardNo := 0;<br />

Length := 80;<br />

AdrTbl[0] := 10;<br />

AdrTbl[1] := -1;<br />

Ret := GpibReceive( BoardNo, @AdrTbl[0], Length, @RecvBuff[0] );<br />

ボード 番 号 0 の GP-IB <strong>インタフェース</strong>モジュールへ GP-IB アドレス 10 の 機 器 から 80 バイトの<br />

データを 読 み 込 みます。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

189


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

10.GpibSend<br />

【 機 能 】<br />

計 測 機 器 へ 送 信 を 行 います。<br />

【 書 式 】<br />

●C 言 語<br />

int GpibSend (<br />

ULONG BoardNo,<br />

PLONG AdrsTbl,<br />

ULONG Length,<br />

PVOID Buffer<br />

);<br />

●Visual Basic<br />

バイト 型 / 数 値 型 変 数 のデータ 送 信 の 場 合<br />

Declare Function GpibSend Lib “gpc<strong>4304</strong>2.dll"( _<br />

ByVal BoardNo As Long, _<br />

ByRef AdrsTbl As Long, _<br />

ByVal Length As Long, _<br />

ByRef Buffer As Any _<br />

) As Long<br />

文 字 列 型 変 数 のデータ 送 信 の 場 合<br />

Declare Function GpibSend Lib “gpc<strong>4304</strong>2.dll"( _<br />

ByVal BoardNo As Long, _<br />

ByRef AdrsTbl As Long, _<br />

ByVal Length As Long, _<br />

ByVal Buffer As String _<br />

) As Long<br />

●Delphi<br />

function GpibSend (<br />

BoardNo : Cardinal;<br />

AdrsTbl : Pointer;<br />

Length : Cardinal;<br />

Buffer : Pointer<br />

) : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>2.DLL';<br />

【パラメータ】<br />

BoardNo<br />

ボードアクセス 番 号 (0~15)を 指 定 します。<br />

AdrsTbl<br />

機 器 のアドレステーブルへのポインタ( 参 照 渡 し)を 指 定 します(『3.6 機 器 アドレステー<br />

ブルについて』 参 照 )。<br />

アドレステーブルへの 終 端 には 必 ず-1 を 設 定 します。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

190


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

Length<br />

送 信 データ 長 のバイトサイズを 指 定 します。<br />

この 送 信 データ 長 +デリミタ 分 のサイズが GP-IB バスへ 送 信 されます。<br />

デリミタは 自 動 で 付 加 されます。<br />

従 って、 送 信 データ 長 が 10 バイトで、デリミタが「CRLF+EOI」の 場 合 には、 計 12 バイ<br />

トのデータが 送 信 されます。<br />

Buffer<br />

送 信 バッファ 領 域 へのポインタ( 参 照 渡 し)を 指 定 します。<br />

※Visual Basic の 場 合 には、API の Declare Function の 宣 言 がバイト 型 / 数 値 型 と 文 字 列 型 と<br />

では 異 なります。<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、0 が 返 されます。<br />

0 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

【 備 考 】<br />

・ 機 器 からの 応 答 がタイムアウト 時 間 を 経 過 しても 無 い 場 合 には、タイムアウトエラーとし<br />

て 転 送 中 断 が 行 われます。<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret;<br />

ULONG BoardNo;<br />

LONG AdrsTbl[] = { 10, -1 }; // 機 器 アドレステーブル<br />

Static ULONG Length;<br />

Static PBYTE SendData = "TEST";<br />

BoardNo = 0;<br />

Length = 4;<br />

Ret = GpibSend( BoardNo, &AdrsTbl[0], Length, SendData );<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

191


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

●Visual Basic<br />

Dim Ret As Long<br />

Dim BoardNo As Long<br />

Dim AdrTbl(1) As Long<br />

Dim Length As Long<br />

Dim SendData As String<br />

BoardNo = 0<br />

lLength = 4<br />

AdrTbl(0) = 10<br />

AdrTbl(1) = -1<br />

SendData = "TEST"<br />

Ret = GpibSend( BoardNo, AdrTbl(0), Length, SendData(0) )<br />

●Delphi<br />

var<br />

Ret : Integer;<br />

BoardNo : Integer;<br />

AdrTbl : Array[0..1] of Integer;<br />

Length : Cardinal;<br />

SendData : Array[0..3] of Char;<br />

BoardNo := 0;<br />

lLength := 4;<br />

AdrTbl[0] := 10;<br />

AdrTbl[1] := -1;<br />

SendData[0] := 'T';<br />

SendData[1] := 'E';<br />

SendData[2] := 'S';<br />

SendData[3] := 'T';<br />

Ret := GpibSend( BoardNo, @AdrTbl[0], Length, @SendData[0] );<br />

ボード 番 号 0 の GP-IB <strong>インタフェース</strong>モジュールから GP-IB アドレス 10 の 機 器 へ 4 バイトの<br />

データ(TEST)を 送 信 します。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

192


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

11.GpibClose<br />

【 機 能 】<br />

<strong>インタフェース</strong>モジュールをクローズします。<br />

【 書 式 】<br />

●C 言 語<br />

int GpibClose (<br />

ULONG BoardNo<br />

);<br />

●Visual Basic<br />

Declare Function GpibClose Lib "gpc<strong>4304</strong>2.dll"( _<br />

ByVal BoardNo As Long _<br />

) As Long<br />

●Delphi<br />

function GpibClose (<br />

BoardNo : Cardinal<br />

) : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>2.DLL';<br />

【パラメータ】<br />

BoardNo<br />

ボードアクセス 番 号 (0~15)を 指 定 します。<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、0 が 返 されます。<br />

0 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

【 備 考 】<br />

・ 再 度 、<strong>インタフェース</strong>モジュールへのアクセスを 行 う 場 合 にはオープン 処 理 (GpibOpen 関<br />

数 )を 呼 び 出 してください。<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret;<br />

ULONG BoardNo;<br />

BoardNo = 0;<br />

Ret = GpibClose( BoardNo );<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

193


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

●Visual Basic<br />

Dim Ret As Long<br />

Dim BoardNo As Long<br />

BoardNo = 0<br />

Ret = GpibClose( BoardNo )<br />

●Delphi<br />

var<br />

Ret : Integer;<br />

BoardNo : Cardinal;<br />

BoardNo := 0;<br />

Ret := GpibClose( BoardNo );<br />

<strong>インタフェース</strong>モジュールをクローズします。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

194


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

12.GpibSetSrqEvent<br />

【 機 能 】<br />

SRQ コールバックイベントを 登 録 します。<br />

ただし、Visual Basic Ver4.0 では、コールバック 関 数 の 登 録 ができない 為 、イベント 機 能 を<br />

使 用 することはできません。<br />

【 書 式 】<br />

●C 言 語 (x86)<br />

int GpibSeqSrqEvent (<br />

ULONG<br />

BoardNo,<br />

LPSRQCALLBACK SrqProc,<br />

DWORD<br />

dwUser<br />

);<br />

●C 言 語 (x64)<br />

int GpibSeqSrqEvent (<br />

ULONG<br />

BoardNo,<br />

LPSRQCALLBACK SrqProc,<br />

PVOID<br />

dwUser<br />

);<br />

●Visual Basic<br />

Declare Function GpibSeqSrqEvent Lib "gpc<strong>4304</strong>2.dll"( _<br />

ByVal BoardNo As Long, _<br />

ByVal SrqProc As Long, _<br />

ByVal dwUser As Long _<br />

) As Long<br />

●Delphi<br />

function GpibSeqSrqEvent (<br />

BoardNo : Cardinal;<br />

SrqProc : FARPROC;<br />

dwUser : DWORD<br />

) : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>2.DLL';<br />

【パラメータ】<br />

BoardNo<br />

ボードアクセス 番 号 (0~15)を 指 定 します。<br />

SrqProc<br />

コールバック 関 数 のアドレスを 指 定 します。<br />

『4.3 コールバック 関 数 』をご 参 照 ください。<br />

dwUser<br />

コールバック 関 数 に 渡 す 任 意 のデータを 指 定 します。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

195


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、0 が 返 されます。<br />

0 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

【 備 考 】<br />

コールバック 関 数 の 書 式 は 以 下 の 通 りです(C 言 語 (x86))。『4.3 コールバック 関 数 』もご 参 照<br />

ください。<br />

●C 言 語 (x86)<br />

void CALLBACK EventProc (<br />

int BoardNo,<br />

DWORD dwUser<br />

);<br />

【 使 用 例 】<br />

●C 言 語 (x86)<br />

void CALLBACK OnSrqProc(int BoardNo,DWORD dwUser){<br />

… // イベントに 対 応 する 処 理 を 記 述 します<br />

}<br />

ULONG BoardNo;<br />

Ret = GpibSetSrqEvent( BoardNo, (PLPSRQCALLBACK)OnSrqProc, 0 );<br />

●C 言 語 (x64)<br />

void CALLBACK OnSrqProc(int BoardNo,PVOID dwUser){<br />

… // イベントに 対 応 する 処 理 を 記 述 します<br />

}<br />

ULONG BoardNo;<br />

Ret = GpibSetSrqEvent( BoardNo, (PLPSRQCALLBACK)OnSrqProc, 0 );<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

196


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

●Visual Basic<br />

コールバックルーチンは GpibSetSrqEvent 関 数 の 呼 び 出 しを 行 うプロジェクト 内 の 標 準 モジュ<br />

ールの 中 に 記 述 しなければなりません。<br />

GpibSetSrqEvent 関 数 の 引 数 パラメータでプロシージャのアドレスを 渡 す 為 に AddressOf 演 算<br />

子 を 使 用 します。(GpibSetSrqEvent 関 数 の 使 用 例 を 参 照 してください。)<br />

AddressOf 演 算 子 を 使 うと、プロシージャからの 戻 り 値 ではなく、プロシージャ 自 体 のアドレ<br />

スが、ダイナミック リンク ライブラリ (DLL)の GpibSetSrqEvent 関 数 に 渡 されます。<br />

Sub OnSrqProc(BoardNo As Long, dwUser As Long)<br />

… 'イベントに 対 応 する 処 理 を 記 述 します。<br />

End Sub<br />

Dim Ret As Long<br />

Dim BoardNo As Long<br />

Dim dwUser As Long<br />

Ret = GpibSetSrqEvent( BoardNo, AddressOf OnSrqProc, dwUser)<br />

●Delphi<br />

procedure OnSrqProc(BoardNo : DWORD, dwUser : DWORD); stdcall;<br />

var<br />

// 変 数 定 義<br />

begin<br />

end;<br />

… //イベントに 対 応 する 処 理 を 記 述 します。<br />

var<br />

Ret : Integer;<br />

BoardNo : Cardinal;<br />

dwUser : DWORD;<br />

Ret := GpibSetSrqEvent( BoardNo, OnSrqProc, dwUser );<br />

SRQ コールバック 関 数 を 登 録 します。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

197


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

13.GpibWaitSrqEvent<br />

【 機 能 】<br />

SRQ コールバックイベントを 待 ちます。<br />

【 書 式 】<br />

●C 言 語<br />

int GpibWaitSrqEvent (<br />

ULONG BoardNo,<br />

ULONG Timeout<br />

);<br />

●Visual Basic<br />

Declare Function GpibWaitSrqEvent Lib "gpc<strong>4304</strong>2.dll"( _<br />

ByVal BoardNo As Long, _<br />

ByVal Timeout As Long _<br />

) As Long<br />

●Delphi<br />

function GpibWaitSrqEvent (<br />

BoardNo : Cardinal;<br />

Timeout : Cardinal<br />

) : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>2.DLL';<br />

【パラメータ】<br />

BoardNo<br />

ボードアクセス 番 号 (0~15)を 指 定 します。<br />

Timeout<br />

タイムアウト 時 間 をミリ 秒 単 位 で 指 定 します。<br />

タイムアウト 時 間 が 経 過 すると、 関 数 はオブジェクトの 状 態 が 非 シグナル 状 態 である 場 合<br />

でも、 制 御 を 戻 します。0 を 指 定 した 場 合 は、 状 態 を 調 べてからすぐに 制 御 を 戻 します<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、0 が 返 されます。<br />

0 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret;<br />

ULONG BoardNo;<br />

BoardNo = 0;<br />

Ret = GpibWaitSrqEvent( BoardNo, 5000 );<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

198


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

●Visual Basic<br />

Dim Ret As Long<br />

Dim BoardNo As Long<br />

BoardNo = 0<br />

Ret = GpibWaitSrqEvent( BoardNo, 5000 )<br />

●Delphi<br />

var<br />

Ret : Integer;<br />

BoardNo : Cardinal;<br />

BoardNo := 0;<br />

Ret := GpibWaitSrqEvent( BoardNo, 5000 );<br />

SRQ コールバックイベント 待 ちをします。(タイムアウト 5 秒 )<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

199


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

14.GpibKillSrqEvent<br />

【 機 能 】<br />

SRQ コールバックイベントの 登 録 を 解 除 します。<br />

【 書 式 】<br />

●C 言 語<br />

int GpibKillSrqEvent (<br />

ULONG BoardNo<br />

);<br />

●Visual Basic<br />

Declare Function GpibKillSrqEvent Lib "gpc<strong>4304</strong>2.dll"( _<br />

ByVal BoardNo As Long _<br />

) As Long<br />

●Delphi<br />

function GpibKillSrqEvent (<br />

BoardNo : Cardinal<br />

) : Integer; stdcall; external '<strong>GPC</strong><strong>4304</strong>2.DLL';<br />

【パラメータ】<br />

BoardNo<br />

ボードアクセス 番 号 (0~15)を 指 定 します。<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、0 が 返 されます。<br />

0 以 外 の 値 が 返 された 場 合 については、『4.4 戻 り 値 一 覧 』をご 参 照 ください。<br />

【 使 用 例 】<br />

●C 言 語<br />

int Ret;<br />

ULONG BoardNo;<br />

BoardNo = 0;<br />

Ret = GpibKillSrqEvent( BoardNo );<br />

●Visual Basic<br />

Dim Ret As Long<br />

Dim BoardNo As Long<br />

BoardNo = 0<br />

Ret = GpibKillSrqEvent( BoardNo )<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

200


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

●Delphi<br />

var<br />

Ret : Integer;<br />

BoardNo : Cardinal;<br />

BoardNo := 0;<br />

Ret := GpibKillSrqEvent( BoardNo );<br />

SRQ コールバックイベント 登 録 を 解 除 します。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

201


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

4.3 コールバック 関 数<br />

※Visual Basicでコールバック 機 能 を 使 用 する 場 合 、 幾 つかの 制 約 事 項 が 発 生 します( 後 述 の『4.3.2<br />

Visual Basic 使 用 時 の 制 約 事 項 』をご 参 照 下 さい)。<br />

Visual Basic で 非 同 期 のイベント 処 理 を 行 うには、 弊 社 Web siteより 無 償 で 提 供 しております。<br />

BPA- 0515「GP-IB 用 ActiveXコントロール」 をご 使 用 になることを 推 奨 致 します。<br />

4.3.1 PciGpibExSetSrqEvent 関 数 、および GpibSetSrqEvent 関 数 により<br />

設 定 されるコールバック 関 数<br />

PciGpibExSetSrqEvent 関 数 、および GpibSetSrqEvent 関 数 にて 登 録 し、SRQ イベントが 発 生 し<br />

た 時 にコールされるコールバックルーチンです。<br />

【 記 述 】<br />

コールバックルーチンを 使 用 する 場 合 、 下 記 のように 記 述 します。<br />

( 下 記 はコールバックルーチンを OnSrqEvent とする 場 合 の 例 です。)<br />

●C 言 語 (x86)<br />

void CALLBACK OnSrqEvent(int BoardNo, DWORD dwUser)<br />

{<br />

// 割 り 込 みイベントに 対 応 する 処 理 を 記 述 します<br />

}<br />

コールバックルーチンの 関 数 型 LPSRQCALLBACK は 下 記 のように 定 義 されます。<br />

typedef void (CALLBACK LPSRQCALLBACK)(DWORD EventMask, DWORD dwUser);<br />

typedef SRQCALLBACK FAR *LPSRQCALLBACK;<br />

●C 言 語 (x64)<br />

void CALLBACK OnSrqEvent(int BoardNo, PVOID dwUser)<br />

{<br />

// 割 り 込 みイベントに 対 応 する 処 理 を 記 述 します<br />

}<br />

コールバックルーチンの 関 数 型 LPSRQCALLBACK は 下 記 のように 定 義 されます。<br />

typedef void (CALLBACK LPSRQCALLBACK)(DWORD EventMask, PVOID dwUser);<br />

typedef SRQCALLBACK FAR *LPSRQCALLBACK;<br />

●Visual Basic<br />

Function OnSrqEvent(ByVal BoardNo As Long, ByVal dwUser As Long)<br />

‘ 割 り 込 みイベントに 対 応 する 処 理 を 記 述 します<br />

End Sub<br />

コールバックルーチンは PciGpibExSetSrqEvent 関 数 、および GpibSetSrqEvent 関 数 の 呼 び<br />

出 しを 行 うプロジェクト 内 の 標 準 モジュールの 中 に 記 述 しなければなりません。<br />

PciGpibExSetSrqEvent 関 数 、および GpibSetSrqEvent 関 数 の 引 数 パラメータでプロシージ<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

202


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

ャのアドレスを 渡 す 為 に AddressOf 演 算 子 を 使 用 します。(PciGpibExSetSrqEvent 関 数 、お<br />

よび GpibSetSrqEvent 関 数 の 使 用 例 を 参 照 してください。)<br />

AddressOf 演 算 子 を 使 うと、プロシージャからの 戻 り 値 ではなく、プロシージャ 自 体 のアドレ<br />

スが、ダイナミック リンク ライブラリ (DLL)の PciGpibExSetSrqEvent 関 数 、および<br />

GpibSetSrqEvent 関 数 に 渡 されます。<br />

●Delphi<br />

procedure OnSrqEvent(BoardNo:Integer; dwUser:DWORD); stdcall;<br />

begin<br />

// 割 り 込 みイベントに 対 応 する 処 理 を 記 述 します<br />

end;<br />

【パラメータ】<br />

BoardNo<br />

イベントが 発 生 したボード 番 号 が 格 納 されます。<br />

dwUser<br />

ユーザデータが 格 納 されます。エラーが 発 生 した 場 合 、このパラメータは 0 になります。<br />

【 戻 り 値 】<br />

コールバックルーチンに 戻 り 値 はありません。<br />

4.3.2 Visual Basic 使 用 時 の 制 約 事 項<br />

●Visual Basic Ver. 4.0 では、コールバック 関 数 の 登 録 ができない(AddressOf 演 算 子 がサポー<br />

トされない) 為 、イベント 機 能 を 使 用 することはできません。Visual Basic Ver. 5.0 以 降 は 可 能<br />

です。<br />

Microsoft Visual Basic 6.0 上 で 弊 社 ソフトウェアライブラリが 提 供 する 関 数 コールバック 機 能<br />

を 使 用 した 場 合 、 下 記 のアプリケーションエラーが 発 生 する 場 合 があります。<br />

「“0x660d64d0”の 命 令 が“0x0000009c”のメモリを 参 照 しました。メモリが“written”になる<br />

ことはできませんでした。」<br />

※”0x660d64d0”は 異 なる 場 合 があります<br />

アプリケーションエラーは 下 記 の 条 件 で 発 生 します。<br />

〇 登 録 したコールバック 関 数 内 で、 下 記 の 関 数 、ステートメントをコールする。<br />

・ 関 数 コール( 弊 社 ソフトウェアライブラリが 提 供 する 関 数 含 む)<br />

・Visual Basic のステートメント(Str()など)<br />

・スタティックテキストへの 文 字 列 代 入<br />

など<br />

また、この 問 題 は、Visual Basic 6.0 の Learning、Professional、Enterprise Edition のすべ<br />

てに 当 てはまり、サービスパックの 適 用 有 無 にかかわらず 発 生 します。<br />

コールバック 関 数 内 で、アプリケーションエラーを 発 生 させる 処 理 を 行 わずに 別 の 機 能 を 利 用<br />

することで 目 的 の 処 理 が 実 行 できるように 設 計 を 変 更 してください。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

203


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

例 えば、コールバック 関 数 の 登 録 以 外 の 通 知 機 能 、メッセージ、イベントオブジェクトが 提 供<br />

されている 場 合 は、その 機 能 を 利 用 して 下 さい。また、 割 り 込 みなどの 必 要 な 情 報 取 得 が、 関<br />

数 (ステータスを 取 得 する 関 数 など)の 呼 び 出 しで 可 能 な 場 合 は、 定 期 的 に 要 因 をチェックす<br />

るポーリング 処 理 に 変 更 して 下 さい。<br />

弊 社 としては、 関 数 コールバックを 用 いた 非 同 期 、 割 り 込 み 処 理 を、Visual Basic 6.0 上 で 構<br />

築 される 場 合 、これらの 問 題 を 回 避 する 為 に、GP-IB ActiveX コントロールの 使 用 をお 奨 め し<br />

ます。<br />

(GP-IB ActiveX コントロールは、 弊 社 Web site から 無 料 ダウンロード 出 来 る BPA-0515 に 添<br />

付 されております)<br />

Microsoft Visual Basic 6.0 は、スレッディング モデルとして、アパートメント モデルを 採 用<br />

しています。<br />

Microsoft Visual Basic 6.0 が 作 成 、 起 動 したスレッド 以 外 からコールバック 関 数 が 実 行 された<br />

場 合 にアプリケーションエラーが 発 生 する 場 合 があります。<br />

弊 社 ソフトウェアライブラリでは、ライブラリ 内 で 起 動 した 別 のスレッドから 登 録 されたコー<br />

ルバック 関 数 の 実 行 を 行 いますので、この 問 題 が 発 生 します。<br />

解 決 方 法 は、 以 下 の 項 を 参 照 してください。<br />

●Microsoft Visual Basic で 非 同 期 のイベント 処 理 を 行 う 方 法 について<br />

Visual Basic で 非 同 期 のイベント 処 理 を 行 うには、BPA-0515「GP-IB 用 ActiveX コントロ<br />

ール」 を 御 使 用 下 さい。<br />

BPA-0515「GP-IB 用 ActiveX コントロール」 を 使 用 する 事 で、イベント 等 の 各 種 処 理 が 行 え<br />

ます。BPA- 0515「GP-IB 用 ActiveX コントロール」 は 弊 社 Web site よりダウンロードし<br />

てご 使 用 ください。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

204


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

4.4 戻 り 値 一 覧<br />

エラー 識 別 子 値 意 味<br />

GPIB_SUCCESS_NOT_FOUND_LISTENER 11 リスナが 1 台 も 見 つかりませんでした。<br />

GPIB_SUCCESS_OK_SEND_STB 7 ステータス・バイトはコントローラへ 通 知 済 です。<br />

GPIB_SUCCESS_NOT_EXEC_SPOLL 6 まだ、シリアル・ポールは 行 われていません。<br />

GPIB_SUCCESS_NOT_ACTIVE_SRQ 5 SRQ 信 号 無 効 です。<br />

PciGpibExCheckSrq 関 数 において、SRQ 割 り 込 みを 受 け 付 けていな<br />

いとき、この 戻 り 値 が 通 知 されます。<br />

GPIB_SUCCESS_ACTIVE_SRQ 4 SRQ 信 号 有 効 です。<br />

PciGpibExCheckSrq 関 数 において、SRQ 割 り 込 みを 受 け 付 けている<br />

とき、この 戻 り 値 が 通 知 されます。<br />

GPIB_SUCCESS_OK_EOI_DETECT 2 EOI を 検 出 して 終 了 しました。<br />

データ 受 信 時 にデリミタとして EOI を 検 出 して 終 了 しました。<br />

GPIB_SUCCESS_OK_RECV_DATA_CNT 1 指 定 された 受 信 データ 数 に 達 して 終 了 しました。<br />

データ 受 信 時 に 指 定 された 受 信 データ 数 に 達 して 終 了 しました。この<br />

状 態 ではデリミタの 検 出 は 行 われていません。デリミタ 有 りの 送 受 信<br />

処 理 を 行 っている 場 合 には、 引 き 続 いてデータ 受 信 処 理 を 実 行 する 必<br />

要 があります。<br />

GPIB_SUCCESS_OK_DELIM_DETECT 0 データ 受 信 時 に 指 定 された 受 信 デリミタを 検 出 して 終 了 しました。<br />

GPIB_SUCCESS 0 処 理 を 正 常 終 了 しました。<br />

GPIB_ERROR_ILLEGAL_BOARDNO -1 ボードアクセス 番 号 が 違 います。<br />

・コントロールパネルで 指 定 されたボードアクセス 番 号 以 外 のインタ<br />

フェースモジュールを 指 定 しました。<br />

・すでに 初 期 化 済 の<strong>インタフェース</strong>モジュールに 対 して 再 初 期 化 を 行<br />

おうとしました。<br />

・または 初 期 化 が 行 われていない<strong>インタフェース</strong>モジュールに 対 して<br />

制 御 を 行 おうとしました。<br />

・0~15 以 外 の 番 号 を 指 定 しました。<br />

GPIB_ERROR_ILLEGAL_INP_PARAM -2 入 力 パラメータに 間 違 いがあります。<br />

入 力 パラメータの 値 、 範 囲 を 確 認 してください。<br />

GPIB_ERROR_ILLEGAL_PARAM_NO -3 パラメータ 番 号 に 間 違 いがあります。<br />

パラメータ 番 号 の 値 、 範 囲 を 確 認 してください。<br />

GPIB_ERROR_NOT_USE_SLAVE -4 非 コントローラ 状 態 では 使 用 できません。<br />

非 コントローラモードにおいて、コントローラモードでのみ 使 用 可 能<br />

な 関 数 を 呼 び 出 しました。<br />

(<strong>インタフェース</strong>モジュールが[CIC] 状 態 で 無 い 場 合 に、[CIC] 状 態 での<br />

み 使 用 可 能 な API を 呼 び 出 しました)<br />

GPIB_ERROR_NOT_USE_MASTER -5 コントローラ 状 態 では 使 用 できません。<br />

コントローラモードにおいて、 非 コントローラモードでのみ 使 用 可 能<br />

な 関 数 を 呼 び 出 しました。<br />

(<strong>インタフェース</strong>モジュールが[CIC] 状 態 の 場 合 に、 非 [CIC] 状 態 でのみ<br />

使 用 可 能 な API を 呼 び 出 しました)<br />

GPIB_ERROR_NOT_BOTH_USE -6 コントローラ/ 非 コントローラの 両 方 の 指 定 はできません。<br />

PciGpibExSetSignal 関 数 において、コントローラインチャージのみ<br />

と 非 コントローラインチャージのみの 両 方 の 事 象 変 化 検 出 設 定 を 行 お<br />

うとしました。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

205


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

GPIB_ERROR_CMD_TMO -7 バスコマンドの 送 出 に 失 敗 しました。<br />

・コントローラ・イン・チャージにおいて、バスコマンドの 送 出 に 失<br />

敗 しました。 以 下 の 要 因 が 考 えられます。<br />

・システムコントローラにおいて、PciGpibExSetIfc 関 数 を 実 行 して<br />

いない。<br />

・ 現 在 、 他 の 機 器 および 非 同 期 入 出 力 中 により、GP-IB バスが 占 有 状<br />

態 である 場 合<br />

・ 非 コントローラ・イン・チャージにおいて、バスコマンドを 送 出 す<br />

る 関 数 を 実 行 した 場 合<br />

・ 他 のアプリケーションの 負 荷 が 重 く、バスコマンド 送 出 タイムアウ<br />

トが 発 生 した 場 合 (この 場 合 、コントロールパネルでタイムアウト 時 間<br />

を 増 やすようにしてください。)<br />

GPIB_ERROR_NO_SET_SIGNAL -8 検 出 する 事 象 が 設 定 されていません。<br />

PciGpibExSetSignal 関 数 で 事 象 変 化 検 出 設 定 を 行 わずに、<br />

PciGpibExWaitSignal 関 数 を 実 行 しようとしました。<br />

GPIB_ERROR_ACTIVE_SRQ -9 シリアル・ポーリングにも 関 わらず SRQ 送 出 元 を 検 出 できませんで<br />

した。<br />

GPIB_ERROR_STB_TMO -10 STB 受 信 時 にタイムアウトが 発 生 しました。<br />

・ 機 器 からのステータス・バイトが 指 定 した 時 間 内 に 受 信 できません<br />

でした。<br />

・コントロールパネルの 設 定 「STB 応 答 時 間 」を 増 やす 必 要 がありま<br />

す。<br />

GPIB_ERROR_DATA_RECV -12 データ 受 信 に 失 敗 しました。<br />

・データ 受 信 処 理 に 失 敗 しました。 以 下 の 要 因 が 考 えられます。<br />

・ 他 の 機 器 もしくは 非 同 期 転 送 中 により、GP-IB バスが 占 有 中 である<br />

場 合<br />

GPIB_ERROR_DATA_SEND -13 データ 送 信 に 失 敗 しました。<br />

・データ 送 信 処 理 に 失 敗 しました。 以 下 の 要 因 が 考 えられます。<br />

・ 送 信 したデータが 受 信 されなかった(この 場 合 、ケーブル 接 続 、 全 て<br />

の 機 器 の 電 源 が 入 っているか、ケーブル 長 は GP-IB の 規 格 を 守 っ<br />

ているか 等 を 確 認 してください。<br />

・ 他 の 機 器 もしくは 非 同 期 転 送 中 により、GP-IB バスが 占<br />

有 中 である 場 合<br />

GPIB_ERROR_TRANS_TMO -14 タイムアウトが 発 生 しました。<br />

・ 送 受 信 時 に 指 定 時 間 内 にデータ 転 送 が 終 了 しませんでした。 以 下 の<br />

要 因 が 考 えられます。<br />

・ 指 定 したデータ 長 に 対 するデータ 転 送 時 間 がタイムアウト 時 間 より<br />

長 い 場 合 (この 場 合 は 送 受 信 タイムアウト 時 間 を 長 くする 必 要 があ<br />

ります。)<br />

・ 送 受 信 中 に 機 器 からの 応 答 が 何 らかの 要 因 でなくなった<br />

場 合<br />

GPIB_ERROR_WAIT_SIGNAL_TMO -15 タイムアウトで 終 了 しました。<br />

PciGpibExWaitSignal 関 数 において、 指 定 時 間 内 に 事 象 変<br />

化 が 検 出 できませんでした。<br />

GPIB_ERROR_IFC_TRANS_EXIT -16 IFC 受 信 による 強 制 終 了 。<br />

送 受 信 中 に IFC を 受 信 したため、 送 受 信 処 理 を 強 制 終 了 し<br />

ました。<br />

GPIB_ERROR_NOT_CACS -19 コントローラアクティブ 状 態 に 遷 移 できませんでした。<br />

GPIB_ERROR_NOW_BUS_OCCUPATION -20 現 在 、バスが 占 有 状 態 となっています( 非 同 期 入 出 力 中 )。<br />

・ 送 受 信 関 数 を 実 行 しましたが、GP-IB バスが 占 有 状 態 となっていま<br />

す。<br />

・ 非 同 期 入 出 力 の 完 了 を 待 つようにしてください。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

206


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

GPIB_ERROR_NO_SET -22 設 定 変 更 ができませんでした。<br />

・PciGpibExSetConfig 関 数 において、 設 定 変 更 に 失 敗 しました。 以<br />

下 の 要 因 が 考 えられます。<br />

・ 非 同 期 入 出 力 中 に PciGpibExSetConfig 関 数 を 呼 び 出 し<br />

ました。<br />

GPIB_ERROR_NOT_START_TIMER -24 タイマがスタートできませんでした。<br />

GPIB_ERROR_EXIST_START_TIMER -25 すでにタイマはスタートしています。<br />

GPIB_ERROR_NOT_TICK_TIMER -26 タイマが 動 作 中 ではありません。<br />

GPIB_ERROR_FILE_ACCESS -30 ファイルがオープンできません、またはファイル 読 み 込 み/ 書 き 込 み 中<br />

にエラーが 発 生 しました。<br />

以 下 の 要 因 が 考 えられます。<br />

・ 存 在 しないファイルをオープンしようとしました。<br />

・ディスクの 空 き 容 量 が 足 らない。<br />

・ 空 きメモリ 容 量 が 極 端 に 少 ない(ハードディスクの 空 き 容 量 に 注 意 し<br />

てください。)<br />

・ 共 有 ファイルをオープンしようとした、またはそのファ<br />

イルが 別 のプロセスでオープンされている。<br />

GPIB_ERROR_SET_CALLBACK_EVENT -40 コールバックイベントの 登 録 に 失 敗 しました。<br />

既 に 同 じボードアクセス 番 号 にて PciGpibExSetSrqEvent<br />

関 数 にて 登 録 済 です。<br />

GPIB_ERROR_KILL_CALLBACK_EVENT -41 コールバックイベントの 登 録 解 除 に 失 敗 しました。<br />

GPIB_ERROR_WAIT_OBJECT_SIGNAL -42 イベントオブジェクトが 有 効 です。<br />

PciGpibExWaitSrqEvent 関 数 実 行 前 にイベントが 有 効 済<br />

となっています。<br />

GPIB_ERROR_WAIT_OBJECT_TMO -43 イベントオブジェクト 待 ちにてタイムアウトが 発 生 しました。<br />

PciGpibExWaitSrqEvent 関 数 実 行 にてタイムアウト 時 間<br />

内 にイベントが 有 効 になりませんでした。<br />

GPIB_ERROR_WAIT_OBJECT_FAILED -44 イベントオブジェクト 待 ちにてエラーが 発 生 しました。<br />

・PciGpibExWaitSrqEvent 関 数 実 行 にてイベント 待 ちにエラーが 発<br />

生 しました。<br />

・イベントリソースが 足 りなくなっている 可 能 性 があります。<br />

・ 起 動 中 のアプリケーションの 数 を 少 なくしてください。<br />

GPIB_ERROR_NOT_SET_CALLBACK_EVE<br />

NT<br />

-45 まだコールバックイベントが 登 録 されていません。<br />

PciGpibExSetSrqEvent 関 数 を 実 行 してコールバックイベ<br />

ントの 登 録 を 行 ってください。<br />

GPIB_ERROR_NOT_SYS_CONTROLLER -50 システムコントローラではありません。<br />

GPIB_ERROR_NOT_CREATE_EVENT -992 イベントの 作 成 ができませんでした。<br />

以 下 の 要 因 が 考 えられます。<br />

・システムリソースが 極 端 に 不 足 している 可 能 性 がありま<br />

す。<br />

GPIB_ERROR_NOT_CREATE_THREAD -993 スレッドの 作 成 ができませんでした。<br />

以 下 の 要 因 が 考 えられます。<br />

・システムリソースが 極 端 に 不 足 している 可 能 性 がありま<br />

す。<br />

GPIB_ERROR_NOT_INIT_CALL -994 <strong>インタフェース</strong>モジュールの 初 期 化 が 行 われていない 状 態<br />

では、 使 用 できません。<br />

GPIB_ERROR_NOT_ALLOC_PAGE -995 <strong>インタフェース</strong>モジュールの 使 用 終 了 ができませんでした。<br />

以 下 の 要 因 が 考 えられます。<br />

・ 割 り 込 みの 制 御 に 失 敗 しました(このエラーが 発 生 した 場<br />

合 、Windows のシステムに 問 題 があります。リソースの 競<br />

合 がないか 確 認 してください。)。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

207


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

GPIB_ERROR_NOT_BOARD -996 ドライバ 側 のページの 確 保 ができませんでした。<br />

以 下 の 要 因 が 考 えられます。<br />

・ 空 きメモリが 極 端 に 少 ない。<br />

・ハードディスクの 空 き 容 量 が 極 端 に 少 ない 場 合 (1MB 以 下 等 )<br />

・ 他 に 動 作 しているプロセスが 多 く 存 在 する。<br />

・ 本 エラーが 発 生 する 場 合 は、 一 度 に 要 求 するデータサイ<br />

ズを 少 なくしていくか、もしくはメモリの 増 設 をお 勧 めし<br />

ます。<br />

GPIB_ERROR_NOT_USE_TIMER -997 タイマ 設 定 に 失 敗 しました。<br />

以 下 の 要 因 が 考 えられます。<br />

・ 他 のプロセスにおいて、タイマを 多 く 使 用 している 場 合 。<br />

本 エラーが 発 生 する 場 合 は、 他 に 動 作 しているプロセスを<br />

終 了 させるようにしてください。<br />

GPIB_ERROR_NOT_USE_RESOURCE -998 割 り 込 みが 使 用 できません。<br />

以 下 の 要 因 が 考 えられます。<br />

・ 割 り 込 みのリソースが 競 合 している、もしくは 使 用 中 となっている。<br />

・リソースが 競 合 しないようにしてください。<br />

GPIB_ERROR_NOT_BOARD -999 <strong>インタフェース</strong>モジュールが 存 在 しません。<br />

以 下 の 要 因 が 考 えられます。<br />

・<strong>インタフェース</strong>モジュール 自 体 に 異 常 がある 場 合<br />

・ 自 己 診 断 プログラムを 実 行 して、<strong>インタフェース</strong>モジュ<br />

ールのチェックを 行 ってください。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

208


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

4.5 プログラム 例<br />

4.5.1 高 機 能 版 DLL<br />

■C 言 語<br />

// ================================================================<br />

// GP-IB <strong>インタフェース</strong>モジュール 用 Windows ドライバ<br />

// プログラム 例 C 言 語 コンソールアプリケーション<br />

// (MS-DOS プロンプトまたはコマンド プロンプトで 実 行 します)<br />

//<br />

// Copyright 2000, 2007 Interface Corporation. All rights reserved.<br />

//<br />

// プログラム 説 明<br />

// YOKOGAWA 7561 からの 計 測 データを 画 面 に 表 示 します<br />

// ================================================================<br />

#include <br />

#include <br />

#include "<strong>GPC</strong><strong>4304</strong>.H"<br />

int nInpDevAdrsTbl[2] = { 2, -1 }; // 入 力 機 器 アドレステーブル<br />

char *szSendData = "F1R0SI100IT1"; // YOKOGAWA 7561 送 信 データ<br />

char RecvBuf[100];<br />

// バッファ 格 納 領 域<br />

int main(void)<br />

{<br />

int nRet; // 関 数 戻 り 値<br />

DWORD nLen; // バッファサイズ<br />

// ボードアクセス 番 号 0 の<strong>インタフェース</strong>モジュールを 初 期 化<br />

nRet = PciGpibExInitBoard(0, 0);<br />

if (nRet) {<br />

printf("ボードアクセス 番 号 0 の<strong>インタフェース</strong>モジュールが 初 期 化 できません¥n");<br />

printf("エラーコード : %d¥n", nRet);<br />

return -1; // プログラム 終 了<br />

}<br />

// IFCを 送 出<br />

nRet = PciGpibExSetIfc(0, 1);<br />

if(nRet) {<br />

printf("IFC 送 出 に 失 敗 しました¥n");<br />

printf("エラーコード : %d¥n", nRet);<br />

return -1; //プログラム 終 了<br />

}<br />

// REN 信 号 有 効<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

209


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

nRet = PciGpibExSetRen(0);<br />

if(nRet) {<br />

printf("REN 信 号 有 効 に 失 敗 しました¥n");<br />

printf("エラーコード : %d¥n", nRet);<br />

return -1; //プログラム 終 了<br />

}<br />

// YOKOGAWA 7561 に 対 して 次 のモード 設 定 を 行 います<br />

//<br />

// ・DCV / AUTO RANGE / Interval100msec / 積 分 時 間 2.5msec<br />

//<br />

printf("YOKOGAWA 7561 : 送 信 文 字 列 = %s¥n", szSendData);<br />

nRet = PciGpibExMastSendData(0, nInpDevAdrsTbl, strlen(szSendData),<br />

szSendData, 0);<br />

if(nRet) {<br />

printf("データ 送 信 に 失 敗 しました¥n");<br />

printf("エラーコード : %d¥n", nRet);<br />

return -1; //プログラム 終 了<br />

}<br />

// YOKOGAWA 7561 から 測 定 データを 受 信 します<br />

nLen = sizeof(RecvBuf);<br />

nRet = PciGpibExMastRecvData(0, nInpDevAdrsTbl, &nLen, RecvBuf, 0);<br />

if(nRet) {<br />

printf("データ 受 信 に 失 敗 しました¥n");<br />

printf("エラーコード : %d¥n", nRet);<br />

return -1; //プログラム 終 了<br />

}<br />

// 受 信 文 字 列 の 表 示<br />

printf(" 受 信 処 理 戻 り 値 = %d¥n", nRet);<br />

printf("YOKOGAWA 7561 : 受 信 文 字 列 = %s¥n", RecvBuf);<br />

printf("YOKOGAWA 7561 : 受 信 データ 長 = %d¥n", nLen);<br />

// ボードアクセス 番 号 0 の<strong>インタフェース</strong>モジュールを 使 用 終 了<br />

PciGpibExFinishBoard(0);<br />

}<br />

return 0;<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

210


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

■Visual Basic<br />

' ===============================================================<br />

' GP-IB <strong>インタフェース</strong>モジュール 用 Windows ドライバ<br />

' プログラム 例 Visual Basic<br />

'<br />

'<br />

Copyright 2000, 2007 Interface Corporation. All rights reserved.<br />

'<br />

' プログラム 説 明<br />

' YOKOGAWA 7561 からの 計 測 データを 画 面 に 表 示 します<br />

' ===============================================================<br />

' 変 数 定 義<br />

Dim nLen As Long<br />

' バッファサイズ<br />

Dim szData As String<br />

' 送 信 データ<br />

Dim RecvBuf As String ' バッファ 格 納 領 域<br />

Dim InpDevAdrsTbl(1) As Long ' 入 力 機 器 アドレステーブル<br />

' ボードアクセス 番 号 0 の<strong>インタフェース</strong>モジュールを 初 期 化<br />

nRet = PciGpibExInitBoard(0, 0)<br />

If nRet 0 Then<br />

nRet=MsgBox("ボードアクセス 番 号 0 の<strong>インタフェース</strong>モジュールが 初 期 化 できません",<br />

_<br />

(vbOKOnly + vbCritical), "PciGpibExInitBoard")<br />

Unload Me ' ダイアログを 閉 じる<br />

End If<br />

' IFC 送 出<br />

nRet = PciGpibExSetIfc(0, 1)<br />

If nRet 0 Then<br />

nRet = MsgBox("IFC 送 出 に 失 敗 しました", (vbOKOnly + vbCritical),<br />

"PciGpibExSetIfc")<br />

PciGpibExFinishBoard (0) ' ボードアクセス 番 号 0 の<strong>インタフェース</strong>モジュールを 使 用 終<br />

了<br />

Unload Me ' ダイアログを 閉 じる<br />

End If<br />

' REN 信 号 有 効<br />

nRet = PciGpibExSetRen(0)<br />

If nRet 0 Then<br />

nRet = MsgBox("REN 信 号 有 効 に 失 敗 しました", _<br />

(vbOKOnly + vbCritical), "PciGpibExSetRen")<br />

PciGpibExFinishBoard (0) ' ボードアクセス 番 号 0 の<strong>インタフェース</strong>モジュールを 使 用 終<br />

了<br />

Unload Me ' ダイアログを 閉 じる<br />

End If<br />

' 機 器 アドレスを 設 定<br />

InpDevAdrsTbl(0) = 2<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

211


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

InpDevAdrsTbl(1) = -1<br />

' YOKOGAWA 7561 に 対 して 次 のモード 設 定 を 行 います<br />

'<br />

' ・DCV / AUTO RANGE / Interval100msec / 積 分 時 間 2.5msec<br />

'<br />

' 送 信 文 字 列 の 表 示<br />

nRet = MsgBox("YOKOGAWA 7561 : 送 信 文 字 列 = F1R0SI100IT1", _<br />

(vbOKOnly + vbInformation), "PciGpibExMastSendData")<br />

szData = StrConv("F1R0SI100IT1", vbFromUnicode)<br />

nLen = LenB(szData)<br />

szData = StrConv(szData, vbUnicode)<br />

nRet = PciGpibExMastSendData(0, InpDevAdrsTbl(0), nLen, szData, 0)<br />

If nRet 0 Then<br />

nRet = MsgBox("データ 送 信 に 失 敗 しました", (vbOKOnly + vbCritical), _<br />

"PciGpibExMastSendData")<br />

PciGpibExFinishBoard (0) ' ボードアクセス 番 号 0 の<strong>インタフェース</strong>モジュールを 使 用 終<br />

了<br />

Unload Me ' ダイアログを 閉 じる<br />

End If<br />

' YOKOGAWA 7561 から 測 定 データを 受 信 します<br />

nLen = 32<br />

RecvBuf = String(nLen, 0)<br />

nRet = PciGpibExMastRecvData(0, InpDevAdrsTbl(0), nLen, RecvBuf, 0)<br />

If nRet 0 Then<br />

nRet = MsgBox("データ 受 信 に 失 敗 しました", (vbOKOnly + vbCritical), _<br />

"PciGpibExMastRecvData")<br />

PciGpibExFinishBoard (0) ' ボードアクセス 番 号 0 の<strong>インタフェース</strong>モジュールを 使 用 終<br />

了<br />

Unload Me ' ダイアログを 閉 じる<br />

End If<<br />

' 受 信 文 字 列 の 表 示<br />

nRet = MsgBox("YOKOGAWA 7561 : 受 信 文 字 列 = " & RecvBuf, (vbOKOnly +<br />

vbInformation), _<br />

"PciGpibExMastRecvData")<br />

' ボードアクセス 番 号 0 の<strong>インタフェース</strong>モジュールを 使 用 終 了<br />

PciGpibExFinishBoard (0)<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

212


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

■Delphi<br />

// =================================================================<br />

// GP-IB <strong>インタフェース</strong>モジュール 用 Windows ドライバ<br />

// プログラム 例 Delphi<br />

//<br />

// Copyright 2000, 2007 Interface Corporation. All rights reserved.<br />

//<br />

// プログラム 説 明<br />

// YOKOGAWA 7561 からの 計 測 データを 画 面 に 表 示 します<br />

// =================================================================<br />

var<br />

nRet : Integer;<br />

// 関 数 戻 り 値<br />

gdwSLength : Cardinal;<br />

// 送 信 データ 長<br />

gdwRLength : Cardinal;<br />

// 受 信 データ 長<br />

pSendData : pChar;<br />

// 送 信 データ<br />

gnAdrsTbl : Array[0..7] of Integer; // アドレステーブル<br />

gRecvBuf : Array[0..128] of Char; // 受 信 バッファ<br />

begin<br />

// ボードアクセス 番 号 0 の<strong>インタフェース</strong>モジュールを 初 期 化<br />

nRet := PciGpibExInitBoard(0, 0);<br />

if nRet0 then<br />

begin<br />

MessageDlg('ボードアクセス 番 号 0 の<strong>インタフェース</strong>モジュールが 初 期 化 できません',<br />

mtInformation, [mbOK], 0);<br />

Exit; // ダイアログを 閉 じる<br />

end;<br />

// IFCを 送 出<br />

nRet := PciGpibExSetIfc(0, 1);<br />

if nRet0 then<br />

begin<br />

MessageDlg('IFC 送 出 に 失 敗 しました', mtInformation, [mbOK], 0);<br />

PciGpibExFinishBoard(0); // ボードアクセス 番 号 0 の<strong>インタフェース</strong>モジュールを<br />

使 用 終 了<br />

Exit; // ダイアログを 閉 じる<br />

end;<br />

// REN 信 号 有 効<br />

nRet := PciGpibExSetRen(0);<br />

if nRet0 then<br />

begin<br />

MessageDlg('REN 信 号 有 効 に 失 敗 しました', mtInformation, [mbOK], 0);<br />

PciGpibExFinishBoard(0); // ボードアクセス 番 号 0 の<strong>インタフェース</strong>モジュールを 使<br />

用 終 了<br />

Exit; // ダイアログを 閉 じる<br />

end;<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

213


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

// 送 信 文 字 列 設 定<br />

pSendData := StrNew('F1R0SI100IT1');<br />

// 機 器 アドレス 設 定<br />

gnAdrsTbl[0] := 2;<br />

gnAdrsTbl[1] := -1;<br />

// YOKOGAWA 7561 に 対 して 次 のモード 設 定 を 行 います<br />

//<br />

// ・DCV / AUTO RANGE / Interval100msec / 積 分 時 間 2.5msec<br />

//<br />

gdwSLength := 12;<br />

nRet := PciGpibExMastSendData(0, @gnAdrsTbl[0], gdwSLength, pSendData,<br />

WM_NULL);<br />

StrDispose(pSendData);<br />

MessageDlg('YOKOGAWA 7561 : 送 信 文 字 列 = ' + 'F1R0SI100IT1',<br />

mtInformation, [mbOK], 0);<br />

if nRet0 then<br />

begin<br />

MessageDlg('データ 送 信 に 失 敗 しました', mtInformation, [mbOK], 0);<br />

PciGpibExFinishBoard(0); // ボードアクセス 番 号 0 の<strong>インタフェース</strong>モジュールを<br />

使 用 終 了<br />

Exit; // ダイアログを 閉 じる<br />

end;<br />

// YOKOGAWA 7561 から 測 定 データを 受 信 します<br />

gdwRLength := 32;<br />

nRet := PciGpibExMastRecvData(0, @gnAdrsTbl[0], gdwRLength, @gRecvBuf[0],<br />

WM_NULL);<br />

if nRet0 then<br />

begin<br />

MessageDlg('データ 受 信 に 失 敗 しました', mtInformation, [mbOK], 0);<br />

PciGpibExFinishBoard(0); // ボードアクセス 番 号 0 の<strong>インタフェース</strong>モジュールを<br />

使 用 終 了<br />

Exit; // ダイアログを 閉 じる<br />

end;<br />

0);<br />

// 受 信 文 字 列 の 表 示<br />

MessageDlg('YOKOGAWA 7561 : 受 信 文 字 列 = ' + gRecvBuf, mtInformation, [mbOK],<br />

MessageDlg('YOKOGAWA 7561 : 受 信 データ 長 = ' + IntToStr(gdwRLength),<br />

mtInformation, [mbOK], 0);<br />

PciGpibExFinishBoard(0);<br />

用 終 了<br />

End.<br />

// ボードアクセス 番 号 0 の<strong>インタフェース</strong>モジュールを 使<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

214


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

4.5.2 標 準 版 DLL<br />

■C 言 語<br />

// =================================================================<br />

// GP-IB <strong>インタフェース</strong>モジュール 用 Windows ドライバ<br />

// 標 準 版 DLL プログラム 例 C 言 語 コンソールアプリケーション<br />

// (MS-DOS プロンプトまたはコマンド プロンプトで 実 行 します)<br />

//<br />

// Copyright 2000, 2007 Interface Corporation. All rights reserved.<br />

//<br />

// プログラム 説 明<br />

// YOKOGAWA 7561 からの 計 測 データを 画 面 に 表 示 します<br />

// =================================================================<br />

#include <br />

#include <br />

#include "<strong>GPC</strong><strong>4304</strong>2.H"<br />

int nInpDevAdrsTbl[2] = { 2, -1 }; // 入 力 機 器 アドレステーブル<br />

char *szSendData = "F1R0SI100IT1"; // YOKOGAWA 7561 送 信 データ<br />

char RecvBuf[100];<br />

// バッファ 格 納 領 域<br />

void main(void)<br />

{<br />

int nRet;<br />

DWORD nLen;<br />

ULONG ulBoardNo = 0;<br />

// 関 数 戻 り 値<br />

// バッファサイズ<br />

// ボード 番 号<br />

// ボード 番 号 0 の<strong>インタフェース</strong>モジュールを 初 期 化<br />

nRet = GpibOpen( ulBoardNo );<br />

if (nRet) {<br />

printf("ボード 番 号 0 の<strong>インタフェース</strong>モジュールが 初 期 化 できません¥n");<br />

printf("エラーコード : %d¥n", nRet);<br />

exit(0);<br />

// プログラム 終 了<br />

}<br />

// IFCを 送 出<br />

nRet = GpibSetIfc( ulBoardNo );<br />

if (nRet) {<br />

printf("IFC 送 出 に 失 敗 しました¥n");<br />

printf("エラーコード : %d¥n", nRet);<br />

GpibClose( ulBoardNo );<br />

// ボード 番 号 0 の<strong>インタフェース</strong>モジュール<br />

を 使 用 終 了<br />

exit(0);<br />

// プログラム 終 了<br />

}<br />

// REN 信 号 有 効<br />

nRet = GpibSetRen( ulBoardNo );<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

215


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

if (nRet) {<br />

printf("REN 信 号 有 効 に 失 敗 しました¥n");<br />

printf("エラーコード : %d¥n", nRet);<br />

GpibClose( ulBoardNo );<br />

// ボード 番 号 0 の<strong>インタフェース</strong>モジュール<br />

を 使 用 終 了<br />

exit(0);<br />

// プログラム 終 了<br />

}<br />

// YOKOGAWA 7561 に 対 して 次 のモード 設 定 を 行 います<br />

//<br />

// ・DCV / AUTO RANGE / Interval100msec / 積 分 時 間 2.5msec<br />

//<br />

printf("YOKOGAWA 7561 : 送 信 文 字 列 = %s¥n", szSendData);<br />

nRet = GpibSend( ulBoardNo, nInpDevAdrsTbl, strlen(szSendData), szSendData );<br />

if(nRet) {<br />

printf("データ 送 信 に 失 敗 しました¥n");<br />

printf("エラーコード : %d¥n", nRet);<br />

GpibClose( ulBoardNo );<br />

// ボード 番 号 0 の<strong>インタフェース</strong>モジュール<br />

を 使 用 終 了<br />

exit(0);<br />

// プログラム 終 了<br />

}<br />

// YOKOGAWA 7561 から 測 定 データを 受 信 します<br />

nLen = sizeof(RecvBuf);<br />

nRet = GpibReceive( ulBoardNo, nInpDevAdrsTbl, &nLen, RecvBuf );<br />

if(nRet) {<br />

printf("データ 受 信 に 失 敗 しました¥n");<br />

printf("エラーコード : %d¥n", nRet);<br />

GpibClose( ulBoardNo );<br />

// ボード 番 号 0 の<strong>インタフェース</strong>モジュール<br />

を 使 用 終 了<br />

exit(0);<br />

// プログラム 終 了<br />

}<br />

// 受 信 文 字 列 の 表 示<br />

printf(" 受 信 処 理 戻 り 値 = %d¥n", nRet);<br />

printf("YOKOGAWA 7561 : 受 信 文 字 列 = %s¥n", RecvBuf);<br />

printf("YOKOGAWA 7561 : 受 信 データ 長 = %d¥n", nLen);<br />

}<br />

// ボード 番 号 0 の<strong>インタフェース</strong>モジュールを 使 用 終 了<br />

GpibClose( ulBoardNo );<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

216


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

■Visual Basic<br />

' ===================================================================<br />

' GP-IB <strong>インタフェース</strong>モジュール 用 Windows ドライバ<br />

' 標 準 版 DLL プログラム 例 Visual Basic<br />

'<br />

'<br />

Copyright 2000, 2007 Interface Corporation. All rights reserved.<br />

'<br />

' プログラム 説 明<br />

' YOKOGAWA 7561 からの 計 測 データを 画 面 に 表 示 します<br />

' ===================================================================<br />

' 変 数 定 義<br />

Dim nLen As Long<br />

Dim szData As String<br />

Dim RecvBuf As String<br />

Dim InpDevAdrsTbl(1) As Long<br />

Dim ulBoardNo As Long<br />

' バッファサイズ<br />

' 送 信 データ<br />

' バッファ 格 納 領 域<br />

' 入 力 機 器 アドレステーブル<br />

ulBoardNo = 0<br />

' ボード 番 号 0 の<strong>インタフェース</strong>モジュールを 初 期 化<br />

nRet = GpibOpen( ulBoardNo )<br />

If nRet 0 Then<br />

nRet = MsgBox("ボード 番 号 0 の<strong>インタフェース</strong>モジュールが 初 期 化 できません", _<br />

(vbOKOnly + vbCritical), "GpibOpen")<br />

Unload Me ' ダイアログを 閉 じる<br />

End If<br />

' IFC 送 出<br />

nRet = GpibSetIfc( ulBoardNo )<br />

If nRet 0 Then<br />

nRet = MsgBox("IFC 送 出 に 失 敗 しました", (vbOKOnly + vbCritical), "GpibSetIfc")<br />

GpibClose( ulBoardNo ) ' ボード 番 号 0 の<strong>インタフェース</strong>モジュールを 使 用 終 了<br />

Unload Me ' ダイアログを 閉 じる<br />

End If<br />

' REN 信 号 有 功<br />

nRet = GpibSetRen( ulBoardNo )<br />

If nRet 0 Then<br />

nRet = MsgBox("REN 信 号 有 効 に 失 敗 しました", (vbOKOnly + vbCritical),<br />

"GpibSetRen")<br />

GpibClose( ulBoardNo ) ' ボード 番 号 0 の<strong>インタフェース</strong>モジュールを 使 用 終 了<br />

Unload Me ' ダイアログを 閉 じる<br />

End If<br />

' 機 器 アドレスを 設 定<br />

InpDevAdrsTbl(0) = 2<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

217


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

InpDevAdrsTbl(1) = -1<br />

' YOKOGAWA 7561 に 対 して 次 のモード 設 定 を 行 います<br />

'<br />

' ・DCV / AUTO RANGE / Interval100msec / 積 分 時 間 2.5msec<br />

'<br />

' 送 信 文 字 列 の 表 示<br />

nRet = MsgBox("YOKOGAWA 7561 : 送 信 文 字 列 = F1R0SI100IT1", _<br />

(vbOKOnly + vbInformation), "GpibSend")<br />

szData = StrConv("F1R0SI100IT1", vbFromUnicode)<br />

nLen = LenB(szData)<br />

szData = StrConv(szData, vbUnicode)<br />

nRet = GpibSend( ulBoardNo, InpDevAdrsTbl(0), nLen, szData )<br />

If nRet 0 Then<br />

nRet = MsgBox("データ 送 信 に 失 敗 しました", (vbOKOnly + vbCritical), "GpibSend")<br />

GpibClose( ulBoardNo ) ' ボード 番 号 0 の<strong>インタフェース</strong>モジュールを 使 用 終 了<br />

Unload Me ' ダイアログを 閉 じる<br />

End If<br />

' YOKOGAWA 7561 から 測 定 データを 受 信 します<br />

nLen = 32<br />

RecvBuf = String(nLen, 0)<br />

nRet = GpibReceive( ulBoardNo, InpDevAdrsTbl(0), nLen, RecvBuf )<br />

If nRet 0 Then<br />

nRet = MsgBox("データ 受 信 に 失 敗 しました", (vbOKOnly + vbCritical), "GpibReceive")<br />

GpibClose( ulBoardNo ) ' ボード 番 号 0 の<strong>インタフェース</strong>モジュールを 使 用 終 了<br />

Unload Me ' ダイアログを 閉 じる<br />

End If<br />

' 受 信 文 字 列 の 表 示<br />

nRet = MsgBox("YOKOGAWA 7561 : 受 信 文 字 列 = " & RecvBuf, (vbOKOnly +<br />

vbInformation), "GpibReceive")<br />

' ボード 番 号 0 の<strong>インタフェース</strong>モジュールを 使 用 終 了<br />

GpibClose( ulBoardNo )<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

218


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

■Delphi<br />

// =================================================================<br />

// GP-IB <strong>インタフェース</strong>モジュール 用 Windows ドライバ<br />

// 標 準 版 DLL プログラム 例 Delphi<br />

//<br />

// Copyright 2000, 2007 Interface Corporation. All rights reserved.<br />

//<br />

// プログラム 説 明<br />

// YOKOGAWA 7561 からの 計 測 データを 画 面 に 表 示 します<br />

// =================================================================<br />

var<br />

nRet : Integer;<br />

// 関 数 戻 り 値<br />

gdwSLength : Cardinal;<br />

// 送 信 データ 長<br />

gdwRLength : Cardinal;<br />

// 受 信 データ 長<br />

pSendData : pChar;<br />

// 送 信 データ<br />

gnAdrsTbl : Array[0..7]of Integer; // アドレステーブル<br />

gRecvBuf : Array[0..128]of Char; // 受 信 バッファ<br />

ulBoardNo : Cardinal;<br />

begin<br />

ulBoardNo := 0;<br />

// ボード 番 号 0 の<strong>インタフェース</strong>モジュールを 初 期 化<br />

nRet := GpibOpen( ulBoardNo );<br />

if nRet 0 then<br />

begin<br />

MessageDlg('ボード 番 号 0 の<strong>インタフェース</strong>モジュールが 初 期 化 できません',<br />

mtInformation, [mbOK], 0);<br />

Exit;<br />

// ダイアログを 閉 じる<br />

end;<br />

// IFCを 送 出<br />

nRet := GpibSetIfc( ulBoardNo );<br />

if nRet 0 then<br />

begin<br />

MessageDlg('IFC 送 出 に 失 敗 しました', mtInformation, [mbOK], 0);<br />

GpibClose( ulBoardNo ); // ボード 番 号 0 の<strong>インタフェース</strong>モジュールを 使 用 終 了<br />

Exit;<br />

// ダイアログを 閉 じる<br />

end;<br />

// REN 信 号 有 効<br />

nRet := GpibSetRen( ulBoardNo );<br />

if nRet 0 then<br />

begin<br />

MessageDlg('REN 信 号 有 効 に 失 敗 しました', mtInformation, [mbOK], 0);<br />

GpibClose( ulBoardNo ); // ボード 番 号 0 の<strong>インタフェース</strong>モジュールを 使 用 終 了<br />

Exit;<br />

// ダイアログを 閉 じる<br />

end;<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

219


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

// 送 信 文 字 列 設 定<br />

pSendData := StrNew('F1R0SI100IT1');<br />

// 機 器 アドレス 設 定<br />

gnAdrsTbl[0] := 2;<br />

gnAdrsTbl[1] := -1;<br />

// YOKOGAWA 7561 に 対 して 次 のモード 設 定 を 行 います<br />

//<br />

// ・DCV / AUTO RANGE / Interval100msec / 積 分 時 間 2.5msec<br />

//<br />

gdwSLength := 12;<br />

nRet := GpibSend( ulBoardNo, @gnAdrsTbl[0], gdwSLength, pSendData );<br />

StrDispose(pSendData);<br />

MessageDlg('YOKOGAWA 7561 : 送 信 文 字 列 = ' + 'F1R0SI100IT1', mtInformation,<br />

[mbOK], 0);<br />

if nRet0 then<br />

begin<br />

MessageDlg('データ 送 信 に 失 敗 しました', mtInformation, [mbOK], 0);<br />

GpibClose( ulBoardNo );<br />

// ボード 番 号 0 の<strong>インタフェース</strong>モジュールを<br />

使 用 終 了<br />

Exit;<br />

// ダイアログを 閉 じる<br />

end;<br />

// YOKOGAWA 7561 から 測 定 データを 受 信 します<br />

gdwRLength := 32;<br />

nRet := GpibReceive( ulBoardNo, @gnAdrsTbl[0], gdwRLength, @gRecvBuf[0] );<br />

if nRet0 then<br />

begin<br />

MessageDlg('データ 受 信 に 失 敗 しました', mtInformation, [mbOK], 0);<br />

GpibClose( ulBoardNo ); // ボード 番 号 0 の<strong>インタフェース</strong>モジュールを 使 用 終 了<br />

Exit;<br />

// ダイアログを 閉 じる<br />

end;<br />

0);<br />

// 受 信 文 字 列 の 表 示<br />

MessageDlg('YOKOGAWA 7561 : 受 信 文 字 列 = ' + gRecvBuf, mtInformation, [mbOK],<br />

MessageDlg('YOKOGAWA 7561 : 受 信 データ 長 = ' + IntToStr(gdwRLength),<br />

mtInformation, [mbOK], 0);<br />

GpibClose( ulBoardNo );<br />

End.<br />

// ボード 番 号 0 の<strong>インタフェース</strong>モジュールを 使 用 終 了<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

220


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

4.6 マルチライン<strong>インタフェース</strong>メッセージ 一 覧<br />

h:16 進 数 , d:10 進 数 , A:ASCII, M:<strong>インタフェース</strong>メッセージ<br />

h d A M h d A M h d A M<br />

00 0 NUL - 2B 43 + MLA11 56 86 V MTA22<br />

01 1 SOH GTL 2C 44 , MLA12 57 87 W MTA23<br />

02 2 STX - 2D 45 - MLA13 58 88 X MTA24<br />

03 3 ETX - 2E 46 . MLA14 59 89 Y MTA25<br />

04 4 EOT SDC 2F 47 / MLA15 5A 90 Z MTA26<br />

05 5 ENQ PPC 30 48 0 MLA16 5B 91 [ MTA27<br />

06 6 ACK - 31 49 1 MLA17 5C 92 ¥ MTA28<br />

07 7 BEL - 32 50 2 MLA18 5D 93 ] MTA29<br />

08 8 BS GET 33 51 3 MLA19 5E 94 ^ MTA30<br />

09 9 HT TCT 34 52 4 MLA20 5F 95 _ UNT<br />

0A 10 LF - 35 53 5 MLA21 60 96 ` MSA00,PPE<br />

0B 11 VT - 36 54 6 MLA22 61 97 a MSA01,PPE<br />

0C 12 FF - 37 55 7 MLA23 62 98 b MSA02,PPE<br />

0D 13 CR - 38 56 8 MLA24 63 99 c MSA03,PPE<br />

0E 14 SO - 39 57 9 MLA25 64 100 d MSA04,PPE<br />

0F 15 SI - 3A 58 : MLA26 65 101 e MSA05,PPE<br />

10 16 DLE - 3B 59 ; MLA27 66 102 f MSA06,PPE<br />

11 17 DC1 LLO 3C 60 < MLA28 67 103 g MSA07,PPE<br />

12 18 DC2 - 3D 61 = MLA29 68 104 h MSA08,PPE<br />

13 19 DC3 - 3E 62 > MLA30 69 105 i MSA09,PPE<br />

14 20 DC4 DCL 3F 63 UNL 6A 106 j MSA10,PPE<br />

15 21 NAK PPU 40 64 @ MTA00 6B 107 k MSA11,PPE<br />

16 22 SYN - 41 65 A MTA01 6C 108 l MSA12,PPE<br />

17 23 ETB - 42 66 B MTA02 6D 109 m MSA13,PPE<br />

18 24 CAN SPE 43 67 C MTA03 6E 110 n MSA14,PPE<br />

19 25 EM SPD 44 68 D MTA04 6F 111 o MSA15,PPE<br />

1A 26 SUB - 45 69 E MTA05 70 112 p MSA16,PPD<br />

1B 27 ESC - 46 70 F MTA06 71 113 q MSA17,PPD<br />

1C 28 FS - 47 71 G MTA07 72 114 r MSA18,PPD<br />

1D 29 GS - 48 72 H MTA08 73 115 s MSA19,PPD<br />

1E 30 RS - 49 73 I MTA09 74 116 t MSA20,PPD<br />

1F 31 US - 4A 74 J MTA10 75 117 u MSA21,PPD<br />

20 32 SP MLA00 4B 75 K MTA11 76 118 v MSA22,PPD<br />

21 33 ! MLA01 4C 76 L MTA12 77 119 w MSA23,PPD<br />

22 34 “ MLA02 4D 77 M MTA13 78 120 x MSA24,PPD<br />

23 35 # MLA03 4E 78 N MTA14 79 121 y MSA25,PPD<br />

24 36 $ MLA04 4F 79 O MTA15 7A 122 z MSA26,PPD<br />

25 37 % MLA05 50 80 P MTA16 7B 123 { MSA27,PPD<br />

26 38 & MLA06 51 81 Q MTA17 7C 124 | MSA28,PPD<br />

27 39 ‘ MLA07 52 82 R MTA18 7D 125 } MSA29,PPD<br />

28 40 ( MLA08 53 83 S MTA19 7E 126 ~ MSA30,PPD<br />

29 41 ) MLA09 54 84 T MTA20 7F 127 DEL -<br />

2A 42 * MLA10 55 85 U MTA21<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

221


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

■マルチライン<strong>インタフェース</strong>メッセージの 定 義<br />

PPD : Parallel Poll Disable(パラレルポールの 設 定 解 除 )<br />

PPE : Parallel Poll Enable(パラレルポールの 設 定 )<br />

PPU : Parallel Poll Unconfigure(パラレルポール 用 設 定 の 解 除 )<br />

SDC : Selected Device Clear( 選 択 されたデバイスのクリア)<br />

SPD : Serial Poll Disable(シリアルポールの 設 定 解 除 )<br />

SPE : Serial Poll Enable(シリアルポールの 設 定 )<br />

TCT : Take Control(コントロールの 取 得 )<br />

UNL : Unlisten( 全 リスナの 解 除 )<br />

UNT : Untalk( 全 トーカの 解 除 )<br />

DCL : Device Clear(デバイスのクリア)<br />

GET : Group Execute Trigger(グループトリガ 実 行 )<br />

GTL : Go To Local(ローカルモードに 設 定 )<br />

LLO : Local Lockout(ローカルのロックアウト)<br />

MLA : My Listen Address(リスンアドレス)<br />

MSA : My Secondary Address(2 次 アドレス)<br />

MTA : My Talk Address(トーカアドレス)<br />

PPC : Parallel Poll Configure(パラレルポールの 設 定 )<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

222


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

第 5 章 サンプルプログラム<br />

サンプルプログラムには 実 行 形 式 のファイルが 付 属 していません。<br />

ソースコードをコンパイルして 実 行 ファイルを 生 成 してから、 動 作 させてください。<br />

●Visual C++の 場 合<br />

Visual C++(Visual Studio)を 起 動 し、「ファイル」メニューから「ワークスペースを 開 く」を 選 び、<br />

メイクファイル「*.mak」を 開 き、ビルドしてください。<br />

●Visual Basic の 場 合<br />

Visual Basic を 起 動 し、プロジェクトファイル「*.vbp」を 開 き、ビルドしてください。<br />

●Delphi の 場 合<br />

Delphi を 起 動 し、プロジェクトファイル「*.dpr」を 開 き、ビルドしてください。<br />

作 成 後 、「*.exe」を 起 動 してください。<br />

5.1 高 機 能 版 DLL<br />

以 下 、 高 機 能 版 DLL の 各 サンプルプログラムの 概 要 を 説 明 します。<br />

プログラム 名<br />

内 容<br />

Async_X(※) 非 同 期 送 受 信 を 行 います。<br />

Binary_X(※) バイナリデータの 送 受 信 を 行 います。<br />

Ctrl_X(※) 計 測 機 器 の 制 御 を 行 います。<br />

Device_X(※) 計 測 機 器 (YOKOGAWA7561、HP3245A)の 制 御 を 行 います。<br />

ManualOp_X(※) 関 数 の 手 動 実 行 を 行 います。<br />

MultiDevice_X(※) 複 数 機 器 の 制 御 を 行 います。<br />

csend<br />

コントローラの 送 信 を 行 います。<br />

creceive<br />

コントローラの 受 信 を 行 います。<br />

spoll<br />

シリアルポールを 行 います。<br />

tsend<br />

トーカ( 非 コントローラ)の 送 信 を 行 います。<br />

lreceive<br />

リスナ( 非 コントローラ)の 受 信 を 行 います。<br />

srq<br />

サービスリクエストを 行 います。<br />

※プログラム 名 の X は 各 言 語 により 異 なります (X = C:Visual C++, B:Visual Basic, D:Delphi)<br />

5.2 標 準 版 DLL<br />

以 下 、 標 準 版 DLL の 各 サンプルプログラムの 概 要 を 説 明 します。<br />

プログラム 名 内 容<br />

Ctrl_X2(※) 計 測 機 器 の 制 御 を 行 います。<br />

※プログラム 名 の X は 各 言 語 により 異 なります (X = C:Visual C++, B:Visual Basic, D:Delphi)<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

223


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

第 6 章 ユーティリティ<br />

以 下 、 各 ユーティリティの 概 要 を 説 明 します。<br />

6.1 動 作 確 認 プログラム<br />

6.1.1 GP-IB ユーティリティ<br />

GP-IB の 動 作 を 確 認 するための GUI プログラムを 用 意 しています。<br />

【 起 動 方 法 】<br />

付 属 ソフトウェアのインストール 完 了 後 、「スタート」メニューより「Interface <strong>GPC</strong>-<strong>4304</strong>」<br />

→「GP-IB ユーティリティプログラム」を 起 動 します。<br />

【メニュー】<br />

メニュー プルダウンメニュー 内 容<br />

ファイル ボードのオープン GP-IB <strong>インタフェース</strong>モジュールを 使 用 するためにオ<br />

ープンを 行 います。<br />

以 下 のような 設 定 用 ダイアログボックスが 表 示 されま<br />

すので、 オープンする<strong>インタフェース</strong>モジュールとア<br />

ドレスとデリミタを 選 択 し「OK」を 押 します。<br />

ボードのクローズ オープンされている GP-IB <strong>インタフェース</strong>モジュール<br />

をクローズします。<br />

アプリケーションの 終 了 GP-IB ユーティリティを 終 了 させます。<br />

編 集 バッファのクリア 送 信 データ 入 力 テキストボックス、 受 信 データ 表 示 テキ<br />

ストボックス、バスコマンド 入 力 ボックスをクリアしま<br />

す。<br />

ヘルプ バージョン 情 報 GP-IB ユーティリティのバージョン 情 報 を 表 示 します。<br />

【 画 面 の 説 明 】<br />

■GP-IB ステータス<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

224


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

ステータス<br />

CIC(Controller in Charge)<br />

ATN(Attention)<br />

TA(Talk Active)<br />

LA(Listen Active)<br />

REM(Remote)<br />

LOK(Lockout)<br />

SRQ(Service Request)<br />

説 明<br />

コントローラ・イン・チャージであることを 表 します。<br />

ATN ラインの 状 態 を 表 します。<br />

トーカであることを 表 します。<br />

リスナであることを 表 します。<br />

リモート 状 態 を 表 します。<br />

ロックアウト 状 態 を 表 します。<br />

SRQ ラインの 状 態 を 表 します。<br />

■ボードアドレス<br />

使 用 する<strong>インタフェース</strong>モジュールのアドレスを 表 します。<br />

2 次 アドレスを 使 用 しない 場 合 は、1 次 アドレスのみ 表 示 します。<br />

■IFC/REN ボタン<br />

IFC ボタン:IFC 信 号 を 100µs 送 出 します。<br />

REN ボタン:REN 信 号 の ON/OFF を 行 います。<br />

REN 信 号 が Assert 状 態 のとき 上 の LED が 点 灯 します。<br />

■モード 設 定<br />

ユーティリティのモードを 設 定 します<br />

MASTER モードのときのみ 有 効 です(MASTER モードへの 切 り 替 えはコントロールパネルで<br />

行 います)。<br />

モード<br />

説 明<br />

Data Send データ 送 信 を 行 います<br />

Data Receive データ 受 信 を 行 います<br />

Device Clear デバイスクリアを 行 います<br />

Device Trigger デバイストリガを 行 います<br />

Serial Poll シリアルポールを 行 います<br />

Bus Command バスコマンドを 送 信 します<br />

■データ 送 信 設 定<br />

送 信 セットアップを 行 います。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

225


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

「Pri.」ボックスに 接 続 機 器 の 1 次 アドレス、「2nd.」ボックスに 2 次 アドレスを 入 力 し「Exec」<br />

ボタンを 押 します。<br />

(2 次 アドレスがない 場 合 は「2nd.」ボックスには 何 も 入 力 しません)<br />

ボタンを 押 すと 送 信 モードに 切 り 替 わり、 送 信 データ 入 力 テキストボックスが 開 かれ、 設 定 し<br />

た 接 続 相 手 に 対 してデータの 送 信 が 行 えるようになります。<br />

「Exec」ボタンをもう 一 度 押 すと 送 信 データ 入 力 テキストボックスは 閉 じ 送 信 モードを 解 除 し<br />

ます。<br />

■データ 受 信 設 定<br />

受 信 セットアップを 行 います。<br />

「Pri.」ボックスに 接 続 機 器 の 1 次 アドレス、「2nd.」ボックスに 2 次 アドレスを 入 力 し「Exec」<br />

ボタンを 押 します。<br />

(2 次 アドレスがない 場 合 は「2nd.」ボックスには 何 も 入 力 しません)<br />

ボタンを 押 すと 受 信 モードに 切 り 替 わり、 受 信 データ 表 示 テキストボックスが 開 かれ、 設 定 し<br />

た 接 続 相 手 からデータの 受 信 が 行 えるようになります。<br />

「Exec」ボタンをもう 一 度 押 すと 受 信 データ 表 示 テキストボックスは 閉 じ 受 信 モードを 解 除 し<br />

ます。<br />

■デバイスクリア<br />

デバイスクリアコマンドを 送 信 します。<br />

「Pri.」ボックスに 送 信 する 接 続 機 器 の 1 次 アドレス、「2nd.」ボックスに 2 次 アドレスを 入 力<br />

し「Clear」ボタンを 押 します。<br />

(2 次 アドレスがない 場 合 は「2nd.」ボックスには 何 も 入 力 しません)<br />

■デバイストリガ<br />

デバイストリガコマンドを 送 信 します。<br />

「Pri.」ボックスに 送 信 する 接 続 機 器 の 1 次 アドレス、「2nd.」ボックスに 2 次 アドレスを 入 力<br />

し「Trigger」ボタンを 押 します。<br />

(2 次 アドレスがない 場 合 は「2nd.」ボックスには 何 も 入 力 しません)<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

226


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

■シリアルポール<br />

シリアルポールを 行 います。<br />

「Pri.」ボックスにシリアルポールを 行 う 接 続 機 器 の 1 次 アドレス、「2nd.」ボックスに 2 次 ア<br />

ドレスを 入 力 し「Serial Poll」ボタンを 押 します。<br />

(2 次 アドレスがない 場 合 は「2nd.」ボックスには 何 も 入 力 しません)<br />

機 器 から 受 信 した STB(Status Byte)は「STB」ボックスに 表 示 されます。<br />

■バスコマンド<br />

バスコマンドの 送 信 を 行 います。<br />

「Msg.」ボックス 列 にバスコマンドのコードを 16 進 数 で 入 力 していきま<br />

す( 最 大 10 バイト)<br />

「Send」ボタンで 入 力 したバスコマンドが 送 信 されます<br />

「Msg.」ボックス 内 でマウスを 右 クリックするとバスコマンドの 一 覧 が 表<br />

示 されます( 右 図 )<br />

メニューを 選 択 すると 該 当 するコードが「Msg.」ボックスに 入 ります。<br />

一 覧 表 示 されるバスコマンドは 以 下 のとおりです。<br />

バスコマンド<br />

コード<br />

GTL(Go to Local)<br />

01h<br />

SDC(Selected Device Clear) 04h<br />

GET(Group Execute 08h<br />

Trigger)<br />

LLO(Local Lockout) 11h<br />

DCL(Device Clear)<br />

14h<br />

MTA(My Talk Address) [ 弊 社 GP-IB <strong>インタフェース</strong>の 1 次 アドレス] + 40h<br />

[ 弊 社 GP-IB <strong>インタフェース</strong>の 2 次 アドレス](2 次 アドレス 設 定 時 )<br />

MLA(My Listen Address) [ 弊 社 GP-IB <strong>インタフェース</strong>の 1 次 アドレス] + 20h<br />

[ 弊 社 GP-IB <strong>インタフェース</strong>の 2 次 アドレス](2 次 アドレス 設 定 時 )<br />

TA(Talk Address)<br />

[ 接 続 機 器 の 1 次 アドレス(※)] + 40h<br />

[ 接 続 機 器 の 2 次 アドレス(※)](2 次 アドレス 設 定 時 )<br />

LA(Listen Address)<br />

[ 接 続 機 器 の 1 次 アドレス(※)] + 20h<br />

[ 接 続 機 器 の 2 次 アドレス(※)](2 次 アドレス 設 定 時 )<br />

※ 接 続 機 器 のアドレスは 以 下 のアドレス 入 力 用 ダイアログボックスで 入 力 します。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

227


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

■サービス 要 求<br />

SLAVE モードのときのみ 有 効 です(SLAVE モードへの 切 り 替 えはコントロールパネルで 行 い<br />

ます)<br />

「STB」ボックスに STB(Status Byte)を 入 力 し「Request」ボタンを 押 します。<br />

サービス 要 求 が 行 われ SRQ ラインが 有 効 になります。<br />

■ 送 信 データ 入 力 テキストボックス<br />

送 信 するデータを 入 力 します。<br />

リターンキーを 押 した 行 のデータを 接 続 機 器 に 対 して 送 信 します。<br />

■ 受 信 データ 表 示 テキストボックス<br />

受 信 したデータを 表 示 します。<br />

「Recv」ボタンを 押 すと 機 器 から 受 け 取 ったデータを 表 示 します<br />

「Rep.」チェックボックスにチェックを 入 れておくと、 連 続 してデータを 受 信 し 表 示 します。<br />

【 内 部 処 理 】<br />

GP-IB ユーティリティ 内 部 にて、どのように<strong>インタフェース</strong>モジュールの 制 御 を 行 っているか、<br />

その 概 略 を 説 明 いたします。<br />

1.メイン 処 理<br />

1) PciGpibExInitBoard 関 数 にて 初 期 化<br />

2) PciGpibExSetConfig 関 数 にてパラメータ 設 定<br />

→ここで<strong>インタフェース</strong>モジュールオープン 時 のデリミタ 設 定 が 行 われます。<br />

3) タイマをスタートさせる。<br />

→ 後 述 の「4.タイマルーチン」がバックグラウンドにて 常 時 動 作 している 状 態 となります。<br />

4) 入 力 待 ち<br />

→「Data Send」ボタン、「Data Receve」ボタンなどの 入 力 待 ちとなります。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

228


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

5) 押 されたボタンにより 処 理 を 選 択<br />

2.データ 送 信 (Data Send)<br />

1) 「Data Send Setup」にて 以 下 の 処 理 を 行 います。<br />

1.PciGpibExGoActCtrller 関 数 により、ATN をアサート(コマンドモードへ 遷 移 )<br />

2.PciGpibExWriteBusCmd 関 数 にて UNL、MTA、LA 送 信<br />

→UNL… 全 ての 機 器 のリスナ 指 定 を 解 除 (3Fh を 送 信 )<br />

MTA…<strong>インタフェース</strong>モジュール 自 身 をトーカ 指 定 (<strong>インタフェース</strong>モジュールのア<br />

ドレスが 0 ならば、40h を 送 信 )<br />

LA … 入 力 した 機 器 アドレスにより 機 器 をリスナ 指 定 ( 機 器 アドレスが 1 ならば、21h<br />

を 送 信 )<br />

3.PciGpibExGoStandby 関 数 により、ATN をデアサート(データモードへ 遷 移 )<br />

2) 送 信 入 力 ボックスが 開 きます。<br />

3) 送 信 入 力 ボックスへ 機 器 へ 送 信 したいデータを 入 力<br />

→ENTER キーを 押 すと、 次 のデータ 送 信 へ<br />

4) データ 送 信<br />

→PciGpibExSlavSendData 関 数 を 実 行 して、データ 送 信 を 行 います。<br />

3.データ 受 信 (Data Receive)<br />

1) 「Data Receive Setup」にて 以 下 の 処 理 を 行 います。<br />

1.PciGpibExGoActCtrlle r 関 数 により、ATN をアサート (コマンドモードへ 遷 移 )<br />

2.PciGpibExWriteBusCmd 関 数 にて UNL、MLA、TA 送 信<br />

→UNL… 全 ての 機 器 のリスナ 指 定 を 解 除 (3Fh を 送 信 )<br />

MLA…<strong>インタフェース</strong>モジュール 自 身 をリスナ 指 定 (<strong>インタフェース</strong>モジュールのア<br />

ドレスが 0 ならば、20h を 送 信 )<br />

TA … 入 力 した 機 器 アドレスより 機 器 をトーカ 指 定 ( 機 器 アドレスが 1 ならば、41h<br />

を 送 信 )<br />

3. PciGpibExGoStandby 関 数 により、ATN をデアサート (データモードへ 遷 移 )<br />

2) 受 信 データ 表 示 ボックスが 開 きます。<br />

→「Recv」ボタンを 押 した 場 合 には、3)へ<br />

→「Rep.」チェックボックスをチェックした 場 合 には、4)へ<br />

3) データ 受 信<br />

→PciGpibExSlavRecvData 関 数 を 実 行 して、データ 受 信 を 行 い、 表 示 します。<br />

4) 連 続 データ 送 信<br />

→データ 受 信 スレッドを 起 動 して、スレッド 内 にて 繰 り 返 し、PciGpibExSlavRecvData 関<br />

数 を 実 行<br />

→「Rep.」ボタンのチェックが 外 されるまで、スレッドが 動 作 し 続 けます。<br />

→ 受 信 バッファは、16384 バイトまでとなっており、バッファばフルになるまで 受 信 し 続<br />

けます。<br />

4.タイマルーチン<br />

1) 定 期 的 にタイマイベントが 発 生 してタイマルーチンが 呼 び 出 されています。<br />

→ 周 期 100ms<br />

2) タイマルーチンでは、PciGpibExGetStatus 関 数 を 呼 び 出 して、GP-IB Status の 更 新 を<br />

行 っています。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

229


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

6.2 自 己 診 断 プログラム<br />

本 製 品 には、 動 作 不 具 合 時 の 原 因 がハードウェア 的 なものか、ソフトウェア 的 なものかを 容 易 に 判 断<br />

するための 自 己 診 断 機 能 を 搭 載 しています。 診 断 プログラムを 用 いて 動 作 確 認 を 行 ってください。<br />

自 己 診 断 プログラムにより、 以 下 のことが 確 認 できます。<br />

●デバイスドライバがインストールされているか、また 正 常 にインストール 完 了 しているか<br />

●コンピュータと GP-IB <strong>インタフェース</strong>モジュールとの<strong>インタフェース</strong> 動 作 (レジスタアクセス,<br />

割 り 込 み 信 号 )<br />

自 己 診 断 プログラムが 正 常 に 動 作 すれば、システムの 不 具 合 の 原 因 を 以 下 の 要 因 に 絞 ることができま<br />

す。<br />

●GP-IB <strong>インタフェース</strong>モジュールの GP-IB <strong>インタフェース</strong> 部 分 の 故 障<br />

●GP-IB ケーブルの 破 損<br />

● 接 続 している GP-IB 機 器 の 動 作 不 具 合<br />

●アプリケーションプログラムの 不 具 合<br />

【 必 要 な 機 材 】<br />

・ 弊 社 GP-IB <strong>インタフェース</strong><br />

・ 自 己 診 断 プログラム(DiagGpib.exe)<br />

【 起 動 方 法 】<br />

1) PCI/CompactPCI ソフトウェアのインストール 完 了 後 、「スタート」メニューより「プログ<br />

ラム」-「Interface <strong>GPC</strong>-<strong>4304</strong>」-「DiagGpib」を 起 動 します。<br />

2) メニューの「ファイル」-「デバイスの 選 択 」を 選 択 すると、インストールされているデバイ<br />

スの 一 覧 が 表 示 されます。その 中 から、 使 用 したいデバイスを 選 択 し、「OK」ボタンをクリ<br />

ックします。<br />

<strong>インタフェース</strong>モジュールの 一 覧 表 示 に、 対 象 の<strong>インタフェース</strong>モジュールが 見 つからない<br />

場 合 は、 以 下 のことが 考 えられます。<br />

● デバイスドライバが 正 常 にインストールされていない。<br />

● コンピュータの BIOS や、Windows によって、GP-IB <strong>インタフェース</strong>モジュールが 正 し<br />

く 初 期 化 されていない。<br />

● GP-IB <strong>インタフェース</strong>モジュールの 故 障 。 弊 社 カスタマーサポートセンタまでお 問 い 合<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

230


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

わせください。<br />

検 査 を 行 う<strong>インタフェース</strong>モジュールを 選 択 すると、 画 面 に、 型 式 名 、RSW1 の 設 定 値 、I/O<br />

ポート(またはメモリ)ベースアドレス、IRQ 番 号 が 表 示 されます。<br />

コントロールパネル「Interface GP-IB Configuration」の 設 定 で、<strong>インタフェース</strong>モジュー<br />

ルの 動 作 モードは、 必 ず「MASTER」にしてください。「SLAVE」にすると 正 しく 診 断 で<br />

きません。<br />

複 数 枚 使 用 する 場 合 には、RSW1 の 設 定 値 を<strong>インタフェース</strong>モジュール 毎 で 異 なる 値 に 設 定<br />

してください。<br />

※このユーティリティで 同 時 に 複 数 のデバイスをオープンすることはできません。<br />

※GP-IB 製 品 を 複 数 枚 使 用 する 場 合 には、RSW1 の 設 定 値 を<strong>インタフェース</strong>モジュールごとで<br />

異 なる 値 に 設 定 してください。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

231


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

【 診 断 方 法 】<br />

1) メニューの「 診 断 」-「 診 断 開 始 」を 選 択 します。<br />

2) 診 断 開 始 のダイアログボックスが 表 示 されますので、<strong>インタフェース</strong>モジュールにケーブル<br />

が 挿 さっていないことを 確 認 して、OK ボタンをクリックします。<br />

3) 自 動 的 に 各 項 目 の 診 断 が 行 われ、 結 果 が 表 示 されます。<br />

4) 診 断 結 果 が「NG」の 場 合 には、メニューから「ファイル」-「 結 果 の 保 存 」で 診 断 結 果 を 印<br />

刷 してください。<br />

その 診 断 結 果 とともに 弊 社 カスタマーサポートセンタまでお 問 い 合 わせください。<br />

※ 動 作 モードが「MASTER」であること、ケーブルが 接 続 されていないことを 確 認 のうえ、<br />

問 い 合 わせ 頂 くようお 願 いいたします。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

232


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

第 7 章 重 要 な 情 報<br />

保 証 の 内 容 と 制 限<br />

弊 社 は 本 ドキュメントに 含 まれるソースプログラムの 実 行 が 中 断 しないこと、またはその<br />

実 行 に 誤 りが 無 いことを 保 証 していません。<br />

本 製 品 の 品 質 や 使 用 に 起 因 する、 性 能 に 起 因 するいかなるリスクも 使 用 者 が 負 うものとし<br />

ます。<br />

弊 社 はドキュメント 内 の 情 報 の 正 確 さに 万 全 を 期 しています。 万 一 、 誤 記 または 誤 植 など<br />

があった 場 合 、 弊 社 は 予 告 無 く 改 訂 する 場 合 があります。ドキュメントまたはドキュメン<br />

ト 内 の 情 報 に 起 因 するいかなる 損 害 に 対 しても 弊 社 は 責 任 を 負 いません。<br />

ドキュメント 内 の 図 や 表 は 説 明 のためであり、ユーザ 個 別 の 応 用 事 例 により 変 化 する 場 合<br />

があります。<br />

著 作 権 、 知 的 所 有 権<br />

弊 社 は 本 製 品 に 含 まれるおよび 本 製 品 に 対 する 権 利 や 知 的 所 有 権 を 保 持 しています。<br />

本 製 品 はコンピュータ ソフトウェア、 映 像 / 音 声 ( 例 えば 図 、 文 章 、 写 真 など)を 含 んでいま<br />

す。<br />

医 療 機 器 / 器 具 への 適 用 における 注 意<br />

弊 社 の 製 品 は 人 命 に 関 わるような 状 況 下 で 使 用 される 機 器 に 用 いられる 事 を 目 的 として 設<br />

計 、 製 造 された 物 では 有 りません。<br />

弊 社 の 製 品 は 人 体 の 検 査 などに 使 用 するに 適 する 信 頼 性 を 確 保 する 事 を 意 図 された 部 品 や<br />

検 査 機 器 と 共 に 設 計 された 物 では 有 りません。<br />

医 療 機 器 、 治 療 器 具 などの 本 製 品 の 適 用 により、 製 品 の 故 障 、ユーザ、 設 計 者 の 過 失 など<br />

により、 損 傷 / 損 害 を 引 き 起 こす 場 合 が 有 ります。<br />

複 製 の 禁 止<br />

弊 社 の 許 可 なく、 本 ドキュメントの 全 て、または 一 部 に 関 わらず、 複 製 、 改 変 などを 行 う<br />

ことはできません。<br />

責 任 の 制 限<br />

弊 社 は、 弊 社 または 再 販 売 者 の 予 見 の 有 無 にかかわらず 発 生 したいかなる 特 別 損 害 、 偶 発<br />

的 損 害 、 間 接 的 な 損 害 、 重 大 な 損 害 について、 責 任 を 負 いません。<br />

本 製 品 (ハードウェア,ソフトウェア)のシステム 組 み 込 み、 使 用 、ならびに 本 製 品 から 得 ら<br />

れる 結 果 に 関 する 一 切 のリスクについては、 本 製 品 の 使 用 者 に 帰 属 するものとします。<br />

本 製 品 に 含 まれるバグ、あるいは 本 製 品 の 供 給 ( 納 期 遅 延 )、 性 能 もしくは 使 用 に 起 因 する<br />

付 帯 的 損 害 もしくは 間 接 的 損 害 に 対 して、 弊 社 に 全 面 的 に 責 がある 場 合 でも、 弊 社 はその<br />

製 品 に 対 する 改 良 ( 正 常 に 動 作 する)、 代 品 交 換 までとし、 金 銭 面 での 賠 償 の 責 任 は 負 わな<br />

いものとしますので、 予 めご 了 承 ください。<br />

本 製 品 (ソフトウェアを 含 む)は、 日 本 国 内 仕 様 です。 本 製 品 を 日 本 国 外 で 使 用 された 場<br />

合 、 弊 社 は 一 切 責 任 を 負 いかねます。また、 弊 社 は 本 製 品 に 関 し、 海 外 での 保 守 サービス<br />

および 技 術 サポート 等 は 行 っておりません。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

233


<strong>GPC</strong>-<strong>4304</strong> Help for Windows<br />

商 標 / 登 録 商 標<br />

本 書 に 掲 載 されている 会 社 名 、 製 品 名 は、それぞれ 各 社 の 商 標 または 登 録 商 標 です。<br />

© 1997, 2014 Interface Corporation. All rights reserved.<br />

234

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!