GPC-6204 - Interface

116
ENCODER2(PCI/C-PCI) www.interface.co.jp GPC-6204 3 モードパルスカ ンタインタフェースモジュール Windows対 ドライバ HelpforWindows

Transcript of GPC-6204 - Interface

Page 1: GPC-6204 - Interface

ENCODER2(PCI/C-PCI)

www.interface.co.jp

GPC-6204 3モードパルスカウンタインタフェースモジュール用 Windows 対応ドライバ

Help for Windows

Page 2: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

2

目 次

第 1 章 はじめに 3 1.1 概要 ...........................................................................3 1.2 特長 ...........................................................................3 第 2章 製品仕様 4 2.1 基本仕様 .......................................................................4 2.2 初期設定 .......................................................................5 2.3 カウンタ機能 ...................................................................5 第 3章 導入方法 7 3.1 インストール手順 ...............................................................7 3.2 実行手順 .......................................................................7 3.3 インタフェースモジュール固有情報 ..............................................12 第 4章 リファレンス 13 4.1 DLL関数一覧 ...................................................................13 4.2 関数個別説明 ..................................................................15 4.3 コールバック関数 ..............................................................90 4.4 戻り値一覧 ....................................................................96 4.5 プログラム例 ..................................................................98 第 5章 サンプルプログラム 101 第 6章 ユーティリティ 102 6.1 動作確認ユーティリティ .......................................................102 6.2 診断プログラム ...............................................................103 6.3 カードバスID設定ユーティリティ ...............................................104 第 7章 自己診断方法 105 7.1 PCI-6204, CTP-6204, CPZ-6204 自己診断方法 ....................................105 7.2 PCI-6205C, CTP-6205, CPZ-6205 自己診断方法 ...................................108 7.3 CBI-631104 自己診断方法 ......................................................110 7.4 CBI/CSI/LPC/PEX-631204 自己診断方法...........................................112 7.5 PCI/CTP/CBI/CSI/LPC/PEX-32xxxx, 36xxxx 自己診断方法 ..........................114 第 8章 重要な情報 115

Page 3: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

3

第1章 はじめに

1.1 概要 本ソフトウェアは、Windows アプリケーションから、弊社 3 モードパルスカウンタ製品の制御を行うためのものです。弊社 3 モードパルスカウンタ製品を Windows アプリケーションから DLL をダイナミックリンクし、API をコールすることにより制御します。

1.2 特長 ●位相差パルスカウントモード・ゲート付き単相パルスカウントモード・アップダウンパルスカウントモードの 3 つのモードを選択して測定できる機能により、高精度の位置決め等のエンコーダカウンタ入力が可能です。 ●動作モード、カウンタ方向をソフトウェアで制御することができます。 ●カウンタ一致、キャリー/ボロー検出、外部入力、外部ラッチ、IR/IN 入力、インターバルタイマ使用の際にイベントを発生させることができます。 ●機能や使い方を説明するヘルプ(Help.pdf)をサポートしていますので、開発中に関数の詳細説明など、簡単に参照することができます。

Page 4: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

4

第2章 製品仕様

2.1 基本仕様 80枚

PCI/CTP/CPZ-6204 合わせて 16 枚 PCI-6205C CTP/CPZ-6205

合わせて 16 枚

CBI-631104 CBI/CSI-631204 LPC/PEX-631204

合わせて 16 枚

PCI/CTP/CPZ/CBI/CSI-320412 PCI/CTP/CPZ/CBI/CSI-320416 PCI/CTP/CPZ/CBI/CSI-360112 PCI/CTP/CPZ/CBI/CSI-360116

合わせて 16 枚

PCI-360216 合わせて 16 枚

最大ボード枚数

LPC/PEX-321116 LPC/PEX-321216 LPC/PEX-321316 LPC/PEX-321416 LPC/PEX-340216 LPC/PEX-340416 LPC/PEX-361116 LPC/PEX-361216 LPC/PEX-361316 LPC/PEX-361416 PCI-361516

合わせて 176 枚 (各型式 16 枚まで)

イベント、コールバック機能 アプリケーションでイベント待ちおよびコールバック関数呼び出しを行うことができます。 本 DLL は、以下のイベントを通知することができます。 ・ カウンタ値とプリセット値の一致時 ・ キャリー/ボロー発生時 ・ 外部ラッチ ・ 外部入力(L2,L3) (PCI-6204, CTP/CPZ-6204 のみ) ・ 位相差パルス異常入力時 ・ IR.IN 入力 (PCI-6205C, CTP/CPZ-6205 のみ) ・ インターバルタイマ

イベントマスク機能 イベント要因毎にマスク設定/マスク解除することができます。 インターバルタイマ機能 指定した周期でイベントを発生させることができます。(10ms~1500ms)

※10ms より短い周期(9ms など)でインターバルタイマ割り込みを使用するとアプリケーションが処理しきれずフリーズした状態に陥りますので10ms より短い周期でインターバルタイマ割り込みを使用することはできません。ただし、負荷の大きいアプリケーションにおいては 10ms 以上の周期で使用してもフリーズしてしまうことがあるため、上記の数値はあくまでも通常の状態における目安です。周期は Windows システムの動作の影響を受けるため、誤差が生じることをご了承ください。

Page 5: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

5

2.2 初期設定 3モードパルスカウンタの電源投入時のデフォルト値は以下の様に設定されます。

リセット時の状態 レジスタ及びモード PCI/CTP/CPZ-6204, CBI-631104, CBI/CSI/LPC/PEX -631204, PCI/CTP/CPZ/CBI/CSI-3601xx, PCI-3602xx, PCI/CTP/CPZ/CBI/CSI-3204xx, LPC/PEX-321xxx, LPC/PEX-340xxx, LPC/PEX-361xxx PCI-362616

PCI-6205C, CTP/CPZ-6205

カウンタ値 00000000h(32bit) 000000h(24bit) 比較カウンタ値 FFFFFFFFh(32bit) FFFFFFh(24bit) カウンタモード 0(ゲート付き単相パルスカウント 1 逓倍モード) カウンタ方向 UP 外部カウンタクリア設定 外部信号によるカウンタのクリアを行わない 外部カウンタラッチ設定 外部信号によるカウンタのラッチを行わない インターバルタイマ 停止 イベント すべて禁止

2.3 カウンタ機能 GPC-6204 は以下の機能を持ちます。 機能 説明

ゲート付き単相パルスカウントモード 位相差パルスカウントモード

カウンタモード

アップダウンパルスカウントモード 1 逓倍 2 逓倍

逓倍

4 逓倍 同期クリア クリア設定 非同期クリア アップカウント カウンタ方向 ダウンカウント ソフトウェアラッチ ラッチ方法 外部ラッチ(ラッチ信号のみ・Z相とラッチ信号) クリアなし Z 相のみでクリア

クリア方法

Z 相とラッチ信号でクリア デジタルフィルタ設定 A,B,Z 相信号に周波数フィルタを設定可能 イベント設定項目 カウンタ値と比較カウンタ値の一致

キャリー/ボロー発生 外部入力(L2,L3) 外部ラッチ発生 位相差パルス異常入力時 インターバルタイマ 汎用入力(IN1~IN16)の立ち上がり/立ち下がり検出

Page 6: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

6

リセットイン信号(RSTIN)

Page 7: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

7

第3章 導入方法

3.1 インストール手順

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

3.2 実行手順 同一型式のボードを複数枚使用する場合は、ボード上のロータリスイッチ(RSW1)の設定値が同一型式同士で重複しないように設定してからシステムに実装してください。複数のボードが存在する場合、ボードを一意に識別するための番号となります。重複していた場合、本 DLL は正常に動作いたしません。 ※PCI-6204 と CTP/CPZ-6204 を同時に使用する場合も、RSW1 の設定値が重複しないように設定して下さい。 PCI-6205C と CTP/CPZ-6205、PCI/CTP/CBI/CSI-3601xx と PCI/CTP/CBI/CSI-3204xx の場合も同様です。 同時に使用する場合に、同一デバイスとしてカウントされる型式の種類については「初期化」を参照ください。

3 モードパルスカウンタは、以下の流れでカウンタを読み込みます。

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

Page 8: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

8

3.2.1 初期化 ボードを PencOpen 関数で初期化します。 DeviceHandle = PencOpen( "FBIPENC1", PENC_FLAG_SHARE );

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

PCI-6204 CTP/CPZ-6204

PCI-6205C CTP/CPZ-6205

CBI-631104 CBI/CSI-631204 LPC/PEX-631204

RSW1 デバイス名 RSW1 デバイス名 RSW1 デバイス名 0 FBIPENC1 0 FBIPENC17 0 FBIPENC33 1 FBIPENC2 1 FBIPENC18 1 FBIPENC34 : : : : : : F FBIPENC16 F FBIPENC32 F FBIPENC48

PCI/CTP/CPZ-3601xx PCI/CTP/CPZ-3204xx CBI/CSI-3601xx CBI/CSI-3204xx

PCI-3602xx LPC/PEX-321xxx LPC/PEX-340xxx LPC/PEX-361xxx

RSW1 デバイス名 RSW1 デバイス名 デバイス名 0 FBIPENC49 0 FBIPENC65 1 FBIPENC50 1 FBIPENC66 : : : : F FBIPENC64 F FBIPENC80

認 識した順番に FBIPENC81 ~FBIPENC256 までのデバイス名が割り当てられます。 RSW1 の値はデバイス名の割り当てとは無関係ですが、各デバイスの識別を行う為に個別に設定を変更しておく必要があります。

初期化が正常終了すると上記の記述例では DeviceHandle にデバイスハンドルが返されます。デバイスハンドルとは、3 モードパルスカウンタを一意に識別するもので、下記以降の関数コールの際に指定します。 複数の 3モードパルスカウンタを使用する場合は、各ボードに対し PencOpen関数をコールし、各デバイスハンドルを取得する必要があります。 別々のプロセスから同一の 3 モードパルスカウンタを初期化(使用)することが可能です。これにより別々のプロセス間で一枚の 3モードパルスカウンタを共有することが可能です。 一枚のボードを複数アプリケーションで共有する場合、カウンタの値、マスク設定等は最後に設定を行った値となります。(アプリケーション毎に設定は保持されません)複数アプリケーションで同時に一枚のボードを制御する場合、ボードの設定等は整合性を保てるようにアプリケーション間で調整を行ってください。 初期化した 3 モードパルスカウンタはアプリケーション終了の際には必ず終了処理( PencClose関数 )を行ってください。

Page 9: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

9

3.2.2 各チャンネルのモード設定・取得 PencSetMode関数にて、カウンタ動作モード、カウンタ方向、一致検出フラグ、ラッチ方法を設定します。 PencSetMode( DeviceHandle, 1, 5, 0, 1, 0 );

(チャンネル 1を位相差パルスカウントモード、2逓倍、非同期クリア、カウンタ方向 UP、一致検出有効、ソフトウェアラッチに設定する例です。)

3.2.3 外部信号によるカウンタクリア条件・カウンタラッチ条件、Z相極性の設定と取得 PencSetZMode関数にて、外部信号によるカウンタクリア条件・カウンタラッチ条件、Z相極性の設定を設定します。 PencSetZMode( DeviceHandle, 1, 0x15 );

(チャンネル 1 を、Z 相論理反転、Z 相のみによるカウンタクリア、ラッチ信号のみによるカウンタラッチに設定する例です。) PencSetMode関数にて外部ラッチを有効にしていないと、外部ラッチ設定は有効になりません。 PencGetZMode関数,で設定されたZ相クリア条件、外部カウンタラッチ条件、 Z相論理を取得することができます。 PencGetZMode( DeviceHandle, 1, &ZMode );

(チャンネル 1の現在の Z相クリア条件、外部カウンタラッチ条件、 Z 相論理を取得します。)

3.2.4 A 相、B相、Z相、Lへのデジタルフィルタの設定と取得 PencSetFilter関数にて、A,B,Z相信号に周波数フィルタを設定します。 Filter = 0x8A; PencSetFilter( DeviceHandle, 1, Filter );

(チャンネル 1の、A相、B相、Z相、Lにフィルタ周期 1000μs のデジタルフィルタを設定する例です。) PencGetFilter関数で設定されたフィルタ周期を取得することができます。 PencGetFilter( DeviceHandle, 1, &Filter );

(チャンネル 1の現在のデジタルフィルタの設定値を取得します。)

3.2.5 カウンタ値の設定、取得 PencSetCounter関数にて、カウンタ値を設定します。 PencSetCounter( DeviceHandle, 1, 0x12345678 );

(チャンネル 1のカウンタ値を、12345678h に設定する例です。) PencGetCounter関数で設定されたカウンタ値を取得することができます。 PencGetCounter( DeviceHandle, 1, &Counter );

(チャンネル 1の現在のカウンタ値を取得します。) PencSetCounterEx関数および PencGetCounterEx関数を使うことにより、 一度に複数のチャンネルのカウンタ値を取得、設定を行うこともできます。

Page 10: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

10

3.2.6 比較カウンタ値の設定、取得 PencSetComparator関数にて、比較カウンタ値を設定します。 PencSetComparator( DeviceHandle, 1, 0x5678ABCD );

(チャンネル 1の比較カウンタ値を、5678ABCDh に設定する例です。) PencGetComparator関数で設定された比較カウンタ値を取得することができます。 PencGetComparator( DeviceHandle, 1, &Comparator );

(チャンネル 1の現在の比較カウンタ値を取得します。)

3.2.7 イベント割り込みの設定 割り込みイベントが発生した時に、登録した関数を実行させることができます。 これをコールバックイベント機能と呼びます。 PencSetEvent関数(PCI/CTP/CPZ-6204 専用)、PencSetEventEx関数にて割り込みイベントが発生した時にコールバックされる関数を登録します。 PencSetEventMask関数にて必要な割り込みイベントのマスクを解除します。 設定したマスク状態は PencGetEventMask関数で取得できます。 割り込みイベントが発生すると、設定した関数がコールされます。 割り込みイベントの処理が必要なくなった場合は、PencSetEventMask関数にて割り込み要因をマスクし、PencKillEvent関数でコールバック関数の登録を解除 します。 PencEventRequestPending関数を使うことにより、コールバック関数を使用せずに、イベント待ち処理を実現することもできます。 ※Visual Basic で 非同期のイベント処理を行うには、BPA-0514「カウンタ用 ActiveX コントロール」 のご使用をお勧めします。 「カウンタ用 ActiveX コントロール」 を使用する事で、簡単にイベント処理を行うことができます。 BPA-0514「カウンタ用 ActiveX コントロール」 は 弊社 Web site よりダウンロードしてご使用ください。

3.2.8 ステータスの取得 PencGetStatus関数にてボードのステータスを取得することができます。 PencGetStatusEx 関数を使うことにより、一度に複数チャンネルのステータスとカウンタ値を得ることもできます。 PencGetResetInStatus関数ではRSTIN信号の入力状態を確認することができます。 ※PencGetResetInStatus関数はRSTIN信号を持つデバイスでのみ使用可能です。

Page 11: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

11

3.2.9 汎用入出力の制御 PencInputDI関数を使用して、汎用入力(INx)の入力状態を確認することができます。 PencOutpuDO関数を使うことで、汎用出力端子(DOx)の出力状態を制御することが可能です。 また、PencSetEventMask関数で必要な割り込みイベントのマスクを解除することで、汎用入力及びリセットイン信号の入力による割り込みを使用することが可能です。 ※汎用入出力の制御は汎用入出力を持つデバイスでのみ使用可能です。

3.2.10 ボードのリセット PencReset関数にてエンコーダボードをリセットすることができます。

3.2.11 インターバルタイマ PencSetTimerConfig関数、PencGetTimerConfig関数、PencGetTimerCount関数を使用してボード上に搭載されたタイマを直接使用することができます。

3.2.12 終了処理 PencClose関数でボードの終了処理を行います。 PencClose( DeviceHandle );

Page 12: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

12

3.3 インタフェースモジュール固有情報 本ソフトウェアは、3モードパルスカウンタインタフェースモジュールに共通なソフトウェアですが、下記に示すインタフェースモジュールについてはインタフェースモジュール固有の使用方法があります。

PCI-361516固有情報 弊社ソルコンCD製品(IUC-x3615x),弊社I/OタッチパネルCDシリーズ(TIO-x3615xx)に搭載されているパルスカウンタの型式です。 使用できる関数に制限があります。 対象型式は、下記のように表示されます。 ・IUC-x3615x, TIO-x3615xx デバイスマネージャでは、「Interface USB-IO Device [ID:3615]」と表示されます。 ユーティリティ上、Help内の説明では「PCI-361516」と表示されます。

下記の関数は使用することはできず、戻り値として PENC_ERROR_NOT_SUPPORTTED が返されます。 ・PencSetCounterEx ・PencGetCounterEx ・PencGetStatusEx ・PencGetResetInStatus ・PencInputDI ・PencOutputDO ・PencSetTimerConfig ・PencGetTimerConfig ・PencGetTimerCount ・PencSetEventEx PCI-362616固有情報 弊社マザコン CD 製品(IMC-T3619x)に搭載されているパルスカウンタの型式です。 対象型式は、下記のように表示されます。 ・IMC-T3619x デバイスマネージャでは、「PCI-362616」と表示されます。

ユーティリティ上、Help 内の説明では「PCI-362616」と表示されます。

Page 13: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

13

第4章 リファレンス

4.1 DLL関数一覧 No 関数名 機能 ●初期化関数 1 PencOpen エンコーダカウンタボードのオープンを行い、以後のボードへのア

クセスを行えるようにします。 2 PencClose エンコーダカウンタボードのクローズを行い、ボードアクセスのた

めに使用されていた各種リソースの解放を行い、以後のボードへのアクセスを禁止します。

3 PencReset 指定されたチャンネルのカウンタをリセットします。 ●ボード設定/取得 4 PencSetMode 3 モードパルスカウンタのモード切り替えを行います。動作モー

ド、カウンタ方向、一致検出フラグの設定、ラッチ方法の設定を行います。

5 PencGetMode 3 モードパルスカウンタの現在の設定状態を取得します。 6 PencSetZMode Z 相の極性、外部信号によるカウンタクリア・ラッチ条件を設定し

ます。 7 PencGetZMode Z 相の極性・外部信号によるカウンタクリア・ラッチ条件を取得し

ます。 8 PencSetFilter デジタルフィルタの設定を行います。 9 PencGetFilter デジタルフィルタの設定を取得します。 10 PencEnableCount 複数チャンネルのカウンタ動作を許可/禁止します。 11 PencSetResetInMask 外部リセット入力信号端子(RSTIN)のマスクを設定します。 12 PencGetResetInMask 外部リセット入力信号端子(RSTIN)のマスク設定を取得します。 ●カウンタ値設定/取得 13 PencSetCounter カウンタプリセット値を設定します。 14 PencGetCounter カウンタ値を取得します。 15 PencSetCounterEx 複数のチャンネルにカウンタプリセット値を設定します。 16 PencGetCounterEx 複数チャンネルのカウンタ値を取得します。 17 PencSetComparator 比較カウンタ値を設定します。 18 PencGetComparator 比較カウンタ値を取得します。 ●ステータス取得、汎用入出力 19 PencGetStatus カウンタのステータスを取得します。 20 PencGetStatusEx 複数チャンネルのカウンタステータスとカウンタ値を取得します。 21 PencGetResetInStatus 外部リセット入力信号端子(RSTIN)の状態を取得します。 22 PencInputDI 汎用入力値を取得します。 23 PencOutputDO 汎用出力を行います。 ●インターバルタイマ設定/取得 24 PencSetTimerConfig インターバルタイマの設定を行います。 25 PencGetTimerConfig インターバルタイマの設定情報を取得します。 26 PencGetTimerCount インターバルタイマのカウント値を取得します。 ●割り込み設定/取得 27 PencSetEventMask イベントマスクを設定します。

Page 14: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

14

28 PencGetEventMask イベントのマスク設定を取得します。 29 PencSetEvent コールバック関数を登録します(PCI/CTP/CPZ-6204 専用)。 30 PencSetEventEx コールバック関数を登録します。 31 PencKillEvent 登録されたコールバック関数を削除します。 32 PencEventRequstPending イベントを待ちます。

Page 15: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

15

4.2 関数個別説明

1. PencOpen 【機能】 3 モードパルスカウンタのオープンを行い、以後のボードへのアクセスを行えるようにします。オープンするにはデバイス名を指定します。 デバイス名は、ボードの RSW1 の設定値によって次のようになります。

PCI-6204 CTP/CPZ-6204

PCI-6205C CTP/CPZ-6205

CBI-631104 CBI/CSI-631204 LPC/PEX-631204

RSW1 デバイス名 RSW1 デバイス名 RSW1 デバイス名 0 FBIPENC1 0 FBIPENC17 0 FBIPENC33 1 FBIPENC2 1 FBIPENC18 1 FBIPENC34 : : : : : : F FBIPENC16 F FBIPENC32 F FBIPENC48

PCI/CTP/CPZ-3601xx PCI/CTP/CPZ-3204xx CBI/CSI-3601xx CBI/CSI-3204xx

PCI-3602xx LPC/PEX-321xxx LPC/PEX-340xxx LPC/PEX-361xxx

RSW1 デバイス名 RSW1 デバイス名 デバイス名 0 FBIPENC49 0 FBIPENC65 1 FBIPENC50 1 FBIPENC66 : : : :

認識した順番に FBIPENC81 ~FBIPENC256までのデバイス名が割り当てられます。 RSW1の値はデバイス名の割り当てとは無関係ですが、各デバイスの識別を行う為に個別に設定を変更しておく必要があります。

※ 同一型番の PCI と CTP は、同一型式として扱われるため、混在させるには、RSW1 の設定値が重ならないように設定する必要があります。例えば、PCI-6204 と CTP-6204 を混在させる場合、RSW1 の設定値が重ならないように設定する必要があります。

【書式】 ●C言語(x86 専用) HANDLE PencOpen ( LPCTSTR DeviceName, DWORD Flag ); ●C 言語(x64 専用) HANDLE PencOpen ( LPCSTR DeviceName, DWORD Flag );

Page 16: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

16

●Visual Basic Declare Function PencOpen Lib "FbiPenc.DLL"( _ ByVal DeviceName As String, _ ByVal Flag As Long _ )As Long

【パラメータ】 DeviceName オープンするデバイス名を指定します。

Flag オープンフラグを指定してください。 指定可能な識別子は下記のものから選択します。

識別子 意味 PENC_FLAG_NORMAL 通常のオープン時に使用するフラグです。これを指定すると重複してオー

プンすることはできません。 PENC_FLAG_SHARE 1 つのデバイスを複数のプロセス(アプリケーション)から重複(共有)して

制御することを許可するフラグです。

【戻り値】 PencOpen 関数が正常に終了した場合には、有効なハンドルが返されます。 他の関数は、本関数により取得したハンドルを使用してデバイスの制御を行います。 オープンに失敗した場合には、INVALID_HANDLE_VALUE(FFFFFFFFh)が返されます。

【備考】 ●PENC_FLAG_SHARE の動作について 本フラグを指定することにより、同じデバイスを 2つ以上のアプリケーションで共有することが可能となります。PENC_FLAG_SHARE を指定せずにオープンされているボードに対して、PENC_FLAG_SHARE を指定したオープンを実行した場合、オープンは失敗します。

PencOpen アプリケーション A

PencOpen アプリケーション B

デバイス “FBIPENC1”

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

Page 17: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

17

●UNICODE 文字列について C 言語(x86 専用)で、PencOpen の引数 DeviceName に指定する文字列は LPCTSTR 型として定義していますが、UNICODE 文字列には対応しておりません。 x86 環境でご使用になる場合、使用例に沿って記述してください。

【使用例】 ●C言語(x86 専用) HANDLE DeviceHandle; DeviceHandle = PencOpen((LPCTSTR)“FBIPENC1”, PENC_FLAG_SHARE ); ●C 言語(x64 専用) HANDLE DeviceHandle; DeviceHandle = PencOpen( “FBIPENC1”, PENC_FLAG_SHARE ); ●Visual Basic Dim DeviceName As String Dim DeviceHandle As Long DeviceName = “FBIPENC1“ & Chr( 0 ) DeviceHandle = PencOpen( DeviceName, PENC_FLAG_SHARE ) デバイス名「FBIPENC1」のデバイスを共有を許可してオープンします。

Page 18: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

18

2. PencClose 【機能】 3 モードパルスカウンタのクローズを行い、ボードアクセスのために使用されていた各種リソースの解放を行い、以後のボードへのアクセスを禁止します。

【書式】 ●C言語 INT PencClose ( HANDLE DeviceHandle ); ●Visual Basic Declare Function PencClose Lib "FbiPenc.DLL"( _ ByVal DeviceHandle As Long _ )As Long

【パラメータ】 DeviceHandle PencOpen関数で取得したデバイスハンドルを指定してください。

【戻り値】 正常終了した場合は、PENC_ERROR_SUCCESSが返されます。 PENC_ERROR_SUCCESS以外の値が返された場合については、『4.4 戻り値一覧』をご参照ください。

【備考】 再度、ボードへのアクセスを行う場合にはオープン処理(PencOpen関数)を呼び出してください。 PencOpen関数でオープンしたボードは、必ず PencClose関数でクローズして下さい。

【使用例】 ●C言語 HANDLE DeviceHandle; DeviceHandle = PencOpen( “FBIPENC1”, PENC_FLAG_SHARE ); PencClose( DeviceHandle ); ●Visual Basic Dim DeviceName As String Dim DeviceHandle As Long DeviceName = “FBIPENC1” & Chr( 0 ) DeviceHandle = PencOpen( DeviceName, PENC_FLAG_SHARE ) PencClose( DeviceHandle ) デバイス名「FBIPENC1」のデバイスのクローズ処理を行います。

Page 19: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

19

3. PencReset 【機能】 指定されたチャンネルのカウンタをリセットします。

【書式】 ●C言語 INT PencReset ( HANDLE DeviceHandle, INT Channel ); ●Visual Basic Declare Function PencReset Lib "FbiPenc.DLL"( _ ByVal DeviceHandle As Long, _ ByVal Channel As Long _ )As Long

【パラメータ】 DeviceHandle PencOpen関数で取得したデバイスハンドルを指定してください。

Channel チャンネルを指定します。

【戻り値】 正常終了した場合は、PENC_ERROR_SUCCESSが返されます。 PENC_ERROR_SUCCESS以外の値が返された場合については、『4.4 戻り値一覧』をご参照ください。

【備考】 PencReset 関数は、指定されたチャンネルのカウンタをリセットしますが、カウンタ値の 0 クリアのみではなく、PencSetMode 関数で設定されたパルスカウンタのモードも初期化するため、デフォルトに戻ります。

【使用例】 ●C言語 INT Ret; HANDLE DeviceHandle; Ret = PencReset( DeviceHandle, 1 ); ●Visual Basic Dim Ret As Long Dim DeviceHandle As Long

Page 20: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

20

Ret = PencReset( DeviceHandle, 1 ) デバイスハンドルDeviceHandleの3モードパルスカウンタのチャンネル1をリセットします。

Page 21: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

21

4. PencSetMode 【機能】 3 モードパルスカウンタのモード切り替えを行います。動作モード、カウンタ方向、一致検出フラグの設定、ラッチ方法の設定を行います。

【書式】 ●C言語 INT PencSetMode ( HANDLE DeviceHandle, INT Channel, INT Mode, INT Direction, INT Equal, INT Latch ); ●Visual Basic Declare Function PencSetMode Lib "FbiPenc.DLL"( _ ByVal DeviceHandle As Long, _ ByVal Channel As Long, _ ByVal Mode As Long, _ ByVal Direction As Long, _ ByVal Equal As Long, _ ByVal Latch As Long _ )As Long

【パラメータ】 DeviceHandle PencOpen関数で取得したデバイスハンドルを指定してください。

Channel チャンネルを指定します。

Page 22: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

22

Mode カウンタ動作モードを指定します。以下のビットアサインにならって設定します。

bit31~bit4 bit3 bit2 bit1 bit0

予約 MD1 MD0 SEL1 SEL0

MD1 MD0 SEL1 SEL0 モード カウント逓倍 クリアモード 0 0 0 0 標 準 0 0 0 1

ゲート付き単相 パルスモード 2 逓倍

非同期クリア

0 1 0 0 標 準 0 1 0 1 2 逓倍 0 1 1 0 4 逓倍

非同期クリア

1 1 0 0 標 準 1 1 0 1 2 逓倍 1 1 1 0

位相差パルス カウントモード

4 逓倍

同期クリア

1 0 0 0 アップ・ダウンパルス カウントモード

標 準 非同期クリア

Direction

カウンタ方向を指定します。 値 意味 0 カウンタ UP 1 カウンタ DOWN

Equal 一致検出を行うかどうか指定します

値 意味 0 一致検出を行わない 1 一致検出を行う

Latch ラッチ方法を指定します。 Latchの設定により、PencGetCounter関数、PencGetCounterEx関数、PencGetStatusEx関数 実行時に得られるカウンタの値は、次のように変化します。 値 意味 0 ソフトウェアラッチ

関数を実行したとき読み出しレジスタにカウンタ値が転送されます。 1 外部ラッチ

カウンタの値は、外部ラッチ信号が入力されたときに読み出しレジスタに転送されていますので、最後に外部ラッチが入力されたときのカウンタの値が読み出せます。 PencSetZMode関数にて、外部ラッチ方法を設定してください。

Page 23: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

23

【戻り値】 正常終了した場合は、PENC_ERROR_SUCCESSが返されます。 PENC_ERROR_SUCCESS以外の値が返された場合については、『4.4 戻り値一覧』をご参照ください。

【使用例】 ●C言語 INT Ret; HANDLE DeviceHandle; Ret = PencSetMode( DeviceHandle, 1, 5, 0, 1, 0 ); ●Visual Basic Dim Ret As Long Dim DeviceHandle As Long Ret = PencSetMode( DeviceHandle, 1, 5, 0, 1, 0 ) デバイスハンドル DeviceHandle の 3 モードパルスカウンタのチャンネル 1 を位相差パルスカウントモード、2逓倍、非同期クリア、カウンタ方向 UP、一致検出有効、ソフトウェアラッチに設定します。

Page 24: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

24

5. PencGetMode 【機能】 3 モードパルスカウンタの現在の設定状態を取得します。

【書式】 ●C言語 INT PencGetMode( HANDLE DeviceHandle, INT Channel, PINT Mode, PINT Direction, PINT Equal, PINT Latch ); ●Visual Basic Declare Function PencGetMode Lib "FbiPenc.DLL"( _ ByVal DeviceHandle As Long, _ ByVal Channel As Long, _ ByRef Mode As Long, _ ByRef Direction As Long, _ ByRef Equal As Long, _ ByRef Latch As Long _ )As Long

【パラメータ】 DeviceHandle PencOpen関数で取得したデバイスハンドルを指定してください。

Channel チャンネルを指定します。

Page 25: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

25

Mode カウンタ動作モードを格納する変数へのポインタ(参照渡し)を指定します。

bit31~bit4 bit3 bit2 bit1 bit0

予約 MD1 MD0 SEL1 SEL0

MD1 MD0 SEL1 SEL0 モード カウント逓倍 クリアモード 0 0 0 0 標 準 0 0 0 1

ゲート付き単相 パルスモード 2 逓倍

非同期クリア

0 1 0 0 標 準 0 1 0 1 2 逓倍 0 1 1 0 4 逓倍

非同期クリア

1 1 0 0 標 準 1 1 0 1 2 逓倍 1 1 1 0

位相差パルス カウントモード

4 逓倍

同期クリア

1 0 0 0 アップ・ダウンパルス カウントモード

標 準 非同期クリア

Direction

カウンタ方向を格納する変数へのポインタ(参照渡し)を指定します。 値 意味 0 カウンタ UP 1 カウンタ DOWN

Equal 一致検出指定を格納する変数へのポインタ(参照渡し)を指定します。

値 意味 0 一致検出を行わない 1 一致検出を行う

Latch ラッチ設定値を格納する変数へのポインタ(参照渡し)を指定します。 値 意味 0 ソフトウェアラッチ

関数を実行したとき読み出しレジスタにカウンタ値が転送されます。 1 外部ラッチ

カウンタの値は、外部ラッチ信号が入力されたときに読み出しレジスタに転送されていますので、最後に外部ラッチが入力されたときのカウンタの値が読み出せます。 PencSetZMode関数にて、外部ラッチ方法を設定してください。

【戻り値】 正常終了した場合は、PENC_ERROR_SUCCESSが返されます。 PENC_ERROR_SUCCESS以外の値が返された場合については、『4.4 戻り値一覧』をご参照ください。

Page 26: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

26

【使用例】 ●C言語 INT Ret; HANDLE DeviceHandle; INT Mode, Direction, Equal, Latch; Ret = PencGetMode( DeviceHandle, 1, &Mode, &Direction, &Equal, &Latch ); ●Visual Basic Dim Ret As Long Dim DeviceHandle As Long Dim Mode, Direction, Equal, Latch As Long Ret = PencGetMode( DeviceHandle, 1, Mode, Direction, Equal, Latch ) デバイスハンドル DeviceHandle の 3 モードパルスカウンタのチャンネル 1 から現在のモードを取得します。

Page 27: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

27

6. PencSetZMode 【機能】 Z 相の極性、外部信号によるカウンタクリア・ラッチ条件を設定します。

【書式】 ●C言語 INT PencSetZMode ( HANDLE DeviceHandle, INT Channel, INT ZMode ); ●Visual Basic Declare Function PencSetZMode Lib "FbiPenc.DLL"( _ ByVal DeviceHandle As Long, _ ByVal Channel As Long, _ ByVal ZMode As Long _ )As Long

【パラメータ】 DeviceHandle PencOpen関数で取得したデバイスハンドルを指定してください。

Channel チャンネルを指定します。

Page 28: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

28

ZMode Z 相の極性・外部信号によるカウンタクリア・ラッチ条件を指定します。

bit31~bit6 bit5 bit4 bit3 bit2 bit1 bit0 予約 LP ZP LIS1 LTS0 CLS1 CLS0

CLS:外部信号によるカウンタクリア条件 CLS1 CLS0 内容 0 0 外部信号によるカウンタのクリアを行わない 0 1 Z 相のみでカウンタをクリアする 1 0 ラッチ信号と Z相が有効の時、カウンタをクリアする 1 1 設定禁止

LTS:外部信号によるカウンタラッチ条件 (このビットを有効にするには PencSetMode関数でラッチ設定を 1[外部ラッチ有効]にしてください) LTS1 LTS0 内容 0 0 外部信号によるカウンタのラッチを行わない 0 1 ラッチ信号のみでカウンタをラッチする 1 0 ラッチ信号と Z相が有効の時、カウンタをラッチする 1 1 設定禁止

ZP:Z 相極性設定 ZP 内容 0 Z 相通常(”High”で有効) 1 Z 相反転(”Low”で有効)

LP:L 信号の極性設定(PCI-6204、CTP/CPZ-6204 は対応していません) LP 内容 0 L の立ち下がりを有効(↓)(”Low”で有効) 1 L の立ち上がりを有効(↑)(”High”で有効)

【戻り値】 正常終了した場合は、PENC_ERROR_SUCCESSが返されます。 PENC_ERROR_SUCCESS以外の値が返された場合については、『4.4 戻り値一覧』をご参照ください。

【使用例】 ●C言語 int Ret; HANDLE DeviceHandle; Ret = PencSetZMode( DeviceHandle, 1, 0x15 );

Page 29: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

29

●Visual Basic Dim Ret As Long Dim DeviceHandle As Long Ret = PencSetZMode( DeviceHandle, 1, &h15 ) デバイスハンドル DeviceHandle の 3 モードパルスカウンタのチャンネル 1を、Z 相論理反転、ラッチ信号のみでカウンタをラッチ、Z相のみでカウンタをクリアします。

Page 30: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

30

7. PencGetZMode 【機能】 Z 相の極性、外部信号によるカウンタクリア・ラッチ条件を取得します。

【書式】 ●C言語 INT PencGetZMode ( HANDLE DeviceHandle, INT Channel, PINT Mode ); ●Visual Basic Declare Function PencGetZMode Lib "FbiPenc.DLL"( _ ByVal DeviceHandle As Long, _ ByVal Channel As Long, _ ByRef Mode As Long _ )As Long

【パラメータ】 DeviceHandle PencOpen関数で取得したデバイスハンドルを指定してください。

Channel チャンネルを指定します。

Page 31: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

31

ZMode Z 相の極性・外部信号によるカウンタクリア・ラッチ条件を格納する変数へのポインタ(参照渡し)を指定します。

bit31~bit6 bit5 bit4 bit3 bit2 bit1 bit0 予約 LP ZP LIS1 LTS0 CLS1 CLS0

CLS:外部信号によるカウンタクリア条件 CLS1 CLS0 内容 0 0 外部信号によるカウンタのクリアを行わない 0 1 Z 相のみでカウンタをクリアする 1 0 ラッチ信号と Z相が有効の時、カウンタをクリアする 1 1 設定禁止

LTS:外部信号によるカウンタラッチ条件 (このビットを有効にするにはPencSetZMode関数でラッチ設定を1[外部ラッチ有効]にしてください) LTS1 LTS0 内容 0 0 外部信号によるカウンタのラッチを行わない 0 1 ラッチ信号のみでカウンタをラッチする 1 0 ラッチ信号と Z相が有効の時、カウンタをラッチする 1 1 設定禁止

ZP:Z 相極性設定 ZP 内容 0 Z 相通常(”High”で有効) 1 Z 相反転(”Low”で有効)

LP:L 信号の極性設定(PCI-6204、CTP/CPZ-6204 は対応していません) LP 内容 0 L の立ち下がりを有効(↓)(”Low”で有効) 1 L の立ち上がりを有効(↑)(”High”で有効)

【戻り値】 正常終了した場合は、PENC_ERROR_SUCCESSが返されます。 PENC_ERROR_SUCCESS以外の値が返された場合については、『4.4 戻り値一覧』をご参照ください。

【使用例】 ●C言語 INT Ret; HANDLE DeviceHandle; INT ZMode; Ret = PencGetZMode( DeviceHandle, 1, &ZMode );

Page 32: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

32

●Visual Basic Dim Ret As Long Dim DeviceHandle As Long Dim ZMode As Long Ret = PencGetZMode( DeviceHandle, 1, ZMode ) デバイスハンドル DeviceHandle の 3 モードパルスカウンタのチャンネル 1 の Z 相の極性・外部カウンタクリア・ラッチ条件を取得します。

Page 33: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

33

8. PencSetFilter 【機能】 デジタルフィルタの設定を行います。 ※PCI-6204、PCI-6205C、CTP/CPZ-6204、CTP/CPZ-6205 では、本関数は実行できません。

【書式】 ●C言語 INT PencSetFilter ( HANDLE DeviceHandle, INT Channel, INT Filter ); ●Visual Basic Declare Function PencSetFilter Lib "FbiPenc.DLL"( _ ByVal DeviceHandle As Long, _ ByVal Channel As Long, _ ByVal Filter As Long _ )As Long

【パラメータ】 DeviceHandle PencOpen関数で取得したデバイスハンドルを指定してください。

Channel チャンネルを指定します。 (指定したチャンネルの A相、B相、Z相、Lにデジタルフィルタが設定されます。) CBI-631104, CBI/CSI-631204, LPC/PEX-631204 では汎用入力端子(IN1~IN16)にもデジタルフィルタを設定可能です。 汎用入力端子にデジタルフィルタを設定する際には、下記の識別子で接点を指定します。 PENC_IN1_8 : IN1~IN8 の 8 点にデジタルフィルタを設定します。 PENC_IN9_16 : IN9~IN16 の 8 点にデジタルフィルタを設定します

Page 34: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

34

Filter デジタルフィルタ設定値を指定します。 bit31~bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

0 CLK1 CLK0 0 CNT4 CNT3 CNT2 CNT1 CNT0 CNT0~CNT4 : デジタルフィルタの分周値が取得されます。 CLK0、CLK1 : デジタルフィルタの基準クロックが取得されます。

0 1 CLK1 CNT4~CNT0 0 1 0 1 CLK0

0 停止 停止 停止 - 1 1μs 10μs 100μs - : : : : - 31 31μs 310μs 3100μs -

【戻り値】 正常終了した場合は、PENC_ERROR_SUCCESSが返されます。 PENC_ERROR_SUCCESS以外の値が返された場合については、『4.4 戻り値一覧』をご参照ください。

【使用例】 ●C言語 INT Ret; HANDLE DeviceHandle; Ret = PencSetFilter( DeviceHandle, 1, 0x8A ); Ret = PencSetFilter( DeviceHandle, PENC_IN1_8, 0x8A ); ●Visual Basic Dim Ret As Long Dim DeviceHandle As Long Ret = PencSetFilter( DeviceHandle, 1, &H8A ) Ret = PencSetFilter( DeviceHandle, PENC_IN1_8, &H8A ) デバイスハンドル DeviceHandle の 3 モードパルスカウンタの、チャンネル 1の A 相、B 相、Z相、Lと、IN1~IN8 にフィルタ周期 1ms のデジタルフィルタを設定します。

Page 35: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

35

9. PencGetFilter 【機能】 デジタルフィルタの設定値を取得します。 ※PCI-6204、PCI-6205C、CTP/CPZ-6204、CTP/CPZ-6205 では、本関数は実行できません。

【書式】 ●C言語 INT PencGetFilter( HANDLE DeviceHandle, INT Channel, PINT Filter ); ●Visual Basic Declare Function PencGetFilter Lib "FbiPenc.DLL"( _ ByVal DeviceHandle As Long, _ ByVal Channel As Long, _ ByRef Filter As Long _ )As Long

【パラメータ】 DeviceHandle PencOpen関数で取得したデバイスハンドルを指定してください。

Channel チャンネルを指定します。 CBI-631104, CBI/CSI-631204, LPC/PEX-631204 では汎用入力端子(IN1~IN16)のデジタルフィルタ設定を取得可能です。 汎用入力端子のデジタルフィルタ設定を取得する際には、下記の識別子で接点を指定します。 PENC_IN1_8 : IN1~IN8 の 8 点のデジタルフィルタ設定を取得します。 PENC_IN9_16 : IN9~IN16 の 8 点のデジタルフィルタ設定を取得します

Page 36: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

36

Filter デジタルフィルタ設定値を取得する変数へのポインタ(参照渡し)を指定します。 bit31~bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

0 CLK1 CLK0 0 CNT4 CNT3 CNT2 CNT1 CNT0 CNT0~CNT4 : デジタルフィルタの分周値が取得されます。 CLK0、CLK1 : デジタルフィルタの基準クロックが取得されます。

0 1 CLK1 CNT4~CNT0 0 1 0 1 CLK0

0 停止 停止 停止 - 1 1μs 10μs 100μs - : : : : - 31 31μs 310μs 3100μs -

【戻り値】 正常終了した場合は、PENC_ERROR_SUCCESSが返されます。 PENC_ERROR_SUCCESS以外の値が返された場合については、『4.4 戻り値一覧』をご参照ください。

【使用例】 ●C言語 int Ret; uint DeviceHandle; int Filter; Ret = PencGetFilter( DeviceHandle, 3, &Filter ); ●Visual Basic Dim Ret As Long Dim DeviceHandle As Long Dim Filter As Long Ret = PencGetFilter( DeviceHandle, 3, Filter ) デバイスハンドル DeviceHandle の 3 モードパルスカウンタのチャンネル 3 のデジタルフィルタ設定値を取得します。

Page 37: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

37

10. PencEnableCount 【機能】 複数チャンネルのカウンタ動作を許可/禁止します。

【書式】 ●C言語 INT PencEnableCount( HANDLE DeviceHandle, INT ChSel, INT Enable ); ●Visual Basic Declare Function PencEnableCount Lib "FbiPenc.DLL"( _ ByVal DeviceHandle As Long, _ ByVal ChSel As Long, _ ByVal Enable As Long _ )As Long

【パラメータ】 DeviceHandle PencOpen関数で取得したデバイスハンドルを指定してください。

ChSel カウント許可/禁止設定を行うチャンネルを指定します。 ChSel の形式は、次のとおりです。 bit31~8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 0 CH8 CH7 CH6 CH5 CH4 CH3 CH2 CH1

CH1~CH8:'1'を指定すると、該当するチャンネルのカウンタを、Enable に従い、カウント動作を決定します。

Enable カウント動作を指定します。 Enable 内容 0 ChSel で指定されたチャンネルはカウント禁止状態になります。 1 ChSel で指定されたチャンネルは、カウント許可状態になります。

Page 38: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

38

【戻り値】 正常終了した場合は、PENC_ERROR_SUCCESSが返されます。 PENC_ERROR_SUCCESS以外の値が返された場合については、『4.4 戻り値一覧』をご参照ください。

【使用例】 ●C言語 INT Ret; HANDLE DeviceHandle; Ret = PencEnableCount( DeviceHandle, 0x0D, 1 ); ●Visual Basic Dim Ret As Long Dim DeviceHandle As Long Ret = PencEnableCount( DeviceHandle, &hD, 1 ) デバイスハンドル DeviceHandle の 3 モードパルスカウンタのチャンネル 1、3、4 を、カウント許可状態に設定します。

Page 39: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

39

11. PencSetResetInMask 【機能】 外部リセット入力信号のマスクを設定します。

【書式】 ●C言語 INT PencSetResetInMask ( HANDLE DeviceHandle, BYTE ResetInMask ); ●Visual Basic Declare Function PencSetResetInMask Lib "FbiPenc.DLL"( _ ByVal DeviceHandle As Long, _ ByVal ResetInmask As Byte _ )As Long

【パラメータ】 DeviceHandle PencOpen関数で取得したデバイスハンドルを指定してください。

ResetInMask 外部リセット信号入力のマスク設定を指定します。 0 = リセット入力無効(マスク) 1 = リセット入力有効(アンマスク)

【戻り値】 正常終了した場合は、PENC_ERROR_SUCCESSが返されます。 PENC_ERROR_SUCCESS以外の値が返された場合については、『4.4 戻り値一覧』をご参照ください。

【備考】 外部リセット信号入力のマスク設定は CBI-631104, CBI/CSI-631204, LPC/PEX-631204 でのみ実行可能です。

Page 40: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

40

【使用例】 ●C言語 INT Ret; HANDLE DeviceHandle; Ret = PencSetResetInMask( DeviceHandle, 1 ); ●Visual Basic Dim Ret As Long Dim DeviceHandle As Long Ret = PencSetResetInMask( DeviceHandle, 1 ) デバイスハンドル DeviceHandle の 3 モードパルスカウンタの外部リセット入力信号マスクを有効(アンマスク)に設定します。

Page 41: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

41

12. PencGetResetInMask 【機能】 外部リセット入力信号のマスク設定を取得します。

【書式】 ●C言語 INT PencGetResetInMask ( HANDLE DeviceHandle, PBYTE ResetInMask ); ●Visual Basic Declare Function PencGetResetInMask Lib "FbiPenc.DLL"( _ ByVal DeviceHandle As Long, _ ByRef ResetInMask As Byte _ )As Long

【パラメータ】 DeviceHandle PencOpen関数で取得したデバイスハンドルを指定してください。

ResetInMask 外部リセット入力信号のマスク設定を格納する変数へのポインタ(参照渡し)を指定します。 0 = リセット入力無効(マスク) 1 = リセット入力有効(アンマスク)

【戻り値】 正常終了した場合は、PENC_ERROR_SUCCESSが返されます。 PENC_ERROR_SUCCESS以外の値が返された場合については、『4.4 戻り値一覧』をご参照ください。

【備考】 外部リセット信号入力のマスク設定は CBI-631104, CBI/CSI-631204, LPC/PEX-631204 でのみ実行可能です。

Page 42: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

42

【使用例】 ●C言語 INT Ret; HANDLE DeviceHandle; BYTE ResetInMask; Ret = PencGetResetInMask( DeviceHandle, &ResetInMask ); ●Visual Basic Dim Ret As Long Dim DeviceHandle As Long Dim ResetInMask As Byte Ret = PencGetResetInMask( DeviceHandle, ResetInMask ) デバイスハンドル DeviceHandle の 3 モードパルスカウンタの外部リセット入力信号のマスク設定を変数 ResetInMask に取得します。

Page 43: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

43

13. PencSetCounter 【機能】 カウンタプリセット値を設定します。

【書式】 ●C言語 INT PencSetCounter ( HANDLE DeviceHandle, INT Channel, DWORD Counter ); ●Visual Basic Declare Function PencSetCounter Lib "FbiPenc.DLL"( _ ByVal DeviceHandle As Long, _ ByVal Channel As Long, _ ByVal Counter As Long _ )As Long

【パラメータ】 DeviceHandle PencOpen関数で取得したデバイスハンドルを指定してください。

Channel チャンネルを指定します。

Counter カウンタプリセット値を指定します。 32 ビット値(0~FFFFFFFFh)で指定してください。 (PCI-6205C, CTP/CPZ-6205 の場合は 24 ビット値(0~FFFFFFh))

【戻り値】 正常終了した場合は、PENC_ERROR_SUCCESSが返されます。 PENC_ERROR_SUCCESS以外の値が返された場合については、『4.4 戻り値一覧』をご参照ください。

Page 44: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

44

【使用例】 ●C言語 INT Ret; HANDLE DeviceHandle; Ret = PencSetCounter( DeviceHandle, 1, 0x12345678 ); ●Visual Basic Dim Ret As Long Dim DeviceHandle As Long Ret = PencSetCounter( DeviceHandle, 1, &h12345678 ) デバイスハンドル DeviceHandle の 3 モードパルスカウンタのチャンネル 1 のカウンタ値を12345678h に設定します。

Page 45: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

45

14. PencGetCounter 【機能】 カウンタ値を取得します。

【書式】 ●C言語 INT PencGetCounter ( HANDLE DeviceHandle, INT Channel, PDWORD Counter ); ●Visual Basic Declare Function PencGetCounter Lib "FbiPenc.DLL"( _ ByVal DeviceHandle As Long, _ ByVal Channel As Long, _ ByRef Counter As Long _ )As Long

【パラメータ】 DeviceHandle PencOpen関数で取得したデバイスハンドルを指定してください。

Channel チャンネルを指定します。

Counter 取得したカウンタ値を格納する変数へのポインタ(参照渡し)を指定します。

【戻り値】 正常終了した場合は、PENC_ERROR_SUCCESSが返されます。 PENC_ERROR_SUCCESS以外の値が返された場合については、『4.4 戻り値一覧』をご参照ください。

Page 46: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

46

【使用例】 ●C言語 INT Ret; HANDLE DeviceHandle; DWORD Counter; Ret = PencGetCounter( DeviceHandle, 1, &Counter ); ●Visual Basic Dim Ret As Long Dim DeviceHandle As Long Dim Counter As Long Ret = PencGetCounter( DeviceHandle, 1, Counter ) デバイスハンドル DeviceHandle の 3 モードパルスカウンタのチャンネル 1 から Counter にカウンタ値を読み出します。

Page 47: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

47

15. PencSetCounterEx 【機能】 複数のチャンネルにカウンタプリセット値を設定します。

【書式】 ●C言語 INT PencSetCounterEx ( HANDLE DeviceHandle, INT ChSel, PDWORD Counter ); ●Visual Basic Declare Function PencSetCounterEx Lib "FbiPenc.DLL"( _ ByVal DeviceHandle As Long, _ ByVal ChSel As Long, _ ByRef Counter As Long _ )As Long

【パラメータ】 DeviceHandle PencOpen関数で取得したデバイスハンドルを指定してください。

Chsel カウンタプリセット値を設定するチャンネルを指定します。 ChSel の形式は、次のとおりです。 bit31~8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 0 CH8 CH7 CH6 CH5 CH4 CH3 CH2 CH1

CH1~CH8:'1'を指定すると、該当するチャンネルのカウンタに、プリセット値を設定します。

Counter カウンタプリセット値を格納している配列のポインタ(参照渡し)を指定します。 Counterには、必ず8個以上の要素を持つ配列のポインタ(参照渡し)を指定してください。 配列には次のように値を格納して下さい。 配列のインデックス 内容

0 チャンネル 1のカウンタ値 1 チャンネル 2のカウンタ値 2 チャンネル 3のカウンタ値 3 チャンネル 4のカウンタ値 4 チャンネル 5のカウンタ値 5 チャンネル 6のカウンタ値 6 チャンネル 7のカウンタ値 7 チャンネル 8のカウンタ値

各チャンネルのカウンタ値は 32 ビット値(0~FFFFFFFFh)で指定してください。

Page 48: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

48

(PCI-6205C, CTP/CPZ-6205 の場合は 24 ビット値(0~FFFFFFh))

【戻り値】 正常終了した場合は、PENC_ERROR_SUCCESSが返されます。 PENC_ERROR_SUCCESS以外の値が返された場合については、『4.4 戻り値一覧』をご参照ください。

【使用例】 ●C言語 INT Ret; HANDLE DeviceHandle; DWORD Counter[8]; Counter[0] = 100; Counter[2] = 200; Counter[3] = 300; Ret = PencSetCounterEx( DeviceHandle, 0x0D, Counter ); ●Visual Basic Dim Ret As Long Dim DeviceHandle As Long Dim Counter(8) As Long Counter(0) = 100 Counter(2) = 200 Counter(3) = 300 Ret = PencSetCounterEx( DeviceHandle, &hD, Counter(0) ) デバイスハンドル DeviceHandle の 3 モードパルスカウンタのチャンネル 1、3、4 のカウンタへ、それぞれ 100、200、300 をセットします。

Page 49: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

49

16. PencGetCounterEx 【機能】 複数チャンネルのカウンタ値を取得します。

【書式】 ●C言語 INT PencGetCounterEx ( HANDLE DeviceHandle, INT ChSel, PDWORD Counter ); ●Visual Basic Declare Function PencGetCounterEx Lib "FbiPenc.DLL"( _ ByVal DeviceHandle As Long, _ ByVal ChSel As Long, _ ByRef Counter As Long _ )As Long

【パラメータ】 DeviceHandle PencOpen関数で取得したデバイスハンドルを指定してください。

ChSel カウンタプリセット値を設定するチャンネルを指定します。 ChSel の形式は、次のとおりです。 bit31~8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 0 CH8 CH7 CH6 CH5 CH4 CH3 CH2 CH1

CH1~CH8:'1'を指定すると、該当するチャンネルのカウンタ値を取得します。 Counter 取得したカウンタ値を格納する配列のポインタ(参照渡し)を指定します。 Counter には、必ず 8個以上の要素を持つ配列のポインタ(参照渡し)を指定してください。 配列には次のように値が格納されます。

配列のインデックス 内容 0 チャンネル 1のカウンタ値 1 チャンネル 2のカウンタ値 2 チャンネル 3のカウンタ値 3 チャンネル 4のカウンタ値 4 チャンネル 5のカウンタ値 5 チャンネル 6のカウンタ値 6 チャンネル 7のカウンタ値 7 チャンネル 8のカウンタ値

Page 50: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

50

【戻り値】 正常終了した場合は、PENC_ERROR_SUCCESSが返されます。 PENC_ERROR_SUCCESS以外の値が返された場合については、『4.4 戻り値一覧』をご参照ください。

【使用例】 ●C言語 INT Ret; HANDLE DeviceHandle; DWORD Counter[8]; Ret = PencGetCounterEx( DeviceHandle, 0x0D, Counter ); ●Visual Basic Dim Ret As Long Dim DeviceHandle As Long Dim Counter(8) As Long Ret = PencGetCounterEx( DeviceHandle, &hD, Counter(0) ) デバイスハンドル DeviceHandle の 3 モードパルスカウンタのチャンネル 1、3、4 のカウンタ値を取得します。

Page 51: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

51

17. PencSetComparator 【機能】 比較カウンタ値を設定します。

【書式】 ●C言語 INT PencSetComparator ( HANDLE DeviceHandle, INT Channel, DWORD Comparator ); ●Visual Basic Declare Function PencSetComparator Lib "FbiPenc.DLL"( _ ByVal DeviceHandle As Long, _ ByVal Channel As Long, _ ByVal Comparator As Long _ )As Long

【パラメータ】 DeviceHandle PencOpen関数で取得したデバイスハンドルを指定してください。

Channel チャンネルを指定します。

Counter 設定する比較カウンタ値を指定します。 各チャンネルのカウンタ値は 32 ビット値(0~FFFFFFFFh)で指定してください。 (PCI-6205C, CTP/CPZ-6205 の場合は 24 ビット値(0~FFFFFFh))

【戻り値】 正常終了した場合は、PENC_ERROR_SUCCESSが返されます。 PENC_ERROR_SUCCESS以外の値が返された場合については、『4.4 戻り値一覧』をご参照ください。

Page 52: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

52

【使用例】 ●C言語 INT Ret; HANDLE DeviceHandle; Ret = PencSetComparator( DeviceHandle, 1, 0x5678ABCD ); ●Visual Basic Dim Ret As Long Dim DeviceHandle As Long Ret = PencSetComparator( DeviceHandle, 1, &H5678ABCD ) デバイスハンドル DeviceHandle の 3 モードパルスカウンタのチャンネル 1 に比較カウンタ値 5678ABCDh を設定します。

Page 53: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

53

18. PencGetComparator 【機能】 比較カウンタ値を取得します。

【書式】 ●C言語 INT PencGetComparator ( HANDLE DeviceHandle, INT Channel, PDWORD Comparator ); ●Visual Basic Declare Function PencGetComparator Lib "FbiPenc.DLL"( _ ByVal DeviceHandle As Long, _ ByVal Channel As Long, _ ByRef Comparator As Long _ )As Long

【パラメータ】 DeviceHandle PencOpen関数で取得したデバイスハンドルを指定してください。

Channel チャンネルを指定します。

Comparator 取得した比較カウンタ値を格納する変数へのポインタ(参照渡し)を指定します。

【戻り値】 正常終了した場合は、PENC_ERROR_SUCCESSが返されます。 PENC_ERROR_SUCCESS以外の値が返された場合については、『4.4 戻り値一覧』をご参照ください。

Page 54: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

54

【使用例】 ●C言語 INT Ret; HANDLE DeviceHandle; DWORD Comparator; Ret = PencGetComparator( DeviceHandle, 1, &Comparator ); ●Visual Basic Dim Ret As Long Dim DeviceHandle As Long Dim Comparator As Long Ret = PencGetComparator( DeviceHandle, 1, Comparator) デバイスハンドル DeviceHandle の 3 モードパルスカウンタのチャンネル 1 の比較カウンタ値を取得します。

Page 55: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

55

19. PencGetStatus 【機能】 カウンタのステータスを取得します。

【書式】 ●C言語 INT PencGetStatus ( HANDLE DeviceHandle, INT Channel, PINT Status ); ●Visual Basic Declare Function PencGetStatus Lib "FbiPenc.DLL"( _ ByVal DeviceHandle As Long, _ ByVal Channel As Long, _ ByRef Status As Long _ )As Long

【パラメータ】 DeviceHandle PencOpen関数で取得したデバイスハンドルを指定してください。

Channel チャンネルを指定します。

Status カウンタステータスを格納する変数へのポインタ(参照渡し)を指定します。

bit32~13 bit12 bit11 bit10 bit9 bit8 - PERR EQF EXLTS EQ CBF

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 - - L3 L2 L1 Z B A

ステータス 内容

A A 相の状態('1':Low '0':High) B B 相の状態('1':Low '0':High) Z Z 相の状態('1':Low '0':High) L1 L1 入力状態('1':Low '0':High) L2 L2(PCI/CTP/CPZ-6204 のみ) 入力状態('1':Low '0':High) L3 L3(PCI/CTP/CPZ-6204 のみ) 入力状態('1':Low '0':High) CBF キャリー/ボロー('1':あり '0':なし) EQ 一致状態ステータス('1':一致 '0':不一致)

カウンタと比較カウンタの値が一致している間'1'になります。 EXLTS 外部ラッチ('1':発生 '0':未発生)

Page 56: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

56

EQF 一致検出('1':一致 '0':不一致)

カウンタと、比較カウンタが一致すると、ステータスを読み出すまで'1'を保持します。

PERR 異常パルス入力('1':あり '0':なし) 位相差パルスカウントモード時のみ有効

ステータスを読み出した後 CBF、EQ、EXLTS、PERR は 0 クリアされます。 【戻り値】 正常終了した場合は、PENC_ERROR_SUCCESSが返されます。 PENC_ERROR_SUCCESS以外の値が返された場合については、『4.4 戻り値一覧』をご参照ください。

【使用例】 ●C言語 INT Ret; HANDLE DeviceHandle; INT Status; Ret = PencGetStatus( DeviceHandle, 1, &Status ); ●Visual Basic Dim Ret As Long Dim DeviceHandle As Long Dim Status As Long Ret = PencGetStatus( DeviceHandle, 1, Status ) デバイスハンドル DeviceHandle の 3 モードパルスカウンタのチャンネル 1 からカウンタステータスを取得します。

Page 57: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

57

20. PencGetStatusEx 【機能】 複数チャンネルのカウンタステータスとカウンタを取得します。

【書式】 ●C言語 INT PencGetStatusEx ( HANDLE DeviceHandle, INT Channel, PDWORD Counter, PINT Status ); ●Visual Basic Declare Function PencGetStatusEx Lib "FbiPenc.DLL"( _ ByVal DeviceHandle As Long, _ ByVal Channel As Long, _ ByRef Counter As Long, _ ByRef Status As Long _ )As Long

【パラメータ】 DeviceHandle PencOpen関数で取得したデバイスハンドルを指定してください。

ChSel カウンタとステータスを得るチャンネルを指定します。 ChSel の形式は、次のとおりです。 bit31~8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 0 CH8 CH7 CH6 CH5 CH4 CH3 CH2 CH1

CH1~CH8:'1'を指定すると、該当するチャンネルのカウンタとステータスをそれぞれ返します

Counter カウンタ値を格納する配列のポインタ(参照渡し)を指定します。

Page 58: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

58

Status カウンタステータスを格納する配列のポインタ(参照渡し)を指定します。

bit32~13 bit12 bit11 bit10 bit9 bit8 - PERR EQF EXLTS EQ CBF

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 - - L3 L2 L1 Z B A

各ステータス、0:無効、1:有効 ステータス 内容

A A 相の状態('1':Low '0':High) B B 相の状態('1':Low '0':High) Z Z 相の状態('1':Low '0':High) L1 L1 入力状態('1':Low '0':High) L2 L2(PCI-6204,CTP-6204 のみ) 入力状態('1':Low '0':High) L3 L3(PCI-6204,CTP-6204 のみ) 入力状態('1':Low '0':High) CBF キャリー/ボロー('1':あり '0':なし) EQ 一致状態ステータス('1':一致 '0':不一致)

カウンタと比較カウンタの値が一致している間'1'になります。 EXLTS 外部ラッチ('1':発生 '0':未発生) EQF 一致検出('1':一致 '0':不一致)

カウンタと、比較カウンタが一致すると、ステータスを読み出すまで'1'を保持します。

PERR 異常パルス入力('1':あり '0':なし) 位相差パルスカウントモード時のみ有効

ステータスを読み出した後 CBF、EQ、EXLTS、PERR は 0 クリアされます。 Counter、Status には、必ず 8 個以上の要素を持つ配列のポインタ(参照渡し)を指定してください。 配列には次のように値が格納されます。

配列のインデックス 内容 0 チャンネル 1のカウンタ値 1 チャンネル 2のカウンタ値 2 チャンネル 3のカウンタ値 3 チャンネル 4のカウンタ値 4 チャンネル 5のカウンタ値 5 チャンネル 6のカウンタ値 6 チャンネル 7のカウンタ値 7 チャンネル 8のカウンタ値

【戻り値】 正常終了した場合は、PENC_ERROR_SUCCESSが返されます。 PENC_ERROR_SUCCESS以外の値が返された場合については、『4.4 戻り値一覧』をご参照ください。

Page 59: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

59

【使用例】 ●C言語 INT Ret; HANDLE DeviceHandle; DWORD Counter[8]; INT Status[8]; Ret = PencGetStatusEx( DeviceHandle, 0x05, Counter, Status ); ●Visual Basic Dim Ret As Long Dim DeviceHandle As Long Dim Counter(8) As Long Dim Status(8) As Long Ret = PencGetStatusEx( DeviceHandle, &h5, Counter(0), Status(0) ) デバイスハンドル DeviceHandle の 3 モードパルスカウンタの、チャンネル 1、3のカウンタ値とステータス値を取得します。

Page 60: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

60

21. PencGetResetInStatus 【機能】 外部リセット入力信号の状態を取得します。

【書式】 ●C言語 INT PencGetResetInStatus ( HANDLE DeviceHandle, PBYTE ResetInStatus ); ●Visual Basic Declare Function PencGetResetInStatus Lib "FbiPenc.DLL"( _ ByVal DeviceHandle As Long, _ ByRef ResetInStatus As Byte _ )As Long

【パラメータ】 DeviceHandle PencOpen関数で取得したデバイスハンドルを指定してください。

ResetInStatus 外部リセット入力信号の状態を格納する変数のポインタ(参照渡し)を指定します。 0 = リセット入力無効 1 = リセット入力有効

【戻り値】 正常終了した場合は、PENC_ERROR_SUCCESSが返されます。 PENC_ERROR_SUCCESS以外の値が返された場合については、『4.4 戻り値一覧』をご参照ください。

【備考】 外部リセット信号が有効の間(ResetInStatus = 1)は、出力、及び割り込みマスク、要因等の設定をすることができません。外部リセット信号入力でリセットされた場合、PencGetResetInStatusでリセット入力信号が無効になったことを確認してからボードの再設定を行ってください。 外部リセット信号入力のマスク設定取得は CBI-631104, CBI/CSI-631204, LPC/PEX-631204 でのみ実行可能です。

Page 61: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

61

【使用例】 ●C言語 INT Ret; HANDLE DeviceHandle; BYTE ResetInStatus; Ret = PencGetResetInStatus( DeviceHandle, &ResetInStatus ); ●Visual Basic Dim Ret As Long Dim DeviceHandle As Long Dim ResetInStatus As Byte Ret = PencGetResetInStatus( DeviceHandle, ResetInStatus ) デバイスハンドル DeviceHandle の 3 モードパルスカウンタの外部リセット入力信号の状態を変数 ResetInStatus に取得します。

Page 62: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

62

22. PencInputDI 【機能】 汎用入力値を取得します。

【書式】 ●C言語 INT PencInputDI ( HANDLE DeviceHandle, PDWORD Value ); ●Visual Basic Declare Function PencInputDI Lib "FbiPenc.DLL"( _ ByVal DeviceHandle As Long, _ ByRef Value As Long _ )As Long

【パラメータ】 DeviceHandle PencOpen関数で取得したデバイスハンドルを指定してください。

Value 汎用入力値を格納する変数へのポインタ(参照渡し)を指定します。 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 IN8 IN7 IN6 IN5 IN4 IN3 IN2 IN1 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 IN16 IN15 IN14 IN13 IN12 IN11 IN10 IN9

bit 内容

IN1~N16 汎用入力端子 1~16 0: 汎用入力端子 High レベル 1: 汎用入力端子 Low レベル

【戻り値】 正常終了した場合は、PENC_ERROR_SUCCESSが返されます。 PENC_ERROR_SUCCESS以外の値が返された場合については、『4.4 戻り値一覧』をご参照ください。

Page 63: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

63

【備考】 汎用入力端子は、信号が "Low" レベルの時 ON("1") 、"High" レベルの時 OFF("0") となります。 汎用入力値の取得は CBI-631104, CBI/CSI-631204, LPC/PEX-631204 でのみ実行可能です。

【使用例】 ●C言語 INT Ret; HANDLE DeviceHandle; DWORD Value; Ret = PencInputDI( DeviceHandle, &Value ); ●Visual Basic Dim Ret As Long Dim DeviceHandle As Long Dim Value As Long Ret = PencInputDI( DeviceHandle, Value ) デバイスハンドル DeviceHandle の 3 モードパルスカウンタから汎用入力値を取得します。

Page 64: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

64

23. PencOutputDO 【機能】 汎用出力を行います。

【書式】 ●C言語 INT PencOutputDO ( HANDLE DeviceHandle, DWORD Value ); ●Visual Basic Declare Function PencOutputDO Lib "FbiPenc.DLL"( _ ByVal DeviceHandle As Long, _ ByVal Value As Long _ )As Long

【パラメータ】 DeviceHandle PencOpen関数で取得したデバイスハンドルを指定してください。

Value 汎用出力値を指定します。 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 OUT8 OUT7 OUT6 OUT5 OUT4 OUT3 OUT2 OUT1 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 OUT16 OUT15 OUT14 OUT13 OUT12 OUT11 OUT10 OUT9

bit 内容

OUT1~OUT16 汎用出力端子 1~16 0: 汎用出力端子 High レベル 1: 汎用出力端子 Low レベル

【戻り値】 正常終了した場合は、PENC_ERROR_SUCCESSが返されます。 PENC_ERROR_SUCCESS以外の値が返された場合については、『4.4 戻り値一覧』をご参照ください。

Page 65: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

65

【備考】 汎用出力端子は、出力値が ON("1")の時 "Low" レベル、OFF("0")の時 "High" レベルとなります。 汎用出力の指定は CBI-631104, CBI/CSI-631204, LPC/PEX-631204 でのみ実行可能です。

【使用例】 ●C言語 INT Ret; HANDLE DeviceHandle; Ret = PencOutputDO( DeviceHandle, 0x000F ); ●Visual Basic Dim Ret As Long Dim DeviceHandle As Long Ret = PencOutputDO( DeviceHandle, &H000F ) デバイスハンドル DeviceHandle の 3 モードパルスカウンタの汎用出力端子 1~4 を ON にします。

Page 66: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

66

24. PencSetTimerConfig 【機能】 インターバルタイマの設定を行います。

【書式】 ●C言語 INT PencSetTimerConfig ( HANDLE DeviceHandle, BYTE TimerConfigValue ); ●Visual Basic Declare Function PencSetTimerConfig Lib "FbiPenc.DLL"( _ ByVal DeviceHandle As Long, _ ByVal TimerConfigValue As Byte _ )As Long

【パラメータ】 DeviceHandle PencOpen関数で取得したデバイスハンドルを指定してください。

TimerConfigValue インターバルタイマを設定する、ビットの組み合わせです。 タイマ周期はCTL5~7で設定した基準周期と、CTL1~4で設定した分周値の積となります。(周期=基準周期×分周値)。 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 予約 CTL7 CTL6 CTL5 CTL4 CTL3 CTL2 CTL1

CTL1~4 分周値設定

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 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

Page 67: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

67

CTL5~7 基準周期設定

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

【戻り値】 正常終了した場合は、PENC_ERROR_SUCCESSが返されます。 PENC_ERROR_SUCCESS以外の値が返された場合については、『4.4 戻り値一覧』をご参照ください。

【使用例】 ●C言語 INT Ret; HANDLE DeviceHandle; Ret = PencSetTimerConfig( DeviceHandle, 0x38 ); ●Visual Basic Dim Ret As Long Dim DeviceHandle As Long Ret = PencSetTimerConfig( DeviceHandle, &h38 ) デバイスハンドルDeviceHandleの3モードパルスカウンタのインターバルタイマを、分周値8、基準周期 10ms で設定を行います。

Page 68: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

68

25. PencGetTimerConfig 【機能】 インターバルタイマの設定情報を取得します。

【書式】 ●C言語 INT PencGetTimerConfig ( HANDLE DeviceHandle, PBYTE TimerConfigValue ); ●Visual Basic Declare Function PencGetTimerConfig Lib "FbiPenc.DLL"( _ ByVal DeviceHandle As Long, _ ByRef TimerConfigValue As Byte _ )As Long

【パラメータ】 DeviceHandle PencOpen関数で取得したデバイスハンドルを指定してください。

TimerConfigValue インターバルタイマの設定データを格納する変数のポインタ(参照渡し)を指定します。 タイマ周期は CTL5~7 で設定した基準周期と、CTL1~4 で設定した分周値の積となります。(周期=基準周期×分周値)

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 予約 CTL7 CTL6 CTL5 CTL4 CTL3 CTL2 CTL1

CTL1~4 分周値設定

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 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

Page 69: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

69

CTL5~7 基準周期設定

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

【戻り値】 正常終了した場合は、PENC_ERROR_SUCCESSが返されます。 PENC_ERROR_SUCCESS以外の値が返された場合については、『4.4 戻り値一覧』をご参照ください。

【使用例】 ●C言語 INT Ret; HANDLE DeviceHandle; BYTE TimerConfigValue; Ret = PencGetTimerConfig( DeviceHandle, &TimerConfigValue ); ●Visual Basic Dim Ret As Long Dim DeviceHandle As Long Dim TimerConfigValue As Byte Ret = PencGetTimerConfig( DeviceHandle, TimerConfigValue ) デバイスハンドル DeviceHandle の 3 モードパルスカウンタからインターバルタイマの設定情報を取得します。

Page 70: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

70

26. PencGetTimerCount 【機能】 インターバルタイマのカウント値を取得します。

【書式】 ●C言語 INT PencGetTimerCount ( HANDLE DeviceHandle, PBYTE TimerCount ); ●Visual Basic Declare Function PencGetTimerCount Lib "FbiPenc.DLL"( _ ByVal DeviceHandle As Long, _ ByRef TimerCount As Byte _ )As Long

【パラメータ】 DeviceHandle PencOpen関数で取得したデバイスハンドルを指定してください。

TimerCount ボード上のインターバルタイマの現在のカウンタ値を格納する変数のポインタ(参照渡し)を指定します。 PencSetTimerConfigにより設定した周期における、現在の状態値を 4bitカウンタで取得します。 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 予約 予約 予約 予約 TD4 TD3 TD2 TD1

TD4 TD3 TD2 TD1

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 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

Page 71: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

71

【戻り値】 正常終了した場合は、PENC_ERROR_SUCCESSが返されます。 PENC_ERROR_SUCCESS以外の値が返された場合については、『4.4 戻り値一覧』をご参照ください。

【使用例】 ●C言語 INT Ret; HANDLE DeviceHandle; BYTE TimerCount; Ret = PencGetTimerCount( DeviceHandle, &TimerCount ); ●Visual Basic Dim Ret As Long Dim DeviceHandle As Long Dim TimerCount As Byte Ret = PencGetTimerCount( DeviceHandle, TimerCount ) デバイスハンドル DeviceHandle の 3 モードパルスカウンタからインターバルタイマのカウント値を取得します。

Page 72: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

72

27. PencSetEventMask 【機能】 イベントマスクを設定します。

【書式】 ●C言語 INT PencSetEventMask ( HANDLE DeviceHandle, INT Channel, INT EventMask, INT TimerMask ); ●Visual Basic Declare Function PencSetEventMask Lib "FbiPenc.DLL"( _ ByVal DeviceHandle As Long, _ ByVal Channel As Long, _ ByVal EventMask As Long, _ ByVal TimerMask As Long _ )As Long

【パラメータ】 DeviceHandle PencOpen関数で取得したデバイスハンドルを指定してください。

Channel イベントマスク設定を行うチャンネルを指定します。 Channel にはチャンネル番号(1~8)もしくは、識別子を指定します。

Page 73: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

73

各ボードで指定可能な設定値は次のようになります。

設定値 内容 PCI-6204 CTP-6204 CPZ-6204

PCI-6205C CTP-6205 CPZ-6205

CBI-631104 CBI-631204 CSI-631204 LPC-631204 PEX-631204

PCI/CTP/CBI/CSI-3204xx

PCI/CTP/CBI/CSI-3601xx

PCI-3602xx LPC/PEX-321xxx LPC/PEX-340xxx LPC/PEX-361xxx

1 チャンネル 1のイベントマスクを設定します

○ ○ ○ ○

2 チャンネル 2のイベントマスクを設定します

○ ○ ○ ―

3 チャンネル 3のイベントマスクを設定します

― ○ ○ ―

4 チャンネル 4のイベントマスクを設定します

― ○ ○ ―

5 チャンネル 5のイベントマスクを設定します

― ○ ― ―

6 チャンネル 6のイベントマスクを設定します

― ○ ― ―

7 チャンネル 7のイベントマスクを設定します

― ○ ― ―

8 チャンネル 8のイベントマスクを設定します

― ○ ― ―

PENC_EVENT_BOARD

ボード制御部のイベントマスクを設定します

― ○ ○ ―

PENC_EVENT_DIO 汎用入出力部のイベントマスクを設定します

― ― ○ ―

Page 74: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

74

EventMask イベントのマスクデータを指定します。 Channel で指定した設定値に応じて、下記の値を設定します。 【 Channel : 1~8 】 各チャンネル毎にコントローラ部のイベントのマスクデータを指定します。

bit31~bit6 bit5 bit4 bit3 bit2 bit1 bit0 0 PERR C/B EXLT EQ L3 L2

EventMask 内容(1:アンマスク、0:マスク) L2 L2 入力割り込み(PCI-6204, CTP-6204, CPZ-6204 のみ) L3 L3 入力割り込み(PCI-6204, CTP-6204, CPZ-6204 のみ) EQ カウンタと比較カウンタ値一致割り込み EXLT 外部ラッチ割り込み C/B キャリー/ボロー検出割り込み PERR 位相差パルス異常入力検出割り込み

【 Channel : PENC_EVENT_BOARD 】 ボード制御部のイベントのマスクデータを指定します。 CBI-631104, CBI/CSI-631204, LPC/PEX-631204

bit31~bit6 bit5 bit4 bit3 bit2 bit1 bit0 0 SIGR 0 0 0 0 0

EventMask 内容(1:アンマスク、0:マスク) SIGR 外部リセット入力(RSTIN)割り込み

PCI-6205C、CTP/CPZ-6205

bit31~bit6 bit5 bit4 bit3 bit2 bit1 bit0 0 0 0 0 0 IRIN_U IRIN_D

EventMask 内容(1:アンマスク、0:マスク) IRIN_D IR.IN 端子の立ち下がり(ON→OFF)で割り込み IRIN_U IR.IN 端子の立ち上がり(OFF→ON)で割り込み

【 Channel : PENC_EVENT_DIO 】 汎用入出力部のイベントのマスクデータを指定します。

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 SU_IN8 SU_IN7 SU_IN6 SU_IN5 SU_IN4 SU_IN3 SU_IN2 SU_IN1 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 SU_IN16 SU_IN15 SU_IN14 SU_IN13 SU_IN12 SU_IN11 SU_IN10 SU_IN9 bit23 bit22 bit21 bit20 bit19 bit18 bit17 bit16 SD_IN8 SD_IN7 SD_IN6 SD_IN5 SD_IN4 SD_IN3 SD_IN2 SD_IN1 bit31 bit30 bit29 bit28 bit27 bit26 bit25 bit24 SD_IN16 SD_IN15 SD_IN14 SD_IN13 SD_IN12 SD_IN11 SD_IN10 SD_IN9

EventMask 内容(1:アンマスク、0:マスク)

SU_IN1~SU_IN16 IN1~IN16 立ち上がりエッジ割り込み (CBI-631104, CBI/CSI-631204, LPC/PEX-631204 のみ)

Page 75: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

75

SD_IN1~SD_IN16 IN1~IN16 立ち下がりエッジ割り込み (CBI-631104, CBI/CSI-631204, LPC/PEX-631204 のみ)

TimerMask

インターバルタイマ部のイベントのマスクデータを指定します。 0 : マスク 1 : アンマスク

【戻り値】 正常終了した場合は、PENC_ERROR_SUCCESSが返されます。 PENC_ERROR_SUCCESS以外の値が返された場合については、『4.4 戻り値一覧』をご参照ください。

【使用例】 ●C言語 INT Ret; HANDLE DeviceHandle; Ret = PencSetEventMask( DeviceHandle, 2, 0x14, 0 ); ●Visual Basic Dim Ret As Long Dim DeviceHandle As Long Ret = PencSetEventMask( DeviceHandle, 2, &h14, 0 ) デバイスハンドル DeviceHandleの 3モードパルスカウンタのチャンネル 2の、「キャリー/ボロー検出」・「比較カウンタ値一致」割り込みを有効(アンマスク)にします。

Page 76: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

76

28. PencGetEventMask 【機能】 イベントのマスク設定を取得します。

【書式】 ●C言語 INT PencGetEventMask ( HANDLE DeviceHandle, INT Channel, PINT EventMask, PINT TimerMask ); ●Visual Basic Declare Function PencGetEventMask Lib "FbiPenc.DLL"( _ ByVal DeviceHandle As Long, _ ByVal Channel As Long, _ ByRef EventMask As Long, _ ByRef TimerMask As Long _ )As Long

【パラメータ】 DeviceHandle PencOpen関数で取得したデバイスハンドルを指定してください。

Channel イベントマスク設定値を取得するチャンネルを指定します。 Channel にはチャンネル番号(1~8)もしくは、識別子を指定します。

Page 77: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

77

各ボードで指定可能な設定値は次のようになります。 設定値 内容 PCI-6204

CTP-6204 CPZ-6204

PCI-6205C CTP-6205 CPZ-6205

CBI-631104 CBI-631204 CSI-631204 LPC-631204 PEX-631204

PCI/CTP/CBI/CSI-3204xx

PCI/CTP/CBI/CSI-3601xx

PCI-3602xx LPC/PEX-321xxx LPC/PEX-340xxx LPC/PEX-361xxx

1 チャンネル1のイベントマスクを取得

します

○ ○ ○ ○

2 チャンネル2のイベントマスクを取得

します

○ ○ ○ ―

3 チャンネル3のイベントマスクを取得

します

― ○ ○ ―

4 チャンネル4のイベントマスクを取得

します

― ○ ○ ―

5 チャンネル5のイベントマスクを取得

します

― ○ ― ―

6 チャンネル6のイベントマスクを取得

します

― ○ ― ―

7 チャンネル7のイベントマスクを取得

します

― ○ ― ―

8 チャンネル8のイベントマスクを取得

します

― ○ ― ―

PENC_EVENT_BOARD

ボード制御部のイベントマスクを取得します

― ○ ○ ―

PENC_EVENT_DIO

汎用入出力部のイベントマスクを取得します

― ― ○ ―

Page 78: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

78

EventMask イベントのマスクデータを取得する変数へのポインタ(参照渡し)を指定します。 Channel で指定した設定値に応じて、次の値が指定した変数に格納されます。 【 Channel : 1~8 】 各チャンネル毎にコントローラ部のイベントのマスクデータを取得します。

bit31~bit6 bit5 bit4 bit3 bit2 bit1 bit0 0 PERR C/B EXLT EQ L3 L2

EventMask 内容(1:アンマスク、0:マスク) L2 L2 入力割り込み(PCI-6204, CTP-6204, CPZ-6204 のみ) L3 L3 入力割り込み(PCI-6204, CTP-6204, CPZ-6204 のみ) EQ カウンタと比較カウンタ値一致割り込み EXLT 外部ラッチ割り込み C/B キャリー/ボロー検出割り込み PERR 位相差パルス異常入力検出割り込み

【 Channel : PENC_EVENT_BOARD 】 ボード制御部のイベントのマスクデータを取得します。 CBI-631104, CBI/CSI-631204, LPC/PEX-631204

bit31~bit6 bit5 bit4 bit3 bit2 bit1 bit0 0 SIGR 0 0 0 0 0

EventMask 内容(1:アンマスク、0:マスク) SIGR 外部リセット入力(RSTIN)割り込み

PCI-6205C、CTP/CPZ-6205

bit31~bit6 bit5 bit4 bit3 bit2 bit1 bit0 0 0 0 0 0 IRIN_U IRIN_D

EventMask 内容(1:アンマスク、0:マスク) IRIN_D IR.IN 端子の立ち下がり(ON→OFF)で割り込み IRIN_U IR.IN 端子の立ち上がり(OFF→ON)で割り込み

【 Channel : PENC_EVENT_DIO 】 汎用入出力部のイベントのマスクデータを取得します。 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 SU_IN8 SU_IN7 SU_IN6 SU_IN5 SU_IN4 SU_IN3 SU_IN2 SU_IN1 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 SU_IN16 SU_IN15 SU_IN14 SU_IN13 SU_IN12 SU_IN11 SU_IN10 SU_IN9 bit23 bit22 bit21 bit20 bit19 bit18 bit17 bit16 SD_IN8 SD_IN7 SD_IN6 SD_IN5 SD_IN4 SD_IN3 SD_IN2 SD_IN1 bit31 bit30 bit29 bit28 bit27 bit26 bit25 bit24 SD_IN16 SD_IN15 SD_IN14 SD_IN13 SD_IN12 SD_IN11 SD_IN10 SD_IN9

EventMask 内容(1:アンマスク、0:マスク) SU_IN1~SU_IN16 IN1~IN16 立ち上がりエッジ割り込み

(CBI-631104, CBI/CSI-631204, LPC/PEX-631204 のみ)

Page 79: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

79

SD_IN1~SD_IN16 IN1~IN16 立ち下がりエッジ割り込み (CBI-631104, CBI/CSI-631204, LPC/PEX-631204 のみ)

TimerMask

インターバルタイマ部のイベントのマスク設定を取得する変数へのポインタ(参照渡し)を指定します。 0 : マスク 1 : アンマスク

【戻り値】 正常終了した場合は、PENC_ERROR_SUCCESSが返されます。 PENC_ERROR_SUCCESS以外の値が返された場合については、『4.4 戻り値一覧』をご参照ください。

【使用例】 ●C言語 INT Ret; HANDLE DeviceHandle; INT EventMask, TimerMask; Ret = PencGetEventMask( DeviceHandle, PENC_EVENT_BOARD, &EventMask, &TimerMask ); ●Visual Basic Dim Ret As Long Dim DeviceHandle As Long Dim EventMask, TimerMask As Long Ret = PencGetEventMask( DeviceHandle, PENC_EVENT_BOARD, EventMask, TimerMask ) デバイスハンドル DeviceHandle の 3 モードパルスカウンタのボード制御部のイベントマスク設定状態を取得します。

Page 80: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

80

29. PencSetEvent 【機能】 コールバック関数を登録します。 PencSetEvent関数によるコールバックの登録は、PCI-6204、CTP-6204、CPZ-6204 の場合のみ有効です。これ以外のデバイスを使用される場合は、PencSetEventEx関数をご使用ください。

【書式】 ●C言語 INT PencSetEvent ( HANDLE DeviceHandle, LPPENCCALLBACK EventProc, DWORD UserData ); ●Visual Basic Declare Function PencSetEvent Lib "FbiPenc.DLL"( _ ByVal DeviceHandle As Long, _ ByVal EventProc As Long, _ ByVal UserData As Long _ )As Long

【パラメータ】 DeviceHandle PencOpen関数で取得したデバイスハンドルを指定してください。

EventProc コールバック関数のアドレスを指定します。

UserData コールバック関数に渡す任意の 32 ビットデータを指定します。

【戻り値】 正常終了した場合は、PENC_ERROR_SUCCESSが返されます。 PENC_ERROR_SUCCESS以外の値が返された場合については、『4.4 戻り値一覧』をご参照ください。

Page 81: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

81

【備考】 ・外部入力割り込み、カウンタラッチ割り込み、インターバルタイマ割り込みは、早い周期でのイベントは動作が保証できません。約 5ms以下の周期でのイベント割り込みではシステムに動作異常をきたすことがあります。これより早い周期の場合、PencSetEvent関数は使用せず、PencGetStatus関数で、直接ステータス値を見るようにしてください。

・登録したコールバック関数は、PencKillEvent関数にて、削除できます。

【使用例】 ●C言語 void CALLBACK EventProc(DWORD EventMask, DWORD UserData) { : } INT Ret; HANDLE DeviceHandle; Ret = PencSetEvent( DeviceHandle, (LPPENCCALLBACK)EventProc, 0 ); ●Visual Basic コールバックルーチンは PencSetEvent関数の呼び出しを行うプロジェクト内の 標準モジュールの中に記述しなければなりません。 PencSetEvent関数の引数パラメータでプロシージャのアドレスを渡す為にAddressOf演算子を使用します。 Sub EventProc(EventMask As Long, UserData As Long) : End Sub Dim Ret As Long Dim DeviceHandle As Long Ret = PencSetEvent( DeviceHandle, AddressOf EventProc, 0 ) デバイスハンドルDeviceHandleの 3モードパルスカウンタにコールバック関数を登録します。

Page 82: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

82

30. PencSetEventEx 【機能】 コールバック関数を登録します。 PencSetEvent関数によるコールバックの登録は、PCI-6204、CTP-6204、CPZ-6204 の場合のみ有効です。これ以外のデバイスを使用される場合は、PencSetEventEx関数をご使用ください。

【書式】 ●C言語 INT PencSetEventEx ( HANDLE DeviceHandle, LPPENCCALLBACKEX EventProc, DWORD UserData ); ●Visual Basic Declare Function PencSetEventEx Lib "FbiPenc.DLL"( _ ByVal DeviceHandle As Long, _ ByVal EventProc As Long, _ ByVal UserData As Long _ )As Long

【パラメータ】 DeviceHandle PencOpen関数で取得したデバイスハンドルを指定してください。

EventProc コールバック関数のアドレスを指定します。

UserData コールバック関数に渡す任意の 32 ビットデータを指定します。

【戻り値】 正常終了した場合は、PENC_ERROR_SUCCESSが返されます。 PENC_ERROR_SUCCESS以外の値が返された場合については、『4.4 戻り値一覧』をご参照ください。

Page 83: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

83

【備考】 ・外部入力割り込み、カウンタラッチ割り込み、インターバルタイマ割り込みは、早い周期でのイベントは動作が保証できません。約 5ms以下の周期でのイベント割り込みではシステムに動作異常をきたすことがあります。これより早い周期の場合、PencSetEventEx関数は使用せず、PencGetStatus関数で、直接ステータス値を見るようにしてください。

・登録したコールバック関数は、PencKillEvent関数にて、削除できます。

【使用例】 ●C言語 void CALLBACK EventProc(INT Channel, DWORD EventMask, DWORD UserData) { : } INT Ret; HANDLE DeviceHandle; Ret = PencSetEventEx( DeviceHandle, EventProc, 0 ); ●Visual Basic コールバックルーチンは PencSetEventEx関数の呼び出しを行うプロジェクト内の 標準モジュールの中に記述しなければなりません。 PencSetEventEx関数の引数パラメータでプロシージャのアドレスを渡す為にAddressOf演算子を使用します。 Sub EventProc(Channel As Long, EventMask As Long, UserData As Long) : End Sub Dim Ret As Long Dim DeviceHandle As Long Ret = PencSetEventEx( DeviceHandle, AddressOf EventProc, 0 ) デバイスハンドルDeviceHandleの 3モードパルスカウンタにコールバック関数を登録します。

Page 84: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

84

31. PencKillEvent 【機能】 登録されたコールバック関数を削除します。

【書式】 ●C言語 INT PencKillEvent ( HANDLE DeviceHandle ); ●Visual Basic Declare Function PencKillEvent Lib "FbiPenc.DLL"( _ ByVal DeviceHandle As Long _ )As Long

【パラメータ】 DeviceHandle PencOpen関数で取得したデバイスハンドルを指定してください。

【戻り値】 正常終了した場合は、PENC_ERROR_SUCCESSが返されます。 PENC_ERROR_SUCCESS以外の値が返された場合については、『4.4 戻り値一覧』をご参照ください。

【使用例】 ●C言語 INT Ret; HANDLE DeviceHandle; Ret = PencKillEvent( DeviceHandle ); ●Visual Basic Dim Ret As Long Dim DeviceHandle As Long Ret = PencKillEvent( DeviceHandle ) デバイスハンドル DeviceHandle の 3 モードパルスカウンタに設定されたコールバック関数を削除します。

Page 85: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

85

32. PencEventRequstPending 【機能】 イベントを待ちます。

【書式】 ●C言語 INT PencEventRequstPending( HANDLE DeviceHandle, INT Channel, INT EventMask, PINT EventBuf, POVERLAPPED Ovl ); ●Visual Basic Declare Function PencEventRequstPending Lib "FbiPenc.DLL"( _ ByVal DeviceHandle As Long, _ ByVal Channel As Long, _ ByVal EventMask As Long, _ ByRef EventBuf As Long, _ ByRef Ovl As OVERLAPPED _ )As Long

【パラメータ】 DeviceHandle PencOpen関数で取得したデバイスハンドルを指定してください。

Page 86: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

86

Channel イベントマスク設定を行うチャンネルを指定します。 Channel にはチャンネル番号(1~8)もしくは、識別子を指定します。 各ボードで指定可能な設定値は次のようになります。

設定値 内容 PCI-6204

CTP-6204 CPZ-6204

PCI-6205C CTP-6205 CPZ-6205

CBI-631104 CBI-631204 CSI-631204 LPC-631204 PEX-631204

PCI/CTP/CBI/CSI-3204xx

PCI/CTP/CBI/CSI-3601xx

PCI-3602xx LPC/PEX-321xxx LPC/PEX-340xxx LPC/PEX-361xxx

1 チャンネル 1のイベントマスクを設定します

○ ○ ○ ○

2 チャンネル 2のイベントマスクを設定します

○ ○ ○ ―

3 チャンネル 3のイベントマスクを設定します

― ○ ○ ―

4 チャンネル 4のイベントマスクを設定します

― ○ ○ ―

5 チャンネル 5のイベントマスクを設定します

― ○ ― ―

6 チャンネル 6のイベントマスクを設定します

― ○ ― ―

7 チャンネル 7のイベントマスクを設定します

― ○ ― ―

8 チャンネル 8のイベントマスクを設定します

― ○ ― ―

PENC_EVENT_BOARD

ボード制御部のイベントマスクを設定します

○※ ○※ ○ ―

PENC_EVENT_DIO

汎用入出力部のイベントマスクを設定します

― ― ○ ―

※PCI/CTP/CPZ-6204, PCI-6205C, CTP/CPZ-6205 ではインターバルタイマ割り込みのみ設定可能です。

Page 87: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

87

EventMask イベントのマスクデータを指定します。 Channel で指定した設定値に応じて、下記の値を設定します。 【 Channel : 1~8 】 各チャンネル毎にコントローラ部のイベントのマスクデータを指定します。

bit31~bit6 bit5 bit4 bit3 bit2 bit1 bit0 0 PERR C/B EXLT EQ L3 L2

EventMask 内容(1:アンマスク、0:マスク) L2 L2 入力割り込み(PCI-6204, CTP-6204, CPZ-6204 のみ) L3 L3 入力割り込み(PCI-6204, CTP-6204, CPZ-6204 のみ) EQ カウンタと比較カウンタ値一致割り込み EXLT 外部ラッチ割り込み C/B キャリー/ボロー検出割り込み PERR 位相差パルス異常入力検出割り込み

【 Channel : PENC_EVENT_BOARD 】 ボード制御部のイベントのマスクデータを指定します。

bit31~bit6 bit5 bit4 bit3 bit2 bit1 bit0 0 SIGR SIGT 0 0 IRIN_U IRIN_D

EventMask 内容(1:アンマスク、0:マスク) IRIN_D IR.IN 端子の立ち下がり(ON→OFF)で割り込み

(PCI-6205C、CTP/CPZ-6205 のみ) IRIN_U IR.IN 端子の立ち上がり(OFF→ON)で割り込み

(PCI-6205C、CTP/CPZ-6205 のみ) SIGT インターバルタイマ割り込み検出 SIGR 外部リセット入力(RSTIN)割り込み

(CBI-631104, CBI/CSI-631204, LPC/PEX-631204 のみ) 【 Channel : PENC_EVENT_DIO 】 汎用入出力部のイベントのマスクデータを指定します。 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 SU_IN8 SU_IN7 SU_IN6 SU_IN5 SU_IN4 SU_IN3 SU_IN2 SU_IN1 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 SU_IN16 SU_IN15 SU_IN14 SU_IN13 SU_IN12 SU_IN11 SU_IN10 SU_IN9 bit23 bit22 bit21 bit20 bit19 bit18 bit17 bit16 SD_IN8 SD_IN7 SD_IN6 SD_IN5 SD_IN4 SD_IN3 SD_IN2 SD_IN1 bit31 bit30 bit29 bit28 bit27 bit26 bit25 bit24 SD_IN16 SD_IN15 SD_IN14 SD_IN13 SD_IN12 SD_IN11 SD_IN10 SD_IN9

EventMask 内容(1:アンマスク、0:マスク)

SU_IN1~SU_IN16 IN1~IN16 立ち上がりエッジ割り込み (CBI-631104, CBI/CSI-631204, LPC/PEX-631204 のみ)

SD_IN1~SD_IN16 IN1~IN16 立ち下がりエッジ割り込み (CBI-631104, CBI/CSI-631204, LPC/PEX-631204 のみ)

Page 88: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

88

EventBuf

イベント待ちが解除されたときに、発生したイベントの種類が示されています。 EventBuf は、EventMask と同じフォーマットになっています。

Ovl

イベント待ちに使用するオーバーラップ構造体へのポインタ(参照渡し)を指定します。(非同期処理) また、Ovlに NULL(0)を指定すると、イベントが発生するまで、PencEventRequstPending関数は、処理を戻しません。(同期処理)

【戻り値】 PencEventRequstPending関数は、OvlにNULL(0)以外が指定された場合、PENC_ERROR_IO_PENDINGを返します。その後、Win32APIのWaitForSingleObject関数を呼び出して、イベント待ちを行ってください。 OvlにNULL(0)が指定された場合、PencEventRequstPending関数は、イベント待ち状態になり、イベントが発生したときに、PENC_ERROR_SUCCESSを返します。 いずれの場合も、イベント発生後、EventBuf が指す位置へ、発生したイベントの情報が返されます。

【備考】 ・PencSetEventMask関数で、イベントを有効にしていなければイベントは発生しません。

【使用例】 ●C言語 非同期処理 INT Ret; HANDLE DeviceHandle; OVERLAPPED Ovl; DWORD EventBuf; Ovl.Offset = 0; Ovl.OffsetHigh = 0; Ovl.hEvent = CreateEvent(0, FALSE, FALSE, NULL); Ret = PencEventRequestPending( DeviceHandle, 1, 0x04, &EventBuf, &Ovl); if (Ret == PENC_ERROR_IO_PENDING) { // 非同期処理では、WaitFirSingleObject を使ってイベントを待つので、 // PencEventRequestPending 実行後、他の処理を行った後でイベント待ちを // 行うことが可能。 WaitForSingleObject(Ovl.hEvent, INFINITE); }

Page 89: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

89

同期処理 INT Ret; HANDLE DeviceHandle; DWORD EventBuf; // 同期処理では、イベントが発生するまで、PencEventRequestPending // 関数から処理は戻らない。 Ret = PencEventRequestPending( DeviceHandle, 1, 0x04, &EventBuf, NULL); ●Visual Basic 非同期処理 Public EventBuf As Long Public Ovl As OVERLAPPED Dim Ret As Long Dim DeviceHandle As Long Ovl.Offset = 0 Ovl.OffsetHigh = 0 Ovl.hEvent = CreateEvent(0, False, False, 0) Ret = PencEventRequestPending( DeviceHandle, 1, &H4, EventBuf, Ovl) If Ret = PENC_ERROR_IO_PENDING Then Ret = WaitForSingleObject(Ovl.hEvent, INFINITE) End If 同期処理 Dim EventBuf As Long Dim Ret As Long Dim DeviceHandle As Long Ret = PencEventRequestPending( DeviceHandle, 1, &H4, EventBuf, 0) デバイスハンドル DeviceHandle の 3 モードパルスカウンタのチャンネル 1 で、比較カウンタ一致イベントが発生するのを待ちます。

Page 90: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

90

4.3 コールバック関数 ※Visual Basicでコールバック機能を使用する場合、幾つかの制約事項が発生します(後述の『4.3.3 Visual Basic使用時の制約事項』をご参照下さい)。 Visual Basic で 非同期のイベント処理を行うには、弊社Web siteより無償て提供しておりますBPA-0514「カウンタ用 ActiveXコントロール」 をご使用になることを推奨致します。

4.3.1 PencSetEvent 関数により設定されるコールバック関数 PencSetEvent関数にて登録し、割り込みイベントが発生した時にコールされるコールバックルーチンです。 【記述】 コールバックルーチンを使用する場合、下記のように記述します。 (下記はコールバックルーチンを EventProc とする場合の例です。) ●C 言語 void CALLBACK EventProc(DWORD EventMask, DWORD UserData) { // 割り込みイベントに対応する処理を記述します } コールバックルーチンの関数型 LPPENCCALLBACK は下記のように定義されます。 typedef void (CALLBACK PENCCALLBACK)(DWORD EventMask, DWORD UserData); typedef PENCCALLBACK FAR *LPPENCCALLBACK; ●Visual Basic Function EventProc(EventMask As Long, UserData As Long) ‘ 割り込みイベントに対応する処理を記述します End Function コールバックルーチンは PencSetEvent関数の呼び出しを行うプロジェクト内の標準モジュールの中に記述しなければなりません。PencSetEvent関数の引数パラメータでプロシージャのアドレスを渡す為にAddressOf演算子を使用します。(PencSetEvent関数の使用例を参照してください。)AddressOf 演算子を使うと、プロシージャからの戻り値ではなく、プロシージャ自体のアドレスが、ダイナミック リンク ライブラリ (DLL)の PencSetEvent関数に渡されます。

Page 91: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

91

【パラメータ】 EventMask 発生した割り込みイベント要因が格納されます。 下記のビット構成で表されます。

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 予約 予約 PERR C/B EXLT EQ L3 L2

チャンネル 1 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 SIGT 予約 PERR C/B EXLT EQ L3 L2

チャンネル 2

EventMask 割り込みイベント要因(1:検出, 0:未検出) bit0 CH1 L2 割り込み検出 bit1 CH1 L3 割り込み検出 bit2 CH1 カウンタと比較カウンタ値一致割り込み検出 bit3 CH1 外部ラッチ割り込み検出 bit4 CH1 キャリー/ボロー割り込み検出 bit5 CH1 位相差パルス異常入力検出 bit8 CH2 L2 割り込み検出 bit9 CH2 L3 割り込み検出 bit10 CH2 カウンタと比較カウンタ値一致割り込み検出 bit11 CH2 外部ラッチ割り込み検出 bit12 CH2 キャリー/ボロー割り込み検出 bit13 CH2 位相差パルス異常入力検出 bit15 インターバルタイマ割り込み検出

UserData ユーザデータを指定します。

【戻り値】 コールバックルーチンに戻り値はありません。

Page 92: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

92

4.3.2 PencSetEventEx 関数により設定されるコールバック関数 PencSetEventEx関数にて登録し、割り込みイベントが発生した時にコールされるコールバックルーチンです。 【記述】 コールバックルーチンを使用する場合、下記のように記述します。 (下記はコールバックルーチンを EventProcEx とする場合の例です。) ●C 言語 void CALLBACK EventProcEx(INT Chanenl, DWORD EventMask, DWORD UserData) { // 割り込みイベントに対応する処理を記述します } コールバックルーチンの関数型 LPPENCCALLBACKEX は下記のように定義されます。 typedef void (CALLBACK PENCCALLBACKEX)(INT Channel, DWORD EventMask, DWORD UserData); typedef PENCCALLBACKEX FAR *LPPENCCALLBACKEX; ●Visual Basic Function EventProcEx(Channel As Long, EventMask As Long, UserData As Long) ‘ 割り込みイベントに対応する処理を記述します End Function コールバックルーチンは PencSetEventEx関数の呼び出しを行うプロジェクト内の標準モジュールの中に記述しなければなりません。 PencSetEventEx関数の引数パラメータでプロシージャのアドレスを渡す為にAddressOf演算子を使用します。(PencSetEventEx関数の使用例を参照してください。)AddressOf 演算子を使うと、プロシージャからの戻り値ではなく、プロシージャ自体のアドレスが、ダイナミック リンク ライブラリ (DLL)の PencSetEventEx関数に渡されます。

Page 93: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

93

【パラメータ】 Channel イベントが発生したチャンネル番号および割り込み種別の識別情報が渡されます。 割り込み発生時に渡される値は次のようになります。 Channel 内容 0 インターバルタイマ割り込みが発生 1 チャンネル 1の割り込みが発生 2 チャンネル 2の割り込みが発生 3 チャンネル 3の割り込みが発生 4 チャンネル 4の割り込みが発生 5 チャンネル 5の割り込みが発生 6 チャンネル 6の割り込みが発生 7 チャンネル 7の割り込みが発生 8 チャンネル 8の割り込みが発生 PENC_EVENT_BOARD ボード制御部の割り込みが発生 PENC_EVENT_DIO 汎用入出力部の割り込みが発生

EventMask 発生した割り込みイベント要因が格納されます。 Channel で指定された値に応じて、下記のビット構成で表されます。 【 Channel : 0 】 インターバルタイマのイベント発生時、コールバック関数は Channel = 0、EventMask = 0として呼び出されます。 【 Channel : 1~8 】 各チャンネル毎にコントローラ部のイベント要因が格納されます。

bit31~bit6 bit5 bit4 bit3 bit2 bit1 bit0 0 PERR C/B EXLT EQ L3 L2

EventMask 内容(1:アンマスク、0:マスク) L2 L2 入力割り込み(PCI-6204, CTP-6204, CPZ-6204 のみ) L3 L3 入力割り込み(PCI-6204, CTP-6204, CPZ-6204 のみ) EQ カウンタと比較カウンタ値一致割り込み EXLT 外部ラッチ割り込み C/B キャリー/ボロー検出割り込み PERR 位相差パルス異常入力検出割り込み

Page 94: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

94

【 Channel : PENC_EVENT_BOARD 】 ボード制御部のイベント要因が格納されます。 CBI-631104, CBI/CSI-631204, LPC/PEX-631204

bit31~bit6 bit5 bit4 bit3 bit2 bit1 bit0 0 SIGR 0 0 0 0 0

EventMask 内容(1:アンマスク、0:マスク) SIGR 外部リセット入力(RSTIN)割り込み

PCI-6205C、CTP/CPZ-6205

bit31~bit6 bit5 bit4 bit3 bit2 bit1 bit0 0 0 0 0 0 IRIN_U IRIN_D

EventMask 内容(1:アンマスク、0:マスク) IRIN_D IR.IN 端子の立ち下がり(ON→OFF)で割り込み IRIN_U IR.IN 端子の立ち上がり(OFF→ON)で割り込み

【 Channel : PENC_EVENT_DIO 】 汎用入出力部のイベント要因が格納されます。

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 SU_IN8 SU_IN7 SU_IN6 SU_IN5 SU_IN4 SU_IN3 SU_IN2 SU_IN1 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 SU_IN16 SU_IN15 SU_IN14 SU_IN13 SU_IN12 SU_IN11 SU_IN10 SU_IN9 bit23 bit22 bit21 bit20 bit19 bit18 bit17 bit16 SD_IN8 SD_IN7 SD_IN6 SD_IN5 SD_IN4 SD_IN3 SD_IN2 SD_IN1 bit31 bit30 bit29 bit28 bit27 bit26 bit25 bit24 SD_IN16 SD_IN15 SD_IN14 SD_IN13 SD_IN12 SD_IN11 SD_IN10 SD_IN9

EventMask 内容(1:アンマスク、0:マスク)

SU_IN1~SU_IN16 IN1~IN16 立ち上がりエッジ割り込み (CBI-631104, CBI/CSI-631204, LPC/PEX-631204 のみ)

SD_IN1~SD_IN16 IN1~IN32 立ち下がりエッジ割り込み (CBI-631104, CBI/CSI-631204, LPC/PEX-631204 のみ)

UserData ユーザデータを指定します。

【戻り値】 コールバックルーチンに戻り値はありません。

Page 95: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

95

4.3.3 Visual Basic 使用時の制約事項 ●Microsoft Visual Basic 6.0 上で弊社ソフトウェアライブラリが提供する関数コールバック機能を使用した場合、下記のアプリケーションエラーが発生する場合があります。 「“0x660d64d0”の命令が“0x0000009c”のメモリを参照しました。メモリが“written”になることはできませんでした。」 ※”0x660d64d0”は異なる場合があります アプリケーションエラーは下記の条件で発生します。 〇登録したコールバック関数内で、下記の関数、ステートメントをコールする。 ・関数コール(弊社ソフトウェアライブラリが提供する関数含む) ・Visual Basic のステートメント(Str()など) ・スタティックテキストへの文字列代入 など また、この問題は、Visual Basic 6.0 の Learning、Professional、Enterprise Edition のすべてに当てはまり、サービスパックの適用有無にかかわらず発生します。 コールバック関数内で、アプリケーションエラーを発生させる処理を行わずに別の機能を利用することで目的の処理が実行できるように設計を変更してください。 Microsoft Visual Basic 6.0 は、スレッディング モデルとして、アパートメント モデルを採用しています。 Microsoft Visual Basic 6.0 が作成、起動したスレッド以外からコールバック関数が実行された場合にアプリケーションエラーが発生する場合があります。 弊社ソフトウェアライブラリでは、ライブラリ内で起動した別のスレッドから登録されたコールバック関数の実行を行いますので、この問題が発生します。 解決方法は、以下の項を参照してください。 ●Microsoft Visual Basic で非同期のイベント処理を行う方法について Visual Basic で 非同期のイベント処理を行うには、BPA-0514「カウンタ用 ActiveX コントロール」 を御使用下さい。 BPA-0514「カウンタ用 ActiveX コントロール」 を使用する事で、イベント等の各種処理が行えます。BPA-0514「カウンタ用 ActiveX コントロール」 は 弊社 Web site よりダウンロードしてご使用ください。

Page 96: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

96

4.4 戻り値一覧

エラー識別子 意味 対処方法 PENC_ERROR_SUCCESS 正常終了 - PENC_ERROR_NOT_DEVICE ドライバが呼び出せません

指定したデバイスが見つかりませんでした。 指定したデバイス番号が存在するかどうかを確認してください。

PENC_ERROR_NOT_OPEN ドライバを OPENできません

デバイスのオープン時、何らかのエラーが発生しました。 ドライバ内部のメモリ確保に失敗したなど。

PENC_ERROR_INVALID_HANDLE デバイスハンドルが正しくありません

不正なデバイスハンドルで呼び出しを行おうとしました。 OPEN 関数で返されたデバイスハンドルを使用してください。

PENC_ERROR_ALREADY_OPEN すでに OPENしているデバイスを OPENしようとしました

既に OPEN されているデバイスです。共有させる場合には、フラグ PENC_FLAG_SHARE の指定をして OPEN してください

PENC_ERROR_INSUFFICIENT_BUFFER システムコールに渡されたデータ領域が小さすぎます

ドライバの内部エラーです。どのような状況でエラーが発生したかをご連絡ください。

PENC_ERROR_IO_PENDING 非同期 I/O 操作が進行中です

Win32API のWaitForSingleObject 関数等でイベントの完了を待つことができます。

PENC_ERROR_NOT_SUPPORTTED サポートされていない機能です

ご使用になるボードがサポートしていない機能を制御する関数をコールした場合に返されるエラーです。

PENC_ERROR_INVALID_CHANNEL 不正なチャンネル番号を指定しました

チャンネル番号は 1~8 を指定してください。

PENC_ERROR_INVALID_MODE 不正なモードを指定しました

モードは PencSetMode 関数のビット割付範囲の値を指定してください。

PENC_ERROR_INVALID_DIRECT 不正なカウンタ方向を指定しました

カウンタ方向は、0か 1を指定してください。

PENC_ERROR_INVALID_EQUALS 不正な一致検出フラグを指定しました

一致検出フラグは、0か 1を指定してください。

PENC_ERROR_INVALID_LATCH 不正なラッチ設定値を指定しました

ラッチ設定値は、0か 1を指定してください。

PENC_ERROR_INVALID_COUNTER 不正なカウンタプリセット値を指定しました

カウンタプリセット値は、32ビット値(PCI-6205C,CTP-6205は 24 ビット値)を指定してください。

PENC_ERROR_INVALID_COMPARATOR 不正な比較カウンタ値を指定しました

比較カウンタ値は、32 ビット値(PCI-6205C,CTP-6205 は 24ビット値)を指定してください。

Page 97: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

97

PENC_ERROR_INVALID_ZMODE 不正な Z 相論理設定値を指定しました

Z相論理設定値は、PencSetZMode関数のビット割付範囲の値を指定してください。

PENC_ERROR_INVALID_MASK 不正なイベントマスクを指定しました

イベントマスクは、0~1Fh を指定してください。

PENC_ERROR_INVALID_ITIMER 不正なインターバルタイマ設定値を指定しました

正しいインターバルタイマ設定値を指定してください。

PENC_ERROR_ALREADY_REGISTRATION イベントはすでに登録済みです

イベントは 1 つしか登録できません。

PENC_ERROR_ALREADY_DELETE イベントはすでに削除されています

PENC_ERROR_MEMORY_NOTALLOCATED 作業用メモリの確保に失敗しました

利用可能なメモリが足りなくなっています。不要なアプリケーションなどを終了させ、利用可能なメモリを増やすようにしてください。

PENC_ERROR_TIMER タイマリソースの取得に失敗しました

タイマリソースを消費するアプリケーションを閉じてください。

PENC_ERROR_NULL_POINTER DLL、ドライバ間で NULL ポインタが渡されました

システムに障害が発生している可能性がございます。どのような状況でエラーが発生したかをご連絡ください。

PENC_ERROR_PARAMETER 引数パラメータの値が不正です

API 関数に指定する値が不正もしくは範囲外です。

PENC_ERROR_INVALID_FILTER 不正なデジタルフィルタ設定値を指定しました

正しいデジタルフィルタ設定値を指定してください。

PENC_ERROR_INVALID_DO 不正な汎用出力設定値を指定しました

正しい汎用出力設定値を指定してください。

PENC_ERROR_INVALID_RSTINMASK 不正な外部リセットマスク設定値を指定しました

外部リセットマスク設定は、0か 1を指定してください。

Page 98: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

98

4.5 プログラム例

4.5.1 C 言語 // ========================================================================== // Windows Vista/XP/XP Embedded/Server 2003/2000/NT/Me/98/95 用 // 3 モードパルスカウンタ対応ドライバソフトウェア // プログラム例 C 言語コンソールアプリケーション // (MS-DOS プロンプトまたはコマンド プロンプトで実行します) // // Copyright 1999, 2005 Interface Corporation. All rights reserved. // // プログラム説明 // カウント値を取得、表示します // ========================================================================== #include <windows.h> #include <stdio.h> #include "FbiPenc.h" void main(void) { INT Ret; // 関数戻り値 DWORD Value; // カウンタ値格納用 INT Status; // ステータス値格納用 HANDLE DeviceHandle; // デバイスハンドル // デバイス名"FBIPENC1"の 3 モードパルスカウンタの初期化を行います。 DeviceHandle = PencOpen("FBIPENC1", 0); if (DeviceHandle == INVALID_HANDLE_VALUE) { printf("デバイス名 FBIPENC1 は使用できません¥n"); exit(0); //プログラム終了 } //チャンネル 1を位相差パルスカウント 入力、2逓倍、非同期クリア、アップカウント、一致検出有効、ソフトウェアラッチに設定します Ret = PencSetMode( DeviceHandle, 1, 5, 0, 1, 0 ); //チャンネル 1の比較カウンタを 100 に設定します Ret = PencSetComparator( DeviceHandle, 1, 100 ); //カウンタが一致するまでカウンタ値を表示し続けます。 while(1) { //チャンネル 1のカウンタ値取得 Ret = PencGetCounter( DeviceHandle, 1, &Value ); // カウント値の表示 printf("カウント値 = %x¥n", Value); // ステータスの取得 PencGetStatus( DeviceHandle, 1, &Status ); // 一致検出フラグが有効なら終了 if(Status & 0x100) break; }

Page 99: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

99

// 終了処理 PencClose(DeviceHandle); }

4.5.2 Visual Basic

' ====================================================================== ' Windows Vista/XP/XP Embedded/Server 2003/2000/NT/Me/98/95 用 ' 3 モードパルスカウンタ対応ドライバソフトウェア ' プログラム例 Visual Basic ' ' Copyright 1999, 2005 Interface Corporation. All rights reserved. ' ' プログラム説明 ' カウント値を取得、表示します ' タイマコントロール(Timer1)テキストボックス(Text1)使用 ' ====================================================================== ' 変数定義 Public DeviceHandle As Long 'デバイスハンドル格納用変数 標準モジュール定義ファイルに定義します。 Private Sub Form_Load() 'フォームのロード時に初期化します。 Dim WorkDeviceName As String * 16 'デバイス名格納領域 Dim Ret As Long ' 戻り値格納用変数 'デバイス名"FBIPENC1"の 3 モードパルスカウンタの初期化を行います。 WorkDeviceName = "FBIPENC1" & Chr(0) DeviceHandle = PencOpen(WorkDeviceName, 0) if DeviceHandle = INVALID_HANDLE_VALUE Then Ret = MsgBox("デバイス名 FBIPENC1 は使用できません", (vbOKOnly + vbCritical),"FBIPENC1") Unload Me ' ダイアログを閉じる End If 'チャンネル 1を位相差パルスカウント 入力、2逓倍、非同期クリア、アップカウント、 '一致検出有効、ソフトウェアラッチに設定します Ret = PencSetMode( DeviceHandle, 1, 5, 0, 1, 0 ) 'チャンネル 1の比較カウンタを 100 に設定します Ret = PencSetComparator( DeviceHandle, 1, 100 ) 'タイマイベントをスタート 100ms 'タイマコントロール Timer1 を使用 Timer1.Interval = 100 End Sub Private Sub Timer1_Timer() 'タイマコントロールイベントです。 'タイマイベント毎にカウント値を取得して表示を更新 Dim Value As Long ' カウント値取得用変数 Dim Ret As Long ' 戻り値格納用変数 Dim Status As Long ' ステータス格納用変数 'チャンネル 1のカウンタ値取得

Page 100: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

100

Ret = PencGetCounter( DeviceHandle, 1, Value ) 'カウンタ値データの表示 'TextBox の Text1 へ表示 Text1.Text = Hex(Counter) 'ステータスの取得 PencGetStatus( DeviceHandle, 1, Status ) 'カウンタと比較カウンタが一致したら、メッセージの表示 If Status & &H100 = &H100 Then MsgBox("カウンタが一致しました。", vbOKOnly + vbInformation, "GPC-6204 プログラム例") End If End Sub Private Sub Form_Unload(Cancel As Integer) Dim Ret As Long ' 戻り値格納用変数 'タイマイベント停止 Timer1.Interval = 0 'フォームのアンロード時に終了処理 Ret = PencClose(DeviceHandle) End Sub

Page 101: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

101

第5章 サンプルプログラム 本製品には 以下のサンプルプログラムが付属しています。

言語 プログラム名 説明 PencCount カウンタ値取得サンプルプログラム。

現在のカウンタ値を表示するサンプルプログラムです。 また、比較レジスタ一致のイベントを設定することが出来ます。 イベントを設定すると、カウンタ値が 比較レジスタに設定した値になるとイベントが発生(メッセージボックスを表示)します。

Visual C++

SimpleCount エンコーダなどから出力される位相差パルスをカウントし、コンソール上に連続して表示を行います。

PencCount カウンタ値取得サンプルプログラム。 現在のカウンタ値を表示するサンプルプログラムです。 また、比較レジスタ一致のイベントを設定することが出来ます。 イベントを設定すると、カウンタ値が 比較レジスタに設定した値になるとイベントが発生(メッセージボックスを表示)します。

Visual Basic

SimpleCount エンコーダなどから出力される位相差パルスをカウントし、ダイアログ上に連続して表示を行います。

サンプルプログラムには実行形式ファイルが付属していませんので、実行形式のファイルを作成してからご使用ください。

●Visual C++の場合 Visual C++(Visual Studio)を起動し、「ファイル」メニューから「ワークスペースを開く」を選び、メイクファイル「*.mak」を開き、ビルドしてください。

●Visual Basic の場合 Visual Basic を起動し、プロジェクトファイル「*.vbp」を開き、ビルドしてください。

Page 102: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

102

第6章 ユーティリティ 以下、ユーティリティの概要を説明します。

6.1 動作確認ユーティリティ 【概要】 動作確認ユーティリティにより、3 モードパルスカウンタの各機能が正常に動作しているか機器を接続した状態で確認することができます。 指定したチャンネルのモード設定、カウンタ、比較カウンタの各設定、値取得、クリアの設定を行うことができます。 【必要な機材】 ・3モードパルスカウンタデバイス ・接続ケーブル ・外部入力機器

【起動方法】 GPC-6204 のインストール完了後、「スタート」メニューより「プログラム」-「Interface GPC-6204」-「VCounter」を起動します。 【メニュー一覧】

メニュー コマンド 説明 デバイスオープン デバイスの選択とオープン デバイスクローズ デバイスのクローズ

ファイル

アプリケーションの終了 プログラムを終了します。 ヘルプ バージョン情報 バージョン情報

【操作手順】 1. 「ファイル」→「デバイスオープン」を選択し、確認を行うデバイスを一覧から選択します。

2. 必要に応じて、各チャンネルの「設定」ボタンを押し、カウントモードの設定を行います。 初期値は次のようになっています。

設定 初期値 カウンタモード ゲート付き単相パルスカウント 1逓倍 非同期クリアモード カウンタ方向 アップカウント 一致検出 一致検出なし 外部ラッチ 外部ラッチなし(ソフトウェアラッチ)

PCI-6204,CTP/CPZ-6204 CBI-631104,CBI/CSI-631204,LPC/PEX-631204 PCI/CTP/CBI/CSI-32xxxx,PCI/CTP/CBI/CSI-36xxxx LPC/PEX-321xxx,LPC/PEX-340xxx,LPC/PEX-361xxx

FFFFFFFFh 比較レジスタ値

PCI-6205C,CTP/CPZ-6205 FFFFFFh 3. ボードに外部からの信号を入力させてください。 4. 設定したモードでの測定が行われ、約 100ms 間隔で、カウンタの値がメインウィンドウに表示されます。

5. 「プログラムを終了する時は、「ファイル」→「デバイスクローズ」を選択した後、「ファ

Page 103: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

103

イル」→「アプリケーションの終了」を選択しプログラムを終了させます。

6.2 診断プログラム 【概要】 診断プログラムにより、動作不具合時の原因が、ハードウェア的なものかソフトウェア的なものかを容易に判断することができます。

【必要な機材】 ・ 3 モードパルスカウンタデバイス ・接続ケーブル ・端子台(TRM-2201 または TAC-2700) ・ビニール被覆線等(端子台での接続に使用) ・DC+5V 電源または +12~24V 電源

【起動方法】 1. 付属ソフトウェアのインストール完了後、「スタート」メニューより「プログラム」‐「Interface GPC-6204」‐「DiagPenc」を起動します。

2. 「デバイス」→「デバイスオープン」をクリックすると一覧表示画面が表示されます。その中から、診断を行うデバイスを選択してください。 画面に、型式名、RSW1 の設定値、I/O アドレス、IRQ が表示されます。

【メニュー一覧】

メニュー コマンド 説明 ファイル ファイルへ保存 診断結果の保存

デバイスオープン デバイスの選択とオープン デバイス デバイスクローズ デバイスのクローズ 設定 チャンネル、診断項目の設定 診断 診断開始 診断の開始

ヘルプ バージョン情報 終了 プログラムの終了

【診断方法】 まず、前述の「起動方法」を参照して、診断プログラムを起動してください。

1. 「デバイス」→「デバイスオープン」を選択し、診断を行うデバイスを一覧から選択します。

2. 画面の指示に従い、端子台の TEST ピンから線を接続してください。 3. 「診断」→「設定」を選択し、目的のチャンネル、診断項目の設定を行います。 全項目診断ボタンを押すと、すべての項目について診断を行います。

4. 項目を設定したら、「診断」→「診断開始」を選択します。 選択された項目に沿って診断が行われます。

5. 診断結果がメイン画面に表示されます。 6. 「ファイル」→「ファイルへ保存」により、診断結果が指定のファイルへ保存されます。 NG の場合は、詳細な内容が保存されます。

7. プログラムを終了する時は、「デバイス」→「デバイスクローズ」を選択した後、「終了」

Page 104: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

104

を選択しプログラムを終了させます。 正しく接続されているにもかかわらず「NG」となる場合には、弊社 Web site の『PCI デバイス表示ツール』をダウンロードし、そのプログラムを使用してご確認下さい。

6.3 カードバスID設定ユーティリティ 【概要】 このユーティリティは複数枚の同一型式カードバス製品を使用するためのものです。カード毎に異なる ID 番号を設定します。この ID 番号は PCI ボードで言えば RSW 番号と同等の意味を持ち、デバイスマネージャ、自己診断プログラムでも、RSW1 として表示されます。

【操作方法】

1. ドライバソフトウェアのインストール完了後、「コントロールパネル」の「Interface CardBus ID Utility」を開きます。

2. 現在挿入されている弊社カードバス製品の情報が表示されます。左から「バス番号」、「デバイス番号」、「ファンクション番号」、「型式」、「ID 番号」を示します。ID 番号の設定を行いたい製品をダブルクリックして下さい。

3. ID 番号を設定するダイアログが開きますので、コンボボックス内で設定したい ID 番号を選択し、「Ok」ボタンをクリックします。

4. これで ID 番号の設定は完了です。 ※設定できる ID 番号は 0h~Fh までです。 ※変更した ID 番号をドライバに認識させるには、一度カードを抜き差しするか、システムを再起動して下さい。 ※設定した ID 番号が分かるように番号を記したシールをカードに貼ることをお勧めします。

Page 105: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

105

第7章 自己診断方法

7.1 PCI-6204, CTP-6204, CPZ-6204 自己診断方法 【必要な機材】 ・ PCI-6204、CTP-6204、CPZ-6204 ・接続ケーブル(CAB-6601 等) ・端子台(TRM-2201 等) ・ビニール被覆線等(端子台での接続に使用) ・DC+5V, DC+12V~DC+24V 電源

※接続ケーブル、端子台はオプション品です。詳しくは、PCI-6204, CTP-6204, CPZ-6204 USER'S MANUAL の『オプション品の紹介』を参照して下さい。

【診断方法】

(1)起動方法 1. 付属ソフトウェアのインストール完了後、「スタート」メニューより「プログラム」-「Interface GPC-6204」-「DiagPenc」を起動します。

2. 「デバイス」-「デバイスオープン」をクリックすると一覧表示画面が表示されます。その中から、診断を行うデバイスを選択してください。 画面に、型式名,RSW1 の設定値,I/O アドレス,IRQ が表示されます。

(2)初期設定 1. メニューの「診断」-「設定」を選択します。 2. 設定画面より、チャンネル番号と入力選択の設定(絶縁フォトカプラ入力[5V]/絶縁フォトカプラ入力[12~24V])を行ってください。

3. 診断する項目を選択してください。「全項目診断」ボタンをクリックすると、全ての項目の診断を行います。

※診断は、1チャンネルにつき 1回行って下さい。 ※独立フォトカプラ入力についての詳細は、後述の『■ 絶縁フォトカプラ入力の診断(電源 5V使用時)』、『■ 絶縁フォトカプラ入力の診断(電源 12V~24V 使用時)』を参照して下さい。

(3)診断開始 1. メニューの「診断」-「診断開始」を選択します。 2. 画面の指示に従って下さい。 自動的に各項目の診断が行われ、結果が表示されます。

3. 全て「OK」と表示された場合には、次の手順に進んで下さい。 「NG」と表示された場合には、まず、接続に問題がないか、ご確認下さい。 正しく接続されているにもかかわらず「NG」となる場合には、弊社 Web site の『PCI デバイス表示ツール』をダウンロードし、そのプログラムを使用してご確認下さい。

Page 106: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

106

■絶縁フォトカプラ入力の診断(電源 5V 使用時) 1. メニューの「診断」-「設定」を選択します。 2. 「絶縁フォトカプラ入力[5V]」を選択します。 3. コネクタにケーブルと端子台を接続し、画面に指示される端子をビニール被覆線等で接続して下さい。

○チャンネル 1を診断する場合の接続例 1A+(ピン番号 51)と DC+5V 電源(プラス)を接続して下さい。 TESTA(ピン番号 72)と 1A-(L) (ピン番号 52)を接続して下さい。 1B+(ピン番号 53)と DC+5V 電源(プラス)を接続して下さい。 TESTB(ピン番号 70)と 1B-(L) (ピン番号 54)を接続して下さい。 GND(ピン番号 77)と DC+5V 電源(マイナス)を接続して下さい。

※外部電源は、電圧、電流値が 0(又は、ボードの許容量内)であることをご確認後、電源を"ON"にして下さい。 ※ピン番号の詳細説明については、PCI-6204, CTP-6204, CPZ-6204 USER'S MANUAL の『ボード側コネクタのピンアサインメント』及び、『TRM-2201 USER'S MANUAL』をご参照下さい。 ※+5V 以上の電圧を印加しないで下さい。ボード故障の原因となります。 4. 接続が完了したら、「診断」-「診断開始」をクリックして下さい。 5. 「自動的に各項目の診断が行われ、結果が表示されます。 6. 診断結果が正しくない場合は、ケーブルが正しく接続されているかご確認下さい。正しく接続されているにもかかわらず診断結果が「NG」の場合には、メニューから「ファイル」-「ファイルへ保存」で診断結果をファイルへ保存して下さい。 その診断結果とともに、弊社技術支援課までお問い合わせ下さい。

Page 107: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

107

■絶縁フォトカプラ入力の診断(電源 12V~24V 使用時) 1. メニューの「診断」-「設定」を選択します。 2. 「絶縁フォトカプラ入力[12V~24V]」を選択します。 3. コネクタにケーブルと端子台を接続し、画面に指示される端子をビニール被覆線等で接続して下さい。

○チャンネル 1を診断する場合の接続例 1A+(ピン番号 3)と DC+12~+24V 電源(プラス)を接続して下さい。 TESTA(ピン番号 72)と 1A-(H) (ピン番号 4)を接続して下さい。 1B+(ピン番号 5)と DC+12~+24V 電源(プラス)を接続して下さい。 TESTB(ピン番号 70)と 1B-(H) (ピン番号 6)を接続して下さい。 GND(ピン番号 77)と DC+12~+24V 電源(マイナス)を接続して下さい。

※外部電源は、電圧、電流値が 0(又は、ボードの許容量内)であることをご確認後、電源を"ON"にして下さい。 ※ピン番号の詳細説明については、PCI-6204,CTP-6204 USER'S MANUAL の『ボード側コネクタのピンアサインメント』及び、『TRM-2201 USER'S MANUAL』をご参照下さい。 4. 接続が完了したら、「診断」-「診断開始」をクリックして下さい。 5. 自動的に各項目の診断が行われ、結果が表示されます。 6. 診断結果が正しくない場合は、ケーブルが正しく接続されているかご確認下さい。正しく接続されているにもかかわらず診断結果が「NG」の場合には、メニューから「ファイル」-「ファイルへ保存」で診断結果をファイルへ保存して下さい。 その診断結果とともに、弊社技術支援課までお問い合わせ下さい。

診断結果が「OK」にもかかわらず動作不具合が起きる場合には、以下の要因が挙げられます。 ・ ケーブルの破損や接続している外部機器の動作不具合などのハードウェア的な要因 ・ 環境の問題(パソコン,BIOS 設定,拡張ユニット(使用している場合)等) 上記の場合、その診断結果とともに弊社 技術支援課までお問い合わせください。

Page 108: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

108

7.2 PCI-6205C, CTP-6205, CPZ-6205 自己診断方法 【必要な機材】 ・ PCI-6205、CTP-6205C, CPZ-6205 ・接続ケーブル(CAB-6601 等) ・端子台(TRM-2201 等) ・ビニール被覆線等(端子台での接続に使用)

※接続ケーブル、端子台はオプション品です。詳しくは、PCI-6205, CTP-6205, CPZ-6205 USER'S MANUAL の『オプション品の紹介』を参照して下さい。

【診断方法】

(1)起動方法 1. 付属ソフトウェアのインストール完了後、「スタート」メニューより「プログラム」-「Interface GPC-6204」-「DiagPenc」を起動します。

2. 「デバイス」-「デバイスオープン」をクリックすると一覧表示画面が表示されます。その中から、診断を行うデバイスを選択してください。 画面に、型式名,RSW1 の設定値,I/O アドレス,IRQ が表示されます。

(2)初期設定 1. メニューの「診断」-「設定」を選択します。 2. 設定画面より、チャンネル番号を 1~8で指定してを行ってください。 3. 診断する項目を選択してください。「全項目診断」ボタンをクリックすると、全ての項目の診断を行います。

※診断は、1チャンネルにつき 1回行って下さい。

(3)診断開始 1. メニューの「診断」-「診断開始」を選択します。 2. 画面の指示に従って下さい。 自動的に各項目の診断が行われ、結果が表示されます。

3. 全て「OK」と表示された場合には、次の手順に進んで下さい。 「NG」と表示された場合には、まず、接続に問題がないか、ご確認下さい。 正しく接続されているにもかかわらず「NG」となる場合には、弊社 Web site の『PCI デバイス表示ツール』をダウンロードし、そのプログラムを使用してご確認下さい

Page 109: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

109

■高速フォトカプラ絶縁差動入力の診断 1. メニューの「診断」-「設定」を選択します。 2. コネクタにケーブルと端子台を接続し、画面に指示される端子をビニール被覆線等で接続して下さい。

○チャンネル 1を診断する場合の接続例 1A+(ピン番号 3)と TESTA+(ピン番号 23)を接続して下さい。 1A-(ピン番号 4)と TESTA-(ピン番号 24)を接続して下さい。 1B+(ピン番号 5)と TESTB+(ピン番号 71)を接続して下さい。 1B-(ピン番号 6)と TESTB-(ピン番号 72)を接続して下さい。

※ピン番号の詳細説明については、PCI-6205C, CTP-6205, CPZ-6205 USER'S MANUAL の『ボード側コネクタのピンアサインメント』及び、『TRM-2201 USER'S MANUAL』をご参照下さい。 3. 接続が完了したら、「診断」-「診断開始」をクリックして下さい。 4. 自動的に各項目の診断が行われ、結果が表示されます。 5. 診断結果が正しくない場合は、ケーブルが正しく接続されているかご確認下さい。正しく接続されているにもかかわらず診断結果が「NG」の場合には、メニューから「ファイル」-「ファイルへ保存」で診断結果をファイルへ保存して下さい。 その診断結果とともに、弊社技術支援課までお問い合わせ下さい。

診断結果が「OK」にもかかわらず動作不具合が起きる場合には、以下の要因が挙げられます。 ・ ケーブルの破損や接続している外部機器の動作不具合などのハードウェア的な要因 ・ 環境の問題(パソコン,BIOS 設定,拡張ユニット(使用している場合)等) 上記の場合、その診断結果とともに弊社 技術支援課までお問い合わせください。

Page 110: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

110

7.3 CBI-631104 自己診断方法 【必要な機材】 ・ CBI-631104 ・接続ケーブル ・端子台(TKS-631104,TRS-631104) ・ビニール被覆線等(端子台での接続に使用)

※TKS-631104,TRS-631104 はオプション品です。詳しくは、CBI-631104 USER'S MANUAL の『オプション品の紹介』を参照して下さい。

【診断方法】

(1)起動方法 1. 付属ソフトウェアのインストール完了後、「スタート」メニューより「プログラム」-「Interface GPC-6204」-「DiagPenc」を起動します。

2. 「デバイス」-「デバイスオープン」をクリックすると一覧表示画面が表示されます。その中から、診断を行うデバイスを選択してください。 画面に、型式名,RSW1 の設定値,I/O アドレス,IRQ が表示されます。

(2)初期設定 1. メニューの「診断」-「設定」を選択します。 2. 設定画面より、チャンネル番号を 1~4で指定してを行ってください。 3. 診断する項目を選択してください。「全項目診断」ボタンをクリックすると、全ての項目の診断を行います。

※診断は、1チャンネルにつき 1回行って下さい。

(3)診断開始 1. メニューの「診断」-「診断開始」を選択します。 2. 画面の指示に従って下さい。 自動的に各項目の診断が行われ、結果が表示されます。

3. 全て「OK」と表示された場合には、次の手順に進んで下さい。 「NG」と表示された場合には、まず、接続に問題がないか、ご確認下さい。 正しく接続されているにもかかわらず「NG」となる場合には、弊社 Web site の『PCI デバイス表示ツール』をダウンロードし、そのプログラムを使用してご確認下さい

Page 111: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

111

■CMOS 型高耐圧接点入力の診断 1. メニューの「診断」-「設定」を選択します。 2. コネクタにケーブルと端子台を接続し、画面に指示される端子をビニール被覆線等で接続して下さい。

○チャンネル 1を診断する場合の接続例 1A(ピン番号 3)と TESTA(ピン番号 64)を接続して下さい。 1B(ピン番号 5)と TESTB(ピン番号 66)を接続して下さい。

※ピン番号の詳細説明については、CBI-631104 USER'S MANUAL の『ボード側コネクタのピンアサインメント』及び、『TKS-631104 USER'S MANUAL』,『TRS-631104 USER'S MANUAL』をご参照下さい。 3. 接続が完了したら、「診断」-「診断開始」をクリックして下さい。 4. 自動的に各項目の診断が行われ、結果が表示されます。 5. 診断結果が正しくない場合は、ケーブルが正しく接続されているかご確認下さい。正しく接続されているにもかかわらず診断結果が「NG」の場合には、メニューから「ファイル」-「ファイルへ保存」で診断結果をファイルへ保存して下さい。 その診断結果とともに、弊社技術支援課までお問い合わせ下さい。

診断結果が「OK」にもかかわらず動作不具合が起きる場合には、以下の要因が挙げられます。 ・ ケーブルの破損や接続している外部機器の動作不具合などのハードウェア的な要因 ・ 環境の問題(パソコン,BIOS 設定,拡張ユニット(使用している場合)等) 上記の場合、その診断結果とともに弊社 技術支援課までお問い合わせください。

Page 112: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

112

7.4 CBI/CSI/LPC/PEX-631204 自己診断方法 【必要な機材】 ・ CBI/CSI/LPC/PEX-631204 ・接続ケーブル ・端子台(TKS-631204,TRS-631204) ・ビニール被覆線等(端子台での接続に使用)

※TKS-631204,TRS-631204 はオプション品です。詳しくは、USER'S MANUAL の『オプション品の紹介』を参照して下さい。

【診断方法】

(1)起動方法 1. 付属ソフトウェアのインストール完了後、「スタート」メニューより「プログラム」-「Interface GPC-6204」-「DiagPenc」を起動します。

2. 「デバイス」-「デバイスオープン」をクリックすると一覧表示画面が表示されます。その中から、診断を行うデバイスを選択してください。 画面に、型式名,RSW1 の設定値,I/O アドレス,IRQ が表示されます。

(2)初期設定 1. メニューの「診断」-「設定」を選択します。 2. 設定画面より、チャンネル番号を 1~4で指定してを行ってください。 3. 診断する項目を選択してください。「全項目診断」ボタンをクリックすると、全ての項目の診断を行います。

※診断は、1チャンネルにつき 1回行って下さい。

(3)診断開始 1. メニューの「診断」-「診断開始」を選択します。 2. 画面の指示に従って下さい。 自動的に各項目の診断が行われ、結果が表示されます。

3. 全て「OK」と表示された場合には、次の手順に進んで下さい。 「NG」と表示された場合には、まず、接続に問題がないか、ご確認下さい。 正しく接続されているにもかかわらず「NG」となる場合には、弊社 Web site の『PCI デバイス表示ツール』をダウンロードし、そのプログラムを使用してご確認下さい。

Page 113: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

113

■CMOS 型高耐圧接点入力の診断 1. メニューの「診断」-「設定」を選択します。 2. コネクタにケーブルと端子台を接続し、画面に指示される端子をビニール被覆線等で接続して下さい。

○チャンネル 1を診断する場合の接続例 1A(ピン番号 3)と TESTA(ピン番号 64)を接続して下さい。 1B(ピン番号 5)と TESTB(ピン番号 66)を接続して下さい。

※ピン番号の詳細説明については、USER'S MANUAL の『ボード側コネクタのピンアサインメント』及び、『TKS-631204 USER'S MANUAL』,『TRS-631204 USER'S MANUAL』をご参照下さい。 3. 接続が完了したら、「診断」-「診断開始」をクリックして下さい。 4. 自動的に各項目の診断が行われ、結果が表示されます。 5. 診断結果が正しくない場合は、ケーブルが正しく接続されているかご確認下さい。正しく接続されているにもかかわらず診断結果が「NG」の場合には、メニューから「ファイル」-「ファイルへ保存」で診断結果をファイルへ保存して下さい。 その診断結果とともに、弊社技術支援課までお問い合わせ下さい。

診断結果が「OK」にもかかわらず動作不具合が起きる場合には、以下の要因が挙げられます。 ・ ケーブルの破損や接続している外部機器の動作不具合などのハードウェア的な要因 ・ 環境の問題(パソコン,BIOS 設定,拡張ユニット(使用している場合)等) 上記の場合、その診断結果とともに弊社 技術支援課までお問い合わせください。

Page 114: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

114

7.5 PCI/CTP/CBI/CSI/LPC/PEX-32xxxx, 36xxxx 自己診断方法 【必要な機材】 ・ PCI-320412, 320416, 360112, 360116, 360216, 362616, 361516 CTP-320412, 320416, 360112, 360116, CBI-320412, 320416, 360116, CSI-320412, 320416, 360112, 360116, LPC-321116, 321216, 321316, 321416, LPC-340216, 340416, LPC-361116, 361216, 361316, 361416, PEX-321116, 321216, 321316, 321416, PEX-340216, 340416, PEX-361116, 361216, 361316, 361416

【診断方法】

(1)起動方法 1. 付属ソフトウェアのインストール完了後、「スタート」メニューより「プログラム」-「Interface GPC-6204」-「DiagPenc」を起動します。

2. 「デバイス」-「デバイスオープン」をクリックすると一覧表示画面が表示されます。その中から、診断を行うデバイスを選択してください。 画面に、型式名,RSW1 の設定値,I/O アドレス,IRQ が表示されます。

(2)初期設定 1. メニューの「診断」-「設定」を選択します。 2. 設定画面より、チャンネル番号を 1~4で指定してを行ってください。 3. 診断する項目を選択してください。「全項目診断」ボタンをクリックすると、全ての項目の診断を行います。

※診断は、1チャンネルにつき 1回行って下さい。

(3)診断開始 1. メニューの「診断」-「診断開始」を選択します。 2. 画面の指示に従って下さい。 自動的に各項目の診断が行われ、結果が表示されます。

3. 全て「OK」と表示された場合には、次の手順に進んで下さい。 「NG」と表示された場合には、まず、接続に問題がないか、ご確認下さい。 正しく接続されているにもかかわらず「NG」となる場合には、弊社 Web site の『PCI デバイス表示ツール』をダウンロードし、そのプログラムを使用してご確認下さい。

Page 115: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

115

第8章 重要な情報 保証の内容と制限 弊社は本ドキュメントに含まれるソースプログラムの実行が中断しないこと、またはその実行に誤りが無いことを保証していません。 本製品の品質や使用に起因する、性能に起因するいかなるリスクも使用者が負うものとします。 弊社はドキュメント内の情報の正確さに万全を期しています。万一、誤記または誤植などがあった場合、弊社は予告無く改訂する場合があります。ドキュメントまたはドキュメント内の情報に起因するいかなる損害に対しても弊社は責任を負いません。 ドキュメント内の図や表は説明のためであり、ユーザ個別の応用事例により変化する場合があります。

著作権、知的所有権 弊社は本製品に含まれるおよび本製品に対する権利や知的所有権を保持しています。 本製品はコンピュータ ソフトウェア、映像/音声(例えば図、文章、写真など)を含んでいます。

医療機器/器具への適用における注意 弊社の製品は人命に関わるような状況下で使用される機器に用いられる事を目的として設計、製造された物では有りません。 弊社の製品は人体の検査などに使用するに適する信頼性を確保する事を意図された部品や検査機器と共に設計された物では有りません。 医療機器、治療器具などの本製品の適用により、製品の故障、ユーザ、設計者の過失などにより、損傷/損害を引き起こす場合が有ります。

複製の禁止 弊社の許可なく、本ドキュメントの全て、または一部に関わらず、複製、改変などを行うことはできません。

責任の制限 弊社は、弊社または再販売者の予見の有無にかかわらず発生したいかなる特別損害、偶発的損害、間接的な損害、重大な損害について、責任を負いません。 本製品(ハードウェア,ソフトウェア)のシステム組み込み、使用、ならびに本製品から得られる結果に関する一切のリスクについては、本製品の使用者に帰属するものとします。 本製品に含まれるバグ、あるいは本製品の供給(納期遅延)、性能もしくは使用に起因する付帯的損害もしくは間接的損害に対して、弊社に全面的に責がある場合でも、弊社はその製品に対する改良(正常に動作する)、代品交換までとし、金銭面での賠償の責任は負わないものとしますので、予めご了承ください。 本製品(ソフトウェアを含む)は、日本国内仕様です。本製品を日本国外で使用された場合、弊社は一切責任を負いかねます。また、弊社は本製品に関し、海外での保守サービスおよび技術サポート等は行っておりません。

Page 116: GPC-6204 - Interface

GPC-6204 Help for Windows

© 1999 Interface Corporation

116

商標/登録商標 本書に掲載されている会社名、製品名は、それぞれ各社の商標または登録商標です。