Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
DIO(PCI/C-PCI)
www.interface.co.jp
GPC-2000 デジタル入出力インタフェースモジュール用 Windows ドライバ
Help for Windows
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
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 に対応しています。
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)機能 本インタフェースモジュールに対して外部からリセットをか
けるための入力です。出力やインタフェースモジュールの各設
定値をリセットすることができます。インターバルタイマも停
止します。
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 割り込みサンプルプログラム(マニュアル記載)
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 を使用して作成しています。
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関数の説明をご参照ください。
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 );
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 個以上になるとパソコンのタイマを使用します。
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関数にてハンドシェーク入出力の状態を取得できます。
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 リファレンス等をご参照ください。
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にします。
・異常検出時に行う任意の処理を開始します。
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 未使用
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関数により、
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関数によりエッジ検出割り込みが許可されてい
る場合は、割り込み発生と同時にクリアされます。
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 への出力設定を行ないます。
出力設定が同時となった場合、関数エラーは発生しませんが、出力が正常に行なわれない可能性
があるため、排他をとった制御を行なうようにして下さい。
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
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
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
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
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
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
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
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
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
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
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
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
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
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)入力のマスクを設定します。
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 ハンドシェーク入出力時のタイムアウト時間を設定します。
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,
GPC-2000 Help for Windows
© 2000, 2014 Interface Corporation. All rights reserved.
33
CTP-2162, CPZ-294188 以外でも使用できます。
*3: 外部リセット(RSTIN)入力のマスク機能を持った製品の専用関数です。外部リセット入力のマ
スク機能の有無は、DioGetDeviceConfigEx 関数にて確認できます。
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 を指定した動作となります。
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 環境でご使用になる場合、使用例に沿って記述してください。
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)
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」のデバイスを重複オープン許可でオープンします。
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 回閉じるなどを行うと発生
します。
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」のデバイスのクローズ処理を行います。
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
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 進数)です。
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 割込みラインデータを格納する変数へのポインタ(参照渡し)を指定します。
インタフェースモジュールが使用する割込みレベルが格納されます。
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;
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){
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
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)
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
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
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)
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 で判断します。
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 サポート
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 の遅延時間を設定した場合、上記の固有の遅延時間
は無効となり、関数で指定した遅延時間が使用されます。
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」のデバイスがサポートしているデバイス機能情報を取得します。
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 サポート
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: 将来拡張用
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 )
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」のデバイスがサポートしているデバイス機能情報を取得します。
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 に対応します。
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 異常
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 戻り値一覧』をご参照くださ
い。
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を出力します。
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 読み込まれたデータを格納する変数へのポインタ(参照渡し)を指定します。
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
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
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 に取得します。
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 戻り値一覧』をご参照くださ
い。
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 異常
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 未使用
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 に取得します。
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 戻り値一覧』をご参照くださ
い。
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 異常
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 未使用
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 に取得し
ます。
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 に対応します。
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
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 戻り値一覧』をご参照くださ
い。
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 )
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を出力します。
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 指定した接点へ出力するデータを指定します。
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 未使用
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
未使用
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
未使用
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 にします。
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 戻り値一覧』をご参照くださ
い。
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未使用
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
未使用
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
にします。
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 戻り値一覧』をご参照くださ
い。
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 未使用
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 未使用
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 にします。
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関数で取得したデバイスハンドルを指定します。
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に記
載していますので、そちらも参照してください。
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 に取得します。
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
(その他の設定値は無効です。)
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に記載し
ていますので、そちらも参照してください。
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 端子をセットします。
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関数で取得したデバイスハンドルを指定します。
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に記
載していますので、そちらも参照してください。
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 に取得します。
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
(その他の設定値は無効です。)
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に記載し
ていますので、そちらも参照してください。
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 端子をセットします。
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 戻り値一覧』をご参照くださ
い。
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」のデバイスの汎用入力端子状態を読み込みます。
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 戻り値一覧』をご参照くださ
い。
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 にします。
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
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 に設定します。
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
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 に格納
します。
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 戻り値一覧』をご参照くださ
い。
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 のマスクを有効に設定します。
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 戻り値一覧』をご参照くださ
い。
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 へ格納します。
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でリセット入力信号が無効になったことを確認してからインタフェース
モジュールの再設定を行ってください。
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 に取得
します。
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 戻り値一覧』をご参照くださ
い。
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 に取得します。
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 戻り値一覧』をご参照くださ
い。
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」のデバイスのバックグランド処理で使用するタイマの設定を行います。
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';
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)が返されます。
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 回、のバックグランド処理を行うための設定を行います。
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 戻り値一覧』をご参照くださ
い。
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 )
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 で表されるバックグランド処理の設定
を解放します。
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 戻り値一覧』をご参照くださ
い。
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 )
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 で表されるバックグランド処理を停止
させます。
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
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 処理オプションを格納する変数へのポインタ(参照渡し)を指定します。
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);
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)
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 で表されるバックグランド処理の設定
情報、実行状態等を取得します。
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関数で取得したバックグランド処理ハンドルを指定します。
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 バイトになります。
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 状態
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 )
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 で表されるバックグランド処理の設定
内容でバックグランド入力を行います。
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 デバイスへ出力するデータを格納したバッファを指すポインタ(参照渡し)を指定します。
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 バイトになります。
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
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 );
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 )
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 で表されるバックグランド処理の設定
内容でバックグランド出力を行います。
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';
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 バイトになります。
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 状態
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 )
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 で表されるバックグランド処理の設定
内容で接点の監視を行います。
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 信号有効としハンドシェーク入力が動作しま
す。このフラグを指定しない場合は立ち下がりエッジのタイ
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 );
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」のデバイスのハンドシェーク入力の設定内容を取得します。
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関数で取得したデバイスハンドルを指定します。
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 戻り値一覧』をご参照くださ
い。
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」のデバイスのハンドシェーク入力の設定を行います。
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関数で取得したデバイスハンドルを指定します。
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 に設定されています。
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 戻り値一覧』をご参照くださ
い。
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 )
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」のデバイスのハンドシェーク出力の設定内容を取得します。
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関数で取得したデバイスハンドルを指定します。
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 の遅延時間の設定が必要となる場合があります。
ハンドシェーク処理に成功しているのに、入力側で不定値を取得してしまう様な場合には、
上記の遅延時間を追加することで取得データが安定する可能性があります。
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 戻り値一覧』をご参照くださ
い。
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」のデバイスのハンドシェーク出力の設定を行います。
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';
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 処理終了 ← データ入力終了
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 状態
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 )
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」のデバイスでハンドシェーク入力します。
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';
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 戻り値一覧』をご参照くださ
い。
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 状態
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 )
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 で指定さ
れた完了ルーチンを実行します。
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';
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 処理終了 ← データ出力終了
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
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 );
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 )
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」のデバイスでハンドシェーク出力します。
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';
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 戻り値一覧』をご参照くださ
い。
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
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 );
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 )
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 で指定さ
れた完了ルーチンを実行します。
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 戻り値一覧』をご参照くださ
い。
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」のデバイスのハンドシェーク入力を停止します。
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 戻り値一覧』をご参照くださ
い。
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」のデバイスのハンドシェーク出力を停止します。
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 ハンドシェーク出力実行中の場合、残り出力バッファ数を格納する変数へのポインタ(参
照渡し)を指定します。
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 )
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」のデバイスの現在のデバイスの状態を取得します。
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 実際に入出力されたバイト数を格納する変数へのポインタ(参照渡し)を指定します。
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 );
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」のデバイスのハンドシェーク入出力関数の非同期コール時に入出力され
たバイト数を取得します。
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 単位で指定
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 戻り値一覧』をご参照くださ
い。
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」のデバイスにおけるハンドシェーク入出力タイムアウト時間の設定を行
います。
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]を格納する変数へのポインタ(参照渡し)を
指定します。
ハンドシェーク入力時のトータルタイムアウト設定が格納されます。
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 戻り値一覧』をご参照くださ
い。
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 );
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」のデバイスにおけるハンドシェーク入出力タイムアウト設定値の取得を
行います。
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 のマスク/アンマスク状態は変更しません。
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関数実行
後に本関数を実行してください。
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 をマスクします。
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 のマスク/アンマスク状態は変更しません。
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 へ格納します。
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関数で取得したデバイスハンドルを指定します。
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関数を実行してください。
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" になった時に割り
込みが発生するように設定します。
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関数で取得したデバイスハンドルを指定します。
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 戻り値一覧』をご参照くださ
い。
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 へ格納します。
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関数で取得したデバイスハンドルを指定します。
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関数は、
処理を戻しません。(同期処理)
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関数を実行した時点から、割り込みのバッファリングを開始します。
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);
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)
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 からの入力信号」の両方イベント要求を待ちます。
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:アンマスク
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関数実行後は、本関数を必ず実行してください。
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 に対する
エッジ検出割り込みを有効にします。
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 戻り値一覧』をご参照くださ
い。
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 へ返します。
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 点分のエッジ検出割り込みの
マスク/アンマスクを設定します。
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関数で割り込みマスクの
設定が変更可能です。
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 に対する
エッジ検出割り込みを有効にします。
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 読み込まれたエッジ検出割り込みのマスク/アンマスクを格納する変数へのポインタ(参
照渡し)を指定します。
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:アンマスク
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 へ返します。
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関数で取得したデバイスハンドルを指定します。
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 に立下りエッジが検出されたときのイベント
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 に立下りエッジが検出されたときのイベント
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関数を実行した時点から、割り込みのバッファリングを開始します。
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 );
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)
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;
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 からの入力信号」のイベント要求を待ちます。
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
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 )
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 で設定
を行います。
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
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 )
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
へ格納します。
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
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 )
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」のデバイスからインターバルタイマのカウント値を取得します。
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:有効
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関数を必ず実行してください。
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 に対する立上りエッジ検出を有効にします。
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:有効
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)
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 へ返します。
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 対象接点の立ち下がりエッジ検出を有効にするか、無効にするかを指定します。
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 )
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 に対する立上りエッジ検出を有効にします。
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 読み込まれた立上りエッジ検出設定を格納する変数へのポインタ(参照渡し)を指定しま
す。
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)
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 へ返しま
す。
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)
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 )
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 番までの接点状態を読み込みます。
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 点分のデータを読み込みます。
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 );
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 に取得します。
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 立下りエッジ検出データを格納する変数へのポインタ(参照渡し)を指定します。
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 )
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 に取得します。
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 立下りエッジ検出データを格納する変数へのポインタ(参照渡し)を指定します。
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 )
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 に取得します。
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関数で取得したデバイスハンドルを指定します。
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)です。
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(フィルタなし)です。
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(フィルタなし)です。
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 に設定します。
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 のフィルタ設定を取得します。
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)です。
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(フィルタなし)です。
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(フィルタなし)です。
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 へ返します。
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 戻り値一覧』をご参照くださ
い。
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関数で割り込みマスクの
設定が変更可能です。
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」のデバイスを「割り込みバッファリング無効」に設定します。
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
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);
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から出力させます。
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構造体を使うことはありません。したがって、 完了ルーチンはオーバーラ
ップ構造体を使ってメモリの割り当てを解除することができます。
【戻り値】
この関数に戻り値はありません。
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 よりダウンロードしてご使
用ください。
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でない値を返したときだけ
有効です。
GPC-2000 Help for Windows
© 2000, 2014 Interface Corporation. All rights reserved.
294
Offset 転送を開始するファイル位置を指定します。 通信ポートに対してこれらの関
数が読み取りや書き込みをするときには、このメンバは無視されます。
OffsetHigh 転送を開始するバイト オフセットの上位ワードを指定します。通信ポートに
対してこれらの関数が読み取りや書き込みをするときには、 このメンバは無
視されます。
hEvent 転送が完了したときにシグナル状態に設定されるイベントを識別します。呼
び出し側プロセスは、 DioEventRequestPending関数を呼び出す前に、 この
メンバを設定します。
(!) Visual Basic で使用する場合、API ビューワ等を使用し、定義してください。
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 関数に指定する値が不正もし
くは範囲外です。
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 を参照して
ください。
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 回取得します。
バックグランド入力の関数を使用して非同期でデータ取得を行い、処理の完了を待ってから取
得データを表示します。
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点分取得し表示を行います。
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 回行います。
バックグランド出力の関数を使用して非同期でデータ出力を行い、出力の完了を待ちます。
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点から指定データの出力を行います。
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 回分の変化を監視・取得します。
バックグランド監視の関数を使用して非同期でデータ取得を行い、処理の完了を待ってから取
得データを表示します。
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バイト分のハンドシェイク出力を行います。
非同期でデータ出力を行い、処理の完了を待ちます。
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 の入力割り込みの検出を有効にし、割り込みが発生するのを非同
期処理で待ちます。
割り込みが発生した場合は、発生した割り込みの種類を表示します。
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 までの入力エッジ割り込みの検出を有効にし、割り込みが発生するのを同期処理
で待ちます。
割り込みが発生した場合は、発生した割り込みの種類を表示します。
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」を起動してください。
【内容】
指定した端子への入力エッジの検出状態を取得し、表示を行います。
入力エッジの検出に対するデジタルフィルタの設定も実行可能です。
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バイト分のデータを取
得・表示します。
コンソール上で動作する単純なアプリケーションとなっていますので、使用するデバイスの変
更や入力端子を変更する場合は、ソースコードを編集して設定を変更する必要があります。
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)
を出力します。
コンソール上で動作する単純なアプリケーションとなっていますので、使用するデバイスの変
更や出力端子・出力データを変更する場合は、ソースコードを編集して設定を変更する必要が
あります。
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 秒間待ちます。
コンソール上で動作する単純なアプリケーションとなっていますので、使用するデバイスの変
更や検出する割り込み要因を変更する場合は、ソースコードを編集して設定を変更する必要が
あります。
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);
}
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)
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;
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」の製品は下記の通りです。
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
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
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
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)
・ビニール被覆線等(端子台での接続に使用)
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 電源(マイナス)を接続して下さい。
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 をご参照ください。
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」の場合には、メニューから「ファイル」-「結果の保存」で診断結
果を
ファイルへ保存してください。その診断結果とともに 弊社 お客様相談センタまでお
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”にすると画面上の入力診断を行っているピン番号の表示が赤から黒
に変わります。
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. メニューから「診断開始」-「出力機能」を選択します。
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 をご参照ください。
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 電源
・ビニール被覆線等(端子台での接続に使用)
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 をご参照ください。
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
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 をご使用下
さい。
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 をご参照ください。
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. コネクタにケーブルと端子台を接続して下さい。
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」を参照して下さい。
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 はありません。
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. 出力診断を行うピン番号をロジックアナライザなどの測定器でご確認下さい
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 番号が分かるように番号を記したシールをカードに貼ることをお勧めします。
GPC-2000 Help for Windows
© 2000, 2014 Interface Corporation. All rights reserved.
333
第7章 重要な情報
保証の内容と制限
弊社は本ドキュメントに含まれるソースプログラムの実行が中断しないこと、またはその実行に
誤りが無いことを保証していません。
本製品の品質や使用に起因する、性能に起因するいかなるリスクも使用者が負うものとします。
弊社はドキュメント内の情報の正確さに万全を期しています。万一、誤記または誤植などがあっ
た場合、弊社は予告無く改訂する場合があります。ドキュメントまたはドキュメント内の情報に
起因するいかなる損害に対しても弊社は責任を負いません。
ドキュメント内の図や表は説明のためであり、ユーザ個別の応用事例により変化する場合があり
ます。
著作権、知的所有権
弊社は本製品に含まれるおよび本製品に対する権利や知的所有権を保持しています。
本製品はコンピュータ ソフトウェア、映像/音声(例えば図、文章、写真など)を含んでいます。
医療機器/器具への適用における注意
弊社の製品は人命に関わるような状況下で使用される機器に用いられる事を目的として設計、製
造された物では有りません。
弊社の製品は人体の検査などに使用するに適する信頼性を確保する事を意図された部品や検査
機器と共に設計された物では有りません。
医療機器、治療器具などの本製品の適用により、製品の故障、ユーザ、設計者の過失などにより、
損傷/損害を引き起こす場合が有ります。
複製の禁止
弊社の許可なく、本ドキュメントの全て、または一部に関わらず、複製、改変などを行うことは
できません。
責任の制限
弊社は、弊社または再販売者の予見の有無にかかわらず発生したいかなる特別損害、偶発的損害、
間接的な損害、重大な損害について、責任を負いません。
本製品(ハードウェア,ソフトウェア)のシステム組み込み、使用、ならびに本製品から得られる
結果に関する一切のリスクについては、本製品の使用者に帰属するものとします。
本製品に含まれるバグ、あるいは本製品の供給(納期遅延)、性能もしくは使用に起因する付帯
的損害もしくは間接的損害に対して、弊社に全面的に責がある場合でも、弊社はその製品に対す
る改良(正常に動作する)、代品交換までとし、金銭面での賠償の責任は負わないものとします
ので、予めご了承ください。
本製品(ソフトウェアを含む)は、日本国内仕様です。本製品を日本国外で使用された場合、弊
社は一切責任を負いかねます。また、弊社は本製品に関し、海外での保守サービスおよび技術サ
ポート等は行っておりません。
商標/登録商標
本書に掲載されている会社名、製品名は、それぞれ各社の商標または登録商標です。