107
DCMP(C-PCI) www.interface.co.jp GPC-7302 DC モータドライバインタフェースモジュール用 Windows ドライバ Help for Windows

GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

DCMP(C-PCI)

www.interface.co.jp

GPC-7302 DC モータドライバインタフェースモジュール用 Windows ドライバ

Help for Windows

Page 2: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

1

目 次

第 1 章 はじめに .................................................2

1.1 概要 ...........................................................................2

1.2 特長 ...........................................................................2

第 2 章 製品仕様 .................................................3

2.1 基本仕様 .......................................................................3

2.2 製品構成 .......................................................................4

第 3 章 導入方法 .................................................5

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

3.2 実行手順 .......................................................................5

第 4 章 リファレンス .............................................7

4.1 関数一覧 .......................................................................7

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

4.3 構造体説明 ....................................................................88

4.4 戻り値一覧 ....................................................................93

第 5 章 サンプルプログラム ......................................95

5.1 DcmpSmpl ......................................................................95

5.2 ControlDC .....................................................................97

5.3 ControlPWM ....................................................................97

5.4 ExtTrg ........................................................................98

第 6 章 ユーティリティ ..........................................99

5.5 動作確認プログラム ............................................................99

5.6 自己診断プログラム ...........................................................103

第 7 章 重要な情報 .............................................106

Page 3: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

2

第1章 はじめに

1.1 概要 GPC-7302 は、Windows 上のアプリケーションから、弊社 DC モータドライバ製品を制御する為の

ソフトウェアです。

弊社 DC モータドライバ製品を Windows 上のアプリケーションから DLL をダイナミックリンクし、

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

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

1.2 特長 ●コントローラの直接制御に近いシンプルな関数体系、自由度が高く、処理速度が速いアプリケ

ーションを構築できます。

● 大 4チャンネルを独立に制御することが可能です。

●インタロック機能を搭載しており、緊急時の動作停止などを容易に行えます。

●過電流保護機能を内蔵しており、過電流発生時に緊急停止動作を行うことが可能です。

●外部トリガ機能を搭載しています。

●DC モータ制御(H ブリッジ:正転、反転、ブレーキ、ストップ)及び、PWM による制御が可能です。

●汎用入出力機能を搭載しています。(トリガ端子と共用)

●ボードの自己診断を行うプログラム、動作確認プログラムが付属しています。

Page 4: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

3

第2章 製品仕様

2.1 基本仕様 大デバイス数 同一型式 16 デバイスまで

モータドライバ TB6549F(東芝)

動作指令 正転/反転/ブレーキ/ストップ/PWM

制御チャンネル数 4 チャンネル独立

エンコーダ機能 なし

制御信号 外部トリガモードを指定することで、各チャンネルの

汎用入力端子(INn1~INn4)を外部トリガとして使用

することが可能です。

・エンドリミットモード

・ストップモード

・動作モード 1

・動作モード 2

汎用入出力、外部割り込み 18 点

外部トリガ信号を汎用入力または外部割り込み入力

または汎用出力として使用することができます。

割り込み DC モータドライバボードから、アプリケーションに割

り込みを通知することができます。

本DLLは、以下のイベントを通知することができます。

・各チャンネルの異常検出時

・インタロック信号入力時

・各汎用入力の UP EDGE(L→H)

・各汎用入力の DOWN EDGE(H→L)

・インターバルタイマ周期

Page 5: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

4

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

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

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

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

動作確認プログラム DCMPMOTION.EXE 動作確認用プログラム

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

DCMPSMPL Visual C# .NET

Visual C++

Visual Basic .NET

Visual Basic

Delphi .NET

Delphi

サンプルプログラム

ControlDC

ControlPWM

ExtTrg

Visual C++

Visual Basic

Delphi

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

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

FBIDCMP.H ヘッダファイル

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

デバイスドライバ CP7302.SYS Windows 2000 以降の OS 用ドライバ

GPC7302.INF

GPC7302.CAT

Windows 2000 以降の OS 用ドライバ インスト

ールファイル

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

CP7302.SYS Windows NT4.0 用ドライバ

GPC7302.INF Windows NT4.0 用ドライバ インストールファ

イル

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

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

ァイル

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

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

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

Help HELP.PDF Help(PDF 形式)

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

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

Page 6: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

5

第3章 導入方法

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

3.2 実行手順

同一型式のボードを複数枚使用する場合は、ボード上のロータリスイッチ RSW1 の設定値が同一

型式同士で重複しないように設定してからシステムに実装してください。

同一型式で複数のボードが存在する場合、ボードを一意に識別するための番号となります。重複

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

基本的な制御の手順は以下の通りです。

1.初期化

ボードをDcmpOpen関数で初期化します。

初期化が正常終了すると、以後、ボードへのアクセスが可能となります。

2.初期設定(外部トリガ・デジタルフィルタ)

DcmpSetTriggerConfig関数,DcmpSetFilterConfig関数を使用して外部トリガ信号、デジタルフィ

ルタの設定を行います。

3.動作パラメータ設定

DcmpSetPWM関数を使用してPWM動作周期、デューティ比を設定します。

DcmpSetEnable関数等を使用してDCモータドライバ制御を有効に設定します。

4.動作起動

DcmpStartMotion関数を使用して各動作を起動させます。

(動作モードの詳細については、DcmpStartMotion関数の備考欄を参照してください。)

5.停止

DcmpStopMotion関数でDCモータを停止させます。

7.動作状態モニタリング

DcmpGetStatus関数で動作状態のステータスをモニタリングします。

9.汎用入出力

汎用入出力の制御はDcmpOutputDO関数,DcmpInputDI関数で行います。

10.インタロック信号、外部リセット信号、リセット機能

ボード上のDCモータドライバをソフト的にリセットする場合はDcmpReset関数を実行します。

外部からインタロック信号が入力されている間は、起動関数(DcmpStartMotion関数)の実行がで

きなくなります。

Page 7: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

6

インタロック機能が作動(ボード上の LED2 が点灯)している状態では、DC モータを起動するこ

とはできませんので、ご注意下さい。

また、インタロック信号の解除後にモータを起動する場合には、DcmpSetEnable関数を実行してDC

モータドライバをイネーブルに設定する必要があります。(インタロック信号入力時に自動的に

ディセーブルに設定されます。)

11.コールバック関数

各種割り込み発生時にコールバック関数を実行することができます。

DcmpSetEventMask関数にて、コールバック関数・メッセージを実行したい要因を設定します。”1”を設定することでコールバック関数・メッセージが実行されます。

DcmpSetEvent関数でコールバック関数・メッセージの登録を行います。

12.終了処理

DcmpClose関数でデバイスの終了処理を行います。アプリケーションでは、必ずクローズ処理を行

ってから終了してください。

Page 8: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

7

第4章 リファレンス

4.1 関数一覧 No 関数名 機能

●初期化関数

1 DcmpOpen デバイスをオープンします。

2 DcmpClose デバイスをクローズします。

3 DcmpReset 各種設定の初期化、異常検出フラグのクリアを行います。

●各種設定関数

4 DcmpSetTriggerConfig 外部トリガモードの設定を行います。

5 DcmpSetFilterConfig デジタルフィルタの設定を行います。

6 DcmpSetPWM PWM 動作の周期・動作時間を設定します。

7 DcmpSetBrake 反転時ブレーキ時間の設定を行います。

8 DcmpSetEnable DC モータ制御・異常検出機能の設定を行います。

●各種設定の取得関数

9 DcmpGetTriggerConfig 外部トリガモードの設定を取得します。

10 DcmpGetFilterConfig デジタルフィルタの設定を取得します。

11 DcmpGetPWM PWM 動作の周期・動作時間の設定を取得します。

12 DcmpGetBrake 反転時ブレーキ時間の設定を取得します。

13 DcmpGetEnable DC モータ制御・異常検出機能の設定を取得します。

●モータ起動、停止関数

14 DcmpStartMotion 各種動作を起動します。

15 DcmpStopMotion 動作を停止させます。

●その他(ステータス取得、汎用入出力)

16 DcmpGetStatus 動作ステータス情報を取得します。

17 DcmpOutputDO 汎用出力を制御します。

18 DcmpInputDI 汎用入力の状態を取得します。

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

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

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

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

●割り込み設定関数

22 DcmpSetEventMask 割り込みのマスク設定を行います。

23 DcmpGetEventMask 割り込みのマスク設定を取得します。

24 DcmpSetEvent 割り込みコールバック関数、メッセージを登録します。

25 DcmpKillEvent 割り込みコールバック関数、メッセージを解除します。

Page 9: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

8

4.2 関数個別説明

1. DcmpOpen 【機能】

DC モータドライバボードのオープンを行い、以後のボードへのアクセスを行えるようにします。

【書式】

●C言語

HANDLE DcmpOpen(

LPCTSTR lpszName, // デバイス名

DWORD dwFlag // オープンフラグ

);

●Visual Basic

Declare Function DcmpOpen Lib "FbiDcmp.DLL"(

ByVal lpszName As String, ‘ デバイス名

ByVal dwFlag As Long ‘ オープンフラグ

)As Long

●Delphi

function DcmpOpen(

lpszName: String; // デバイス名

dwFlag: DWORD // オープンフラグ

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

【パラメータ】

lpszName オープンするボードのデバイス名を指定してください。

dwFlag オープンフラグを指定してください。

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

識別子 意味

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

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

DCMP_FLAG_SHARE 1 つのデバイス(ボード)を複数のプロセス(アプリケー

ション)から重複(共有)して制御することを許可するフ

ラグです。

【戻り値】

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

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

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

Page 10: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

9

【備考】

●DCMP_FLAG_SHARE の動作について

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

が可能となります。DCMP_FLAG_SHARE を指定せずにオープンされているボードに対して、

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

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

りません。

●デバイス名について

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

DC モータドライバボードのデバイス名は「FBIDCMPx」(xは 1~16)となります。デバイス名は、

RSW1 の設定値によって割り当てられます。RSW1 の設定値が 0の場合 FBIDCMP1、RSW1 の設定値

が Fの場合 FBIDCMP16 となります。複数枚ご使用になる場合は、制御するボードのデバイス名

を事前にご確認ください。

各デバイス名の確認は、Windows NT 以外の OS の場合、デバイスマネージャにて確認できます。

動作確認プログラム(DcmpMotion.exe)、または診断プログラム(DcmpDiag.exe)でも確認で

きます。

Windows NT では、動作確認プログラム(DcmpMotion.exe)または診断プログラム(DcmpDiag.exe)

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

【使用例】

●C言語

HANDLE hDeviceHandle;

hDeviceHandle = DcmpOpen(“FBIDCMP1”, DCMP_FLAG_SHARE );

●Visual Basic

Dim lpszName As String

Dim hDeviceHandle As Long

lpszName = "FBIDCMP1" & Chr( 0 )

hDeviceHandle = DcmpOpen(lpszName, DCMP_FLAG_SHARE )

●Delphi

var

lpszName: String;

hDeviceHandle: THandle;

lpszName := 'FBIDCMP1';

hDeviceHandle := DcmpOpen(lpszName, DCMP_FLAG_SHARE );

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

Page 11: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

10

2. DcmpClose 【機能】

DC モータドライバボードをクローズします。

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

スを禁止します。

【書式】

●C言語

INT DcmpClose(

HANDLE hDeviceHandle // デバイスハンドル

);

●Visual Basic

Declare Function DcmpClose Lib "FbiDcmp.DLL"(

ByVal hDeviceHandle As Long ‘ デバイスハンドル

)As Long

●Delphi

function DcmpClose (

hDeviceHandle: THandle // デバイスハンドル

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

【パラメータ】

hDeviceHandle DcmpOpen 関数で取得したデバイスハンドルを指定してください。

【戻り値】

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

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

い。

【備考】

再度、ボードへのアクセスを行う場合にはオープン処理(DcmpOpen 関数)を呼び出してください。

DC モータ動作起動中に本関数を実行した場合、DC モータ動作を停止します。

ボードクローズ後の各種設定はクリアされます。

Page 12: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

11

【使用例】

●C言語

INT nRet;

HANDLE hDeviceHandle;

hDeviceHandle = DcmpOpen(“FBIDCMP1”, DCMP_FLAG_NORMAL); :

nRet = DcmpClose(hDeviceHandle);

●Visual Basic

Dim lpszName As String

Dim hDeviceHandle As Long

lpszName = "FBIDCMP1" & Chr( 0 )

hDeviceHandle = DcmpOpen(lpszName, DCMP_FLAG_NORMAL)

nRet = DcmpClose(hDeviceHandle)

●Delphi

var

lpszName: String;

hDeviceHandle: THandle;

lpszName := 'FBIDCMP1';

hDeviceHandle := DcmpOpen(lpszName, DCMP_FLAG_NORMAL);

nRet := DcmpClose(hDeviceHandle);

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

Page 13: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

12

3. DcmpReset 【機能】

各種設定の初期化、異常検出フラグのクリアを行います。

【書式】

●C言語

INT DcmpReset(

HANDLE hDeviceHandle, // デバイスハンドル

DWORD dwChSel, // 設定チャンネル

DWORD dwMode // リセット項目

);

●Visual Basic

Declare Function DcmpReset Lib "FbiDcmp.DLL"(

ByVal hDeviceHandle As Long, ‘ デバイスハンドル

ByVal dwChSel As Long, ‘ 設定チャンネル

ByVal dwMode As Long ‘ リセット項目

)As Long

●Delphi

function DcmpReset(

hDeviceHandle: THandle; // デバイスハンドル

dwChSel: DWORD; // 設定チャンネル

dwMode: DWORD // リセット項目

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

【パラメータ】

hDeviceHandle DcmpOpen 関数で取得したデバイスハンドルを指定してください。

dwChSel PWM メモリ、動作設定等のリセットを行うチャンネルを指定してください。

ビット bit31~5 bit4 bit3 bit2 bit1 bit0

内容 予約 COM CH4 CH3 CH2 CH1

該当するビットに“1”を指定してチャンネル指定を行います。

複数チャンネルの指定が可能です。

例)CH1~CH4 の 4 チャンネル:Fh を指定

Page 14: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

13

dwMode リセット項目を指定してください。

識別子 意味

DCMP_RESET_DC 動作設定リセット

指定チャンネルの動作設定がリセットされデフォルト値

に設定されます。

DC モータ動作中の時はモータを停止します。

DCMP_CLEAR_ERR 異常検出状態クリア

異常検出フラグをクリアします。

異常検出フラグをクリアするまで、DC モータの動作を開

始することはできません。

該当する識別子を指定してリセットを行います。

動作設定リセットと異常検出状態クリアを同時に実行する場合には、それぞれの識別子を

OR で指定します。

【戻り値】

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

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

い。

【使用例】

●C言語

INT nRet;

HANDLE hDeviceHandle;

hDeviceHandle = DcmpOpen(“FBIDCMP1”, DCMP_FLAG_NORMAL); :

nRet = DcmpReset(hDeviceHandle, 0x01, DCMP_RESET_DCMOTION);

●Visual Basic

Dim lpszName As String

Dim hDeviceHandle As Long

lpszName = "FBIDCMP1" & Chr( 0 )

hDeviceHandle = DcmpOpen(lpszName, DCMP_FLAG_NORMAL)

nRet = DcmpReset(hDeviceHandle, &H01, DCMP_RESET_DC)

Page 15: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

14

●Delphi

var

lpszName: String;

hDeviceHandle: THandle;

lpszName := 'FBIDCMP1';

hDeviceHandle := DcmpOpen(lpszName, DCMP_FLAG_NORMAL);

nRet := DcmpReset(hDeviceHandle, $01, DCMP_RESET_DC);

デバイス名「FBIDCMP1」のデバイスのチャンネル 1の動作設定をリセットします。

Page 16: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

15

4. DcmpSetTriggerConfig 【機能】

外部トリガモードの設定を行います。

【書式】

●C言語

INT DcmpSetTriggerConfig(

HANDLE hDeviceHandle, // デバイスハンドル

DWORD dwChSel, // 設定チャンネル

PDCMPTRGCONFIG pTrgConfig // 外部トリガモード設定用

// 構造体へのポインタ

);

●Visual Basic

Declare Function DcmpSetTriggerConfig Lib "FbiDcmp.DLL"(

ByVal hDeviceHandle As Long, ‘ デバイスハンドル

ByVal dwChSel As Long, ‘ 設定チャンネル

ByRef pTrgConfig As DCMPTRGCONFIG ‘ 外部トリガモード設定用

‘ 構造体への参照渡し

)As Long

●Delphi

function DcmpSetTriggerConfig(

hDeviceHandle: THandle; // デバイスハンドル

dwChSel: DWORD; // 設定チャンネル

var pTrgConfig: DCMPTRGCONFIG // 外部トリガモード設定用

// 構造体への参照渡し

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

【パラメータ】

hDeviceHandle DcmpOpen 関数で取得したボードのデバイスハンドルを指定してください。

dwChSel 設定を行うチャンネルを指定してください。

ビット bit31~4 bit3 bit2 bit1 bit0

内容 予約 CH4 CH3 CH2 CH1

該当するビットに”1”を指定してチャンネル指定を行います。

複数チャンネルの指定が可能です。

例)CH1~CH4 の 4 チャンネル指定時:Fh を指定

Page 17: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

16

pTrgConfig 外部トリガモード設定構造体へのポインタを指定してください。

構造体の説明については、『4.3 構造体』をご参照ください。

【戻り値】

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

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

い。

【備考】

複数のチャンネルに異なるデータを同時に設定することが可能です。

チャンネル毎に別々のデータを設定するため、構造体配列で設定します。

構造体配列での設定のしかたは下記のようになります。

例(C言語)

DCMPTRGCONFIG TrgConfig[4];

TrgConfig[0] → CH1 のトリガ設定

(必ず配列要素 0 は CH1 のトリガ設定とします)

TrgConfig[1] → CH2 のトリガ設定

(必ず配列要素 1 は CH2 のトリガ設定とします)

TrgConfig[2] → CH3 のトリガ設定

(必ず配列要素 2 は CH3 のトリガ設定とします)

TrgConfig[3] → CH4 のトリガ設定

(必ず配列要素 3 は CH4 のトリガ設定とします)

【注意】

例えば CH4 のトリガのみを設定する場合にも、上記のように配列を宣言します。

CH4 のトリガモード設定は 4番目の DCMPTRGCONFIG 型の配列に設定してください。

関数に設定する時はその配列の先頭のアドレスを pTrgConfig に設定してください。

【使用例】

●C言語

INT nRet;

HANDLE hDeviceHandle;

DCMPTRGCONFIG TrgConfig[4];

hDeviceHandle = DcmpOpen(“FBIDCMP1”, DCMP_FLAG_NORMAL); :

TrgConfig[1].dwMode = DCMP_TRG_MODE1;

TrgConfig[1].dwLine = 0x0F;

TrgConfig[1].dwLogic = 0x00;

nRet = DcmpSetTriggerConfig(hDeviceHandle, 0x02, TrgConfig);

Page 18: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

17

●Visual Basic

Dim lpszName As String

Dim hDeviceHandle As Long

Dim TrgConfig(0 To 3) As DCMPTRGCONFIG

lpszName = "FBIDCMP1" & Chr( 0 )

hDeviceHandle = DcmpOpen(lpszName, DCMP_FLAG_NORMAL)

TrgConfig(1).dwMode = DCMP_TRG_MODE1

TrgConfig(1).dwLine = &H0F

TrgConfig(1).dwLogic = &H00

nRet = DcmpSetTriggerConfig(hDeviceHandle, &H02, TrgConfig(0))

●Delphi

var

lpszName: String;

hDeviceHandle: THandle;

TrgConfig: array[0..3] of DCMPTRGCONFIG;

lpszName := 'FBIDCMP1';

hDeviceHandle := DcmpOpen(lpszName, DCMP_FLAG_NORMAL);

TrgConfig[1].dwMode := DCMP_TRG_MODE1;

TrgConfig[1].dwLine := $0F;

TrgConfig[1].dwLogic := $00;

nRet := DcmpSetTriggerConfig(hDeviceHandle, $02, TrgConfig[0]);

デバイス名「FBIDCMP1」のデバイスのチャンネル 2をトリガモード 1(エンドリミットモード)、

IN11~IN14 有効、トリガ条件反転なしに設定します。

Page 19: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

18

5. DcmpSetFilterConfig 【機能】

デジタルフィルタの設定を行います。

【書式】

●C言語

INT DcmpSetFilter(

HANDLE hDeviceHandle, // デバイスハンドル

DWORD dwChSel, // チャンネル設定

PDWORD pdwFilter // デジタルフィルタ設定用配列

// へのポインタ

);

●Visual Basic

Declare Function DcmpSetFilter Lib "FbiDcmp.DLL"(

ByVal hDeviceHandle As Long, ‘ デバイスハンドル

ByVal dwChSel As Long, ‘ チャンネル設定

ByRef pdwFilter As Long ‘ デジタルフィルタ設定用配列

‘ への参照渡し

)As Long

●Delphi

function DcmpSetFilter(

hDeviceHandle: THandle; // デバイスハンドル

dwChSel: DWORD; // チャンネル設定

var pdwFilter: DWORD // デジタルフィルタ設定用配列

// への参照渡し

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

【パラメータ】

hDeviceHandle DcmpOpen 関数で取得したボードのデバイスハンドルを指定してください。

dwChSel 設定を行うチャンネルを指定してください。

ビット bit31~4 bit3 bit2 bit1 bit0

内容 予約 CH4 CH3 CH2 CH1

該当するビットに”1”を指定してチャンネル指定を行います。

複数のチャンネル指定が可能です。

例)CH1~CH4 の 4 チャンネル指定時:Fh を指定

pdwFilter デジタルフィルタ設定用配列へのポインタを指定してください。

各チャンネル毎の配列のデータは、下記の内容になります。

Page 20: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

19

ビット bit31~4 bit3 bit2 bit1 bit0

内容 予約 ITC2 ITC1 ICK2 ICK1

ITC1、ITC2、ICK1、ICK2:INn1 信号のデジタルフィルタを設定します。

ICK2,ICK1 00 01 10 11

ITC2,ITC1 CLK

分周値 100μ 1m 10m 100m

00 0 無し 無し 無し 無し

01 1 100μ 1m 10m 100m

10 4 400μ 4m 40m 400m

11 8 800μ 8m 80m 800m

各チャンネルの INn1~INn4 までの汎用入力の端子に、それぞれ個別のデジタルフィルタ

を設定可能です。

また、複数チャンネルの設定を同時に行う為に、配列を使用して設定値を指定します。※

【戻り値】

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

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

い。

【備考】

複数のチャンネルに異なるデータを同時に設定することが可能です。

チャンネル毎に別々のデータを設定するため、配列で設定します。

配列での設定のしかたは下記のようになります。

例(C言語)

DWORD dwFilter[4][4];

dwFilter[0][0] ~ dwFilter[0][3] → CH1 のデジタルフィルタ設定

(必ず配列要素 0 は CH1 のデジタルフィルタ設定とします)

dwFilter[1][0] ~ dwFilter[1][3] → CH2 のデジタルフィルタ設定

(必ず配列要素 1 は CH2 のデジタルフィルタ設定とします)

dwFilter[2][0] ~ dwFilter[2][3] → CH3 のデジタルフィルタ設定

(必ず配列要素 2 は CH3 のデジタルフィルタ設定とします)

dwFilter[3][0] ~ dwFilter[3][3] → CH4 のデジタルフィルタ設定

(必ず配列要素 3 は CH4 のデジタルフィルタ設定とします)

【注意】

例えば CH4 のデジタルフィルタのみを設定する場合にも、上記のように配列を宣言します。

CH4のデジタルフィルタ設定はdwFilter[3][0]~dwFilter[3][3]の DWORD型の配列に設定して

ください。

また、dwFilter[3][0]には IN41 のフィルタ設定、dwFilter[3][1]には IN42 のフィルタ設定の

様に、各端子毎のフィルタ設定を 2次元配列で設定してください。

関数に設定する時はその配列の先頭のアドレスを pdwFilter に設定してください。

Page 21: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

20

【使用例】

●C言語

INT nRet;

HANDLE hDeviceHandle;

DWORD dwFilter[4][4];

hDeviceHandle = DcmpOpen(“FBIDCMP1”, DCMP_FLAG_NORMAL); :

dwFilter[0][0] = 0x05;

dwFilter[0][1] = 0x00;

dwFilter[0][2] = 0x00;

dwFilter[0][3] = 0x00;

dwFilter[1][0] = 0x05;

dwFilter[1][1] = 0x00;

dwFilter[1][2] = 0x00;

dwFilter[1][3] = 0x00;

nRet = DcmpSetFilterConfig(hDeviceHandle, 0x03, &dwFilter[0][0]);

●Visual Basic

Dim lpszName As String

Dim hDeviceHandle As Long

Dim dwFilter(0 To 3, 0 To 3) As Long

lpszName = "FBIDCMP1" & Chr( 0 )

hDeviceHandle = DcmpOpen(lpszName, DCMP_FLAG_NORMAL)

dwFilter(0)(0) = &H05

dwFilter(0)(1) = &H00

dwFilter(0)(2) = &H00

dwFilter(0)(3) = &H00

dwFilter(1)(0) = &H05

dwFilter(1)(1) = &H00

dwFilter(1)(2) = &H00

dwFilter(1)(3) = &H00

nRet = DcmpSetFilterConfig(hDeviceHandle, &H03, dwFilter(0)(0))

Page 22: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

21

●Delphi

var

lpszName: String;

hDeviceHandle: THandle;

dwFilter: array[0..3, 0..3] of DWORD;

lpszName := 'FBIDCMP1';

hDeviceHandle := DcmpOpen(lpszName, DCMP_FLAG_NORMAL);

dwFilter[0][0] := $05;

dwFilter[0][1] := $00;

dwFilter[0][2] := $00;

dwFilter[0][3] := $00;

dwFilter[1][0] := $05;

dwFilter[1][1] := $00;

dwFilter[1][2] := $00;

dwFilter[1][3] := $00;

nRet = DcmpSetFilterConfig(hDeviceHandle, $03, dwFilter[0][0]);

デバイス名「FBIDCMP1」のデバイスの CH1,CH2 のデジタルフィルタをフィルタ周期 1ms、INn1

端子に設定します。

Page 23: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

22

6. DcmpSetPWM 【機能】

PWM 動作の周期・動作時間を設定します。

【書式】

●C言語

INT DcmpSetPWM(

HANDLE hDeviceHandle, // デバイスハンドル

DWORD dwChSel, // チャンネル設定

PDCMPPWMTIME pTime // PWM 制御の設定用構造体への

// ポインタ

);

●Visual Basic

Declare Function DcmpSetPWM Lib "FbiDcmp.DLL"(

ByVal hDeviceHandle As Long, ‘ デバイスハンドル

ByVal dwChSel As Long, ‘ チャンネル設定

ByRef pTime As DCMPPWMTIME ‘ PWM 制御の設定用構造体への

‘ 参照渡し

)As Long

●Delphi

function DcmpSetPWM(

hDeviceHandle: THandle; // デバイスハンドル

dwChSel: DWORD; // チャンネル設定

var pTime: DCMPPWMTIME // PWM 制御の設定用構造体への

// 参照渡し

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

【パラメータ】

hDeviceHandle DcmpOpen 関数で取得したボードのデバイスハンドルを指定してください。

dwChSel 設定を行うチャンネルを指定してください。

ビット bit31~4 bit3 bit2 bit1 bit0

内容 予約 CH4 CH3 CH2 CH1

該当するビットに”1”を指定してチャンネル指定を行います。

複数のチャンネル指定が可能です。

例)CH1~CH4 の 4 チャンネル指定時:Fh を指定

pTime PWM 制御の設定用構造体へのポインタを指定してください。

構造体の説明については、『4.3 構造体』をご参照ください。

Page 24: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

23

【戻り値】

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

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

い。

【備考】

複数のチャンネルに異なるデータを同時に設定することが可能です。

チャンネル毎に別々のデータを設定するため、構造体配列で設定します。

構造体配列での設定のしかたは下記のようになります。

例(C言語)

DCMPPWMTIME Time[4];

Time[0] → CH1 の PWM 制御設定

(必ず配列要素 0 は CH1 の PWM 制御設定とします)

Time[1] → CH2 の PWM 制御設定

(必ず配列要素 1 は CH2 の PWM 制御設定とします)

Time[2] → CH3 の PWM 制御設定

(必ず配列要素 2 は CH3 の PWM 制御設定とします)

Time[3] → CH4 の PWM 制御設定

(必ず配列要素 3 は CH4 の PWM 制御設定とします)

【注意】

例えば CH4 の PWM 制御のみを設定する場合にも、上記のように配列を宣言します。

CH4 の PWM 制御設定は 4番目の DCMPPWMTIME 型の配列に設定してください。

関数に設定する時はその配列の先頭のアドレスを pTime に設定してください。

【使用例】

●C言語

INT nRet;

HANDLE hDeviceHandle;

DCMPPWMTIME Time[4];

hDeviceHandle = DcmpOpen(“FBIDCMP1”, DCMP_FLAG_NORMAL); :

// PWM 周期を 1[ms]に設定

// PWM 動作時間を 500[us]に設定

Time[0].dwBaseClock = DCMP_BCLOCK_1US;

Time[0].dwCycleTime = 1000;

Time[0].dwMoveTime = 500;

nRet = DcmpSetPWM(hDeviceHandle, 0x01, Time);

Page 25: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

24

●Visual Basic

Dim lpszName As String

Dim hDeviceHandle As Long

Dim Time(0 To 3) As DCMPPWMTIME

lpszName = "FBIDCMP1" & Chr( 0 )

hDeviceHandle = DcmpOpen(lpszName, DCMP_FLAG_NORMAL)

‘ PWM 周期を 1[ms]に設定

‘ PWM 動作時間を 500[us]に設定

Time(0).dwBaseClock = DCMP_BCLOCK_1US

Time(0).dwCycleTime = 1000

Time(0).dwMoveTime = 500

nRet = DcmpSetPWM(hDeviceHandle, &H01, Time(0))

●Delphi

var

lpszName: String;

hDeviceHandle: THandle;

Time: array[0..3] of DCMPPWMTIME;

lpszName := 'FBIDCMP1';

hDeviceHandle := DcmpOpen(lpszName, DCMP_FLAG_NORMAL);

// PWM 周期を 1[ms]に設定

// PWM 動作時間を 500[us]に設定

Time[0].dwBaseClock := DCMP_BCLOCK_1US;

Time[0].dwCycleTime := 1000;

Time[0].dwMoveTime := 500;

nRet := DcmpSetPWM(hDeviceHandle, $01, Time[0]);

デバイス名「FBIDCMP1」のデバイスの CH1 の PWM 制御設定を周期 1[ms]、動作時間 500[us]に

設定します。

Page 26: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

25

7. DcmpSetBrake 【機能】

DC モータの動作方向切り替え時の、動作遅延時間(反転時ブレーキ時間)の設定を行います。

【書式】

●C言語

INT DcmpSetSBrake(

HANDLE hDeviceHandle, // デバイスハンドル

DWORD dwChSel, // チャンネル設定

PDCMPBRAKETIME pBrake // 反転時ブレーキ時間設定用構造体

// へのポインタ

);

●Visual Basic

Declare Function DcmpSetSBrake Lib "FbiDcmp.DLL"(

ByVal hDeviceHandle As Long, ‘ デバイスハンドル

ByVal dwChSel As Long, ‘ チャンネル設定

ByRef pBrake As DCMPBRAKETIME ‘ 反転時ブレーキ時間設定用構造体

‘ への参照渡し

)As Long

●Delphi

function DcmpSetSBrake(

hDeviceHandle: THandle; // デバイスハンドル

dwChSel: DWORD; // チャンネル設定

var pBrake: DCMPBRAKETIME // 反転時ブレーキ時間設定用構造体

// への参照渡し

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

【パラメータ】

hDeviceHandle DcmpOpen 関数で取得したボードのデバイスハンドルを指定してください。

dwChSel 設定を行うチャンネルを指定してください。

ビット bit31~4 bit3 bit2 bit1 bit0

内容 予約 CH4 CH3 CH2 CH1

該当するビットに”1”を指定してチャンネル指定を行います。

複数のチャンネル指定が可能です。

例)CH1~CH4 の 4 チャンネル指定時:Fh を指定

Page 27: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

pBrake 反転時ブレーキ時間の設定用構造体へのポインタを指定してください。

構造体の説明については、『4.3 構造体』をご参照ください。

【戻り値】

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

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

い。

【備考】

反転時ブレーキ時間の設定を行うと、正転/逆転動作中に外部トリガ又はソフトコマンドによ

る反転動作を行った際に、DC モータの負荷を軽減するために動作方向切り替えのタイミングで

ブレーキ時間が挿入されます。

回転速度

正転:スタート

正転

逆転

反転(トリガ/コマンド)

逆転:スタート

反転時ブレーキ時間

反転(トリガ/コマンド)

複数のチャンネルに異なるデータを同時に設定することが可能です。

チャンネル毎に別々のデータを設定するため、構造体配列で設定します。

構造体配列での設定のしかたは下記のようになります。

例(C言語)

DCMPBRAKETIME Brake[4];

Brake[0] → CH1 の反転時ブレーキ時間設定

(必ず配列要素 0 は CH1 の反転時ブレーキ時間設定とします)

Brake[1] → CH2 の反転時ブレーキ時間設定

(必ず配列要素 1 は CH2 の反転時ブレーキ時間設定とします)

Brake[2] → CH3 の反転時ブレーキ時間設定

(必ず配列要素 2 は CH3 の反転時ブレーキ時間設定とします)

Brake[3] → CH4 の反転時ブレーキ時間設定

(必ず配列要素 3 は CH4 の反転時ブレーキ時間設定とします)

【注意】

例えば CH4 の反転時ブレーキ時間のみを設定する場合にも、上記のように配列を宣言します。

CH4 の反転時ブレーキ時間設定は 4番目の DCMPBRAKETIME 型の配列に設定してください。

関数に設定する時はその配列の先頭のアドレスを pBrake に設定してください。

© 2003, 2011 Interface Corporation. All rights reserved.

26

Page 28: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

27

【使用例】

●C言語

INT nRet;

HANDLE hDeviceHandle;

DCMPBRAKETIME Brake[4];

hDeviceHandle = DcmpOpen(“FBIDCMP1”, DCMP_FLAG_NORMAL); :

// 反転時ブレーキ時間を 100[us]に設定(CH1)

Brake[0].dwBaseClock = DCMP_BCLOCK_1US;

Brake[0].dwBrakeTime = 100;

// 反転時ブレーキ時間を 1[ms]に設定(CH4)

Brake[3].dwBaseClock = DCMP_BCLOCK_1MS;

Brake[3].dwBrakeTime = 100;

nRet = DcmpSetBrake(hDeviceHandle, 0x09, Brake);

●Visual Basic

Dim lpszName As String

Dim hDeviceHandle As Long

Dim Brake(0 To 3) As DCMPBRAKETIME

lpszName = "FBIDCMP1" & Chr( 0 )

hDeviceHandle = DcmpOpen(lpszName, DCMP_FLAG_NORMAL)

‘ 反転時ブレーキ時間を 100[us]に設定(CH1)

Brake(0).dwBaseClock = DCMP_BCLOCK_1US

Brake(0).dwBrakeTime = 100

‘ 反転時ブレーキ時間を 1[ms]に設定(CH4)

Brake(3).dwBaseClock = DCMP_BCLOCK_1MS

Brake(3).dwBrakeTime = 100

nRet = DcmpSetBrake(hDeviceHandle, &H09, Brake(0));

Page 29: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

28

●Delphi

var

lpszName: String;

hDeviceHandle: THandle;

Brake: array[0..3] of DCMPBRAKETIME;

lpszName := 'FBIDCMP1';

hDeviceHandle := DcmpOpen(lpszName, DCMP_FLAG_NORMAL);

// 反転時ブレーキ時間を 100[us]に設定(CH1)

Brake[0].dwBaseClock := DCMP_BCLOCK_1US;

Brake[0].dwBrakeTime := 100;

// 反転時ブレーキ時間を 1[ms]に設定(CH4)

Brake[3].dwBaseClock := DCMP_BCLOCK_1MS;

Brake[3].dwBrakeTime := 100;

nRet := DcmpSetBrake(hDeviceHandle, $09, Brake[0]);

デバイス名「FBIDCMP1」のデバイスの CH1 と CH4 に、DC モータの動作方向切り替え時の動作遅

延時間の設定を行います

Page 30: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

29

8. DcmpSetEnable 【機能】

DC モータ制御・異常検出機能の設定を行います。

【書式】

●C言語

INT DcmpSetEnable(

HANDLE hDeviceHandle, // デバイスハンドル

DWORD dwEnable, // DC モータ制御の設定

DWORD dwErrDetect, // 異常検出機能の設定

DWORD dwReserved // 予約

);

●Visual Basic

Declare Function DcmpSetEnable Lib "FbiDcmp.DLL"(

ByVal hDeviceHandle As Long, ‘ デバイスハンドル

ByVal dwEnable As Long, ‘ DC モータ制御の設定

ByVal dwErrDetect As Long, ‘ 異常検出機能の設定

ByVal dwReserved As Long ‘ 予約

)As Long

●Delphi

function DcmpSetEnable(

hDeviceHandle: THandle; // デバイスハンドル

dwEnable: DWORD; // DC モータ制御の設定

dwErrDetect: DWORD; // 異常検出機能の設定

dwReserved: DWORD // 予約

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

【パラメータ】

hDeviceHandle DcmpOpen 関数で取得したボードのデバイスハンドルを指定してください。

dwEnable DC モータ制御機能の有効/無効を設定します。

ビット bit31~4 bit3 bit2 bit1 bit0

内容 予約 CH4 CH3 CH2 CH1

ビットに”1”を指定すると、対応するチャンネルの DC モータ制御機能が有効になります。

ビットに“0”を指定すると、対応するチャンネルの DC モータ制御機能が無効になります。

無効に設定されたチャンネルでは DcmpStartMotion 関数を実行しても制御出力は行われま

せん。

例)CH1~CH4 の 4 チャンネルの DC モータ制御機能を有効:Fh を指定

Page 31: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

30

dwErrDetect 異常検出機能の有効/無効を設定します。

ビット bit15~4 bit3 bit2 bit1 bit0

内容 予約 CH4 CH3 CH2 CH1

ビットに”1”を指定すると、対応するチャンネルの異常検出機能が有効になります。

ビットに“0”を指定すると、対応するチャンネルの異常検出機能が無効になります。

例)CH1~CH4 の 4 チャンネルの異常検出機能を有効:Fh を指定

dwReserved 将来拡張用の領域です、0を指定してください。

【戻り値】

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

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

い。

【使用例】

●C言語

INT nRet;

HANDLE hDeviceHandle;

hDeviceHandle = DcmpOpen(“FBIDCMP1”, DCMP_FLAG_NORMAL); :

nRet = DcmpSetEnable(hDeviceHandle, 0x01, 0x01, 0);

●Visual Basic

Dim lpszName As String

Dim hDeviceHandle As Long

lpszName = "FBIDCMP1" & Chr( 0 )

hDeviceHandle = DcmpOpen(lpszName, DCMP_FLAG_NORMAL)

nRet = DcmpSetEnable(hDeviceHandle, &H01, &H01, 0)

Page 32: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

31

●Delphi

var

lpszName: String;

hDeviceHandle: THandle;

lpszName := 'FBIDCMP1';

hDeviceHandle := DcmpOpen(lpszName, DCMP_FLAG_NORMAL);

nRet := DcmpSetEnable(hDeviceHandle, $01, $01, 0);

デバイス名「FBIDCMP1」のデバイスの CH1 の DC モータ制御機能、異常検出機能を有効に設定

します。

Page 33: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

32

9. DcmpGetTriggerConfig 【機能】

外部トリガモードの設定を取得します。

【書式】

●C言語

INT DcmpGetTriggerConfig(

HANDLE hDeviceHandle, // デバイス番号

DWORD dwChSel, // 取得チャンネル

PDCMPTRGCONFIG pTrgConfig // 取得値を格納する構造体への

// ポインタ

);

●Visual Basic

Declare Function DcmpGetTriggerConfig Lib "FbiDcmp.DLL"(

ByVal hDeviceHandle As Long, ‘ デバイス番号

ByVal dwChSel As Long, ‘ 取得チャンネル

ByRef pTrgConfig As DCMPTRGCONFIG ‘ 取得値を格納する構造体への

‘ 参照渡し

)As Long

●Delphi

function DcmpGetTriggerConfig(

hDeviceHandle: THandle; // デバイス番号

dwChSel: DWORD; // 取得チャンネル

var pTrgConfig: DCMPTRGCONFIG // 取得値を格納する構造体への

// 参照渡し

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

【パラメータ】

hDeviceHandle DcmpOpen 関数で取得したボードのデバイスハンドルを指定してください。

dwChSel 取得を行うチャンネルを指定してください。

ビット bit31~4 bit3 bit2 bit1 bit0

内容 予約 CH4 CH3 CH2 CH1

該当するビットに”1”を指定してチャンネル指定を行います。

複数チャンネルの指定が可能です。

例)CH1~CH4 の 4 チャンネル指定時:Fh を指定

Page 34: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

33

pTrgConfig 外部トリガモード設定構造体へのポインタを指定してください。

構造体の説明については、『4.3 構造体』をご参照ください。

【戻り値】

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

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

い。

【備考】

複数のチャンネルのデータを同時に取得することが可能です。

チャンネル毎に別々のデータを取得するため、構造体配列で取得します。

構造体配列での取得のしかたは下記のようになります。

例(C言語)

DCMPTRGCONFIG TrgConfig[4];

TrgConfig[0] → CH1 のトリガモード設定

(必ず配列要素 0 は CH1 のトリガモード設定を取得します)

TrgConfig[1] → CH2 のトリガモード設定

(必ず配列要素 1 は CH2 のトリガモード設定を取得します)

TrgConfig[2] → CH3 のトリガモード設定

(必ず配列要素 2 は CH3 のトリガモード設定を取得します)

TrgConfig[3] → CH4 のトリガモード設定

(必ず配列要素 3 は CH4 のトリガモード設定を取得します)

【注意】

例えば CH4 のトリガモードのみを取得する場合にも、上記のように配列を宣言します。

CH4 のトリガモード設定は 4番目の DCMPTRGCONFIG 型の配列に取得されます。

関数を実行する時はその配列の先頭のアドレスを pTrgConfig に指定してください。

CH4 のみを指定している場合には、配列要素の 1~3番目までの構造体の値は不定値となります、

指定していない CH の構造体データは参照しないでください。

Page 35: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

34

【使用例】

●C言語

INT nRet, i;

HANDLE hDeviceHandle;

DCMPTRGCONFIG TrgConfig[4];

hDeviceHandle = DcmpOpen(“FBIDCMP1”, DCMP_FLAG_NORMAL); :

nRet = DcmpGetTriggerConfig(hDeviceHandle, 0x0F, TrgConfig);

if(nRet == DCMP_ERROR_SUCCESS){

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

printf(“CH%d:\n”, i+1); printf(“ TrgMode=%d\n”, TrgConfig[i].dwMode); printf(“ TrgLine=%xh\n”, TrgConfig[i].dwLine); printf(“ TrgLogic=%xh\n”, TrgConfig[i].dwLogic); }

}

●Visual Basic

Dim lpszName As String

Dim hDeviceHandle As Long

Dim TrgConfig(0 To 3) As DCMPTRGCONFIG

lpszName = "FBIDCMP1" & Chr( 0 )

hDeviceHandle = DcmpOpen(lpszName, DCMP_FLAG_NORMAL)

nRet = DcmpGetTriggerConfig(hDeviceHandle, &H0F, TrgConfig(0))

●Delphi

var

lpszName: String;

hDeviceHandle: THandle;

TrgConfig: array[0..3] of DCMPTRGCONFIG;

lpszName := 'FBIDCMP1';

hDeviceHandle := DcmpOpen(lpszName, DCMP_FLAG_NORMAL);

nRet := DcmpGetTriggerConfig(hDeviceHandle, $0F, TrgConfig[0]);

デバイス名「FBIDCMP1」のデバイスの CH1~CH4 のストップトリガ設定を取得します。

Page 36: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

35

10. DcmpGetFilterConfig

【機能】

デジタルフィルタの設定を取得します。

【書式】

●C言語

INT DcmpGetFilter(

HANDLE hDeviceHandle, // デバイス番号

DWORD dwChSel, // 取得チャンネル

PDWORD pdwFilter // デジタルフィルタ設定値取得

// 用の配列へのポインタ

);

●Visual Basic

Declare Function DcmpGetFilter Lib "FbiDcmp.DLL"(

ByVal hDeviceHandle, As Long, ‘ デバイス番号

ByVal dwChSel, As Long, ‘ 取得チャンネル

ByRef pdwFilter As Long ‘ デジタルフィルタ設定値取得用

‘ の配列への参照渡し

)As Long

●Delphi

function DcmpGetFilter(

hDeviceHandle: THandle; // デバイス番号

dwChSel: DWORD; // 取得チャンネル

var pdwFilter: DWORD // デジタルフィルタ設定値取得

// 用の配列への参照渡し

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

【パラメータ】

hDeviceHandle DcmpOpen 関数で取得したボードのデバイスハンドルを指定してください。

dwChSel 取得する軸を指定してください。

ビット bit31~4 bit3 bit2 bit1 bit0

内容 予約 CH4 CH3 CH2 CH1

該当するビットに”1”を指定して チャンネル指定を行います。

複数チャンネルの指定が可能です。

例)CH1~CH4 の 4 チャンネル指定時:Fh を指定

pdwFilter デジタルフィルタ取得用配列へのポインタを指定してください。

ビット bit31~4 bit3 bit2 bit1 bit0

内容 予約 ITC2 ITC1 ICK2 ICK1

Page 37: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

36

ITC1、ITC2、ICK1、ICK2:INn1 信号のデジタルフィルタを設定します。

ICK2,ICK1 00 01 10 00

ITC2,ITC1 CLK

分周値 100μ 1m 10m 100m

00 0 無し 無し 無し 無し

01 1 100μ 1m 10m 100m

10 4 400μ 4m 40m 400m

11 8 800μ 8m 80m 800m

【戻り値】

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

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

い。

【備考】

複数のチャンネルのデータを同時に取得することが可能です。

チャンネル毎に別々のデータを取得するため、構造体配列で取得します。

構造体配列での取得のしかたは下記のようになります。

例(C言語)

DWORD dwFilter[4][4];

dwFilter[0][0] ~ dwFilter[0][3] → CH1 のデジタルフィルタ設定

(必ず配列要素 0 は CH1 のデジタルフィルタ設定を取得します)

dwFilter[1][0] ~ dwFilter[1][3] → CH2 のデジタルフィルタ設定

(必ず配列要素 1 は CH2 のデジタルフィルタ設定を取得します)

dwFilter[2][0] ~ dwFilter[2][3] → CH3 のデジタルフィルタ設定

(必ず配列要素 2 は CH3 のデジタルフィルタ設定を取得します)

dwFilter[3][0] ~ dwFilter[3][3] → CH4 のデジタルフィルタ設定

(必ず配列要素 3 は CH4 のデジタルフィルタ設定を取得します)

【注意】

例えば CH4 のデジタルフィルタのみを取得する場合にも、上記のように配列を宣言します。

CH4 のデジタルフィルタ設定は 4番目の DWORD 型の配列に取得されます。

関数を実行する時はその配列の先頭のアドレスを pwFilter に指定してください。

CH4 のみを指定している場合には、配列要素の 1~3番目までの構造体の値は不定値となります、

指定していない CH の配列データは参照しないでください。

Page 38: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

37

【使用例】

●C言語

INT nRet, i;

HANDLE hDeviceHandle;

DWORD dwFilter[4][4];

hDeviceHandle = DcmpOpen(“FBIDCMP1”, DCMP_FLAG_NORMAL); :

nRet = DcmpGetFilter(hDeviceHandle, 0x0F, &dwFilter[0][0]);

if(nRet == DCMP_ERROR_SUCCESS){

for(i=0, i<4, i++){

printf(“CH%d:\n”, i+1); printf(“ Filter =%lxh\n”, dwFilter[i][0]); }

}

●Visual Basic

Dim lpszName As String

Dim hDeviceHandle As Long

Dim dwFilter(0 To 3, 0 To 3) As Long

lpszName = "FBIDCMP1" & Chr( 0 )

hDeviceHandle = DcmpOpen(lpszName, DCMP_FLAG_NORMAL)

nRet = DcmpGetFilter(hDeviceHandle, &H0F, dwFilter(0)(0))

●Delphi

var

lpszName: String;

hDeviceHandle: THandle;

dwFilter: array[0..3, 0..3] of DWORD;

lpszName := 'FBIDCMP1';

hDeviceHandle := DcmpOpen(lpszName, DCMP_FLAG_NORMAL);

nRet := DcmpGetFilter(hDeviceHandle, $0F, dwFilter[0][0]);

デバイス名「FBIDCMP1」のデバイスの CH1~CH4 のデジタルフィルタ設定値を取得します。

Page 39: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

38

11. DcmpGetPWM

【機能】

PWM 動作の周期・動作時間の設定を取得します。

【書式】

●C言語

INT DcmpGetPWM(

HANDLE hDeviceHandle, // デバイスハンドル

DWORD dwChSel, // チャンネル設定

PDCMPPWMTIME pTime // PWM 制御の取得用構造体への

// ポインタ

);

●Visual Basic

Declare Function DcmpGetPWM Lib "FbiDcmp.DLL"(

ByVal hDeviceHandle As Long, ‘ デバイスハンドル

ByVal dwChSel As Long, ‘ チャンネル設定

ByRef pTime As DCMPPWMTIME ‘ PWM 制御の取得用構造体への

‘ 参照渡し

)As Long

●Delphi

function DcmpGetPWM(

hDeviceHandle: THandle; // デバイスハンドル

dwChSel: DWORD; // チャンネル設定

var pTime: DCMPPWMTIME // PWM 制御の取得用構造体への

// 参照渡し

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

【パラメータ】

hDeviceHandle DcmpOpen 関数で取得したボードのデバイスハンドルを指定してください。

dwChSel 取得を行うチャンネルを指定してください。

ビット bit31~4 bit3 bit2 bit1 bit0

内容 予約 CH4 CH3 CH2 CH1

該当するビットに”1”を指定してチャンネル指定を行います。

複数のチャンネル指定が可能です。

例)CH1~CH4 の 4 チャンネル指定時:Fh を指定

pTime PWM 制御の取得用構造体へのポインタを指定してください。

構造体の説明については、『4.3 構造体』をご参照ください。

Page 40: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

39

【戻り値】

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

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

い。

【備考】

複数のチャンネルに異なるデータを同時に取得することが可能です。

チャンネル毎に別々のデータを取得するため、構造体配列で取得します。

構造体配列での取得のしかたは下記のようになります。

例(C言語)

DCMPPWMTIME Time[4];

Time[0] → CH1 の PWM 制御設定

(必ず配列要素 0 は CH1 の PWM 制御設定を取得します)

Time[1] → CH2 の PWM 制御設定

(必ず配列要素 1 は CH2 の PWM 制御設定を取得します)

Time[2] → CH3 の PWM 制御設定

(必ず配列要素 2 は CH3 の PWM 制御設定を取得します)

Time[3] → CH4 の PWM 制御設定

(必ず配列要素 3 は CH4 の PWM 制御設定を取得します)

【注意】

例えば CH4 の PWM 制御のみを取得する場合にも、上記のように配列を宣言します。

CH4 の PWM 制御設定は 4番目の DCMPPWMTIME 型の配列に格納されます。

関数を実行する時はその配列の先頭のアドレスを pTime に設定してください。

CH4 のみを指定している場合には、配列要素の 1~3番目までの構造体の値は不定値となります、

指定していない CH の構造体データは参照しないでください。

Page 41: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

40

【使用例】

●C言語

INT nRet;

HANDLE hDeviceHandle;

DCMPPWMTIME Time[4];

hDeviceHandle = DcmpOpen(“FBIDCMP1”, DCMP_FLAG_NORMAL); :

nRet = DcmpGetPWM(hDeviceHandle, 0x0F, Time);

●Visual Basic

Dim lpszName As String

Dim hDeviceHandle As Long

Dim Time(0 To 3) As DCMPPWMTIME

lpszName = "FBIDCMP1" & Chr( 0 )

hDeviceHandle = DcmpOpen(lpszName, DCMP_FLAG_NORMAL)

nRet = DcmpGetPWM(hDeviceHandle, &H01, Time(0))

●Delphi

var

lpszName: String;

hDeviceHandle: THandle;

Time: array[0..3] of DCMPPWMTIME;

lpszName := 'FBIDCMP1';

hDeviceHandle := DcmpOpen(lpszName, DCMP_FLAG_NORMAL);

nRet := DcmpGetPWM(hDeviceHandle, $01, Time[0]);

デバイス名「FBIDCMP1」のデバイスの CH1~CH4 の PWM 制御設定を取得します。

Page 42: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

41

12. DcmpGetBrake

【機能】

DC モータの動作方向切り替え時の、動作遅延時間(反転時ブレーキ時間)の設定を取得します。

【書式】

●C言語

INT DcmpGetBrake(

HANDLE hDeviceHandle, // デバイス番号

DWORD dwChSel, // 取得チャンネル

PDCMPBRAKETIME pBrake // 反転時ブレーキ時間の取得用構造

// 体へのポインタ

);

●Visual Basic

Declare Function DcmpGetBrake Lib "FbiDcmp.DLL"(

ByVal hDeviceHandle As Long, ‘ デバイス番号

ByVal dwChSel As Long, ‘ 取得チャンネル

ByRef pBrake As DCMPBRAKETIME ‘ 反転時ブレーキ時間の取得用構造

‘ への参照渡し

)As Long

●Delphi

function DcmpGetBrake(

hDeviceHandle: THandle; // デバイス番号

dwChSel: DWORD; // 取得チャンネル

var pBrake: DCMPBRAKETIME // 反転時ブレーキ時間の取得用構造

// 体への参照渡し

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

【パラメータ】

hDeviceHandle DcmpOpen 関数で取得したボードのデバイスハンドルを指定してください。

dwChSel 取得するチャンネルを指定してください。

ビット bit31~4 bit3 bit2 bit1 bit0

内容 予約 CH4 CH3 CH2 CH1

該当するビットに”1”を指定して チャンネル指定を行います。

複数チャンネルの指定が可能です。

例)CH1~CH4 の 4 チャンネル指定時:Fh を指定

Page 43: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

42

pBrake 反転時ブレーキ時間の取得用構造体へのポインタを指定してください。

構造体の説明については、『4.3 構造体』をご参照ください。

【戻り値】

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

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

い。

【備考】

複数のチャンネルのデータを同時に取得することが可能です。

チャンネル毎に別々のデータを取得するため、構造体配列で取得します。

構造体配列での取得のしかたは下記のようになります。

例(C言語)

DCMPTBRAKEIME Brake[4];

Brake[0] → CH1 の反転時ブレーキ時間設定

(必ず配列要素 0 は CH1 の反転時ブレーキ時間設定を取得します)

Brake[1] → CH2 の反転時ブレーキ時間設定

(必ず配列要素 1 は CH2 の反転時ブレーキ時間設定を取得します)

Brake[2] → CH3 の反転時ブレーキ時間設定

(必ず配列要素 2 は CH3 の反転時ブレーキ時間設定を取得します)

Brake[3] → CH4 の反転時ブレーキ時間設定

(必ず配列要素 3 は CH4 の反転時ブレーキ時間設定を取得します)

【注意】

例えば CH4 の反転時ブレーキ時間設定のみを取得する場合にも、上記のように配列を宣言しま

す。

CH4 の反転時ブレーキ時間設定は 4番目の DCMPBRAKETIME 型の配列に取得されます。

関数を実行する時はその配列の先頭のアドレスを pBrake に指定してください。

CH4 のみを指定している場合には、配列要素の 1~3番目までの構造体の値は不定値となります、

指定していない CH の構造体データは参照しないでください。

Page 44: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

43

【使用例】

●C言語

INT nRet, i;

HANDLE hDeviceHandle;

DCMPBRAKETIME Brake[4];

hDeviceHandle = DcmpOpen(“FBIDCMP1”, DCMP_FLAG_NORMAL); :

nRet = DcmpGetBrake(hDeviceHandle, 0x0F, Brake);

if(nRet == DCMP_ERROR_SUCCESS){

for(i=0, i<4, i++){

printf(“CH%d:\n”, i+1); // 反転時ブレーキ時間を取得

printf(“ BrakeBaseClock=%lxh\n”, Brake[i].dwBaseClock); printf(“ BrakeTime=%lxh\n”, Brake[i].dwTime); }

}

●Visual Basic

Dim lpszName As String

Dim hDeviceHandle As Long

Dim Brake(0 To 3) As DCMPBRAKETIME

lpszName = "FBIDCMP1" & Chr( 0 )

hDeviceHandle = DcmpOpen(lpszName, DCMP_FLAG_NORMAL)

nRet = DcmpGetBrake(hDeviceHandle, &H0F, Brake(0))

●Delphi

var

lpszName: String;

hDeviceHandle: THandle;

Brake: array[0..3] of DCMPBRAKETIME;

lpszName := 'FBIDCMP1';

hDeviceHandle := DcmpOpen(lpszName, DCMP_FLAG_NORMAL);

nRet := DcmpGetBrake(hDeviceHandle, $0F, Brake[0]);

デバイス名「FBIDCMP1」のデバイスの CH1~CH4 の反転時ブレーキ時間の設定を取得します。

Page 45: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

44

13. DcmpGetEnable

【機能】

DC モータ制御・異常検出機能の設定状態の取得を行います。

【書式】

●C言語

INT DcmpGetEnable(

HANDLE hDeviceHandle, // デバイスハンドル

PDWORD pdwEnable, // DC モータ制御の取得変数へのポインタ

PDWORD pdwErrDetect, // 異常検出機能の取得変数へのポインタ

PDWORD pdwReserved // 予約

);

●Visual Basic

Declare Function DcmpGetEnable Lib "FbiDcmp.DLL"(

ByVal hDeviceHandle As Long, ’ デバイスハンドル

ByRef pdwEnable As Long, ’ DC モータ制御の取得変数への参照渡し

ByRef pdwErrDetect As Long, ’ 異常検出機能の取得変数への参照渡し

ByRef pdwReserved As Long ’ 予約

)As Long

●Delphi

function DcmpGetEnable(

hDeviceHandle: THandle; // デバイスハンドル

var pdwEnable: DWORD; // DC モータ制御の取得変数への参照渡し

var pdwErrDetect: DWORD; // 異常検出機能の取得変数への参照渡し

var pdwReserved: DWORD // 予約

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

【パラメータ】

hDeviceHandle DcmpOpen 関数で取得したボードのデバイスハンドルを指定してください。

pdwEnable DC モータ制御機能の有効/無効を取得する変数へのポインタを指定してください。

ビット bit31~4 bit3 bit2 bit1 bit0

内容 予約 CH4 CH3 CH2 CH1

取得値 意味

0 DC モータ制御機能が無効

1 DC モータ制御機能が有効

“0”が取得されたチャンネルでは DcmpStartMotion 関数を実行しても制御出力は行われま

せん。

Page 46: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

45

pdwErrDetect 異常検出機能の有効/無効を取得する変数へのポインタを指定してください。

ビット bit31~4 bit3 bit2 bit1 bit0

内容 予約 CH4 CH3 CH2 CH1

取得値 意味

0 異常検出機能が無効

1 異常検出機能が有効

“0”が取得されたチャンネルでは異常検出時の割り込みが発生しません。

pdwReserved 将来拡張用です、NULL を指定してください。

【戻り値】

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

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

い。

【使用例】

●C言語

INT nRet;

HANDLE hDeviceHandle;

DWORD dwEnable;

DWORD dwErrDetect;

hDeviceHandle = DcmpOpen(“FBIDCMP1”, DCMP_FLAG_NORMAL); :

nRet = DcmpGetEnable(hDeviceHandle, &dwEnable, &dwErrDetect, NULL);

if(nRet == DCMP_ERROR_SUCCESS){

printf(“Enable=%xh\n”, dwEnable); printf(“ErrDetect=%xh\n”, dwErrDetect); }

Page 47: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

46

●Visual Basic

Dim lpszName As String

Dim hDeviceHandle As Long

Dim dwEnable As Long

Dim dwErrDetect As Long

lpszName = "FBIDCMP1" & Chr( 0 )

hDeviceHandle = DcmpOpen(lpszName, DCMP_FLAG_NORMAL)

nRet = DcmpGetEnable(hDeviceHandle, dwEnable, dwErrDetect, NULL)

●Delphi

var

lpszName: String;

hDeviceHandle: THandle;

dwEnable: DWORD;

dwErrDetect: DWORD;

lpszName := 'FBIDCMP1';

hDeviceHandle := DcmpOpen(lpszName, DCMP_FLAG_NORMAL);

nRet := DcmpGetEnable(hDeviceHandle, dwEnable, dwErrDetect, NULL);

デバイス名「FBIDCMP1」のデバイスの CH1 の DC モータ制御機能、異常検出機能の設定状態を

取得します。

Page 48: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

47

14. DcmpStartMotion

【機能】

各種動作を起動します。

【書式】

●C言語

INT DcmpStartMotion(

HANDLE hDeviceHandle, // デバイス番号

DWORD dwChSel, // 起動チャンネル

DWORD dwMode // 起動動作モード

);

●Visual Basic

Declare Function DcmpStartMotion Lib "FbiDcmp.DLL"(

ByVal hDeviceHandle As Long, ‘ デバイス番号

ByVal dwChSel As Long, ‘ 起動チャンネル

ByVal dwMode As Long ‘ 起動動作モード

)As Long

●Delphi

function DcmpStartMotion(

hDeviceHandle: THandle; // デバイス番号

dwChSel: DWORD; // 起動チャンネル

dwMode: DWORD // 起動動作モード

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

【パラメータ】

hDeviceHandle DcmpOpen 関数で取得したボードのデバイスハンドルを指定してください。

dwChSel 各種モータ動作を起動させるチャンネルを指定してください。

ビット bit31~4 bit3 bit2 bit1 bit0

内容 予約 CH4 CH3 CH2 CH1

該当するビットに”1”を指定して チャンネル指定を行います。

複数のチャンネル指定が可能です。

例)CH1~CH4 軸の 4チャンネル指定時:Fh を指定

Page 49: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

48

dwMode 起動させる動作モードを指定してください。

識別子 動作モード

DCMP_SET_CW 正転準備

DCMP_SET_CCW 逆転準備

DCMP_MOVE_START 動作開始

DCMP_MOVE_CW 正転開始

DCMP_MOVE_CCW 逆転開始

DCMP_PWM_ON PMW 有効

DCMP_PWM_OFF PWM 無効

【戻り値】

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

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

い。

【備考】

dwMode で指定する動作モードは、それぞれ下記の意味となります。

動作モード名 意味

正転準備 外部スタートトリガ又は、ソフトスタートコマンド

(DCMP_MOVE_START)によって正転方向に回転を始めます。

逆転準備 外部スタートトリガ又は、ソフトスタートコマンド

(DCMP_MOVE_START)によって逆転方向に回転を始めます。

動作開始 回転をスタートします。方向は、外部トリガ又は、正転/逆

転準備コマンドによって指定された方向に回転します。

正転開始 正転方向に回転を開始します。

逆転開始 逆転方向に回転を開始します。

PWM 有効 PWM 動作を開始します。

動作停止中に有効にした場合には、動作開始時点で PWM 動作

を行います。

PWM 無効 PWM 動作を停止します。

動作中に無効にした場合には、通常動作に戻ります。

DcmpSetPWM関数でPWM設定を行った状態で動作を開始した場合には、PWM動作を開始します。

Page 50: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

49

【使用例】

●C言語

INT nRet;

HANDLE hDeviceHandle;

hDeviceHandle = DcmpOpen(“FBIDCMP1”, DCMP_FLAG_NORMAL); :

nRet = DcmpStartMotion(hDeviceHandle, 0x0F, DCMP_MOVE_START);

●Visual Basic

Dim lpszName As String

Dim hDeviceHandle As Long

lpszName = "FBIDCMP1" & Chr( 0 )

hDeviceHandle = DcmpOpen(lpszName, DCMP_FLAG_NORMAL)

nRet = DcmpStartMotion(hDeviceHandle, &H0F, DCMP_MOVE_START)

●Delphi

var

lpszName: String;

hDeviceHandle: THandle;

lpszName := 'FBIDCMP1';

hDeviceHandle := DcmpOpen(lpszName, DCMP_FLAG_NORMAL);

nRet := DcmpStartMotion(hDeviceHandle, $0F, DCMP_MOVE_START);

デバイス名「FBIDCMP1」のデバイスの CH1~CH4 の 4 チャンネルを起動させます。

Page 51: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

50

15. DcmpStopMotion

【機能】

動作を停止させます。

【書式】

●C言語

INT DcmpStopMotion(

HANDLE hDeviceHandle, // デバイスハンドル

DWORD dwChSel, // 停止チャンネル

DWORD dwMode // 停止動作

);

●Visual Basic

Declare Function DcmpStopMotion Lib "FbiDcmp.DLL"(

ByVal hDeviceHandle As Long, ‘ デバイスハンドル

ByVal dwChSel As Long, ‘ 停止チャンネル

ByVal dwMode As Long ‘ 停止動作

)As Long

●Delphi

function DcmpStopMotion(

hDeviceHandle: THandle; // デバイスハンドル

dwChSel: DWORD; // 停止チャンネル

dwMode: DWORD // 停止動作

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

【パラメータ】

hDeviceHandle DcmpOpen 関数で取得したボードのデバイスハンドルを指定してください。

dwChSel 各種モータ動作を停止させるチャンネルを指定してください。

ビット bit31~4 bit3 bit2 bit1 bit0

内容 予約 CH4 CH3 CH2 CH1

該当するビットに”1”を指定して チャンネル指定を行います。

複数のチャンネル指定が可能です。

例)CH1~CH4 の 4 チャンネル指定時:Fh を指定

dwMode 停止動作を指定してください。

識別子 意味

DCMP_MOVE_STOP 動作停止

DCMP_MOVE_BRAKE ブレーキ

Page 52: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

51

【戻り値】

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

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

い。

【備考】

DcmpStartMotion 関数実行により正転準備/逆転準備の状態でモータが停止している場合、本

関数を実行すると起動条件成立待ち状態が解除されます。(スタートトリガが入力されても起

動しない状態になります)

【使用例】

●C 言語

INT nRet;

HANDLE hDeviceHandle;

hDeviceHandle = DcmpOpen(“FBIDCMP1”, DCMP_FLAG_NORMAL); :

nRet = DcmpStopMotion(hDeviceHandle, 0x01, DCMP_MOVE_STOP | DCMP_CMD_FORCE);

●Visual Basic

Dim lpszName As String

Dim hDeviceHandle As Long

lpszName = "FBIDCMP1" & Chr( 0 )

hDeviceHandle = DcmpOpen(lpszName, DCMP_FLAG_NORMAL)

nRet = DcmpStopMotion(hDeviceHandle, &H01, (DCMP_MOVE_STOP or DCMP_CMD_FORCE))

●Delphi

var

lpszName: String;

hDeviceHandle: THandle;

lpszName := 'FBIDCMP1';

hDeviceHandle := DcmpOpen(lpszName, DCMP_FLAG_NORMAL);

nRet := DcmpStopMotion(hDeviceHandle, $01, (DCMP_MOVE_STOP or DCMP_CMD_FORCE));

デバイス名「FBIDCMP1」のデバイスの CH1 の動作を強制停止させます。

Page 53: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

52

16. DcmpGetStatus

【機能】

動作ステータス情報を取得します。

【書式】

●C言語

INT DcmpGetStatus(

HANDLE hDeviceHandle, // デバイスハンドル

DWORD dwChSel, // 取得チャンネル

DWORD dwMode, // 取得項目

PDWORD pdwStatus // 取得値を格納する変数へのポインタ

);

●Visual Basic

Declare Function DcmpGetStatus Lib "FbiDcmp.DLL"(

ByVal hDeviceHandle As Long, ‘ デバイスハンドル

ByVal dwChSel As Long, ‘ 取得チャンネル

ByVal dwMode As Long, ‘ 取得項目

ByRef pdwStatus As Long ‘ 取得値を格納する変数への参照渡し

)As Long

●Delphi

function DcmpGetStatus(

hDeviceHandle: THandle; // デバイスハンドル

dwChSel: DWORD; // 取得チャンネル

dwMode: DWORD; // 取得項目

var pdwStatus: DWORD // 取得値を格納する変数への参照渡し

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

【パラメータ】

hDeviceHandle DcmpOpen 関数で取得したボードのデバイスハンドルを指定してください。

dwChSel 取得するチャンネルを指定してください。

ビット bit31~4 bit3 bit2 bit1 bit0

内容 予約 CH4 CH3 CH2 CH1

該当するビットに”1”を指定して チャンネル指定を行います。

複数のチャンネル指定が可能です。

例)CH1~CH4 の 4 チャンネル指定時:Fh を指定

Page 54: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

53

dwMode 取得項目を指定してください。

識別子 意味

DCMP_MOVE_STATUS 動作状態を取得します。

DCMP_INTERLOCK_STATUS インタロック状態を取得します。

(全チャンネル共通:、dwChSel=1 を指定)

DCMP_ERR_STATUS 異常検出状態を取得します。

pdwStatus 取得したステータスを格納する変数へのポインタを指定します。

格納されるステータスは、dwMode で指定した取得項目により異なります。

○DCMP_MOVE_STATUS を指定した場合

bit31~bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

- PMST PST CWST2 CWST1 - - MST2 MST1

PMST ステータス

0 PWM メモリ停止中

1 PWM メモリ動作中

PST ステータス

0 PWM 動作無効

1 PWM 動作有効

回転方向を示します。

スタートしていない状態でスタートが入ると回転する方向を示します。

また、回転している方向を示します。

CWST2 CWST1 ステータス MOUTn- MOUTn+

0 1 正転 L H

1 0 逆転 H L

MOUTTn-, MOUTn+ 端子の状態を示します。

MST2 MST1 ステータス MOUTn- MOUTn+

0 0 ストップ OFF OFF

0 1 正転中 L H

1 0 逆転中 H L

1 1 ブレーキ L L

○DCMP_INTERLOCK_STATUS を指定した場合

識別子 値 意 味

DCMP_ILOCK_OFF 0h インタロック信号入力なし

DCMP_ILOCK_ON 1h インタロック信号入力あり

インタロックステータスは全チャンネルで共通となる為、dwChSel には必ず 1 を指定して

ください。1番目の配列に上記のステータスデータが格納されます。

Page 55: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

54

○DCMP_ERR_STATUS を指定した場合

識別子 値 意 味

DCMP_ERR_OFF 0h 異常検出なし

DCMP_ERR_ON 1h 異常検出あり

○DCMP_PWM_STATUS を指定した場合

bit31~bit12 bit11~bit0

- PWM メモリアドレス

現在実行中の PWM メモリ動作のオフセットアドレスを取得します。

ChSel で複数チャンネルを指定した際に、一つでも PWM 動作が停止中のチャンネルが存在

すれば、戻り値に DCMP_ERROR_NOW_STOP_PWM_MEMORY が返されます。

【戻り値】

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

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

い。

【備考】

複数のチャンネルのデータを同時に取得することが可能です。

チャンネル毎に別々のデータを取得するため、配列で取得します。

配列での取得のしかたは下記のようになります。

例(C言語)

DWORD dwStatus[4];

dwStatus[0] → CH1 の動作ステータス

(必ず配列要素 0 は CH1 の動作ステータスを取得します)

dwStatus[1] → CH2 の動作ステータス

(必ず配列要素 1 は CH2 の動作ステータスを取得します)

dwStatus[2] → CH3 の動作ステータス

(必ず配列要素 2 は CH3 の動作ステータスを取得します)

dwStatus[3] → CH4 の動作ステータス

(必ず配列要素 3 は CH4 の動作ステータスを取得します)

【注意】

例えば CH4 の動作ステータスのみを取得する場合にも、上記のように配列を宣言します。

CH4 の動作ステータスは 4番目の配列に取得されます。

関数を実行する時はその配列の先頭のアドレスを pdwStatus に指定してください。

CH4 のみを指定している場合には、配列要素の 1~3番目までの構造体の値は不定値となります、

指定していない CH の配列データは参照しないでください。

【使用例】

●C言語

Page 56: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

55

INT nRet;

DWORD dwStatus[4];

HANDLE hDeviceHandle;

hDeviceHandle = DcmpOpen(“FBIDCMP1”, DCMP_FLAG_NORMAL); :

nRet = DcmpGetStatus(hDeviceHandle, 0x08, DCMP_BUSY_STATUS, dwStatus);

if(nRet == DCMP_ERROR_SUCCESS)

printf("CH4: Status=%lx\n",dwStatus[3]);

Page 57: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

56

●Visual Basic

Dim lpszName As String

Dim hDeviceHandle As Long

Dim dwStatus(0 To 3) As Long

lpszName = "FBIDCMP1" & Chr( 0 )

hDeviceHandle = DcmpOpen(lpszName, DCMP_FLAG_NORMAL)

nRet = DcmpGetStatus(hDeviceHandle, &H08, DCMP_BUSY_STATUS, dwStatus(0))

●Delphi

var

lpszName: String;

hDeviceHandle: THandle;

dwStatus: array[0..3] of DWORD;

lpszName := 'FBIDCMP1';

hDeviceHandle := DcmpOpen(lpszName, DCMP_FLAG_NORMAL);

nRet := DcmpGetStatus(hDeviceHandle, $08, DCMP_BUSY_STATUS, dwStatus[0]);

デバイス名「FBIDCMP1」のデバイスの CH4 の動作状態を取得します。

Page 58: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

57

17. DcmpOutputDO

【機能】

汎用出力(各 CH:DOn1~DOn4、共用:DO1~DO2)を制御します。

【書式】

●C言語

INT DcmpOutputDO(

HANDLE hDeviceHandle, // デバイスハンドル

DWORD dwChSel, // 出力チャンネル

PDWORD pdwDO // 出力値を格納する配列へのポインタ

);

●Visual Basic

Declare Function DcmpOutputDO Lib "FbiDcmp.DLL"(

ByVal hDeviceHandle As Long, ‘ デバイスハンドル

ByVal dwChSel As Long, ‘ 出力チャンネル

ByRef pdwDO As Long ‘ 出力値を格納する配列への参照渡し

)As Long

●Delphi

function DcmpOutputDO(

hDeviceHandle: THandle; // デバイスハンドル

dwChSel: DWORD; // 出力チャンネル

var pdwDO: DWORD // 出力値を格納する配列への参照渡し

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

【パラメータ】

hDeviceHandle DcmpOpen 関数で取得したボードのデバイスハンドルを指定してください。

dwChSel 出力を行うチャンネルを指定してください。

ビット bit31~5 bit4 bit3 bit2 bit1 bit0

内容 予約 COM CH4 CH3 CH2 CH1

該当するビットに”1”を指定して チャンネル指定を行います。

複数のチャンネル指定が可能です。

例)CH1~CH4 の 4 チャンネル指定時:Fh を指定

Page 59: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

58

pdwDO 出力設定を指定した配列へのポインタを指定してください。

配列の要素[0]~[3]までは CH1~CH4 用の汎用出力端子、要素[4]は共用部分の汎用出力端

子の制御を行います。

○CH1~CH4(dwDO[0]~dwDO[3])

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

- - - - DOn4 DOn3 DOn2 DOn1

bit31~bit4 : 予約

bit3~bit0 : 0 - High を出力

1 - Low を出力

CH1~CH4 の汎用出力は外部トリガ端子と共用となります。

○COM(dwDO[4])

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

- - - - - - DO2 DO1

bit31~bit2 : 予約

bit1~bit0 : 0 - High を出力

1 - Low を出力

【戻り値】

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

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

い。

【備考】

複数のチャンネルに異なるデータを同時に出力することが可能です。

チャンネル毎に別々のデータを設定するため、配列で設定します。

配列での設定のしかたは下記のようになります。

例(C言語)

DWORD dwDO[5];

dwDO[0] → CH1 の汎用出力

(必ず配列要素 0 は CH1 の汎用出力とします)

dwDO[1] → CH2 の汎用出力

(必ず配列要素 1 は CH2 の汎用出力とします)

dwDO[2] → CH3 の汎用出力

(必ず配列要素 2 は CH3 の汎用出力とします)

dwDO[3] → CH4 の汎用出力

(必ず配列要素 3 は CH4 の汎用出力とします)

dwDO[4] → 共用の汎用出力

(必ず配列要素 4 は共用の汎用出力とします)

【注意】

Page 60: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

59

例えば CH4 の汎用出力のみを設定する場合にも、上記のように配列を宣言します。

CH4 の汎用出力は 4番目の DWORD 型の配列に設定してください。

関数に設定する時はその配列の先頭のアドレスを pdwDO に設定してください。

【使用例】

●C言語

INT nRet;

DWORD dwDO[5];

HANDLE hDeviceHandle;

hDeviceHandle = DcmpOpen(“FBIDCMP1”, DCMP_FLAG_NORMAL); :

dwDO[0] = 0x01;

nRet = DcmpOutputDO(hDeviceHandle, 0x01, dwDO);

●Visual Basic

Dim lpszName As String

Dim hDeviceHandle As Long

Dim dwDO(0 To 4) As Long

lpszName = "FBIDCMP1" & Chr( 0 )

hDeviceHandle = DcmpOpen(lpszName, DCMP_FLAG_NORMAL)

dwDO(0) = 0x01

nRet = DcmpOutputDO(hDeviceHandle, &H01, dwDO(0))

●Delphi

var

lpszName: String;

hDeviceHandle: THandle;

dwDO: array[0..4] of DWORD;

lpszName := 'FBIDCMP1';

hDeviceHandle := DcmpOpen(lpszName, DCMP_FLAG_NORMAL);

dwDO[0] := 0x01;

nRet := DcmpOutputDO(hDeviceHandle, $01, dwDO[0]);

デバイス名「FBIDCMP1」のデバイスの CH1 の汎用出力を DO1 のみ Low を出力します。

Page 61: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

60

18. DcmpInputDI

【機能】

汎用入力(各 CH:DIn1~DIn4、共用:DI1~DI2)の状態を取得します。

【書式】

●C言語

INT DcmpInputDI(

HANDLE hDeviceHandle, // デバイスハンドル

DWORD dwChSel, // 取得チャンネル

PDWORD pdwDI // 取得値を格納する配列へのポインタ

);

●Visual Basic

Declare Function DcmpInputDI Lib "FbiDcmp.DLL"(

ByVal hDeviceHandle As Long, ‘ デバイスハンドル

ByVal dwChSel As Long, ‘ 取得チャンネル

ByRef pdwDI As Long ‘ 取得値を格納する配列への参照渡し

)As Long

●Delphi

function DcmpInputDI(

hDeviceHandle: THandle; // デバイスハンドル

dwChSel: DWORD; // 取得チャンネル

var pdwDI: DWORD // 取得値を格納する配列への参照渡し

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

【パラメータ】

hDeviceHandle DcmpOpen 関数で取得したボードのデバイスハンドルを指定してください。

dwChSel 入力を行うチャンネルを指定してください。

ビット bit31~5 bit4 bit3 bit2 bit1 bit0

内容 予約 COM CH4 CH3 CH2 CH1

該当するビットに”1”を指定して チャンネル指定を行います。

複数のチャンネル指定が可能です。

例)CH1~CH4 の 4 チャンネル指定時:Fh を指定

Page 62: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

61

pdwDI 入力状態を格納する配列へのポインタを指定してください。

配列の要素[0]~[3]までは CH1~CH4 用の汎用入力端子、要素[4]は共用部分の汎用入力端

子の状態を取得します。

入力値のフォーマットは以下の通りです。

○CH1~CH4(dwDI[0]~dwDI[3])

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

- - - - DIn4 DIn3 DIn2 DIn1

bit31~bit4 : 予約

bit3~bit0 : 0 - High

1 - Low

CH1~CH4 の汎用入力は外部トリガ端子と共用となります。

○COM(dwDI[4])

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

- - - - - LOK DI2 DI1

bit31~bit3 : 予約

Bit2 : 0 – インタロック無効(Deassert)

1 – インタロック有効(Assert)

bit1~bit0 : 0 - High

1 - Low

【戻り値】

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

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

い。

【備考】

複数のチャンネルのデータを同時に取得することが可能です。

チャンネル毎に別々のデータを取得するため、配列で取得します。

配列での取得のしかたは下記のようになります。

例(C言語)

DWORD dwDI[5];

dwDI[0] → CH1 の汎用入力状態

(必ず配列要素 0 は CH1 の汎用入力状態を取得します)

dwDI[1] → CH2 の汎用入力状態

(必ず配列要素 1 は CH2 の汎用入力状態を取得します)

dwDI[2] → CH3 の汎用入力状態

(必ず配列要素 2 は CH3 の汎用入力状態を取得します)

dwDI[3] → CH4 の汎用入力状態

(必ず配列要素 3 は CH4 の汎用入力状態を取得します)

dwDI[4] → 共用の汎用入力状態

Page 63: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

62

(必ず配列要素 4 は共用の汎用入力状態を取得します)

【注意】

例えば CH4 の汎用入力状態のみを取得する場合にも、上記のように配列を宣言します。

CH4 の汎用入力状態は 4番目の DWORD 型の配列に取得されます。

関数を実行する時はその配列の先頭のアドレスを pdwDI に指定してください。

CH4 のみを指定している場合には、配列要素の 1,2,3,5 番目の配列の値は不定値となります、

指定していない CH の配列データは参照しないでください。

【使用例】

●C言語

INT nRet;

DWORD dwDI[5];

HANDLE hDeviceHandle;

hDeviceHandle = DcmpOpen(“FBIDCMP1”, DCMP_FLAG_NORMAL); :

nRet = DcmpInputDI(hDeviceHandle, 0x01, dwDI);

if(nRet == DCMP_ERROR_SUCCESS)

printf(“CH1: DI=%lxh\n”, dwDI[0]);

●Visual Basic

Dim lpszName As String

Dim hDeviceHandle As Long

Dim dwDI(0 To 4) As Long

lpszName = "FBIDCMP1" & Chr( 0 )

hDeviceHandle = DcmpOpen(lpszName, DCMP_FLAG_NORMAL)

nRet = DcmpInputDI(hDeviceHandle, &H01, dwDI(0))

●Delphi

var

lpszName: String;

hDeviceHandle: THandle;

dwDI: array[0..4] of DWORD;

lpszName := 'FBIDCMP1';

hDeviceHandle := DcmpOpen(lpszName, DCMP_FLAG_NORMAL);

nRet := DcmpInputDI(hDeviceHandle, $01, dwDI[0]);

Page 64: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

63

デバイス名「FBIDCMP1」のデバイスの CH1 の汎用入力状態を取得します。

Page 65: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

64

19. DcmpSetTimerConfig

【機能】

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

【書式】

●C言語

INT DcmpSetTimerConfig(

HANDLE hDeviceHandle, // デバイスハンドル

BYTE bTimerConfig // インターバルタイマ設定

);

●Visual Basic

Declare Function DcmpSetTimerConfig Lib "FbiDcmp.DLL"(

ByVal hDeviceHandle As Long, ‘ デバイスハンドル

ByVal bTimerConfig As Byte ‘ インターバルタイマ設定

)As Long

●Delphi

function DcmpSetTimerConfig(

hDeviceHandle: THandle; // デバイスハンドル

bTimerConfig: BYTE // インターバルタイマ設定

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

【パラメータ】

hDeviceHandle DcmpOpen 関数で取得したボードのデバイスハンドルを指定してください。

bTimerConfig インターバルタイマを設定するビットの組み合わせです。

タイマ周期は CTL5~CTL7 で設定した基準周期と、CTL1~CTL4 で設定した分周値の積とな

ります。

(周期=基準周期×分周値)

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

予約 CTL7 CTL6 CTL5 CTL4 CTL3 CTL2 CTL1

Page 66: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

65

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

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

10us 0 0 0

100us 0 0 1

1ms 0 1 0

10ms 0 1 1

100ms 1 0 0

【戻り値】

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

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

い。

【使用例】

●C言語

INT nRet;

HANDLE hDeviceHandle;

hDeviceHandle = DcmpOpen(“FBIDCMP1”, DCMP_FLAG_NORMAL); :

nRet = DcmpSetTimerConfig(hDeviceHandle, 0x38);

Page 67: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

66

●Visual Basic

Dim lpszName As String

Dim hDeviceHandle As Long

lpszName = "FBIDCMP1" & Chr( 0 )

hDeviceHandle = DcmpOpen(lpszName, DCMP_FLAG_NORMAL)

nRet = DcmpSetTimerConfig(hDeviceHandle, &H38)

●Delphi

var

lpszName: String;

hDeviceHandle: THandle;

lpszName := 'FBIDCMP1';

hDeviceHandle := DcmpOpen(lpszName, DCMP_FLAG_NORMAL);

nRet := DcmpSetTimerConfig(hDeviceHandle, $38);

デバイス名「FBIDCMP1」のデバイスのインターバルタイマを分周値 8、基準周期 10ms に設定し

ます。

Page 68: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

67

20. DcmpGetTimerConfig

【機能】

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

【書式】

●C言語

INT DcmpGetTimerConfig(

HANDLE hDeviceHandle, // デバイスハンドル

PBYTE pbTimerConfig // インターバルタイマ設定情報の

// 格納変数へのポインタ

);

●Visual Basic

Declare Function DcmpGetTimerConfig Lib "FbiDcmp.DLL"(

ByVal hDeviceHandle As Long, ‘ デバイスハンドル

ByRef pbTimerConfig As Byte ‘ インターバルタイマ設定情報の

‘ 格納変数の参照渡し

)As Long

●Delphi

function DcmpGetTimerConfig(

hDeviceHandle: THandle; // デバイスハンドル

var pbTimerConfig: BYTE // インターバルタイマ設定情報の

// 格納変数の参照渡し

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

【パラメータ】

hDeviceHandle DcmpOpen 関数で取得したボードのデバイスハンドルを指定してください。

pbTimerConfig インターバルタイマの設定情報を格納する変数へのポインタを指定します。

タイマ周期は CTL5~CTL7 で設定した基準周期と、CTL1~CTL4 で設定した分周値の積とな

ります。

(周期=基準周期×分周値)

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

予約 CTL7 CTL6 CTL5 CTL4 CTL3 CTL2 CTL1

Page 69: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

68

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

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

10us 0 0 0

100us 0 0 1

1ms 0 1 0

10ms 0 1 1

100ms 1 0 0

【戻り値】

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

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

い。

【使用例】

●C言語

INT nRet;

HANDLE hDeviceHandle;

BYTE bTimerConfig;

hDeviceHandle = DcmpOpen(“FBIDCMP1”, DCMP_FLAG_NORMAL); :

nRet = DcmpGetTimerConfig(hDeviceHandle, &bTimerConfig);

if(nRet == DCMP_ERROR_SUCCESS)

printf(“Timer=%xh\n”, bTimerConfig);

Page 70: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

69

●Visual Basic

Dim lpszName As String

Dim hDeviceHandle As Long

Dim bTimerConfig As Byte

lpszName = "FBIDCMP1" & Chr( 0 )

hDeviceHandle = DcmpOpen(lpszName, DCMP_FLAG_NORMAL)

nRet = DcmpGetTimerConfig(hDeviceHandle, bTimerConfig)

●Delphi

var

lpszName: String;

hDeviceHandle: THandle;

bTimerConfig: BYTE;

lpszName := 'FBIDCMP1';

hDeviceHandle := DcmpOpen(lpszName, DCMP_FLAG_NORMAL);

nRet := DcmpGetTimerConfig(hDeviceHandle, bTimerConfig);

デバイス名「FBIDCMP1」のデバイスのインターバルタイマの設定情報を取得します。

Page 71: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

70

21. DcmpGetTimerCount

【機能】

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

【書式】

●C言語

INT DcmpGetTimerCount(

HANDLE hDeviceHandle, // デバイスハンドル

PBYTE pbTimerCount // タイマカウント値の格納変数へのポインタ

);

●Visual Basic

Declare Function DcmpGetTimerCount Lib "FbiDcmp.DLL"(

ByVal hDeviceHandle As Long, ‘ デバイスハンドル

ByRef pbTimerCount As Byte ‘ タイマカウント値の格納変数の参照渡し

)As Long

●Delphi

function DcmpGetTimerCount(

hDeviceHandle: THandle; // デバイスハンドル

var pbTimerCount: BYTE // タイマカウント値の格納変数の参照渡し

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

【パラメータ】

hDeviceHandle DcmpOpen 関数で取得したボードのデバイスハンドルを指定してください。

pbTimerCount ボード上のインターバルタイマの現在のカウント値を格納する変数へのポインタを指定

します。

【戻り値】

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

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

い。

【備考】

DcmpSetTimerConfig により設定した基準周期における、現在の状態を 4bit カウンタで取得し

ます。

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

予約 予約 予約 予約 TD4 TD3 TD2 TD1

Page 72: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

71

CTL1~CTL4 分周設定

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

【使用例】

●C言語

INT nRet;

HANDLE hDeviceHandle;

BYTE bTimerCount;

hDeviceHandle = DcmpOpen(“FBIDCMP1”, DCMP_FLAG_NORMAL); :

nRet = DcmpGetTimerCount(hDeviceHandle, &bTimerCount);

if(nRet == DCMP_ERROR_SUCCESS)

printf(“TimerCount=%xh\n”, bTimerCount);

●Visual Basic

Dim lpszName As String

Dim hDeviceHandle As Long

Dim bTimerCount As Byte

lpszName = "FBIDCMP1" & Chr( 0 )

hDeviceHandle = DcmpOpen(lpszName, DCMP_FLAG_NORMAL)

nRet = DcmpGetTimerCount(hDeviceHandle, bTimerCount)

Page 73: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

72

●Delphi

var

lpszName: String;

hDeviceHandle: THandle;

bTimerCount: BYTE;

lpszName := 'FBIDCMP1';

hDeviceHandle := DcmpOpen(lpszName, DCMP_FLAG_NORMAL);

nRet := DcmpGetTimerCount(hDeviceHandle, bTimerCount);

デバイス名「FBIDCMP1」のデバイスのインターバルタイマのカウント値を取得します。

Page 74: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

73

22. DcmpSetEventMask

【機能】

割り込みイベントのマスク設定を行います。

【書式】

●C言語

INT DcmpSetEventMask(

HANDLE hDeviceHandle, // デバイスハンドル

DWORD dwChSel, // 設定チャンネル

PDWORD pdwEventMask // マスク設定用配列へのポインタ

);

●Visual Basic

Declare Function DcmpSetEventMask Lib "FbiDcmp.DLL"(

ByVal hDeviceHandle As Long, ‘ デバイスハンドル

ByVal dwChSel As Long, ‘ 設定チャンネル

ByRef pdwEventMask As Long ‘ マスク設定用配列の参照渡し

)As Long

●Delphi

function DcmpSetEventMask(

hDeviceHandle: THandle; // デバイスハンドル

dwChSel: DWORD; // 設定チャンネル

var pdwEventMask: DWORD // マスク設定用配列の参照渡し

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

【パラメータ】

hDeviceHandle DcmpOpen 関数で取得したボードのデバイスハンドルを指定してください。

dwChSel 設定を行うチャンネルを指定してください。

ビット bit31~5 bit4 bit3 bit2 bit1 bit0

設定 予約 COM CH4 CH3 CH2 CH1

該当するビットに”1”を指定してチャンネル指定を行います。

複数のチャンネル指定が可能です。

例)CH1~CH4 の 4 チャンネル指定時:Fh を指定

pdwEventMask 各チャンネル毎に使用する割り込みイベントのマスクデータを格納する配列へのポイン

タを指定してください。

配列の要素[0]~[3]までは CH1~CH4 用の割り込みマスク、要素[4]は共用部分の割り込み

マスクを設定します。

Page 75: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

74

○CH1~CH4(dwEventMask[0]~dwEventMask [3])

bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8

予約 予約 予約 ERR 予約 予約 予約 予約

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

U_DIn4 U_DIn3 U_DIn2 U_DIn1 D_DIn4 D_DIn3 D_DIn2 D_DIn1

各 bit の意味は下記の通りです。

bit 説明(0:禁止/1:許可)

bit0: D_DIn1 DIn1 端子立ち下がりの割り込み

bit1: D_DIn2 DIn2 端子立ち下がりの割り込み

bit2: D_DIn3 DIn3 端子立ち下がりの割り込み

bit3: D_DIn4 DIn4 端子立ち下がりの割り込み

bit4: U_DIn1 DIn1 端子立ち上がりの割り込み

bit5: U_DIn2 DIn2 端子立ち上がりの割り込み

bit6: U_DIn3 DIn3 端子立ち上がりの割り込み

bit7: U_DIn4 DIn4 端子立ち上がりの割り込み

bit12: ERR 異常検出の割り込み

○COM(dwEventMask[4])

タイマー及、インタロック、汎用入力の割り込みイベントのマスクを指定します。

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

予約 予約 U_DI2 U_DI1 TM LOK D_DI2 D_DI1

各 bit の意味は下記の通りです。

bit 説明(0:禁止/1:許可)

bit0: D_DI1 DI1 端子立ち下がりの割り込み

bit1: D_DI2 DI2 端子立ち下がりの割り込み

Bit2: LOK インタロック発生の割り込み

Bit3: TM インターバルタイマの割り込み

Bit4: U_DI1 DI1 端子立ち上がりの割り込み

Bit5: U_DI2 DI2 端子立ち上がりの割り込み

【戻り値】

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

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

い。

【備考】

複数のチャンネルに異なるデータを同時に設定することが可能です。

チャンネル毎に別々のデータを設定するため、配列で設定します。

配列での設定のしかたは下記のようになります。

例(C言語)

DWORD dwEventMask[5];

dwEventMask[0] → CH1 の割り込みマスク設定

(必ず配列要素 0 は CH1 の割り込みマスク設定とします)

Page 76: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

75

dwEventMask[1] → CH2 の割り込みマスク設定

(必ず配列要素 1 は CH2 の割り込みマスク設定とします)

dwEventMask[2] → CH3 の割り込みマスク設定

(必ず配列要素 2 は CH3 の割り込みマスク設定とします)

dwEventMask[3] → CH4 の割り込みマスク設定

(必ず配列要素 3 は CH4 の割り込みマスク設定とします)

dwEventMask[4] → 共用の割り込みマスク設定

(必ず配列要素 4 は共用の割り込みマスク設定とします)

【注意】

例えば CH4 の割り込みマスク設定のみを設定する場合にも、上記のように配列を宣言します。

CH4 の割り込みマスク設定は 4番目の DWORD 型の配列に設定してください。

関数に設定する時はその配列の先頭のアドレスを pdwEventMask に設定してください。

【使用例】

●C言語

INT nRet;

HANDLE hDeviceHandle;

DWORD dwEventMask[5];

hDeviceHandle = DcmpOpen(“FBIDCMP1”, DCMP_FLAG_NORMAL); :

dwEventMask[0] = 0x01;

dwEventMask[1] = 0x01;

dwEventMask[2] = 0x01;

dwEventMask[3] = 0x01;

dwEventMask[4] = 0x08;

nRet = DcmpSetEventMask(hDeviceHandle, 0x1f, dwEventMask);

Page 77: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

76

●Visual Basic

Dim lpszName As String

Dim hDeviceHandle As Long

Dim dwEventMask(0 To 4) As Long

lpszName = "FBIDCMP1" & Chr( 0 )

hDeviceHandle = DcmpOpen(lpszName, DCMP_FLAG_NORMAL)

dwEventMask(0) = &H01

dwEventMask(1) = &H01

dwEventMask(2) = &H01

dwEventMask(3) = &H01

dwEventMask(4) = &H08

nRet = DcmpSetEventMask(hDeviceHandle, &H1f, dwEventMask(0))

●Delphi

var

lpszName: String;

hDeviceHandle: THandle;

dwEventMask: array[0..4] of DWORD;

lpszName := 'FBIDCMP1';

hDeviceHandle := DcmpOpen(lpszName, DCMP_FLAG_NORMAL);

dwEventMask[0] := $01;

dwEventMask[1] := $01;

dwEventMask[2] := $01;

dwEventMask[3] := $01;

dwEventMask[4] := $08;

nRet := DcmpSetEventMask(hDeviceHandle, $1f, dwEventMask[0]);

デバイス名「FBIDCMP1」のデバイスの CH1~CH4 の割り込みイベントマスクを設定します。

Page 78: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

77

23. DcmpGetEventMask

【機能】

割り込みイベントのマスク設定を取得します。

【書式】

●C言語

INT DcmpGetEventMask(

HANDLE hDeviceHandle, // デバイスハンドル

DWORD dwChSel, // 取得チャンネル

PDWORD pdwEventMask // マスク取得用配列へのポインタ

);

●Visual Basic

Declare Function DcmpGetEventMask Lib "FbiDcmp.DLL"(

ByVal hDeviceHandle As Long, ‘ デバイスハンドル

ByVal dwChSel As Long, ‘ 設定チャンネル

ByRef pdwEventMask As Long ‘ マスク取得用配列の参照渡し

)As Long

●Delphi

function DcmpGetEventMask(

hDeviceHandle: THandle; // デバイスハンドル

dwChSel: DWORD; // 設定チャンネル

var pdwEventMask: DWORD // マスク取得用配列の参照渡し

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

【パラメータ】

hDeviceHandle DcmpOpen 関数で取得したボードのデバイスハンドルを指定してください。

dwChSel 取得するチャンネルを指定してください。

ビット bit31~5 bit4 bit3 bit2 bit1 bit0

設定 予約 COM CH4 CH3 CH2 CH1

該当するビットに”1”を指定してチャンネル指定を行います。

複数のチャンネル指定が可能です。

例)CH1~CH4 の 4 チャンネル指定時:Fh を指定

pdwEventMask 各チャンネル毎に設定された割り込みイベントのマスクデータを格納する配列へのポイ

ンタを指定してください。

配列の要素[0]~[3]までは CH1~CH4 用の割り込みマスク、要素[4]は共用部分の割り込み

マスクの設定値を取得します。

Page 79: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

78

○CH1~CH4(dwEventMask[0]~dwEventMask [3])

bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8

予約 予約 予約 ERR 予約 予約 予約 予約

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

U_DIn4 U_DIn3 U_DIn2 U_DIn1 D_DIn4 D_DIn3 D_DIn2 D_DIn1

各 bit の意味は下記の通りです。

bit 説明(0:禁止/1:許可)

bit0: D_DIn1 DIn1 端子立ち下がりの割り込み

bit1: D_DIn2 DIn2 端子立ち下がりの割り込み

bit2: D_DIn3 DIn3 端子立ち下がりの割り込み

bit3: D_DIn4 DIn4 端子立ち下がりの割り込み

bit4: U_DIn1 DIn1 端子立ち上がりの割り込み

bit5: U_DIn2 DIn2 端子立ち上がりの割り込み

bit6: U_DIn3 DIn3 端子立ち上がりの割り込み

bit7: U_DIn4 DIn4 端子立ち上がりの割り込み

bit12: ERR 異常検出の割り込み

○COM(dwEventMask[4])

タイマー及、インタロック、汎用入力の割り込みイベントのマスクを取得します。

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

予約 予約 U_DI2 U_DI1 TM LOK D_DI2 D_DI1

各 bit の意味は下記の通りです。

bit 説明(0:禁止/1:許可)

bit0: D_DI1 DI1 端子立ち下がりの割り込み

bit1: D_DI2 DI2 端子立ち下がりの割り込み

bit2: LOK インタロック発生の割り込み

bit3: TM インターバルタイマの割り込み

bit4: U_DI1 DI1 端子立ち上がりの割り込み

bit5: U_DI2 DI2 端子立ち上がりの割り込み

【戻り値】

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

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

い。

【備考】

複数のチャンネルのデータを同時に取得することが可能です。

チャンネル毎に別々のデータを取得するため、配列で取得します。

配列での取得のしかたは下記のようになります。

例(C言語)

DWORD dwEventMask[5];

dwEventMask[0] → CH1 の割り込みマスク設定

(必ず配列要素 0 は CH1 の割り込みマスク設定を取得します)

Page 80: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

79

dwEventMask[1] → CH2 の割り込みマスク設定

(必ず配列要素 1 は CH2 の割り込みマスク設定を取得します)

dwEventMask[2] → CH3 の割り込みマスク設定

(必ず配列要素 2 は CH3 の割り込みマスク設定を取得します)

dwEventMask[3] → CH4 の割り込みマスク設定

(必ず配列要素 3 は CH4 の割り込みマスク設定を取得します)

dwEventMask[4] → 共用の割り込みマスク設定

(必ず配列要素 4 は共用の割り込みマスク設定を取得します)

【注意】

例えば CH4 の割り込みマスク設定のみを取得する場合にも、上記のように配列を宣言します。

CH4 の割り込みマスク設定は 4番目の DWORD 型の配列に取得されます。

関数を実行する時はその配列の先頭のアドレスを pdwEventMask に指定してください。

CH4 のみを指定している場合には、配列要素の 1,2,3,5 番目の配列の値は不定値となります、

指定していない CH の配列データは参照しないでください。

【使用例】

●C言語

INT nRet;

HANDLE hDeviceHandle;

DWORD dwEventMask[5];

hDeviceHandle = DcmpOpen(“FBIDCMP1”, DCMP_FLAG_NORMAL); :

nRet = DcmpGetEventMask(hDeviceHandle, 0x1F, dwEventMask);

if(nRet == DCMP_ERROR_SUCCESS){

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

printf(“CH%d:\n”,i); if(i != 4){

printf(“ ChEventMask=%lxh\n”, dwEventMask[i]); } else{

printf(“ TimerEventMask=%lxh\n”, dwEventMask[i]); }

}

}

Page 81: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

80

●Visual Basic

Dim lpszName As String

Dim hDeviceHandle As Long

Dim dwEventMask(0 To 4) As Long

lpszName = "FBIDCMP1" & Chr( 0 )

hDeviceHandle = DcmpOpen(lpszName, DCMP_FLAG_NORMAL)

nRet = DcmpGetEventMask(hDeviceHandle, &H1F, dwEventMask(0))

●Delphi

var

lpszName: String;

hDeviceHandle: THandle;

dwEventMask: array[0..4] of DWORD;

lpszName := 'FBIDCMP1';

hDeviceHandle := DcmpOpen(lpszName, DCMP_FLAG_NORMAL);

nRet := DcmpGetEventMask(hDeviceHandle, 0x1F, dwEventMask[0]);

デバイス名「FBIDCMP1」のデバイスの CH1~CH4 の割り込みイベントマスクを取得します。

Page 82: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

81

24. DcmpSetEvent

【機能】

割り込み発生時に起動するコールバック関数、メッセージの登録を行います。

【書式】

●C言語

INT DcmpSetEvent(

HANDLE hDeviceHandle, // デバイスハンドル

PDCMPEVENTREQ pEvent // 割り込み設定構造体へのポインタ

);

●Visual Basic

Declare Function DcmpSetEvent Lib "FbiDcmp.DLL"(

ByVal hDeviceHandle As Long, ‘ デバイスハンドル

ByRef pEvent DCMPEVENTREQ ‘ 割り込み設定構造体の参照渡し

)As Long

●Delphi

function DcmpSetEvent(

hDeviceHandle: THandle; // デバイスハンドル

var pEvent: DCMPEVENTREQ // 割り込み設定構造体の参照渡し

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

【パラメータ】

hDeviceHandle DcmpOpen 関数で取得したボードのデバイスハンドルを指定してください。

pEvent 割り込み発生時に呼び出されるユーザ・コールバック関数、メッセージの設定を行う構造

体へのポインタを指定してください。

構造体の説明については、『4.3 構造体』をご参照ください。

【戻り値】

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

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

い。

Page 83: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

82

【備考】

※ Visual Basic Ver. 4.0 ではコールバック関数の登録ができない為、メッセージ機能を使用

してください。Visual Basic Ver. 5.0 以降ではコールバック関数とメッセージを使用可能

です。

●コールバック関数の書式

コールバック関数の書式は以下の通りです。

VOID CALLBACK lpCallBackProc(INT nChannel, DWORD dwEvent, DWORD dwUser );

○nChannel

割り込み発生チャンネル。

○dwEvent

コールバック関数実行要因。

コールバック関数が実行された要因の該当ビットに”1”がセットされます。

nChannel の値に応じて内容が変化します。

・nChannel が 1~4(CH1~CH4)の場合、各 CH の割り込みが発生しています。

dwEvent 内容(1:検出, 0:未検出)

bit0 DIn1 端子立ち下がりの割り込み

bit1 DIn2 端子立ち下がりの割り込み

bit2 DIn3 端子立ち下がりの割り込み

bit3 DIn4 端子立ち下がりの割り込み

bit4 DIn1 端子立ち上がりの割り込み

bit5 DIn2 端子立ち上がりの割り込み

bit6 DIn3 端子立ち上がりの割り込み

bit7 DIn4 端子立ち上がりの割り込み

bit12 異常検出の割り込み

bit31~bit9 予約(常に 0)

・nChannel が 0 の場合、全 CH 共通の割り込みが発生しています。

dwEvent 内容(1:検出, 0:未検出)

bit0 DI1 端子立ち下がりの割り込み

bit1 DI2 端子立ち下がりの割り込み

bit2 インタロック発生の割り込み

bit3 インターバルタイマの割り込み

bit4 DI1 端子立ち上がりの割り込み

bit5 DI2 端子立ち上がりの割り込み

bit31~bit6 予約(常に 0)

○dwUser

DcmpSetEvent 関数実行時に指定したユーザ・データが取得されます。

Page 84: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

83

【使用例】

●C言語

// コールバック関数

VOID lpEventProc(INT nChannel, DWORD dwEvent, DWORD dwUser){

// 割り込み処理を記述します

:

:

}

// メインルーチン

INT nRet;

HANDLE hDeviceHandle;

DWORD dwEventMask[5];

DCMPEVENTREQ Event;

hDeviceHandle = DcmpOpen(“FBIDCMP1”, DCMP_FLAG_NORMAL); :

dwEventMask[0] = 0x1F;

dwEventMask[1] = 0x1F;

dwEventMask[2] = 0x1F;

dwEventMask[3] = 0x1F;

dwEventMask[4] = 0x03;

nRet = DcmpSetEventMask(hDeviceHandle, 0x1F, dwEventMask);

Event.hWnd = NULL;

Event.uEventCh1 = NULL;

Event.uEventCh2 = NULL;

Event.uEventCh3 = NULL;

Event.uEventCh4 = NULL;

Event.uEventCom = NULL;

Event.uEventILock = NULL;

Event.lpCallBackProc = (PLPDCMPCALLBACK)lpEventProc;

Event.dwUser = 0x1234;

nRet = DcmpSetEvent(hDeviceHandle, &Event);

Page 85: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

84

●Visual Basic

コールバックルーチンは DcmpSetEvent 関数の呼び出しを行うプロジェクト内の標準モジュー

ルの中に記述しなければなりません。

DcmpSetEvent 関数の引数パラメータでプロシージャのアドレスを渡す為に AddressOf 演算

子を使用します。(DcmpSetEvent 関数の使用例を参照してください。)

AddressOf 演算子を使うと、プロシージャからの戻り値ではなく、プロシージャ自体のア

ドレスが、ダイナミック リンク ライブラリ (DLL)の DcmpSetEvent 関数に渡されます。

‘ コールバック関数

Sub lpEventProc(nChannel As Long, dwEvent As Long, dwUser As Long)

‘ 割り込み処理を記述します

End Sub

‘ メインルーチン

Dim lpszName As String

Dim hDeviceHandle As Long

Dim Event As DCMPEVENTREQ

Dim dwEventMask(0 To 4) As Long

lpszName = "FBIDCMP1" & Chr( 0 )

hDeviceHandle = DcmpOpen(lpszName, DCMP_FLAG_NORMAL)

dwEventMask(0) = &H1F;

dwEventMask(1) = &H1F;

dwEventMask(2) = &H1F;

dwEventMask(3) = &H1F;

dwEventMask(4) = &H03;

nRet = DcmpSetEventMask(hDeviceHandle, &H1F, dwEventMask(0))

Event.hWnd = 0

Event.uEventCh1 = 0

Event.uEventCh2 = 0

Event.uEventCh3 = 0

Event.uEventCh4 = 0

Event.uEventCom = 0

Event.uEventILock = 0

Event.lpCallBackProc = AddressOf lpEventProc

Event.dwUser = &H1234

nRet = DcmpSetEvent(hDeviceHandle, Event);

Page 86: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

85

●Delphi

// コールバック関数

procedure lpEventProc(nChannel: Integer, dwEvent: DWORD, dwUser: DWORD); stdcall;

var

//変数定義

begin

// 割り込み処理を記述します

:

:

end;

// メインルーチン

var

lpszName: String;

hDeviceHandle: THandle;

Event: DCMPEVENTREQ;

dwEventMask: array[0..4] of DWORD;

lpszName := 'FBIDCMP1';

hDeviceHandle := DcmpOpen(lpszName, DCMP_FLAG_NORMAL);

dwEventMask[0] := $1F;

dwEventMask[1] := $1F;

dwEventMask[2] := $1F;

dwEventMask[3] := $1F;

dwEventMask[4] := $03;

nRet := DcmpSetEventMask(hDeviceHandle, $1F, dwEventMask[0]);

Event.hWnd := NIL;

Event.uEventCh1 := NIL;

Event.uEventCh2 := NIL;

Event.uEventCh3 := NIL;

Event.uEventCh4 := NIL;

Event.uEventCom := NIL;

Event.uEventILock := NIL;

Event.lpCallBackProc := lpEventProc;

Event.dwUser := $1234;

nRet := DcmpSetEvent(hDeviceHandle, Event);

デバイス名「FBIDCMP1」のデバイスの CH1 の割り込みマスク、コールバック関数を設定します。

Page 87: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

86

25. DcmpKillEvent

【機能】

割り込み発生時に起動するコールバック関数、メッセージの解除を行います。

【書式】

●C言語

INT DcmpKillEvent(

HANDLE hDeviceHandle // デバイスハンドル

);

●Visual Basic

Declare Function DcmpKillEvent Lib "FbiDcmp.DLL"(

ByVal hDeviceHandle As Long ‘ デバイスハンドル

)As Long

●Delphi

function DcmpKillEvent(

hDeviceHandle: THandle // デバイスハンドル

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

【パラメータ】

hDeviceHandle DcmpOpen 関数で取得したボードのデバイスハンドルを指定してください。

【戻り値】

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

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

い。

【使用例】

●C言語

INT nRet;

HANDLE hDeviceHandle;

hDeviceHandle = DcmpOpen(“FBIDCMP1”, DCMP_FLAG_NORMAL); :

nRet = DcmpKillEvent(hDeviceHandle);

Page 88: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

87

●Visual Basic

Dim lpszName As String

Dim hDeviceHandle As Long

lpszName = "FBIDCMP1" & Chr( 0 )

hDeviceHandle = DcmpOpen(lpszName, DCMP_FLAG_NORMAL)

nRet = DcmpKillEvent(hDeviceHandle)

●Delphi

var

lpszName: String;

hDeviceHandle: THandle;

lpszName := 'FBIDCMP1';

hDeviceHandle := DcmpOpen(lpszName, DCMP_FLAG_NORMAL);

nRet := DcmpKillEvent(hDeviceHandle);

デバイス名「FBIDCMP1」のデバイスのコールバック関数の解除を行います。

Page 89: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

88

4.3 構造体説明

● DCMPTRGCONFIG 構造体 DcmpSetTriggerConfig関数、DcmpGetTriggerConfig関数で指定する外部トリガ設定構造体です。

typedef struct {

DWORD dwMode;

DWORD dwLine;

DWORD dwLogic;

} DCMPTRGCONFIG, *PDCMPTRGCONFIG;

メンバ 説明

設定するトリガモードを選択します。

識別子 意味

DCMP_TRG_MODE1 外部トリガモード 1(エンドリミットモード)

DCMP_TRG_MODE2 外部トリガモード 2(ストップモード)

DCMP_TRG_MODE3 外部トリガモード 3(動作モード 1)

DCMP_TRG_MODE4 外部トリガモード 4(動作モード 2)

dwMode

指定したトリガモードで使用する汎用入力を選択します。

ビット bit31~bit4 bit3 bit2 bit1 bit0

内容 予約 DIn4 DIn3 DIn2 DIn1

dwLine

該当するビットに”1”を指定して汎用入力端子の指定を行います。

複数指定が可能です。

例)DIn1~DIn4をトリガに指定時:Fhを指定

指定した汎用入力端子のトリガ条件論理を反転します。

ビット bit31~bit4 bit3 bit2 bit1 bit0

内容 予約 DIn4 DIn3 DIn2 DIn1

dwLogic

該当するビットに”1”を指定してトリガ条件を反転する汎用入力端子の指定を行

います。

複数指定が可能です。

各トリガのデフォルトのトリガ条件はトリガモード毎に異なります。

例)DIn1~DIn4のトリガ条件を反転時:Fhを指定

Page 90: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

89

● DCMPPWMTIME 構造体 DcmpSetPWM関数、DcmpGetPWM関数で指定するPWM制御パラメータ設定構造体です。

typedef struct {

DWORD dwBaseClock;

DWORD dwCycleTime;

DWORD dwMoveTime;

} DCMPPWMTIME, *PDCMPPWMTIME;

メンバ 説明

PWM 周期時間/動作時間の基準クロックを指定します。

識別子 意味

DCMP_BCLOCK_1US 1[us]の基準クロックを指定します。

DCMP_BCLOCK_10US 10[us]の基準クロックを指定します。

dwBaseClock

dwCycleTime PWM 周期時間を設定します。

範囲(DCMP_BCLOCK_1US):10~32,767(7FFFh)

範囲(DCMP_BCLOCK_10US):1~32,767(7FFFh)

※ dwBaseClock に指定した値によって、設定可能な範囲が異なります。

dwBaseClock で指定した基準クロックと dwCycleTime の積で、 終的な PWM 周期

時間が決定します。

例)

DCMPPWMTIME Time;

Time.dwBaseClock = DCMP_BCLOCK_10US;

Time.dwCycleTime = 1000;

1000 × 10[us] = 10000[us](= 10[ms])

dwMoveTime PWM 動作時間を設定します。

範囲(DCMP_BCLOCK_1US):0、5~32,767(7FFFh)(1~4は設定禁止)

範囲(DCMP_BCLOCK_10US):0~32,767(7FFFh)

※ dwBaseClock に指定した値によって、設定可能な範囲が異なります。

dwBaseClock で指定した基準クロックと dwMoveTime の積で、 終的な PWM 動作時

間が決定します。

例)

DCMPPWMTIME Time;

Time.dwBaseClock = DCMP_BCLOCK_10US;

Time.dwMoveTime = 500;

500 × 10[us] = 5000[us](= 5[ms])

Page 91: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

90

● DCMPBRAKETIME 構造体 DcmpSetBrake関数、DcmpGetBrake関数で使用する、反転時ブレーキ時間を設定する構造体です。

typedef struct {

DWORD dwBaseClock;

DWORD dwBrakeTime;

} DCMPBRAKETIME, *PDCMPBRAKETIME;

メンバ 説明

反転時ブレーキ時間の基準クロックを指定します。

識別子 意味

DCMP_BCLOCK_1US 1[us]の基準クロックを指定します。

DCMP_BCLOCK_1MS 1[ms]の基準クロックを指定します。

dwBaseClock

dwBrakeTime 各種制御時間の間隔を設定します。

範囲:0~4095(FFFh)

dwBaseClock で指定した基準クロックと dwBrakeTime の積で、 終的な反転時ブ

レーキ時間が決定します。

例)

DCMPBRAKETIME Time;

Time.dwBaseClock = DCMP_BCLOCK_1MS;

Time.dwBrakeTime = 1000;

1000 × 1[ms] = 1000[ms](= 1[s])

Page 92: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

91

● DCMPEVENTREQ 構造体 割り込みイベントを設定する構造体です。コールバック関数、ウィンドウメッセージの設定に

使用します。

typedef struct {

HANDLE hWnd;

UINT uEventCh1;

UINT uEventCh2;

UINT uEventCh3;

UINT uEventCh4;

UINT uEventCom;

UINT uEventILock;

PLPDCMPCALLBACK lpCallBackProc;

DWORD dwUser;

} DCMPEVENTREQ, *PDCMPEVENTREQ;

メンバ 説明

hWnd メッセージ送出ウィンドウハンドル

DcmpSetEventMask 関数にて設定した各種割り込み発生時に送出するメッセー

ジのポスト先ウィンドウハンドルを指定します。

(メッセージ送出時に、LPARAMには割り込み要因が格納されます。フォーマッ

トはDcmpSetEventMask/DcmpGetEventMaskで使用する各要因と同じになりま

す。配列データではなく、DWORD型のデータとなります。)

メッセージポストを行わない場合には、C言語では NULL,Visual Basic では 0,

Delphi では NIL を指定してください。

uEventCh1 CH1 割り込みメッセージ

CH1 の割り込み発生時に送出するメッセージコードを指定します。

メッセージポストを行わない場合には、C 言語では WM_NULL,Visual Basic で

は 0,Delphi では WM_NULL を指定してください。

uEventCh2 CH2 割り込みメッセージ

CH2 の割り込み発生時に送出するメッセージコードを指定します。

メッセージポストを行わない場合には、C 言語では WM_NULL,Visual Basic で

は 0,Delphi では WM_NULL を指定してください。

uEventCh3 CH3 割り込みメッセージ

CH3 の割り込み発生時に送出するメッセージコードを指定します。

メッセージポストを行わない場合には、C 言語では WM_NULL,Visual Basic で

は 0,Delphi では WM_NULL を指定してください。

uEventCh4 CH4 割り込みメッセージ

CH4 の割り込み発生時に送出するメッセージコードを指定します。

メッセージポストを行わない場合には、C 言語では WM_NULL,Visual Basic で

は 0,Delphi では WM_NULL を指定してください。

Page 93: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

92

uEventCom 共通割り込みメッセージ

デバイス共通の割り込み発生時に送出するメッセージコードを指定します。

メッセージポストを行わない場合には、C 言語では WM_NULL,Visual Basic で

は 0,Delphi では WM_NULL を指定してください。

uEventILock インタロック割り込みメッセージ

インタロック割り込み発生時に送出するメッセージコードを指定します。

メッセージポストを行わない場合には、C 言語では WM_NULL,Visual Basic で

は 0,Delphi では WM_NULL を指定してください。

lpCallBackProc 割り込み発生時に呼び出されるユーザ・コールバック関数のポインタを指定し

てください。(コールバック関数は全チャンネル共通となります)

dwUser コールバック関数へ引き渡すユーザ・データを指定してください。

Page 94: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

93

4.4 戻り値一覧

エラー識別子 値 意味 対処方法

DCMP_ERROR_SUCCESS 0 正常終了 -

DCMP_ERROR_NOT_DEVICE C0000001h

(-1073741823)

ドライバを呼び出せませ

ん。

指定したデバイスが見つかりません

でした。

指定したデバイス番号が存在するか

どうかを確認してください。

DCMP_ERROR_NOT_OPEN C0000002h

(-1073741822)

ドライバを OPEN できませ

ん。

デバイスのオープン時、何らかのエラ

ーが発生しました。

ドライバ内部のメモリ確保に失敗し

たなど。

DCMP_ERROR_INVALID_HANDLE C0000003h

(-1073741821)

デバイスハンドルが正し

くありません。

不正なデバイスハンドルで呼び出し

を行おうとしました。

OPEN 関数で返されたデバイスハンド

ルを使用してください。

DCMP_ERROR_ALREADY_OPEN C0000004h

(-1073741820)

既に OPEN しているデバイ

スを OPEN しようとしまし

た。

既に OPEN されているデバイスです。

DCMP_ERROR_NOT_SUPPORTED C0000009h

(-1073741815)

サポート外の機能です。 指定したデバイスにおいて、サポート

外の機能を選択しました。

DCMP_ERROR_NOW_MOVING C0001000h

(-1073737728)

モータ動作中です。 モータが動作中に実行できない

関数です。 DCMP_ERROR_NOW_STOPPED C0001001h

(-1073737727)

モータ停止中です。 モータが停止中に実行できない関数

です。

DCMP_ERROR_EEPROM_BUSY C0001004h

(-1073737724)

EEPROM への書き込みに失

敗しました。

-

DCMP_ERROR_INVALID_DEVICE C0001010h

(-1073737712)

チャンネル番号指定に誤

りがあります。

チャンネル番号が正しくありません。

1h~fh 以外のチャンネル番号を指定

しています。

指定した関数では実行できないチャ

ンネル番号を指定しています。

DCMP_ERROR_INVALID_CHANNEL C0001011h

(-1073737711)

チャンネル番号指定に誤

りがあります。

チャンネル番号が正しくありません。

1h~fh 以外のチャンネル番号を指定

しています。

指定した関数では実行できないチャ

ンネル番号を指定しています。

DCMP_ERROR_INVALID_FILTER C0001012h

(-1073737710)

デジタルフィルタ機能設

定に失敗しました。

デジタルフィルタ設定の指定が間違

っています。正しいフィルタ設定値を

指定してください。

DCMP_ERROR_INVALID_ENABLE C0001013h

(-1073737709)

DC モータドライバ機能設

定に失敗しました。

“1”(有効)又は、”0”(無効)を指定

してください。

DCMP_ERROR_INVALID_ERR_DETE

CT

C0001014h

(-1073737708)

異常検出機能設定に誤り

があります。

“1”(有効)又は、”0”(無効)を指定

してください。

DCMP_ERROR_INVALID_MODE C0001016h

(-1073737706)

モード指定に誤りがあり

ます。

正しいモード設定を指定してくださ

い。

DCMP_ERROR_INVALID_NUM C0001017h

(-1073737705)

段数指定が不正です。 PWM メモリ設定の段数指定が間違っ

ています。1~64 の値を設定してくだ

さい。

Page 95: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

94

DCMP_ERROR_INVALID_PARAMETE

R

C0001018h

(-1073737704)

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

引数の値の範囲が指定範囲外です。

DCMP_ERROR_NOW_INTERLOCKED C0001019h

(-1073737703)

インタロック中 インタロック中は実行できません。

DCMP_ERROR_NOT_ALLOCATE_MEM

ORY

C000101ah

(-1073737702)

メモリを確保できません。 ドライバ内部で作業をするためのメ

モリ確保に失敗しました。

DCMP_ERROR_EMPTY_DATA C000101bh

(-1073737701)

NULL ポインタは指定でき

ません。

引数に NULL ポインタは指定できませ

ん。

DCMP_ERROR_IMPOSSIBLE C000101ch

(-1073737700)

動作の起動/停止に失敗

しました。

動作を指定したチャンネルが Enable

になっているか、もしくはエラーが発

生している可能性があります。

Page 96: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

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

以下、各サンプルプログラムの概要を説明します。

【実行手順】

サンプルプログラムには実行形式のファイルが付属していません。

ソースコードをコンパイルして実行ファイルを生成してから、動作させてください。

・ Visual C の場合

Visual C++(Visual Studio)を起動し、「ファイル」メニューから「ワークスペースを開く」

を選び、メイクファイル「.mak」を開き、ビルドしてください。

・ Visual C++の場合

Visual C++(Visual Studio)を起動し、「ファイル」メニューから「ワークスペースを開く」

を選び、メイクファイル「.mak」を開き、ビルドしてください。

・ Visual Basic の場合

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

・ Delphi の場合

Delphi を起動し、プロジェクトファイル「.dpr」を開き、ビルドしてください。

5.1 DcmpSmpl 【概要】

サンプルプログラム「DcmpSmpl」は DC モータの起動/停止、PWM 動作を行うサンプルプログラム

です。

CH1 の DC モータを制御します。

CH1:正転開始

【内容】

1. メニューバーの「File」→「Open」でデバイスオープンダイアログが表示されます。オープン

するデバイス名「FBIDCMPxx」を入力してください。

2. メニューバーの「Enable」をクリックして、DC モータドライバを Enable 状態にします。

© 2003, 2011 Interface Corporation. All rights reserved.

95

Page 97: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

3. メニューバーの「Start」から起動する動作を選択します。

(全て CH1 に対しての制御となります。)

・「SET FORWARD(CW)」 → 正転方向への動作準備(スタートトリガで動作開始)

・「SET REVERSE(CCW)」 → 逆転方向への動作準備(スタートトリガで動作開始)

・「MOVE FORWARD(CW)」 → 正転動作開始

・「MOVE REVERSE(CCW)」 → 逆転動作開始

・「PWM START」 → PWM 動作開始(有効)

・「PWM STOP」 → PWM 操作停止(無効)

4. メニューバーの「Stop」から動作を停止します。

5. メニューバーの「PWM」から PWM 動作を開始します。PWM 動作の設定は次の値となります。

・PWM 動作周期 → 10 [ms]

・PWM 動作時間 → 5 [ms]

5. メニューバーの「Exit」でプログラムを終了します。

© 2003, 2011 Interface Corporation. All rights reserved.

96

Page 98: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

97

5.2 ControlDC 【概要】

サンプルプログラム「ControlDC」は DC モータの起動/停止を行うサンプルプログラムです。

CH1 の DC モータを制御します。

【内容】

・Visual C++ では、メニューバーの「Start Motion」

・Visual Basic, Delphi では、「Start Motion」ボタン

をクリックすると以下の処理を順番に行っています。

処理概要 設定値 使用関数

1 デバイスオープン FBIDCMP1 DcmpOpen

2 DC モータ制御・異常検出機能の

設定

CH1 の DC モータ制御有効、

検出機能有効

DcmpSetEnable

3 動作を起動 CH1 の正転開始 DcmpStartMotion

4 動作を確認する為に 1秒待機

5 動作を停止 動作停止 DcmpStopMotion

6 デバイスクローズ DcmpClose

5.3 ControlPWM 【概要】

サンプルプログラム「ControlPWM」は DC モータの起動/停止、PWM 制御を行うサンプルプログラ

ムです。

CH1 の DC モータを制御します。

【内容】

・Visual C++ では、メニューバーの「Start Motion」

・Visual Basic, Delphi では、「Start Motion」ボタン

をクリックすると以下の処理を順番に行っています。

処理概要 設定値 使用関数

1 デバイスオープン FBIDCMP1 DcmpOpen

2 DC モータ制御・異常検出機能の

設定

CH1 の DC モータ制御有効、

検出機能有効

DcmpSetEnable

3 PWM 動作の周期・動作時間を設

周期 1[ms] 、動作時間

500[us]

DcmpSetPWM

4 動作を起動 CH1 の正転開始 DcmpStartMotion

5 動作を確認する為に 1秒待機

6 PWM 制御を有効 CH1 の PWM 制御を有効 DcmpStartMotion

7 動作を確認する為に 1秒待機

8 動作を停止 動作停止 DcmpStopMotion

9 デバイスクローズ DcmpClose

Page 99: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

98

5.4 ExtTrg 【概要】

サンプルプログラム「ExtTrg」は DC モータの外部トリガ制御を行うサンプルプログラムです。

CH1 の外部トリガを制御します。

【内容】

・Visual C++ では、メニューバーの「Start Motion」

・Visual Basic, Delphi では、「Start Motion」ボタン

をクリックすると以下の処理を順番に行っています。

処理概要 設定値 使用関数

1 デバイスオープン FBIDCMP1 DcmpOpen

2 DC モータ制御・異常検出機能の

設定

CH1 の DC モータ制御有効、

検出機能有効

DcmpSetEnable

3 外部トリガモードの設定 外部トリガモード 3

IN1 を使用

DcmpSetTriggerConfig

4 動作の準備 CH1 の正転準備 DcmpStartMotion

5 動作が開始するまで待機

6 動作を確認する為に 1秒待機

7 動作を停止 動作停止 DcmpStopMotion

8 デバイスクローズ DcmpClose

Page 100: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

第6章 ユーティリティ

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

5.5 動作確認プログラム 「スタート」メニューから「DcmpMotion」を起動してください。

動作確認プログラムが起動します。

「デバイス」→「オープン」を選択すると、使用可能な DC モータドライバボードの

一覧が表示されますので、使用したいボードを選択して「OK」ボタンを押してください。

© 2003, 2011 Interface Corporation. All rights reserved.

99

Page 101: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

メニュー 説明

オープン 「Open Device」ダイアログが表示され、オープン可能なデバイス名を表示し

ます。

リストボックス内のデバイス名を選択して「OK」を押すと、そのデバイスがオ

ープンします。

トリガ設定 「Trigger Setting」ダイアログが表示され、各種トリガ機能の設定を行います。

スタート、ストップ、ブレーキ、CW、CCW トリガの設定は、上部のタブを選

択してそれぞれのトリガの設定画面に切り替えます。 設定が完了したら、「OK」ボタンを押すと設定内容がデバイスにオープンした

デバイスに反映されます。

© 2003, 2011 Interface Corporation. All rights reserved.

100

Page 102: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

フィルタ設定 「Filter Setting」ダイアログが表示されます。 各チャンネル毎に DIn1~DIn4 のデジタルフィルタの設定を行います。 設定完了後、「OK」ボタンを押すと設定内容がデバイスに反映されます。

反転時ブレーキ

設定

「Brake Setting」ダイアログが表示されます。 動作方向が反転する際に挿入される、ブレーキ時間の設定を行います。 設定完了後、「OK」ボタンを押すと設定内容がデバイスに反映されます。

© 2003, 2011 Interface Corporation. All rights reserved.

101

Page 103: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

イベント設定 「Event Setting」ダイアログが表示されます。 イベントマスク設定、コールバック関数へ渡すユーザデータ、メッセージ設定

を行うことが可能です。 それぞれの設定を行う際には、上部のタブを切り替えて設定を行います。 設定完了後、「OK」ボタンを押すと設定内容がデバイスに反映され、コールバ

ック関数の設定が行われます。

メインウィンドウ上の制御ボタンを押すことで、各種動作を起動することが可能です。また、上

部のタブを切り替えることで、各チャンネルの動作を制御することが可能になります。

(複数のチャンネルを同時に制御することはできません。)

※ インタロック入力中は動作を起動することができません。

© 2003, 2011 Interface Corporation. All rights reserved.

102

Page 104: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

5.6 自己診断プログラム 用意する物

・端子台

・ケーブル

・ワニ口ケーブル等

・外部電源

「スタート」メニューから、「DcmpDiag」を起動します。

使用可能な DC モータドライバボードの一覧が表示されますので、自己診断を行うデバイスを

選択して「OK」ボタンを押します。

下図の様な自己診断プログラムが起動します。

画面の指示通りに端子台の端子をワニ口ケーブルなどでつないでいきます。

端子台のピン番号の配置などはボードのマニュアルを参照して下さい。

検査を行いたいチャンネルのチェックボックスをチェックします。

その信号と検査を行う出力端子を表示してあるとおりに、ワニ口ケーブルなどでつなぎます。

「汎用入出力」「DC 出力」「インタロック」の各タブページに移動し、それぞれの検査を行って下

さい。

© 2003, 2011 Interface Corporation. All rights reserved.

103

Page 105: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

「DC 出力」検査では下図のようなページとなります。

ページ下の「開始」ボタンで検査を行います。 検査結果が右横のラベルと左の「診断結果」の大きなラベルに「OK」、「NG」で表示されます。 「インタロック」検査では各ページ上の指示通りに端子をワニ口ケーブルなどでつなぎます。 ページ上の「開始」ボタンで検査を行います。

検査結果が左の「診断結果」の大きなラベルに「OK」、「NG」で表示されます。

© 2003, 2011 Interface Corporation. All rights reserved.

104

Page 106: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

「結果」ボタンをクリックすると各項目の診断結果を表記したダイアログが表示します。

「Save」ボタンにより、診断結果をテキスト形式で保存することが可能です。

© 2003, 2011 Interface Corporation. All rights reserved.

105

Page 107: GPC-7302 - Interface...GPC-7302は、Windows上のアプリケーションから、弊社DCモータドライバ製品を制御する為の ソフトウェアです。弊社DCモータドライバ製品をWindows上のアプリケーションからDLLをダイナミックリンクし、

GPC-7302 Help for Windows

© 2003, 2011 Interface Corporation. All rights reserved.

106

第7章 重要な情報

保証の内容と制限

株式会社インタフェースは本ドキュメントに含まれるソースプログラムの実行が中断しないこと、

またはその実行に誤りが無いことを保証していません。

本製品の品質や使用に起因する、性能に起因するいかなるリスクも使用者が負うものとします。

株式会社インタフェースはドキュメント内の情報の正確さに万全を期しています。万一、誤記ま

たは誤植などがあった場合、株式会社インタフェースは予告無く改訂する場合があります。ドキ

ュメントまたはドキュメント内の情報に起因するいかなる損害に対しても株式会社インタフェー

スは責任を負いません。

ドキュメント内の図や表は説明のためであり、ユーザ個別の応用事例により変化する場合があり

ます。

著作権、知的所有権

株式会社インタフェースは本製品に含まれるおよび本製品に対する権利や知的所有権を保持して

います。

本製品はコンピュータ ソフトウェア、映像/音声(例えば図、文章、写真など)を含んでいます。

医療機器/器具への適用における注意

株式会社インタフェースの製品は人命に関わるような状況下で使用される機器に用いられる事を

目的として設計、製造された物では有りません。

株式会社インタフェースの製品は人体の検査などに使用するに適する信頼性を確保する事を意図

された部品や検査機器と共に設計された物では有りません。

医療機器、治療器具などの本製品の適用により、製品の故障、ユーザ、設計者の過失などにより、

損傷/損害を引き起こす場合が有ります。

複製の禁止

株式会社インタフェースの許可なく、本ドキュメントの全て、または一部に関わらず、複製、改

変などを行うことはできません。

責任の制限

株式会社インタフェースは、株式会社インタフェース または再販売者の予見の有無にかかわらず

発生したいかなる特別損害、偶発的損害、間接的な損害、重大な損害について、責任を負いませ

ん。

本製品に含まれるバグ、あるいは本製品の供給(納期遅延)、性能、もしくは使用に起因する付帯

的損害もしくは間接的損害に対して、株式会社インタフェースに全面的に責がある場合でも、株

式会社インタフェースはその製品の販売価格以上の責任を負わないものとします。

商標/登録商標

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