gpc-2000 - interface...delphi eventex pci-2162, ctp-2162, cpz-294188用...

333
DIO(PCI/C-PCI) www.interface.co.jp GPC-2000 デジタル入出力インタフェースモジュール用 Windows ドライバ Help for Windows

Upload: others

Post on 20-Apr-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

DIO(PCI/C-PCI)

www.interface.co.jp

GPC-2000 デジタル入出力インタフェースモジュール用 Windows ドライバ

Help for Windows

Page 2: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

2

目 次

第 1 章 はじめに 3

1.1 概要 ...........................................................................3

1.2 特長 ...........................................................................3

第 2 章 製品仕様 4

2.1 基本仕様 .......................................................................4

2.2 製品構成 .......................................................................5

第 3 章 導入方法 7

3.1 インストール手順 ...............................................................7

3.2 実行手順 .......................................................................7

3.3 インタフェースモジュール固有情報 ..............................................12

第 4 章 リファレンス 30

4.1 関数一覧 ......................................................................30

4.2 関数個別説明 ..................................................................34

4.3 コールバック関数 .............................................................291

4.4 構造体説明 ...................................................................293

4.5 戻り値一覧 ...................................................................295

第 5 章 サンプルプログラム 297

5.1 InBack .......................................................................297

5.2 InPoint ......................................................................298

5.3 OutBack ......................................................................299

5.4 OutPoint .....................................................................300

5.5 WatchBack ....................................................................301

5.6 HndShk .......................................................................302

5.7 Event ........................................................................303

5.8 EventEx ......................................................................304

5.9 EintPoint ....................................................................305

5.10 InputByte ....................................................................306

5.11 OutputByte ...................................................................307

5.12 EventCheck ...................................................................308

5.13 プログラム例 .................................................................309

第 6 章 ユーティリティ 312

6.1 DI入力ユーティリティ .........................................................312

6.2 DO出力ユーティリティ .........................................................312

6.3 自己診断プログラム ...........................................................314

6.4 カードバスID設定ユーティリティ ...............................................332

第 7 章 重要な情報 333

Page 3: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

3

第1章 はじめに

1.1 概要 GPC-2000 は、Windows 上のアプリケーションから、弊社デジタル入出力製品を制御する為のソフ

トウェアです。

弊社デジタル入出力製品を Windows 上のアプリケーションから DLL をダイナミックリンクし、API

をコールすることにより制御します。

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

1.2 特長 ●階層化ドライバと各種統一、共通化により、DLL レベルでインタフェースモジュールの型式を

意識する必要がありません。(インタフェースモジュール固有機能は除く)。

●BYTE、WORD、DWORD 単位の入出力ができます。

●任意の接点数での入出力ができます。

●STB/ACK 制御信号を使用したハンドシェーク入出力ができます。

●インタフェースモジュールからの割り込み発生時およびインターバルタイマにて、ユ-ザアプ

リケーションにイベントを通知できます。

●パルス出力(PULS.OUT1、PULS.OUT2)を行うことができます。(型式により仕様が異なります。)

●付属の自己診断プログラムにより動作不具合時の原因がハードウェア的なものかソフトウェア

的なものか容易に判断することができます。また付属のユーティリティプログラムによりプロ

グラムを作成することなしにインタフェースモジュールの基本的な動作を行うことができます。

●機能や使い方を説明するヘルプ(Help.pdf)をサポートしていますので、開発中に関数の詳細

説明など、簡単に参照することができます。

●各種 64 ビット OS に対応しています。

Page 4: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

4

第2章 製品仕様

2.1 基本仕様 大デバイス数 255 デバイス(複数型式)

ただし、同一型式は 16 枚まで

制御信号

(ご使用のインタフェースモジ

ュールのタイプにより存在しな

い信号がございます。インタフ

ェースモジュールの USER'S

MANUAL にて仕様をご確認くださ

い)

(STB、ACK)による同期入出力

入力用制御信号 STB1、ACK1 と出力用制御信号 STB2、ACK2 を

使用し外部回路と同期をとりながらデータを入出力すること

ができます。

また、信号 STB1 により入力データをラッチ(保持)し、取り

込むことができます。

制御信号を用いた入出力信号の動作は、インタフェースモジュ

ールの USER’S MANUAL を参照してください。

割り込み機能

(ご使用のインタフェースモジ

ュールのタイプにより存在しな

い信号がございます。インタフ

ェースモジュールの USER'S

MANUAL にて仕様をご確認くださ

い)

割り込みが発生した場合に、アプリケーションにイベントにて

通知することができます。

本 DLL は、以下の割り込み要因によりイベントをシグナル状態

とします。

・IN1 からの入力信号または、STB1 からの入力信号

・IN2 からの入力信号または、IR.IN1(外部割り込み入力信号)

からの入力信号

・IN3 からの入力信号または、ACK2 からの入力信号

・IN4 からの入力信号または、IR.IN2(外部割り込み入力信号)

からの入力信号

・インターバルタイマ割り込み

・外部リセット入力(RSTIN)割り込み

※割り込み要因は本 DLL の関数にて変更します。

割り込みマスク機能 割込み要因毎にマスク設定/マスク解除することができます。

インターバルタイマ機能 指定した周期で割込みを発生させることができます。(10ms

~1500ms)

Windows では 10ms より短い周期(9ms など)でインターバルタ

イマ割り込みを使用するとアプリケーションが処理しきれず

フリーズした状態に陥りますので 10ms より短い周期でインタ

ーバルタイマ割り込みを使用することはできません。

ただし、負荷の大きいアプリケーションにおいては 10ms 以上

の周期で使用してもフリーズしてしまうことがあるため、上記

の数値はあくまでも通常の状態(他のアプリケーションが動作

していない状態など)での目安です。

周期は Windows システムの動作の影響を受けるため、誤差が生

じることをご了承ください。

外部リセット入力(RSTIN)機能 本インタフェースモジュールに対して外部からリセットをか

けるための入力です。出力やインタフェースモジュールの各設

定値をリセットすることができます。インターバルタイマも停

止します。

Page 5: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

5

2.2 製品構成 製品構成 ファイル名 説明

弊社管理用ファイル GPC2000.VER 弊社ソフト管理用ファイル

新情報ドキュメント README.HTM 新ドキュメント掲載ファイル

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

自己診断プログラム DIAGDIO.EXE 自己診断プログラム

サンプルプログラム

IFCDIO Visual C# .NET 用クラスライブラリ

INPOINT Visual C# .NET 用入力サンプルプログラム

Visual C# .NET

OUTPOINT Visual C# .NET 用出力サンプルプログラム

INPOINT 入力サンプルプログラム

OUTPOINT 出力サンプルプログラム

INBACK バックグランド入力サンプルプログラム

OUTBACK バックグランド出力サンプルプログラム

WatchBack バックグランド監視サンプルプログラム

HndShk ハンドシェーク入出力サンプルプログラム

Event 割り込みサンプルプログラム

EintPoint PCI-2162, CTP-2162, CPZ-294188 用

ラッチ入力サンプルプログラム

EventEx PCI-2162, CTP-2162, CPZ-294188 用

割り込みサンプルプログラム

InputByte 入力サンプルプログラム(マニュアル記載)

OutputByte 出力サンプルプログラム(マニュアル記載)

Visual C++

EventCheck 割り込みサンプルプログラム(マニュアル記載)

IFCDIO Visual Basic .NET 用クラスライブラリ

INPOINT Visual Basic .NET 用入力サンプルプログラム

Visual Basic .NET

OUTPOINT Visual Basic .NET 用出力サンプルプログラム

INPOINT 入力サンプルプログラム

OUTPOINT 出力サンプルプログラム

INBACK バックグランド入力サンプルプログラム

OUTBACK バックグランド出力サンプルプログラム

WatchBack バックグランド監視サンプルプログラム

HndShk ハンドシェーク入出力サンプルプログラム

Event 割り込みサンプルプログラム

EintPoint PCI-2162, CTP-2162, CPZ-294188 用

ラッチ入力サンプルプログラム

EventEx PCI-2162, CTP-2162, CPZ-294188 用

割り込みサンプルプログラム

InputByte 入力サンプルプログラム(マニュアル記載)

OutputByte 出力サンプルプログラム(マニュアル記載)

Visual Basic

EventCheck 割り込みサンプルプログラム(マニュアル記載)

Page 6: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

6

INPOINT 入力サンプルプログラム

OUTPOINT 出力サンプルプログラム

INBACK バックグランド入力サンプルプログラム

OUTBACK バックグランド出力サンプルプログラム

WatchBack バックグランド監視サンプルプログラム

HndShk ハンドシェーク入出力サンプルプログラム

Event 割り込みサンプルプログラム

EintPoint PCI-2162, CTP-2162, CPZ-294188 用

ラッチ入力サンプルプログラム

Delphi

EventEx PCI-2162, CTP-2162, CPZ-294188 用

割り込みサンプルプログラム

DIUTIL.EXE DI 入力ユーティリティ ユーティリティ

DOUTIL.EXE DO 出力ユーティリティ

FBIDIO.DLL ダイナミックリンクライブラリファイル

FBIDIO.LIB インポートライブラリファイル

FBIDIO.H ヘッダファイル

DLL

MSVCRT.DLL C ランタイム共有 DLL

CP2000.SYS

CP2000U.SYS

CP1513.SYS

CP1519.SYS

Windows 2000 以降用ドライバ

GPC2XXX.INF

(製品型式毎)

Windows 2000 以降用ドライバインストールファイ

GPC2XXX.SLD

(製品型式毎)

Windows Embedded 用ドライバ SLD ファイル

CP2000.SYS Windows NT 4.0 用ドライバ

GPC2XXX.INF

(製品型式毎)

Windows NT 4.0 用ドライバ インストールファイ

CP2000.VXD Windows Me/98/95 用ドライバ

デバイスドライバ

GPC2XXX.INF

(製品型式毎)

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

イル

FBIDIO.H Visual C++用ヘッダファイル

FBIDIO.BAS Visual Basic 用ヘッダファイル

ヘッダファイル

FBIDIO.PAS Delphi 用ヘッダファイル

オンラインヘルプ HELP.PDF オンラインヘルプ(PDF 形式)

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

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

Page 7: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

7

第3章 導入方法

3.1 インストール手順

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

3.1.1 CBI/CSI シリーズの複数枚使用

CBI/CSIシリーズの同一型式を複数枚使用する場合、ドライバインストール後に カードバスID

設定ユーティリティを使用して、カード毎に異なるID番号を設定します。このID番号によりそ

れぞれのカードを識別して下さい。

3.2 実行手順

同一型式を複数枚使用する場合は、

・CompactPCI, PCI 製品の場合、インタフェースモジュール上のロータリスイッチの設定値

・CardBus 製品の場合、CardBus ID の設定値

が同一型式同士で重複しないように設定してからスロットに実装し、システムを起動して下さい。

同一型式が複数存在する場合、制御対象を一意に識別するための番号となります。重複していた

場合、本ソフトウェアは正常に動作いたしません。

CardBusシリーズにつきましては、カードバスID設定ユーティリティで設定したIDがインタフェー

スモジュールIDとして取得されます。

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

3.2.1 初期化

インタフェースモジュールを DioOpen関数で初期化します。

DeviceHandle = DioOpen( "FBIDIO1", 0 );

デバイス名(FBIDIO1)を指定して初期化を行います。このデバイス名はドライバによって一意に

設定されます。

FBIDIO1、FBIDIO2、・・・、FBIDIO255

デバイス名はインタフェースモジュール上のロータリスイッチ(RSW1)の値で決定されるわけで

はありません。

デバイス名は使用するインタフェースモジュール枚数やスロット位置の変更等でシステム構成が

変化すると割り当てられる名前が変化する場合があります。システム構成が変化する環境でご使

用になる場合は、デバイス名の指定が変更できるようにアプリケーションを作成ください。イン

タフェースモジュール上に実装されたRSW1(インタフェースモジュールID設定)の値を取得し、

アプリケーションで目的のインタフェースモジュールであるかを判断することができます。詳し

くは、DioCommonGetPciDeviceInfo関数の説明をご参照ください。

Page 8: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

8

初期化が正常終了すると上記の記述例では DeviceHandle にデバイスハンドルが返されます。デバ

イスハンドルとは、デジタル入出力デバイスを一意に識別するもので、下記以降の関数コールの

際に指定します。

複数のデジタル入出力デバイスを使用する場合は、DioOpen関数を各インタフェースモジュールに

対してコールし、それぞれ対応するデバイスハンドルを取得する必要があります。

別々のプロセスから同一のデジタル入出力デバイスを初期化(使用)することが可能です。これ

により別々のプロセス間で一枚のデジタル入出力デバイスを共有することが可能です。

一枚のインタフェースモジュールを複数アプリケーションで共有する場合、出力データ、割り込

み設定、マスク設定等は 後に設定を行った値となります。(アプリケーション毎に設定は保持さ

れません)

複数アプリケーションで同時に一枚のインタフェースモジュールを制御する場合、出力データ及

び、インタフェースモジュールの設定は整合性を保てるようにアプリケーション間で調整を行っ

てください。

初期化したデジタル入出力デバイスはアプリケーション終了の際には必ず終了処理(DioClose関

数)を行ってください。

3.2.2 出力

DioOutputByte関数, DioOutputWord関数, DioOutputDword関数を使用してインタフェースモジュ

ールの指定した接点の出力を 8点、16 点、32 点単位で制御します。

DioOutputByte( DeviceHandle, FBIDIO_IN1_8, 0x12 );

DioOutputWord( DeviceHandle, FBIDIO_IN1_16, 0x1234 );

DioOutputDword( DeviceHandle, FBIDIO_IN1_32, 0x12345678 );

DioOutputPoint関数では任意の接点から任意の点数の接点をINT型配列で設定したデータで制御

を行うことが可能です。

DioOutputPoint( DeviceHandle, &Buffer[0], 16, 8 );

3.2.3 入力

DioInputByte関数, DioInputWord関数, DioInputDword関数を使用してインタフェースモジュール

の指定した接点のデータを 8点、16 点、32 点単位で取り出します。

DioInputByte( DeviceHandle, FBIDIO_IN1_8, &ByteValue );

DioInputWord( DeviceHandle, FBIDIO_IN1_16, &WordValue );

DioInputDword( DeviceHandle, FBIDIO_IN1_32, &DwordValue );

DioInputPoint関数では任意の接点から任意の点数のデータをINT型配列に格納することができま

す。

DioInputPoint( DeviceHandle, &Buffer[0], 16, 8 );

Page 9: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

9

3.2.4 タイマ・制御信号の制御

DioSetTimerConfig関数、DioGetTimerConfig関数、DioGetTimerCount関数を使用してインタフェ

ースモジュール上に搭載されたタイマを直接使用することができます。

ただし、バックグランド処理でインタフェースモジュールに搭載されたタイマを使用している場

合、これらの関数は使用できません。

DioGetAckStatus関数、DioSetAckPulseCommand関数、DioGetStbStatus関数、

DioSetStbPulseCommand関数を使用してSTB、ACK信号、PULS.OUT端子等を直接制御することができ

ます。

また、DioGetResetInStatus関数で外部リセット入力端子の状態を取得することができます。

3.2.5 割り込み

DioEventRequestPending関数・DioEventRequestPendingEx関数にて各種割り込みイベントを待つ

ことができます。

DioEventRequestPending関数・DioEventRequestPendingEx関数にて割り込みイベントを待つ前に

下記の関数にて設定、アンマスクが必要です。

DioSetIrqMask関数、DioGetIrqMask関数、DioSetIrqConfig関数、DioGetIrqConfig関数にて割り

込みイベントの設定、アンマスクを制御します。

また、発生した割り込みイベントはドライバ内のバッファに格納されており、

DioSetEventRequestMode関数にて、割り込みイベントのバッファリング設定を変更することがで

きます。

デフォルトではバッファリングが有効になっているため、 初に DioEventRequestPending関数を

実行した後は、ドライバ内のバッファに割り込みイベントが保存される状態となります。

(モードの詳細については「DioSetEventRequestMode」の説明を参照ください。)

3.2.6 バックグランド処理

バックグランド関数は、処理回数を指定することにより定期的に指定した間隔で処理を繰り返す

関数です。一定時間ごとに入出力関数をコールして実現する処理をバックグランド関数 1 度のコ

ールにより実現できます。

バックグランド処理には、バックグランド入力 DioInputPointBack関数、バックグランド出力

DioOutputPointBack関数、バックグランド監視 DioWatchPointBack関数を用意しております。

DioGetBackGroundUseTimer関数、DioSetBackGroundUseTimer関数にてバックグランド処理をイン

タフェースモジュールに搭載されているのタイマを使用するかパソコンのタイマ(OSが提供する

タイマサービス)を使用するかの設定ができます。インタフェースモジュール上のタイマを使用

した方が時間精度が良くなります。ただし、インタフェースモジュール上に搭載されたタイマを

使用することができるのは同時に 32 個のバックグランド処理までです。バックグランド処理が

32 個以上になるとパソコンのタイマを使用します。

Page 10: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

10

バックグランド処理を行うには、 初に DioSetBackGround関数にて処理を行う接点等の設定を行

いバックグランド処理ハンドルを取得します。そのバックグランド処理ハンドルを指定してバッ

クグランド処理を開始します。一つのバックグランド処理ハンドルを同時に複数のバックグラン

ド処理関数に指定することはできません。

DioSetBackGround関数を複数回コールすることにより、同一または重複した接点に対して別々に

バックグランド処理ハンドルを取得することができますので、同一接点に対して同時に複数のバ

ックグランド処理を動作させることが可能です。

バックグランド処理は DioStopBackGround関数にて途中で停止できます。

バックグランド処理ハンドルは必要なくなった場合、必ず DioFreeBackGround関数で解放する必

要があります。

DioGetBackGroundStatus関数でバックグランド処理の状態を取得できます。

3.2.7 インタフェースモジュールの設定等

DioSetLatchStatus関数、DioGetLatchStatus関数にて入力データラッチ機能の設定ができます。

STB1 信号によるデータラッチ(保持)機能をサポートしているインタフェースモジュールで使用

できます。

DioGetDeviceConfig関数にてインタフェースモジュールがサポートしている機能の情報を取得し

ます。

3.2.8 ハンドシェーク入出力

DioGetInputHandShakeConfig関数、DioSetInputHandShakeConfig関数、

DioGetOutputHandShakeConfig関数、DioSetOutputHandShakeConfig関数にてハンドシェーク入力、

及び出力処理の設定を行います。

入力、及び出力データの有効/無効マスクの設定、STB、ACK 信号の論理の設定等を行います。電

源 ON 時はデータがすべて無効に設定されています。すべての入力データが 0となり、出力接点の

状態は変化しませんのでハンドシェーク入出力処理を行う前に必ず設定を行ってください。

DioInputHandShake関数、DioInputHandShakeEx関数(Windows 2000/NT以降)にてハンドシェーク

入力を開始します。

DioOutputHandShake関数、DioOutputHandShakeEx関数(Windows 2000/NT以降)にてハンドシェー

ク出力を開始します。

ハンドシェーク入出力の停止は DioStopInputHandShake関数、DioStopOutputHandShake関数で可

能です。

DioGetHandShakeStatus関数にてハンドシェーク入出力の状態を取得できます。

Page 11: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

11

DioSetTimeOut関数、DioGetTimeOut関数にてハンドシェーク入出力のタイムアウト時間を指定し

ます。電源ON時のデフォルトではタイムアウトは無し(0msec)に設定されています。

3.2.9 終了処理

DioClose関数でインタフェースモジュールの終了処理を行います。

DioClose( DeviceHandle );

非同期処理関数について

バックグランド処理、ハンドシェーク入出力、割り込みイベント待ちの関数はオーバーラップ構

造体を指定することで非同期(処理完了前に制御が戻ります)で動作させることが可能です。

Win32 API の CreateEvent、WaitForSingleObject 関数を使用することによりイベント待ち処理を

行うことができます。CreateEvent、WaitForSingleObject 関数の使用方法は Microsoft 社提供の

Win32 API リファレンス等をご参照ください。

Page 12: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

12

3.3 インタフェースモジュール固有情報 本ソフトウェアは、弊社PCI/CompactPCIデジタル入出力デバイスに共通なソフトウェアですが、下記

に示すインタフェースモジュールについてはインタフェースモジュール固有の使用方法、または専用の

関数が用意されています。

3.3.1 PCI-2470 固有情報

■ PCI-2470 固有の機能

1.過電圧、過熱、負荷ショート時の異常検出機能

8 点の出力端子の制御は、DioInputByte関数、DioInputPoint関数で行います。

PCI-2470 は過電圧時、過熱、負荷ショート時に異常を検出できます。

異常が発生しているかどうかは、DioInputByte関数、DioInputWord関数、DioInputDword関数で取

得します。

また、異常検出時に割込みを発生させることが可能です。OUT1~OUT8 それぞれに、DioOutputByte

関数、DioOutputWord関数、DioOutputDword関数で割込みのマスク設定が可能です。

OUT1~OUT8 の異常検出信号のうち、非マスク状態の信号が OR されて一つの割込みイベントとし

て、発生します。

ORされた異常検出信号割込みのマスク設定は DioSetIrqMask関数で設定します。

異常検出時の割込みを取得する手順は以下のようになります。

・DioOutputByte関数、DioOutputWord関数、DioOutputDword関数で異常検出を行う出力端子のマ

スク設定を行います。

・DioSetIrqMask関数でORされた異常検出で割込みを発生される為のマスク設定を行います。

・DioEventRequestPending関数で割込み発生を待ちます。

※割込み発生待ちを非同期で行うには、CreateEvent 関数、WaitForSingleObject 関数等の

Win32API の知識が必要です。

異常を検出した場合は、異常を検出した OUT 端子を OFF します。

・どのOUT端子が異常を検出したかを DioInputByte関数で取得します。

・異常を検出したOUT端子を DioOutputByte、DioOutputPoint関数でOFFにします。

・異常検出時に行う任意の処理を開始します。

Page 13: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

13

2.汎用入力 1点

汎用入力端子が 1点あります。(USER'S MANUAL のピンアサインメントでの信号名は-IN端子です。

+IN 端子が電源です。)

汎用入力端子の状態は、DioInputByte関数、DioInputWord関数、DioInputDword関数で行います。

その場合は接点端子名の指定が、他のDIOデバイスのIN25 に対応します。

DioInputPoint関数で入力接点IN25 を指定しても入力できます。

詳しくは下記の対応表をご参照ください。

3.出力状態の読み込み可能

出力状態を読み込むことができます。実際に接点が ON しているか、OFF しているかの確認に使用

します。

関数は、DioInputByte関数、DioInputWord関数、DioInputDword関数を使用します。

DioInputPoint関数で入力接点IN1 からIN8 を指定しても同様です。

■ 各関数説明で使用する信号名と、PCI-2470 固有機能割り当ての対応表

本ソフトウェアの関数説明では、弊社 PCI/CompactPCI バス用 DIO デバイスで共通に使用される信

号名で説明している箇所があります。

PCI-2470 では、それらの信号名に対応するデータの意味が他の DIO デバイスと違います。

下記に対応表を示します。

・出力信号

各関数説明で使用する信号名 PCI-2470 で対応する信号

OUT1~OUT8 OUT1~OUT8 の出力

OUT9~OUT16 未使用

OUT17~OUT24 OUT1~OUT8 の異常検出割込みマスク設定

OUT25~OUT64 未使用

・入力信号

各関数説明で使用する信号名 PCI-2470 で対応する信号

IN1~IN8 OUT1~OUT8 の出力状態読み込み

IN9~IN16 OUT1~OUT8 の診断信号読み込み

IN17~IN24 OUT1~OUT8 の異常検出割込みマスク設定状態読み込み

IN25 汎用入力 -IN の状態読み込み(+IN 端子が電源)

IN26~IN64 未使用

Page 14: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

14

3.3.2 PCI-2162, CTP-2162, CPZ-294188 固有情報

PCI-2162, CTP-2162, CPZ-294188 のエッジ検出機能と、各関数による設定は、次のような関係に

なっています。

DioInputPoint関数, DioInputByte関数, DioInputWord関数, DioInputDword関数は、現在の入力

状態をそのまま読み取ることができます。

PCI-2162, CTP-2162, CPZ-294188 には、エッジ検出回路が搭載されています。

DioEintInputPoint関数, DioEintInputByte関数, DioEintInputWord関数, DioEintInputDword関

数は、現在の入力状態ではなく、エッジ検出回路が検出したエッジ検出データを読み取ることが

できます。入力にエッジが存在した場合、PCI-2162, CTP-2162, CPZ-294188 はそのデータを保持

しています。

エッジ検出を行うためには、DioEintSetEdgeConfig関数, DioEintSetEdgeConfigEx関数により、

Page 15: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

15

エッジ検出マスク解除し、エッジ検出を有効としなければなりません。

PCI-2162, CTP-2162, CPZ-294188のエッジ検出回路には、デジタルフィルタが付加されています。

デジタルフィルタは、一定時間より短い幅のパルスをカットします。入力のチャタリングやノイ

ズを除去する目的に利用することが出来ます。

エッジ検出回路は、このデジタルフィルタを通した入力信号に対してエッジ検出を行います。

カットするパルス幅は、DioEintSetFilterConfig関数のパラメータFilterConfigで設定します。

デジタルフィルタを設定すると、設定したフィルタ時間の遅れが発生します。

PCI-2162, CTP-2162, CPZ-294188 が保持しているエッジ検出データは、次のいずれかの条件を満

たしたときにクリアされます。

・DioEintInputPoint関数, DioEintInputByte関数, DioEintInputWord関数,

DioEintInputDword関数で、読み込みを行った接点のデータがクリアされます。

・DioEintSetEdgeConfig関数が実行されたとき、IR1~IR32 の接点の情報がクリアされます。

・DioEintSetEdgeConfigEx関数が実行されたとき、パラメータNoで指定した接点の情報がクリア

されます。

・DioEintSetFilterConfig関数を実行したとき、パラメータNoで指定したデジタルフィルタ設定

を行った接点の情報がクリアされます。

・DioEintSetIrqMask関数, DioEintSetIrqMaskEx関数によりエッジ検出割り込みが許可されてい

る場合は、割り込み発生と同時にクリアされます。

Page 16: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

16

3.3.3 LPC-251100, PEX-251100 固有情報

LPC-251100, PEX-251100 は入力 4点/出力 4点の入出力機能を持ちますが、各関数による制御を

行う際は入力 8点/出力 8点のデバイスとして扱われます。

DioInputByte関数や DioOutputByte関数を実行する際には、1Byteデータの下位 4bitを使用して入

出力の制御を行います。

上位 4bit に関しては、入出力を実行しても関数エラーは発生しませんが、制御自体は行われませ

ん。

3.3.4 PCI-2798C 固有情報

PCI-2798C は OUT1~OUT64 / ACK / STB の出力の同期を行ないます。たとえば、OUT1~OUT8 の出

力設定中、OUT9~OUT16 の出力を行なった場合、OUT1~OUT8 の出力設定が完了してから、OUT9~

OUT16 への出力設定を行ないます。

出力設定が同時となった場合、関数エラーは発生しませんが、出力が正常に行なわれない可能性

があるため、排他をとった制御を行なうようにして下さい。

Page 17: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

17

3.3.5 128 点 DIO 製品の固有情報

下記型式の製品(128 点 DIO 製品)は、128 点の入力、出力または入出力機能を持ちます。

・PCI-225020, PEX-H225020 (DI128 点)

・PCI-235002, PEX-H235002 (DO128 点)

・PCI-285011, PEX-H285011 (DI64 点, DO64 点)

・PCI-224020, PEX-H224020 (DI128 点)

・PCI-234002, PEX-H234002 (DO128 点)

・PCI-284011, PEX-H284011 (DI128 点)

・PCI-291022, PEX-H291022 (DI64 点, DO64 点)

・PCI-292022, PEX-H292022 (DIO128 点)

・PCI-293022, PEX-H293022 (DIO128 点)

上記製品は一枚のインタフェースモジュール上でデバイスが 2個搭載されている製品です。

そのため、2つのデバイスのそれぞれにデバイス名が割り振られます。

各関数による制御を行う際は、それぞれでデバイスオープンを行い、制御を行ってください。

※DI128 点, DO128 点製品, DIO128 点製品では DIO のピン番号が CNA は 1~64, CNB は 65~128 と

なります。CNB を制御する場合、下記のように読み替えて制御を行ってください。

DI128 点 DO128 点 DIO128 点

ピン番号[CNB] 読み替え ピン番号[CNB] 読み替え ピン番号[CNB] 読み替え

IN65 IN1 OUT65 OUT1 IN/OUT65 IN/OUT1

IN66 IN2 OUT66 OUT2 IN/OUT66 IN/OUT2

: : : : : :

IN128 IN64 OUT128 OUT64 IN/OUT128 IN/OUT64

Page 18: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

18

128 点 DIO 製品は、再起動を行なうことで、CNA と CNB のデバイス名が入れ替わることがあります。

下記が、各デバイスのデバイス ID とサブシステム ID の対応表です。

デバイスを制御する場合、デバイスオープンを行い、DioCommonGetPciDeviceInfo関数を実行した後で、

デバイスID、サブシステムIDからどのデバイスをオープンしたか判別してください。

デバイスを複数毎使用する場合は RSW 番号も合わせてご確認ください。

型式 CNx デバイス ID サブシステム ID

CNA 2114h PCI-225020

CNB 8CAh

2194h

CNA 2D14h PEX-H225020

CNB 8CAh

2D94h

CNA 2102h PCI-235002

CNB 92Eh

2182h

CNA 2D02h PEX-H235002

CNB 92Eh

2D82h

CNA 210Bh PCI-285011

CNB B22h

218Bh

CNA 2D0Bh PEX-H285011

CNB B22h

2D8Bh

CNA 2114h PCI-224020

CNB 8C0h

2194h

CNA 2D14h PEX-H224020

CNB 8C0h

2D94h

CNA 2102h PCI-234002

CNB 924h

2182h

CNA 2D02h PEX-H234002

CNB 924h

2D82h

CNA 210Bh PCI-284011

CNB B18h

218Bh

CNA 2D0Bh PEX-H284011

CNB B18h

2D8Bh

CNA 2116h PCI-291022

CNB B5Eh

2196h

CNA 2D16h PEX-H291022

CNB B5Eh

2D96h

CNA 2116h PCI-292022

CNB B68h

2196h

CNA 2D16h PEX-H292022

CNB B68h

2D96h

CNA 2116h PCI-293022

CNB B72h

2196h

CNA 2D16h PEX-H293022

CNB B72h

2D96h

Page 19: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

19

3.3.6 ADP-U2937 固有情報

弊社 I/O タッチパネル CD シリーズ(TIO-C2937Y(S)021)に搭載されている DIO 機能には、使用できる

関数に制限があります。

使用可能関数

・DioOpen

・DioClose

・DioCommonGetPciDeviceInfo

・DioGetDeviceConfig

・DioGetDeviceConfigEx

・DioInputPoint

・DioInputByte

・DioInputWord

・DioInputDword

・DioOutputPoint

・DioOutputByte

・DioOutputWord

・DioOutputDword

Page 20: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

20

3.3.7 PCI-284866 / エコ 3 デジタル入出力タイプ固有情報

弊社マザコン製品(IMC-x2848(y))、エコ 3製品(ECC-xxxxxx)に搭載されている DIO 機能には、使用で

きる関数に制限があります。

使用可能関数

・DioOpen

・DioClose

・DioCommonGetPciDeviceInfo

・DioGetDeviceConfig

・DioGetDeviceConfigEx

・DioInputPoint

・DioInputByte

・DioInputWord

・DioInputDword

・DioOutputPoint

・DioOutputByte

・DioOutputWord

・DioOutputDword

・DioSetRstinMask

・DioGetRstinMask

・DioGetResetInStatus

・DioGetBackGroundUseTimer

・DioSetBackGroundUseTimer

・DioSetBackGround

・DioFreeBackGround

・DioStopBackGround

・DioGetBackGroundStatus

・DioInputPointBack

・DioOutputPointBack

・DioWatchPointBack

・DioSetIrqMask

・DioGetIrqMask

・DioEintSetIrqMask

・DioEintGetIrqMask

・DioEventRequestPendingEx

・DioSetTimerConfig

・DioGetTimerConfig

・DioGetTimerCount

・DioEintSetEdgeConfig

・DioEintGetEdgeConfig

・DioEintSetFilterConfig

・DioEintGetFilterConfig

・DioSetEventRequestMode

Page 21: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

21

3.3.8 PCI-284222 / エコ 3 カウンタタイプ / CFast タイプ / NTSC タイプ固有情報

弊社マザコン製品(IMC-x6323(y))、エコ 3製品(ECC-xxxxxx)に搭載されている DIO 機能には、使用で

きる関数に制限があります。

使用可能関数

・DioOpen

・DioClose

・DioCommonGetPciDeviceInfo

・DioGetDeviceConfig

・DioGetDeviceConfigEx

・DioInputPoint

・DioInputByte

・DioInputWord

・DioInputDword

・DioOutputPoint

・DioOutputByte

・DioOutputWord

・DioOutputDword

Page 22: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

22

3.3.9 PCI-284222 N / エコ 3 NTSC タイプ固有情報

弊社マザコン製品(IMC-T5540(y))、エコ 3製品(ECC-xxxxxx)に搭載されている DIO 機能には、使用で

きる関数に制限があります。

本製品は、DIO 機能を GPC-5300 と共用で使用する事が出来ます。

各デバイスで制御できるビットは以下のようになります。

GPC-5300 での DI/DO の制御方法は、GPC-5300 の Help を参照してください。

制御出来るデバイス bit7 bit6 ・・・ bit1 bit0

GPC-2000 / GPC-5520 IN/OUT8 IN/OUT7 ・・・ IN/OUT2 IN/OUT1

bit15 bit14 ・・・ bit9 bit8 GPC-2000 のみで制御

IN/OUT16 IN/OUT15 ・・・ IN/OUT10 IN/OUT9

使用可能関数

・DioOpen

・DioClose

・DioCommonGetPciDeviceInfo

・DioGetDeviceConfig

・DioGetDeviceConfigEx

・DioInputPoint

・DioInputByte

・DioInputWord

・DioInputDword

・DioOutputPoint

・DioOutputByte

・DioOutputWord

・DioOutputDword

Page 23: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

23

3.3.10 タフコン デジタル入出力タイプ固有情報

弊社タフコン製品に搭載されている DIO 機能には、使用できる関数に制限があります。

使用可能関数

・DioOpen

・DioClose

・DioCommonGetPciDeviceInfo

・DioGetDeviceConfig

・DioGetDeviceConfigEx

・DioInputPoint

・DioInputByte

・DioInputWord

・DioInputDword

・DioOutputPoint

・DioOutputByte

・DioOutputWord

・DioOutputDword

・DioGetBackGroundUseTimer

・DioSetBackGroundUseTimer

・DioSetBackGround

・DioFreeBackGround

・DioStopBackGround

・DioGetBackGroundStatus

・DioInputPointBack

・DioOutputPointBack

・DioWatchPointBack

・DioSetIrqMask

・DioGetIrqMask

・DioSetTimerConfig

・DioGetTimerConfig

・DioGetTimerCount

Page 24: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

24

3.3.11 PCI-298488 固有情報

弊社タフコン製品(ITC-x2984(y)),弊社I/OタッチパネルCDシリーズ(TIO-N2984(x))に搭載されてい

る DIO の型式です。

使用できる関数に制限があります。

対象型式は、デバイスマネージャ上で下記のように表示されます。

・DIO 1~64 点 「Interface PCI-298488<DIO1~64>」

・DIO 65~128 点 「Interface PCI-298488<DIO65~128>」

上記製品はデバイスが 2個搭載されている製品です。

そのため、2つのデバイスのそれぞれにデバイス名が割り振られます。

各関数による制御を行う際は、それぞれでデバイスオープンを行い、制御を行ってください。

※DIO のピン番号が「Interface PCI-298488<DIO1~64>」は 1~64, 「Interface PCI-298488<DIO65

~128>」は 65~128 となります。

「Interface PCI-298488<DIO65~128>」を制御する場合、Help 内の説明を下記のように読み替

えて制御を行ってください。

ピン番号 読み替え

IN/OUT65 IN/OUT1

IN/OUT66 IN/OUT2

: :

IN/OUT128 IN/OUT64

使用可能関数

・DioOpen

・DioClose

・DioCommonGetPciDeviceInfo

・DioGetDeviceConfig

・DioGetDeviceConfigEx

・DioInputPoint

・DioInputByte

・DioInputWord

・DioInputDword

・DioOutputPoint

・DioOutputByte

・DioOutputWord

・DioOutputDword

・DioSetRstinMask

・DioGetRstinMask

・DioGetResetInStatus

・DioGetBackGroundUseTimer

・DioSetBackGroundUseTimer

・DioSetBackGround

・DioFreeBackGround

・DioStopBackGround

・DioGetBackGroundStatus

・DioInputPointBack

・DioOutputPointBack

Page 25: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

25

・DioWatchPointBack

・DioSetIrqMask

・DioGetIrqMask

・DioEintSetIrqMask

・DioEintGetIrqMask

・DioEventRequestPendingEx

・DioSetTimerConfig

・DioGetTimerConfig

・DioGetTimerCount

・DioEintSetEdgeConfig

・DioEintGetEdgeConfig

・DioEintSetFilterConfig

・DioEintGetFilterConfig

・DioSetEventRequestMode

Page 26: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

26

3.3.12 PCI-283144 固有情報

弊社タフコン製品(ITC-x5537(y), ITC-x5538(y))、弊社I/OタッチパネルCDシリーズ(TIO-N5537x(y),

TIO-N5538x(y))に搭載されている DIO 機能には、使用できる関数に制限があります。

本製品は、DIO 機能を GPC-5520 と共用で使用する事が出来ます。

各デバイスで制御できるビットは以下のようになります。

GPC-5520 での DI/DO の制御方法は、GPC-5520 の Help を参照してください。

制御出来るデバイス bit7 bit6 ・・・ bit1 bit0

IN/OUT8 IN/OUT7 ・・・ IN/OUT2 IN/OUT1

bit15 bit14 ・・・ bit9 bit8

IN/OUT16 IN/OUT15 ・・・ IN/OUT10 IN/OUT9

bit23 bit22 ・・・ bit17 bit16

IN/OUT24 IN/OUT23 ・・・ IN/OUT18 IN/OUT17

bit23 bit22 ・・・ bit17 bit16

GPC-2000 / GPC-5520

共用で制御

IN/OUT24 IN/OUT23 ・・・ IN/OUT18 IN/OUT17

bit31 bit30 ・・・ bit25 bit24 GPC-2000 のみで制御

IN/OUT32 IN/OUT31 ・・・ IN/OUT26 IN/OUT25

使用可能関数

・DioOpen

・DioClose

・DioCommonGetPciDeviceInfo

・DioGetDeviceConfig

・DioGetDeviceConfigEx

・DioInputPoint

・DioInputByte

・DioInputWord

・DioInputDword

・DioOutputPoint

・DioOutputByte

・DioOutputWord

・DioOutputDword

・DioSetRstinMask

・DioGetRstinMask

・DioGetResetInStatus

・DioGetBackGroundUseTimer

・DioSetBackGroundUseTimer

・DioSetBackGround

・DioFreeBackGround

・DioStopBackGround

・DioGetBackGroundStatus

・DioInputPointBack

・DioOutputPointBack

・DioWatchPointBack

Page 27: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

27

・DioSetIrqMask

・DioGetIrqMask

・DioEintSetIrqMask

・DioEintGetIrqMask

・DioEventRequestPendingEx

・DioSetTimerConfig

・DioGetTimerConfig

・DioGetTimerCount

・DioEintSetEdgeConfig

・DioEintGetEdgeConfig

・DioEintSetFilterConfig

・DioEintGetFilterConfig

・DioSetEventRequestMode

Page 28: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

28

3.3.13 PCI-293544 固有情報

弊社ソルコン製品,弊社 I/O タッチパネル CD シリーズに搭載されている DIO の型式です。

使用できる関数、一部機能に制限があります。

使用可能関数

・DioOpen ※シェアオープンしか行うことができません。Flagの値は無視されます。

・DioClose

・DioCommonGetPciDeviceInfo ※「DeviceID」「VenderID」「SubSystemID」「BoardID」以外は不定値が取得されます。

・DioGetDeviceConfig

・DioGetDeviceConfigEx

・DioInputPoint

・DioInputByte

・DioInputWord

・DioInputDword

・DioOutputPoint

・DioOutputByte

・DioOutputWord

・DioOutputDword

・DioSetRstinMask

・DioGetRstinMask

・DioGetResetInStatus

・DioGetBackGroundUseTimer

・DioSetBackGroundUseTimer ※Useに0を指定することはできません。

・DioSetBackGround

・DioFreeBackGround

・DioStopBackGround

・DioGetBackGroundStatus

・DioInputPointBack

・DioOutputPointBack

・DioSetIrqMask

・DioGetIrqMask

・DioSetIrqConfig ※IrqConfigのbit0~bit3(SIG1~SIG4)は0以外は指定できません。

・DioGetIrqConfig

・DioSetTimerConfig ※TimerConfigValueのbit4~bit6(CTL5~CTL7)は0は指定できません。100μs:1から設定可能です。

・DioGetTimerConfig

・DioGetTimerCount

・DioEventRequestPending

Page 29: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

29

3.3.14 PCI-293544U / PCI-293588 固有情報

弊社ソルコン製品,弊社 I/O タッチパネル CD シリーズに搭載されている DIO の型式です。

使用できる関数、一部機能に制限があります。

使用可能関数

・DioOpen ※シェアオープンしか行うことができません。Flagの値は無視されます。

・DioClose

・DioCommonGetPciDeviceInfo ※「DeviceID」「VenderID」「SubSystemID」「BoardID」以外は不定値が取得されます。

・DioGetDeviceConfig

・DioGetDeviceConfigEx

・DioInputPoint

・DioInputByte

・DioInputWord

・DioInputDword

・DioOutputPoint

・DioOutputByte

・DioOutputWord

・DioOutputDword

・DioSetRstinMask

・DioGetRstinMask

・DioGetResetInStatus

・DioGetBackGroundUseTimer

・DioSetBackGroundUseTimer ※Useに0を指定することはできません。

・DioSetBackGround

・DioFreeBackGround

・DioStopBackGround

・DioGetBackGroundStatus

・DioInputPointBack

・DioOutputPointBack ※DioOutputPointBack実行中、DioOutputPoint/DioOutputByte/DioOutputWord/DioOutputDword関数を使用する

ことが出来ません。

・DioSetIrqMask

・DioGetIrqMask

・DioSetIrqConfig ※IrqConfigのbit0~bit3(SIG1~SIG4)は0以外は指定できません。

・DioGetIrqConfig

・DioEventRequestPending

・DioEintSetFilterConfig

・DioEintGetFilterConfig

Page 30: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

30

第4章 リファレンス

4.1 関数一覧 No 関数名 機能

●初期化関数

1 DioOpen デジタル入出力デバイスのオープンを行い、以後のインタフェ

ースモジュールへのアクセスを行えるようにします。

2 DioClose デジタル入出力デバイスのクローズを行い、インタフェースモ

ジュールアクセスのために使用されていた各種リソースの解放

を行い、以後のインタフェースモジュールへのアクセスを禁止

します。

3 DioCommonGetPciDeviceInfo デバイス ID、リソース情報、インタフェースモジュール ID

(RSW1)等の情報を取得します。

4 DioGetDeviceConfig デバイスがサポートしている機能情報を取得します。

5 DioGetDeviceConfigEx *2 デバイスがサポートしている機能情報を取得します。

DioGetDeviceConfigと同機能ですが、PCI-2162, CTP-2162 のエ

ッジ検出機能、デジタルフィルタ機能にも対応しています。

●入出力関数

6 DioInputPoint 任意の点数の入力接点の状態を読み込みます。

7 DioInputByte 指定した 8点の入力接点の状態を読み込みます。

(BYTE アクセス)

8 DioInputWord 指定した 16 点の入力接点の状態を読み込みます。

(WORD アクセス)

9 DioInputDword 指定した 32 点の入力接点の状態を読み込みます。

(DWORD アクセス)

10 DioOutputPoint 任意の点数の出力接点の出力を制御します。

11 DioOutputByte 指定した 8点の出力接点を制御します。

(BYTE アクセス)

12 DioOutputWord 指定した 16 点の出力接点を制御します。

(WORD アクセス)

13 DioOutputDword 指定した 32 点の出力接点を制御します。

(DWORD アクセス)

●制御信号関数

14 DioGetAckStatus ACK2 端子の状態、ACK2 レジスタの状態、STB2 端子の状態を読

み込みます。

15 DioSetAckPulseCommand ACK1 の出力制御、汎用パルス出力 PULS.OUT1 の出力制御を行い

ます。

16 DioGetStbStatus STB1 端子の状態、STB1 レジスタの状態、ACK1 端子の状態を読

み込みます。

17 DioSetStbPulseCommand STB2 の出力制御、汎用パルス出力 PULS.OUT2 の出力制御を行い

ます。

18 DioInputUniversalPoint 汎用入力端子の状態を読み込みます。

19 DioOutputUniversalPoint 汎用出力端子の出力を制御します。

20 DioSetLatchStatus 入力状態ラッチ回路の接続を設定します。

21 DioGetLatchStatus 入力状態ラッチ回路の接続状態を取得します。

22 DioSetRstinMask *3 外部リセット(RSTIN)入力のマスクを設定します。

Page 31: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

31

23 DioGetRstinMask *3 外部リセット(RSTIN)入力のマスク状態を取得します。

24 DioGetResetInStatus 外部リセット入力信号端子(RSTIN)の状態を取得します。

●バックグランド関数

25 DioGetBackGroundUseTimer バックグランド処理でインタフェースモジュール上のタイマを

使用するか、パソコンのタイマを使用するかの設定情報を取得

します。

26 DioSetBackGroundUseTimer バックグランド処理でインタフェースモジュール上のタイマを

使用するか、パソコンのタイマを使用するかを設定します。

27 DioSetBackGround バックグランド処理(関数名に Back が付加されている関数によ

る処理)を行う接点番号、接点数、処理回数を設定します。バ

ックグランド処理を行う前に本関数での設定が必要です。

28 DioFreeBackGround DioSetBackGround関数で設定したバックグランド処理の設定を

解放します。バックグランド処理を行う必要がなくなった時点

で必ず本関数で設定を解放してください。

29 DioStopBackGround バックグランド処理(関数名に Back が付加されている関数によ

る処理)を停止します。

30 DioGetBackGroundStatus バックグランド処理(関数名に Back が付加されている関数によ

る処理)の設定情報、実行状態等を取得します。

31 DioInputPointBack DioSetBackGround関数で設定した任意の点数の入力接点の状態

をバックグランドで読み込みます。

32 DioOutputPointBack DioSetBackGround関数で設定した任意の点数の出力接点の出力

をバックグランドで制御します。

33 DioWatchPointBack DioSetBackGround関数で設定した任意の点数の状態を監視しま

す。

●ハンドシェーク関数

34 DioGetInputHandShakeConfig 制御信号を使用したハンドシェーク入力について STB1 イベン

トの使用/未使用、入力データのマスク設定の情報を取得しま

す。

35 DioSetInputHandShakeConfig 制御信号を使用したハンドシェーク入力について STB1 イベン

トの使用/未使用、入力データのマスクの設定を行います。

36 DioGetOutputHandShakeConfig 制御信号を使用したハンドシェーク出力について ACK2 イベン

トの使用/未使用、出力データのマスク設定の情報を取得しま

す。

37 DioSetOutputHandShakeConfig 制御信号を使用したハンドシェーク出力について ACK2 イベン

トの使用/未使用、出力データのマスクの設定を行います。

38 DioInputHandShake 制御信号を使用したハンドシェーク入力を行います。

39 DioInputHandShakeEx 制御信号を使用したハンドシェーク入力を行います。

(コールバック関数有り:Windows 2000/NT 以降で使用可能)

40 DioOutputHandShake 制御信号を使用したハンドシェーク出力を行います。

41 DioOutputHandShakeEx 制御信号を使用したハンドシェーク出力を行います。

(コールバック関数有り:Windows 2000/NT 以降で使用可能)

42 DioStopInputHandShake ハンドシェーク入力を停止します。

43 DioStopOutputHandShake ハンドシェーク出力を停止します。

44 DioGetHandShakeStatus ハンドシェーク入出力の状態を取得します。

45 DioGetOverlappedResult ハンドシェーク入出力

(DioInputHandShake/DioOutputHandShake)関数の非同期コール

時の、実際に入出力されたバイト数を取得します。

46 DioSetTimeOut ハンドシェーク入出力時のタイムアウト時間を設定します。

Page 32: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

32

47 DioGetTimeOut ハンドシェーク入出力時のタイムアウト設定値を取得します。

●割り込み関数

48 DioSetIrqMask 割り込みのマスク/アンマスクの設定を行います。

49 DioGetIrqMask 割り込みマスク状態を取得します。

50 DioSetIrqConfig 割り込み要因割り当て及び割り込み発生論理の設定を行いま

す。

51 DioGetIrqConfig 割り込み要因割り当て及び割り込み発生論理の設定状態を取得

します。

52 DioEventRequestPending デジタル入出力デバイスのイベント要求を待ちます。

53 DioEintSetIrqMask *1 エッジ検出割り込みのマスク/アンマスクの設定を行います

(IR1~IR32)。

54 DioEintGetIrqMask *1 エッジ検出割り込みのマスク/アンマスク設定状態を取得しま

す(IR1~IR32)。

55 DioEintSetIrqMaskEx *1 エッジ検出割り込みのマスク/アンマスクの設定を行います。

56 DioEintGetIrqMaskEx *1 エッジ検出割り込みのマスク/アンマスク設定状態を取得しま

す。

57 DioEventRequestPendingEx *2 デジタル入出力デバイスのイベント要求を待ちます。

DioEventRequestPendingと同機能ですが、PCI-2162, CTP-2162,

CPZ-294188 のエッジ検出割り込みに対応しています。

●インターバルタイマ関数

58 DioSetTimerConfig インターバルタイマの設定を行います。

59 DioGetTimerConfig インターバルタイマの設定情報を取得します。

60 DioGetTimerCount インターバルタイマのカウント値を取得します。

●エッジ検出関数

61 DioEintSetEdgeConfig *1 エッジ検出の有効/無効の設定を行います(IR1~IR32)。

62 DioEintGetEdgeConfig *1 エッジ検出の有効/無効設定状態を取得します(IR1~IR32)。

63 DioEintSetEdgeConfigEx *1 エッジ検出の有効/無効の設定を行います。

64 DioEintGetEdgeConfigEx *1 エッジ検出の有効/無効設定状態を取得します。

65 DioEintInputPoint *1 任意の点数のエッジ検出データを読み込みます。

66 DioEintInputByte *1 指定した 8点のエッジ検出データを読み込みます。

(BYTE アクセス)

67 DioEintInputWord *1 指定した 16 点のエッジ検出データを読み込みます。

(WORD アクセス)

68 DioEintInputDword *1 指定した 32 点のエッジ検出データを読み込みます。

(DWORD アクセス)

●デジタルフィルタ関数

69 DioEintSetFilterConfig *1 デジタルフィルタ時間の設定を行います。

70 DioEintGetFilterConfig *1 デジタルフィルタ時間設定を取得します。

●割り込みモード設定関数

71 DioSetEventRequestMode 割り込み待ちモードの設定を行います。

●内部同期設定関数

72 DioOutputSync デジタル入出力デバイスの内部同期制御を設定します。

PCI-284244 でのみ対応しています。

*1: PCI-2162, CTP-2162, CPZ-294188 専用の関数です。PCI-2162, CTP-2162, CPZ-294188 以外では

使用できません。

*2: PCI-2162, CTP-2162, CPZ-294188 の機能をサポートするために拡張された関数です。PCI-2162,

Page 33: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

33

CTP-2162, CPZ-294188 以外でも使用できます。

*3: 外部リセット(RSTIN)入力のマスク機能を持った製品の専用関数です。外部リセット入力のマ

スク機能の有無は、DioGetDeviceConfigEx 関数にて確認できます。

Page 34: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

34

4.2 関数個別説明

1. DioOpen 【機能】

デジタル入出力デバイスのオープンを行い、以後のインタフェースモジュールへのアクセスを

行えるようにします。

【書式】

●C言語(x86 専用)

HANDLE DioOpen(

LPCTSTR Name,

DWORD Flag

);

●C 言語(x64 専用)

HANDLE DioOpen(

LPCSTR Name,

DWORD Flag

);

●Visual Basic

Declare Function DioOpen Lib "FbiDio.DLL"( _

ByVal Name As String, _

ByVal Flag As Long _

)As Long

●Delphi

function DioOpen(

Name: String;

Flag: DWORD

):THandle; stdcall; external 'FbiDio.DLL';

【パラメータ】

Name オープンするデバイス名を指定します。

Flag オープンフラグを指定します。

指定可能な識別子は下記のものから選択します。

識別子 意味

FBIDIO_FLAG_NORMAL 通常のオープン時に使用するフラグです。これを指定す

ると重複してオープンすることはできません。

FBIDIO_FLAG_SHARE 1 つのデバイスを複数のプロセス(アプリケーション)か

ら重複(共有)して制御することを許可するフラグです。

※PCI-293544, PCI-293544U, PCI-293588 の場合、本パラメータは無視され、常に

FBIDIO_FLAG_SHARE を指定した動作となります。

Page 35: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

35

【戻り値】

DioOpen関数が正常に終了した場合には、有効なハンドルが返されます。

他の関数は、本関数により取得したハンドルを使用してデバイスの制御を行います。

オープンに失敗した場合には、INVALID_HANDLE_VALUE(FFFFFFFFh)が返されます。

【備考】

●FBIDIO_FLAG_SHARE の動作について

本フラグを指定することにより、同じデバイスを 2 つ以上のアプリケーションで共有すること

が可能となります。FBIDIO_FLAG_SHARE を指定せずにオープンされているデバイスに対して、

FBIDIO_FLAG_SHARE を指定したオープンを実行した場合、オープンは失敗します。

オープン(DioOpen関数)とクローズ(DioClose関数)の実行回数は必ず一致しなければなりま

せん。

●デバイス名について

オープンするにはデバイス名を指定します。

デバイス名はインタフェースモジュール上のロータリスイッチ(RSW1)の値で決定されるわけ

ではありません。OS がインタフェースモジュールを認識した順番により決定されます。

使用するインタフェースモジュール枚数やスロット位置の変更等でシステム構成が変化すると

割り当てられる名前が変化する場合があります。システム構成が変化する環境でご使用になる

場合は、デバイス名の指定が変更できるようにアプリケーションを作成ください。インタフェ

ースモジュール上に実装されたRSW1(インタフェースモジュールID設定)の値を取得し、アプ

リケーションで目的のインタフェースモジュールであるかを判断することができます。詳しく

は、DioCommonGetPciDeviceInfo関数 の説明をご参照ください。

CardBus シリーズにつきましては、カードバス ID 設定ユーティリティで設定した ID がインタ

フェースモジュール ID として取得されます。

各デバイス名の確認は、Windows 2000 以降または Windows Me/98/95 の場合、デバイスマネー

ジャにて確認できます。

デバイスマネージャに「FbiPciDio」が追加され、認識された弊社デジタル入出力デバイスが一

覧表示されます。一覧の製品型式の横にインタフェースモジュール上のロータリスイッチの値

とデバイス名が表示されます。

DI入力ユーティリティ(DIUTIL.EXE)、DO出力ユーティリティ(DOUTIL.EXE)でも確認できます。

Windows NTでは、DI入力ユーティリティ(DIUTIL.EXE)、DO出力ユーティリティ(DOUTIL.EXE)

にて割り当てられたデバイス名をご確認ください。

●UNICODE 文字列について

C 言語(x86 専用)で、DioOpen の引数 Name に指定する文字列は LPCTSTR 型として定義していま

すが、UNICODE 文字列には対応しておりません。

x86 環境でご使用になる場合、使用例に沿って記述してください。

Page 36: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

36

【使用例】

●C言語(32bit 用コンパイラ)

HANDLE DeviceHandle;

DeviceHandle = DioOpen(“FBIDIO1”, FBIDIO_FLAG_SHARE);

●C 言語(32bit 用コンパイラで UNICODE を定義している場合)

HANDLE DeviceHandle;

DeviceHandle = DioOpen((LPCTSTR)“FBIDIO1”, FBIDIO_FLAG_SHARE);

HANDLE DeviceHandle;

char* lpszName = “FBIDIO1”;

DeviceHandle = DioOpen((LPCTSTR)lpszName, FBIDIO_FLAG_SHARE);

HANDLE DeviceHandle;

LPCWSTR UnicodeName = L"FBIDIO1";

char DeviceName[256];

int len;

len = WideCharToMultiByte(CP_ACP, 0, UnicodeName, -1, NULL, 0, NULL, NULL);

WideCharToMultiByte(CP_ACP, 0, UnicodeName, -1, DeviceName, len, NULL, NULL);

DeviceHandle = DioOpen((LPCTSTR)DeviceName, FBIDIO_FLAG_SHARE);

●C 言語(64bit 用コンパイラ)

HANDLE DeviceHandle;

DeviceHandle = DioOpen(“FBIDIO1”, FBIDIO_FLAG_SHARE);

●Visual Basic

Dim Name As String

Dim DeviceHandle As Long

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_SHARE)

Page 37: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

37

●Delphi

var

Name: String;

DeviceHandle: THandle;

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_SHARE);

デバイス名「FBIDIO1」のデバイスを重複オープン許可でオープンします。

Page 38: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

38

2. DioClose 【機能】

デジタル入出力デバイスをクローズします。

インタフェースモジュールアクセスのために使用されていた各種リソースの解放を行い、以後

のインタフェースモジュールへのアクセスを禁止します。

【書式】

●C言語

INT DioClose(

HANDLE DeviceHandle

);

●Visual Basic

Declare Function DioClose Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long _

)As Long

●Delphi

function DioClose (

DeviceHandle: Thandle

): Integer; stdcall; external 'FbiDio.DLL';

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

【備考】

再度、インタフェースモジュールへのアクセスを行う場合にはオープン処理(DioOpen関数)を呼

び出してください。

インタフェースモジュールクローズ後の各種設定はクリアされます。

Windows NT/2000 以降ではデバッガの制御下でアプリケーションを実行しているときに無効な

ハンドルを閉じると、例外が発生します。たとえば、ハンドルを 2 回閉じるなどを行うと発生

します。

Page 39: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

39

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

Ret = DioClose(DeviceHandle);

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

Ret = DioClose(DeviceHandle)

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

Ret := DioClose(DeviceHandle);

end;

デバイス名「FBIDIO1」のデバイスのクローズ処理を行います。

Page 40: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

40

3. DioCommonGetPciDeviceInfo 【機能】

デバイス ID、リソース情報、インタフェースモジュール ID(RSW1)等の情報を取得します。

【書式】

●C言語

INT DioCommonGetPciDeviceInfo (

HANDLE DeviceHandle,

PDWORD DeviceID,

PDWORD VendorID,

PDWORD ClassCode,

PDWORD RevisionID,

PDWORD BaseAddress0,

PDWORD BaseAddress1,

PDWORD BaseAddress2,

PDWORD BaseAddress3,

PDWORD BaseAddress4,

PDWORD BaseAddress5,

PDWORD SubsystemID,

PDWORD SubsystemVendorID,

PDWORD InterruptLine,

PDWORD BoardID

);

●Visual Basic

Declare Function DioCommonGetPciDeviceInfo Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByRef DeviceID As Long, _

ByRef VendorID As Long, _

ByRef ClassCode As Long, _

ByRef RevisionID As Long, _

ByRef BaseAddress0 As Long, _

ByRef BaseAddress1 As Long, _

ByRef BaseAddress2 As Long, _

ByRef BaseAddress3 As Long, _

ByRef BaseAddress4 As Long, _

ByRef BaseAddress5 As Long, _

ByRef SubsystemID As Long, _

ByRef SubsystemVendorID As Long, _

ByRef InterruptLine As Long, _

ByRef BoardID As Long _

)As Integer

Page 41: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

41

●Delphi

function DioCommonGetPciDeviceInfo (

DeviceHandle: Thandle;

var DeviceID: DWORD;

var VendorID: DWORD;

var ClassCode: DWORD;

var RevisionID: DWORD;

var BaseAddress0: DWORD;

var BaseAddress1: DWORD;

var BaseAddress2: DWORD;

var BaseAddress3: DWORD;

var BaseAddress4: DWORD;

var BaseAddress5: DWORD;

var SubsystemID: DWORD;

var SubsystemVendorID: DWORD;

var InterruptLine: DWORD;

var BoardID: DWORD

): Integer; stdcall; external 'FbiDio.DLL';

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

DeviceID デバイス ID データを格納する変数へのポインタ(参照渡し)を指定します。

デバイスを区別するための ID です。

弊社PCI及びCompactPCIバス用DIOデバイスは、製品型式の数字部分4桁が適用されます。

PCI-2104C ならば 2104(16 進数では 838h)、CTP-2725 ならば 2725(16 進数では AA5h)で

す。

また、6桁の型式をもつ製品の場合には上位 4桁がデバイス ID を示します。CSI-292366 の

場合には 2923(16 進数では B6Bh)となります。

PCI デバイス、CompactPCI デバイス、PCI Express デバイス、CardBus カードを判別する必

要がある場合、SubsystemID を参照して下さい。

また、128 点 DIO 製品の場合に、同一ボード内の CNA, CNB を判別する必要がある場合、

SubsystemID を参照してください。

※デバイス ID から、下記割込みラインまでのデータは、PCI Rev2.1 で規定される PCI バス

用デバイスが持つデータです。インタフェースモジュール ID は弊社のインタフェースモジ

ュール上に実装される RSW1 の値であり、PCI バス用デバイスが標準で実装するデータでは

ありません。

VendorID ベンダ ID データを格納する変数へのポインタ(参照渡し)を指定します。

弊社のベンダ ID は、1147h(16 進数)です。

Page 42: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

42

ClassCode クラスコードデータを格納する変数へのポインタ(参照渡し)を指定します。

デバイスのクラスコードが格納されます。PCI Rev2.1 で規定されている値が格納されます。

RevisionID リビジョン ID データを格納する変数へのポインタ(参照渡し)を指定します。

インタフェースモジュールのリビジョン ID が格納されます。

BaseAddress0 リソース 0データを格納する変数へのポインタ(参照渡し)を指定します。

インタフェースモジュールが占有する I/O または、メモリ領域が格納されます。

BaseAddress1 リソース 1データを格納する変数へのポインタ(参照渡し)を指定します。

インタフェースモジュールが占有する I/O または、メモリ領域が格納されます。

BaseAddress2 リソース 2データを格納する変数へのポインタ(参照渡し)を指定します。

インタフェースモジュールが占有する I/O または、メモリ領域が格納されます。

BaseAddress3 リソース 3データを格納する変数へのポインタ(参照渡し)を指定します。

インタフェースモジュールが占有する I/O または、メモリ領域が格納されます。

BaseAddress4 リソース 4データを格納する変数へのポインタ(参照渡し)を指定します。

インタフェースモジュールが占有する I/O または、メモリ領域が格納されます。

BaseAddress5 リソース 5データを格納する変数へのポインタ(参照渡し)を指定します。

インタフェースモジュールが占有する I/O または、メモリ領域が格納されます。

SubsystemID サブシステム ID データを格納する変数へのポインタ(参照渡し)を指定します。

インタフェースモジュールのサブシステム ID が格納されます。

SubsystemVendorID サブシステムベンダ ID データを格納する変数へのポインタ(参照渡し)を指定します。

インタフェースモジュールのサブシステム ID が格納されます。

InterruptLine 割込みラインデータを格納する変数へのポインタ(参照渡し)を指定します。

インタフェースモジュールが使用する割込みレベルが格納されます。

Page 43: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

43

BoardID インタフェースモジュール ID データを格納する変数へのポインタ(参照渡し)を指定しま

す。

インタフェースモジュール上に実装されている RSW1 の値が格納されます。

CardBusシリーズにつきましては、カードバスID設定ユーティリティで設定した値が格納さ

れます。

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

【備考】

※PCI-293544, PCI-293544U、PCI-293588 の場合、「DeviceID」「VenderID」「SubSystemID」

「BoardID」以外は不定値が取得されます。

【使用例】

●C言語

#include <windows.h>

#include <stdio.h>

#include <string.h>

#include "FBIDIO.h"

#define BOARD_NUM 4 // インタフェースモジュール枚数

typedef struct {

ULONG BoardModel; // インタフェースモジュール型式

ULONG RswNumber; // RSW 番号

char DeviceName[16]; // デバイス名

} BOARDINFO, *PBOARDINFO;

void main(void)

{

BOARDINFO Info[BOARD_NUM];

char Name[64];

INT i, j, Count, Ret;

HANDLE DeviceHandle;

DWORD DeviceID, VendorID, ClassCode, RevisionID;

DWORD BaseAddress0, BaseAddress1,BaseAddress2, BaseAddress3;

DWORD BaseAddress4, BaseAddress5, SubsystemID, SubsystemVendorID;

DWORD InterruptLine, BoardID;

// デバイス名を取得する型式、RSW 番号を設定

Info[0].BoardModel = 2726;

Page 44: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

44

Info[0].RswNumber = 0;

Info[0].DeviceName[0] = '\0';

Info[1].BoardModel = 2726;

Info[1].RswNumber = 1;

Info[1].DeviceName[0] = '\0';

Info[2].BoardModel = 2726;

Info[2].RswNumber = 2;

Info[2].DeviceName[0] = '\0';

Info[3].BoardModel = 2726;

Info[3].RswNumber = 3;

Info[3].DeviceName[0] = '\0';

// 関連付け処理

for (i = 1, Count = 0; i < 256; i++) {

// インタフェースモジュールオープン

wsprintf(Name, "FBIDIO%d", i);

DeviceHandle = DioOpen(Name,0);

if (DeviceHandle == INVALID_HANDLE_VALUE) continue;

// インタフェースモジュール情報取得

Ret = DioCommonGetPciDeviceInfo(

DeviceHandle, // デバイスハンドル

&DeviceID, // デバイス ID

&VendorID, // ベンダ ID

&ClassCode, // クラスコード

&RevisionID, // リビジョン ID

&BaseAddress0, // リソース 0

&BaseAddress1, // リソース 1

&BaseAddress2, // リソース 2

&BaseAddress3, // リソース 3

&BaseAddress4, // リソース 4

&BaseAddress5, // リソース 5

&SubsystemID, // サブシステム ID

&SubsystemVendorID, // サブシステムベンダ ID

&InterruptLine, // 割込みライン

&BoardID // インタフェースモジュール ID

);

if (Ret != FBIDIO_ERROR_SUCCESS) {

printf("Error : DioCommonGetPciDeviceInfo\n");

} else {

for (j = 0; j < BOARD_NUM; j++) {

// インタフェースモジュール型式をデバイス ID で確認

if( DeviceID == Info[j].BoardModel){

// RSW 番号の確認

if (BoardID == Info[j].RswNumber){

Page 45: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

45

// 型式、RSW 番号が一致したのでデバイス名を保存する

strcpy(Info[j].DeviceName, Name);

Count++;

break;

}

}

}

}

// インタフェースモジュールクローズ

Ret = DioClose(DeviceHandle);

if (Ret != FBIDIO_ERROR_SUCCESS) {

printf("Error : DioClose\n");

}

// 全インタフェースモジュール検索が終われば終了

if (Count == BOARD_NUM) break;

}

// 取得したデバイス名を表示

for (i = 0; i < BOARD_NUM; i++) {

//型式の Cは後から付けて表示

printf("PCI-%dC : RSW-%x : %s\n",

Info[i].BoardModel, Info[i].RswNumber, Info[i].DeviceName);

}

}

●Visual Basic

Public Const BOARD_NUM = 4

Type BOARDINFO

BoardModel As Long

RswNumber As Long

DeviceName As String

End Type

Private Sub Command1_Click()

Dim Info(BOARD_NUM - 1) As BOARDINFO

Dim Name As String

Dim i, j, Count, Ret As Integer

Dim DeviceHandle As Long

Dim DeviceID As Long

Dim VendorID As Long

Dim ClassCode As Long

Dim RevisionID As Long

Dim BaseAddress0 As Long

Page 46: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

46

Dim BaseAddress1 As Long

Dim BaseAddress2 As Long

Dim BaseAddress3 As Long

Dim BaseAddress4 As Long

Dim BaseAddress5 As Long

Dim SubsystemID As Long

Dim SubsystemVendorID As Long

Dim InterruptLine As Long

Dim BoardID As Long

' デバイス名を取得する型式、RSW 番号を設定

Info(0).BoardModel = 2726

Info(0).RswNumber = 0

Info(0).DeviceName = Chr(0)

Info(1).BoardModel = 2726

Info(1).RswNumber = 1

Info(1).DeviceName = Chr(0)

Info(2).BoardModel = 2726

Info(2).RswNumber = 2

Info(2).DeviceName = Chr(0)

Info(3).BoardModel = 2726

Info(3).RswNumber = 3

Info(3).DeviceName = Chr(0)

' 関連付け処理

Count = 0

For i = 1 To 255

' インタフェースモジュールオープン

Name = "FBIDIO" & i & Chr(0)

DeviceHandle = DioOpen(Name, 0)

If DeviceHandle = &HFFFFFFFF Then GoTo Continue

' インタフェースモジュール情報取得

Ret = DioCommonGetPciDeviceInfo( _

DeviceHandle, DeviceID, VendorID, _

ClassCode, RevisionID, BaseAddress0, _

BaseAddress1, BaseAddress2, BaseAddress3, _

BaseAddress4, BaseAddress5, SubsystemID, _

SubsystemVendorID, InterruptLine, BoardID )

If Ret <> FBIDIO_ERROR_SUCCESS Then

Ret = MsgBox("Error : DioCommonGetPciDeviceInfo", _

vbOKOnly + vbCritical, "FBIDIO")

Else

For j = 0 To (BOARD_NUM - 1)

Page 47: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

47

' インタフェースモジュール型式をデバイス ID で確認

If DeviceID = Info(j).BoardModel Then

' RSW 番号の確認

If BoardID = Info(j).RswNumber Then

' 型式、RSW 番号が一致したのでデバイス名を保存する

Info(j).DeviceName = szName

Count = Count + 1

Exit For

End If

End If

Next j

End If

' インタフェースモジュールクローズ

Ret = DioClose(DeviceHandle)

If Ret <> FBIDIO_ERROR_SUCCESS Then

Ret = MsgBox("Error : DioClose", vbOKOnly + vbCritical, "FBIDIO")

End If

' 全インタフェースモジュール検索が終われば終了

If Count = BOARD_NUM Then Exit For

Continue:

Next i

' 取得したデバイス名を表示

' 型式の Cは後から付けて表示

Label1.Caption = "PCI-" & Info(0).BoardModel & "C" & " : RSW-" & _

Info(0).RswNumber & " : " & gInfo(0).szDeviceName

Label2.Caption = "PCI-" & Info(1).BoardModel & "C" & " : RSW-" & _

Info(1).RswNumber & " : " & Info(1).DeviceName

Label3.Caption = "PCI-" & Info(2).BoardModel & "C" & " : RSW-" & _

Info(2).RswNumber & " : " & Info(2).DeviceName

Label4.Caption = "PCI-" & Info(3).BoardModel & "C" & " : RSW-" & _

Info(3).RswNumber & " : " & Info(3).DeviceName

End Sub

Page 48: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

48

●Delphi

type

BOARDINFO = record

BoardModel : Cardinal;

RswNumber : Cardinal;

DeviceName : array[0..15] of Char;

end;

procedure TForm1.Button1Click(Sender: TObject);

var

Info : array[0..4] of BOARDINFO;

Name : array[0..15] of Char;

i, j, Count, Ret : Integer;

DeviceID, VendorID, ClassCode, RevisionID: DWORD;

BaseAddress0, BaseAddress1, BaseAddress2, BaseAddress3: DWORD;

BaseAddress4, BaseAddress5, SubsystemID, SubsystemVendorID: DWORD;

InterruptLine, BoardID: DWORD;

begin

// デバイス名を取得する型式、RSW 番号を設定

Info[0].BoardModel := 2726;

Info[0].RswNumber := 0;

Info[0].DeviceName[0] := #0;

Info[1].BoardModel := 2726;

Info[1].RswNumber := 1;

Info[1].DeviceName[0] := #0;

Info[2].BoardModel := 2726;

Info[2].RswNumber := 2;

Info[2].DeviceName[0] := #0;

Info[3].BoardModel := 2726;

Info[3].RswNumber := 3;

Info[3].DeviceName[0] := #0;

// 関連付け処理

Count := 0;

for i := 1 to 255 do begin

// インタフェースモジュールオープン

StrPCopy(Name ,'FBIDIO'+ IntToStr(i));

DeviceHandle := DioOpen(@Name[0],0);

if DeviceHandle = INVALID_HANDLE_VALUE then Continue;

// インタフェースモジュール情報取得

Ret := DioCommonGetPciDeviceInfo(

DeviceHandle, // デバイスハンドル

DeviceID, // デバイス ID

Page 49: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

49

VendorID, // ベンダ ID

ClassCode, // クラスコード

RevisionID, // リビジョン ID

BaseAddress0, // リソース 0

BaseAddress1, // リソース 1

BaseAddress2, // リソース 2

BaseAddress3, // リソース 3

BaseAddress4, // リソース 4

BaseAddress5, // リソース 5

SubsystemID, // サブシステム ID

SubsystemVendorID, // サブシステムベンダ ID

InterruptLine, // 割込みライン

BoardID // インタフェースモジュール ID

);

if Ret <> FBIDIO_ERROR_SUCCESS then

MessageDlg('Error : DioCommonGetPciDeviceInfo', mtError, [mbOk], 0)

else begin

for j := 0 to 4 do begin

//インタフェースモジュール型式をデバイス ID で確認

if DeviceID = Info[j].BoardModel then begin

// RSW 番号の確認

if BoardID = Info[j].RswNumber then begin

// 型式、RSW 番号が一致したのでデバイス名を保存する

StrCopy(Info[j].DeviceName, Name);

Count := Count + 1;

Break;

end;

end;

end;

end;

// インタフェースモジュールクローズ

Ret := DioClose(DeviceHandle);

if Ret <> FBIDIO_ERROR_SUCCESS then

MessageDlg('Error : DioClose', mtError, [mbOk], 0);

// 全インタフェースモジュール検索が終われば終了

if Count = 4 then Break;

end;

// 取得したデバイス名を表示

//型式の Cは後から付けて表示

Label1.Caption := 'PCI-' + IntToStr(Info[0].BoardModel) + 'C'

+ ' : RSW-' + IntToStr(Info[0].RswNumber)

+ ' : ' + Info[0].DeviceName;

Label2.Caption := 'PCI-' + IntToStr(Info[1].BoardModel) + 'C'

+ ' : RSW-' + IntToStr(Info[1].RswNumber)

Page 50: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

50

+ ' : ' + Info[1].DeviceName;

Label3.Caption := 'PCI-' + IntToStr(Info[2].BoardModel) + 'C'

+ ' : RSW-' + IntToStr(Info[2].RswNumber)

+ ' : ' + Info[2].DeviceName;

Label4.Caption := 'PCI-' + IntToStr(Info[3].BoardModel) + 'C'

+ ' : RSW-' + IntToStr(Info[3].RswNumber)

+ ' : ' + Info[3].DeviceName;

end;

end;

インタフェースモジュール ID を別々に設定した 4枚の PCI-2726C の、それぞれのデバイス名を

検索します。

型式の部分を実際にご使用になるインタフェースモジュールの型式に変更ください。

FBIDIO1 ~ FBIDIO255 に 対 し て オ ー プ ン を 試 み 、 オ ー プ ン が 成 功 し た 場 合 、

DioCommonGetPciDeviceInfoを実行します。

そして、取得したデバイス ID と、インタフェースモジュール ID で判断します。

Page 51: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

51

4. DioGetDeviceConfig 【機能】

デバイスがサポートしている機能情報を取得します。

【書式】

●C言語

INT DioGetDeviceConfig (

HANDLE DeviceHandle,

PDWORD DeviceConfig

);

●Visual Basic

Declare Function DioGetDeviceConfig Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByRef DeviceConfig As Long _

)As Integer

●Delphi

function DioGetDeviceConfig (

DeviceHandle: Thandle;

var DeviceConfig: DWORD

): Integer; stdcall; external 'FbiDio.DLL';

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

DeviceConfig デバイスがサポートしている機能情報を格納する変数へのポインタ(参照渡し)を指定し

ます。

以下のビット構成で格納します(該当ビットが”1”で有効)。

bit0: IN1~IN8 サポート

bit1: IN9~IN16 サポート

bit2: IN17~IN24 サポート

bit3: IN25~IN32 サポート

bit4: IN33~IN40 サポート

bit5: IN41~IN48 サポート

bit6: IN49~IN56 サポート

bit7: IN57~IN64 サポート

bit8: OUT1~OUT8 サポート

bit9: OUT9~OUT16 サポート

bit10: OUT17~OUT24 サポート

bit11: OUT25~OUT32 サポート

bit12: OUT33~OUT40 サポート

bit13: OUT41~OUT48 サポート

Page 52: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

52

bit14: OUT49~OUT56 サポート

bit15: OUT57~OUT64 サポート

bit16: STB1、ACK1 信号

bit17: STB2、ACK2 信号

bit18: IR.IN1 信号

bit19: IR.IN2 信号

bit20: PULS.OUT1 信号

bit21: PULS.OUT2 信号

bit22: 汎用 DI1 のみサポート

bit23: 汎用 DI1~4

bit24: 汎用 DI5~8

bit25: 汎用 DO1 のみサポート

bit26: 汎用 DO1~4

bit27: 汎用 DO5~8

bit28: 低速出力応答 1

bit29: 低速出力応答 2

bit30: インターバルタイマ

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

【備考】

・低速出力応答 1/低速出力応答 2について

低速出力応答 1 もしくは低速出力応答 2 が有効(=1)となっているデバイスでは、ハンドシェ

ーク出力関数を実行時に、STB2 が有効になるまでの固有の時間が異なります。

低速出力応答 1 速出力応答 2 内容

0 0 出力データ設定後 30μs 後に STB2 が有効。

1 0 出力データ設定後 300μs 後に STB2 が有効。

0 1 出力データ設定後 3ms 後に STB2 が有効。

DioSetOutputHandShakeConfig関数でSTB2 の遅延時間を設定した場合、上記の固有の遅延時間

は無効となり、関数で指定した遅延時間が使用されます。

Page 53: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

53

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

DWORD DeviceConfig;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

Ret = DioGetDeviceConfig( DeviceHandle, &DeviceConfig );

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Dim DeviceConfig As Long

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

Ret = DioGetDeviceConfig( DeviceHandle, DeviceConfig )

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

DeviceConfig: DWORD;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

Ret := DioGetDeviceConfig( DeviceHandle, DeviceConfig );

end;

デバイス名「FBIDIO1」のデバイスがサポートしているデバイス機能情報を取得します。

Page 54: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

54

5. DioGetDeviceConfigEx 【機能】

デバイスがサポートしている機能情報を取得します。

DioGetDeviceConfigExは、外部リセット(RSTIN)入力のマスク機能、およびPCI-2162, CTP-2162,

CPZ-294188 のエッジ検出機能、デジタルフィルタ機能の機能情報に対応しています。

【書式】

●C言語

INT DioGetDeviceConfigEx (

HANDLE DeviceHandle,

PDWORD DeviceConfig,

PDWORD DeviceConfigEx

);

●Visual Basic

Declare Function DioGetDeviceConfigEx Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByRef DeviceConfig As Long, _

ByRef DeviceConfigEx As Long _

)As Integer

●Delphi

function DioGetDeviceConfigEx (

DeviceHandle: Thandle;

var DeviceConfig: DWORD;

var DeviceConfigEx: DWORD

): Integer; stdcall; external 'FbiDio.DLL';

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

DeviceConfig デバイスがサポートしている機能情報を格納する変数へのポインタ(参照渡し)を指定し

ます。

以下のビット構成で格納します(該当ビットが”1”で有効)。

bit0: IN1~IN8 サポート

bit1: IN9~IN16 サポート

bit2: IN17~IN24 サポート

bit3: IN25~IN32 サポート

bit4: IN33~IN40 サポート

bit5: IN41~IN48 サポート

bit6: IN49~IN56 サポート

bit7: IN57~IN64 サポート

bit8: OUT1~OUT8 サポート

Page 55: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

55

bit9: OUT9~OUT16 サポート

bit10: OUT17~OUT24 サポート

bit11: OUT25~OUT32 サポート

bit12: OUT33~OUT40 サポート

bit13: OUT41~OUT48 サポート

bit14: OUT49~OUT56 サポート

bit15: OUT57~OUT64 サポート

bit16: STB1、ACK1 信号

bit17: STB2、ACK2 信号

bit18: IR.IN1 信号

bit19: IR.IN2 信号

bit20: PULS.OUT1 信号

bit21: PULS.OUT2 信号

bit22: 汎用 DI1 のみサポート

bit23: 汎用 DI1~4

bit24: 汎用 DI5~8

bit25: 汎用 DO1 のみサポート

bit26: 汎用 DO1~4

bit27: 汎用 DO5~8

bit28: 低速出力応答 1

bit29: 低速出力応答 2

bit30: インターバルタイマ

bit31: 拡張情報有無

DeviceConfigEx デバイスがサポートしている拡張機能情報を格納する変数へのポインタ(参照渡し)を指

定します。

以下のビット構成で格納します(該当ビットが”1”で有効)。

DeviceConfig の bit31='1'の場合に有効です。

bit0: IR1~IR8 エッジ検出機能

bit1: IR9~IR16 エッジ検出機能

bit2: IR17~IR24 エッジ検出機能

bit3: IR25~IR32 エッジ検出機能

bit4: IR33~IR40 エッジ検出機能

bit5: IR41~IR48 エッジ検出機能

bit6: IR49~IR56 エッジ検出機能

bit7: IR57~IR64 エッジ検出機能

bit8~23: 将来拡張用

bit24: IRx(x:入力ピン番号)のデジタルフィルタ機能

bit25: RSTIN 入力マスク機能

bit26: IR.IN1、IR.IN2、STB1 のデジタルフィルタ機能

bit27~31: 将来拡張用

Page 56: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

56

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

【備考】

・低速出力応答 1/低速出力応答 2について

低速出力応答 1 もしくは低速出力応答 2 が有効(=1)となっているデバイスでは、ハンドシェ

ーク出力関数を実行時に、STB2 が有効になるまでの固有の時間が異なります。

低速出力応答 1 速出力応答 2 内容

0 0 出力データ設定後 30μs 後に STB2 が有効。

1 0 出力データ設定後 300μs 後に STB2 が有効。

0 1 出力データ設定後 3ms 後に STB2 が有効。

DioSetOutputHandShakeConfig関数でSTB2 の遅延時間を設定した場合、上記の固有の遅延時間

は無効となり、関数で指定した遅延時間が使用されます。

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

DWORD DeviceConfig;

DWORD DeviceConfigEx;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

Ret = DioGetDeviceConfigEx( DeviceHandle, &DeviceConfig, &DeviceConfigEx);

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Dim DeviceConfig As Long

Dim DeviceConfigEx As Long

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

Ret = DioGetDeviceConfigEx( DeviceHandle, DeviceConfig, DeviceConfigEx )

Page 57: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

57

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

DeviceConfig: DWORD;

DeviceConfigEx: DWORD;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

begin

Ret := DioGetDeviceConfigEx( DeviceHandle, @DeviceConfig, @DeviceConfigEx );

end;

デバイス名「FBIDIO1」のデバイスがサポートしているデバイス機能情報を取得します。

Page 58: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

58

6. DioInputPoint 【機能】

任意の点数の入力接点の状態を読み込みます。

指定した開始接点番号から 1接点ずつ INT 型の変数にデータが格納されます。

データ 1 ← 外部回路 ON 状態

データ 0 ← 外部回路 OFF 状態

【書式】

●C言語

INT DioInputPoint (

HANDLE DeviceHandle,

PINT Buffer,

DWORD StartNum,

DWORD Num

);

●Visual Basic

Declare Function DioInputPoint Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByRef Buffer As Long, _

ByVal StartNum As Long, _

ByVal Num As Long _

)As Long

●Delphi

function DioInputPoint (

DeviceHandle: Thandle;

Buffer: Pinteger;

StartNum: DWORD;

Num: DWORD

): Integer; stdcall; external 'FbiDio.DLL';

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

Buffer デバイスから読み取ったデータを受け取るバッファを指すポインタ(参照渡し)です。

StartNum 入力開始接点番号 1~64(インタフェースモジュールがもつ接点数の 大値)を指定します。

DI デバイスの場合はピン IN1 が 1 に対応します。DIO デバイス(双方向)の場合ピン I/O1

が 1 に対応します。

Page 59: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

59

Num 入力接点数を指定します。

PCI-2470 の場合、入力接点の指定と、その指定で入力されるデータは下記のように対応してい

ます。

IN8 IN7 IN6 IN5 IN4 IN3 IN2 IN1

OUT8 OUT7 OUT6 OUT5 OUT4 OUT3 OUT2 OUT1

OUT1~OUT8:出力状態を読み込みます。出力状態の確認に利用できます。

”0” : 出力 OFF

”1” : 出力 ON

IN16 IN15 IN14 IN13 IN12 IN11 IN10 IN9

SIG8 SIG7 SIG6 SIG5 SIG4 SIG3 SIG2 SIG1

SIG1~SIG8 は下記のように、OUT1~OUT8 の異常検出状況を表します。

SIG1 ”0”:OUT1 正常

”1”:OUT1 異常

SIG2 ”0”:OUT2 正常

”1”:OUT2 異常

SIG3 ”0”:OUT3 正常

”1”:OUT3 異常

SIG4 ”0”:OUT4 正常

”1”:OUT4 異常

SIG5 ”0”:OUT5 正常

”1”:OUT5 異常

SIG6 ”0”:OUT6 正常

”1”:OUT6 異常

SIG7 ”0”:OUT7 正常

”1”:OUT7 異常

SIG8 ”0”:OUT8 正常

”1”:OUT8 異常

Page 60: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

60

IN24 IN23 IN22 IN21 IN20 IN19 IN18 IN17

SIG8 SIG7 SIG6 SIG5 SIG4 SIG3 SIG2 SIG1

異常検出割込みの要因選択(マスク)状態を読み込みます。

SIG1~SIG8 は下記のように OUT1~OUT8 に対応しています。

対応するビットが”0”の場合、割込み禁止です。”1”の場合、割込み有効です。

SIG1 OUT1

SIG2 OUT2

SIG3 OUT3

SIG4 OUT4

SIG5 OUT5

SIG6 OUT6

SIG7 OUT7

SIG8 OUT8

IN32 IN31 IN30 IN29 IN28 IN27 IN26 IN25

- - - - - - - -IN

汎用入力端子-IN(+IN 端子が電源)の状態を読み込みます。

”0” : OFF

”1” : ON

IN26 以降に対応する機能はありません。

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

Page 61: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

61

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

INT Buffer[8];

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

Ret = DioInputPoint( DeviceHandle, &Buffer[0], 16, 8 );

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Dim Buffer(8) As Long

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

Ret = DioInputPoint( DeviceHandle, Buffer(0), 16, 8 )

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

Buffer: Array[0..7] of Integer;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

Ret := DioInputPoint( DeviceHandle, @Buffer[0], 16, 8 );

end;

デバイス名「FBIDIO1」のデバイスの接点 16 番に 1、接点 17 番に 0、接点 18 番に 0、接点 19

番に 1、接点 20 番に 0、接点 21 番に 1、接点 22 番に 1、接点 23 番に 0を出力します。

Page 62: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

62

7. DioInputByte 【機能】

デジタル入出力デバイスの接点 8点分のデータを読み込み、1バイト(8ビット)の変数に格納

します。

【書式】

●C言語

INT DioInputByte (

HANDLE DeviceHandle,

INT No,

PBYTE Value

);

●Visual Basic

Declare Function DioInputByte Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByVal No As Long, _

ByRef Value As Byte _

)As Long

●Delphi

function DioInputByte (

DeviceHandle: Thandle;

No: Integer;

var Value: Byte

): Integer; stdcall; external 'FbiDio.DLL';

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

No 読み込む接点を下記の識別子で指定します。

FBIDIO_IN1_8 IN1~IN8 の 8 点分のデータを読み込みます。

FBIDIO_IN9_16 IN9~IN16 の 8 点分のデータを読み込みます。

FBIDIO_IN17_24 IN17~IN24 の 8 点分のデータを読み込みます。

FBIDIO_IN25_32 IN25~IN32 の 8 点分のデータを読み込みます。

FBIDIO_IN33_40 IN33~IN40 の 8 点分のデータを読み込みます。

FBIDIO_IN41_48 IN41~IN48 の 8 点分のデータを読み込みます。

FBIDIO_IN49_56 IN49~IN56 の 8 点分のデータを読み込みます。

FBIDIO_IN57_64 IN57~IN64 の 8 点分のデータを読み込みます。

Value 読み込まれたデータを格納する変数へのポインタ(参照渡し)を指定します。

Page 63: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

63

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

【備考】

データフォーマット

取得したデータは下記のようにビット毎に接点と対応しています。

ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

FBIDIO_IN1_8 IN8 IN7 IN6 IN5 IN4 IN3 IN2 IN1

FBIDIO_IN9_16 IN16 IN15 IN14 IN13 IN12 IN11 IN10 IN9

FBIDIO_IN17_24 IN24 IN23 IN22 IN21 IN20 IN19 IN18 IN17

FBIDIO_IN25_32 IN32 IN31 IN30 IN29 IN28 IN27 IN26 IN25

FBIDIO_IN33_40 IN40 IN39 IN38 IN37 IN36 IN35 IN34 IN33

FBIDIO_IN41_48 IN48 IN47 IN46 IN45 IN44 IN43 IN42 IN41

FBIDIO_IN49_56 IN56 IN55 IN54 IN53 IN52 IN51 IN50 IN49

FBIDIO_IN57_64 IN64 IN63 IN62 IN61 IN60 IN59 IN58 IN57

データ 0 ← 外部回路 OFF 状態

データ 1 ← 外部回路 ON 状態

PCI-2470 の場合、入力接点の指定と、その指定で入力されるデータは下記のように対応してい

ます。

ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

FBIDIO_IN1_8 OUT8 OUT7 OUT6 OUT5 OUT4 OUT3 OUT2 OUT1

OUT1~OUT8:出力状態を読み込みます。出力状態の確認に利用できます。

”0” : 出力 OFF

”1” : 出力 ON

Page 64: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

64

ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

FBIDIO_IN9_16 SIG8 SIG7 SIG6 SIG5 SIG4 SIG3 SIG2 SIG1

SIG1~SIG8 は下記のように、OUT1~OUT8 の異常検出状況を表します。

SIG1 ”0”:OUT1 正常

”1”:OUT1 異常

SIG2 ”0”:OUT2 正常

”1”:OUT2 異常

SIG3 ”0”:OUT3 正常

”1”:OUT3 異常

SIG4 ”0”:OUT4 正常

”1”:OUT4 異常

SIG5 ”0”:OUT5 正常

”1”:OUT5 異常

SIG6 ”0”:OUT6 正常

”1”:OUT6 異常

SIG7 ”0”:OUT7 正常

”1”:OUT7 異常

SIG8 ”0”:OUT8 正常

”1”:OUT8 異常

ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

FBIDIO_IN17_24 SIG8 SIG7 SIG6 SIG5 SIG4 SIG3 SIG2 SIG1

SIG1~SIG8:異常検出割込みの要因選択(マスク)状態を読み込みます。

SIG1~SIG8 は下記のように OUT1~OUT8 に対応しています。

対応するビットが”0”の場合、割込み禁止です。”1”の場合、割込み有効です。

SIG1 OUT1

SIG2 OUT2

SIG3 OUT3

SIG4 OUT4

SIG5 OUT5

SIG6 OUT6

SIG7 OUT7

SIG8 OUT8

ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

FBIDIO_IN25_32 - - - - - - - -IN

-IN:汎用入力端子

-IN(+IN 端子が電源)の状態を読み込みます。

”0” : OFF

”1” : ON

Page 65: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

65

ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

FBIDIO_IN33_40

FBIDIO_IN41_48

FBIDIO_IN49_56

FBIDIO_IN57_64

未使用

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

BYTE Value;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

Ret = DioInputByte( DeviceHandle, FBIDIO_IN1_8, &Value );

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Dim Value As Byte

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

Ret = DioInputByte( DeviceHandle, FBIDIO_IN1_8, Value )

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

Value: Byte;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

Ret := DioInputByte( DeviceHandle, FBIDIO_IN1_8, Value );

end;

デバイス名「FBIDIO1」のデバイスの IN1~IN8 の 1 バイトデータを変数 Value に取得します。

Page 66: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

66

8. DioInputWord 【機能】

デジタル入出力デバイスの接点 16 点分のデータを読み込み、1ワード(16 ビット)の変数に格

納します。

【書式】

●C言語

INT DioInputWord (

HANDLE DeviceHandle,

INT No,

PWORD Value

);

●Visual Basic

Declare Function DioInputWord Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByVal No As Long, _

ByRef Value As Integer _

)As Long

●Delphi

function DioInputWord (

DeviceHandle: Thandle;

No: Integer;

var Value: Word

): Integer; stdcall; external 'FbiDio.DLL';

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

No 読み込む接点を下記の識別子で指定します。

FBIDIO_IN1_16 IN1~IN16 の 16 点分のデータを読み込みます。

FBIDIO_IN17_32 IN17~IN32 の 16 点分のデータを読み込みます。

FBIDIO_IN33_48 IN33~IN48 の 16 点分のデータを読み込みます。

FBIDIO_IN49_64 IN49~IN64 の 16 点分のデータを読み込みます。

Value 読み込まれたデータを格納する変数へのポインタ(参照渡し)を指定します。

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

Page 67: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

67

【備考】

データフォーマット

取得したデータは下記のようにビット毎に接点と対応しています。

ビット bit15 bit14 bit13 ・・・ bit2 bit1 bit0

FBIDIO_IN1_16 IN16 IN15 IN14 ・・・ IN3 IN2 IN1

FBIDIO_IN17_32 IN32 IN31 IN30 ・・・ IN19 IN18 IN17

FBIDIO_IN33_48 IN48 IN47 IN46 ・・・ IN35 IN34 IN33

FBIDIO_IN49_64 IN64 IN63 IN62 ・・・ IN51 IN50 IN49

データ 0 ← 外部回路 OFF 状態

データ 1 ← 外部回路 ON 状態

PCI-2470 の場合、入力接点の指定と、その指定で入力されるデータは下記のように対応してい

ます。

ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

OUT8 OUT7 OUT6 OUT5 OUT4 OUT3 OUT2 OUT1

bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 FBIDIO_IN1_16

SIG8 SIG7 SIG6 SIG5 SIG4 SIG3 SIG2 SIG1

OUT1~OUT8:出力状態を読み込みます。出力状態の確認に利用できます。

”0” : 出力 OFF

”1” : 出力 ON

SIG1~SIG8 は下記のように、OUT1~OUT8 の異常検出状況を表します。

SIG1 ”0”:OUT1 正常

”1”:OUT1 異常

SIG2 ”0”:OUT2 正常

”1”:OUT2 異常

SIG3 ”0”:OUT3 正常

”1”:OUT3 異常

SIG4 ”0”:OUT4 正常

”1”:OUT4 異常

SIG5 ”0”:OUT5 正常

”1”:OUT5 異常

SIG6 ”0”:OUT6 正常

”1”:OUT6 異常

SIG7 ”0”:OUT7 正常

”1”:OUT7 異常

SIG8 ”0”:OUT8 正常

”1”:OUT8 異常

Page 68: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

68

ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

SIG8 SIG7 SIG6 SIG5 SIG4 SIG3 SIG2 SIG1

bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 FBIDIO_IN17_32

- - - - - - - -IN

SIG1~SIG8:異常検出割込みの要因選択(マスク)状態を読み込みます。

SIG1~SIG8 は下記のように OUT1~OUT8 に対応しています。

対応するビットが”0”の場合、割込み禁止です。”1”の場合、割込み有効です。

SIG1 OUT1

SIG2 OUT2

SIG3 OUT3

SIG4 OUT4

SIG5 OUT5

SIG6 OUT6

SIG7 OUT7

SIG8 OUT8

-IN:汎用入力端子

-IN(+IN 端子が電源)の状態を読み込みます。

”0” : OFF

”1” : ON

ビット bit15 bit14 bit13 ・・・ bit2 bit1 bit0

FBIDIO_IN33_48

FBIDIO_IN49_64 未使用

Page 69: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

69

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

WORD Value;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

Ret = DioInputWord( DeviceHandle, FBIDIO_IN1_16, &Value );

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Dim Value As Integer

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

Ret = DioInputWord( DeviceHandle, FBIDIO_IN1_16, Value )

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

Value: Word;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

Ret := DioInputWord( DeviceHandle, FBIDIO_IN1_16, Value );

end;

デバイス名「FBIDIO1」のデバイスの IN1~IN16 の 1 ワードデータを変数 Value に取得します。

Page 70: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

70

9. DioInputDword 【機能】

デジタル入出力デバイスから、32 点分のデータを読み込み、1ダブルワード(32 ビット)の変

数に格納します。

【書式】

●C言語

INT DioInputDword (

HANDLE DeviceHandle,

INT No,

PDWORD Value

);

●Visual Basic

Declare Function DioInputDword Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByVal No As Long, _

ByRef Value As Long _

)As Long

●Delphi

function DioInputDword (

DeviceHandle: Thandle;

No: Integer;

var Value: DWORD

): Integer; stdcall; external 'FbiDio.DLL';

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

No 読み込む接点を下記の識別子で指定します。

FBIDIO_IN1_32 IN1~IN32 の 32 点分のデータを読み込みます。

FBIDIO_IN33_64 IN33~IN64 の 32 点分のデータを読み込みます。

Value 読み込まれたデータを格納する変数へのポインタ(参照渡し)を指定します。

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

Page 71: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

71

【備考】

データフォーマット

取得したデータは下記のようにビット毎に接点と対応しています。

ビット bit31 bit30 bit29 ・・・ bit2 bit1 bit0

FBIDIO_IN1_32 IN32 IN31 IN30 ・・・ IN3 IN2 IN1

FBIDIO_IN33_64 IN64 IN63 IN62 ・・・ IN35 IN34 IN33

データ 0 ← 外部回路 OFF 状態

データ 1 ← 外部回路 ON 状態

PCI-2470 の場合、入力接点の指定と、その指定で入力されるデータは下記のように対応してい

ます。

ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

OUT8 OUT7 OUT6 OUT5 OUT4 OUT3 OUT2 OUT1

bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8

SIG8 SIG7 SIG6 SIG5 SIG4 SIG3 SIG2 SIG1

bit23 bit22 bit21 bit20 bit19 bit18 bit17 bit16

SIGM8 SIGM7 SIGM6 SIGM5 SIGM4 SIGM3 SIGM2 SIGM1

bit31 bit30 bit29 bit28 bit27 bit26 bit25 bit24

FBIDIO_IN1_32

- - - - - - - -IN

OUT1~OUT8:出力状態を読み込みます。出力状態の確認に利用できます。

”0” : 出力 OFF

”1” : 出力 ON

SIG1~SIG8 は下記のように、OUT1~OUT8 の異常検出状況を表します。

SIG1 ”0”:OUT1 正常

”1”:OUT1 異常

SIG2 ”0”:OUT2 正常

”1”:OUT2 異常

SIG3 ”0”:OUT3 正常

”1”:OUT3 異常

SIG4 ”0”:OUT4 正常

”1”:OUT4 異常

SIG5 ”0”:OUT5 正常

”1”:OUT5 異常

SIG6 ”0”:OUT6 正常

”1”:OUT6 異常

SIG7 ”0”:OUT7 正常

”1”:OUT7 異常

SIG8 ”0”:OUT8 正常

”1”:OUT8 異常

Page 72: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

72

SIGM1~SIGM8:異常検出割込みの要因選択(マスク)状態を読み込みます。

SIGM1~SIGM8 は下記のように OUT1~OUT8 に対応しています。

対応するビットが”0”の場合、割込み禁止です。”1”の場合、割込み有効です。

SIGM1 OUT1

SIGM2 OUT2

SIGM3 OUT3

SIGM4 OUT4

SIGM5 OUT5

SIGM6 OUT6

SIGM7 OUT7

SIGM8 OUT8

-IN:汎用入力端子

-IN(+IN 端子が電源)の状態を読み込みます。

”0” : OFF

”1” : ON

ビット bit31 bit30 bit29 ・・・ bit2 bit1 bit0

FBIDIO_IN33_64 未使用

Page 73: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

73

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

DWORD Value;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

Ret = DioInputDword( DeviceHandle, FBIDIO_IN1_32, &Value );

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Dim Value As Long

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

Ret = DioInputDword( DeviceHandle, FBIDIO_IN1_32, Value )

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

Value: DWORD;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

Ret := DioInputDword( DeviceHandle, FBIDIO_IN1_32, Value );

end;

デバイス名「FBIDIO1」のデバイスの IN1~IN32 の 1 ダブルワードデータを変数 Value に取得し

ます。

Page 74: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

74

10. DioOutputPoint

【機能】

任意の点数の出力接点の出力を制御します。

指定した開始接点番号から 1接点づつ INT 型の変数に格納されたデータで接点を制御します。

データ 1 → ON

データ 0 → OFF

【書式】

●C言語

INT DioOutputPoint (

HANDLE DeviceHandle,

PINT Buffer,

DWORD StartNum,

DWORD Num

);

●Visual Basic

Declare Function DioOutputPoint Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByRef Buffer As Long, _

ByVal StartNum As Long, _

ByVal Num As Long _

)As Long

●Delphi

function DioOutputPoint (

DeviceHandle: Thandle;

Buffer: Pinteger;

StartNum: DWORD;

Num: DWORD

): Integer; stdcall; external 'FbiDio.DLL';

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

Buffer デバイスへ出力するデータのバッファを指すポインタ(参照渡し)です。

StartNum 出力開始接点番号 1~64(インタフェースモジュールがもつ接点数の 大値)を指定します。

DO デバイスの場合はピン OUT1 が 1 に対応します。DIO デバイス(双方向)の場合ピン I/O1

が 1 に対応します。

Page 75: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

75

Num 出力接点数を指定します。

PCI-2470 の場合、出力接点の指定と、その指定で出力されるデータは下記のように対応してい

ます。

OUT9~OUT16、OUT25~OUT32 に対応する機能はありません。

OUT8 OUT7 OUT6 OUT5 OUT4 OUT3 OUT2 OUT1

OUT8 OUT7 OUT6 OUT5 OUT4 OUT3 OUT2 OUT1

OUT1~OUT8 の出力を制御します。

”0” : 出力 OFF

”1” : 出力 ON

OUT16 OUT15 OUT14 OUT13 OUT12 OUT11 OUT10 OUT9

SIG8 SIG7 SIG6 SIG5 SIG4 SIG3 SIG2 SIG1

異常検出割込みの要因選択(マスク)を設定します。SIG1~SIG8 は下記のように OUT1~OUT8

に対応しています。

対応するビットが”0”の場合、割込み禁止です、”1”の場合、割込み有効となります。

SIG1 OUT1

SIG2 OUT2

SIG3 OUT3

SIG4 OUT4

SIG5 OUT5

SIG6 OUT6

SIG7 OUT7

SIG8 OUT8

PCI-2758A, PCI-2858AL, PCI-2758AM の場合、出力接点の指定と、その指定で出力されるデー

タは下記のように対応しています。

OUT8 OUT7 OUT6 OUT5 OUT4 OUT3 OUT2 OUT1

OUT8 OUT7 OUT6 OUT5 OUT4 OUT3 OUT2 OUT1

OUT1~OUT8 の出力を制御します。

”0” : 出力 OFF

”1” : 出力 ON

Page 76: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

76

OUT16 OUT15 OUT14 OUT13 OUT12 OUT11 OUT10 OUT9

OUT8A

OUT8C

OUT7A

OUT7C

OUT6A

OUT6C

OUT5A

OUT5C

OUT4A

OUT4C

OUT3A

OUT3C

OUT2A

OUT2C

OUT1A

OUT1C

リードリレー接点 OUT1A,C~OUT8A,C の出力を制御します。

”0” : OUTxA と OUTxC には導通がありません

”1” : OUTxA と OUTxC が導通します

例:リードリレーOUT1A、OUT1C 間の導通を制御するには、出力接点 9を指定して関数をコール

します。

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

Page 77: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

77

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

INT Buffer[8];

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

Buffer[0] = 1;

Buffer[1] = 0;

Buffer[2] = 0;

Buffer[3] = 1;

Buffer[4] = 0;

Buffer[5] = 1;

Buffer[6] = 1;

Buffer[7] = 0;

Ret = DioOutputPoint( DeviceHandle, &Buffer[0], 16, 8 );

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Dim Buffer(8) As Long

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

Buffer(0) = 1

Buffer(1) = 0

Buffer(2) = 0

Buffer(3) = 1

Buffer(4) = 0

Buffer(5) = 1

Buffer(6) = 1

Buffer(7) = 0

Ret = DioOutputPoint( DeviceHandle, Buffer(0), 16, 8 )

Page 78: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

78

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

Buffer: Array[0..7] of Integer;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

Buffer[0] := 1;

Buffer[1] := 0;

Buffer[2] := 0;

Buffer[3] := 1;

Buffer[4] := 0;

Buffer[5] := 1;

Buffer[6] := 1;

Buffer[7] := 0;

Ret := DioOutputPoint( DeviceHandle, @Buffer[0], 16, 8 );

end;

デバイス名「FBIDIO1」のデバイスの接点 16 番に 1、接点 17 番に 0、接点 18 番に 0、接点 19

番に 1、接点 20 番に 0、接点 21 番に 1、接点 22 番に 1、接点 23 番に 0を出力します。

Page 79: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

79

11. DioOutputByte

【機能】

デジタル入出力デバイスの接点 8点分を制御します。

【書式】

●C言語

INT DioOutputByte (

HANDLE DeviceHandle,

INT No,

BYTE Value

);

●Visual Basic

Declare Function DioOutputByte Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByVal No As Long, _

ByVal Value As Byte _

)As Long

●Delphi

function DioOutputByte (

DeviceHandle: Thandle;

No: Integer;

Value: Byte

): Integer; stdcall; external 'FbiDio.DLL';

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

No データを出力する接点を下記の識別子で指定します。

FBIDIO_OUT1_8 OUT1~OUT8 の 8 点分のデータを出力します。

FBIDIO_OUT9_16 OUT9~OUT16 の 8 点分のデータを出力します。

FBIDIO_OUT17_24 OUT17~OUT24 の 8 点分のデータを出力します。

FBIDIO_OUT25_32 OUT25~OUT32 の 8 点分のデータを出力します。

FBIDIO_OUT33_40 OUT33~OUT40 の 8 点分のデータを出力します。

FBIDIO_OUT41_48 OUT41~OUT48 の 8 点分のデータを出力します。

FBIDIO_OUT49_56 OUT49~OUT56 の 8 点分のデータを出力します。

FBIDIO_OUT57_64 OUT57~OUT64 の 8 点分のデータを出力します。

Value 指定した接点へ出力するデータを指定します。

Page 80: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

80

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

【備考】

データフォーマット

指定したデータは下記のようにビット毎に接点と対応しています。

ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

FBIDIO_OUT1_8 OUT8 OUT7 OUT6 OUT5 OUT4 OUT3 OUT2 OUT1

FBIDIO_OUT9_16 OUT16 OUT15 OUT14 OUT13 OUT12 OUT11 OUT10 OUT9

FBIDIO_OUT17_24 OUT24 OUT23 OUT22 OUT21 OUT20 OUT19 OUT18 OUT17

FBIDIO_OUT25_32 OUT32 OUT31 OUT30 OUT29 OUT28 OUT27 OUT26 OUT25

FBIDIO_OUT33_40 OUT40 OUT39 OUT38 OUT37 OUT36 OUT35 OUT34 OUT33

FBIDIO_OUT41_48 OUT48 OUT47 OUT46 OUT45 OUT44 OUT43 OUT42 OUT41

FBIDIO_OUT49_56 OUT56 OUT55 OUT54 OUT53 OUT52 OUT51 OUT50 OUT49

FBIDIO_OUT57_64 OUT64 OUT63 OUT62 OUT61 OUT60 OUT59 OUT58 OUT57

データ 0 → OFF

データ 1 → ON

PCI-2470 の場合、出力接点の指定と、その指定で出力されるデータは下記のように対応してい

ます。

ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

FBIDIO_OUT1_8 OUT8 OUT7 OUT6 OUT5 OUT4 OUT3 OUT2 OUT1

OUT1~OUT8 の出力を制御します。

”0” : 出力 OFF

”1” : 出力 ON

ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

FBIDIO_OUT9_16 未使用

Page 81: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

81

ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

FBIDIO_IN17_24 SIG8 SIG7 SIG6 SIG5 SIG4 SIG3 SIG2 SIG1

SIG1~SIG8:異常検出割込みの要因選択(マスク)を設定します。

SIG1~SIG8 は下記のように OUT1~OUT8 に対応しています。

対応するビットが”0”の場合、割込み禁止です、”1”の場合、割込み有効となります。

SIG1 OUT1

SIG2 OUT2

SIG3 OUT3

SIG4 OUT4

SIG5 OUT5

SIG6 OUT6

SIG7 OUT7

SIG8 OUT8

ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

FBIDIO_IN25_32

FBIDIO_IN33_40

FBIDIO_IN41_48

FBIDIO_IN49_56

FBIDIO_IN57_64

未使用

Page 82: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

82

PCI-2758A, PCI-2758AL, PCI-2758AM の場合、出力接点の指定と、その指定で出力されるデー

タは下記のように対応しています。

ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

FBIDIO_OUT1_8 OUT8 OUT7 OUT6 OUT5 OUT4 OUT3 OUT2 OUT1

OUT1~OUT8 の出力を制御します。

”0” : 出力 OFF

”1” : 出力 ON

ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

FBIDIO_OUT9_16 OUT8A

OUT8C

OUT7A

OUT7C

OUT6A

OUT6C

OUT5A

OUT5C

OUT4A

OUT4C

OUT3A

OUT3C

OUT2A

OUT2C

OUT1A

OUT1C

リードリレー接点 OUT1A,C~OUT8A,C の出力を制御します。

”0” : OUTxA と OUTxC には導通がありません

”1” : OUTxA と OUTxC が導通します

ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

FBIDIO_IN17_24

FBIDIO_IN25_32

FBIDIO_IN33_40

FBIDIO_IN41_48

FBIDIO_IN49_56

FBIDIO_IN57_64

未使用

Page 83: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

83

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

Ret = DioOutputByte( DeviceHandle, FBIDIO_OUT1_8, 0x12 );

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

Ret = DioOutputByte( DeviceHandle, FBIDIO_OUT1_8, &H12 )

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

Ret := DioOutputByte( DeviceHandle, FBIDIO_OUT1_8, $12 );

end;

デバイス名「FBIDIO1」のデバイスの OUT2 と OUT5 を ON それ以外は OFF にします。

Page 84: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

84

12. DioOutputWord

【機能】

デジタル入出力デバイスの接点 16 点分を制御します。

【書式】

●C言語

INT DioOutputWord (

HANDLE DeviceHandle,

INT No,

WORD Value

);

●Visual Basic

Declare Function DioOutputWord Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByVal No As Long, _

ByVal Value As Integer _

)As Long

●Delphi

function DioOutputWord (

DeviceHandle: Thandle;

No: Integer;

Value: Word

): Integer; stdcall; external 'FbiDio.DLL';

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

No データを出力する接点を下記の識別子で指定します。

FBIDIO_OUT1_16 OUT1~OUT16 の 16 点分のデータを出力します。

FBIDIO_OUT17_32 OUT17~OUT32 の 16 点分のデータを出力します。

FBIDIO_OUT33_48 OUT33~OUT48 の 16 点分のデータを出力します。

FBIDIO_OUT49_64 OUT49~OUT64 の 16 点分のデータを出力します。

Value 指定した接点へ出力するデータを指定します。

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

Page 85: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

85

【備考】

データフォーマット

指定したデータは下記のようにビット毎に接点と対応しています。

ビット bit15 bit14 bit13 ・・・ bit2 bit1 bit0

FBIDIO_OUT1_16 OUT16 OUT15 OUT14 ・・・ OUT3 OUT2 OUT1

FBIDIO_OUT17_32 OUT32 OUT31 OUT30 ・・・ OUT19 OUT18 OUT17

FBIDIO_OUT33_48 OUT48 OUT47 OUT46 ・・・ OUT35 OUT34 OUT33

FBIDIO_OUT49_64 OUT64 OUT63 OUT62 ・・・ OUT51 OUT50 OUT49

データ 0 → OFF

データ 1 → ON

PCI-2470 の場合、出力接点の指定と、その指定で出力されるデータは下記のように対応してい

ます。

ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

OUT8 OUT7 OUT6 OUT4 OUT3 OUT2 OUT1 IN1

bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 FBIDIO_OUT1_16

- - - - - - - -

OUT1~OUT8:出力状態を読み込みます。出力状態の確認に利用できます。

”0” : 出力 OFF

”1” : 出力 ON

ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

SIG8 SIG7 SIG6 SIG5 SIG4 SIG3 SIG2 SIG1

bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 FBIDIO_OUT17_32

- - - - - - - -

SIG1~SIG8:異常検出割込みの要因選択(マスク)状態を読み込みます。

SIG1~SIG8 は下記のように OUT1~OUT8 に対応しています。

対応するビットが”0”の場合、割込み禁止です。”1”の場合、割込み有効です。

SIG1 OUT1

SIG2 OUT2

SIG3 OUT3

SIG4 OUT4

SIG5 OUT5

SIG6 OUT6

SIG7 OUT7

SIG8 OUT8

ビット bit15 bit14 bit13 ・・・ bit2 bit1 bit0

FBIDIO_OUT33_48

FBIDIO_OUT49_64未使用

Page 86: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

86

PCI-2758A, PCI-2758AL, PCI-2758AM の場合、出力接点の指定と、その指定で出力されるデー

タは下記のように対応しています。

ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

OUT8 OUT7 OUT6 OUT4 OUT3 OUT2 OUT1 IN1

bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 FBIDIO_OUT1_16

OUT8A

OUT8C

OUT7A

OUT7C

OUT6A

OUT6C

OUT5A

OUT5C

OUT4A

OUT4C

OUT3A

OUT3C

OUT2A

OUT2C

OUT1A

OUT1C

bit0~bit7 で OUT1~OUT8 の出力を制御します。

”0” : 出力 OFF

”1” : 出力 ON

bit8~bit15 リードリレー接点 OUT1A,C~OUT8A,C の出力を制御します。

”0” : OUTxA と OUTxC には導通がありません

”1” : OUTxA と OUTxC が導通します

ビット bit15 bit14 bit13 ・・・ bit2 bit1 bit0

FBIDIO_OUT17_32

FBIDIO_OUT33_48

FBIDIO_OUT49_64

未使用

Page 87: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

87

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

Ret = DioOutputWord( DeviceHandle, FBIDIO_OUT1_16, 0x1234 );

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

Ret = DioOutputWord( DeviceHandle, FBIDIO_OUT1_16, &H1234 )

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

Ret := DioOutputWord( DeviceHandle, FBIDIO_OUT1_16, $1234 );

end;

デバイス名「FBIDIO1」のデバイスの OUT3、OUT5、OUT6、OUT10、OUT13 を ON それ以外を OFF

にします。

Page 88: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

88

13. DioOutputDword

【機能】

デジタル入出力デバイスの接点 32 点分を制御します。

【書式】

●C言語

INT DioOutputDword (

HANDLE DeviceHandle,

INT No,

DWORD Value

);

●Visual Basic

Declare Function DioOutputDword Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByVal No As Long, _

ByVal Value As Long _

)As Long

●Delphi

function DioOutputDword (

DeviceHandle: Thandle;

No: Integer;

Value: DWORD

): Integer; stdcall; external 'FbiDio.DLL';

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

No データを出力する接点を下記の識別子で指定します。

FBIDIO_OUT1_32 OUT1~OUT32 の 32 点分のデータを出力します。

FBIDIO_OUT33_64 OUT33~OUT64 の 32 点分のデータを出力します。

Value 指定した接点へ出力するデータを指定します。

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

Page 89: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

89

【備考】

データフォーマット

指定したデータは下記のようにビット毎に接点と対応しています。

ビット bit31 bit30 bit29 ・・・ bit2 bit1 bit0

FBIDIO_OUT1_32 OUT32 OUT31 OUT30 ・・・ OUT3 OUT2 OUT1

FBIDIO_OUT33_64 OUT64 OUT63 OUT62 ・・・ OUT35 OUT34 OUT33

データ 0 ← 外部回路 OFF 状態

データ 1 ← 外部回路 ON 状態

PCI-2470 の場合、入力接点の指定と、その指定で入力されるデータは下記のように対応してい

ます。

ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

OUT8 OUT7 OUT6 OUT5 OUT4 OUT3 OUT2 OUT1

bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8

- - - - - - - -

bit23 bit22 bit21 bit20 bit19 bit18 bit17 bit16

SIGM8 SIGM7 SIGM6 SIGM5 SIGM4 SIGM3 SIGM2 SIGM1

bit31 bit30 bit29 bit28 bit27 bit26 bit25 bit24

FBIDIO_OUT1_32

- - - - - - - -

OUT1~OUT8:出力状態を読み込みます。出力状態の確認に利用できます。

”0” : 出力 OFF

”1” : 出力 ON

SIGM1~SIGM8:異常検出割込みの要因選択(マスク)状態を読み込みます。

SIGM1~SIGM8 は下記のように OUT1~OUT8 に対応しています。

対応するビットが”0”の場合、割込み禁止です。”1”の場合、割込み有効です。

SIGM1 OUT1

SIGM2 OUT2

SIGM3 OUT3

SIGM4 OUT4

SIGM5 OUT5

SIGM6 OUT6

SIGM7 OUT7

SIGM8 OUT8

ビット bit31 bit30 bit29 ・・・ bit2 bit1 bit0

FBIDIO_OUT33_64 未使用

Page 90: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

90

PCI-2758A, PCI-2758AL, PCI-2758AM の場合、出力接点の指定と、その指定で出力されるデー

タは下記のように対応しています。

ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

OUT8 OUT7 OUT6 OUT5 OUT4 OUT3 OUT2 OUT1

bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8

OUT8A

OUT8C

OUT7A

OUT7C

OUT6A

OUT6C

OUT5A

OUT5C

OUT4A

OUT4C

OUT3A

OUT3C

OUT2A

OUT2C

OUT1A

OUT1C

bit23 bit22 bit21 bit20 bit19 bit18 bit17 bit16

- - - - - - - -

bit31 bit30 bit29 bit28 bit27 bit26 bit25 bit24

FBIDIO_OUT1_32

- - - - - - - -

bit0~bit7 で OUT1~OUT8 の出力を制御します。

”0” : 出力 OFF

”1” : 出力 ON

bit8~bit15 リードリレー接点 OUT1A,C~OUT8A,C の出力を制御します。

”0” : OUTxA と OUTxC には導通がありません

”1” : OUTxA と OUTxC が導通します

bit16~bit31 未使用

ビット bit31 bit30 bit29 ・・・ bit2 bit1 bit0

FBIDIO_OUT33_64 未使用

Page 91: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

91

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

Ret = DioOutputDword( DeviceHandle,FBIDIO_OUT1_32, 0x12345678 );

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

Ret = DioOutputDword( DeviceHandle, FBIDIO_OUT1_32, &H12345678 )

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

Ret := DioOutputDword( DeviceHandle, FBIDIO_OUT1_32, $12345678 );

end;

デバイス名「FBIDIO1」のデバイスの OUT4、5、6、7、10、11、13、15、19、21、22、26、29

を ON それ以外を OFF にします。

Page 92: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

92

14. DioGetAckStatus

【機能】

デジタル入出力デバイスの ACK2 端子の状態、ACK2 レジスタの状態、STB2 端子の状態をアプリ

ケーションの領域に格納します。

【書式】

●C言語

INT DioGetAckStatus (

HANDLE DeviceHandle,

PBYTE AckStatus

);

●Visual Basic

Declare Function DioGetAckStatus Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByRef AckStatus As Byte _

)As Long

●Delphi

function DioGetAckStatus (

DeviceHandle: Thandle;

var AckStatus: Byte

): Integer; stdcall; external 'FbiDio.DLL';

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

Page 93: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

93

AckStatus ACK2 端子の状態等を格納する変数へのポインタ(参照渡し)を指定します。

ACK2 端子の状態、ACK2 レジスタの状態、STB2 端子の状態が下記のビット構成で格納されま

す。

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

ACK2 ACKR2 STB2 未使用 未使用 未使用 未使用 IR.IN2

ACK2 : ACK2 端子の状態

0 = ”Low” 1 = ”High”

ACKR2 : ACK2 レジスタの状態

0 = ACK2 が ”Low” になったことを示します

(ACK2 端子が ”High” になってもステータスを保持します)

1 = ACK2 が ”High” のまま変化がないことを示します

STB2 をセット(”Low”)することで、ACK2 レジスタはクリア(”1”)されます

STB2 : STB2 端子の状態

0 = ”Low” 1 = ”High”

IR.IN2 : IR.IN2 端子の状態

0 = ”Low” 1 = ”High”

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

【備考】

DioSetStbPulseCommand関数と併用してハンドシェーク出力を行う事ができます。制御信号(STB、

ACK)を使用したハンドシェーク出力の説明をインタフェースモジュールのUSER'S MANUALに記

載していますので、そちらも参照してください。

Page 94: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

94

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

BYTE AckStatus;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

Ret = DioGetAckStatus( DeviceHandle, &AckStatus );

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Dim AckStatus As Byte

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

Ret = DioGetAckStatus( DeviceHandle, AckStatus )

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

AckStatus: Byte;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

Ret := DioGetAckStatus( DeviceHandle, AckStatus );

end;

デバイス名「FBIDIO1」のデバイスから、制御信号の状態を変数 AckStatus に取得します。

Page 95: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

95

15. DioSetAckPulseCommand

【機能】

デジタル入出力デバイスの ACK1 出力制御、汎用パルス出力 PULS.OUT1 の出力制御を行います。

【書式】

●C言語

INT DioSetAckPulseCommand (

HANDLE DeviceHandle,

BYTE Command

);

●Visual Basic

Declare Function DioSetAckPulseCommand Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByVal Command As Byte _

)As Long

●Delphi

function DioSetAckPulseCommand (

DeviceHandle: Thandle;

Command: Byte

): Integer; stdcall; external 'FbiDio.DLL';

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

Command 下記のビットの組み合わせで制御を行います。

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

ACK11 ACK10 PO12 PO11 PO10 未使用 未使用 未使用

ACK1 出力制御

ACK11 ACK10

変化なし 0 0

ACK1 端子をクリア( ”Low” → ”High” ) 0 1

ACK1 端子をセット( ”High” → ”Low” ) 1 0

(その他の設定値は無効です。)

Page 96: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

96

汎用パルス出力(PULS.OUT1)制御

PO12 PO11 PO10

変化なし 0 0 0

PULS.OUT1 端子を High にする 0 0 1

PULS.OUT1 端子を Low にする 0 1 0

PULS.OUT1 端子から Low パルスを出力 1 0 0

(その他の設定値は無効です。)

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

【備考】

DioGetStbStatus関数と併用してハンドシェーク入力を行う事ができます。制御信号(STB、ACK)

を使用したハンドシェーク入力の説明をインタフェースモジュールのUSER'S MANUALに記載し

ていますので、そちらも参照してください。

Page 97: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

97

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

Ret = DioSetAckPulseCommand( DeviceHandle, 0x80 );

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

Ret = DioSetAckPulseCommand( DeviceHandle, &H80 )

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

Ret := DioSetAckPulseCommand( DeviceHandle, $80 );

end;

デバイス名「FBIDIO1」のデバイスの ACK1 端子をセットします。

Page 98: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

98

16. DioGetStbStatus

【機能】

デジタル入出力デバイスの STB1 端子の状態、STB1 レジスタの状態、ACK1 端子の状態をアプリ

ケーションの領域に格納します。

【書式】

●C言語

INT DioGetStbStatus (

HANDLE DeviceHandle,

PBYTE AckStatus

);

●Visual Basic

Declare Function DioGetStbStatus Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByRef AckStatus As Byte _

)As Long

●Delphi

function DioGetStbStatus (

DeviceHandle: Thandle;

var AckStatus: Byte

): Integer; stdcall; external 'FbiDio.DLL';

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

Page 99: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

99

StbStatus STB1 端子の状態等を格納する変数へのポインタ(参照渡し)を指定します。

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

STB1 STBR1 ACK1 LF 未使用 未使用 未使用 IR.IN1

STB1 : STB1 端子の状態

0 = ”Low” 1 = ”High”

STBR1 : STB1 レジスタの状態

0 = STB1 端子が ”Low” になったことを示します

(STB1 端子が ”High” になってもステータスを保持します)

1 = STB1 端子が ”High” のまま変化がないことを示します

ACK1 をセット(”Low”)することで、STB1 レジスタはクリア(”1”)されます

ACK1 : ACK1 端子の状態

0 = ”Low” 1 = ”High”

LF: 入力ラッチ機能の状態

0 = データラッチしていない

1 = データラッチしている

IR.IN1 : IR.IN1 端子の状態

0 = ”Low” 1 = ”High”

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

【備考】

DioSetAckPulseCommand関数と併用してハンドシェーク入力を行う事ができます。制御信号(STB、

ACK)を使用したハンドシェーク入力の説明をインタフェースモジュールのUSER'S MANUALに記

載していますので、そちらも参照してください。

Page 100: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

100

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

BYTE StbStatus;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

Ret = DioGetStbStatus( DeviceHandle, &StbStatus );

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Dim StbStatus As Byte

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

Ret = DioGetStbStatus( DeviceHandle, StbStatus )

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

StbStatus: Byte;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

Ret := DioGetStbStatus( DeviceHandle, StbStatus );

end;

デバイス名「FBIDIO1」のデバイスから、制御信号の状態を変数 pbStbStatus に取得します。

Page 101: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

101

17. DioSetStbPulseCommand

【機能】

デジタル入出力デバイスの STB2 出力、汎用パルス PULS.OUT2 出力を制御します

【書式】

●C言語

INT DioSetStbPulseCommand (

HANDLE DeviceHandle,

BYTE Command

);

●Visual Basic

Declare Function DioSetStbPulseCommand Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByVal Command As Byte _

)As Long

●Delphi

function DioSetStbPulseCommand (

DeviceHandle: Thandle;

Command: Byte

): Integer; stdcall; external 'FbiDio.DLL';

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

Command 下記のビットの組み合わせで制御を行います。

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

STB21 STB20 PO22 PO21 PO20 未使用 未使用 未使用

STB2 出力制御

STB21 STB20

変化なし 0 0

STB2 端子をクリア( ”Low” → ”High” ) 0 1

STB2 端子をセット( ”High” → ”Low” ) 1 0

(その他の設定値は無効です。)

Page 102: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

102

汎用パルス出力(PULS.OUT2)制御

PO22 PO21 PO20

変化なし 0 0 0

PULS.OUT2 端子を High にする 0 0 1

PULS.OUT2 端子を Low にする 0 1 0

PULS.OUT2 端子から Low パルスを出力 1 0 0

(その他の設定値は無効です。)

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

【備考】

DioGetAckStatus関数と併用してハンドシェーク出力を行う事ができます。制御信号(STB、ACK)

を使用したハンドシェーク出力の説明をインタフェースモジュールのUSER'S MANUALに記載し

ていますので、そちらも参照してください。

Page 103: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

103

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

Ret = DioSetStbPulseCommand( DeviceHandle, 0x80 );

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

Ret = DioSetStbPulseCommand( DeviceHandle, &H80 )

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

Ret := DioSetStbPulseCommand( DeviceHandle, $80 );

end;

デバイス名「FBIDIO1」のデバイスの STB2 端子をセットします。

Page 104: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

104

18. DioInputUniversalPoint

【機能】

汎用入力端子の状態を読み込みます。

※PCI バス製品、CardBus 製品に汎用入出力端子はありません。

【書式】

●C言語

INT DioInputUniversalPoint (

HANDLE DeviceHandle,

PDWORD UniversalPoint

);

●Visual Basic

Declare Function DioInputUniversalPoint Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByRef UniversalPoint As Long _

)As Long

●Delphi

function DioInputUniversalPoint (

DeviceHandle: Thandle;

var UniversalPoint: DWORD

): Integer; stdcall; external 'FbiDio.DLL';

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

UniversalPoint 汎用入力端子の状態を格納する変数へのポインタ(参照渡し)を指定します。

取得したデータは下記のようにビット毎に汎用入力端子と対応しています。

bit31~9 bit8 bit7 ・・・ bit2 bit1 bit0

未使用 PWR.IN1 DI8 ・・・ DI3 DI2 DI1

データ 0 ← 外部回路 OFF 状態

データ 1 ← 外部回路 ON 状態

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

Page 105: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

105

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

DWORD UniversalPoint;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

Ret = DioInputUniversalPoint( DeviceHandle, &UniversalPoint );

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Dim UniversalPoint As Long

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

Ret = DioInputUniversalPoint( DeviceHandle, UniversalPoint )

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

UniversalPoint: DWORD;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

Ret := DioInputUniversalPoint( DeviceHandle, UniversalPoint );

end;

デバイス名「FBIDIO1」のデバイスの汎用入力端子状態を読み込みます。

Page 106: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

106

19. DioOutputUniversalPoint

【機能】

汎用出力端子の出力を制御します。

※PCI バス製品、CardBus 製品に汎用入出力端子はありません。

【書式】

●C言語

INT DioOutputUniversalPoint (

HANDLE DeviceHandle,

DWORD UniversalPoint

);

●Visual Basic

Declare Function DioOutputUniversalPoint Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByVal UniversalPoint As Long _

)As Long

●Delphi

function DioOutputUniversalPoint (

DeviceHandle: Thandle;

UniversalPoint: DWORD

): Integer; stdcall; external 'FbiDio.DLL';

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

UniversalPoint 汎用出力端子の出力データを指定します。

出力データは下記のようにビット毎に汎用出力端子と対応しています。

bit31~8 bit7 ・・・ bit2 bit1 bit0

未使用 DO8 ・・・ DO3 DO2 DO1

データ 0 → OFF

データ 1 → ON

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

Page 107: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

107

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

Ret = DioOutputUniversalPoint( DeviceHandle, 0x80 );

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

Ret = DioOutputUniversalPoint( DeviceHandle, &H80 )

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

Ret := DioOutputUniversalPoint( DeviceHandle, $80 );

end;

デバイス名「FBIDIO1」のデバイスの汎用出力端子 DO8 を ON、それ以外は OFF にします。

Page 108: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

108

20. DioSetLatchStatus

【機能】

デジタル入出力デバイスの、入力状態ラッチ回路の接続を設定します。

ラッチ回路の接続を指定すると STB1 端子のセットで入力データをラッチ(保持)することが

できます。STB1、ACK1 端子を使用したハンドシェーク入力を行う場合に、信頼度を向上させる

ことができます。

【書式】

●C言語

INT DioSetLatchStatus (

HANDLE DeviceHandle,

BYTE LatchStatus

);

●Visual Basic

Declare Function DioSetLatchStatus Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByVal LatchStatus As Byte _

)As Integer

●Delphi

function DioSetLatchStatus (

DeviceHandle: Thandle;

LatchStatus: Byte

): Integer; stdcall; external 'FbiDio.DLL';

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

LatchStatus 入力状態ラッチ回路の接続状態を設定するデータを格納します。

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

PORT7 PORT6 PORT5 PORT4 PORT3 PORT2 PORT1 PORT0

0 = 無効

1 = 有効

PORT0 : IN1~IN8

PORT1 : IN9~IN16

PORT2 : IN17~IN24

PORT3 : IN25~IN32

PORT4 : IN33~IN40

PORT5 : IN41~IN48

PORT6 : IN49~IN56

PORT7 : IN57~IN64

Page 109: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

109

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

Ret = DioSetLatchStatus( DeviceHandle, 0x52 );

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

Ret = DioSetLatchStatus( DeviceHandle, &H52 )

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

Ret := DioSetLatchStatus( DeviceHandle, $52 );

end;

デバイス名「FBIDIO1」のデバイスの入力状態ラッチ回路接続状態を、PORT1,4,6 に設定します。

Page 110: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

110

21. DioGetLatchStatus

【機能】

デジタル入出力デバイスの、入力状態ラッチ回路の接続状態を取得します。

ラッチ回路の接続を指定すると STB1 端子のセットで入力データをラッチ(保持)することが

できます。STB1、ACK1 端子を使用したハンドシェーク入力を行う場合に、信頼度を向上させる

ことができます。

【書式】

●C言語

INT DioGetLatchStatus (

HANDLE DeviceHandle,

PBYTE LatchStatus

);

●Visual Basic

Declare Function DioGetLatchStatus Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByRef LatchStatus As Byte _

)As Integer

●Delphi

function DioGetLatchStatus (

DeviceHandle: Thandle;

var LatchStatus: Byte

): Integer; stdcall; external 'FbiDio.DLL';

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

LatchStatus 入力状態ラッチ回路の接続状態を格納する変数へのポインタ(参照渡し)を指定します。

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

PORT7 PORT6 PORT5 PORT4 PORT3 PORT2 PORT1 PORT0

0 = 無効

1 = 有効

PORT0 : IN1~IN8

PORT1 : IN9~IN16

PORT2 : IN17~IN24

PORT3 : IN25~IN32

PORT4 : IN33~IN40

PORT5 : IN41~IN48

PORT6 : IN49~IN56

PORT7 : IN57~IN64

Page 111: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

111

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

BYTE LathchStatus;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

Ret = DioGetLatchStatus( DeviceHandle, &LathchStatus );

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Dim LathchStatus As Byte

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

Ret = DioGetLatchStatus( DeviceHandle, LatchStatus )

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

LathchStatus: Byte;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

Ret := DioGetLatchStatus( DeviceHandle, LatchStatus );

end;

デバイス名「FBIDIO1」のデバイスの入力状態ラッチ回路接続状態を、変数 LatchStatus に格納

します。

Page 112: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

112

22. DioSetRstinMask

【機能】

デジタル入出力デバイスの外部リセット(RSTIN)入力のマスクを設定します。

本関数は、外部リセットマスク機能を持った製品の専用関数です。

※外部リセットマスクの有無については、DioGetDeviceConfigEx関数にて確認することができ

ます。

【書式】

●C言語

INT DioSetRstinMask (

HANDLE DeviceHandle,

DWORD RstinMask

);

●Visual Basic

Declare Function DioSetRstinMask Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByVal RstinMask As Long _

)As Integer

●Delphi

function DioSetRstinMask (

DeviceHandle: Thandle;

RstinMask: DWORD

): Integer; stdcall; external 'FbiDio.DLL';

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

RstinMask RSTIN のマスク/アンマスクを設定するデータを指定します。

値 内容

0 RSTIN 入力のマスクが無効

(RSTIN 入力でリセットが発生します)

FBIDIO_RSTIN_MASK RSTIN 入力のマスクが有効

(RSTIN 入力してもリセットが発生しません)

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

Page 113: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

113

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

Ret = DioSetRstinMask( DeviceHandle, FBIDIO_RSTIN_MASK );

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

Ret = DioSetRstinMask( DeviceHandle, FBIDIO_RSTIN_MASK )

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

Ret := DioSetRstinMask( DeviceHandle, FBIDIO_RSTIN_MASK );

end;

デバイス名「FBIDIO1」のデバイスの、RSTIN のマスクを有効に設定します。

Page 114: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

114

23. DioGetRstinMask

【機能】

デジタル入出力デバイスの外部リセット(RSTIN)入力のマスク機能に対する設定値を取得し

ます。

本関数は、外部リセット入力のマスク機能を持った製品の専用関数です。

※外部リセットマスクの有無については、DioGetDeviceConfigEx関数にて確認することができ

ます。

【書式】

●C言語

INT DioGetRstinMask (

HANDLE DeviceHandle,

PDWORD RstinMask

);

●Visual Basic

Declare Function DioGetRstinMask Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByRef RstinMask As Long _

)As Integer

●Delphi

function DioGetRstinMask (

DeviceHandle: Thandle;

var RstinMask: DWORD

): Integer; stdcall; external 'FbiDio.DLL';

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

RstinMask RSTIN のマスク/アンマスクの状態を格納する変数へのポインタ(参照渡し)を指定します。

関数が正常に終了すると、RstinMask には下記の値が格納されます。

値 内容

0 RSTIN 入力のマスクが無効

(RSTIN 入力でリセットが発生します)

FBIDIO_RSTIN_MASK RSTIN 入力のマスクが有効

(RSTIN 入力してもリセットが発生しません)

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

Page 115: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

115

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

DWORD RstinMask;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

Ret = DioGetRstinMask( DeviceHandle, &RstinMask);

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Dim RstinMask As Long

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

Ret = DioGetRstinMask( DeviceHandle, RstinMask )

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

RstinMask: DWORD;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

Ret := DioGetRstinMask( DeviceHandle, RstinMask );

end;

デバイス名「FBIDIO1」のデバイスの RSTIN マスク状態を、変数 RstinMask へ格納します。

Page 116: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

116

24. DioGetResetInStatus

【機能】

デジタル入出力デバイスの、外部リセット入力信号の状態を取得します。

【書式】

●C言語

INT DioGetResetInStatus (

HANDLE DeviceHandle,

PBYTE ResetInStatus

);

●Visual Basic

Declare Function DioGetResetInStatus Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByRef ResetInStatus As Byte _

)As Integer

●Delphi

function DioGetResetInStatus (

DeviceHandle: Thandle;

var ResetInStatus: Byte

): Integer; stdcall; external 'FbiDio.DLL';

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

ResetInStatus 外部リセット入力信号の状態を格納する変数へのポインタ(参照渡し)を指定します。

0 = リセット入力無効

1 = リセット入力有効

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

【備考】

外部リセット信号が有効の間(ResetInStatus = 1)は、出力、及び割り込みマスク、要因等の

設定をすることができません。外部リセット信号入力でリセットされた場合、

DioGetResetInStatusでリセット入力信号が無効になったことを確認してからインタフェース

モジュールの再設定を行ってください。

Page 117: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

117

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

BYTE ResetInStatus;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

Ret = DioGetResetInStatus( DeviceHandle, &ResetInStatus );

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Dim ResetInStatus As Byte

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

Ret = DioGetResetInStatus( DeviceHandle, ResetInStatus )

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

ResetInStatus: Byte;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

Ret := DioGetResetInStatus( DeviceHandle, ResetInStatus );

end;

デバイス名「FBIDIO1」のデバイスの外部リセット入力信号の状態を変数 ResetInStatus に取得

します。

Page 118: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

118

25. DioGetBackGroundUseTimer

【機能】

バックグランド処理でインタフェースモジュール上のタイマを使用するか、パソコンのタイマ

を使用するかの設定情報を取得します。

【書式】

●C言語

INT DioGetBackGroundUseTimer (

HANDLE DeviceHandle,

PINT Use

);

●Visual Basic

Declare Function DioGetBackGroundUseTimerLib Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByRef Use As Long _

)As Long

●Delphi

function DioGetBackGroundUseTimer (

DeviceHandle: Thandle;

Use: Pinteger

): Integer; stdcall; external 'FbiDio.DLL';

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

Use バックグランド処理にインタフェースモジュール上のタイマを使用するか、パソコンのタ

イマを使用するかの設定情報を取得する変数へのポインタ(参照渡し)を指定します。

取得されたデータは下記の設定に対応しています。

0: パソコンのタイマを使用します。

1(0 以外): インタフェースモジュール上のタイマを使用します。

イ ン タ フ ェ ー ス モ ジ ュ ー ル 上 の タ イ マ を 使 用 す る 場 合 、

DioSetTimerConfig関数、DioGetTimerConfig関数、DioGetTimerCount関

数を使用できません。

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

Page 119: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

119

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

INT Use;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

Ret = DioGetBackGroundUseTimer( DeviceHandle, &Use );

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Dim Use As Long

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

Ret = DioGetBackGroundUseTimer( DeviceHandle, Use )

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

Use: Integer;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

Ret := DioGetBackGroundUseTimer( DeviceHandle, Use );

end;

デバイス名「FBIDIO1」のデバイスのバックグランド処理でインタフェースモジュール上のタイ

マを使用するか、パソコンのタイマを使用するかの設定情報を Use に取得します。

Page 120: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

120

26. DioSetBackGroundUseTimer

【機能】

バックグランド処理でインタフェースモジュール上のタイマを使用するか、パソコンのタイマ

を使用するかを設定します。

【書式】

●C言語

INT DioSetBackGroundUseTimer (

HANDLE DeviceHandle,

INT Use

);

●Visual Basic

Declare Function DioSetBackGroundUseTimer Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByVal Use As Long _

)As Long

●Delphi

function DioSetBackGroundUseTimer (

DeviceHandle: Thandle;

Use: Integer

): Integer; stdcall; external 'FbiDio.DLL';

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

Use バックグランド処理にインタフェースモジュール上のタイマを使用するか、パソコンのタ

イマを使用するかの設定情報を取得する変数へのポインタ(参照渡し)を指定します。取

得されたデータは下記の設定に対応しています。

0: パソコンのタイマを使用します。

1(0 以外): インタフェースモジュール上のタイマを使用します。

イ ン タ フ ェ ー ス モ ジ ュ ー ル 上 の タ イ マ を 使 用 す る 場 合 、

DioSetTimerConfig関数、DioGetTimerConfig関数、DioGetTimerCount関

数を使用できません。

※PCI-293544, PCI-293544U, PCI-293588 の場合、0を指定することはできません。

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

Page 121: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

121

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

Ret = DioSetBackGroundUseTimer( DeviceHandle, 1 );

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

Ret = DioSetBackGroundUseTimer( DeviceHandle, 1 )

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

Ret := DioSetBackGroundUseTimer( DeviceHandle, 1 );

end;

デバイス名「FBIDIO1」のデバイスのバックグランド処理で使用するタイマの設定を行います。

Page 122: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

122

27. DioSetBackGround

【機能】

バックグランド処理(関数名に Back が付加されている関数による処理)の接点番号、接点数、

処理回数を設定します。

バックグランド処理を行う前に本関数で設定が必要です。

【書式】

●C言語

HANDLE DioSetBackGround (

HANDLE DeviceHandle,

DWORD StartPoint,

DWORD PointNum,

DWORD ValueNum,

DWORD Cycle,

DWORD Count,

DWORD Option

);

●Visual Basic

Declare Function DioSetBackGround Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByVal StartPoint As Long, _

ByVal PointNum As Long, _

ByVal ValueNum As Long, _

ByVal Cycle As Long, _

ByVal Count As Long, _

ByVal Option As Long _

)As Long

●Delphi

function DioSetBackGround (

DeviceHandle: Thandle;

StartPoint: DWORD;

PointNum: DWORD;

ValueNum: DWORD;

Cycle: DWORD;

Count: DWORD;

Option: DWORD

): THandle; stdcall; external 'FbiDio.DLL';

Page 123: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

123

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

StartPoint バックグランド入力または出力、監視を行う開始接点番号を指定します。DI デバイスの場

合はピン IN1 が 1 に対応します。DO デバイスの場合はピン OUT1 が 1 に対応します。DIO デ

バイス(双方向)の場合ピン I/O1 が 1 に対応します。

PointNum バックグランド入力または出力を行う接点数を指定します。

ValueNum 1 接点に割り当てるバッファ数

Cycle バックグランド処理周期/監視分解能を指定します。単位 ms。1ms 以上 1ms 単位で設定可

能。

Count 処理回数です。0 を指定するとコールしたバックグランド処理は、DioStopBackGround関数

をコールするまで繰り返し処理を行います。

※ 0 指定はバックグランド出力でのみ使用可能です。

Option 処理オプション。将来拡張用です。0を指定します。

【戻り値】

DioSetBackGround関数は処理が正常終了しますと、バックグランド処理ハンドルを返します。

設定に失敗した場合には、INVALID_HANDLE_VALUE(FFFFFFFFh)が返されます。

Page 124: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

124

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

HANDLE BackgroundHandle;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

BackgroundHandle = DioSetBackGround( DeviceHandle, 1, 5, 2, 100, 10, 0 );

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Dim BackgroundHandle As Long

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

BackgroundHandle = DioSetBackGround( DeviceHandle, 1, 5, 2, 100, 10, 0 )

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

BackgroundHandle: THandle;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

BackgroundHandle := DioSetBackGround( DeviceHandle, 1, 5, 2, 100, 10, 0 );

end;

デバイス名「FBIDIO1」のデバイスの接点 1番から接点 5番に対して 1接点に割り当てるバッフ

ァ数 2、周期 100ms 回数 10 回、のバックグランド処理を行うための設定を行います。

Page 125: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

125

28. DioFreeBackGround

【機能】

DioSetBackGroundで設定したバックグランド処理の設定を解放します。

バックグランド処理を行う必要がなくなった時点で必ず本関数で設定を解放してください。

バックグランド処理実行中の場合は、その処理を停止させ設定を解放します。

【書式】

●C言語

INT DioFreeBackGround (

HANDLE DeviceHandle,

HANDLE BackGroundHandle

);

●Visual Basic

Declare Function DioFreeBackGround Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByVal BackGroundHandle As Long _

)As Long

●Delphi

function DioFreeBackGround (

DeviceHandle: Thandle;

BackGroundHandle: Thandle

): Integer; stdcall; external 'FbiDio.DLL';

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

BackGroundHandle DioSetBackGround関数で取得したバックグランド処理ハンドルを指定します。

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

Page 126: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

126

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

HANDLE BackgroundHandle;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

BackgroundHandle = DioSetBackGround( DeviceHandle, 1, 5, 2, 100, 10, 0 );

Ret = DioFreeBackGround( DeviceHandle, BackGroundHandle );

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Dim BackgroundHandle As Long

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

BackgroundHandle = DioSetBackGround( DeviceHandle, 1, 5, 2, 100, 10, 0 )

Ret = DioFreeBackGround( DeviceHandle, BackGroundHandle )

Page 127: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

127

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

BackgroundHandle: THandle;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

BackgroundHandle := DioSetBackGround( DeviceHandle, 1, 5, 2, 100, 10, 0 );

Ret := DioFreeBackGround( DeviceHandle, BackGroundHandle );

end;

デバイス名「FBIDIO1」のデバイスの BackGroundHandle で表されるバックグランド処理の設定

を解放します。

Page 128: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

128

29. DioStopBackGround

【機能】

バックグランド処理(関数名に Back が付加されている関数による処理)を停止します。

停止したいバックグランド処理ハンドル(DioSetBackGround関数で取得)を指定して処理を停

止させます。

【書式】

●C言語

INT DioStopBackGround (

HANDLE DeviceHandle,

HANDLE BackGroundHandle

);

●Visual Basic

Declare Function DioStopBackGround Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByVal BackGroundHandle As Long _

)As Long

●Delphi

function DioStopBackGround (

DeviceHandle: Thandle;

BackGroundHandle: Thandle

): Integer; stdcall; external 'FbiDio.DLL';

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

BackGroundHandle DioSetBackGround関数で取得したバックグランド処理ハンドルを指定します。

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

Page 129: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

129

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

HANDLE BackgroundHandle;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

BackgroundHandle = DioSetBackGround( DeviceHandle, 1, 5, 2, 100, 10, 0 );

Ret = DioStopBackGround( DeviceHandle, BackGroundHandle );

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Dim BackgroundHandle As Long

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

BackgroundHandle = DioSetBackGround( DeviceHandle, 1, 5, 2, 100, 10, 0 )

Ret = DioStopBackGround( DeviceHandle, BackGroundHandle )

Page 130: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

130

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

BackgroundHandle: THandle;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

BackgroundHandle := DioSetBackGround( DeviceHandle, 1, 5, 2, 100, 10, 0 );

Ret := DioStopBackGround( DeviceHandle, BackGroundHandle );

end;

デバイス名「FBIDIO1」のデバイスの BackGroundHandle で表されるバックグランド処理を停止

させます。

Page 131: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

131

30. DioGetBackGroundStatus

【機能】

バックグランド処理(関数名に Back が付加されている関数による処理)の設定情報、実行状態

を取得します。

情報を取得したいバックグランド処理ハンドル(DioSetBackGround関数で取得)を指定します。

【書式】

●C言語

INT DioGetBackGroundStatus (

HANDLE DeviceHandle,

HANDLE BackGroundHandle,

PINT StartPoint,

PINT PointNum,

PINT ValueNum,

PINT Cycle,

PINT Count,

PINT Option,

PINT Execute,

PINT ExecCount,

PINT BufferOffset,

PINT Over

);

●Visual Basic

Declare Function DioGetBackGroundStatus Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByVal BackGroundHandle As Long, _

ByRef StartPoint As Long, _

ByRef PointNum As Long, _

ByRef ValueNum As Long, _

ByRef Cycle As Long, _

ByRef Count As Long, _

ByRef Option As Long, _

ByRef Execute As Long, _

ByRef ExecCount As Long, _

ByRef BufferOffset As Long, _

ByRef Over As Long _

)As Long

Page 132: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

132

●Delphi

function DioGetBackGroundStatus (

DeviceHandle: Thandle;

BackGroundHandle: Thandle;

var StartPoint: Integer;

var PointNum: Integer;

var ValueNum: Integer;

var Cycle: Integer;

var Count: Integer;

var Option: Integer;

var Execute: Integer;

var ExecCount: Integer;

var BufferOffset: Integer;

var Over: Integer

): Integer; stdcall; external 'FbiDio.DLL';

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

BackGroundHandle DioSetBackGround関数で取得したバックグランド処理ハンドルを指定します。

StartPoint 入出力開始接点番号を格納する変数へのポインタ(参照渡し)を指定します。

PointNum 接点数を格納する変数へのポインタ(参照渡し)を指定します。

ValueNum ひとつの接点に対して確保したバッファ数を格納する変数へのポインタ(参照渡し)を指

定します。

Cycle バックグランド処理周期、監視分解能を格納する変数へのポインタ(参照渡し)を指定し

ます。

Count 処理回数を格納する変数へのポインタ(参照渡し)を指定します。

Option 処理オプションを格納する変数へのポインタ(参照渡し)を指定します。

Page 133: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

133

Execute 実行フラグを格納する変数へのポインタ(参照渡し)を指定します。

ExecCount 実行回数を格納する変数へのポインタ(参照渡し)を指定します。

BufferOffset データ 新オフセットを格納する変数へのポインタ(参照渡し)を指定します。

Over バッファオーバーフラグを格納する変数へのポインタ(参照渡し)を指定します。

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

HANDLE BackgroundHandle;

INT StartPoint, PointNum, ValueNum, Cycle, Count, Option, Execute, ExecCount;

INT BufferOffset, Over;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

BackgroundHandle = DioSetBackGround( DeviceHandle, 1, 5, 2, 100, 10, 0 );

Ret = DioGetBackGroundStatus( DeviceHandle, BackGroundHandle,

&StartPoint, &PointNum, &ValueNum,

&Cycle, &Count, &Option, &Execute,

&ExecCount, &BufferOffset, &Over);

Page 134: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

134

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Dim BackgroundHandle As Long

Dim StartPoint As Long

Dim PointNum As Long

Dim ValueNum As Long

Dim Cycle As Long

Dim Count As Long

Dim Option As Long

Dim Execute As Long

Dim ExecCount As Long

Dim BufferOffset As Long

Dim Over As Long

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

BackgroundHandle = DioSetBackGround( DeviceHandle, 1, 5, 2, 100, 10, 0 )

Ret = DioGetBackGroundStatus( DeviceHandle, BackGroundHandle, _

StartPoint, PointNum, ValueNum, _

Cycle, Count, Option, Execute, _

ExecCount, BufferOffset, Over)

Page 135: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

135

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

BackgroundHandle: THandle;

nStartPoint: Integer;

PointNum: Integer;

ValueNum: Integer;

Cycle: Integer;

Count: Integer;

Option: Integer;

Execute: Integer;

ExecCount: Integer;

BufferOffset: Integer;

Over: Integer;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

BackgroundHandle := DioSetBackGround( DeviceHandle, 1, 5, 2, 100, 10, 0 );

Ret := DioGetBackGroundStatus( DeviceHandle, BackGroundHandle,

StartPoint, PointNum, ValueNum,

Cycle, Count, Option, Execute,

ExecCount, BufferOffset, Over);

end;

デバイス名「FBIDIO1」のデバイスの BackGroundHandle で表されるバックグランド処理の設定

情報、実行状態等を取得します。

Page 136: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

136

31. DioInputPointBack

【機能】

DioSetBackGround関数で設定した任意の入力接点の状態をバックグランドで読み込みます。

OVERLAPPED構造体(Overlapped)を指定した非同期コールの場合、FBIDIO_ERROR_IO_PENDING

を返し非同期での動作となります。

【書式】

●C言語

INT DioInputPointBack (

HANDLE DeviceHandle,

HANDLE BackGroundHandle,

PINT Buffer,

DWORD NumOfBytesToRead,

LPOVERLAPPED Overlapped

);

●Visual Basic

Declare Function DioInputPointBack Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByVal BackGroundHandle As Long, _

ByRef Buffer As Long, _

ByVal NumOfBytesToRead As Long, _

ByRef Overlapped As OVERLAPPED _

)As Long

●Delphi

function DioInputPointBack (

DeviceHandle: Thandle;

BackGroundHandle: Thandle;

Buffer: Pinteger;

NumOfBytesToRead: DWORD;

Overlapped: Poverlapped

): Integer; stdcall; external 'FbiDio.DLL';

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

BackGroundHandle DioSetBackGround関数で取得したバックグランド処理ハンドルを指定します。

Page 137: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

137

Buffer デバイスから読み取ったデータを受け取るバッファを指すポインタ(参照渡し)を指定し

ます。

NumOfBytesToRead デバイスから入力するバイト数を指定します。

DioSetBackGround関数で設定したPointNumとValueNumから求めます。

NumberOfBytesToRead = PointNum × ValueNum × sizeof(INT)

Overlapped OVERLAPPED構造体へのポインタ(参照渡し)を指定します。

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

【備考】

データフォーマット

取得したデータは下記のように接点と対応しています。

1 接点のデータサイズは 4バイト(INT 型)です。

32 ビット整数配列

インデックス 入力接点 入力回数

0 IN<StartNum + 0> 1 回目

1 IN<StartNum + 1> 1 回目

2 IN<StartNum + 2> 1 回目

: : :

PointNum - 1 IN<StartNum + PointNum - 1> 1 回目

PointNum + 0 IN<StartNum + 0> 2 回目

PointNum + 1 IN<StartNum + 1> 2 回目

PointNum + 2 IN<StartNum + 2> 2 回目

: : :

2 × PointNum - 1 IN<StartNum + PointNum - 1> 2 回目

2 × PointNum + 0 IN<StartNum + 0> 3 回目

: : :

ValueNum × PointNum - 1 IN<StartNum + PointNum - 1> ValueNum 回目

配列の総サイズは 接点数×入力回数 ×4 バイトになります。

Page 138: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

138

例)以下の設定を行った場合の配列関係を示します。

PointNum = 4; // 接点数

StartNum = 1; // 入出力開始番号

ValueNum = 3; // 入力回数

32 ビット整数配列

インデックス 入力接点 入力回数

0 IN1 1 回目

1 IN2 1 回目

2 IN3 1 回目

3 IN4 1 回目

4 IN1 2 回目

5 IN2 2 回目

6 IN3 2 回目

7 IN4 2 回目

8 IN1 3 回目

9 IN2 3 回目

10 IN3 3 回目

11 IN4 3 回目

次に 2次元配列を使った場合について示します。以下のような配列を用意します。

(C言語)

INT Data[入力回数][接点数];

例)以下の設定を行った場合の配列関係を示します。

INT Data[3][4]; //バッファ

ValueNum = 3; // 入力回数

InputPointNum = 4; // 接点数

StartPoint =1; // 入出力開始番号

Data[i][j] j

i 0 1 2 3 入力回数

0 IN1 IN2 IN3 IN4 1 回目

1 IN1 IN2 IN3 IN4 2 回目

2 IN1 IN2 IN3 IN4 3 回目

データ 0 ← 外部回路 OFF 状態

データ 1 ← 外部回路 ON 状態

Page 139: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

139

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

HANDLE BackgroundHandle;

INT Buffer[10];

DWORD PointNum = 10;

OVERLAPPED Overlapped;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

BackgroundHandle = DioSetBackGround( DeviceHandle, 1, 5, 2, 100, 2, 0 );

Overlapped.Offset = 0;

Overlapped.OffsetHigh = 0;

Overlapped.hEvent = CreateEvent(0, FALSE, FALSE, NULL);

Ret = DioInputPointBack( DeviceHandle, BackGroundHandle, &Buffer[0],

PointNum * sizeof(INT), &Overlapped );

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Dim BackgroundHandle As Long

Dim Buffer(10) As Long

Dim PointNum As Long

Dim Overlapped As OVERLAPPED

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

BackgroundHandle = DioSetBackGround( DeviceHandle, 1, 5, 2, 100, 2, 0 )

PointNum = 10

Overlapped.Offset = 0

Overlapped.OffsetHigh = 0

Overlapped.hEvent = CreateEvent(0, False, False, 0)

Ret = DioInputPointBack( DeviceHandle, BackgroundHandle, Buffer(0), _

PointNum * LenB(PointNum), Overlapped )

Page 140: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

140

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

BackgroundHandle: THandle;

Buffer: Array[0..9] of Integer;

PointNum: DWORD;

Overlapped: TOverLapped;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

BackgroundHandle := DioSetBackGround( DeviceHandle, 1, 5, 2, 100, 2, 0 );

PointNum := 10;

Overlapped.Offset := 0;

Overlapped.OffsetHigh := 0;

Overlapped.hEvent := CreateEvent(nil, False, False, nil);

Ret := DioInputPointBack( DeviceHandle, BackgroundHandle, @Buffer[0],

PointNum * sizeof(PointNum), @Overlapped );

end;

デバイス名「FBIDIO1」のデバイスの BackGroundHandle で表されるバックグランド処理の設定

内容でバックグランド入力を行います。

Page 141: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

141

32. DioOutputPointBack

【機能】

DioSetBackGround関数で設定した任意の出力接点の出力をバックグランドで制御します。

OVERLAPPED構造体(Overlapped)を指定した非同期コールの場合、FBIDIO_ERROR_IO_PENDING

を返し非同期での動作となります。

【書式】

●C言語

INT DioOutputPointBack (

HANDLE DeviceHandle,

HANDLE BackGroundHandle,

PINT Buffer,

DWORD NumOfBytesToWrite,

LPOVERLAPPED Overlapped

);

●Visual Basic

Declare Function DioOutputPointBack Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByVal BackGroundHandle As Long, _

ByRef Buffer As Long, _

ByVal NumOfBytesToWrite As Long, _

ByRef Overlapped As OVERLAPPED _

)As Long

●Delphi

function DioOutputPointBack (

DeviceHandle: Thandle;

BackGroundHandle: Thandle;

Buffer: Pinteger;

NumOfBytesToWrite: DWORD;

Overlapped: Poverlapped

): Integer; stdcall; external 'FbiDio.DLL';

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

BackGroundHandle DioSetBackGround関数で取得したバックグランド処理ハンドルを指定します。

Buffer デバイスへ出力するデータを格納したバッファを指すポインタ(参照渡し)を指定します。

Page 142: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

142

NumOfBytesToWrite デバイスに出力するバイト数を指定します。

DioSetBackGround関数で設定したPointNumとValueNumから求めます。

NumberOfBytesToWrite = PointNum × ValueNum × sizeof(INT)

Overlapped OVERLAPPED構造体へのポインタ(参照渡し)を指定します。

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

【備考】

PCI-293544U, PCI-293588 の場合、本関数実行中は「DioOutputPoint」「DioOutputByte」

「DioOutputWord」「DioOutputDword」関数を使用する事が出来ません。

データフォーマット

出力データは下記のように接点と対応しています。

1 接点のデータサイズは 4バイト(INT 型)です。

32 ビット整数配列

インデックス 出力接点 出力回数

0 OUT<StartNum + 0> 1 回目

1 OUT<StartNum + 1> 1 回目

2 OUT<StartNum + 2> 1 回目

・・・ ・・・ ・・・

PointNum - 1 OUT<StartNum + PointNum - 1> 1 回目

PointNum + 0 OUT<StartNum + 0> 2 回目

PointNum + 1 OUT<StartNum + 1> 2 回目

PointNum + 2 OUT<StartNum + 2> 2 回目

・・・ ・・・ ・・・

2 × PointNum - 1 OUT<StartNum + PointNum - 1> 2 回目

2 × PointNum + 0 OUT<StartNum + 0> 3 回目

・・・ ・・・ ・・・

ValueNum × PointNum - 1 OUT<StartNum + PointNum - 1> ValueNum 回目

配列の総サイズは 接点数×出力回数 ×4 バイトになります。

Page 143: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

143

例)以下の設定を行った場合の配列関係を示します。

PointNum = 4; // 接点数

StartNum = 1; // 入出力開始番号

ValueNum = 3; // 出力回数

32 ビット整数配列

インデックス 出力接点 出力回数

0 OUT1 1 回目

1 OUT2 1 回目

2 OUT3 1 回目

3 OUT4 1 回目

4 OUT1 2 回目

5 OUT2 2 回目

6 OUT3 2 回目

7 OUT4 2 回目

8 OUT1 3 回目

9 OUT2 3 回目

10 OUT3 3 回目

11 OUT4 3 回目

次に 2次元配列を使った場合について示します。以下のような配列を用意します。

(C言語)

INT Data[出力回数][接点数];

例)以下の設定を行った場合の配列関係を示します。

INT Data[3][4]; //バッファ

ValueNum = 3; // 出力回数

OutputPointNum = 4; // 接点数

StartPoint =1; // 入出力開始番号

Data[i][j] j

i 0 1 2 3 出力回数

0 OUT1 OUT2 OUT3 OUT4 1 回目

1 OUT1 OUT2 OUT3 OUT4 2 回目

2 OUT1 OUT2 OUT3 OUT4 3 回目

データ 0 → OFF

データ 1 → ON

Page 144: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

144

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

HANDLE BackgroundHandle;

INT Buffer[8];

DWORD PointNum = 8;

OVERLAPPED Overlapped;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

BackgroundHandle = DioSetBackGround( DeviceHandle, 1, 4, 2, 100, 10, 0 );

Buffer[0] = 1;

Buffer[1] = 0;

Buffer[2] = 0;

Buffer[3] = 1;

Buffer[4] = 0;

Buffer[5] = 1;

Buffer[6] = 1;

Buffer[7] = 0;

Overlapped.Offset = 0;

Overlapped.OffsetHigh = 0;

Overlapped.hEvent = CreateEvent(0, FALSE, FALSE, NULL);

Ret = DioOutputPointBack( DeviceHandle, BackGroundHandle, &Buffer[0],

PointNum * sizeof(INT), &Overlapped );

Page 145: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

145

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Dim BackgroundHandle As Long

Dim Buffer(8) As Long

Dim PointNum As Long

Dim Overlapped As OVERLAPPED

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

BackgroundHandle = DioSetBackGround( DeviceHandle, 1, 4, 2, 100, 10, 0 )

PointNum = 8

Buffer(0) = 1

Buffer(1) = 0

Buffer(2) = 0

Buffer(3) = 1

Buffer(4) = 0

Buffer(5) = 1

Buffer(6) = 1

Buffer(7) = 0

Overlapped.Offset = 0

Overlapped.OffsetHigh = 0

Overlapped.hEvent = CreateEvent(0, False, False, 0)

Ret = DioOutputPointBack( DeviceHandle, BackgroundHandle, Buffer(0), _

PointNum * LenB(PointNum), @Overlapped )

Page 146: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

146

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

BackgroundHandle: THandle;

Buffer: Array[0..7] of Integer;

PointNum: DWORD;

Overlapped: TOverLapped;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

BackgroundHandle := DioSetBackGround( DeviceHandle, 1, 4, 2, 100, 10, 0 );

PointNum := 8;

Buffer[0] := 1;

Buffer[1] := 0;

Buffer[2] := 0;

Buffer[3] := 1;

Buffer[4] := 0;

Buffer[5] := 1;

Buffer[6] := 1;

Buffer[7] := 0;

Overlapped.Offset := 0;

Overlapped.OffsetHigh := 0;

Overlapped.hEvent := CreateEvent(nil, False, False, nil);

Ret := DioOutputPointBack( DeviceHandle, BackgroundHandle, @Buffer[0],

PointNum * sizeof(PointNum), @Overlapped );

end;

デバイス名「FBIDIO1」のデバイスの BackGroundHandle で表されるバックグランド処理の設定

内容でバックグランド出力を行います。

Page 147: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

147

33. DioWatchPointBack

【機能】

DioSetBackGround関数で設定した任意の点数の状態を監視します。

状態が変化した時に OVERLAPPED構造体中に指定されたイベントをシグナル状態にし、変化デー

タを指定したバッファに格納します。

DioWatchPointBackをコールした時から接点状態の監視が開始されます。DioStopBackGround関

数をコールするまで監視し続けます。

DioWatchPointBackは 16 変化分を内部に保存可能となっています。16 変化を越える変化は保存

されません。DioWatchPointBackをコールして変化データが保存されている場合はすぐに制御を

戻します。OVERLAPPED構造体(Overlapped)を指定した非同期コールの場合、変化がない場合

はFBIDIO_ERROR_IO_PENDINGを返し非同期での動作となります。

【書式】

●C言語

INT DioWatchPointBack (

HANDLE DeviceHandle,

HANDLE BackGroundHandle,

PINT Buffer,

DWORD NumOfBytesToRead,

LPOVERLAPPED Overlapped

);

●Visual Basic

Declare Function DioWatchPointBack Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByVal BackGroundHandle As Long, _

ByRef Buffer As Long, _

ByVal NumOfBytesToRead As Long, _

ByRef Overlapped As OVERLAPPED _

)As Long

●Delphi

function DioWatchPointBack (

DeviceHandle: Thandle;

BackGroundHandle: Thandle;

Buffer: Pinteger;

NumOfBytesToRead: DWORD;

Overlapped: Poverlapped

): Integer; stdcall; external 'FbiDio.DLL';

Page 148: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

148

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

BackGroundHandle DioSetBackGround関数で取得したバックグランド処理ハンドルを指定します。

Buffer デバイスから読み取ったデータを受け取るバッファを指すポインタ(参照渡し)を指定し

ます。

NumOfBytesToRead デバイスから入力するバイト数を指定します。

DioSetBackGround関数で設定したPointNumとValueNumから求めます。

NumberOfBytesToRead = PointNum × ValueNum × sizeof(INT)

Overlapped OVERLAPPED構造体へのポインタ(参照渡し)を指定します。

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

【備考】

データフォーマット

取得したデータは下記のように接点と対応しています。

1 接点のデータサイズは 4バイト(INT 型)です。

32 ビット整数配列

インデックス 入力接点 入力回数

0 IN<StartNum + 0> 1 回目

1 IN<StartNum + 1> 1 回目

2 IN<StartNum + 2> 1 回目

: : :

PointNum - 1 IN<StartNum + PointNum - 1> 1 回目

PointNum + 0 IN<StartNum + 0> 2 回目

PointNum + 1 IN<StartNum + 1> 2 回目

PointNum + 2 IN<StartNum + 2> 2 回目

: : :

2 × PointNum - 1 IN<StartNum + PointNum - 1> 2 回目

2 × PointNum + 0 IN<StartNum + 0> 3 回目

: : :

ValueNum × PointNum - 1 IN<StartNum + PointNum - 1> ValueNum 回目

配列の総サイズは 接点数×入力回数 ×4 バイトになります。

Page 149: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

149

例)以下の設定を行った場合の配列関係を示します。

PointNum = 4; // 接点数

StartNum = 1; // 入出力開始番号

ValueNum = 3; // 入力回数

32 ビット整数配列

インデックス 入力接点 入力回数

0 IN1 1 回目

1 IN2 1 回目

2 IN3 1 回目

3 IN4 1 回目

4 IN1 2 回目

5 IN2 2 回目

6 IN3 2 回目

7 IN4 2 回目

8 IN1 3 回目

9 IN2 3 回目

10 IN3 3 回目

11 IN4 3 回目

次に 2次元配列を使った場合について示します。以下のような配列を用意します。

(C言語)

INT Data[入力回数][接点数];

例)以下の設定を行った場合の配列関係を示します。

INT Data[3][4]; //バッファ

ValueNum = 3; // 入力回数

InputPointNum = 4; // 接点数

StartPoint =1; // 入出力開始番号

Data[i][j] j

i 0 1 2 3 入力回数

0 IN1 IN2 IN3 IN4 1 回目

1 IN1 IN2 IN3 IN4 2 回目

2 IN1 IN2 IN3 IN4 3 回目

データ 0 ← 外部回路 OFF 状態

データ 1 ← 外部回路 ON 状態

Page 150: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

150

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

HANDLE BackgroundHandle;

INT Buffer[10];

DWORD PointNum = 10;

OVERLAPPED Overlapped;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

BackgroundHandle = DioSetBackGround( DeviceHandle, 1, 5, 2, 100, 2, 0 );

Overlapped.Offset = 0;

Overlapped.OffsetHigh = 0;

Overlapped.hEvent = CreateEvent(0, FALSE, FALSE, NULL);

Ret = DioWatchPointBack( DeviceHandle, BackGroundHandle, &Buffer[0],

PointNum * sizeof(INT), &Overlapped );

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Dim BackgroundHandle As Long

Dim Buffer(10) As Long

Dim PointNum As Long

Dim Overlapped As OVERLAPPED

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

BackgroundHandle = DioSetBackGround( DeviceHandle, 1, 5, 2, 100, 2, 0 )

PointNum = 10

Overlapped.Offset = 0

Overlapped.OffsetHigh = 0

Overlapped.hEvent = CreateEvent(0, False, False, 0)

Ret = DioWatchPointBack( DeviceHandle, BackgroundHandle, Buffer(0), _

PointNum * LenB(PointNum), Overlapped )

Page 151: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

151

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

BackgroundHandle: THandle;

Buffer: Array[0..9] of Integer;

PointNum: DWORD;

Overlapped: TOverLapped;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

BackgroundHandle := DioSetBackGround( DeviceHandle, 1, 5, 2, 100, 2, 0 );

PointNum := 10;

Overlapped.Offset := 0;

Overlapped.OffsetHigh := 0;

Overlapped.hEvent := CreateEvent(nil, False, False, nil);

Ret := DioWatchPointBack( DeviceHandle, BackgroundHandle, @Buffer[0],

PointNum * sizeof(PointNum), @Overlapped );

end;

デバイス名「FBIDIO1」のデバイスの BackGroundHandle で表されるバックグランド処理の設定

内容で接点の監視を行います。

Page 152: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

152

34. DioGetInputHandShakeConfig

【機能】

制御信号を使用したハンドシェーク入力の設定情報を取得します。

【書式】

●C言語

INT DioGetInputHandShakeConfig (

HANDLE DeviceHandle,

PINT InputHandShakeConfig,

PDWORD BitMask1,

PDWORD BitMask2

);

●Visual Basic

Declare Function DioGetInputHandShakeConfig Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByRef InputHandShakeConfig As Long, _

ByRef BitMask1 As Long, _

ByRef BitMask2 As Long _

)As Long

●Delphi

function DioGetInputHandShakeConfig (

DeviceHandle: Thandle;

var InputHandShakeConfig: Integer;

var BitMask1: DWORD;

var BitMask2: DWORD

): Integer; stdcall; external 'FbiDio.DLL';

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

InputHandShakeConfig ハンドシェーク入力に STB1 イベントを使用する/使用しないの設定を取得する変数へのポ

インタ(参照渡し)を指定します。

0 STB1 イベントを使用しない。STB1 信号をポーリングしてハ

ンドシェーク入力するため速度が遅くなります。

FBIDIO_STB1_ENABLE STB1 イベントを使用する。STB1 イベントを使用しない場合

よりハンドシェーク入力の速度が向上します。ただし、

DioEventRequestPending関数にてSTB1 イベント待ちを使用

できなくなります。

FBIDIO_STB1_HIGH_EDGE このフラグを指定すると STB1 の立ち上がりエッジのタイミ

ングを STB1 信号有効としハンドシェーク入力が動作しま

す。このフラグを指定しない場合は立ち下がりエッジのタイ

Page 153: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

153

ミングを STB1 信号有効とします。

BitMask1 入力データマスクビットを受け取る変数へのポインタ(参照渡し)を指定します。

IN1~IN32 に対応します。下記のように各ビットが入力接点に対応しています。

bit31 bit30 bit29 ・・・ bit2 bit1 bit0

IN32 IN31 IN30 ・・・ IN3 IN2 IN1

0 : データを無効にします。入力状態がどのような状態でも 0クリアされます。

1 : データ有効

BitMask2 入力データマスクビットを受け取る変数へのポインタ(参照渡し)を指定します。

IN33~IN64 に対応します。下記のように各ビットが入力接点に対応しています。

bit31 bit30 bit29 ・・・ bit2 bit1 bit0

IN64 IN63 IN62 ・・・ IN35 IN34 IN33

0 : データを無効にします。入力状態がどのような状態でも 0クリアされます。

1 : データ有効

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

INT InputHandShakeConfig;

DWORD BitMask1;

DWORD BitMask2;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

Ret = DioGetInputHandShakeConfig( DeviceHandle, &InputHandShakeConfig,

&BitMask1, &BitMask2 );

Page 154: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

154

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Dim InputHandShakeConfig As Long

Dim BitMask1 As Long

Dim BitMask2 As Long

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

Ret = DioGetInputHandShakeConfig( DeviceHandle, InputHandShakeConfig, _

BitMask1, BitMask2 )

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

InputHandShakeConfig: Integer;

BitMask1: DWORD;

BitMask2: DWORD;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

Ret := DioGetInputHandShakeConfig( DeviceHandle, InputHandShakeConfig,

BitMask1, BitMask2 );

end;

デバイス名「FBIDIO1」のデバイスのハンドシェーク入力の設定内容を取得します。

Page 155: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

155

35. DioSetInputHandShakeConfig

【機能】

制御信号を使用したハンドシェーク入力の設定を行います。

DioInputHandShake、DioInputHandShakeEx関数にてハンドシェーク入力を行う前にコールして

ください。

【書式】

●C言語

INT DioSetInputHandShakeConfig (

HANDLE DeviceHandle,

INT InputHandShakeConfig,

DWORD BitMask1,

DWORD BitMask2

);

●Visual Basic

Declare Function DioSetInputHandShakeConfig Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByVal InputHandShakeConfig As Long, _

ByVal BitMask1 As Long, _

ByVal BitMask2 As Long _

)As Long

●Delphi

function DioSetInputHandShakeConfig (

DeviceHandle: Thandle;

InputHandShakeConfig: Integer;

BitMask1: DWORD;

BitMask2: DWORD

): Integer; stdcall; external 'FbiDio.DLL';

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

Page 156: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

156

InputHandShakeConfig ハンドシェーク入力に STB1 イベントを使用する/使用しないの設定をします。弊社の出力

デバイスの STB2 信号に同期させる場合は FBIDIO_STB1_HIGH_EDGE を指定しないでください。

0 STB1 イベントを使用しない。STB1 信号をポーリングしてハ

ンドシェーク入力するため速度が遅くなります。

FBIDIO_STB1_ENABLE STB1 イベントを使用する。STB1 イベントを使用しない場合

よりハンドシェーク入力の速度が向上します。ただし、

DioEventRequestPending関数にてSTB1 イベント待ちを使用

できなくなります。

FBIDIO_STB1_HIGH_EDGE このフラグを指定すると STB1 の立ち上がりエッジのタイミ

ングを STB1 信号有効としハンドシェーク入力が動作しま

す。このフラグを指定しない場合は立ち下がりエッジのタイ

ミングを STB1 信号有効とします。

※STB1 イベントを有効にしたハンドシェーク入力を行うと、それ以降 IN1 の割り込みイベ

ントが発生しません。IN1 の割り込みイベントを使用する場合は再度、

DioSetInputHandShakeConfig 関数で InputHandShakeConfig パラメータを”0”にして、STB1

イベントを使用しない設定に切り替えてください。

BitMask1 入力データマスクビットを設定します。

IN1~IN32 に対応します。下記のように各ビットが入力接点に対応しています。電源 ON 時

のデフォルトはすべてのデータが無効に設定されています。

bit31 bit30 bit29 ・・・ bit2 bit1 bit0

IN32 IN31 IN30 ・・・ IN3 IN2 IN1

0 : データを無効にします。入力状態がどのような状態でも 0クリアされます。

1 : データ有効

BitMask2 入力データマスクビットを設定します。

IN33~IN64 に対応します。下記のように各ビットが入力接点に対応しています。電源 ON 時

のデフォルトはすべてのデータが無効に設定されています。

bit31 bit30 bit29 ・・・ bit2 bit1 bit0

IN64 IN63 IN62 ・・・ IN35 IN34 IN33

0 : データを無効にします。入力状態がどのような状態でも 0クリアされます。

1 : データ有効

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

Page 157: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

157

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

Ret = DioSetInputHandShakeConfig( DeviceHandle, FBIDIO_STB1_ENABLE,

0xFFFFFFFF, 0xFFFFFFFF );

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

Ret = DioSetInputHandShakeConfig( DeviceHandle, FBIDIO_STB1_ENABLE, _

&HFFFFFFFF, &HFFFFFFFF )

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

Ret := DioSetInputHandShakeConfig( DeviceHandle, FBIDIO_STB1_ENABLE,

$FFFFFFFF, $FFFFFFFF );

end;

デバイス名「FBIDIO1」のデバイスのハンドシェーク入力の設定を行います。

Page 158: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

158

36. DioGetOutputHandShakeConfig

【機能】

制御信号を使用したハンドシェーク出力の設定情報を取得します。

【書式】

●C言語

INT DioGetOutputHandShakeConfig (

HANDLE DeviceHandle,

PINT OutputHandShakeConfig,

PDWORD BitMask1,

PDWORD BitMask2

);

●Visual Basic

Declare Function DioGetOutputHandShakeConfig Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByRef OutputHandShakeConfig As Long, _

ByRef BitMask1 As Long, _

ByRef BitMask2 As Long _

)As Long

●Delphi

function DioGetOutputHandShakeConfig (

DeviceHandle: Thandle;

var OutputHandShakeConfig: Integer;

var BitMask1: DWORD;

var BitMask2: DWORD

): Integer; stdcall; external 'FbiDio.DLL';

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

Page 159: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

159

OutputHandShakeConfig ハンドシェーク入力に STB1 イベントを使用する/使用しないの設定を取得する変数へのポ

インタ(参照渡し)を指定します。

0 ACK2 イベントを使用しない。ACK2 信号をポーリングしてハ

ンドシェーク出力するため速度が遅くなります。

FBIDIO_ACK2_ENABLE ACK2 イベントを使用する。ACK2 イベントを使用しない場合

よりハンドシェーク出力の速度が向上します。ただし、

DioEventRequestPending関数にてACK2 イベント待ちを使用

できなくなります。

FBIDIO_ACK2_HIGH_EDGE このフラグを指定すると ACK2 の立ち上がりエッジのタイミ

ングを ACK2 信号有効としハンドシェーク出力が動作しま

す。このフラグを指定しない場合は立ち下がりエッジのタイ

ミングを ACK2 信号有効とします。

下記の識別子が論理和で指定されている場合、出力完了タイミングが変更されています。

FBIDIO_WAIT_LAST_ACK2 このフラグを指定すると DioOutputHandShake関数/

DioOutputHandShakeEx関数による 終データの出力後、ACK2

の応答があった時点で関数が完了となります。

このフラグを指定しない場合は、 終データの出力後 ACK2

の応答を待たずに上記出力関数が完了となります。

下記の識別子が論理和で指定されている場合、出力データ設定後に STB2 を有効にするまで

の遅延時間が設定されています。

FBIDIO_STB2_DELAY_10US STB2 の遅延時間が 10μs に設定されています。

FBIDIO_STB2_DELAY_30US STB2 の遅延時間が 30μs に設定されています。

FBIDIO_STB2_DELAY_50US STB2 の遅延時間が 50μs に設定されています。

FBIDIO_STB2_DELAY_100US STB2 の遅延時間が 100μs に設定されています。

FBIDIO_STB2_DELAY_300US STB2 の遅延時間が 300μs に設定されています。

FBIDIO_STB2_DELAY_500US STB2 の遅延時間が 500μs に設定されています。

FBIDIO_STB2_DELAY_1MS STB2 の遅延時間が 1ms に設定されています。

FBIDIO_STB2_DELAY_3MS STB2 の遅延時間が 3ms に設定されています。

FBIDIO_STB2_DELAY_5MS STB2 の遅延時間が 5ms に設定されています。

FBIDIO_STB2_DELAY_10MS STB2 の遅延時間が 10ms に設定されています。

FBIDIO_STB2_DELAY_30MS STB2 の遅延時間が 30ms に設定されています。

FBIDIO_STB2_DELAY_50MS STB2 の遅延時間が 50ms に設定されています。

Page 160: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

160

BitMask1 出力データマスクビットを受け取る変数へのポインタ(参照渡し)を指定します。

OUT1~OUT32 に対応します。下記のように各ビットが入力接点に対応しています。

bit31 bit30 bit29 ・・・ bit2 bit1 bit0

OUT32 OUT31 OUT30 ・・・ OUT3 OUT2 OUT1

0 : データを無効にします。

対応する接点への出力を変化させずにハンドシェーク出力を行います。

1 : データ有効

BitMask2 出力データマスクビットを受け取る変数へのポインタ(参照渡し)を指定します。

OUT33~OUT64 に対応します。下記のように各ビットが入力接点に対応しています。

bit31 bit30 bit29 ・・・ bit2 bit1 bit0

OUT64 OUT63 OUT62 ・・・ OUT35 OUT34 OUT33

0 : データを無効にします。

対応する接点への出力を変化させずにハンドシェーク出力を行います。

1 : データ有効

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

Page 161: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

161

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

INT OutputHandShakeConfig;

DWORD BitMask1;

DWORD BitMask2;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

Ret = DioGetOutputHandShakeConfig( DeviceHandle, &OutputHandShakeConfig,

&BitMask1, &BitMask2 );

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Dim OutputHandShakeConfig As Long

Dim BitMask1 As Long

Dim BitMask2 As Long

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

Ret = DioGetOutputHandShakeConfig( DeviceHandle, OutputHandShakeConfig, _

BitMask1, BitMask2 )

Page 162: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

162

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

InputHandShakeConfig: Integer;

BitMask1: DWORD;

BitMask2: DWORD;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

Ret := DioGetOutputHandShakeConfig( DeviceHandle, OutputHandShakeConfig,

BitMask1, BitMask2 );

end;

デバイス名「FBIDIO1」のデバイスのハンドシェーク出力の設定内容を取得します。

Page 163: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

163

37. DioSetOutputHandShakeConfig

【機能】

制御信号を使用したハンドシェーク出力の設定を行います。

DioOutputHandShake、DioOutputHandShakeEx関数にてハンドシェーク出力を行う前にコールし

てください。

【書式】

●C言語

INT DioSetOutputHandShakeConfig (

HANDLE DeviceHandle,

INT OutputHandShakeConfig,

DWORD BitMask1,

DWORD BitMask2

);

●Visual Basic

Declare Function DioSetOutputHandShakeConfig Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByVal OutputHandShakeConfig As Long, _

ByVal BitMask1 As Long, _

ByVal BitMask2 As Long _

)As Long

●Delphi

function DioSetOutputHandShakeConfig (

DeviceHandle: Thandle;

OutputHandShakeConfig: Integer;

BitMask1: DWORD;

BitMask2: DWORD

): Integer; stdcall; external 'FbiDio.DLL';

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

Page 164: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

164

OutputHandShakeConfig ハンドシェーク出力に ACK2 イベントを使用する/使用しないの設定をします。弊社の入力

デバイスの ACK1 信号に同期させる場合は FBIDIO_ACK2_HIGH_EDGE を必ず指定してください。

0 ACK2 イベントを使用しない。ACK2 信号をポーリングしてハ

ンドシェーク出力するため速度が遅くなります。

FBIDIO_ACK2_ENABLE ACK2 イベントを使用する。ACK2 イベントを使用しない場合

よりハンドシェーク出力の速度が向上します。ただし、

DioEventRequestPending関数にてACK2 イベント待ちを使用

できなくなります。

FBIDIO_ACK2_HIGH_EDGE このフラグを指定すると ACK2 の立ち上がりエッジのタイミ

ングを ACK2 信号有効としハンドシェーク出力が動作しま

す。このフラグを指定しない場合は立ち下がりエッジのタイ

ミングを ACK2 信号有効とします。

下記の識別子を論理和で指定することで、出力完了タイミングを変更します。

FBIDIO_WAIT_LAST_ACK2 このフラグを指定すると DioOutputHandShake関数/

DioOutputHandShakeEx関数による 終データの出力後、ACK2

の応答があった時点で関数が完了となります。

このフラグを指定しない場合は、 終データの出力後 ACK2

の応答を待たずに上記出力関数が完了となります。

下記の識別子を論理和で指定することで、出力データ設定後に STB2 を有効にするまでの遅

延時間を設定できます。

何も指定していない場合にはデバイス毎に固有の時間が経過後に STB2 が有効になります。

下記の何れかの識別子を指定した場合には、デバイス毎に固有の時間は無効となり、指定

した遅延時間が経過後に STB2 が有効となります。

FBIDIO_STB2_DELAY_10US STB2 の遅延時間を 10μs に設定します。

FBIDIO_STB2_DELAY_30US STB2 の遅延時間を 30μs に設定します。

FBIDIO_STB2_DELAY_50US STB2 の遅延時間を 50μs に設定します。

FBIDIO_STB2_DELAY_100US STB2 の遅延時間を 100μs に設定します。

FBIDIO_STB2_DELAY_300US STB2 の遅延時間を 300μs に設定します。

FBIDIO_STB2_DELAY_500US STB2 の遅延時間を 500μs に設定します。

FBIDIO_STB2_DELAY_1MS STB2 の遅延時間を 1ms に設定します。

FBIDIO_STB2_DELAY_3MS STB2 の遅延時間を 3ms に設定します。

FBIDIO_STB2_DELAY_5MS STB2 の遅延時間を 5ms に設定します。

FBIDIO_STB2_DELAY_10MS STB2 の遅延時間を 10ms に設定します。

FBIDIO_STB2_DELAY_30MS STB2 の遅延時間を 30ms に設定します。

FBIDIO_STB2_DELAY_50MS STB2 の遅延時間を 50ms に設定します。

デバイス毎に固有の時間については DioGetDeviceConfig関数、DioGetDeviceConfigEx関数

の低速出力応答の説明を参照ください。

フォトカプラ絶縁など、入出力データが安定するまでに時間がかかるデバイスでハンドシ

ェーク処理を行う際に、STB2 の遅延時間の設定が必要となる場合があります。

ハンドシェーク処理に成功しているのに、入力側で不定値を取得してしまう様な場合には、

上記の遅延時間を追加することで取得データが安定する可能性があります。

Page 165: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

165

※ACK2 イベントを有効にしたハンドシェーク出力を行うと、それ以降 IN3 の割り込みイベ

ン ト が 発 生 し ま せ ん 。 IN3 の 割 り 込 み イ ベ ン ト を 使 用 す る 場 合 は 再 度 、

DioSetOutputHandShakeConfig 関数で OutputHandShakeConfig パラメータを”0”にして、ACK2

イベントを使用しない設定に切り替えてください。

BitMask1 出力データマスクビットを設定します。OUT1~OUT32 に対応します。下記のように各ビット

が出力接点に対応しています。電源 ON 時のデフォルトはすべてのデータが無効に設定され

ています。

bit31 bit30 bit29 ・・・ bit2 bit1 bit0

OUT32 OUT31 OUT30 ・・・ OUT3 OUT2 OUT1

0 : データを無効にします。

対応する接点への出力を変化させずにハンドシェーク出力を行います。

1 : データ有効

BitMask2 出力データマスクビットを設定します。OUT33~OUT64 に対応します。下記のように各ビッ

トが出力接点に対応しています。電源 ON 時のデフォルトはすべてのデータが無効に設定さ

れています。

bit31 bit30 bit29 ・・・ bit2 bit1 bit0

OUT64 OUT63 OUT62 ・・・ OUT35 OUT34 OUT33

0 : データを無効にします。

対応する接点への出力を変化させずにハンドシェーク出力を行います。

1 : データ有効

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

Page 166: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

166

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

Ret = DioSetOutputHandShakeConfig( DeviceHandle,

FBIDIO_ACK2_ENABLE | FBIDIO_WAIT_LAST_ACK2,

0xFFFFFFFF, 0xFFFFFFFF);

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

Ret = DioSetOutputHandShakeConfig( DeviceHandle,

FBIDIO_ACK2_ENABLE or FBIDIO_WAIT_LAST_ACK2, _

&HFFFFFFFF, &HFFFFFFFF)

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

Ret := DioSetOutputHandShakeConfig( DeviceHandle,

FBIDIO_ACK2_ENABLE or FBIDIO_WAIT_LAST_ACK2,

$FFFFFFFF, $FFFFFFFF );

end;

デバイス名「FBIDIO1」のデバイスのハンドシェーク出力の設定を行います。

Page 167: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

167

38. DioInputHandShake

【機能】

制御信号を使用したハンドシェーク入力を行います。

OVERLAPPED構造体(Overlapped)を指定した非同期コールの場合、変化がない場合は

FBIDIO_ERROR_IO_PENDINGを返し非同期での動作となります。DioSetInputHandShakeConfig関数

によってハンドシェーク入力動作の設定を行ってからハンドシェーク入力を開始してください。

1ポートのデータを 1バイトで表現します。

例:32 点の DIO の場合 1×4 バイトが一度の入力に使用されるデータとします。

PCI-2152C、2790C、2798C、CTP-2152、2790、2798 にてSTB1 割り込みイベントを使用したハン

ドシェーク入力(STB1 割り込みイベントの使用は DioSetInputHandShakeConfig関数にて設定)

を行う場合、DioSetLatchStatus関数によりデータとして使用する接点に対応する入力状態ラッ

チ回路の接続を有効に設定する必要があります。

【書式】

●C言語

INT DioInputHandShake (

HANDLE DeviceHandle,

LPVOID Buffer,

DWORD NumOfBytesToRead,

LPDWORD NumOfBytesRead,

LPOVERLAPPED Overlapped

);

●Visual Basic

Declare Function DioInputHandShake Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByRef Buffer As Any, _

ByVal NumOfBytesToRead As Long, _

ByRef NumOfBytesRead As Long, _

ByRef Overlapped As OVERLAPPED _

)As Long

●Delphi

function DioInputHandShake (

DeviceHandle: Thandle;

Buffer: Pointer;

NumOfBytesToRead: DWORD;

NumOfBytesRead: PDWORD;

Overlapped: Poverlapped

): Integer; stdcall; external 'FbiDio.DLL';

Page 168: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

168

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

Buffer デバイスから入力したデータを受け取るバッファを指すポインタ(参照渡し)を指定しま

す。

NumOfBytesToRead デバイスから入力するバイト数を指定します。

NumOfBytesRead 入力されたバイト数を指すポインタ(参照渡し)を指定します。

(非同期コールの場合、この値は意味を持ちません。非同期コールで、実際に入力された

バイト数を取得するには、DioGetOverlappedResult関数をご使用下さい。)

Overlapped OVERLAPPED構造体へのポインタ(参照渡し)を指定します。

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

【備考】

DioInputHandShake関数はパラメータOverlappedに有効な OVERLAPPED構造体のアドレスを指定

することで、非同期(処理の完了前に制御が戻ります)に動作します。OverlappedにNULLを指

定すると、処理が完了するまで制御が戻りません。

・同期入出力

アプリケーションはデータ入出力が完了するまで待ちます。

ユーザアプリケーション DLL

ドライバ

/デバイス

アプリケーション → DioInputHandShake → データ入力開始

: :

:[データ転送中] :[データ転送中]

: :

アプリケーションへリターン ← DioInputHandShake 処理終了 ← データ入力終了

Page 169: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

169

・非同期入出力

アプリケーションはデータ入出力の完了まで待たず、即制御が API から戻ります。

データ入出力の完了はイベントで通知されます。

ユーザアプリケーション DLL

ドライバ

/デバイス

アプリケーション → DioInputHandShake → データ入力開始

アプリケーションへリターン ← DioInputHandShake 処理終了 :

:[データ転送中]

(イベント待ち) ← (イベント通知) ← データ入力終了

・データフォーマット

取得したデータは下記のように接点と対応しています。

データ オフセット

bit7 bit6 ・・・ bit0 入力回数

+ 0 IN8 IN7 ・・・ IN1 1 回目

+ 1 IN16 IN15 ・・・ IN9 1 回目

: : :

ポート数 - 1 : :

ポート数 IN8 IN7 ・・・ IN1 2 回目

ポート数 + 1 IN16 IN15 ・・・ IN9 2 回目

: : :

入力バイト数 INxx INxx ・・・ INxx :

上記のようにバッファの先頭から 1 回目の入力データが格納され、次に 2 回目の入力データが

格納されます。

ひとつのバイトデータの中に 8点分のデータが下位のビットから昇順で格納されます。

接点数が 32 点のインタフェースモジュールの場合は以下のようになります。

データ オフセット

bit7 bit6 ・・・ bit0 入力回数

+ 0 IN8 IN7 ・・・ IN1

+ 1 IN16 IN15 ・・・ IN9

+ 2 IN24 IN23 ・・・ IN17

+ 3 IN32 IN31 ・・・ IN25

1 回目

+ 4 IN8 IN7 ・・・ IN1

+ 5 IN16 IN15 ・・・ IN9

+ 6 IN24 IN23 ・・・ IN17

+ 7 IN32 IN31 ・・・ IN25

2 回目

データ 0 ← 外部回路 OFF 状態

データ 1 ← 外部回路 ON 状態

Page 170: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

170

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

BYTE Buffer[16];

INT NumOfBytesToRead;

INT NumOfBytesRead;

OVERLAPPED Overlapped;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

NumOfBytesToRead = 16;

Overlapped.Offset = 0;

Overlapped.OffsetHigh = 0;

Overlapped.hEvent = CreateEvent(0, FALSE, FALSE, NULL);

Ret = DioInputHandShake( DeviceHandle, &Buffer[0], NumOfBytesToRead,

&NumOfBytesRead, &Overlapped );

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Dim Buffer(16) As Byte

Dim NumOfBytesToRead As Long

Dim NumOfBytesRead As Long

Dim Overlapped As OVERLAPPED

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

NumOfBytesToRead = 16

Overlapped.Offset = 0

Overlapped.OffsetHigh = 0

Overlapped.hEvent = CreateEvent(0, False, False, 0)

Ret = DioInputHandShake( DeviceHandle, Buffer(0), NumOfBytesToRead, _

NumOfBytesRead, Overlapped )

Page 171: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

171

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

Buffer: Array[0..15] of Byte;

NumOfBytesToRead: Integer;

NumOfBytesRead: Integer;

Overlapped: TOVERLAPPED;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

NumOfBytesToRead := 16;

Overlapped.Offset := 0;

Overlapped.OffsetHigh := 0;

Overlapped.hEvent := CreateEvent(nil, False, False, nil);

Ret := DioInputHandShake( DeviceHandle, @Buffer[0], NumOfBytesToRead,

@NumOfBytesRead, @Overlapped );

end;

デバイス名「FBIDIO1」のデバイスでハンドシェーク入力します。

Page 172: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

172

39. DioInputHandShakeEx

【機能】

制御信号を使用したハンドシェーク入力を行います。

(コールバック関数有り:Windows 2000/NT 以降で使用可能)

DioSetInputHandShakeConfig関数によってハンドシェーク入力動作の設定を行ってからハン

ドシェーク入力を開始してください。

1 ポートのデータを 1バイトで表現します。

例:32 点の DIO の場合 1×4 バイトが一度の入力に使用されるデータとします。

PCI-2152C、2790C、2798C、CTP-2152、2790、2798 にてSTB1 割り込みイベントを使用したハン

ドシェーク入力(STB1 割り込みイベントの使用は DioSetInputHandShakeConfig関数にて設定)

を行う場合、DioSetLatchStatus関数によりデータとして使用する接点に対応する入力状態ラッ

チ回路の接続を有効に設定する必要があります。

【書式】

●C言語

INT DioInputHandShakeEx (

HANDLE DeviceHandle,

LPVOID Buffer,

DWORD NumOfBytesToRead,

LPOVERLAPPED Overlapped,

LPOVERLAPPED_COMPLETION_ROUTINE CompletionRoutine

);

●Visual Basic

Declare Function DioInputHandShakeEx Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByRef Buffer As Any, _

ByVal NumOfBytesToRead As Long, _

ByRef Overlapped As OVERLAPPED, _

ByVal CompletionRoutine As Long _

)As Long

●Delphi

function DioInputHandShakeEx (

DeviceHandle: Thandle;

Buffer: Pointer;

NumOfBytesToRead: DWORD;

Overlapped: Poverlapped;

CompletionRoutine: FARPROC

): Integer; stdcall; external 'FbiDio.DLL';

Page 173: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

173

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

Buffer デバイスから入力したデータを受け取るバッファを指すポインタ(参照渡し)を指定しま

す。

NumOfBytesToRead デバイスから入力するバイト数を指定します。

Overlapped OVERLAPPED構造体へのポインタ(参照渡し)を指定します。

CompletionRoutine 完了ルーチンへのポインタ(参照渡し)を指定します。

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

Page 174: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

174

【備考】

本 API 関数は Windows 2000/NT 以降において有効です。Windows Me/98/95 で本関数を呼び出し

た場合には、FBIDIO_ERROR_NOT_SUPPORTED が返されます。

DioInputHandShakeEx関数はデバイスからデータを非同期的に入力します。

DioInputHandShake関数が同期的および非同期的操作の両方を行えるようになっているのに対

して、DioInputHandShakeEx関数は、非同期の操作用だけに使用できます。

DioInputHandShakeEx関数によって、アプリケーションはデータの入力操作の間、他の処理を実

行できます。DioInputHandShakeEx関数は、データ入力が完了し、呼び出しスレッドがアラート

可能な待機状態にあるときに、指定された完了ルーチンを呼び出して操作の完了状態を非同期

に報告します。

・データフォーマット

取得したデータは下記のように接点と対応しています。

データ オフセット

bit7 bit6 ・・・ bit0 入力回数

+ 0 IN8 IN7 ・・・ IN1 1 回目

+ 1 IN16 IN15 ・・・ IN9 1 回目

: : :

ポート数 - 1 : :

ポート数 IN8 IN7 ・・・ IN1 2 回目

ポート数 + 1 IN16 IN15 ・・・ IN9 2 回目

: : :

入力バイト数 INxx INxx ・・・ INxx :

上記のようにバッファの先頭から 1 回目の入力データが格納され、次に 2 回目の入力データが

格納されます。

ひとつのバイトデータの中に 8点分のデータが下位のビットから昇順で格納されます。

接点数が 32 点のインタフェースモジュールの場合は以下のようになります。

データ オフセット

bit7 bit6 ・・・ bit0 入力回数

+ 0 IN8 IN7 ・・・ IN1

+ 1 IN16 IN15 ・・・ IN9

+ 2 IN24 IN23 ・・・ IN17

+ 3 IN32 IN31 ・・・ IN25

1 回目

+ 4 IN8 IN7 ・・・ IN1

+ 5 IN16 IN15 ・・・ IN9

+ 6 IN24 IN23 ・・・ IN17

+ 7 IN32 IN31 ・・・ IN25

2 回目

データ 0 ← 外部回路 OFF 状態

データ 1 ← 外部回路 ON 状態

Page 175: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

175

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

BYTE Buffer[16];

INT NumOfBytesToRead;

OVERLAPPED Overlapped;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

NumOfBytesToRead = 16;

Overlapped.Offset = 0;

Overlapped.OffsetHigh = 0;

Overlapped.hEvent = CreateEvent(0, FALSE, FALSE, NULL);

Ret = DioInputHandShakeEx( DeviceHandle, &Buffer[0], NumOfBytesToRead,

&Overlapped, CompletionRoutine );

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Dim Buffer(16) As Byte

Dim NumOfBytesToRead As Long

Dim Overlapped As OVERLAPPED

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

NumOfBytesToRead = 16

Overlapped.Offset = 0

Overlapped.OffsetHigh = 0

Overlapped.hEvent = CreateEvent(0, False, False, 0)

Ret = DioInputHandShakeEx( DeviceHandle, Buffer(0), NumOfBytesToRead, _

Overlapped, CompletionRoutine )

Page 176: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

176

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

Buffer: Array[0..15] of Byte;

NumOfBytesToRead: Integer;

Overlapped: TOVERLAPPED;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

NumOfBytesToRead := 16;

Overlapped.Offset := 0;

Overlapped.OffsetHigh := 0;

Overlapped.hEvent := CreateEvent(nil, False, False, nil);

Ret := DioInputHandShakeEx( DeviceHandle, @Buffer[0], NumOfBytesToRead,

@Overlapped, @CompletionRoutine );

end;

デバイス名「FBIDIO1」のデバイスでハンドシェーク入力します。CompletionRoutine で指定さ

れた完了ルーチンを実行します。

Page 177: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

177

40. DioOutputHandShake

【機能】

制御信号を使用したハンドシェーク出力を行います。

OVERLAPPED構造体(Overlapped)を指定した非同期コールの場合、変化がない場合は

FBIDIO_ERROR_IO_PENDINGを返し非同期での動作となります。DioSetOutputHandShakeConfig関

数によってハンドシェーク出力動作の設定を行ってからハンドシェーク出力を開始してくださ

い。1ポートのデータを 1バイトで表現します。

例:32 点の DIO の場合 1×4 バイトが一度の出力に使用されるデータとします。

【書式】

●C言語

INT DioOutputHandShake (

HANDLE DeviceHandle,

LPVOID Buffer,

DWORD NumOfBytesToWrite,

LPDWORD NumOfBytesWritten,

LPOVERLAPPED Overlapped

);

●Visual Basic

Declare Function DioOutputHandShake Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByRef Buffer As Any, _

ByVal NumOfBytesToWrite As Long, _

ByRef NumOfBytesWritten As Long, _

ByRef Overlapped As OVERLAPPED _

)As Long

●Delphi

function DioOutputHandShake (

DeviceHandle: Thandle;

Buffer: Pointer;

NumOfBytesToWrite: DWORD;

NumOfBytesWritten: PDWORD;

Overlapped: Poverlapped

): Integer; stdcall; external 'FbiDio.DLL';

Page 178: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

178

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

Buffer デバイスに出力するデータのバッファを指すポインタ(参照渡し)を指定します。

NumOfBytesToWrite デバイスに出力するバイト数を指定します。

NumOfBytesWritten 出力されたバイト数を格納するポインタ(参照渡し)を指定します。

(非同期コールの場合、この値は意味を持ちません。非同期コールで、実際に出力された

バイト数を取得するには、DioGetOverlappedResult関数をご使用下さい。)

Overlapped OVERLAPPED構造体へのポインタ(参照渡し)を指定します。

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

【備考】

DioOutputHandShake関数はパラメータOverlappedに有効な OVERLAPPED構造体のアドレスを指

定することで、非同期(処理の完了前に制御が戻ります)に動作します。OverlappedにNULLを

指定すると、処理が完了するまで制御が戻りません。

・同期入出力

アプリケーションはデータ入出力が完了するまで待ちます。

ユーザアプリケーション DLL

ドライバ

/デバイス

アプリケーション → DioOutputHandShake → データ出力開始

: :

:[データ転送中] :[データ転送中]

: :

アプリケーションへリターン ← DioOutputHandShake 処理終了 ← データ出力終了

Page 179: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

179

・非同期入出力

アプリケーションはデータ入出力の完了まで待たず、即制御が API から戻ります。

データ入出力の完了はイベントで通知されます。

ユーザアプリケーション DLL

ドライバ

/デバイス

アプリケーション → DioOutputHandShake → データ出力開始

アプリケーションへリターン ← DioOutputHandShake 処理終了 :

:[データ転送中]

(イベント待ち) ← (イベント通知) ← データ出力終了

・データフォーマット

出力データは下記のように接点と対応しています。

データ オフセット

bit7 bit6 ・・・ bit0 出力回数

+ 0 OUT8 OUT7 ・・・ OUT1 1 回目

+ 1 OUT16 OUT15 ・・・ OUT9 1 回目

: : :

ポート数 - 1 : :

ポート数 OUT8 OUT7 ・・・ OUT1 2 回目

ポート数 + 1 OUT16 OUT15 ・・・ OUT9 2 回目

: : :

入力バイト数 OUTxx OUTxx ・・・ OUTxx :

上記のようにバッファの先頭から 1 回目の出力データを格納し、次に 2 回目の出力データを格

納しておく必要があります。

ひとつのバイトデータの中に 8点分の出力データを下位のビットから昇順で格納します。

接点数が 32 点のインタフェースモジュールの場合は以下のようになります。

データ オフセット

bit7 bit6 ・・・ bit0 出力回数

+ 0 OUT8 OUT7 ・・・ OUT1

+ 1 OUT16 OUT15 ・・・ OUT9

+ 2 OUT24 OUT23 ・・・ OUT17

+ 3 OUT32 OUT31 ・・・ OUT25

1 回目

+ 4 OUT8 OUT7 ・・・ OUT1

+ 5 OUT16 OUT15 ・・・ OUT9

+ 6 OUT24 OUT23 ・・・ OUT17

+ 7 OUT32 OUT31 ・・・ OUT25

2 回目

データ 0 → OFF

データ 1 → ON

Page 180: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

180

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

BYTE Buffer[8];

INT NumOfBytesToWrite;

INT NumOfBytesWritten;

OVERLAPPED Overlapped;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

NumOfBytesToWrite = 8;

Buffer[0] = 0x01;

Buffer[1] = 0x02;

Buffer[2] = 0x04;

Buffer[3] = 0x08;

Buffer[4] = 0x10;

Buffer[5] = 0x20;

Buffer[6] = 0x40;

Buffer[7] = 0x80;

Overlapped.Offset = 0;

Overlapped.OffsetHigh = 0;

Overlapped.hEvent = CreateEvent(0, FALSE, FALSE, NULL);

Ret = DioOutputHandShake( DeviceHandle, &Buffer[0], NumOfBytesToWrite,

&NumOfBytesWritten, &Overlapped );

Page 181: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

181

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Dim Buffer(8) As Byte

Dim NumOfBytesToWrite As Long

Dim NumOfBytesWritten As Long

Dim Overlapped As OVERLAPPED

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

NumOfBytesToWrite = 8

Buffer(0) = &H1

Buffer(1) = &H2

Buffer(2) = &H4

Buffer(3) = &H8

Buffer(4) = &H10

Buffer(5) = &H20

Buffer(6) = &H40

Buffer(7) = &H80

Overlapped.Offset = 0

Overlapped.OffsetHigh = 0

Overlapped.hEvent = CreateEvent(0, False, False, 0)

Ret = DioOutputHandShake( DeviceHandle, Buffer(0), NumOfBytesToWrite, _

NumOfBytesWritten, Overlapped )

Page 182: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

182

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

Buffer: Array[0..7] of Byte;

NumOfBytesToWrite: Integer;

NumOfBytesWritten: Integer;

Overlapped: TOVERLAPPED;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

NumOfBytesToWrite := 8;

Buffer[0] := $01;

Buffer[1] := $02;

Buffer[2] := $04;

Buffer[3] := $08;

Buffer[4] := $10;

Buffer[5] := $20;

Buffer[6] := $40;

Buffer[7] := $80;

Overlapped.Offset := 0;

Overlapped.OffsetHigh := 0;

Overlapped.hEvent := CreateEvent(nil, False, False, nil);

Ret := DioOutputHandShake( DeviceHandle, @Buffer[0], NumOfBytesToWrite,

@NumOfBytesWritten, @Overlapped );

end;

デバイス名「FBIDIO1」のデバイスでハンドシェーク出力します。

Page 183: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

183

41. DioOutputHandShakeEx

【機能】

制御信号を使用したハンドシェーク入力を行います。

(コールバック関数有り:Windows 2000/NT 以降で使用可能)

DioSetOutputHandShakeConfig関数によってハンドシェーク出力動作の設定を行ってからハン

ドシェーク出力を開始してください。

1 ポートのデータを 1バイトで表現します。

例:32 点の DIO の場合 1×4 バイトが一度の出力に使用されるデータとします。

【書式】

●C言語

INT DioOutputHandShakeEx (

HANDLE DeviceHandle,

LPVOID Buffer,

DWORD NumOfBytesToWrite,

LPOVERLAPPED Overlapped,

LPOVERLAPPED_COMPLETION_ROUTINE CompletionRoutine

);

●Visual Basic

Declare Function DioOutputHandShakeEx Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByRef Buffer As Any, _

ByVal NumOfBytesToWrite As Long, _

ByRef Overlapped As OVERLAPPED, _

ByVal CompletionRoutine As Long _

)As Long

●Delphi

function DioOutputHandShakeEx (

DeviceHandle: Thandle;

Buffer: Pointer;

NumOfBytesToWrite: DWORD;

Overlapped: Poverlapped;

CompletionRoutine: FARPROC

): Integer; stdcall; external 'FbiDio.DLL';

Page 184: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

184

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

Buffer デバイスに出力するデータのバッファを指すポインタ(参照渡し)を指定します。

NumOfBytesToWrite デバイスに出力するバイト数を指定します。

Overlapped OVERLAPPED構造体へのポインタ(参照渡し)を指定します。

CompletionRoutine 完了ルーチンへのポインタ(参照渡し)を指定します。

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

Page 185: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

185

【備考】

本 API 関数は Windows 2000/NT 以降において有効です。Windows Me/98/95 で本関数を呼び出し

た場合には、FBIDIO_ERROR_NOT_SUPPORTED が返されます。

DioOutputHandShakeEx関数はデバイスからデータを非同期的に入力します。

DioOutputHandShake関数が同期的および非同期的操作の両方を行えるようになっているのに対

して、DioOutputHandShakeEx関数は、非同期の操作用だけに使用できます。

DioOutputHandShakeEx関数によって、アプリケーションはデータの入力操作の間、他の処理を

実行できます。DioOutputHandShakeEx関数は、データ出力が完了し、呼び出しスレッドがアラ

ート可能な待機状態にあるときに、指定された完了ルーチンを呼び出して操作の完了状態を非

同期に報告します。

・データフォーマット

出力データは下記のように接点と対応しています。

データ オフセット

bit7 bit6 ・・・ bit0 出力回数

+ 0 OUT8 OUT7 ・・・ OUT1 1 回目

+ 1 OUT16 OUT15 ・・・ OUT9 1 回目

: : :

ポート数 - 1 : :

ポート数 OUT8 OUT7 ・・・ OUT1 2 回目

ポート数 + 1 OUT16 OUT15 ・・・ OUT9 2 回目

: : :

入力バイト数 OUTxx OUTxx ・・・ OUTxx :

上記のようにバッファの先頭から 1 回目の出力データを格納し、次に 2 回目の出力データを格

納しておく必要があります。

ひとつのバイトデータの中に 8点分の出力データを下位のビットから昇順で格納します。

接点数が 32 点のインタフェースモジュールの場合は以下のようになります。

データ オフセット

bit7 bit6 ・・・ bit0 出力回数

+ 0 OUT8 OUT7 ・・・ OUT1

+ 1 OUT16 OUT15 ・・・ OUT9

+ 2 OUT24 OUT23 ・・・ OUT17

+ 3 OUT32 OUT31 ・・・ OUT25

1 回目

+ 4 OUT8 OUT7 ・・・ OUT1

+ 5 OUT16 OUT15 ・・・ OUT9

+ 6 OUT24 OUT23 ・・・ OUT17

+ 7 OUT32 OUT31 ・・・ OUT25

2 回目

データ 0 → OFF

データ 1 → ON

Page 186: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

186

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

BYTE Buffer[8];

INT NumOfBytesToWrite;

OVERLAPPED Overlapped;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

NumOfBytesToWrite = 8;

Buffer[0] = 0x01;

Buffer[1] = 0x02;

Buffer[2] = 0x04;

Buffer[3] = 0x08;

Buffer[4] = 0x10;

Buffer[5] = 0x20;

Buffer[6] = 0x40;

Buffer[7] = 0x80;

Overlapped.Offset = 0;

Overlapped.OffsetHigh = 0;

Overlapped.hEvent = CreateEvent(0, FALSE, FALSE, NULL);

Ret = DioOutputHandShakeEx( DeviceHandle, &Buffer[0], NumOfBytesToWrite,

&Overlapped, &CompletionRoutine );

Page 187: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

187

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Dim Buffer(8) As Byte

Dim NumOfBytesToWrite As Long

Dim Overlapped As OVERLAPPED

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

NumOfBytesToWrite = 8

Buffer(0) = &H1

Buffer(1) = &H2

Buffer(2) = &H4

Buffer(3) = &H8

Buffer(4) = &H10

Buffer(5) = &H20

Buffer(6) = &H40

Buffer(7) = &H80

Overlapped.Offset = 0

Overlapped.OffsetHigh = 0

Overlapped.hEvent = CreateEvent(0, False, False, 0)

Ret = DioOutputHandShakeEx( DeviceHandle, Buffer(0), NumOfBytesToWrite, _

Overlapped, CompletionRoutine )

Page 188: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

188

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

Buffer: Array[0..7] of Byte;

NumOfBytesToWrite: Integer;

Overlapped: TOVERLAPPED;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

NumOfBytesToWrite := 8;

Buffer[0] := $01;

Buffer[1] := $02;

Buffer[2] := $04;

Buffer[3] := $08;

Buffer[4] := $10;

Buffer[5] := $20;

Buffer[6] := $40;

Buffer[7] := $80;

Overlapped.Offset := 0;

Overlapped.OffsetHigh := 0;

Overlapped.hEvent := CreateEvent(nil, False, False, nil);

Ret := DioOutputHandShakeEx( DeviceHandle, @Buffer[0], NumOfBytesToWrite,

@Overlapped, @CompletionRoutine );

end;

デバイス名「FBIDIO1」のデバイスでハンドシェーク出力します。CompletionRoutine で指定さ

れた完了ルーチンを実行します。

Page 189: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

189

42. DioStopInputHandShake

【機能】

デジタル入出力デバイスのハンドシェーク入力を停止します。

【書式】

●C言語

INT DioStopInputHandShake (

HANDLE DeviceHandle

);

●Visual Basic

Declare Function DioStopInputHandShake Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long _

)As Long

●Delphi

function DioStopInputHandShake (

DeviceHandle: Thandle

): Integer; stdcall; external 'FbiDio.DLL';

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

Page 190: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

190

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

Ret = DioStopInputHandShake( DeviceHandle );

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

Ret = DioStopInputHandShake( DeviceHandle )

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

Ret := DioStopInputHandShake( DeviceHandle );

end;

デバイス名「FBIDIO1」のデバイスのハンドシェーク入力を停止します。

Page 191: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

191

43. DioStopOutputHandShake

【機能】

デジタル入出力デバイスのハンドシェーク出力を停止します。

【書式】

●C言語

INT DioStopOutputHandShake (

HANDLE DeviceHandle

);

●Visual Basic

Declare Function DioStopOutputHandShake Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long _

)As Long

●Delphi

function DioStopOutputHandShake (

DeviceHandle: Thandle

): Integer; stdcall; external 'FbiDio.DLL';

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

Page 192: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

192

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

Ret = DioStopOutputHandShake( DeviceHandle );

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

Ret = DioStopOutputHandShake( DeviceHandle )

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

Ret := DioStopOutputHandShake( DeviceHandle );

end;

デバイス名「FBIDIO1」のデバイスのハンドシェーク出力を停止します。

Page 193: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

193

44. DioGetHandShakeStatus

【機能】

ハンドシェーク入出力の状態を取得します。

【書式】

●C言語

INT DioGetHandShakeStatus (

HANDLE DeviceHandle,

PDWORD DeviceStatus,

PDWORD InputedBuffNum,

PDWORD OutputedBuffNum

);

●Visual Basic

Declare Function DioGetHandShakeStatus Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByRef DeviceStatus As Long, _

ByRef InputedBuffNum As Long, _

ByRef OutputedBuffNum As Long _

)As Long

●Delphi

function DioGetHandShakeStatus (

DeviceHandle: Thandle;

var DeviceStatus: DWORD;

var InputedBuffNum: DWORD;

var OutputedBuffNum: DWORD

): Integer; stdcall; external 'FbiDio.DLL';

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

DeviceStatus 現在のデバイスの状態を格納する変数へのポインタ(参照渡し)を指定します。

以下のビット構成で格納します。(該当ビットが”1”で有効)

bit 0 : ハンドシェーク入力動作中

bit 1 : ハンドシェーク出力動作中

InputedBuffNum ハンドシェーク入力実行中の場合、入力済みデータバッファ数を格納する変数へのポイン

タ(参照渡し)を指定します。

OutputedBuffNum ハンドシェーク出力実行中の場合、残り出力バッファ数を格納する変数へのポインタ(参

照渡し)を指定します。

Page 194: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

194

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

DWORD DeviceStatus;

DWORD InputedBuffNum;

DWORD OutputedBuffNum;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

Ret = DioGetHandShakeStatus( DeviceHandle, &DeviceStatus,

&InputedBuffNum, &OutputedBuffNum );

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Dim DeviceStatus As Long

Dim InputedBuffNum As Long

Dim OutputedBuffNum As Long

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

Ret = DioGetHandShakeStatus( DeviceHandle, DeviceStatus, _

InputedBuffNum, OutputedBuffNum )

Page 195: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

195

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

DeviceStatus: DWORD;

InputedBuffNum: DWORD;

OutputedBuffNum: DWORD;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

Ret := DioGetHandShakeStatus( DeviceHandle, DeviceStatus,

InputedBuffNum, OutputedBuffNum );

end;

デバイス名「FBIDIO1」のデバイスの現在のデバイスの状態を取得します。

Page 196: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

196

45. DioGetOverlappedResult

【機能】

ハンドシェーク入出力(DioInputHandShake/DioOutputHandShake)関数の非同期コール時の、実

際に入出力されたバイト数を取得します。

※ 同期コール時には、本関数は必要ありません。

【書式】

●C言語

INT DioGetOverlappedResult (

HANDLE DeviceHandle,

LPOVERLAPPED Overlapped,

LPDWORD NumOfBytes,

BOOL Wait

);

●Visual Basic

Declare Function DioGetOverlappedResult Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByRef Overlapped As Long, _

ByRef NumOfBytes As Long, _

ByVal Wait As Boolean _

)As Long

●Delphi

function DioGetOverlappedResult (

DeviceHandle: Thandle;

Overlapped: Poverlapped;

NumOfBytes: PDWORD;

Wait: Boolean

): Integer; stdcall; external 'FbiDio.DLL';

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

Overlapped DioInputHandShake/DioOutputHandShake関数で指定した、OVERLAPPED構造体へのポインタ

(参照渡し)を指定します。

NumOfBytes 実際に入出力されたバイト数を格納する変数へのポインタ(参照渡し)を指定します。

Page 197: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

197

Wait 非同期操作の完了を待つかどうかを指定します。

TRUE を指定すると、この関数は、操作が完了するまで待機します。

FALSE を指定すると、この関数は、すぐに制御を返します。

このとき、もし操作が未処理であれば、関数の戻り値は ERROR_IO_INCOMPLETE になります。

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

BYTE Buffer[16];

DWORD NumOfBytesToRead;

DWORD NumOfBytesRead;

OVERLAPPED Overlapped;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

NumOfBytesToRead = 16;

Ret = DioInputHandShake( DeviceHandle, &Buffer[0], NumOfBytesToRead,

&NumOfBytesRead, &Overlapped );

Ret = DioGetOverlappedResult( DeviceHandle, &Overlapped, &NumOfBytesRead, TRUE );

Page 198: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

198

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Dim Buffer(16) As Byte

Dim NumOfBytesToRead As Long

Dim NumOfBytesRead As Long

Dim Overlapped As OVERLAPPED

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

NumOfBytesToRead = 16

Ret = DioInputHandShake( DeviceHandle, Buffer(0), NumOfBytesToRead, _

NumOfBytesRead, Overlapped )

Ret = DioGetOverlappedResult( DeviceHandle, Overlapped, NumOfBytesRead, True );

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

Buffer: Array[0..15] of Byte;

NumOfBytesToRead: DWORD;

NumOfBytesRead: DWORD;

Overlapped: TOVERLAPPED;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

NumOfBytesToRead := 16;

Ret := DioInputHandShake( DeviceHandle, @Buffer[0], NumOfBytesToRead,

@NumOfBytesRead, @Overlapped );

Ret := DioGetOverlappedResult( DeviceHandle, @Overlapped, @NumOfBytesRead, True );

end;

デバイス名「FBIDIO1」のデバイスのハンドシェーク入出力関数の非同期コール時に入出力され

たバイト数を取得します。

Page 199: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

199

46. DioSetTimeOut

【機能】

ハンドシェーク入出力時のタイムアウト時間を設定します。

ハンドシェーク入出力動作中は呼び出しが失敗します。

【書式】

●C言語

HANDLE DioSetTimeOut (

HANDLE DeviceHandle,

DWORD InputTotalTimeout,

DWORD InputIntervalTimeout,

DWORD OutputTotalTimeout,

DWORD OutputIntervalTimeout

);

●Visual Basic

Declare Function DioSetTimeOut Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByVal InputTotalTimeout As Long, _

ByVal InputIntervalTimeout As Long, _

ByVal OutputTotalTimeout As Long, _

ByVal OutputIntervalTimeout As Long _

)As Long

●Delphi

function DioSetTimeOut (

DeviceHandle: Thandle;

InputTotalTimeout: DWORD;

InputIntervalTimeout: DWORD;

OutputTotalTimeout: DWORD;

OutputIntervalTimeout: DWORD

): THandle; stdcall; external 'FbiDio.DLL';

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

InputTotalTimeout 入力トータルタイムアウト値[単位:ms]

ハンドシェーク入力時のトータルタイムアウト値を設定します。

これは、DioInputHandShake関数、DioInputHandShakeEx関数において指定したデータ長の

入力が全て完了するまでの時間より大きい値を指定する必要があります。

設定値:10~DWORD MAX : 10ms 単位で指定

Page 200: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

200

InputIntervalTimeout 入力インターバルタイムアウト値[単位:ms]

ハンドシェーク入力時の各接点情報間でのタイムアウト値を設定します。

これは、DioInputHandShake関数、DioInputHandShakeEx関数において各接点情報の入力時

における前の入力から次の入力までの時間より大きい値を指定する必要があります。

設定値:10~DWORD MAX : 10ms 単位で指定

OutputTotalTimeout 出力トータルタイムアウト値[単位:ms]

ハンドシェーク出力時のトータルタイムアウト値を設定します。

これは、DioOutputHandShake関数、DioOutputHandShakeEx関数において指定したデータ長

の出力が全て完了するまでの時間より大きい値を指定する必要があります。

設定値:10~DWORD MAX : 10ms 単位で指定

OutputIntervalTimeout 出力インターバルタイムアウト値[単位:ms]

ハンドシェーク出力時の各接点情報間でのタイムアウト値を設定します。

これは、DioOutputHandShake関数、DioOutputHandShakeEx関数において各接点情報の出力

時における前の出力から次の出力までの時間より大きい値を指定する必要があります。

設定値:10~DWORD MAX : 10ms 単位で指定

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

Page 201: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

201

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

Ret = DioSetTimeOut( DeviceHandle, 0x1000, 0x10, 0x1000, 0x10 );

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

Ret = DioSetTimeOut( DeviceHandle, &H1000, &H10, &H1000, &H10 );

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

Ret := DioSetTimeOut( DeviceHandle, $1000, $10, $1000, $10 );

end;

デバイス名「FBIDIO1」のデバイスにおけるハンドシェーク入出力タイムアウト時間の設定を行

います。

Page 202: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

202

47. DioGetTimeOut

【機能】

入出力時のタイムアウト設定値を取得します。

【書式】

●C言語

HANDLE DioGetTimeOut (

HANDLE DeviceHandle,

PDWORD InputTotalTimeout,

PDWORD InputIntervalTimeout,

PDWORD OutputTotalTimeout,

PDWORD OutputIntervalTimeout

);

●Visual Basic

Declare Function DioGetTimeOut Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByRef InputTotalTimeout As Long, _

ByRef InputIntervalTimeout As Long, _

ByRef OutputTotalTimeout As Long, _

ByRef OutputIntervalTimeout As Long _

)As Long

●Delphi

function DioGetTimeOut (

DeviceHandle: Thandle;

var InputTotalTimeout: DWORD;

var InputIntervalTimeout: DWORD;

var OutputTotalTimeout: DWORD;

var OutputIntervalTimeout: DWORD

): THandle; stdcall; external 'FbiDio.DLL';

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

InputTotalTimeout 入力トータルタイムアウト設定値[単位:ms]を格納する変数へのポインタ(参照渡し)を

指定します。

ハンドシェーク入力時のトータルタイムアウト設定が格納されます。

Page 203: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

203

InputIntervalTimeout 入力インターバルタイムアウト設定値[単位:ms]を格納する変数へのポインタ(参照渡し)

を指定します。

ハンドシェーク入力時のインターバルタイムアウト設定値が格納されます。

OutputTotalTimeout 出力トータルタイムアウト設定値[単位:ms]を格納する変数へのポインタ(参照渡し)を

指定します。

ハンドシェーク出力時のトータルタイムアウト設定値が格納されます。

OutputIntervalTimeout 出力インターバルタイムアウト設定値[単位:ms]を格納する変数へのポインタ(参照渡し)

を指定します。

ハンドシェーク出力時のインターバルタイムアウト設定値が格納されます。

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

Page 204: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

204

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

DWORD InputTotalTimeout;

DWORD InputIntervalTimeout;

DWORD OutputTotalTimeout;

DWORD OutputIntervalTimeout;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

Ret = DioGetTimeOut( DeviceHandle, &InputTotalTimeout, &InputIntervalTimeout,

&OutputTotalTimeout, &OutputIntervalTimeout );

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Dim InputTotalTimeout As Long

Dim InputIntervalTimeout As Long

Dim OutputTotalTimeout As Long

Dim OutputIntervalTimeout As Long

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

Ret = DioGetTimeOut( DeviceHandle, InputTotalTimeout, InputIntervalTimeout, _

OutputTotalTimeout, OutputIntervalTimeout );

Page 205: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

205

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

InputTotalTimeout: DWORD;

InputIntervalTimeout: DWORD;

OutputTotalTimeout: DWORD;

OutputIntervalTimeout: DWORD;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

Ret := DioGetTimeOut( DeviceHandle, InputTotalTimeout, InputIntervalTimeout,

OutputTotalTimeout, OutputIntervalTimeout );

end;

デバイス名「FBIDIO1」のデバイスにおけるハンドシェーク入出力タイムアウト設定値の取得を

行います。

Page 206: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

206

48. DioSetIrqMask

【機能】

デジタル入出力デバイスの割り込みマスク状態を設定します。

【書式】

●C言語

INT DioSetIrqMask (

HANDLE DeviceHandle,

BYTE IrqMask

);

●Visual Basic

Declare Function DioSetIrqMask Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByVal IrqMask As Byte _

)As Integer

●Delphi

function DioSetIrqMask (

DeviceHandle: Thandle;

IrqMask: Byte

): Integer; stdcall; external 'FbiDio.DLL';

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

IrqMask 割り込み要因のマスク/アンマスクを設定するデータを指定します。

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

未使用 未使用 SIGR SIGT SIG4 SIG3 SIG2 SIG1

※SIGR = 外部割り込み

SIGT = タイマ割り込み

※SIG1~SIG4 は、DioSetIrqConfig関数にて設定される割り込み要因

それぞれ、0=マスク、1=アンマスク です。

電源投入時はすべてマスク状態(0)です。

PCI バスリセット時、外部リセット入力時は SIGR 以外がマスク状態(0)になります。

SIGR のマスク/アンマスク状態は変更しません。

Page 207: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

207

PCI-2470 では、パラメータ IrqMask の指定方法が下記のようになります。

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

- - - SIGT - - - SIG

"-" = 未使用

SIG = 異常検出割込みマスク。

OUT1~OUT8 の異常検出信号が OR された信号で、割込みを発生させるかどうかの設定を行い

ます。OUT1~OUT8 は、それぞれに、個別にマスク設定が必要です。

異常検出割込みを使用するには DioSetIrqMaskで上記SIGのアンマスクと DioOutputByte等

で各OUT端子に対応するアンマスクの両方が必要です。

SIGT = タイマ割込み

それぞれ、0=マスク、1=アンマスクです。

PCI-284866, PCI-298488, PCI-283144 では、パラメータ IrqMask の指定方法が下記のよう

になります。

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

未使用 未使用 SIGR SIGT 未使用 未使用 未使用 未使用

※SIGR = 外部割り込み

SIGT = タイマ割り込み

それぞれ、0=マスク、1=アンマスク です。

電源投入時はすべてマスク状態(0)です。

PCI バスリセット時、外部リセット入力時は SIGR 以外がマスク状態(0)になります。

SIGR のマスク/アンマスク状態は変更しません。

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

【備考】

※割り込み要因のバッファリングの停止、バッファクリア

割り込み要因のバッファリングを有効にした状態で、割り込みマスクが全てアンマスクされ

るとバッファリングを停止し、バッファに溜まったイベントがクリアされます。

DioSetIrqMask関数・DioEintSetIrqMask関数・DioEintSetIrqMaskEx関数で割り込みマスクの

設定が変更可能です。

PCI-293544U, PCI-293588 で DioSetIrqConfig関数を使用する場合、DioSetIrqConfig関数実行

後に本関数を実行してください。

Page 208: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

208

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

Ret = DioSetIrqMask( DeviceHandle, 0x36 );

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

Ret = DioSetIrqMask( DeviceHandle, &H36 )

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

Ret := DioSetIrqMask( DeviceHandle, $36 );

end;

デバイス名「FBIDIO1」のデバイスの、割り込み要因の SIG1 と SIG4 をマスクします。

Page 209: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

209

49. DioGetIrqMask

【機能】

デジタル入出力デバイスの割り込みマスク状態を取得します。

【書式】

●C言語

INT DioGetIrqMask (

HANDLE DeviceHandle,

PBYTE IrqMask

);

●Visual Basic

Declare Function DioGetIrqMask Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByRef IrqMask As Byte _

)As Integer

●Delphi

function DioGetIrqMask (

DeviceHandle: Thandle;

var IrqMask: Byte

): Integer; stdcall; external 'FbiDio.DLL';

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

IrqMask 割り込み要因のマスク/アンマスクの状態を格納する変数へのポインタ(参照渡し)を指

定します。

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

未使用 未使用 SIGR SIGT SIG4 SIG3 SIG2 SIG1

※SIGR = 外部割り込み

SIGT = タイマ割り込み

※SIG1~SIG4 は、DioSetIrqConfig関数にて設定される割り込み要因

それぞれ、0=マスク、1=アンマスク です。

電源投入時はすべてマスク状態(0)です。

PCI バスリセット時、外部リセット入力時は SIGR 以外がマスク状態(0)になります。

SIGR のマスク/アンマスク状態は変更しません。

Page 210: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

210

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

BYTE IrqMask;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

Ret = DioGetIrqMask( DeviceHandle, &IrqMask );

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Dim IrqMask As Byte

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

Ret = DioGetIrqMask( DeviceHandle, IrqMask )

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

IrqMask: Byte;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

Ret := DioGetIrqMask( DeviceHandle, IrqMask );

end;

デバイス名「FBIDIO1」のデバイスの割り込み要因マスク状態を、変数 IrqMask へ格納します。

Page 211: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

211

50. DioSetIrqConfig

【機能】

デジタル入出力デバイスの割り込み要因の割り当て、割り込み発生論理を設定します。

【書式】

●C言語

INT DioSetIrqConfig (

HANDLE DeviceHandle,

BYTE IrqConfig

);

●Visual Basic

Declare Function DioSetIrqConfig Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByVal IrqConfig As Byte _

)As Integer

●Delphi

function DioSetIrqConfig (

DeviceHandle: Thandle;

IrqConfig: Byte

): Integer; stdcall; external 'FbiDio.DLL';

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

Page 212: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

212

IrqConfig 割り込み要因の割り当て、割り込み発生論理の設定データを指定します。

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

EDS4 EDS3 EDS2 EDS1 SIG4 SIG3 SIG2 SIG1

割り込み発生論理設定状態(EDS4~EDS1)

EDS1 : SIG1 の割り込み発生論理の設定

EDS2 : SIG2 の割り込み発生論理の設定

EDS3 : SIG3 の割り込み発生論理の設定

EDS4 : SIG4 の割り込み発生論理の設定

0 = "High" → "Low"

1 = "Low" → "High"

割り込み要因割り当て(SIG1)

0 = IN1

1 = STB1

割り込み要因割り当て(SIG2)

0 = IN2

1 = IR.IN1

割り込み要因割り当て(SIG3)

0 = IN3

1 = ACK2

割り込み要因割り当て(SIG4)

0 = IN4

1 = IR.IN2

※ 電源投入時、PCI バスリセット時、外部リセット信号入力時はすべて設定値が 0となっ

ています。CPZ-294188 のみ SIG1、SIG2、SIG3、SIG4 が 1 となります。

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

【備考】

CPZ-294188 は、SIG1、SIG2、SIG3、SIG4 が 1 固定です。SIG1、SIG2、SIG3、SIG4 への設定は

無視されますのでご注意ください。

PCI-293544, PCI-293544U, PCI-293588 は、SIG1、SIG2、SIG3、SIG4 が 0 固定です。SIG1、SIG2、

SIG3、SIG4 への設定は 0を指定して下さい。

PCI-293544U, PCI-293588 で DioSetIrqMask 関 数 を 使 用 す る 場 合 、 本 関 数 実 行 後 に

DioSetIrqMask関数を実行してください。

Page 213: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

213

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

Ret = DioSetIrqConfig( DeviceHandle, 0x55 );

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

Ret = DioSetIrqConfig( DeviceHandle, &H55 )

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

Ret := DioSetIrqConfig( DeviceHandle, $55 );

end;

デバイス名「FBIDIO1」のデバイスの STB1 と ACK2 信号が "Low" → "High" になった時に割り

込みが発生するように設定します。

Page 214: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

214

51. DioGetIrqConfig

【機能】

デジタル入出力デバイスの割り込み要因の割り当て、割り込み発生論理の設定状態を取得しま

す。

【書式】

●C言語

INT DioGetIrqConfig (

HANDLE DeviceHandle,

PBYTE IrqConfig

);

●Visual Basic

Declare Function DioGetIrqConfig Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByRef IrqConfig As Byte _

)As Integer

●Delphi

function DioGetIrqConfig (

DeviceHandle: Thandle;

var IrqConfig: Byte

): Integer; stdcall; external 'FbiDio.DLL';

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

Page 215: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

215

IrqConfig 割り込み要因の割り当て、割り込み発生論理の設定データを格納する変数へのポインタ(参

照渡し)を指定します。

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

EDS4 EDS3 EDS2 EDS1 SIG4 SIG3 SIG2 SIG1

割り込み発生論理設定状態(EDS4~EDS1)

EDS1 : SIG1 の割り込み発生論理の設定

EDS2 : SIG2 の割り込み発生論理の設定

EDS3 : SIG3 の割り込み発生論理の設定

EDS4 : SIG4 の割り込み発生論理の設定

0 = "High" → "Low"

1 = "Low" → "High"

割り込み要因割り当て(SIG1)

0 = IN1

1 = STB1

割り込み要因割り当て(SIG2)

0 = IN2

1 = IR.IN1

割り込み要因割り当て(SIG3)

0 = IN3

1 = ACK2

割り込み要因割り当て(SIG4)

0 = IN4

1 = IR.IN2

※ 電源投入時、PCI バスリセット時、外部リセット信号入力時はすべて設定値が 0 となっ

ています。

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

Page 216: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

216

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

BYTE IrqConfig;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

Ret = DioGetIrqConfig( DeviceHandle, &IrqConfig );

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Dim IrqConfig As Byte

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

Ret = DioGetIrqConfig( DeviceHandle, IrqConfig )

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

IrqConfig: Byte;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

Ret := DioGetIrqConfig( DeviceHandle, IrqConfig );

end;

デバイス名「FBIDIO1」のデバイスの割り込み設定データを、変数 IrqConfig へ格納します。

Page 217: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

217

52. DioEventRequestPending

【機能】

デジタル入出力デバイスの割り込みイベント要求を待ちます。

OVERLAPPED構造体(Overlapped)を指定した非同期コールの場合、FBIDIO_ERROR_IO_PENDING

を返し非同期での動作となります。

ご使用のインタフェースモジュールのタイプにより存在しない信号がございます。インタフェ

ースモジュールの USER'S MANUAL にてご使用のインタフェースモジュールの仕様をご確認くだ

さい。

DioSetIrqMask、DioSetIrqConfig関数により必要な割り込みイベントの設定、マスク解除を事

前に行う必要があります。

【書式】

●C言語

INT DioEventRequestPending (

HANDLE DeviceHandle,

DWORD EventEnableMask,

PDWORD EventBuf,

LPOVERLAPPED Overlapped

);

●Visual Basic

Declare Function DioEventRequestPending Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByVal EventEnableMask As Long, _

ByRef EventBuf As Long, _

ByRef Overlapped As OVERLAPPED _

)As Long

●Delphi

function DioEventRequestPending (

DeviceHandle: Thandle;

EventEnableMask: DWORD;

var EventBuf: DWORD;

Overlapped: Poverlapped

): Integer; stdcall; external 'FbiDio.DLL';

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

Page 218: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

218

EventEnableMask 許可するイベントを以下のビットアサインで指定します。

イベント内容(該当ビットが”1”で有効)

・割り込みイベント

bit0 : IN1 からの入力信号または、STB1 からの入力信号

PCI-2470 の場合は、OUT1~OUT8 異常検出信号の OR での割込みイベント

bit1 : IN2 からの入力信号または、IR.IN1(外部割り込み入力信号)からの入力信号

bit2 : IN3 からの入力信号または、ACK2 からの入力信号

bit3 : IN4 からの入力信号または、IR.IN2(外部割り込み入力信号)からの入力信号

bit4 : インターバルタイマ

bit5 : 外部リセット入力(RSTIN)割り込み

※その他のビットには 0を指定してください。

EventBuf 通知されたイベント内容を格納する変数へのポインタ(参照渡し)を指定します。

通知イベント内容(該当ビットが”1”で有効)

・割り込みイベント

bit0 : IN1 からの入力信号または、STB1 からの入力信号

PCI-2470 の場合は、OUT1~OUT8 異常検出信号の OR での割込みイベント

bit1 : IN2 からの入力信号または、IR.IN1(外部割り込み入力信号)からの入力信号

bit2 : IN3 からの入力信号または、ACK2 からの入力信号

bit3 : IN4 からの入力信号または、IR.IN2(外部割り込み入力信号)からの入力信号

bit4 : インターバルタイマ

bit5 : 外部リセット入力(RSTIN)割り込み

Overlapped イベント待ちに使用する OVERLAPPED構造体へのポインタ(参照渡し)を指定します。(非同

期処理)

また、NULL(0)を指定すると、イベントが発生するまで、DioEventRequestPending関数は、

処理を戻しません。(同期処理)

Page 219: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

219

【戻り値】

DioEventRequestPending 関 数 は 、 Overlapped に NULL(0) 以 外 が 指 定 さ れ た 場 合 、

FBIDIO_ERROR_IO_PENDINGを返します。その後、Win32APIのWaitForSingleObject関数等を呼び

出して、イベント待ちを行ってください。

OverlappedにNULL(0)が指定された場合、DioEventRequestPending関数は、イベント待ち状態に

なり、イベントが発生したときに、FBIDIO_ERROR_SUCCESSを返します。

いずれの場合も、イベント発生後、EventBuf が指す位置へ、発生したイベントの情報が返され

ます。

FBIDIO_ERROR_IO_PENDING・FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5

戻り値一覧』をご参照ください。

【備考】

・DioSetIrqMask関数で、イベントを有効にしていなければイベントは発生しません。

・Visual Basic Ver. 4.0 では、マルチスレッドによる非同期処理は行えませんのでご注意く

ださい。

・イベント待ち処理を連続して実行する場合、Overlapped 構造体に指定するイベントハンドル

は自動リセットを指定して生成して下さい。

手動リセットで生成されたイベントハンドルを使用し、イベント待ちの処理を抜けた後で

ResetEvent を実行された場合、その間に発生したイベントを取りこぼす可能性があります。

※割り込み要因のバッファリングの開始

割り込み要因のバッファリングを有効にした状態で、 初に DioEventRequestPending関数・

DioEventRequestPendingEx関数を実行した時点から、割り込みのバッファリングを開始します。

Page 220: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

220

【使用例】

●C言語

非同期処理

INT Ret;

HANDLE DeviceHandle;

DWORD EventBuff;

OVERLAPPED Overlapped;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

Overlapped.Offset = 0;

Overlapped.OffsetHigh = 0;

Overlapped.hEvent = CreateEvent(0, FALSE, FALSE, NULL);

Ret = DioEventRequestPending( DeviceHandle, 0x00000005, &EventBuf, &Overlapped );

if (Ret == FBIDIO_ERROR_IO_PENDING) {

// 非同期処理では、WaitFirSingleObject を使ってイベントを待つので、

// DioEventRequestPending 実行後、他の処理を行った後でイベント待ちを

// 行うことが可能。

WaitForSingleObject(Overlapped.hEvent, INFINITE);

}

同期処理

INT Ret;

HANDLE DeviceHandle;

DWORD EventBuf;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

// 同期処理では、イベントが発生するまで、DioEventRequestPending

// 関数から処理は戻らない。

Ret = DioEventRequestPending( DeviceHandle, 1, 0x00000005, &EventBuf, NULL);

Page 221: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

221

●Visual Basic

非同期処理

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Dim EventBuf As Long

Dim Overlapped As OVERLAPPED

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

Overlapped.Offset = 0

Overlapped.OffsetHigh = 0

Overlapped.hEvent = CreateEvent(0, False, False, 0)

Ret = DioEventRequestPending( DeviceHandle, &H5, EventBuf, Overlapped )

If Ret = FBIDIO_ERROR_IO_PENDING Then

Ret = WaitForSingleObject(Overlapped.hEvent, INFINITE)

End If

同期処理

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Dim EventBuf As Long

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

Ret = DioEventRequestPending( DeviceHandle, 1, &H5, EventBuf, 0)

Page 222: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

222

●Delphi

非同期処理

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

EventBuf: DWORD;

Overlapped: TOVERLAPPED;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

Overlapped.Offset := 0;

Overlapped.OffsetHigh := 0;

Overlapped.hEvent := CreateEvent(nil, False, False, nil);

Ret := DioEventRequestPending( DeviceHandle, $00000005, EventBuf, @Overlapped );

if Ret = FBIDIO_ERROR_IO_PENDING then

begin

Ret := WaitForSingleObject(Overlapped.hEvent, INFINITE);

end;

end;

同期処理

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

EventBuf: DWORD;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

Ret := DioEventRequestPending( DeviceHandle, $00000005, EventBuf, 0 );

end;

デバイス名「FBIDIO1」のデバイスから「IN1 からの入力信号または、STB1 からの入力信号」お

よび「IN3 からの入力信号または、ACK2 からの入力信号」の両方イベント要求を待ちます。

Page 223: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

223

53. DioEintSetIrqMask

【機能】

PCI-2162, CTP-2162, CPZ-294188(IR1~IR32 まで)のエッジ検出割り込みマスク状態を設定

します。DioEintSetIrqMaskで有効にした割り込みは、DioEventRequestPendingExによるイベ

ント処理に利用します。

DioEintSetFilterConfigにより設定されているフィルタ時間以上のパルス幅を持つ入力が与

えられたときにエッジ検出割り込みが発生します。DioEintSetIrqMaskにより割り込みを有効

にする場合、DioEintSetEdgeConfig/DioEintSetEdgeConfigExによりエッジ検出条件の設定が

行われていなければなりません。

【書式】

●C言語

INT DioEintSetIrqMask (

HANDLE DeviceHandle,

DWORD IrqMask

);

●Visual Basic

Declare Function DioEintSetIrqMask Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByVal IrqMask As Long _

)As Integer

●Delphi

function DioEintSetIrqMask (

DeviceHandle: Thandle;

IrqMask: DWORD

): Integer; stdcall; external 'FbiDio.DLL';

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

IrqMask IR1~IR32 のエッジ検出割り込みのマスク/アンマスクを設定するデータを指定します。

bit31 bit30 ・・・ bit1 bit0

IR32 IR31 ・・・ IR2 IR1

電源投入時はすべてマスク状態(0)です。

0:マスク

1:アンマスク

Page 224: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

224

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

【備考】

※割り込み要因のバッファリングの停止、バッファクリア

割り込み要因のバッファリングを有効にした状態で、割り込みマスクが全てアンマスクされ

るとバッファリングを停止し、バッファに溜まったイベントがクリアされます。

DioSetIrqMask関数・DioEintSetIrqMask関数・DioEintSetIrqMaskEx関数で割り込みマスクの

設定が変更可能です。

※PCI-284866, PCI-298488, PCI-283144 で使用する場合

DioEintSetEdgeConfig関数実行後は、本関数を必ず実行してください。

Page 225: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

225

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

Ret = DioEintSetIrqMask( DeviceHandle, 0x0000000f );

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

Ret = DioEintSetIrqMask( DeviceHandle, &HF )

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

Ret := DioEintSetIrqMask( DeviceHandle, $0000000f );

end;

デバイス名「FBIDIO1」のデバイス(PCI-2162, CTP-2162, CPZ-294188)の IN1~IN4 に対する

エッジ検出割り込みを有効にします。

Page 226: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

226

54. DioEintGetIrqMask

【機能】

PCI-2162, CTP-2162, CPZ-294188(IR1~IR32 まで)のエッジ検出割り込みマスク状態を取得

します。

【書式】

●C言語

INT DioEintGetIrqMask (

HANDLE DeviceHandle,

PDWORD IrqMask

);

●Visual Basic

Declare Function DioEintGetIrqMask Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByRef IrqMask As Long _

)As Integer

●Delphi

function DioEintGetIrqMask (

DeviceHandle: Thandle;

var IrqMask: DWORD

): Integer; stdcall; external 'FbiDio.DLL';

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

IrqMask IR1~IR32 のエッジ検出割り込みのマスク/アンマスクを取得する変数へのポインタ(参照

渡し)を指定します。

IrqMask の形式は、次のようになっています。

bit31 bit30 ・・・ bit1 bit0

IR32 IR31 ・・・ IR2 IR1

0:マスク

1:アンマスク

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

Page 227: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

227

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

DWORD IrqMask;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

Ret = DioEintGetIrqMask( DeviceHandle, &IrqMask );

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Dim IrqMask As Long

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

Ret = DioEintGetIrqMask( DeviceHandle, IrqMask)

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

IrqMask : DWORD;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

Ret := DioEintGetIrqMask( DeviceHandle, IrqMask);

end;

デバイス名「FBIDIO1」のデバイス(PCI-2162, CTP-2162, CPZ-294188)の割り込みマスク状態

を IrqMask へ返します。

Page 228: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

228

55. DioEintSetIrqMaskEx

【機能】

PCI-2162, CTP-2162, CPZ-294188 のエッジ検出割り込みマスク状態を設定します。

DioEintSetIrqMaskExで有効にした割り込みは、DioEventRequestPendingExによるイベント処

理に利用します。

DioEintSetFilterConfigにより設定されているフィルタ時間以上のパルス幅を持つ入力が与

えられたときにエッジ検出割り込みが発生します。DioEintSetIrqMaskExにより割り込みを有

効にする場合、DioEintSetEdgeConfig/DioEintSetEdgeConfigExによりエッジ検出条件の設定

が行われていなければなりません。

【書式】

●C言語

INT DioEintSetIrqMaskEx (

HANDLE DeviceHandle,

INT No,

DWORD IrqMask

);

●Visual Basic

Declare Function DioEintSetIrqMaskEx Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByVal No As Long, _

ByVal IrqMask As Long _

)As Integer

●Delphi

function DioEintSetIrqMaskEx (

DeviceHandle: Thandle;

No: Integer;

IrqMask: DWORD

): Integer; stdcall; external 'FbiDio.DLL';

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

No 設定する接点を下記の識別子で指定します。

FBIDIO_IN1_32 IR1~IR32 の 32 点分のエッジ検出割り込みの

マスク/アンマスクを設定します。

FBIDIO_IN33_64 IR33~IR64 の 32 点分のエッジ検出割り込みの

マスク/アンマスクを設定します。

Page 229: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

229

IrqMask 対象接点のエッジ検出割り込みのマスク/アンマスクを設定するデータを指定します。

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

【備考】

データフォーマット

設定するデータは下記のようにビット毎に接点と対応しています。

ビット bit31 bit30 bit29 ・・・ bit2 bit1 bit0

FBIDIO_IN1_32 IR32 IR31 IR30 ・・・ IR3 IR2 IR1

FBIDIO_IN33_64 IR64 IR63 IR62 ・・・ IR35 IR34 IR33

0:マスク

1:アンマスク

※割り込み要因のバッファリングの停止、バッファクリア

割り込み要因のバッファリングを有効にした状態で、割り込みマスクが全てアンマスクされ

るとバッファリングを停止し、バッファに溜まったイベントがクリアされます。

DioSetIrqMask関数・DioEintSetIrqMask関数・DioEintSetIrqMaskEx関数で割り込みマスクの

設定が変更可能です。

Page 230: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

230

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

Ret = DioEintSetIrqMaskEx( DeviceHandle, FBIDIO_IN1_32, 0x0000000f );

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

Ret = DioEintSetIrqMaskEx( DeviceHandle, FBIDIO_IN1_32, &HF )

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

Ret := DioEintSetIrqMaskEx( DeviceHandle, FBIDIO_IN1_32, $0000000f );

end;

デバイス名「FBIDIO1」のデバイス(PCI-2162, CTP-2162, CPZ-294188)の IN1~IN4 に対する

エッジ検出割り込みを有効にします。

Page 231: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

231

56. DioEintGetIrqMaskEx

【機能】

PCI-2162, CTP-2162, CPZ-294188 のエッジ検出割り込みマスク状態を取得します。

【書式】

●C言語

INT DioEintGetIrqMaskEx (

HANDLE DeviceHandle,

INT No,

PDWORD IrqMask

);

●Visual Basic

Declare Function DioEintGetIrqMaskEx Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByVal No As Long, _

ByRef IrqMask As Long _

)As Integer

●Delphi

function DioEintGetIrqMaskEx (

DeviceHandle: Thandle;

No: Integer;

var IrqMask: DWORD

): Integer; stdcall; external 'FbiDio.DLL';

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

No 読み込む接点を下記の識別子で指定します。

FBIDIO_IN1_32 IR1~IR32 の 32 点分のエッジ検出割り込みの

マスク/アンマスクを読み込みます。

FBIDIO_IN33_64 IR33~IR64 の 32 点分のエッジ検出割り込みの

マスク/アンマスクを読み込みます。

IrqMask 読み込まれたエッジ検出割り込みのマスク/アンマスクを格納する変数へのポインタ(参

照渡し)を指定します。

Page 232: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

232

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

【備考】

データフォーマット

取得したデータは下記のようにビット毎に接点と対応しています。

ビット bit31 bit30 bit29 ・・・ bit2 bit1 bit0

FBIDIO_IN1_32 IR32 IR31 IR30 ・・・ IR3 IR2 IR1

FBIDIO_IN33_64 IR64 IR63 IR62 ・・・ IR35 IR34 IR33

0:マスク

1:アンマスク

Page 233: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

233

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

DWORD IrqMask;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

Ret = DioEintGetIrqMaskEx( DeviceHandle, FBIDIO_IN1_32, &IrqMask );

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Dim IrqMask As Long

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

Ret = DioEintGetIrqMaskEx( DeviceHandle, FBIDIO_IN1_32, IrqMask)

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

IrqMask : DWORD;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

Ret := DioEintGetIrqMaskEx( DeviceHandle, FBIDIO_IN1_32, IrqMask);

end;

デバイス名「FBIDIO1」のデバイス(PCI-2162, CTP-2162, CPZ-294188)の IR1~IR32 の割り込

みマスク状態を、GetIrqMask へ返します。

Page 234: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

234

57. DioEventRequestPendingEx

【機能】

デジタル入出力デバイスの割り込みイベント要求を待ちます。

OVERLAPPED構造体(Overlapped)を指定した非同期コールの場合、FBIDIO_ERROR_IO_PENDING

を返し非同期での動作となります。ご使用のインタフェースモジュールのタイプにより存在し

ない信号がございます。

インタフェースモジュールのUSER'S MANUALにてご使用のインタフェースモジュールの仕様を

ご確認ください DioSetIrqMask、DioSetIrqConfig、DioEintSetIrqMask、DioEintSetIrqMaskEx、

DioEintSetEdgeConfig、DioEintSetEdgeConfigEx関数により必要な割り込みイベントの設定、

マスク解除を事前に行う必要があります。

【書式】

●C言語

INT DioEventRequestPendingEx (

HANDLE DeviceHandle,

PDWORD EventEnableMask,

PDWORD EventBuf,

LPOVERLAPPED Overlapped,

);

●Visual Basic

Declare Function DioEventRequestPendingEx Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByRef EventEnableMask As Long, _

ByRef EventBuf As Long, _

ByRef Overlapped As OVERLAPPED _

)As Long

●Delphi

function DioEventRequestPendingEx (

DeviceHandle: Thandle;

var EventEnableMask: DWORD;

var EventBuf: DWORD;

Overlapped: Poverlapped

): Integer; stdcall; external 'FbiDio.DLL';

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

Page 235: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

235

EventEnableMask 許可するイベントのマスク設定を格納しているバッファへのポインタ(参照渡し)を指定

します。

各要素の内容は次のようになっています。

EventEnableMask + 0 割り込みイベント

(DioEventRequestPendingと同じ)

EventEnableMask + 1 IR1~IR32 立下りエッジ検出イベント

(PCI-2162, CTP-2162, CPZ-294188 専用イベント)

EventEnableMask + 2 IR1~IR32 立上りエッジ検出イベント

(PCI-2162, CTP-2162, CPZ-294188 専用イベント)

EventEnableMask + 3 IR33~IR64 立下りエッジ検出イベント

(CPZ-294188 専用イベント)

EventEnableMask + 4 IR33~IR64 立上りエッジ検出イベント

(CPZ-294188 専用イベント)

イベント内容(該当ビットが”1”で有効)

・割り込みイベント

bit0 : IN1 からの入力信号または、STB1 からの入力信号

PCI-2470 の場合は、OUT1~OUT8 異常検出信号の OR での割込みイベント

bit1 : IN2 からの入力信号または、IR.IN1(外部割り込み入力信号)からの入力信号

bit2 : IN3 からの入力信号または、ACK2 からの入力信号

bit3 : IN4 からの入力信号または、IR.IN2(外部割り込み入力信号)からの入力信号

bit4 : インターバルタイマ

bit5 : 外部リセット入力(RSTIN)割り込み

※その他のビットには 0を指定してください。

・IR1~IR32 立下りエッジ検出イベント

bit0 : IR1 に立下りエッジが検出されたときのイベント

bit1 : IR2 に立下りエッジが検出されたときのイベント

: :

bit31: IR32 に立下りエッジが検出されたときのイベント

・IR1~IR32 立上りエッジ検出イベント

bit0 : IR1 に立上りエッジが検出されたときのイベント

bit1 : IR2 に立上りエッジが検出されたときのイベント

: :

bit31: IR32 に立上りエッジが検出されたときのイベント

・IR33~IR64 立下りエッジ検出イベント

※CPZ-294188 以外の型式では値は無視されます。

bit0 : IR33 に立下りエッジが検出されたときのイベント

bit1 : IR34 に立下りエッジが検出されたときのイベント

: :

bit31: IR64 に立下りエッジが検出されたときのイベント

Page 236: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

236

・IR33~IR64 立上りエッジ検出イベント

※CPZ-294188 以外の型式では値は無視されます。

bit0 : IR33 に立上りエッジが検出されたときのイベント

bit1 : IR34 に立上りエッジが検出されたときのイベント

: :

bit31: IR64 に立上りエッジが検出されたときのイベント

EventBuf 通知されたイベント内容を格納するバッファへのポインタ(参照渡し)です。

各要素の内容は次のようになっています。

EventBuf+ 0 割り込みイベント

EventBuf + 1 IR1~IR32 立下りエッジ検出イベント

EventBuf + 2 IR1~IR32 立上りエッジ検出イベント

EventBuf + 3 IR33~IR64 立下りエッジ検出イベント

EventBuf + 4 IR33~IR64 立上りエッジ検出イベント

通知イベント内容(該当ビットが”1”で有効)

・割り込みイベント

bit0 : IN1 からの入力信号または、STB1 からの入力信号

PCI-2470 の場合は、OUT1~OUT8 異常検出信号の OR での割込みイベント

bit1 : IN2 からの入力信号または、IR.IN1(外部割り込み入力信号)からの入力信号

bit2 : IN3 からの入力信号または、ACK2 からの入力信号

bit3 : IN4 からの入力信号または、IR.IN2(外部割り込み入力信号)からの入力信号

bit4 : インターバルタイマ

bit5 : 外部リセット入力(RSTIN)割り込み

・IR1~IR32 立下りエッジ検出イベント

bit0 : IR1 に立下りエッジが検出されたときのイベント

bit1 : IR2 に立下りエッジが検出されたときのイベント

: :

bit31: IR32 に立下りエッジが検出されたときのイベント

・IR1~IR32 立上りエッジ検出イベント

bit0 : IR1 に立上りエッジが検出されたときのイベント

bit1 : IR2 に立上りエッジが検出されたときのイベント

: :

bit31: IR32 に立上りエッジが検出されたときのイベント

・IR33~IR64 立下りエッジ検出イベント

※CPZ-294188 以外の型式では無効な値となります。

bit0 : IR33 に立下りエッジが検出されたときのイベント

bit1 : IR34 に立下りエッジが検出されたときのイベント

: :

bit31: IR64 に立下りエッジが検出されたときのイベント

Page 237: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

237

・IR33~IR64 立上りエッジ検出イベント

※CPZ-294188 以外の型式では無効な値となります。

bit0 : IR33 に立上りエッジが検出されたときのイベント

bit1 : IR34 に立上りエッジが検出されたときのイベント

: :

bit31: IR64 に立上りエッジが検出されたときのイベント

Overlapped イベント待ちに使用する OVERLAPPED構造体へのポインタ(参照渡し)を指定します。(非同

期処理)

また、NULL(0)を指定すると、イベントが発生するまで、DioEventRequestPendingEx関数は、

処理を戻しません。(同期処理)

【戻り値】

DioEventRequestPendingEx 関 数 は 、 Overlapped に NULL(0) 以 外 が 指 定 さ れ た 場 合 、

FBIDIO_ERROR_IO_PENDINGを返します。その後、Win32APIのWaitForSingleObject関数等を呼び

出して、イベント待ちを行ってください。

OverlappedにNULL(0)が指定された場合、DioEventRequestPendingEx関数は、イベント待ち状態

になり、イベントが発生したときに、FBIDIO_ERROR_SUCCESSを返します。

いずれの場合も、イベント発生後、EventBuf が指す位置へ、発生したイベントの情報が返され

ます。

FBIDIO_ERROR_IO_PENDING・FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5

戻り値一覧』をご参照ください。

【備考】

・DioSetIrqMask関数、DioEintSetIrqMask関数、DioEintSetIrqMaskEx関数で、イベントを有

効にしていなければイベントは発生しません。

・Visual Basic Ver. 4.0 では、マルチスレッドによる非同期処理は行えませんのでご注意く

ださい。

・イベント待ち処理を連続して実行する場合、Overlapped 構造体に指定するイベントハンドル

は自動リセットを指定して生成して下さい。

手動リセットで生成されたイベントハンドルを使用し、イベント待ちの処理を抜けた後で

ResetEvent を実行された場合、その間に発生したイベントを取りこぼす可能性があります。

※割り込み要因のバッファリングの開始

割り込み要因のバッファリングを有効にした状態で、 初に DioEventRequestPending関数・

DioEventRequestPendingEx関数を実行した時点から、割り込みのバッファリングを開始します。

Page 238: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

238

【使用例】

●C言語

非同期処理

INT Ret;

HANDLE DeviceHandle;

DWORD EventEnableMask[5];

DWORD EventBuff[5];

OVERLAPPED Overlapped;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

EventEnableMask[0] = 0x00000005;

EventEnableMask[1] = 0;

EventEnableMask[2] = 0;

EventEnableMask[3] = 0;

EventEnableMask[4] = 0;

Overlapped.Offset = 0;

Overlapped.OffsetHigh = 0;

Overlapped.hEvent = CreateEvent(0, FALSE, FALSE, NULL);

Ret = DioEventRequestPendingEx( DeviceHandle, EventEnableMask, EventBuf, &Overlapped );

if (Ret == FBIDIO_ERROR_IO_PENDING) {

// 非同期処理では、WaitFirSingleObject を使ってイベントを待つので、

// DioEventRequestPendingEx 実行後、他の処理を行った後でイベント待ちを

// 行うことが可能。

WaitForSingleObject(Overlapped.hEvent, INFINITE);

}

同期処理

INT Ret;

HANDLE DeviceHandle;

DWORD EventEnableMask[5];

DWORD EventBuff[5];

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

EventEnableMask[0] = 0x00000005;

EventEnableMask[1] = 0;

EventEnableMask[2] = 0;

EventEnableMask[3] = 0;

EventEnableMask[4] = 0;

// 同期処理では、イベントが発生するまで、DioEventRequestPendingEx

// 関数から処理は戻らない。

Ret = DioEventRequestPendingEx( DeviceHandle, EventEnableMask, EventBuf, NULL );

Page 239: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

239

●Visual Basic

非同期処理

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Dim EventEnableMask(5) As Long

Dim EventBuf(5) As Long

Dim Overlapped As OVERLAPPED

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

EventEnableMask(0) = &H5;

EventEnableMask(1) = 0;

EventEnableMask(2) = 0;

EventEnableMask(3) = 0;

EventEnableMask(4) = 0;

Overlapped.Offset = 0

Overlapped.OffsetHigh = 0

Overlapped.hEvent = CreateEvent(0, False, False, 0)

Ret = DioEventRequestPendingEx( DeviceHandle, EventEnableMask(0), EventBuf(0), _

Overlapped )

If Ret = FBIDIO_ERROR_IO_PENDING Then

Ret = WaitForSingleObject(Overlapped.hEvent, INFINITE)

End If

同期処理

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Dim EventEnableMask(5) As Long

Dim EventBuf(5) As Long

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

EventEnableMask(0) = &H5;

EventEnableMask(1) = 0;

EventEnableMask(2) = 0;

EventEnableMask(3) = 0;

EventEnableMask(4) = 0;

Ret = DioEventRequestPendingEx( DeviceHandle, EventEnableMask(0), EventBuf(0), 0)

Page 240: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

240

●Delphi

非同期処理

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

EventEnableMask: Array[0..4] of DWORD;

EventBuf: Array[0..4] of DWORD;

Overlapped: TOVERLAPPED;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

EventEnableMask[0] := $00000005;

EventEnableMask[1] := 0;

EventEnableMask[2] := 0;

EventEnableMask[3] := 0;

EventEnableMask[4] := 0;

Overlapped.Offset := 0;

Overlapped.OffsetHigh := 0;

Overlapped.hEvent := CreateEvent(nil, False, False, nil);

Ret := DioEventRequestPendingEx( DeviceHandle, @EventEnableMask[0], @EventBuf[0],

@Overlapped );

if Ret = FBIDIO_ERROR_IO_PENDING then

begin

Ret := WaitForSingleObject(Overlapped.hEvent, INFINITE);

end;

end;

同期処理

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

EventEnableMask: Array[0..4] of DWORD;

EventBuf: Array[0..4] of DWORD;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

EventEnableMask[0] := $00000005;

Page 241: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

241

EventEnableMask[1] := 0;

EventEnableMask[2] := 0;

EventEnableMask[3] := 0;

EventEnableMask[4] := 0;

Ret := DioEventRequestPendingEx( DeviceHandle, @EventEnableMask[0], @EventBuf[0], 0);

end;

デバイス名「FBIDIO1」のデバイスから「IN1 からの入力信号または、STB1 からの入力信号」お

よび「IN3 からの入力信号または、ACK2 からの入力信号」のイベント要求を待ちます。

Page 242: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

242

58. DioSetTimerConfig

【機能】

インターバルタイマの設定を行います。

【書式】

●C言語

INT DioSetTimerConfig (

HANDLE DeviceHandle,

BYTE TimerConfigValue

);

●Visual Basic

Declare Function DioSetTimerConfig Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByVal TimerConfigValue As Byte _

)As Integer

●Delphi

function DioSetTimerConfig (

DeviceHandle: Thandle;

TimerConfigValue: Byte

): Integer; stdcall; external 'FbiDio.DLL';

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

TimerConfigValue インターバルタイマを設定する、ビットの組み合わせです。

タイマ周期は CTL5~CTL7 で設定した基準周期と、CTL1~4 で設定した分周値の積となりま

す。(周期=基準周期×分周値)

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

未使用 CTL7 CTL6 CTL5 CTL4 CTL3 CTL2 CTL1

CTL1~CTL4 分周値設定

CTL4 CTL3 CTL2 CTL1

タイマ停止 0 0 0 0

1 分周 0 0 0 1

2 分周 0 0 1 0

3 分周 0 0 1 1

4 分周 0 1 0 0

5 分周 0 1 0 1

6 分周 0 1 1 0

7 分周 0 1 1 1

8 分周 1 0 0 0

Page 243: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

243

9 分周 1 0 0 1

10 分周 1 0 1 0

11 分周 1 0 1 1

12 分周 1 1 0 0

13 分周 1 1 0 1

14 分周 1 1 1 0

15 分周 1 1 1 1

CTL5~CTL7 基準周期設定

CTL7 CTL6 CTL5

10µs 0 0 0

100µs 0 0 1

1ms 0 1 0

10ms 0 1 1

100ms 1 0 0

※PCI-293544 は 10µs を設定することはできません。

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

Ret = DioSetTimerConfig( DeviceHandle, 0x38 );

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

Ret = DioSetTimerConfig( DeviceHandle, &H38 )

Page 244: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

244

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

Ret := DioSetTimerConfig( DeviceHandle, $38 );

end;

デバイス名「FBIDIO1」のデバイスのインターバルタイマを、分周値 8、基準周期 10ms で設定

を行います。

Page 245: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

245

59. DioGetTimerConfig

【機能】

インターバルタイマの設定情報を取得します。

【書式】

●C言語

INT DioGetTimerConfig (

HANDLE DeviceHandle,

PBYTE TimerConfigValue

);

●Visual Basic

Declare Function DioGetTimerConfig Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByRef TimerConfigValue As Byte _

)As Integer

●Delphi

function DioGetTimerConfig (

DeviceHandle: Thandle;

var TimerConfigValue: Byte

): Integer; stdcall; external 'FbiDio.DLL';

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

TimerConfigValue インターバルタイマの設定データを格納する変数へのポインタ(参照渡し)を指定します。

タイマ周期は CTL5~CTL7 で設定した基準周期と、CTL1~CTL4 で設定した分周値の積となり

ます。(周期=基準周期×分周値)

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

未使用 CTL7 CTL6 CTL5 CTL4 CTL3 CTL2 CTL1

CTL1~CTL4 分周値設定

CTL4 CTL3 CTL2 CTL1

タイマ停止 0 0 0 0

1 分周 0 0 0 1

2 分周 0 0 1 0

3 分周 0 0 1 1

4 分周 0 1 0 0

5 分周 0 1 0 1

6 分周 0 1 1 0

7 分周 0 1 1 1

8 分周 1 0 0 0

Page 246: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

246

9 分周 1 0 0 1

10 分周 1 0 1 0

11 分周 1 0 1 1

12 分周 1 1 0 0

13 分周 1 1 0 1

14 分周 1 1 1 0

15 分周 1 1 1 1

CTL5~CTL7 基準周期設定

CTL7 CTL6 CTL5

10µs 0 0 0

100µs 0 0 1

1ms 0 1 0

10ms 0 1 1

100ms 1 0 0

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

BYTE TimerConfigValue;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

Ret = DioGetTimerConfig( DeviceHandle, &TimerConfigValue );

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Dim TimerConfigValue As Byte

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

Ret = DioGetTimerConfig( DeviceHandle, TimerConfigValue )

Page 247: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

247

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

TimerConfigValue: Byte;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

Ret := DioGetTimerConfig( DeviceHandle, TimerConfigValue );

end;

デバイス名「FBIDIO1」のデバイスからインターバルタイマの設定情報を変数 TimerConfigValue

へ格納します。

Page 248: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

248

60. DioGetTimerCount

【機能】

インターバルタイマのカウント値を取得します。

【書式】

●C言語

INT DioGetTimerCount (

HANDLE DeviceHandle,

PBYTE TimerCount

);

●Visual Basic

Declare Function DioGetTimerCount Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByRef TimerCount As Byte _

)As Integer

●Delphi

function DioGetTimerCount (

DeviceHandle: Thandle;

var TimerCount: Byte

): Integer; stdcall; external 'FbiDio.DLL';

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

TimerCount インタフェースモジュール上のインターバルタイマの現在のカウンタ値を格納する変数へ

のポインタ(参照渡し)を指定します。

DioSetTimerConfigにより設定した周期における、現在の状態値を 4bitカウンタで取得しま

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

未使用 未使用 未使用 未使用 CTL4 CTL3 CTL2 CTL1

CTL1~CTL4 分周値設定

CTL4 CTL3 CTL2 CTL1

0 カウント 0 0 0 0

1 カウント 0 0 0 1

2 カウント 0 0 1 0

3 カウント 0 0 1 1

4 カウント 0 1 0 0

5 カウント 0 1 0 1

6 カウント 0 1 1 0

Page 249: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

249

7 カウント 0 1 1 1

8 カウント 1 0 0 0

9 カウント 1 0 0 1

10 カウント 1 0 1 0

11 カウント 1 0 1 1

12 カウント 1 1 0 0

13 カウント 1 1 0 1

14 カウント 1 1 1 0

15 カウント 1 1 1 1

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

BYTE TimerCount;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

Ret = DioGetTimerCount( DeviceHandle, &TimerCount );

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Dim TimerCount As Byte

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

Ret = DioGetTimerCount( DeviceHandle, TimerCount )

Page 250: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

250

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

TimerCount: Byte;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

Ret := DioGetTimerCount( DeviceHandle, TimerCount );

end;

デバイス名「FBIDIO1」のデバイスからインターバルタイマのカウント値を取得します。

Page 251: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

251

61. DioEintSetEdgeConfig

【機能】

PCI-2162, CTP-2162, CPZ-294188(IR1~IR32 まで)のエッジ検出機能を設定します。

DioEintSetEdgeConfigで設定したエッジ検出設定は、次の関数で得られるエッジ検出に影響を

与えます。

DioEintInputPoint、DioEintInputByte、DioEintInputWord、DioEintInputDword、

DioEventRequestPendingEx

【書式】

●C言語

INT DioEintSetEdgeConfig (

HANDLE DeviceHandle,

DWORD FallEdgeConfig,

DWORD RiseEdgeConfig

);

●Visual Basic

Declare Function DioEintSetEdgeConfig Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByVal FallEdgeConfig As Long, _

ByVal RiseEdgeConfig As Long _

)As Integer

●Delphi

function DioEintSetEdgeConfig (

DeviceHandle: Thandle;

FallEdgeConfig: DWORD;

RiseEdgeConfig: DWORD

): Integer; stdcall; external 'FbiDio.DLL';

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

FallEdgeConfig IR1~IR32 の立下りエッジ検出を有効にするか、無効にするかを指定します。

bit31 bit30 ・・・ bit1 bit0

IR32 IR31 ・・・ IR2 IR1

電源投入時はすべて無効(0)です。

0:無効

1:有効

Page 252: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

252

RiseEdgeConfig IR1~IR32 の立上りエッジ検出を有効にするか、無効にするかを指定します。

bit31 bit30 ・・・ bit1 bit0

IR32 IR31 ・・・ IR2 IR1

電源投入時はすべて無効(0)です。

0:無効

1:有効

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

【備考】

※PCI-284866, PCI-298488, PCI-283144 で使用する場合

本関数実行後は、DioEintSetIrqMask関数を必ず実行してください。

Page 253: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

253

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

Ret = DioEintSetEdgeConfig( DeviceHandle, 0x0000000f, 0x000000f0 );

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

Ret = DioEintSetEdgeConfig( DeviceHandle, &HF, &HF0 )

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

Ret := DioEintSetEdgeConfig( DeviceHandle, $0000000f, $000000f0);

end;

デバイス名「FBIDIO1」のデバイス(PCI-2162, CTP-2162, CPZ-294188)の IR1~IR4 に対する

立下りエッジ検出と IR5~IR8 に対する立上りエッジ検出を有効にします。

Page 254: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

254

62. DioEintGetEdgeConfig

【機能】

PCI-2162, CTP-2162, CPZ-294188(IR1~IR32 まで)の現在のエッジ検出設定を取得します。

【書式】

●C言語

INT DioEintGetEdgeConfig (

HANDLE DeviceHandle,

PDWORD FallEdgeConfig,

PDWORD RiseEdgeConfig

);

●Visual Basic

Declare Function DioEintGetEdgeConfig Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByRef FallEdgeConfig As Long, _

ByRef RiseEdgeConfig As Long _

)As Integer

●Delphi

function DioEintGetEdgeConfig (

DeviceHandle: Thandle;

var FallEdgeConfig: DWORD;

var RiseEdgeConfig: DWORD

): Integer; stdcall; external 'FbiDio.DLL';

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

FallEdgeConfig IR1~IR32 の立下りエッジ検出設定状態を返す変数へのポインタ(参照渡し)を指定します。

FallEdgeConfig には、次の形式で立下りエッジ検出設定が返されます。

bit31 bit30 ・・・ bit1 bit0

IR32 IR31 ・・・ IR2 IR1

電源投入時はすべて無効(0)です。

0:無効

1:有効

Page 255: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

255

RiseEdgeConfig IR1~IR32 の立上りエッジ検出設定状態を返す変数へのポインタ(参照渡し)を指定します。

RiseEdgeConfig には、次の形式で立上りエッジ検出設定が返されます。

bit31 bit30 ・・・ bit1 bit0

IR32 IR31 ・・・ IR2 IR1

電源投入時はすべて無効(0)です。

0:無効

1:有効

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

DWORD FallEdgeConfig, RiseEdgeConfig;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

Ret = DioEintGetEdgeConfig( DeviceHandle, &FallEdgeConfig, &RiseEdgeConfig );

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Dim FallEdgeConfig As Long, RiseEdgeConfig As Long

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

Ret = DioEintGetEdgeConfig( DeviceHandle, FallEdgeConfig, RiseEdgeConfig)

Page 256: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

256

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

FallEdgeConfig: DWORD;

RiseEdgeConfig: DWORD;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

Ret := DioEintGetEdgeConfig( DeviceHandle, FallEdgeConfig, RiseEdgeConfig);

end;

デバイス名「FBIDIO1」のデバイス(PCI-2162, CTP-2162, CPZ-294188)の立下りエッジ検出設

定状態を FallEdgeConfig に、立上りエッジ検出設定を RiseEddgeConfig へ返します。

Page 257: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

257

63. DioEintSetEdgeConfigEx

【機能】

PCI-2162, CTP-2162, CPZ-294188 のエッジ検出機能を設定します。

DioEintSetEdgeConfigExで設定したエッジ検出設定は、次の関数で得られるエッジ検出に影響

を与えます。

DioEintInputPoint、DioEintInputByte、DioEintInputWord、DioEintInputDword、

DioEventRequestPendingEx

【書式】

●C言語

INT DioEintSetEdgeConfigEx (

HANDLE DeviceHandle,

INT No,

DWORD FallEdgeConfig,

DWORD RiseEdgeConfig,

);

●Visual Basic

Declare Function DioEintSetEdgeConfigEx Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByVal No As Long, _

ByVal FallEdgeConfig As Long, _

ByVal RiseEdgeConfig As Long _

)As Integer

●Delphi

function DioEintSetEdgeConfigEx (

DeviceHandle: Thandle;

No: Integer;

FallEdgeConfig: DWORD;

RiseEdgeConfig: DWORD

): Integer; stdcall; external 'FbiDio.DLL';

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

No 設定する接点を下記の識別子で指定します。

FBIDIO_IN1_32 IR1~IR32 の 32 点分のエッジ検出を設定します。

FBIDIO_IN33_64 IR33~IR64 の 32 点分のエッジ検出を設定します。

FallEdgeConfig 対象接点の立ち下がりエッジ検出を有効にするか、無効にするかを指定します。

Page 258: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

258

RiseEdgeConfig 対象接点の立ち上がりエッジ検出を有効にするか、無効にするかを指定します。

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

【備考】

データフォーマット

設定するデータは下記のようにビット毎に接点と対応しています。

ビット bit31 bit30 bit29 ・・・ bit2 bit1 bit0

FBIDIO_IN1_32 IR32 IR31 IR30 ・・・ IR3 IR2 IR1

FBIDIO_IN33_64 IR64 IR63 IR62 ・・・ IR35 IR34 IR33

0:無効

1:有効

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

Ret = DioEintSetEdgeConfigEx( DeviceHandle, FBIDIO_IN1_32, 0x0000000f, 0x000000f0 );

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

Ret = DioEintSetEdgeConfigEx( DeviceHandle, FBIDIO_IN1_32, &HF, &HF0 )

Page 259: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

259

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

Ret := DioEintSetEdgeConfigEx( DeviceHandle, FBIDIO_IN1_32, $0000000f, $000000f0);

end;

デバイス名「FBIDIO1」のデバイス(PCI-2162, CTP-2162, CPZ-294188)の IR1~IR4 に対する

立下りエッジ検出と IR5~IR8 に対する立上りエッジ検出を有効にします。

Page 260: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

260

64. DioEintGetEdgeConfigEx

【機能】

PCI-2162, CTP-2162, CPZ-294188 の現在のエッジ検出設定を取得します。

【書式】

●C言語

INT DioEintGetEdgeConfigEx (

HANDLE DeviceHandle,

INT No,

PDWORD FallEdgeConfig,

PDWORD RiseEdgeConfig

);

●Visual Basic

Declare Function DioEintGetEdgeConfigEx Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByVal No As Long, _

ByRef FallEdgeConfig As Long, _

ByRef RiseEdgeConfig As Long _

)As Integer

●Delphi

function DioEintGetEdgeConfigEx (

DeviceHandle: Thandle;

No: Integer;

var FallEdgeConfig: DWORD;

var RiseEdgeConfig: DWORD

): Integer; stdcall; external 'FbiDio.DLL';

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

No 読み込む接点を下記の識別子で指定します。

FBIDIO_IN1_32 IR1~IR32 の 32 点分のエッジ検出設定を読み込みます。

FBIDIO_IN33_64 IR33~IR64 の 32 点分のエッジ検出設定を読み込みます。

FallEdgeConfig 読み込まれた立下りエッジ検出設定を格納する変数へのポインタ(参照渡し)を指定しま

す。

RiseEdgeConfig 読み込まれた立上りエッジ検出設定を格納する変数へのポインタ(参照渡し)を指定しま

す。

Page 261: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

261

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

【備考】

データフォーマット

取得したデータは下記のようにビット毎に接点と対応しています。

ビット bit31 bit30 bit29 ・・・ bit2 bit1 bit0

FBIDIO_IN1_32 IR32 IR31 IR30 ・・・ IR3 IR2 IR1

FBIDIO_IN33_64 IR64 IR63 IR62 ・・・ IR35 IR34 IR33

0:無効

1:有効

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

DWORD FallEdgeConfig, RiseEdgeConfig;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

Ret = DioEintGetEdgeConfigEx( DeviceHandle, FBIDIO_IN1_32,

&FallEdgeConfig, &RiseEdgeConfig );

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Dim FallEdgeConfig As Long

Dim RiseEdgeConfig As Long

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

Ret = DioEintGetEdgeConfigEx( DeviceHandle, FBIDIO_IN1_32, _

FallEdgeConfig, RiseEdgeConfig)

Page 262: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

262

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

FallEdgeConfig: DWORD;

RiseEdgeConfig: DWORD;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

begin

Ret := DioEintGetEdgeConfigEx( DeviceHandle, FBIDIO_IN1_32,

FallEdgeConfig, RiseEdgeConfig);

end;

デバイス名「FBIDIO1」のデバイス(PCI-2162, CTP-2162, CPZ-294188)の IR1~IR32 の立下り

エッジ検出設定状態を FallEdgeConfig に、立上りエッジ検出設定を RiseEddgeConfig へ返しま

す。

Page 263: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

263

65. DioEintInputPoint

【機能】

任意の点数のエッジ検出データを読み込みます。

指定した開始接点番号から 1接点づつ INT 型の変数にデータが格納されます。

DioEintInputPointにより、エッジ検出データを読み込んだ接点のエッジ検出データはクリアさ

れます。

DioEintInputPointは、PCI-2162, CTP-2162, CPZ-294188 専用関数です。

【書式】

●C言語

INT DioEintInputPoint (

HANDLE DeviceHandle,

PINT Buffer,

DWORD StartNum,

DWORD Num,

);

●Visual Basic

Declare Function DioEintInputPoint Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByRef Buffer As Long, _

ByVal StartNum As Long, _

ByVal Num As Long _

)As Long

●Delphi

function DioEintInputPoint (

DeviceHandle: Thandle;

Buffer: Pinteger;

StartNum: DWORD;

Num: DWORD

): Integer; stdcall; external 'FbiDio.DLL';

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

Buffer デバイスから読み取ったデータを受け取るバッファを指すポインタ(参照渡し)を指定し

ます。

Buffer が指すバッファ領域には、次の形式でエッジ検出データが格納されます。

Buffer + 0 エッジ検出データ 1(StartNum で指定した接点)

Buffer + 1 エッジ検出データ 2(StartNum で指定した接点 + 1)

: :

Buffer + Num - 1 エッジ検出データ n(StartNum で指定した接点 + Num - 1)

Page 264: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

264

エッジ検出データ

bit31~bit2 bit1 bit0

’0’ 立上りエッジ 立下りエッジ

0:エッジなし

1:エッジあり

StartNum 入力開始接点番号 1~64 を指定します。

Num 入力接点数を指定します。

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

INT nBuffer[8];

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

Ret = DioEintInputPoint( DeviceHandle, &Buffer[0], 16, 8 );

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Dim Buffer(8) As Long

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

Ret = DioEintInputPoint( DeviceHandle, Buffer(0), 16, 8 )

Page 265: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

265

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

Buffer: Array[0..7] of Integer;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

Ret := DioEinrInputPoint( DeviceHandle, @Buffer[0], 16, 8 );

end;

デバイス名「FBIDIO1」のデバイス(PCI-2162, CTP-2162, CPZ-294188)の接点 16 番から接点

23 番までの接点状態を読み込みます。

Page 266: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

266

66. DioEintInputByte

【機能】

PCI-2162, CTP-2162, CPZ-294188 の接点 8点分のエッジ検出データを読み込みます。

DioEintInputByteによりエッジ検出データを読み出しを行った接点のエッジ検出データはクリ

アされます。

DioEintInputByteは、PCI-2162, CTP-2162, CPZ-294188 専用関数です。

【書式】

●C言語

INT DioEintInputByte (

HANDLE DeviceHandle,

INT No,

PBYTE FallValue,

PBYTE RiseValue

);

●Visual Basic

Declare Function DioEintInputByte Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByVal No As Long, _

ByRef FallValue As Byte, _

ByRef RiseValue As Byte _

)As Long

●Delphi

function DioEintInputByte (

DeviceHandle: Thandle;

No: Integer;

var FallValue: Byte;

var RiseValue: Byte

): Integer; stdcall; external 'FbiDio.DLL';

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

No 読み込む接点を下記の識別子で指定します。

FBIDIO_IN1_8 IR1~IR8 の 8 点分のデータを読み込みます。

FBIDIO_IN9_16 IR9~IR16 の 8 点分のデータを読み込みます。

FBIDIO_IN17_24 IR17~IR24 の 8 点分のデータを読み込みます。

FBIDIO_IN25_32 IR25~IR32 の 8 点分のデータを読み込みます。

FBIDIO_IN33_40 IR33~IR40 の 8 点分のデータを読み込みます。

FBIDIO_IN41_48 IR41~IR48 の 8 点分のデータを読み込みます。

FBIDIO_IN49_56 IR49~IR56 の 8 点分のデータを読み込みます。

FBIDIO_IN57_64 IR57~IR64 の 8 点分のデータを読み込みます。

Page 267: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

267

FallValue 立下りエッジ検出データを格納する変数へのポインタ(参照渡し)を指定します。

RiseValue 立上りエッジ検出データを格納する変数へのポインタ(参照渡し)を指定します。

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

【備考】

データフォーマット

取得したデータは下記のようにビット毎に接点と対応しています。

ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

FBIDIO_IN1_8 IR8 IR7 IR6 IR5 IR4 IR3 IR2 IR1

FBIDIO_IN9_16 IR16 IR15 IR14 IR13 IR12 IR11 IR10 IR9

FBIDIO_IN17_24 IR24 IR23 IR22 IR21 IR20 IR19 IR18 IR17

FBIDIO_IN25_32 IR32 IR31 IR30 IR29 IR28 IR27 IR26 IR25

FBIDIO_IN33_40 IR40 IR39 IR38 IR37 IR36 IR35 IR34 IR33

FBIDIO_IN41_48 IR48 IR47 IR46 IR45 IR44 IR43 IR42 IR41

FBIDIO_IN49_56 IR56 IR55 IR54 IR53 IR52 IR51 IR50 IR49

FBIDIO_IN57_64 IR64 IR63 IR62 IR61 IR60 IR59 IR58 IR57

データ 0 ← エッジ検出なし

データ 1 ← エッジ検出あり

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

BYTE FallValue, RiseValue;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

Ret = DioEintInputByte( DeviceHandle, FBIDIO_IN1_8, &FallValue, &RiseValue );

Page 268: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

268

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Dim FallValue As Byte

Dim RiseValue As Byte

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

Ret = DioEintInputByte( DeviceHandle, FBIDIO_IN1_8, FallValue, RiseValue )

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

FallValue: Byte;

RiseValue: Byte;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

Ret := DioEintInputByte( DeviceHandle, FBIDIO_IN1_8, FallValue, RiseValue );

end;

デバイス名「FBIDIO1」のデバイス(PCI-2162, CTP-2162, CPZ-294188)の IR1~IR8 のエッジ

検出データを、変数 FallValue と RiseValue に取得します。

Page 269: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

269

67. DioEintInputWord

【機能】

PCI-2162, CTP-2162, CPZ-294188 の接点 16 点分のエッジ検出データを読み込みます。

DioEintInputWordによりエッジ検出データを読み出しを行った接点のエッジ検出データはクリ

アされます。

DioEintInputWordは、PCI-2162, CTP-2162, CPZ-294188 専用関数です。

【書式】

●C言語

INT DioEintInputWord (

HANDLE DeviceHandle,

INT No,

PWORD FallValue,

PWORD RiseValue,

);

●Visual Basic

Declare Function DioEintInputWord Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByVal No As Long, _

ByRef FallValue As Integer, _

ByRef RiseValue As Integer _

)As Long

●Delphi

function DioEintInputWord (

DeviceHandle: Thandle;

No: Integer;

var FallValue: Word;

var RiseValue: Word

): Integer; stdcall; external 'FbiDio.DLL';

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

No 読み込む接点を下記の識別子で指定します。

FBIDIO_IN1_16 IR1~IR16 の 16 点分のデータを読み込みます。

FBIDIO_IN17_32 IR17~IR32 の 16 点分のデータを読み込みます。

FBIDIO_IN33_48 IR33~IR48 の 16 点分のデータを読み込みます。

FBIDIO_IN49_64 IR49~IR64 の 16 点分のデータを読み込みます。

FallValue 立下りエッジ検出データを格納する変数へのポインタ(参照渡し)を指定します。

Page 270: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

270

RiseValue 立上りエッジ検出データを格納する変数へのポインタ(参照渡し)を指定します。

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

【備考】

データフォーマット

取得したデータは下記のようにビット毎に接点と対応しています。

ビット bit15 bit14 bit13 ・・・ bit2 bit1 bit0

FBIDIO_IN1_16 IR16 IR15 IR14 ・・・ IR3 IR2 IR1

FBIDIO_IN17_32 IR32 IR31 IR30 ・・・ IR19 IR18 IR17

FBIDIO_IN33_48 IR48 IR47 IR46 ・・・ IR35 IR34 IR33

FBIDIO_IN49_64 IR64 IR63 IR62 ・・・ IR51 IR50 IR49

データ 0 ← エッジ検出なし

データ 1 ← エッジ検出あり

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

WORD FallValue, RiseValue;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

Ret = DioEintInputWord( DeviceHandle, FBIDIO_IN1_16, &FallValue, &RiseValue );

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Dim FallValue As Integer

Dim RiseValue As Integer

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

Ret = DioEintInputWord( DeviceHandle, FBIDIO_IN1_16, FallValue, RiseValue )

Page 271: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

271

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

FallValue: Word;

RiseValue: Word;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

Ret := DioEintInputWord( DeviceHandle, FBIDIO_IN1_16, FallValue, RiseValue );

end;

デバイス名「FBIDIO1」のデバイス(PCI-2162, CTP-2162, CPZ-294188)の IR1~IR16 のエッジ

検出データを、変数 FallValue と RiseValue に取得します。

Page 272: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

272

68. DioEintInputDword

【機能】

PCI-2162, CTP-2162, CPZ-294188 の接点 32 点分のエッジ検出データを読み込みます。

DioEintInputDwordによりエッジ検出データを読み出しを行った接点のエッジ検出データはク

リアされます。

DioEintInputDwordは、PCI-2162, CTP-2162, CPZ-294188 専用関数です。

【書式】

●C言語

INT DioEintInputDword (

HANDLE DeviceHandle,

INT No,

PDWORD FallValue,

PDWORD RiseValue,

);

●Visual Basic

Declare Function DioEintInputDword Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByVal No As Long, _

ByRef FallValue As Long, _

ByRef RiseValue As Long _

)As Long

●Delphi

function DioEintInputDword (

DeviceHandle: Thandle;

No: Integer;

var FallValue: DWORD;

var RiseValue: DWORD

): Integer; stdcall; external 'FbiDio.DLL';

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

No 読み込む接点を下記の識別子で指定します。

FBIDIO_IN1_32 IR1~IR32 の 32 点分のデータを読み込みます。

FBIDIO_IN33_64 IR33~IR64 の 32 点分のデータを読み込みます。

FallValue 立下りエッジ検出データを格納する変数へのポインタ(参照渡し)を指定します。

Page 273: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

273

RiseValue 立上りエッジ検出データを格納する変数へのポインタ(参照渡し)を指定します。

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

【備考】

データフォーマット

取得したデータは下記のようにビット毎に接点と対応しています。

ビット bit31 bit30 bit29 ・・・ bit2 bit1 bit0

FBIDIO_IN1_32 IR32 IR31 IR30 ・・・ IR3 IR2 IR1

FBIDIO_IN33_64 IR64 IR63 IR62 ・・・ IR35 IR34 IR33

データ 0 ← エッジ検出なし

データ 1 ← エッジ検出あり

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

DWORD FallValue, RiseValue;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

Ret = DioEintInputDword( DeviceHandle, FBIDIO_IN1_32, &FallValue, &RiseValue );

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Dim FallValue As Long

Dim RiseValue As Long

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

Ret = DioEintInputDword( DeviceHandle, FBIDIO_IN1_32, FallValue, RiseValue )

Page 274: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

274

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

FallValue: DWORD;

RiseValue: DWORD;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

Ret := DioEintInputDword( DeviceHandle, FBIDIO_IN1_32, FallValue, RiseValue );

end;

デバイス名「FBIDIO1」のデバイス(PCI-2162, CTP-2162, CPZ-294188)の IR1~IR32 のエッジ

検出データを、変数 FallValue と RiseValue に取得します。

Page 275: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

275

69. DioEintSetFilterConfig

【機能】

PCI-2162, CTP-2162, CPZ-294188, PCI-293544U, PCI-293588 のデジタルフィルタ機能を設定

します。

DioEintSetFilterConfigで設定したフィルタ時間よりも短い幅のパルスに対して無視するよ

うになります。DioEintSetFilterConfigは、PCI-2162, CTP-2162, CPZ-294188, PCI-293544U,

PCI-293588 専用の関数です。

DioEintSetFilterConfigで指定されたデジタルフィルタは、次の関数の実行時に影響を与えま

す。

DioEintInputPoint、DioEintInputByte、DioEintInputWord、DioEintInputDword、

DioEventRequestPendingEx

PCI-293544U, PCI-293588 の場合は以下の関数の実行時に影響を与えます。

DioEventRequestPending

【書式】

●C言語

INT DioEintSetFilterConfig (

HANDLE DeviceHandle,

INT No,

INT FilterConfig,

);

●Visual Basic

Declare Function DioEintSetFilterConfig Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByVal No As Long, _

ByVal FilterConfig As Long _

)As Integer

●Delphi

function DioEintSetFilterConfig (

DeviceHandle: Thandle;

No: Integer;

FilterConfig: Integer

): Integer; stdcall; external 'FbiDio.DLL';

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

Page 276: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

276

No フィルタ設定を行う接点を下記の識別子で指定します。

FBIDIO_IN1_8 IR1~IR8 のフィルタを設定します。

FBIDIO_IN9_16 IR9~IR16 のフィルタを設定します。

FBIDIO_IN17_24 IR17~IR24 のフィルタを設定します。

FBIDIO_IN25_32 IR25~IR32 のフィルタを設定します。

FBIDIO_IN33_40 IR33~IR40 のフィルタを設定します。

FBIDIO_IN41_48 IR41~IR48 のフィルタを設定します。

FBIDIO_IN49_56 IR49~IR56 のフィルタを設定します。

FBIDIO_IN57_64 IR57~IR64 のフィルタを設定します。

FBIDIO_IRIN1_2_STB1 IR.IN1、IR.IN2、STB1 のフィルタを設定します。

FilterConfig フィルタ時間を指定します。設定可能なフィルタ設定は次のとおりです。

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

0 TBS TCN

TBS:基準クロック指定

TCN:カウント数設定

TCN\TBS '000' '001' '010' '011' '100' '101' '110' '111'

'0000' - - - - - - - -

'0001' 125ns 1µs 10µs 100µs 1ms 10ms 100ms 無効

'0010' 250ns 2µs 20µs 200µs 2ms 20ms 200ms 無効

'0011' 375ns 3µs 30µs 300µs 3ms 30ms 300ms 無効

'0100' 500ns 4µs 40µs 400µs 4ms 40ms 400ms 無効

'0101' 625ns 5µs 50µs 500µs 5ms 50ms 500ms 無効

'0110' 750ns 6µs 60µs 600µs 6ms 60ms 無効 無効

'0111' 875ns 7µs 70µs 700µs 7ms 70ms 無効 無効

'1000' 1000ns 8µs 80µs 800µs 8ms 80ms 無効 無効

'1001' 1125ns 9µs 90µs 900µs 9ms 90ms 無効 無効

'1010' 1250ns 10µs 100µs 1000µs 10ms 100ms 無効 無効

'1011' 1375ns 11µs 110µs 1100µs 11ms 110ms 無効 無効

'1100' 1500ns 12µs 120µs 1200µs 12ms 120ms 無効 無効

'1101' 1625ns 13µs 130µs 1300µs 13ms 130ms 無効 無効

'1110' 1750ns 14µs 140µs 1400µs 14ms 140ms 無効 無効

'1111' 1875ns 15µs 150µs 1500µs 15ms 150ms 無効 無効

-:フィルタなし

電源投入時の PCI-2162, CTP-2162 の初期値は全接点 00h(フィルタなし)です。

CPZ-294188 の初期値は全接点 15h(5µs)です。

Page 277: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

277

PCI-284866, PCI-298488, PCI-283144 では、パラメータ FilterConfig の指定方法が下記の

ようになります。

フィルタ時間を指定します。設定可能なフィルタ設定は次のとおりです。

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

0 TBS TCN

TBS:基準クロック指定

TCN:カウント数設定

TCN\TBS 00 01 10 11

'00000' - - - -

'00001' 1us 10us 100us -

'00010' 2us 20us 200us -

'00011' 3us 30us 300us -

'00100' 4us 40us 400us -

'00101' 5us 50us 500us -

'11011' 27us 270us 2700us -

'11100' 28us 280us 2800us -

'11101' 29us 290us 2900us -

'11110' 30us 300us 3000us -

'11111' 31us 310us 3100us -

-:フィルタなし

電源投入時の初期値は全接点 00h(フィルタなし)です。

Page 278: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

278

PCI-293544U, PCI-293588 では、パラメータ FilterConfig の指定方法が下記のようになり

ます。

10us 未満のフィルタは設定出来ません。

また、基準クロック 1周期分+5us の誤差が生じます。

フィルタ時間を指定します。設定可能なフィルタ設定は次のとおりです。

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

0 TBS TCN

TBS:基準クロック指定

TCN:カウント数設定

TCN\TBS 00 01 10 11

'00000' - - - -

'00001' - 10us 100us -

'00010' - 20us 200us -

'00011' - 30us 300us -

'00100' - 40us 400us -

'00101' - 50us 500us -

'01001' - 90us 900us -

'01010' 10us 100us 1000us -

'01011' 11us 110us 1100us -

'11011' 27us 270us 2700us -

'11100' 28us 280us 2800us -

'11101' 29us 290us 2900us -

'11110' 30us 300us 3000us -

'11111' 31us 310us 3100us -

-:フィルタなし

電源投入時の初期値は全接点 00h(フィルタなし)です。

Page 279: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

279

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

Ret = DioEintSetFilterConfig( DeviceHandle, FBI_DIO_IN1_8, 0x00000031 );

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

Ret = DioEintSetFilterConfig( DeviceHandle, FBI_DIO_IN1_8, &H31 )

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

Ret := DioEintSetEdgeConfig( DeviceHandle, FBI_DIO_IN1_8, $00000031);

end;

デバイス名「FBIDIO1」のデバイス(PCI-2162, CTP-2162, CPZ-294188)の IR1~IR8 に対する

デジタルフィルタを 100µs に設定します。

Page 280: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

280

70. DioEintGetFilterConfig

【機能】

PCI-2162, CTP-2162, CPZ-294188, PCI-293544U, PCI-293588 のデジタルフィルタ設定値を取

得します。

DioEintGetFilterConfigは、PCI-2162, CTP-2162, CPZ-294188, PCI-293544U, PCI-293588 専

用の関数です。

【書式】

●C言語

INT DioEintGetFilterConfig (

HANDLE DeviceHandle,

INT No,

PINT FilterConfig

);

●Visual Basic

Declare Function DioEintGetFilterConfig Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByVal No As Long, _

ByRef FilterConfig As Long _

)As Integer

●Delphi

function DioEintGetFilterConfig (

DeviceHandle: Thandle;

No: Integer;

var FilterConfig: Integer

): Integer; stdcall; external 'FbiDio.DLL';

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

No フィルタ設定を取得する接点を下記の識別子で指定します。

FBIDIO_IN1_8 IR1~IR8 のフィルタ設定を取得します。

FBIDIO_IN9_16 IR9~IR16 のフィルタ設定を取得します。

FBIDIO_IN17_24 IR17~IR24 のフィルタ設定を取得します。

FBIDIO_IN25_32 IR25~IR32 のフィルタ設定を取得します。

FBIDIO_IN33_40 IR33~IR40 のフィルタ設定を取得します。

FBIDIO_IN41_48 IR41~IR48 のフィルタ設定を取得します。

FBIDIO_IN49_56 IR49~IR56 のフィルタ設定を取得します。

FBIDIO_IN57_64 IR57~IR64 のフィルタ設定を取得します。

FBIDIO_IRIN1_2_STB1 IR.IN1、IR.IN2、STB1 のフィルタ設定を取得します。

Page 281: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

281

FilterConfig フィルタ時間を受け取る変数へのポインタ(参照渡し)を指定します。

FilterConfig には、次の値が返されます。

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

0 TBS TCN

TBS:基準クロック指定

TCN:カウント数設定

TCN\TBS '000' '001' '010' '011' '100' '101' '110' '111'

'0000' - - - - - - - -

'0001' 125ns 1µs 10µs 100µs 1ms 10ms 100ms 無効

'0010' 250ns 2µs 20µs 200µs 2ms 20ms 200ms 無効

'0011' 375ns 3µs 30µs 300µs 3ms 30ms 300ms 無効

'0100' 500ns 4µs 40µs 400µs 4ms 40ms 400ms 無効

'0101' 625ns 5µs 50µs 500µs 5ms 50ms 500ms 無効

'0110' 750ns 6µs 60µs 600µs 6ms 60ms 無効 無効

'0111' 875ns 7µs 70µs 700µs 7ms 70ms 無効 無効

'1000' 1000ns 8µs 80µs 800µs 8ms 80ms 無効 無効

'1001' 1125ns 9µs 90µs 900µs 9ms 90ms 無効 無効

'1010' 1250ns 10µs 100µs 1000µs 10ms 100ms 無効 無効

'1011' 1375ns 11µs 110µs 1100µs 11ms 110ms 無効 無効

'1100' 1500ns 12µs 120µs 1200µs 12ms 120ms 無効 無効

'1101' 1625ns 13µs 130µs 1300µs 13ms 130ms 無効 無効

'1110' 1750ns 14µs 140µs 1400µs 14ms 140ms 無効 無効

'1111' 1875ns 15µs 150µs 1500µs 15ms 150ms 無効 無効

-:フィルタなし

電源投入時の PCI-2162, CTP-2162 の初期値は全接点 00h(フィルタなし)です。

CPZ-294188 の初期値は全接点 15h(5µs)です。

Page 282: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

282

PCI-284866, PCI-298488, PCI-283144 では、パラメータ FilterConfig の取得値が下記のよ

うになります。

取得可能なフィルタ設定は次のとおりです。

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

0 TBS TCN

TBS:基準クロック指定

TCN:カウント数設定

TCN\TBS 00 01 10 11

'00000' - - - -

'00001' 1us 10us 100us -

'00010' 2us 20us 200us -

'00011' 3us 30us 300us -

'00100' 4us 40us 400us -

'00101' 5us 50us 500us -

'11011' 27us 270us 2700us -

'11100' 28us 280us 2800us -

'11101' 29us 290us 2900us -

'11110' 30us 300us 3000us -

'11111' 31us 310us 3100us -

-:フィルタなし

電源投入時の初期値は全接点 00h(フィルタなし)です。

Page 283: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

283

PCI-293544U, PCI-293588 では、パラメータ FilterConfig の取得値が下記のようになりま

す。

取得可能なフィルタ設定は次のとおりです。

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

0 TBS TCN

TBS:基準クロック指定

TCN:カウント数設定

TCN\TBS 00 01 10 11

'00000' - - - -

'00001' - 10us 100us -

'00010' - 20us 200us -

'00011' - 30us 300us -

'00100' - 40us 400us -

'00101' - 50us 500us -

'01001' - 90us 900us -

'01010' 10us 100us 1000us -

'01011' 11us 110us 1100us -

'11011' 27us 270us 2700us -

'11100' 28us 280us 2800us -

'11101' 29us 290us 2900us -

'11110' 30us 300us 3000us -

'11111' 31us 310us 3100us -

-:フィルタなし

電源投入時の初期値は全接点 00h(フィルタなし)です。

Page 284: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

284

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

INT FilterConfig;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

Ret = DioEintGetFilterConfig( DeviceHandle, FBI_DIO_IN1_8, &FilterConfig );

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Dim FilterConfig As Long

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

Ret = DioEintGetFilterConfig( DeviceHandle, FBI_DIO_IN1_8, FilterConfig )

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

FilterConfig: Integer;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

Ret := DioEintGetEdgeConfig( DeviceHandle, FBI_DIO_IN1_8, @FilterConfig );

end;

デバイス名「FBIDIO1」のデバイス(PCI-2162, CTP-2162, CPZ-294188)の IR1~IR8 に対する

デジタルフィルタの設定値を FilterConfig へ返します。

Page 285: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

285

71. DioSetEventRequestMode

【機能】

デジタル入出力デバイスの割り込み待ちモードの設定を行います。

【書式】

●C言語

INT DioSetEventRequestMode (

HANDLE DeviceHandle,

DWORD EventMode

);

●Visual Basic

Declare Function DioSetEventRequestMode Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByVal EventMode As Long _

)As Long

●Delphi

function DioSetEventRequestMode (

DeviceHandle: Thandle;

EventMode: DWORD

): Integer; stdcall; external 'FbiDio.DLL';

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

EventMode イベント待ちのモードを下記の識別子で指定します。

識別子/設定値 意味

0 0 を指定すると、デフォルト設定が適用されます。

※デフォルト設定は、バッファリングが有効となります。

FBIDIO_NO_BUFFER_MODE FBIDIO_NO_BUFFER_MODE を指定すると、割り込み要因のバッ

ファリングが無効となります。

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

Page 286: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

286

【備考】

割り込み要因のバッファリングが有効(デフォルト)の場合、DioEventRequestPending関数・

DioEventRequestPendingEx関数を実行していない状態で発生した割り込み要因をドライバ内

部のバッファに保存します。

既に内部バッファに割り込み要因が溜まった状態で DioEventRequestPending関数・

DioEventRequestPendingEx関数を実行すると、バッファに保存された割り込み要因を一つ取り

出して、即座に割り込みの発生を通知します。

EventModeにFBIDIO_NO_BUFFER_MODEを指定して、割り込み要因のバッファリングを無効に設定

すると、DioEventRequestPending関数・DioEventRequestPendingEx関数の実行前に発生した割

り込み要因について、割り込みの発生を通知しません。

DioEventRequestPending関数・DioEventRequestPendingEx関数の実行後に割り込み要因が発生

した時点で、割り込みの発生を通知いたします。

バッファリングを有効(デフォルト)にすることで、イベント待ちを行っていない状態で割り

込み要因の取りこぼしを防ぐことが可能です。

インターバルタイマ割り込みなどの割り込み発生のタイミングが重要となる用途では、割り込

み要因のバッファリングを無効にすることで、実際に割り込みが発生したタイミングと無関係

なタイミングで割り込みが通知されるのを防ぐことが可能です。

(割り込み待ちの処理状況によっては取りこぼしが発生します。)

※割り込み要因のバッファリングの開始

割り込み要因のバッファリングを有効にした状態で、 初に DioEventRequestPending関数・

DioEventRequestPendingEx関数を実行した時点から、割り込みのバッファリングを開始します。

※割り込み要因のバッファリングの停止、バッファクリア

割り込み要因のバッファリングを有効にした状態で、割り込みマスクが全てアンマスクされ

るとバッファリングを停止し、バッファに溜まったイベントがクリアされます。

DioSetIrqMask関数・DioEintSetIrqMask関数・DioEintSetIrqMaskEx関数で割り込みマスクの

設定が変更可能です。

Page 287: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

287

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

Ret = DioSetEventRequestMode( DeviceHandle, FBIDIO_NO_BUFFER_MODE );

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

Ret = DioSetEventRequestMode( DeviceHandle, FBIDIO_NO_BUFFER_MODE )

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

Ret := DioSetEventRequestMode( DeviceHandle, FBIDIO_NO_BUFFER_MODE );

デバイス名「FBIDIO1」のデバイスを「割り込みバッファリング無効」に設定します。

Page 288: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

288

72. DioOutputSync

【機能】

デジタル入出力デバイスの内部同期制御を設定します。

【書式】

●C言語

INT DioOutputSync(

HANDLE DeviceHandle,

INT Line,

DWORD UpEdge,

DWORD DownEdge

);

●Visual Basic

Declare Function DioOutputSync Lib "FbiDio.DLL"( _

ByVal DeviceHandle As Long, _

ByVal Line As Long, _

ByVal UpEdge As Long, _

ByVal DownEdge As Long _

)As Long

●Delphi

function DioOutputSync(

DeviceHandle: Thandle;

Line: Integer;

UpEdge: DWORD;

DownEdge: DWORD

): Integer; stdcall; external 'FbiDio.DLL';

【パラメータ】

DeviceHandle DioOpen関数で取得したデバイスハンドルを指定します。

Line 内部同期出力を行う信号を指定します。

指定可能な識別子は下記のものから選択します。

識別子 意味

FBIDIO_SYNC1 内部同期ライン 1

FBIDIO_SYNC2 内部同期ライン 2

Page 289: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

289

UpEdge 立ち上がり検出による出力を指定します。

bit7 bit6 Bit5 bit4 bit3 bit2 bit1 bit0

- - - - DI4 DI3 DI2 DI1

DI1: DI1 の出力設定

DI2: DI2 の出力設定

DI3: DI3 の出力設定

DI4: DI4 の出力設定

0 = 無効

1 = 有効

DownEdge 立ち下がり検出による出力を指定します。

bit7 bit6 Bit5 bit4 bit3 bit2 bit1 bit0

- - - - DI4 DI3 DI2 DI1

DI1: DI1 の出力設定

DI2: DI2 の出力設定

DI3: DI3 の出力設定

DI4: DI4 の出力設定

0 = 無効

1 = 有効

【戻り値】

正常終了した場合は、FBIDIO_ERROR_SUCCESSが返されます。

FBIDIO_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ

い。

【備考】

・立ち下がり検出と立ち上がり検出については OR で設定することができます。

【使用例】

●C言語

INT Ret;

HANDLE DeviceHandle;

DeviceHandle = DioOpen("FBIDIO1", FBIDIO_FLAG_NORMAL);

Ret = DioOutputSync( DeviceHandle, FBIDIO_SYNC1, 2, 0);

Page 290: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

290

●Visual Basic

Dim Ret As Long

Dim Name As String

Dim DeviceHandle As Long

Name = "FBIDIO1" & Chr( 0 )

DeviceHandle = DioOpen(Name, FBIDIO_FLAG_NORMAL)

Ret = DioOutputSync( DeviceHandle, FBIDIO_SYNC1, 2, 0)

●Delphi

var

Ret: Integer;

Name: String;

DeviceHandle: THandle;

begin

Name := 'FBIDIO1';

DeviceHandle := DioOpen(Name, FBIDIO_FLAG_NORMAL);

Ret := DioOutputSync(DeviceHandle, FBIDIO_SYNC1, 2, 0);

end;

デバイス名「FBIDIO1」のデバイスの DI2 が立ち上がり検出、DI1 が立ち下がりになった場合に

内部同期ライン 1から出力させます。

Page 291: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

291

4.3 コールバック関数

4.3.1 完了ルーチン DioInputHandShakeEx関数および DioOutputHandShakeEx関数によって呼び出される完了ルーチン

の書式は以下の通りです。

【書式】

●CompletionRoutine (Win32)

VOID WINAPI CompletionRoutine (

DWORD Error, /* 完了コード */

DWORD Transferred, /* 転送するバイトの数 */

LPOVERLAPPED OverLapped /* 入出力情報を持つ構造体のアドレス */

);

CompletionRoutine関数は、DioInputHandShakeEx関数およびDioOutputHandShakeEx関数が完了し、

呼び出し側のスレッドが(WaitForMultipleObjectsEx関数を使うことによって) アラート可能待

機の状態にあるときに呼び出されます。

【パラメータ】

Error I/O の完了状態を示します。次の値のいずれかになります。

0: I/O は正常に完了しました。

ERROR_HANDLE_EOF: ReadFileEx 関数がエンドオブファイルを超えて読み取りを

しようとしました。

Transferred 転送されたバイト数を指定します。

エラーが発生した場合、このパラメータは 0になります。

OverLapped 非同期I/O関数によって指定された OVERLAPPED構造体を指すポインタ(参照渡し)です。

Windowsは、OVERLAPPED構造体のhEventメンバを使用しません。この関数を呼び出すアプリケーシ

ョンは、このメンバを使って完了ルーチンに情報を渡します。完了ルーチンが呼び出された後に

Windowsが OVERLAPPED構造体を使うことはありません。したがって、 完了ルーチンはオーバーラ

ップ構造体を使ってメモリの割り当てを解除することができます。

【戻り値】

この関数に戻り値はありません。

Page 292: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

292

【備考】

CompletionRoutine はアプリケーション定義またはライブラリ定義の関数名のプレースホルダ

です。この関数が制御を戻すとほかの未処理の I/O 完了ルーチンを呼び出すことができるよう

になります。

待機中の完了ルーチンはすべて、アラート可能なスレッドの待機条件が WAIT_IO_COMPLETION

の戻りコードによって満たされる前に呼び出されます。

Windows は任意の順序で待機完了ルーチンを呼び出します。これらは、ほかの I/O 関数が完了

する順序によって呼び出されたり、呼び出されなかったりします。

Windows は完了ルーチンを呼び出すときに、必ずアプリケーションのスタックの一部を使用し

ます。完了ルーチンがさらに非同期 I/O やアラート可能待機を行う場合は、使われるスタック

の量が増えることがあります。

※Microsoft Visual Basic で非同期のイベント処理を行う方法について

Visual Basic で 非同期のイベント処理を行うには、BPA-0507「DI/DO 用 ActiveX コントロー

ル」を御使用下さい。

BPA-0507「DI/DO 用 ActiveX コントロール」 を使用する事で、イベント等の各種処理が行えま

す。BPA-0507「DI/DO 用 ActiveX コントロール」は 弊社 Web site よりダウンロードしてご使

用ください。

Page 293: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

293

4.4 構造体説明

4.4.1 OVERLAPPED 構造体

●C言語

typedef struct _OVERLAPPED {

DWORD Internal;

DWORD InternalHigh;

DWORD Offset;

DWORD OffsetHigh;

HANDLE hEvent;

} OVERLAPPED;

●Visual Basic

Type OVERLAPPED

Internal As Long

InternalHigh As Long

Offset As Long

OffsetHigh As Long

hEvent As Long

End Type

●Delphi

POverlapped = ^TOverlapped;

TOverlapped = record

Internal: DWORD;

InternalHigh: DWORD;

Offset: DWORD;

OffsetHigh: DWORD;

hEvent: THandle;

end;

メンバ 説明

Internal オペレーティング システムの使用のために予約されています。このメンバに

は、 システムに依存する状態が指定されます。このメンバは、

DioGetOverlappedResult関数が拡張エラー情報をERROR_IO_PENDINGに設定し

ないで制御を戻したときだけ有効です。

InternalHigh オペレーティング システムの使用のために予約されています。このメンバに

は、 転送されるデータの長さが指定されます。

このメンバは、 DioGetOverlappedResult関数が 0でない値を返したときだけ

有効です。

Page 294: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

294

Offset 転送を開始するファイル位置を指定します。 通信ポートに対してこれらの関

数が読み取りや書き込みをするときには、このメンバは無視されます。

OffsetHigh 転送を開始するバイト オフセットの上位ワードを指定します。通信ポートに

対してこれらの関数が読み取りや書き込みをするときには、 このメンバは無

視されます。

hEvent 転送が完了したときにシグナル状態に設定されるイベントを識別します。呼

び出し側プロセスは、 DioEventRequestPending関数を呼び出す前に、 この

メンバを設定します。

(!) Visual Basic で使用する場合、API ビューワ等を使用し、定義してください。

Page 295: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

295

4.5 戻り値一覧

エラー識別子 値 意味 対処方法

FBIDIO_ERROR_SUCCESS 0 正常終了 -

FBIDIO_ERROR_NOT_DEVICE c0000001h ドライバを呼び出せま

せん。

指定したデバイスが見つかりま

せんでした。

指定したデバイス番号が存在す

るかどうかを確認してください。

FBIDIO_ERROR_NOT_OPEN c0000002h ドライバを OPEN できま

せん。

デバイスのオープン時、何らかの

エラーが発生しました。

ドライバ内部のメモリ確保に失

敗したなど。

FBIDIO_ERROR_INVALID_HAN

DLE

c0000003h デバイスハンドルが正

しくありません。

不正なデバイスハンドルで呼び

出しを行おうとしました。

OPEN 関数で返されたデバイスハ

ンドルを使用してください。

FBIDIO_ERROR_ALREADY_OPE

N

c0000004h すでに OPEN しているデ

バイスを OPEN しようと

しました

既に OPEN されているデバイスで

す。共有させる場合には、フラグ’

FLAG_SHARE’の指定をして OPEN し

てください。

FBIDIO_INSUFFICIENT_BUFF

ER

c0000007h システムコールに渡さ

れたデータ領域が小さ

すぎます

ドライバの内部エラーです。どの

ような状況でエラーが発生した

かをご連絡ください

FBIDIO_ERROR_IO_PENDING c0000008h 非同期 I/O 操作が進行

中です

Win32API の

WaitForSingleObject 関数等でイ

ベントの完了を待つことができ

ます。

FBIDIO_ERROR_NOT_SUPPORT

ED

c0000009h サポートされていない

機能です

ご使用になるインタフェースモ

ジュールがサポートしていない

機能を制御する関数をコールし

た 場 合 に エ ラ ー コ ー ド

FBIDIO_ERROR_NOT_SUPPORTED が

返されます。DioOutputByte関数

にDIデバイスのデバイスハンド

ルを指定してコールした場合な

どが当てはまります

FBIDIO_ERROR_MEMORY_NOTA

LLOCATED

c0001000h 作業用メモリの確保に

失敗しました

利用可能なメモリが足りなくな

っています。不要なアプリケーシ

ョンなどを終了させ、利用可能な

メモリを増やすようにしてくだ

さい。

FBIDIO_ERROR_PARAMETER c0001001h 引数パラメータの値が

不正です

API 関数に指定する値が不正もし

くは範囲外です。

Page 296: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

296

エラー識別子 値 意味 対処方法

FBIDIO_ERROR_INVALID_CAL

L

c0001002h 不正な呼び出しです インタフェースモジュールの動

作状況によりコールが禁止され

るている関数をコールした場合

に返されるエラーです。バックグ

ランド処理にインタフェースモ

ジュール搭載のタイマを使用中

に DioSetTimerConfig関数でタイ

マを直接制御しようとした場合

等が当てはまります。

FBIDIO_ERROR_DRVCAL c0001003h ドライバをコールでき

ません

ドライバファイルがインストー

ルされていない場合等に発生し

ます。ドライバのインストールを

行ってください

FBIDIO_ERROR_NULL_POINTE

R

c0001004h DLL、ドライバ間で NULL

ポインタ(又は 0)が渡

されました

システムに障害が発生している

可能性がございます。どのような

状況でエラーが発生したかをご

連絡ください。

FBIDIO_ERROR_IO_INCOMPLE

TE

c0001005h 非同期 I/O イベントが、

シグナル状態になって

いません

非同期 I/O 操作が進行中です。

Win32APIの WaitForSingleObject

関数等でイベント完了を待った

後に実行して下さい。

FBIDIO_ERROR_USB_TIMEOUT c0001006h USBデバイスとの通信が

タイムアウトしました

再起動を行なうか、DPC-0401 の

「IfUsbDevicePowerCtl」関数を使用

し、USB デバイスの電源を OFF→ON し

て下さい。

「IfUsbDevicePowerCtl」関数の使用

方法は、DPC-0401 の Help を参照して

ください。

FBIDIO_ERROR_USBIO_FAILE

D

c0001007h USBデバイスの実行に失

敗しました

再起動を行なうか、DPC-0401 の

「IfUsbDevicePowerCtl」関数を使用

し、USB デバイスの電源を OFF→ON し

て下さい。

「IfUsbDevicePowerCtl」関数の使用

方法は、DPC-0401 の Help を参照して

ください。

Page 297: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

297

第5章 サンプルプログラム

各サンプルプログラムの概要を説明します。

各種言語に対応したサンプルプログラムはそれぞれ下記の場所にインストールされます。

・Visual C++

「(インストール指定先ディレクトリ)\Samples\VC」

・Visual Basic

「(インストール指定先ディレクトリ)\Samples\VB」

・Delphi

「(インストール指定先ディレクトリ)\Samples\Delphi」

5.1 InBack 【概要】

「InBack」はバックグランド入力を行うサンプルプログラムです。

【実行手順】

サンプルプログラムには実行形式のファイルが付属していません。

ソースコードをコンパイルして実行ファイルを生成してから、動作させてください。

●Visual C++の場合

Visual C++(Visual Studio)を起動し、「ファイル」メニューから「ワークスペースを開く」

を選び、メイクファイル「InBack.mak」を開き、ビルドしてください。

●Visual Basic の場合

Visual Basic を起動し、プロジェクトファイル「InBack.vbp」を開き、ビルドしてください。

●Delphi の場合

Delphi を起動し、プロジェクトファイル「InBack.dpr」を開き、ビルドしてください。

作成後、「InBack」を起動してください。

【内容】

インタフェースモジュールに搭載されたインターバルタイマを使用し、指定した端子の状態を

100ms 周期で 10 回取得します。

バックグランド入力の関数を使用して非同期でデータ取得を行い、処理の完了を待ってから取

得データを表示します。

Page 298: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

298

5.2 InPoint 【概要】

「InPoint」は接点単位でデータ取得を行うサンプルプログラムです。

【実行手順】

サンプルプログラムには実行形式のファイルが付属していません。

ソースコードをコンパイルして実行ファイルを生成してから、動作させてください。

●Visual C++の場合

Visual C++(Visual Studio)を起動し、「ファイル」メニューから「ワークスペースを開く」

を選び、メイクファイル「InPoint.mak」を開き、ビルドしてください。

●Visual Basic の場合

Visual Basic を起動し、プロジェクトファイル「InPoint.vbp」を開き、ビルドしてください。

●Delphi の場合

Delphi を起動し、プロジェクトファイル「InPoint.dpr」を開き、ビルドしてください。

作成後、「InPoint」を起動してください。

【内容】

プログラム実行時に指定した端子の入力状態を、1点分取得し表示を行います。

Page 299: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

299

5.3 OutBack 【概要】

「OutBack」はバックグランド出力を行うサンプルプログラムです。

【実行手順】

サンプルプログラムには実行形式のファイルが付属していません。

ソースコードをコンパイルして実行ファイルを生成してから、動作させてください。

●Visual C++の場合

Visual C++(Visual Studio)を起動し、「ファイル」メニューから「ワークスペースを開く」

を選び、メイクファイル「OutBack.mak」を開き、ビルドしてください。

●Visual Basic の場合

Visual Basic を起動し、プロジェクトファイル「OutBack.vbp」を開き、ビルドしてください。

●Delphi の場合

Delphi を起動し、プロジェクトファイル「OutBack.dpr」を開き、ビルドしてください。

作成後、「OutBack」を起動してください。

【内容】

インタフェースモジュールに搭載されたインターバルタイマを使用し、指定した端子から

100ms 周期でデータ出力を 10 回行います。

バックグランド出力の関数を使用して非同期でデータ出力を行い、出力の完了を待ちます。

Page 300: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

300

5.4 OutPoint 【概要】

「OutPoint」は接点単位でデータ出力を行うサンプルプログラムです。

【実行手順】

サンプルプログラムには実行形式のファイルが付属していません。

ソースコードをコンパイルして実行ファイルを生成してから、動作させてください。

●Visual C++の場合

Visual C++(Visual Studio)を起動し、「ファイル」メニューから「ワークスペースを開く」

を選び、メイクファイル「OutPoint.mak」を開き、ビルドしてください。

●Visual Basic の場合

Visual Basic を起動し、プロジェクトファイル「OutPoint.vbp」を開き、ビルドしてください。

●Delphi の場合

Delphi を起動し、プロジェクトファイル「OutPoint.dpr」を開き、ビルドしてください。

作成後、「OutPoint」を起動してください。

【内容】

プログラム実行時に指定した端子 1点から指定データの出力を行います。

Page 301: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

301

5.5 WatchBack 【概要】

「WatchBack」はバックグランド監視を行うサンプルプログラムです。

【実行手順】

サンプルプログラムには実行形式のファイルが付属していません。

ソースコードをコンパイルして実行ファイルを生成してから、動作させてください。

●Visual C++の場合

Visual C++(Visual Studio)を起動し、「ファイル」メニューから「ワークスペースを開く」

を選び、メイクファイル「WatchBack.mak」を開き、ビルドしてください。

●Visual Basic の場合

Visual Basic を起動し、プロジェクトファイル「WatchBack.vbp」を開き、ビルドしてくださ

い。

●Delphi の場合

Delphi を起動し、プロジェクトファイル「WatchBack.dpr」を開き、ビルドしてください。

作成後、「WatchBack」を起動してください。

【内容】

インタフェースモジュールに搭載されたインターバルタイマを使用し、指定した端子の状態を

100ms 周期で監視を行い、10 回分の変化を監視・取得します。

バックグランド監視の関数を使用して非同期でデータ取得を行い、処理の完了を待ってから取

得データを表示します。

Page 302: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

302

5.6 HndShk 【概要】

「HndShk」はハンドシェークを行うサンプルプログラムです。

【実行手順】

サンプルプログラムには実行形式のファイルが付属していません。

ソースコードをコンパイルして実行ファイルを生成してから、動作させてください。

●Visual C++の場合

Visual C++(Visual Studio)を起動し、「ファイル」メニューから「ワークスペースを開く」

を選び、メイクファイル「HndShk.mak」を開き、ビルドしてください。

●Visual Basic の場合

Visual Basic を起動し、プロジェクトファイル「HndShk.vbp」を開き、ビルドしてください。

●Delphi の場合

Delphi を起動し、プロジェクトファイル「HndShk.dpr」を開き、ビルドしてください。

作成後、「HndShk」を起動してください。

【内容】

ハンドシェイク入力、ハンドシェイク出力をそれぞれ下記の設定で実行します。

STB1 割り込みを使用し、IN1~IN8 の端子から 128 バイト分のハンドシェイク入力を行います。

非同期でデータ取得を行い、処理の完了を待ってから取得データを表示します。

ACK2割り込みを使用し、OUT1~OUT8の端子から128バイト分のハンドシェイク出力を行います。

非同期でデータ出力を行い、処理の完了を待ちます。

Page 303: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

303

5.7 Event 【概要】

「Event」は割り込み処理を行うサンプルプログラムです。

【実行手順】

サンプルプログラムには実行形式のファイルが付属していません。

ソースコードをコンパイルして実行ファイルを生成してから、動作させてください。

●Visual C++の場合

Visual C++(Visual Studio)を起動し、「ファイル」メニューから「ワークスペースを開く」

を選び、メイクファイル「Event.mak」を開き、ビルドしてください。

●Visual Basic の場合

Visual Basic を起動し、プロジェクトファイル「Event.vbp」を開き、ビルドしてください。

●Delphi の場合

Delphi を起動し、プロジェクトファイル「Event.dpr」を開き、ビルドしてください。

作成後、「Event」を起動してください。

【内容】

IN1、IR.IN1、IR.IN2、RSTIN の入力割り込みの検出を有効にし、割り込みが発生するのを非同

期処理で待ちます。

割り込みが発生した場合は、発生した割り込みの種類を表示します。

Page 304: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

304

5.8 EventEx 【概要】

「EventEx」は PCI-2162,CTP-2162,CPZ-294188 用の割り込み処理を行うサンプルプログラムで

す。

【実行手順】

サンプルプログラムには実行形式のファイルが付属していません。

ソースコードをコンパイルして実行ファイルを生成してから、動作させてください。

●Visual C++の場合

Visual C++(Visual Studio)を起動し、「ファイル」メニューから「ワークスペースを開く」

を選び、メイクファイル「EventEx.mak」を開き、ビルドしてください。

●Visual Basic の場合

Visual Basic を起動し、プロジェクトファイル「EventEx.vbp」を開き、ビルドしてください。

●Delphi の場合

Delphi を起動し、プロジェクトファイル「EventEx.dpr」を開き、ビルドしてください。

作成後、「EventEx」を起動してください。

【内容】

IN1 から IN32 までの入力エッジ割り込みの検出を有効にし、割り込みが発生するのを同期処理

で待ちます。

割り込みが発生した場合は、発生した割り込みの種類を表示します。

Page 305: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

305

5.9 EintPoint 【概要】

「EintPoint」は PCI-2162,CTP-2162,CPZ-294188 用のラッチ入力を行うサンプルプログラムで

す。

【実行手順】

サンプルプログラムには実行形式のファイルが付属していません。

ソースコードをコンパイルして実行ファイルを生成してから、動作させてください。

●Visual C++の場合

Visual C++(Visual Studio)を起動し、「ファイル」メニューから「ワークスペースを開く」

を選び、メイクファイル「EintPoint.mak」を開き、ビルドしてください。

●Visual Basic の場合

Visual Basic を起動し、プロジェクトファイル「EintPoint.vbp」を開き、ビルドしてくださ

い。

●Delphi の場合

Delphi を起動し、プロジェクトファイル「EintPoint.dpr」を開き、ビルドしてください。

作成後、「EintPoint」を起動してください。

【内容】

指定した端子への入力エッジの検出状態を取得し、表示を行います。

入力エッジの検出に対するデジタルフィルタの設定も実行可能です。

Page 306: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

306

5.10 InputByte 【概要】

「InputByte」は 1バイトのデータ入力を行う単純なサンプルプログラムです。

【実行手順】

サンプルプログラムには実行形式のファイルが付属していません。

ソースコードをコンパイルして実行ファイルを生成してから、動作させてください。

●Visual C++の場合

Visual C++(Visual Studio)を起動し、「ファイル」メニューから「ワークスペースを開く」

を選び、メイクファイル「InputByte.mak」を開き、ビルドしてください。

●Visual Basic の場合

Visual Basic を起動し、プロジェクトファイル「InputByte.vbp」を開き、ビルドしてくださ

い。

●Delphi の場合

Delphi 用の「InputByte」はありません。

作成後、「InputByte」を起動してください。

【内容】

デバイス名が"FBIDIO1"のデバイスをオープンし、IN1 から IN8 までの 1バイト分のデータを取

得・表示します。

コンソール上で動作する単純なアプリケーションとなっていますので、使用するデバイスの変

更や入力端子を変更する場合は、ソースコードを編集して設定を変更する必要があります。

Page 307: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

307

5.11 OutputByte 【概要】

「OutputByte」は 1バイトのデータ出力を行う単純なサンプルプログラムです。

【実行手順】

サンプルプログラムには実行形式のファイルが付属していません。

ソースコードをコンパイルして実行ファイルを生成してから、動作させてください。

●Visual C++の場合

Visual C++(Visual Studio)を起動し、「ファイル」メニューから「ワークスペースを開く」

を選び、メイクファイル「OutputByte.mak」を開き、ビルドしてください。

●Visual Basic の場合

Visual Basic を起動し、プロジェクトファイル「OutputByte.vbp」を開き、ビルドしてくださ

い。

●Delphi の場合

Delphi 用「OutputByte」はありません。

作成後、「OutputByte」を起動してください。

【内容】

デバイス名が"FBIDIO1"のデバイスをオープンし、OUT1 から OUT8 に 1 バイト分のデータ(5ah)

を出力します。

コンソール上で動作する単純なアプリケーションとなっていますので、使用するデバイスの変

更や出力端子・出力データを変更する場合は、ソースコードを編集して設定を変更する必要が

あります。

Page 308: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

308

5.12 EventCheck 【概要】

「EventCheck」は割り込みの検出を行う単純なサンプルプログラムです。

【実行手順】

サンプルプログラムには実行形式のファイルが付属していません。

ソースコードをコンパイルして実行ファイルを生成してから、動作させてください。

●Visual C++の場合

Visual C++(Visual Studio)を起動し、「ファイル」メニューから「ワークスペースを開く」

を選び、メイクファイル「EventCheck.mak」を開き、ビルドしてください。

●Visual Basic の場合

Visual Basic を起動し、プロジェクトファイル「EventCheck.vbp」を開き、ビルドしてくださ

い。

●Delphi の場合

Delphi 用「EventCheck」はありません。

作成後、「EventCheck」を起動してください。

【内容】

デバイス名が"FBIDIO1"のデバイスをオープンし、IN1、IR.IN1、IR.IN2、RSTIN の入力割り込

みの検出を有効にして、割り込みが発生するのを非同期処理で 10 秒間待ちます。

コンソール上で動作する単純なアプリケーションとなっていますので、使用するデバイスの変

更や検出する割り込み要因を変更する場合は、ソースコードを編集して設定を変更する必要が

あります。

Page 309: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

309

5.13 プログラム例

●<プログラム例 C 言語>

// =================================================================================

// Windows 用

// デジタル入出力デバイス対応ドライバソフトウェア

// プログラム例 C 言語コンソールアプリケーション

//

// Copyright 2000, 2008 Interface Corporation. All rights reserved.

//

// プログラム説明

// データの出力、入力を行います

// =================================================================================

#include <windows.h>

#include <stdio.h>

#include "FbiDio.h"

void main(void)

{

DWORD Value; // ダブルワードデータ

HANDLE DeviceHandle; // デバイスハンドル

// デバイス名"FBIDIO1"のデジタル入出力デバイスの初期化を行います。

DeviceHandle = DioOpen("FBIDIO1", 0);

if (DeviceHandle == INVALID_HANDLE_VALUE) {

printf("デバイス名 FBIDIO1 は使用できません\n");

exit(0); //プログラム終了

}

// 接点 1~8にバイトデータ 12h を出力します。

DioOutputByte(DeviceHandle, FBIDIO_OUT1_8 , 0x12);

// 接点 17~32 にワードデータ 3456h を出力します。

DioOutputWord(DeviceHandle, FBIDIO_OUT17_32 , 0x3456);

// 接点 1~32 から 1ダブルワードデータを入力します。

DioInputDword(DeviceHandle, FBIDIO_IN1_32, &Value);

// 入力データの表示

printf("入力データ = %x\n", Value);

// デジタル入出力デバイスの終了処理

DioClose(DeviceHandle);

}

Page 310: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

310

●<プログラム例 Visual Basic>

' ==================================================================================

' Windows 用

' デジタル入出力デバイス対応ドライバソフトウェア

' プログラム例 Visual Basic

'

' Copyright 2000, 2008 Interface Corporation. All rights reserved.

'

' プログラム説明

' データの入力、出力を行います

' ==================================================================================

' 変数定義

Dim Value As Long ' ダブルワードデータ

Dim DeviceHandle As Long ' デバイスハンドル

Dim WorkDeviceName As String * 16 ' デバイス名格納領域

' デバイス名"FBIDIO1"のデジタル入出力デバイスの初期化を行います。

WorkDeviceName = "FBIDIO1" & Chr(0)

DeviceHandle = DioOpen(WorkDeviceName, 0)

if DeviceHandle = INVALID_HANDLE_VALUE Then

Ret = MsgBox("デバイス名 FBIDIO1 は使用できません", _

(vbOKOnly + vbCritical),"FBIDIO1")

Unload Me ' ダイアログを閉じる

End If

' 接点 1~8にバイトデータ 12h を出力します。

Ret = DioOutputByte(DeviceHandle, FBIDIO_OUT1_8, &h12)

' 接点 17~32 にワードデータ 3456h を出力します。

Ret = DioOutputWord(DeviceHandle, FBIDIO_OUT17_32, &h3456)

' 接点 1~32 から 1ダブルワードデータを入力します。

Ret = DioInputDword(DeviceHandle, FBIDIO_IN1_32, Value)

' 入力データの表示

Ret = MsgBox("入力データ = " & Hex(Value), _

(vbOKOnly + vbInformation), "DioInputDword")

' デジタル入出力デバイスの終了処理

Ret = DioClose(DeviceHandle)

Page 311: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

311

●<プログラム例 Delphi>

// =================================================================================

// Windows 用

// デジタル入出力デバイス対応ドライバソフトウェア

// プログラム例 Delphi

//

// Copyright 2000, 2008 Interface Corporation. All rights reserved.

//

// プログラム説明

// データの入力、出力を行います

// =================================================================================

var

Value : Dword; // ダブルワードデータ

DeviceHandle : Integer; // デバイスハンドル

DeviceName : Array[0..15] of Char; //デバイス名格納領域

begin

// デバイス名"FBIDIO1"のデジタル入出力デバイスの初期化を行います。

StrCopy(DeviceName,'FBIDIO1');

DeviceHandle := DioOpen(@DeviceName[0], 0);

if DeviceHandle = INVALID_HANDLE_VALUE then

begin

MessageDlg('デバイス名 FBIDIO1 は使用できません', mtInformation, [mbOK], 0);

Close; //ダイアログを閉じる

end;

// 接点 1~8にバイトデータ 12h を出力します。

DioOutputByte(DeviceHandle, FBIDIO_OUT1_8, $12);

// 接点 17~32 にワードデータ 3456h を出力します。

DioOutputWord(DeviceHandle, FBIDIO_OUT17_32, $3456);

// 接点 1~32 から 1ダブルワードデータを入力します。

DioInputDword(DeviceHandle, FBIDIO_IN1_32, Value);

// 受信データの表示

MessageDlg('入力データ = ' + IntToHex(Value, 8), mtInformation, [mbOK], 0);

// デジタル入出力デバイスの終了処理

DioClose(DeviceHandle);

end;

Page 312: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

312

第6章 ユーティリティ

以下、各ユーティリティの概要を説明します。

6.1 DI 入力ユーティリティ 「スタート」メニューから、「DI 入力ユーティリティ」を立ち上げてください。

ここで、「検索」ボタンを押すと、使用可能な DIO デバイスの一覧が表示されます。(※1)

使用したいインタフェースモジュールを選択し、「OK」ボタンを押してください。

画面上に、現在の全入力信号の状態が表示されます。

(このプログラムは常にインタフェースモジュールを監視しています。)

6.2 DO 出力ユーティリティ 「スタート」メニューから、「DO 出力ユーティリティ」を立ち上げてください。

ここで、「検索」ボタンを押すと、使用可能な DIO デバイスの一覧が表示されます。(※1)

使用したいインタフェースモジュールを選択し、「OK」ボタンを押してください。

画面上に表示されているボタンをクリックすると、出力信号の ON/OFF を切り替えることができま

す。

メニューには、全点 ON および全点 OFF の機能が用意されています。

※1 インタフェースモジュール型式の末尾が「M」、および「L」の製品は、「M」、および「L」が

付加されない製品とソフトウェア互換です。

自己診断プログラム、ユーティリティプログラムのインタフェースモジュール型式表示、お

よび Windows のデバイスマネージャ上には

「M」、「L」、「V」が付加されない型式が表示されます。

又、末尾が「TK」、「TL」、「TR」の製品は、末尾が「Tx」と表示されます。

型式の末尾が「M」の製品は下記の通りです。

PCI-2130CM PCI-2131M PCI-2131AM PCI-2135M PCI-2724CM PCI-2725M

PCI-2725AM PCI-2726CM PCI-2727M PCI-2727AM PCI-2756AM PCI-2758AM

PCI-2762CM CTP-2130M CTP-2131M CTP-2135M CTP-2724M CTP-2725M

CTP-2726M CTP-2727M CTP-2762M

CPZ-2130M CPZ-2724M CPZ-2726M CPZ-2762M

型式の末尾が「L」の製品は下記の通りです。

PCI-2130CL PCI-2131L PCI-2131AL PCI-2135L PCI-2724CL PCI-2725L

PCI-2725AL PCI-2726CL PCI-2727L PCI-2727AL PCI-2756AL PCI-2758AL

CTP-2130L CTP-2131L CTP-2135L CTP-2724L CTP-2725L CTP-2726L

CTP-2727L

CPZ-2130L CPZ-2724L CPZ-2726L CPZ-2727L

型式の末尾が「V」の製品は下記の通りです。

Page 313: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

313

PCI-2230CV PCI-2330CV PCI-2826CV PCI-2994CV

CTP-2230V CTP-2330V CTP-2826V CTP-2994V

CPZ-2230V CPZ-2330V CPZ-2826V CPZ-2827V CPZ-2994V CPZ-2995V

Page 314: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

314

6.3 自己診断プログラム 本製品には、動作不具合時の原因がハードウェア的なものか、ソフトウェア的なものかを容易

に判断するための自己診断機能を搭載しています。診断プログラムを用いて動作確認を行って

ください。

※RAS 機能が搭載された製品(CPZ-294811)の RAS 機能には自己診断機能はありません。

※IO 付きタッチパネル Classembly Devices に搭載された製品の DIO 機能には、自己診断機能

はありません。

※PCI-293544, PCI-293544U, PCI-293588 は本ユーティリティは対応しておりません。ご注意

下さい。

※PCI-284222, PCI-284222N は本ユーティリティは対応しておりません。ご注意下さい。

6.3.1 診断方法 ■CompactPCI シリーズ

自己診断タイプ 1 CTP/CPZ-2104, CTP-2128, CTP/CPZ-2130, CTP/CPZ-2130M, CTP/CPZ-2130L,

CTP-2131, CTP-2131M, CTP-2131L, CTP/CPZ-2152, CTP/CPZ-2154,

CTP-2162, CTP/CPZ-2230, CTP/CPZ-2230V, CPZ-294188

自己診断タイプ 2 CTP-2135/M/L, CPZ-286122 DI

自己診断タイプ 3 CTP/CPZ-2330V, CTP/CPZ-2402, CTP-2424, CTP/CPZ-2430, CTP-2431,

CTP/CPZ-2464, CTP/CPZ-2466

自己診断タイプ 4 CTP/CPZ-2702, CTP/CPZ-2703, CTP-2722, CTP/CPZ-2723, CTP/CPZ-2724,

CTP/CPZ-2724M, CTP/CPZ-2724L, CTP-2725, CTP-2725M, CTP-2725L,

CTP/CPZ-2726, CTP/CPZ-2726M, CTP/CPZ-2726L, CTP-2727, CTP-2727M,

CTP/CPZ-2727L, CTP/CPZ-2752, CTP-2753, CTP/CPZ-2760, CTP/CPZ-2762,

CTP/CPZ-2762M, CTP/CPZ-2768, CPZ-2769, CTP/CPZ-2790, CTP-2793,

CTP/CPZ-2798, CPZ-2799, CTP/CPZ-2826, CTP/CPZ-2826V, CPZ-2827V,

CTP/CPZ-2994, CTP/CPZ-2994V, CPZ-2995V, CTP/CPZ-292388

自己診断タイプ 5 CTP/CPZ-2505, CTP/CPZ-2506, CTP/CPZ-2515, CTP/CPZ-2516,

CTP/CPZ-2517, CPZ-286122 DO

自己診断タイプ 6 CTP/CPZ-287144, CTP/CPZ-287244, CPZ-294811, CPZ-294911

Page 315: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

315

■PCI シリーズ

自己診断タイプ 1 PCI-2104C, PCI-2128, PCI-2130C, PCI-2130CM, PCI-2130CL,

PCI-2131, PCI-2131M, PCI-2131L, PCI-2152C, PCI-2154C,

PCI-2162, PCI-2230C, PCI-2230CV

自己診断タイプ 2 PCI-2105A, PCI-2131A/M/L, PCI-2135/M/L, PCI-286122 DI,

PCI-285011 DI, PCI-284011 DI, PCI-225020, PCI-224020

自己診断タイプ 3 PCI-2330CV, PCI-2402C, PCI-2424, PCI-2426C,PCI-2427,

PCI-2430C, PCI-2431,PCI-251500,

PCI-2464C, PCI-2466C, PCI-2512C,

自己診断タイプ 4 PCI-2702C, PCI-2703, PCI-2722, PCI-2723C, PCI-2724C,

PCI-2724CM, PCI-2724CL, PCI-2725, PCI-2725M, PCI-2725L,

PCI-2726C, PCI-2726CM, PCI-2726CL, PCI-2727, PCI-2727M,

PCI-2727L, PCI-2752C, PCI-2753, PCI-2760C, PCI-2762C,

PCI-2762CM, PCI-2768C, PCI-2790C, PCI-2793,

PCI-2796C, PCI-2798C, PCI-2826C, PCI-2826CV,

PCI-2994C, PCI-2994CV, PCI-292388

自己診断タイプ 5 PCI-2403A, PCI-2427A, PCI-2431A, PCI-2503, PCI-2513,

PCI-286122 DO, PCI-285011 DO, PCI-284011 DO,

PCI-235002, PCI-234002

自己診断タイプ 6 PCI-2470, PCI-2703A, PCI-2725A/M/L, PCI-2727A/M/L,

PCI-2756A/M/L, PCI-2758A/M/L, PCI-287144, PCI-287244,

PCI-291022, PCI-292022, PCI-293022, PCI-284866, PCI-298488

PCI-283144

■CardBus シリーズ

自己診断タイプ 6 CBI-2701,CBI-2702,

CBI/CSI-293166,CBI-293166TK,CBI-293166TR,

CBI/CSI-292366,CBI-292366TK,CBI-292366TL

■LowProfile PCI シリーズ

自己診断タイプ 6 LPC-224140, LPC-234104, LPC-284122, LPC-285122,

LPC-251101, LPC-251100, LPC-293166, LPC-292366

■PCI Express シリーズ

自己診断タイプ 2 PEX-H285011 DI, PEX-H284011 DI, PEX-H225020, PEX-H224020

自己診断タイプ 4 PEX-H258144, PEX-H291388, PEX-H292388, PEX-H293388

自己診断タイプ 5 PEX-H285011 DO, PEX-H284011 DO, PEX-H235002, PEX-H234002

自己診断タイプ 6 PEX-224140, PEX-234104, PEX-284122, PEX-285122,

PEX-251101, PEX-251100, PEX-293166, PEX-292366,

PEX-H291022, PEX-H292022, PEX-H293022

Page 316: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

316

6.3.2 自己診断タイプ 1

【必要な機材】

CTP/CPZ-2104,

CTP/CPZ-2152,

CTP/CPZ-2154

・接続ケーブル(ECO-6601 等)

・端子台(TRM-2201)

・ビニール被覆線等(端子台での接続に使用)

CTP-2128,

CTP-2162

・接続ケーブル(ECO-5020 等)

・端子台(TRM-2101)

・ビニール被覆線等(端子台での接続に使用)

CTP/CPZ-2130 ・接続ケーブル(ECO-6601 等)

・端子台(TRM-2201)

・DC+12V 電源(※12V 以上は入力しないで下さい)

・ビニール被覆線等(端子台での接続に使用)

CTP/CPZ-2130M ・接続ケーブル(ECO-6601 等)

・端子台(TRM-2201)

・DC+24V 電源

・ビニール被覆線等(端子台での接続に使用)

CTP/CPZ-2130L ・接続ケーブル(ECO-6601 等)

・端子台(TRM-2201)

・DC+12V~DC+24V 電源

・ビニール被覆線等(端子台での接続に使用)

CTP-2131 ・接続ケーブル(ECO-5020 等)

・端子台(TRM-2101)

・DC+12V(※12V 以上は入力しないで下さい)

・ビニール被覆線等(端子台での接続に使用)

CTP-2131M ・接続ケーブル(ECO-5020 等)

・端子台(TRM-2101)

・DC+24V 電源

・ビニール被覆線等(端子台での接続に使用)

CTP-2131L ・接続ケーブル(ECO-5020 等)

・端子台(TRM-2101)

・DC+12V~DC+24V 電源

・ビニール被覆線等(端子台での接続に使用)

CTP/CPZ-2230 ・接続ケーブル(ECO-6601 等)

・端子台(TRM-2201)

・DC+12V~DC+48V 電源

・ビニール被覆線等(端子台での接続に使用)

CTP/CPZ-2230V ・接続ケーブル(ECO-6601 等)

・端子台(TRM-2201)

・DC+5V~DC+48V 電源

・ビニール被覆線等(端子台での接続に使用)

CPZ-294188 ・接続ケーブル(ECO-6601 等)

・端子台(TRM-2201)

・ビニール被覆線等(端子台での接続に使用)

Page 317: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

317

【診断手順】

! 複数枚使用する場合には、RSW1 の設定値をインタフェースモジュール毎で異なる値に設

定してください。

(1) 自己診断プログラムの起動

1. 付属ソフトウェアのインストール完了後、「スタート」メニューより「プログラム」-

「Interface GPC-2000」-「DiagDio」を起動します。

2. 「ボード検索」をクリックすると一覧表示画面が表示されます。その中から、診断を

行うデバイスを選択してください。

画面に、型式名,RSW1 の設定値,I/O アドレス,IRQ が表示されます。

(2) コンフィギュレーションの診断

1. メニューの「診断開始」-「コンフィギュレーション」を選択します。

2. 自動的に各項目の診断が行われ、結果が表示されます。

3. 「OK」と表示された場合には、次の手順に進んで下さい。

診断結果が「NG」の場合には、メニューから「ファイル」-「結果の保存」で診断結

果をファイルへ保存してください。その診断結果とともに 弊社 お客様相談センタま

でお問い合わせください。

※お問い合わせ方法につきましては、README.HTM をご参照ください。

(3) 入力機能の診断

1. メニューから「診断開始」-「入力機能」を選択します。

2. 「全点の診断」をクリックします。

各点の診断を行う場合は「1 点のみ診断」をクリックし、診断を行うピン番号の数値

を入力して下さい。

3. コネクタにケーブルと端子台を接続し、画面に指示される端子をビニール被覆線等で

接続して下さい。

●IN1 を診断する場合の接続例

CTP/CPZ-2104

CTP/CPZ-2152

CTP/CPZ-2154

CPZ-294188

TRM-2201 上の IN1 と PULS.OUT1 を接続して下さい。

CTP-2128

CTP-2162

TRM-2101 上の IN1(記銘板番号 1)と PULS.OUT1(記銘板

番号 43)を接続して下さい。

CTP/CPZ-2130

CTP/CPZ-2130M

CTP/CPZ-2130L

TRM-2201 上の IN1 と PULS.OUT1 を接続して下さい。

+COM1 と DC 電源(プラス)を接続して下さい。

-FCOM と DC 電源(マイナス)を接続して下さい。

-COM1 と DC 電源(マイナス)を接続して下さい。

Page 318: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

318

[!]入力信号は、それぞれに対応した COM をご使用下

さい。

IN1~IN16 ⇔ -COM1, +COM1

IN17~IN32 ⇔ -COM2, +COM2

IN33~IN48 ⇔ -COM3, +COM3

IN49~IN64 ⇔ -COM4, +COM4

CTP-2131

CTP-2131M

CTP-2131L

TRM-2101 上の IN1(記名板番号 1)と PULS.OUT1(記名板

番号 43)を接続して下さい。

+COM1 と DC 電源(プラス)を接続して下さい。

-FCOM と DC 電源(マイナス)を接続して下さい。

-COM1 と DC 電源(マイナス)を接続して下さい。

[!]入力信号は、それぞれに対応した COM をご使用下

さい。

IN1~IN16 ⇔ -COM1, +COM1

IN17~IN32 ⇔ -COM2, +COM2

! ピン番号の詳細説明については、マニュアルに記載されています「I/O コネクタピンアサ

インメント」、「TRM-xxxx USER'S MANUAL」を参照して下さい。

4. 接続が完了したら、「OK」をクリックして下さい。

5. 自動的に各項目の診断が行われ、結果が表示されます。

6. 診断結果が正しくない場合は、ケーブルが正しく接続されているかご確認下さい。

正しく接続されているにも関わらず診断結果が「NG」の場合には、メニューから「フ

ァイル」-「印刷」で診断結果を印刷して下さい。

その診断結果とともに弊社 お客様相談センタまでお問い合わせ下さい。

※お問い合わせ方法につきましては、README.HTM をご参照ください。

Page 319: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

319

6.3.3 自己診断タイプ 2

【必要な機材】

CTP-2135 ・接続ケーブル(ECO-5020 等)

・端子台(TRM-2101)

・DC+12V 電源(※12V 以上は入力しないで下さい)

・スイッチなど信号を ON/OFF できる装置

・ビニール被覆線等(端子台での接続に使用)

CTP-2135M ・接続ケーブル(ECO-5020 等)

・端子台(TRM-2101)

・DC+24V 電源

・スイッチなど信号を ON/OFF できる装置

・ビニール被覆線等(端子台での接続に使用)

CTP-2135L ・接続ケーブル(ECO-5020 等)

・端子台(TRM-2101)

・DC+12V~DC+24V 電源

・スイッチなど信号を ON/OFF できる装置

・ビニール被覆線等(端子台での接続に使用)

CPZ-286122 DI ・接続ケーブル(ECO-6601 等)

・端子台(TRM-2201)

・DC+12V~DC+24V 電源

・スイッチなど信号を ON/OFF できる装置

・ビニール被覆線等(端子台での接続に使用)

【診断手順】

! 複数枚使用する場合には、RSW1 の設定値をインタフェースモジュール毎で異なる値に設

定してください。

(1) コンフィギュレーションの診断

1. 「自己診断プログラム」を起動します。

(1) 付属ソフトウェアのインストール完了後、「スタート」メニューより「プログラム」-

「Interface GPC-2000」-「DiagDio」を起動します。

(2) 「ボード検索」をクリックすると一覧表示画面が表示されます。その中から、診断を

行うデバイスを選択してください。

画面に、型式名,RSW1 の設定値,I/O アドレス,IRQ が表示されます。

2. メニューの「診断開始」-「コンフィギュレーション」を選択します。

3. 自動的に各項目の診断が行われ、結果が表示されます。

4. 診断結果が「NG」の場合には、メニューから「ファイル」-「結果の保存」で診断結

果を

ファイルへ保存してください。その診断結果とともに 弊社 お客様相談センタまでお

Page 320: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

320

問い合わせください。

※お問い合わせ方法につきましては、README.HTM をご参照ください。

(2) 入力機能の診断

1. 「DI ユーティリティプログラム」を起動します。

(1) 付属ソフトウェアのインストール完了後、「スタート」メニューより「プログラム」-

「Interface GPC-2000」-「DiUtil」を起動します。

(2) 「ボード検索」をクリックすると一覧表示画面が表示されます。その中から、診断を

行うデバイスを選択してください。

2. TRM-2101 と本インタフェースモジュールを、ECO-5020 で接続して下さい。

3. 入力診断を行う設定にスイッチ等、信号を ON/OFF できる装置を接続します。

●IN1 を診断する場合の接続例

CTP-2135

CTP-2135M

CTP-2135L

CPZ-286122 DI

TRM-2101 上で以下のように結線して下さい。

IN1+と DC 電源(プラス)を接続して下さい。

IN1-と DC 電源(マイナス)を接続して下さい。

! ピン番号の詳細説明については、マニュアルに記載されています「I/O コネクタピンアサ

インメント」、「TRM-xxxx USER'S MANUAL」を参照して下さい。

4. スイッチを”ON”にすると画面上の入力診断を行っているピン番号の表示が赤色になり

ます。

スイッチを”OFF”にすると画面上の入力診断を行っているピン番号の表示が赤から黒

に変わります。

Page 321: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

321

6.3.4 自己診断タイプ 3

【必要な機材】

CTP/CPZ-2402

CTP/CPZ-2464

CTP-2466

・接続ケーブル(ECO-6601 等)

・端子台(TRM-2201)

・ビニール被覆線等(端子台での接続に使用)

CTP-2424 ・接続ケーブル(CAB-5320 等)

・端子台(TRM-2101)

・ビニール被覆線等(端子台での接続に使用)

CTP/CPZ-2330V

CTP/CPZ-2430

・接続ケーブル(ECO-6601 等)

・端子台(TRM-2201)

・DC+12V~DC+24V 電源

・ビニール被覆線等(端子台での接続に使用)

CTP-2431 ・接続ケーブル(CAB-5320 等)

・端子台(TRM-2101)

・DC+12V~DC+24V 電源

・ビニール被覆線等(端子台での接続に使用)

【診断手順】

! 複数枚使用する場合には、RSW1 の設定値をインタフェースモジュール毎で異なる値に設

定してください。

(1) 自己診断プログラムの起動

1. 付属ソフトウェアのインストール完了後、「スタート」メニューより「プログラム」-

「Interface GPC-2000」-「DiagDio」を起動します。

2. 「ボード検索」をクリックすると一覧表示画面が表示されます。その中から、診断を

行うデバイスを選択してください。

画面に、型式名,RSW1 の設定値,I/O アドレス,IRQ が表示されます。

(2) コンフィギュレーションの診断

1. メニューの「診断開始」-「コンフィギュレーション」を選択します。

2. 自動的に各項目の診断が行われ、結果が表示されます。

3. 「OK」と表示された場合には、次の手順に進んで下さい。

診断結果が「NG」の場合には、メニューから「ファイル」-「結果の保存」で診断結

果をファイルへ保存してください。その診断結果とともに 弊社 お客様相談センタま

でお問い合わせください。

※お問い合わせ方法につきましては、README.HTM をご参照ください。

(3) 出力機能の診断

1. メニューから「診断開始」-「出力機能」を選択します。

Page 322: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

322

2. 「全点の診断」をクリックします。

各点の診断を行う場合は「1 点のみ診断」をクリックし、診断を行うピン番号の数値

を入力して下さい。

3. コネクタにケーブルと端子台を接続し、画面に指示される端子をビニール被覆線等で

接続して下さい。

●OUT1 を診断する場合の接続例

CTP/CPZ-2402

CTP/CPZ-2464

CTP-2466

TRM-2201 上の OUT1 と IR.IN1 を接続して下さい。

CTP-2424 TRM-2101 上の OUT1 と IR.IN2 を接続して下さい。

CTP/CPZ-2330V

CTP/CPZ-2430

TRM-2201 上の OUT1 と IR.IN1 を接続して下さい。

+FCOM と DC 電源(プラス)を接続して下さい。

-FCOM と DC 電源(マイナス)を接続して下さい。

+COM1 と DC 電源(プラス)を接続して下さい。

-COM1 と DC 電源(マイナス)を接続して下さい。

[!]出力信号は、それぞれに対応した COM をご使用下

さい。

OUT1~OUT16 ⇔ -COM1, +COM1

OUT17~OUT32 ⇔ -COM2, +COM2

OUT33~OUT48 ⇔ -COM3, +COM3

OUT49~OUT64 ⇔ -COM4, +COM4

CTP-2431 TRM-2101 上の OUT1 と IR.IN2 を接続して下さい。

+FCOM と DC 電源(プラス)を接続して下さい。

-FCOM と DC 電源(マイナス)を接続して下さい。

+COM1 と DC 電源(プラス)を接続して下さい。

-COM1 と DC 電源(マイナス)を接続して下さい。

[!]出力信号は、それぞれに対応した COM をご使用下

さい。

OUT1~OUT16 ⇔ -COM1, +COM1

OUT17~OUT32 ⇔ -COM2, +COM2

! ピン番号の詳細説明については、マニュアルに記載されています「I/O コネクタピンアサ

インメント」、「TRM-xxxx USER'S MANUAL」を参照して下さい。

4. 接続が完了したら、「OK」をクリックして下さい。

5. 自動的に各項目の診断が行われ、結果が表示されます。

6. 診断結果が正しくない場合は、ケーブルが正しく接続されているかご確認下さい。

正しく接続されているにも関わらず診断結果が「NG」の場合には、メニューから「フ

ァイル」-「印刷」で診断結果を印刷して下さい。

その診断結果とともに弊社 お客様相談センタまでお問い合わせ下さい。

※お問い合わせ方法につきましては、README.HTM をご参照ください。

Page 323: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

323

6.3.5 自己診断タイプ 4

【必要な機材】

CTP/CPZ-2702

CPZ-2703

CTP/CPZ-2723

CTP/CPZ-2752

CTP/CPZ-2760

CTP/CPZ-2768

CPZ-2769

CTP/CPZ-2790

CTP/CPZ-2798

CPZ-2799

CTP/CPZ-2994

CTP/CPZ-2994V

CPZ-2995V

CTP/CPZ-292388

PEX-H291388

PEX-H292388

PEX-H293388

・接続ケーブル(ECO-6601 等)

・端子台(TRM-2201)

・ビニール被覆線等(端子台での接続に使用)

CTP-2703

CTP-2722

CTP-2753

CTP-2793

・接続ケーブル(ECO-5020 等)

・端子台(TRM-2101)

・ビニール被覆線等(端子台での接続に使用)

CTP/CPZ-2724

CTP/CPZ-2726

・接続ケーブル(ECO-6601 等)

・端子台(TRM-2201)

・DC+12V 電源(※12V 以上は入力しないで下さい)

・ビニール被覆線等(端子台での接続に使用)

CTP/CPZ-2724M ・接続ケーブル(ECO-6601 等)

・端子台(TRM-2201)

・DC+24V 電源

・ビニール被覆線等(端子台での接続に使用)

CTP/CPZ-2724L

PEX-H258144

・接続ケーブル(ECO-6601 等)

・端子台(TRM-2201)

・DC+12~+24V 電源

・ビニール被覆線等(端子台での接続に使用)

CTP/CPZ-2726M ・接続ケーブル(ECO-6601 等)

・端子台(TRM-2201)

・DC+24V 電源

・ビニール被覆線等(端子台での接続に使用)

CTP/CPZ-2726L

CPZ-2727L

・接続ケーブル(ECO-5020 等)

・端子台(TRM-2201)

・DC+12~+24V 電源

・ビニール被覆線等(端子台での接続に使用)

Page 324: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

324

CTP-2725

CTP-2727

・接続ケーブル(ECO-5020 等)

・端子台(TRM-2101)

・DC+12V 電源(※12V 以上は入力しないで下さい)

・ビニール被覆線等(端子台での接続に使用)

CTP-2725M

CTP-2727M

・接続ケーブル(ECO-5020 等)

・端子台(TRM-2101)

・DC+24V 電源

・ビニール被覆線等(端子台での接続に使用)

CTP-2725L

CTP-2727L

・接続ケーブル(ECO-5020 等)

・端子台(TRM-2101)

・DC+12~+24V 電源

・ビニール被覆線等(端子台での接続に使用)

CTP/CPZ-2762 ・接続ケーブル(ECO-6601 等)

・端子台(TRM-2201)

・DC+12V 電源(※12V 以上は入力しないで下さい)

・ビニール被覆線等(端子台での接続に使用)

CTP/CPZ-2762M ・接続ケーブル(ECO-6601 等)

・端子台(TRM-2201)

・DC+24V 電源

・ビニール被覆線等(端子台での接続に使用)

CTP/CPZ-2826

CTP/CPZ-2826V

CPZ-2827V

・接続ケーブル(ECO-6601 等)

・端子台(TRM-2201)

・DC+5V~DC+48V 電源

・ビニール被覆線等(端子台での接続に使用)

【診断手順】

! 複数枚使用する場合には、RSW1 の設定値をインタフェースモジュール毎で異なる値に設

定してください。

(1) 自己診断プログラムの起動

1. 付属ソフトウェアのインストール完了後、「スタート」メニューより「プログラム」-

「Interface GPC-2000」-「DiagDio」を起動します。

2. 「ボード検索」をクリックすると一覧表示画面が表示されます。その中から、診断を

行うデバイスを選択してください。

画面に、型式名,RSW1 の設定値,I/O アドレス,IRQ が表示されます。

(2) コンフィギュレーションの診断

1. メニューの「診断開始」-「コンフィギュレーション」を選択します。

2. 自動的に各項目の診断が行われ、結果が表示されます。

3. 「OK」と表示された場合には、次の手順に進んで下さい。

診断結果が「NG」の場合には、メニューから「ファイル」-「結果の保存」で診断結

果をファイルへ保存してください。その診断結果とともに 弊社 お客様相談センタま

でお問い合わせください。

※お問い合わせ方法につきましては、README.HTM をご参照ください。

Page 325: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

325

(3) 入力機能の診断

1. メニューから「診断開始」-「入力機能」を選択します。

2. 「全点の診断」をクリックします。

各点の診断を行う場合は「1 点のみ診断」をクリックし、診断を行うピン番号の数値

を入力して下さい。

3. コネクタにケーブルと端子台を接続し、画面に指示される端子をビニール被覆線等で

接続して下さい。

●IN1 を診断する場合の接続例

CTP/CPZ-2702

CPZ-2703

CTP/CPZ-2723

CTP/CPZ-2760

CTP/CPZ-2768

CPZ-2769

CTP/CPZ-2790

CTP/CPZ-2798

CPZ-2799

CTP/CPZ-2994

CTP/CPZ-2994V

CPZ-2995V

TRM-2201 上の IN1 と PULS.OUT1 を接続して下さい。

CTP-2703

CTP-2722

CTP-2753

CTP-2793

TRM-2101 上の IN1 と PULS.OUT2 を接続して下さい。

CTP/CPZ-2724

CTP/CPZ-2724M

CTP/CPZ-2724L

CTP/CPZ-2726

CTP/CPZ-2726M

CTP/CPZ-2726L

CPZ-2727L

CTP/CPZ-2762

CTP/CPZ-2762M

CTP/CPZ-2826

CTP/CPZ-2826V

CPZ-2827V

TRM-2201 上の IN1 と PULS.OUT1 を接続して下さい。

+COM1 と DC 電源(プラス)を接続して下さい。

-FCOM と DC 電源(マイナス)を接続して下さい。

-COM1 と DC 電源(マイナス)を接続して下さい。

[!]入力信号は、それぞれに対応した COM をご使用下

さい。

IN1~IN16 ⇔ -COM1, +COM1

IN17~IN32 ⇔ -COM2, +COM2

CTP-2725

CTP-2725M

CTP-2725L

CTP-2727

CTP-2727M

CTP-2727L

TRM-2101 上の IN1 と PULS.OUT2 を接続して下さい。

+COM1 と DC 電源(プラス)を接続して下さい。

-FCOM と DC 電源(マイナス)を接続して下さい。

-COM1 と DC 電源(マイナス)を接続して下さい。

[!]入力信号は、それぞれに対応した COM をご使用下

さい。

IN1~IN16 ⇔ -COM1, +COM1

Page 326: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

326

CTP/CPZ-2752 TRM-2201 上の IN1 と PULS.OUT1 を接続して下さい。

! ピン番号の詳細説明については、マニュアルに記載されています「I/O コネクタピンアサ

インメント」、「TRM-xxxx USER'S MANUAL」を参照して下さい。

4. 接続が完了したら、「OK」をクリックして下さい。

5. 自動的に各項目の診断が行われ、結果が表示されます。

6. 診断結果が正しくない場合は、ケーブルが正しく接続されているかご確認下さい。

正しく接続されているにも関わらず診断結果が「NG」の場合には、メニューから「フ

ァイル」-「印刷」で診断結果を印刷して下さい。

その診断結果とともに弊社 お客様相談センタまでお問い合わせ下さい。

※お問い合わせ方法につきましては、README.HTM をご参照ください。

(4) 出力機能の診断

1. メニューから「診断開始」-「出力機能」を選択します。

2. 「全点の診断」をクリックします。

各点の診断を行う場合は「1 点のみ診断」をクリックし、診断を行うピン番号の数値

を入力して下さい。

3. コネクタにケーブルと端子台を接続し、画面に指示される端子をビニール被覆線等で

接続して下さい。

●OUT1 を診断する場合の接続例

CTP/CPZ-2702

CPZ-2703

CTP/CPZ-2760

CTP/CPZ-2768

CPZ-2769

CTP/CPZ-2798

CPZ-2799

CTP/CPZ-2994

CTP/CPZ-2994V

CPZ-2995V

TRM-2201 上の OUT1 と IR.IN1 を接続して下さい。

CTP-2703 TRM-2101 上の OUT1 と IR.IN2 を接続して下さい。

CTP-2722

CTP-2753

CTP-2793

TRM-2101 上の OUT1 と IR.IN2 を接続して下さい。

CTP/CPZ-2723

CTP/CPZ-2752

CTP/CPZ-2790

TRM-2201 上の OUT1 と IR.IN1 を接続して下さい。

CTP/CPZ-2724 TRM-2201 上の OUT1 と IR.IN1 を接続して下さい。

+FCOM と DC 電源(プラス)を接続して下さい。

-FCOM と DC 電源(マイナス)を接続して下さい。

-COM3 と DC 電源(マイナス)を接続して下さい。

[!]出力信号は、それぞれに対応した COM をご使用下

さい。

Page 327: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

327

OUT1~OUT16 ⇔ -COM3

OUT17~OUT32 ⇔ -COM4

CTP-2725 TRM-2101 上の OUT1 と IR.IN2 を接続して下さい。

+FCOM と DC 電源(プラス)を接続して下さい。

-FCOM と DC 電源(マイナス)を接続して下さい。

-COM2 と DC 電源(マイナス)を接続して下さい。

[!]出力信号は、それぞれに対応した COM をご使用下

さい。

OUT1~OUT16 ⇔ -COM2

CTP/CPZ-2726

CTP/CPZ-2726M

CTP/CPZ-2726L

CPZ-2727L

CTP/CPZ-2762

CTP/CPZ-2762M

CTP/CPZ-2826

CTP/CPZ-2826V

CPZ-2827V

TRM-2201 上の OUT1 と IR.IN1 を接続して下さい。

+FCOM と DC 電源(プラス)を接続して下さい。

-FCOM と DC 電源(マイナス)を接続して下さい。

+COM3 と DC 電源(プラス)を接続して下さい。

-COM3 と DC 電源(マイナス)を接続して下さい。

[!]出力信号は、それぞれに対応した COM をご使用下

さい。

OUT1~OUT16 ⇔ -COM3, +COM3

OUT17~OUT32 ⇔ -COM4, +COM4

CTP-2727

CTP-2727M

CTP-2727L

TRM-2101 上の OUT1 と IR.IN2 を接続して下さい。

+FCOM と DC 電源(プラス)を接続して下さい。

-FCOM と DC 電源(マイナス)を接続して下さい。

+COM2 と DC 電源(プラス)を接続して下さい。

-COM2 と DC 電源(マイナス)を接続して下さい。

[!]出力信号は、それぞれに対応した COM をご使用下

さい。

OUT1~OUT16 ⇔ -COM2, +COM2

! ピン番号の詳細説明については、マニュアルに記載されています「I/O コネクタピンアサ

インメント」、「TRM-xxxx USER'S MANUAL」を参照して下さい。

4. 接続が完了したら、「OK」をクリックして下さい。

5. 自動的に各項目の診断が行われ、結果が表示されます。

6. 診断結果が正しくない場合は、ケーブルが正しく接続されているかご確認下さい。

正しく接続されているにも関わらず診断結果が「NG」の場合には、メニューから「フ

ァイル」-「印刷」で診断結果を印刷して下さい。

その診断結果とともに弊社 お客様相談センタまでお問い合わせ下さい。

※お問い合わせ方法につきましては、README.HTM をご参照ください。

Page 328: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

328

6.3.6 自己診断タイプ 5

【必要な機材】

CTP/CPZ-2505 ・接続ケーブル(CAB-4201H)

・端子台(TRM-2301)

・テスター

CTP/CPZ-2506

CTP/CPZ-2515

CTP/CPZ-2516

CTP/CPZ-2517

CPZ-286122 DO

・接続ケーブル(ECO-6601 等)

・端子台(TRM-2201)

・テスター

【診断手順】

! 複数枚使用する場合には、RSW1 の設定値をインタフェースモジュール毎で異なる値に設

定してください。

(1) コンフィギュレーションの診断

1. 「自己診断プログラム」を起動します。

(1) 付属ソフトウェアのインストール完了後、「スタート」メニューより「プログラム」-

「Interface GPC-2000」-「DiagDio」を起動します。

(2) 「ボード検索」をクリックすると一覧表示画面が表示されます。その中から、診断を

行うデバイスを選択してください。

画面に、型式名,RSW1 の設定値,I/O アドレス,IRQ が表示されます。

2. メニューの「診断開始」-「コンフィギュレーション」を選択します。

3. 自動的に各項目の診断が行われ、結果が表示されます。

4. 診断結果が「NG」の場合には、メニューから「ファイル」-「結果の保存」で診断結

果をファイルへ保存してください。その診断結果とともに 弊社 お客様相談センタま

でお問い合わせください。

※お問い合わせ方法につきましては、README.HTM をご参照ください。

(2) 出力機能の診断

1. 「DO ユーティリティプログラム」を起動します。

(1) 付属ソフトウェアのインストール完了後、「スタート」メニューより「プログラム」-

「Interface GPC-2000」-「DiagDio」を起動します。

(2) 「ボード検索」をクリックすると一覧表示画面が表示されます。その中から、診断を

行うデバイスを選択してください。

画面に、型式名,RSW1 の設定値,I/O アドレス,IRQ が表示されます。

2. コネクタにケーブルと端子台を接続して下さい。

Page 329: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

329

3. 出力診断を行うピン番号のボタンを”ON”にして下さい。

4. 出力診断を行うピン番号をテスターでご確認下さい。

●OUT1 を診断する場合の接続例

CTP/CPZ-2505 OUT1 に対して OUT1AA/OUT1AC,OUT1BB/OUT1BC 端子が存在します。

◆手順 3.で OUT1 のボタンを”ON”にして下さい。(出力データ”1”) OUT1AA と OUT1AC にテスターを当てると導通があります。

OUT1BB と OUT1BC にテスターを当てると導通がありません。

◆手順 3.で OUT1 のボタンを”OFF”にして下さい。(出力データ”0”) OUT1AA と OUT1AC にテスターを当てると導通がありません。

OUT1BB と OUT1BC にテスターを当てると導通があります。

CTP/CPZ-2506

CTP/CPZ-2515

CTP/CPZ-2516

CPZ-286122 DO

OUT1 に対して、OUT1A,OUT1C が存在します。

◆手順 3.で OUT1 のボタンを”ON”にして下さい。(出力データ”1”) OUT1A と OUT1C にテスターを当てると導通があります。

◆手順 3.で OUT1 のボタンを”OFF”にして下さい。(出力データ”0”) OUT1A と OUT1C にテスターを当てると導通がありません。

CTP/CPZ-2517 OUT1 に対して OUT1A/OUT1B/OUT1C 端子が存在します。

◆手順 3.で OUT1 のボタンを”ON”にして下さい。(出力データ”1”) OUT1A と OUT1C にテスターを当てると導通があります。

OUT1B)と OUT1C にテスターを当てると導通がありません。

◆手順 3.で OUT1 のボタンを”OFF”にして下さい。(出力データ”0”) OUT1A と OUT1C にテスターを当てると導通がありません。

OUT1B と OUT1C にテスターを当てると導通があります。

! ピン番号の詳細説明については、マニュアルに記載されています「I/O コネクタピンアサ

インメント」、「TRM-xxxx USER'S MANUAL」を参照して下さい。

Page 330: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

330

6.3.7 自己診断タイプ 6

【必要な機材】

CTP/CPZ-287144

CTP/CPZ-287244

CBI-2701

CBI-2702

CBI/CSI-293166

CBI-293166TK

CBI-293166TR

CBI/CSI-292366

CBI-292366TK

CBI-292366TL

LPC-224140

LPC-234104

LPC-284122

LPC-285122

LPC-251101

LPC-251100

LPC-293166

LPC-292366

PEX-224140

PEX-234104

PEX-284122

PEX-285122

PEX-251101

PEX-251100

PEX-293166

PEX-292366

・接続ケーブル( 付属ケーブルまたは、マニュアルに記載しているオプシ

ョン品のケーブルをご用意ください。 )

・端子台(必要に応じて、マニュアルに記載しているオプション品の端子

台をご用意ください。外部機器や、測定器との接続が容易になります。)

・入力を診断するために接続する外部機器やスイッチ

・出力診断時に出力状態を確認する測定器

【診断手順】

! 複数枚使用する場合には、RSW1 の設定値をインタフェースモジュール毎で異なる値に設

定してください。

(1) コンフィギュレーションの診断

1. 「自己診断プログラム」を起動します。

(1) 付属ソフトウェアのインストール完了後、「スタート」メニューより「プログラム」-

「Interface GPC-2000」-「DiagDio」を起動します。

(2) 「ボード検索」をクリックすると一覧表示画面が表示されます。その中から、診断を

行うデバイスを選択してください。

画面に、型式名,I/O アドレス,IRQ が表示されます。

RSW1 の設定値の欄は常に 0が表示されます。CardBus シリーズに RSW1 はありません。

Page 331: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

331

2. メニューの「診断開始」-「コンフィギュレーション」を選択します。

3. 自動的に各項目の診断が行われ、結果が表示されます。

4. 診断結果が「NG」の場合には、メニューから「ファイル」-「結果の保存」で診断結

果をファイルへ保存してください。その診断結果とともに 弊社 お客様相談センタま

でお問い合わせください。

※お問い合わせ方法につきましては、README.HTM をご参照ください。

(2) 入力機能の診断

1. 「DI ユーティリティプログラム」を起動します。

(1) 付属ソフトウェアのインストール完了後、「スタート」メニューより「プログラム」-

「Interface GPC-2000」-「DiUtil」を起動します。

(2) 「ボード検索」をクリックすると一覧表示画面が表示されます。その中から、診断を

行うデバイスを選択してください。

2. コネクタにケーブルと端子台を接続して下さい。

3. 入力診断を行うピン番号に対応した相手外部機器の出力を”ON”にして下さい。

! ピン番号の詳細説明については、マニュアルに記載されています「I/O コネクタピンアサ

インメント」を参照して下さい。

4. ユーティリティプログラム上の入力診断を行っているピン番号が”ON”の表示に変化し

ているか確認下さい。

(3) 出力機能の診断

1. 「DO ユーティリティプログラム」を起動します。

(1) 付属ソフトウェアのインストール完了後、「スタート」メニューより「プログラム」-

「Interface GPC-2000」-「DoUtil」を起動します。

(2) 「ボード検索」をクリックすると一覧表示画面が表示されます。その中から、診断を

行うデバイスを選択してください。

2. コネクタにケーブルと端子台を接続して下さい。

3. 出力診断を行うピン番号のボタンを”ON”にして下さい。

! ピン番号の詳細説明については、マニュアルに記載されています「I/O コネクタピンアサ

インメント」を参照して下さい。

4. 出力診断を行うピン番号をロジックアナライザなどの測定器でご確認下さい

Page 332: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

332

6.4 カードバス ID 設定ユーティリティ このユーティリティは複数枚の同一型式カードバス製品を使用するためのものです。カード毎

に異なる ID 番号を設定します。この ID 番号は PCI デバイスで言えば RSW 番号と同等の意味を

持ち、デバイスマネージャ、自己診断プログラムでも、RSW1 として表示されます。

【操作方法】

1. ドライバソフトウェアのインストール完了後、「コントロールパネル」の「Interface CardBus ID

Utility」を開きます。

2. 現在挿入されている弊社カードバス製品の情報が表示されます。左から「バス番号」、「デバイ

ス番号」、「ファンクション番号」、「型式」、「ID 番号」を示します。ID 番号の設定を行いたい製

品をダブルクリックして下さい。

3. ID 番号を設定するダイアログが開きますので、コンボボックス内で設定したい ID 番号を選択

し、「Ok」ボタンをクリックします。

4. これで ID 番号の設定は完了です。

※ 設定できる ID 番号は 0h~Fh までです。

※ 変更した ID 番号をドライバに認識させるには、一度カードを抜き差しするか、システムを再起動

して下さい。

※ 設定した ID 番号が分かるように番号を記したシールをカードに貼ることをお勧めします。

Page 333: GPC-2000 - Interface...Delphi EventEx PCI-2162, CTP-2162, CPZ-294188用 割り込みサンプルプログラム ユーティリティ DIUTIL.EXE DI入力ユーティリティ DOUTIL.EXE

GPC-2000 Help for Windows

© 2000, 2014 Interface Corporation. All rights reserved.

333

第7章 重要な情報

保証の内容と制限

弊社は本ドキュメントに含まれるソースプログラムの実行が中断しないこと、またはその実行に

誤りが無いことを保証していません。

本製品の品質や使用に起因する、性能に起因するいかなるリスクも使用者が負うものとします。

弊社はドキュメント内の情報の正確さに万全を期しています。万一、誤記または誤植などがあっ

た場合、弊社は予告無く改訂する場合があります。ドキュメントまたはドキュメント内の情報に

起因するいかなる損害に対しても弊社は責任を負いません。

ドキュメント内の図や表は説明のためであり、ユーザ個別の応用事例により変化する場合があり

ます。

著作権、知的所有権

弊社は本製品に含まれるおよび本製品に対する権利や知的所有権を保持しています。

本製品はコンピュータ ソフトウェア、映像/音声(例えば図、文章、写真など)を含んでいます。

医療機器/器具への適用における注意

弊社の製品は人命に関わるような状況下で使用される機器に用いられる事を目的として設計、製

造された物では有りません。

弊社の製品は人体の検査などに使用するに適する信頼性を確保する事を意図された部品や検査

機器と共に設計された物では有りません。

医療機器、治療器具などの本製品の適用により、製品の故障、ユーザ、設計者の過失などにより、

損傷/損害を引き起こす場合が有ります。

複製の禁止

弊社の許可なく、本ドキュメントの全て、または一部に関わらず、複製、改変などを行うことは

できません。

責任の制限

弊社は、弊社または再販売者の予見の有無にかかわらず発生したいかなる特別損害、偶発的損害、

間接的な損害、重大な損害について、責任を負いません。

本製品(ハードウェア,ソフトウェア)のシステム組み込み、使用、ならびに本製品から得られる

結果に関する一切のリスクについては、本製品の使用者に帰属するものとします。

本製品に含まれるバグ、あるいは本製品の供給(納期遅延)、性能もしくは使用に起因する付帯

的損害もしくは間接的損害に対して、弊社に全面的に責がある場合でも、弊社はその製品に対す

る改良(正常に動作する)、代品交換までとし、金銭面での賠償の責任は負わないものとします

ので、予めご了承ください。

本製品(ソフトウェアを含む)は、日本国内仕様です。本製品を日本国外で使用された場合、弊

社は一切責任を負いかねます。また、弊社は本製品に関し、海外での保守サービスおよび技術サ

ポート等は行っておりません。

商標/登録商標

本書に掲載されている会社名、製品名は、それぞれ各社の商標または登録商標です。