gpc-7206 -...

158
SMC(2)V-HG(PCI) www.interface.co.jp GPC-7206 モーションコントローラ製品 Windows 対応ドライバソフトウェア Help for Windows

Upload: others

Post on 14-Aug-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

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

SMC(2)V-HG(PCI)

www.interface.co.jp

GPC-7206 モーションコントローラ製品 Windows 対応ドライバソフトウェア

Help for Windows

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

2

目 次

第 1 章 はじめに 3

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

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

第 2 章 製品仕様 4

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

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

第 3 章 導入方法 6

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

3.2 実行手順 ......................................................................11

第 4 章 リファレンス 13

4.1 関数一覧 ......................................................................13

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

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

4.4 構造体 .......................................................................131

4.5 戻り値一覧 ...................................................................138

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

5.1 PmcSmpl ......................................................................140

5.2 PmcInt .......................................................................142

第 6 章 ユーティリティ 144

6.1 自己診断プログラム ...........................................................144

6.2 動作確認プログラム ...........................................................147

第 7 章 用語説明 149

7.1 連続動作 .....................................................................149

7.2 原点復帰動作 .................................................................149

7.3 移動量指定 原点復帰動作 ......................................................149

7.4 原点サーチ動作 ...............................................................150

7.5 原点抜け出し動作 .............................................................151

7.6 シングルステップ .............................................................151

7.7 タイマ動作 ...................................................................151

7.8 PTP 動作 .....................................................................151

7.9 0 点復帰動作 .................................................................151

7.10 動作再開(残りパルス出力) ...................................................151

7.11 CP 動作 ......................................................................152

7.12 予約動作 .....................................................................153

7.13 速度設定方法 .................................................................153

7.14 速度設定範囲 .................................................................154

第 8 章 FAQ 155

第 9 章 重要な情報 157

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

3

第1章 はじめに

1.1 概要 GPC-7206 は、Windows 上のアプリケーションから、弊社モーションコントローラ製品を制御する

為のソフトウェアです。

弊社モーションコントローラ製品を Windows 上のアプリケーションから DLL をダイナミックリン

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

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

1.2 特長 ●階層化ドライバと各種統一、共通化により、DLL(API)レベルで I/O モジュール型式を意識する

必要がありません。

●ファームウェアコマンドの直接制御に近いシンプルな関数体系ですので、自由度が高く、処理

速度の速いアプリケーションを構築できます。

●動作パラメータ設定はコントローラのレジスタ値の計算が不要。ファームウェア側で移動速度

[pps]、加減速時間[ms]をレジスタ値に変換します。

●複数軸(I/O モジュール複数)の同時起動をサポート。

●I/O モジュールの自己診断を行うプログラムを提供。

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

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

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

4

第2章 製品仕様

2.1 基本仕様 最大デバイス数 16 デバイス(枚)

移動速度 0.1pps~1Mpps

最大移動パルス数 ±268435455(連続動作,原点復帰動作は制限なし)

加減速方式 直線加減速,S字加減速

割り込み機能 制御状態コード返信時,インタロック時

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

5

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

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

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

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

PMCDIAG.EXE 自己診断プログラム ユーティリティ

PMCJOG.EXE 動作確認プログラム

サンプルプログラム

Visual C# .NET PMCINT Visual C# .NET 用サンプルプログラム

Visual C++ PMCSMPL

PMCINT

Visual C++(MFC)用サンプルプログラム

Visual Basic .NET PMCINT Visual Basic .NET 用サンプルプログラム

Visual Basic PMCSMPL

PMCINT

Visual Basic 用サンプルプログラム

Delphi 8 PMCINT Delphi 8 用サンプルプログラム

Delphi PMCSMPL

PMCINT

Delphi 用サンプルプログラム

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

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

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

デバイスドライバ CP7206.SYS Windows Vista/XP/XP Embedded/Server 2003/

2000 用ドライバ

GPC7206.INF Windows Vista/XP/XP Embedded/Server 2003/

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

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

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

GPC7206.SLD Windows XP Embeddedn 用ドライバ SLD ファイル

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

ヘッダファイル FBIPMC.H

GPCPMC.H

Visual C++用ヘッダファイル

FBIPMC.BAS

GPCPMC.BAS

Visual Basic 用ヘッダファイル

FBIPMC.PAS

GPCPMC.PAS

Delphi 用ヘッダファイル

Help HELP.PDF

HELP_NET.PDF

Help(PDF 形式)

.NET 用補足 Help

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

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

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

6

第3章 導入方法

3.1 インストール手順

1. サンプルプログラムのインストール

サンプルプログラム、Help、ヘッダーファイル、インポートライブラリ、最新情報ドキュメン

トファイルのインストールを行います。

1. 弊社 Web site より GPC-7206 の Utility Disk をダウンロードします。

2. ダウンロードしたプログラムを実行すると、「SETUP」フォルダが作成されます。

3. 「SETUP」フォルダ内の SETUP.EXE を実行してください。プログラムが起動しインストール

が開始されます。

インストールが完了すると、「スタート」メニューの「プログラム」に、「Interface GPC-7206」

が追加されます。

2. Windows Vista ドライバのインストール

・ドライバダウンロード方法

1. 弊社 Web site より GPC-7206 の Driver Disk [Windows Vista,XPe,XP,2003,2000] をダウン

ロードします。

2. ダウンロードしたプログラムを実行すると、「Win2000」フォルダが作成されます。

・ドライバインストール方法 ※ 途中で警告のメッセージが表示されることがありますが、「続行」をクリックしてインストールを続けてく

ださい。

1. 製品をスロットに実装しシステムを起動します。

2. 「新しいハードウェアが見つかりました」が表示されます。

3. 「ドライバソフトウェアを検索してインストールします(推薦)(L)」をクリックします。

4. 「オンラインで検索しません(D)」をクリックします。

5. 「ディスクはありません。他の方法を試します(I)」をクリックします。

6. 「コンピュータを参照してドライバソフトウェアを検索します(上級)(R)」をクリックしま

す。

7. 作成した「Win2000」フォルダを指定し、「次へ」をクリックします。

8. ファイルのコピーが始まります。

「ドライバソフトウェアの発行元を検証できません」と表示された場合、「このドライバソ

フトウェアをインストールします(I)」をクリックします。

9. 「新しいハードウェアの検索検出」の完了メッセージが表示されます。「閉じる(C)」をクリ

ックします。

10.以上で Windows Vista ドライバのインストールは完了です。

ドライバのインストール完了後以降はシステム起動時に上記 2.のように「新しいハードウ

ェアが見つかりました」が表示されることはありません。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

7

3. Windows XP/Server 2003 ドライバのインストール

・ドライバダウンロード方法

1. 弊社 Web site より GPC-7206 の Driver Disk [Windows Vista,XPe,XP,2003,2000] をダウン

ロードします。

2. ダウンロードしたプログラムを実行すると、「Win2000」フォルダが作成されます。

・ドライバインストール方法

1. 製品をスロットに実装しシステムを起動します。

2. 「新しいハードウェアの検索ウィザード」が起動します。

3. 「一覧または特定の場所からインストールする(詳細)(S)」が選択されていることを確認し、

「次へ」をクリックします。

4. 「次の場所で最適のドライバを検索する(S)」を選択し、「次の場所を含める(O)」にチェッ

クをつけ、作成した「Win2000」フォルダを指定し、「次へ」をクリックします。

5. ファイルのコピーが始まります。途中で警告のメッセージが表示されることがありますが、

「続行」をクリックしてインストールを続けてください。

6. 「新しいハードウェアの検索ウィザード」の完了メッセージが表示されます。「完了」をク

リックします。

7. 以上で Windows XP/Server 2003 ドライバのインストールは完了です。

ドライバのインストール完了後以降はシステム起動時に上記 2.のように「新しいハードウ

ェアの検索ウィザード」が起動することはありません。

3. Windows XP Embedded ドライバのインストール

Windows XP と同様の手順で、ドライバのインストールができます。(ただし、OS イメージにデ

バイスの検出に必要なコンポーネントが含まれている必要があります。

4. Windows XP Embedded 用ハードウェア情報ファイルのインポート

・ドライバダウンロード方法

1. 弊社 Web site より GPC-7206 の Driver Disk [Windows Vista,XPe,XP,2003,2000] をダウン

ロードします。

2. ダウンロードしたプログラムを実行すると、「Win2000」フォルダが作成されます。

・ドライバインストール方法

1. Windows XP Embedded 開発環境の Component Database Manager を起動します。

2. 弊社モーションコントローラ製品のハードウェア情報ファイルをインポートします。作成し

「Win2000」フォルダ内の GPC7206.SLD を、画面の指示に従ってインポートしてください。

3. 以上で、ハードウェア情報のインポートは完了です。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

8

5. Windows 2000 ドライバのインストール

・ドライバダウンロード方法

1. 弊社 Web site より GPC-7206 の Driver Disk [Windows Vista,XPe,XP,2003,2000] をダウン

ロードします。

2. ダウンロードしたプログラムを実行すると、「Win2000」フォルダが作成されます。

・ドライバインストール方法

1. 製品をスロットに実装しシステムを起動します。

2. 「新しいハードウェアの検索ウィザード」が起動します。「次へ」をクリックします。

3. 「ハードウェア デバイスドライバのインストール」ダイアログが表示されます。検索方法

を「デバイスに最適なドライバを検索する(推奨)(S)」のまま「次へ」をクリックします。

4. 「ドライバファイルの特定」ダイアログが表示されます。「検索場所のオプション」にある

「場所を指定(S)」をチェックし、「次へ」をクリックします。

5. ドライバファイルのコピー元を指定するダイアログが表示されます。

6. 「製造元のファイルのコピー元」に作成した「Win2000」フォルダを指定し「OK」をクリッ

クします。

7. ドライバが見つかった旨のダイアログが表示されます。「次へ」をクリックします。

8. ファイルのコピーが始まります。

9. 「新しいハードウェアの検索ウィザード」の完了メッセージが表示されます。「完了」をク

リックします。

10.以上で、Windows 2000 ドライバのインストールは完了です。

ドライバのインストール完了後以降はシステム起動時に上記 2.のように「新しいハードウ

ェアの検索ウィザード」が起動することはありません。

6. Windows NT ドライバのインストール

・ドライバダウンロード方法

1. 弊社 Web site より GPC-7206 の Driver Disk [Windows NT 4.0]をダウンロードします。

2. ダウンロードしたプログラムを実行すると、「WinNT」フォルダが作成されます。

・ドライバインストール方法

1. 作成した「WinNT」フォルダ内の GPC7206.INF ファイルを右クリックします。

2. メニューの中から「インストール」を選択します。

3. 画面の指示に従ってインストールを行ってください。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

9

7. Windows Me ドライバのインストール

・ドライバダウンロード方法

1. 弊社 Web site より GPC-7206 の Driver Disk [Windows Me,98,95]をダウンロードします。

2. ダウンロードしたプログラムを実行すると、「Win95」フォルダが作成されます。

・ドライバインストール方法

1. 製品をスロットに実装しシステムを起動します。

2. 「デバイスドライバウィザード」が起動します。

3. 「ドライバの場所を指定する」を指定し、「次へ」をクリックします。

4. 「使用中のデバイスに最適なドライバを検索する」を指定し、「検索場所の指定(L)」にチ

ェックをつけ、場所に、作成した「Win95」フォルダを指定し「次へ」をクリックします。

5. ドライバが見つかった旨のダイアログが表示されます。「次へ」ボタンをクリックします。

6. ファイルのコピーが始まります。

7. 「新しいハードウェアの検索ウィザード」の完了メッセージが表示されます。「完了」をク

リックします。

8. 以上で Windows Me のドライバのインストールは完了です。

ドライバのインストール完了後以降はシステム起動時に上記 2.のように「デバイスドライ

バウィザード」が起動することはありません。

8. Windows 98 ドライバのインストール

・ドライバダウンロード方法

1. 弊社 Web site より GPC-7206 の Driver Disk [Windows Me,98,95]をダウンロードします。

2. ダウンロードしたプログラムを実行すると、「Win95」フォルダが作成されます。

・ドライバインストール方法

1. 製品をスロットに実装しシステムを起動します。

2. 「デバイスドライバウィザード」が起動します。

3. デバイスドライバの自動検出を促すメッセージダイアログが表示されますので、「次へ」を

クリックします。

4. 「使用中のデバイスに最適なドライバを検索する」を指定し、「次へ」をクリックします。

5. 「検索場所の指定(L)」にチェックをつけ、場所に、作成した「Win95」フォルダを指定し

「次へ」をクリックします。

6. ファイルのコピーが始まります。

7. 「新しいハードウェアの検索ウィザード」の完了メッセージが表示されます。「完了」をク

リックします。

8. 以上で Windows 98 のドライバのインストールは完了です。

ドライバのインストール完了後以降はシステム起動時に上記 2.のように「デバイスドライ

バウィザード」が起動することはありません。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

10

9. Windows 95 ドライバのインストール

・ドライバダウンロード方法

1. 弊社 Web site より GPC-7206 の Driver Disk [Windows Me,98,95]をダウンロードします。

2. ダウンロードしたプログラムを実行すると、「Win95」フォルダが作成されます。

・ドライバインストール方法

1. 製品をスロットに実装しシステムを起動します。

2. 「デバイスドライバウィザード」が起動します。

3. デバイスドライバの自動検出を促すメッセージダイアログが表示されますので、「次へ」を

クリックします。

4. デバイスドライバが見つからない旨のダイアログが表示され、ドライバの「場所の指定」

をするように促されます。

5. 「場所の指定」ボタンをクリックし、場所に、作成した「Win95」フォルダを指定し「OK」

ボタンをクリックします。

6. ドライバが見つかった旨のダイアログが表示されます。「完了」ボタンをクリックします。

7. ファイルのコピーが始まります。「GPC-7206 ラベルの付いたディスクを挿入して「OK」を押

してください。」のメッセージが表示されますので「OK」を押してください。

8. 「cp7206.vxd~が見つかりませんでした」と表示されますが、ファイルのコピー元に作成

した「Win95」フォルダを指定するとコピーが完了します。

9. 以上で Windows 95 のドライバのインストールは完了です。

ドライバのインストール完了後以降はシステム起動時に上記 2.のようにデバイスドライバ

ウィザードが起動することはありません。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

11

3.2 実行手順

同一型式の I/O モジュールを複数枚使用する場合は、モジュール上のロータリースイッチ RSW1 の

設定値が同一型式同士で重複しないように設定してから拡張スロットに実装してください。同一

型式で複数のモジュールが存在する場合、モジュールを一意に識別するための番号となります。

重複していた場合、本 DLL は正常に動作いたしません。

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

3.2.1 初期化

デバイス(I/O モジュール)を PmcOpen 関数によりオープン(初期化)します。

DeviceHandle = PmcOpen( "FBIPMC1", PMC_FLAG_NORMAL );

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

設定されます。

FBIPMC1,FBIPMC2,・・・,FBIPMC16

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

デバイスハンドルとは、デバイスを一意に識別するもので、下記以降の関数コールの際に指定し

ます。

複数のデバイス(I/O モジュール)を使用する場合は、デバイス毎に PmcOpen 関数をコールし、

各デバイスに対応したデバイスハンドルを取得する必要があります。

また、複数のプロセス(アプリケーション)から同一のデバイスをオープン(使用)することは

できません。

オープンしたデバイスはアプリケーション終了の際には、必ず終了処理(PmcClose 関数)を行っ

てください。

3.2.2 ハンドシェークデータ取得

PmcHandShake 関数を使用して、デバイスのハンドシェークデータを取得します。

各関数(PmcOpen,PmcClose,PmcReset 関数以外)を実行する場合には、PmcHandShake 関数で取

得したハンドシェークデータにより、書き込み可,制御状態コード返信,リセット等の状態を確

認してから実行するようにしてください。

3.2.3 インタロック解除

PmcOffInterLock 関数により、インタロック状態を解除します(PmcOffInterLock 関数によるソフ

トウェアインタロックの解除前に、ハードウェアインタロックの解除[外部接続が必要]を行っ

てください)。

3.2.4 初期設定

PmcSetMaxSpeed,PmcSetPulseOut,PmcSetCounterConfig,PmcSetLimitConfig 関数等を使用して

デバイスの最高速度制限値,パルス出力方式、カウンタ設定、制御信号入力論理等の各種設定を

行います。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

12

3.2.5 動作パラメータ設定

PmcSetMaxSpeed,PmcSetMotion 関数等を使用して各種動作パラメータを設定します。

3.2.6 起動

PmcStartMotion 関数により、各種動作(連続動作,原点復帰動作,PTP 動作,CP 動作,動作予

約)を起動します。

3.2.7 停止

PmcStopMotion 関数により、動作を停止します(即時停止,減速停止,非常停止,緊急停止)。

3.2.8 各種モニタリング

デバイスハンドルから I/O モジュール型式,RSW 番号を調べるには PmcGetDeviceInfo 関数を使

用します。

PmcGetStatus 関数では、動作状態/停止要因/制御信号入力状態等の各種ステータスのモニタリ

ングが可能です。

3.2.9 カウンタ

各種カウンタ値の読み出し/クリアは PmcReadCounter,PmcClearCounter 関数により行います。

3.2.10 汎用入出力

汎用入出力の制御は PmcOutputDO,PmcOutputDO1,PmcOutputDO2,PmcOutputDO3,PmcOutputDO4,

PmcInputDI 関数により行います。

3.2.11 リセット

デバイスのリセットは PmcReset 関数により行います。。

リセット時(インタロック信号入力,ウォッチドッグタイマによるリセットを含む)には、

PmcGetStatus 関数によるリセット要因の確認後、PmcOffInterLock 関数によるインタロック状態

の解除を行わなければ、起動関数(PmcStartMotion 関数)は実行できません。

なお、インタロック機能が作動(I/O モジュール上の LED2 または LED3 が点灯)している状態

では、対応する軸のモータを起動(パルスを出力)することはできませんので、ご注意ください。

3.2.12 割り込み設定

デバイスからの各種割り込みを使用する場合は、PmcSetEvent 関数による設定を行う必要があり

ます。ます。

3.2.13 終了処理

PmcClose 関数により、デバイスの終了処理を行います。

PmcClose( DeviceHandle );

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

13

第4章 リファレンス

4.1 関数一覧

No 関数名 機能

●初期化

1 PmcOpen デバイス(I/O モジュール)のオープンを行い、以後のデバイス

へのアクセスを許可します。

2 PmcClose デバイスのクローズを行い、デバイスアクセスのために使用され

ていた各種リソースの解放を行い、以後のデバイスへのアクセス

を禁止します。

3 PmcGetDeviceInfo I/O モジュールの型式、RSW 番号を取得します。

4 PmcHandShake ハンドシェークデータを確認します。

5 PmcOffInterLock インタロック(ソフトウェア)を解除します。

6 PmcOnInterLock インタロック(ソフトウェア)を設定します。

●各種設定、取得

7 PmcSetPulseOut パルス出力の設定を行います。(パルス方式,出力パルス幅等)

8 PmcGetPulseOut パルス出力の設定を取得します。

9 PmcSetLimitConfig 外部信号の設定を行います。(マスク,入力論理,SD 信号機能)

10 PmcGetLimitConfig 外部信号の設定を取得します。

11 PmcSetCounterConfig カウンタの設定を行います。(カウンタモード,カウンタ範囲,

クリア条件)

12 PmcGetCounterConfig カウンタの設定を取得します。

13 PmcSetMaxSpeed 最高速度制限値を設定します。

14 PmcGetMaxSpeed 最高速度制限値を取得します。

15 PmcSetMotion 各種動作パラメータの設定を行います。

16 PmcGetMotion 各種動作パラメータの設定を取得します。

17 PmcSetMotionCp CP 動作パラメータを設定します。

18 PmcGetMotionCp CP 動作パラメータを取得します。

19 PmcSetMotionEx 動作予約パラメータを設定します。

20 PmcGetMotionEx 動作予約パラメータを取得します。

●動作起動、停止

21 PmcStartMotion 各種動作を起動します。

22 PmcStopMotion 各軸のモータを停止させます。

23 PmcStartSync 同時起動を行います。

●その他(ステータス取得、速度、カウンタ読み込み、汎用入出力)

24 PmcChangeSpeed 移動速度、パターンの変更を行います。

25 PmcReadSpeed 現在の速度を確認します。

26 PmcReadCounter カウンタ値を読み込みます。

27 PmcWriteCounter カウンタ値を書き込みます。

28 PmcClearCounter カウンタ値をクリアします。

29 PmcGetStatus 各種ステータスを取得します。

30 PmcOutputDO 汎用出力を制御します。

31 PmcInputDI 汎用入力を確認します。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

14

32 PmcOutputDO1 汎用出力 DO1 を制御します。

33 PmcOutputDO2 汎用出力 DO2 を制御します。

34 PmcOutputDO3 汎用出力 DO3 を制御します。

35 PmcOutputDO4 汎用出力 DO4 を制御します。

●割り込み

36 PmcSetEvent 割り込みの設定を行います。

37 PmcGetEvent 割り込みの設定を取得します。

●リセット

38 PmcReset デバイスをリセットします。

39 PmcResetController コントローラのみをリセットします。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

15

4.2 関数個別説明

1. PmcOpen 【機能】

PCI-7206 のオープンを行い、以後の I/O モジュールへのアクセスを行えるようにします。オー

プンするにはデバイス名を指定します。デバイス名は、システム起動時に I/O モジュール毎に

自動で割り当てられます。

●PCI-7206 のデバイス名は「FBIPMCx」(xは 1~16)となります。複数枚ご使用になる場合は、

制御する I/O モジュールのデバイス名を事前にご確認ください。

●Windows Vista/XP/XP Embedded/Sever 2003/2000/Me/98/95 では、「コントロールパネル」の

「デバイス」に「FbiPmc」が追加され、認識された I/O モジュールが一覧表示されます。一

覧の製品型式の横に I/O モジュール上の RSW1 の値とデバイス名が表示されます。

●動作確認プログラム(PmcJog.exe)、または診断プログラム(PmcDiag.exe)でも確認できま

す。

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

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

【書式】

●C言語

HANDLE PmcOpen(

string Name, // デバイス名

DWORD Flags // オープンフラグ

);

●Visual Basic

Declare Function PmcOpen Lib "fbipmc.dll"(

ByVal Name As String,

ByVal Flags As Long

)As Long

●Delphi

function PmcOpen(

Name: String;

Flags: DWORD

): Thandle; stdcall; external 'fbipmc.dll';

【パラメータ】

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

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

16

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

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

識別子 値 意味

PMC_FLAG_NORMAL

00h 1 つのデバイス(I/O モジュール)を制御するプロセ

ス(アプリケーション)は 1つだけとします。

【戻り値】

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

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

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

【備考】

PCI-7206 は、1 つのデバイスを制御するプロセス(アプリケーション)は、1 つのみとなって

いますので、他のプロセスで使用中のデバイスをオープンすることはできません。(1つのプロ

セスで、複数のデバイスを制御することは可能です)

【使用例】

●C言語

HANDLE DeviceHandle;

INT ret;

DeviceHandle = PmcOpen( "FBIPMC1", PMC_FLAG_NORMAL );

ret = PmcClose( DeviceHandle );

●Visual Basic

Dim Name As String

Dim DeviceHandle As Long

Dim ret As Long

Name = "FBIPMC1" & Chr( 0 )

DeviceHandle = PmcOpen( Name , PMC_FLAG_NORMAL )

ret = PmcClose( DeviceHandle )

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

17

●Delphi

var

Name : String;

DeviceHandle: THandle;

ret: Integer;

begin

Name := 'FBIPMC1';

DeviceHandle := PmcOpen( Name , PMC_FLAG_NORMAL );

ret := PmcClose( DeviceHandle );

end;

デバイス名 FBIPMC1 のデバイスをオープンし、変数 DeviceHandle にデバイスハンドルを返しま

す。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

18

2. PmcClose 【機能】

デバイスのクローズを行い、デバイスアクセスのために使用されていた各種リソースの解放を

行い、以後のデバイスへのアクセスを禁止します。オープン(PmcOpen 関数)とクローズ

(PmcClose 関数)の実行回数は必ず一致しなければなりません。

【書式】

●C言語

INT PmcClose(

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

);

●Visual Basic

Declare Function PmcClose Lib "fbipmc.dll"(

ByVal DeviceHandle As Long

)As Long

●Delphi

function PmcClose(

DeviceHandle: Integer

): Integer; stdcall; external 'fbipmc.dll';

【パラメータ】

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

【戻り値】

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

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

【備考】

再度、I/O モジュールへのアクセスを行う場合にはオープン処理(PmcOpen 関数)を呼び出してく

ださい。

【使用例】

●C言語

HANDLE DeviceHandle;

INT ret;

DeviceHandle = PmcOpen( "FBIPMC1", PMC_FLAG_NORMAL );

ret = PmcClose( DeviceHandle );

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

19

●Visual Basic

Dim Name As String

Dim DeviceHandle As Long

Dim ret As Long

Name = "FBIPMC1" & Chr( 0 )

DeviceHandle = PmcOpen( Name , PMC_FLAG_NORMAL )

ret = PmcClose( DeviceHandle )

●Delphi

var

Name : String;

DeviceHandle: THandle;

ret: Integer;

begin

Name := 'FBIPMC1';

DeviceHandle := PmcOpen( Name , PMC_FLAG_NORMAL );

ret := PmcClose( DeviceHandle );

end;

デバイスハンドル DeviceHandle のクローズ処理を行います。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

20

3. PmcGetDeviceInfo 【機能】

指定されたデバイスのデバイス情報を取得します。

【書式】

●C言語

INT PmcGetDeviceInfo(

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

PDWORD Type, // 取得値を格納する変数の参照渡し

PDWORD RSW // 取得値を格納する変数の参照渡し

);

●Visual Basic

Declare Function PmcGetDeviceInfo Lib "fbipmc.dll"(

ByVal DeviceHandle As Long,

ByRef Type As Long,

ByRef RSW As Long

)As Long

●Delphi

function PmcGetDeviceInfo (

DeviceHandle: THandle;

var Type: DWORD;

var RSW: DWORD

): Integer; stdcall; external 'fbipmc.dll';

【パラメータ】

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

Type 取得値を格納する変数のポインタ(参照渡し)を指定してください。

I/O モジュール型式を取得します。

RSW 取得値を格納する変数のポインタ(参照渡し)を指定してください。

RSW 番号を取得します。

【戻り値】

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

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

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

21

【使用例】

●C言語

HANDLE DeviceHandle;

INT ret;

DWORD Type, RSW;

DeviceHandle = PmcOpen("FBIPMC1", PMC_FLAG_NORMAL );

ret = PmcGetDeviceInfo( DeviceHandle, &Type, &RSW );

if(ret == PMC_ERROR_SUCCESS)

printf("型式:%d , RSW:%x\n",Type,RSW);

●Visual Basic

Dim Name As String

Dim DeviceHandle As Long

Dim ret As Long

Dim Type As Long

Dim RSW As Long

Dim szInfo As String

Name = "FBIPMC1" & Chr( 0 )

DeviceHandle = PmcOpen( Name , PMC_FLAG_NORMAL )

ret = PmcGetDeviceInfo( DeviceHandle, Type, RSW )

If ret = PMC_ERROR_SUCCESS Then

szInfo = "型式:" & Str(Type) & " RSW:" & Hex(RSW)

ret = MsgBox(szInfo, (vbOKOnly + vbInformation), "デバイス情報")

End If

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

22

●Delphi

var

Name ,Info: String;

DeviceHandle: THandle;

ret: Integer;

Type, RSW: DWORD;

begin

Name := 'FBIPMC1';

DeviceHandle := PmcOpen( Name , PMC_FLAG_NORMAL );

ret := PmcGetDeviceInfo( DeviceHandle, Type, RSW );

if ret = PMC_ERROR_SUCCESS then

begin

Info := '型式:'+ IntToStr(Type)+' RSW:' + IntToHex(RSW,2);

MessageDlg(Info, mtInformation, [mbOk], 0);

end;

end;

デバイスハンドル DeviceHandle の I/Oモジュール型式とRSW番号を Type, RSW に格納します。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

23

4. PmcHandShake 【機能】

デバイスから返信されるハンドシェークデータを確認します。

【書式】

●C言語

INT PmcHandShake(

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

PDWORD Data // 取得値を格納する変数の参照渡し

);

●Visual Basic

Declare Function PmcHandShake Lib "fbipmc.dll"(

ByVal DeviceHandle As Long,

ByRef Data As Long

)As Long

●Delphi

function PmcHandShake(

DeviceHandle: THandle;

var Data: DWORD

): Integer; stdcall; external 'fbipmc.dll';

【パラメータ】

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

Data 取得値を格納する変数のポインタ(参照渡し)を指定してください。

ハンドシェークデータを取得します。

bit31~bit8 : 予約

bit7 : CPU 初期化状態 0:初期化完了 1:初期化中

bit6,5 : 予約

bit4 : 書き込み許可フラグ 0:書き込み不可 1:書き込み可

bit3 : 2 軸側動作状態 0:停止中 1:動作中

bit2 : 1 軸側動作状態 0:停止中 1:動作中

bit1 : リセットフラグ 0:要因なし 1:要因あり

bit0 : 制御状態コード返信フラグ 0:返信なし 1:返信あり

【戻り値】

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

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

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

24

【備考】

●ハンドシェークデータの bit7 が 1 の場合には、デバイスに搭載されている CPU が初期化

中のため、各種設定用関数,動作起動関数を実行することはできません(初期化完了後、bit7

は 0 となります)。

●ハンドシェークデータの bit4 が 0 の場合には、デバイスに搭載されている CPU が処理中

のため、各種設定用関数,動作起動関数を実行することはできません。デバイスに搭載され

ている CPU の処理完了後、bit4 は 1 となり、各関数の実行が可能となります。

●ハンドシェークデータの bit1 が 1 の場合には、デバイスがリセット(PmcReset 関数,ハ

ードウェアインタロック,ウォッチドックタイマ)されています。リセット後は

PmcGetStatus 関数により、リセット要因を読み出してください(リセット要因を読み出して

いない場合には、各種設定用関数,動作起動関数を実行することはできません)。

●ハンドシェークデータの bit0 が 1 の場合には、デバイスから制御状態コードが返信され

ています。制御状態コード返信後は、PmcGetStatus 関数により、制御状態コードを読み出し

てください(制御状態コードを読み出していない場合には、各種設定用関数,動作起動関数

を実行することはできません)。

●以上より、各関数実行時には本関数により取得したハンドシェークデータにおいて、bit7 =

0(CPU 初期化完了),bit4 = 1(書き込み可),bit1 = 0(リセット要因返信なし),bit0 =

0(制御状態コード返信なし)を確認してから実行してください(bit6,5 および bit3,2 は、

0,1 のどちらでも構いません)。

【使用例】

●C言語

HANDLE DeviceHandle;

INT ret;

DWORD Data;

DeviceHandle = PmcOpen( "FBIPMC1", PMC_FLAG_NORMAL );

ret = PmcHandShake( DeviceHandle, &Data );

if(ret == PMC_ERROR_SUCCESS)

printf("ハンドシェークデータ:%x\n",Data);

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

25

●Visual Basic

Dim Name As String

Dim szInfo As String

Dim DeviceHandle As Long

Dim ret As Long

Dim Data As Long

Name = "FBIPMC1" & Chr( 0 )

DeviceHandle = PmcOpen( Name , PMC_FLAG_NORMAL )

ret = PmcHandShake( DeviceHandle, Data )

If ret = PMC_ERROR_SUCCESS Then

szInfo = Hex(Data)

szInfo = "ハンドシェークデータ:" & szInfo & "H"

ret = MsgBox(szInfo, (vbOKOnly + vbInformation),"PmcHandShake")

End If

●Delphi

var

Name : String;

Info: String;

DeviceHandle: THandle;

Data: DWORD;

ret: Integer;

begin

Name := 'FBIPMC1';

DeviceHandle := PmcOpen( Name , PMC_FLAG_NORMAL );

ret := PmcHandShake( DeviceHandle, Data );

if ret = PMC_ERROR_SUCCESS then

begin

Info := 'ハンドシェークデータ:'+IntToHex(Data, 2);

MessageDlg(Info, mtInformation,[mbOk],0);

end;

end;

デバイスハンドル DeviceHandle のハンドシェークデータを取得します。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

26

5. PmcOffInterLock 【機能】

インタロック(ソフトウェア)を解除します。

【書式】

●C言語

INT PmcOffInterLock(

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

DWORD Axis // 対象軸

);

●Visual Basic

Declare Function PmcOffInterLock Lib "fbipmc.dll"(

ByVal DeviceHandle As Long,

ByVal Axis As Long

)As Long

●Delphi

function PmcOffInterLock(

DeviceHandle: THandle;

Axis: DWORD

): Integer; stdcall; external 'fbipmc.dll';

【パラメータ】

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

Axis インタロック解除を行う軸を指定してください。(1 or 2)

【戻り値】

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

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

【備考】

●インタロックが解除されるまで(ソフト、ハードとも)パルスを出力することはできません。

●本 関 数 実 行 時 に 、 ハ ー ド ウ ェ ア イ ン タ ロ ッ ク が 作 動 し て い る 場 合 に は 、

PMC_ERROR_NOW_INTERLOCKED を返します。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

27

【使用例】

●C言語

HANDLE DeviceHandle;

INT ret;

DeviceHandle = PmcOpen( "FBIPMC1", PMC_FLAG_NORMAL );

ret = PmcOffInterLock( DeviceHandle, 1 );

●Visual Basic

Dim Name As String

Dim DeviceHandle As Long

Dim ret As Long

Name = "FBIPMC1" & Chr( 0 )

DeviceHandle = PmcOpen( Name , PMC_FLAG_NORMAL )

ret = PmcOffInterLock( DeviceHandle, 1 )

●Delphi

var

Name : String;

DeviceHandle: THandle;

ret: Integer;

begin

Name := 'FBIPMC1';

DeviceHandle := PmcOpen( Name , PMC_FLAG_NORMAL );

ret := PmcOffInterLock( DeviceHandle, 1 );

end;

デバイスハンドル DeviceHandle の 1 軸側のソフトウェアインタロックを解除します。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

28

6. PmcOnInterLock 【機能】

インタロック(ソフトウェア)機能を作動します。

【書式】

●C言語

INT PmcOnInterLock(

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

DWORD Axis // 対象軸

);

●Visual Basic

Declare Function PmcOnInterLock Lib "fbipmc.dll"(

ByVal DeviceHandle As Long,

ByVal Axis As Long

)As Long

●Delphi

function PmcOnInterLock(

DeviceHandle: THandle;

Axis: DWORD

): Integer; stdcall; external 'fbipmc.dll';

【パラメータ】

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

Axis

インタロック機能を作動する軸を指定してください。(1 or 2)

【戻り値】

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

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

【備考】

本関数の実行によりインタロック機能が作動しパルス出力が遮断されますが、ハードウェアイ

ンタロックとは異なり、リセットされません(コントローラの動作は継続します)。また、本関

数によるインタロック後、PmcOffInterLock 関数によるインタロック解除を行うことによりパ

ルス出力は再開されます。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

29

【使用例】

●C言語

HANDLE DeviceHandle;

INT ret;

DeviceHandle = PmcOpen( "FBIPMC1", PMC_FLAG_NORMAL );

ret = PmcOnInterLock( DeviceHandle, 1 );

●Visual Basic

Dim Name As String

Dim DeviceHandle As Long

Dim ret As Long

Name = "FBIPMC1" & Chr( 0 )

DeviceHandle = PmcOpen( Name , PMC_FLAG_NORMAL )

ret = PmcOnInterLock( DeviceHandle, 1 )

●Delphi

var

Name : String;

DeviceHandle: THandle;

ret: Integer;

begin

Name := 'FBIPMC1';

DeviceHandle := PmcOpen( Name , PMC_FLAG_NORMAL );

ret := PmcOnInterLock( DeviceHandle, 1 );

end;

デバイスハンドル DeviceHandle の 1 軸側のインタロック機能を作動します。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

30

7. PmcSetPulseOut 【機能】

パルス出力の各種設定を行います。

【書式】

●C言語

INT PmcSetPulseOut(

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

DWORD Axis, // 設定軸

DWORD Mode, // 設定項目

DWORD Config // 設定値

);

●Visual Basic

Declare Function PmcSetPulseOut Lib "fbipmc.dll"(

ByVal DeviceHandle As Long,

ByVal Axis As Long,

ByVal Mode As Long,

ByVal Config As Long

)As Long

●Delphi

function PmcSetPulseOut(

DeviceHandle: THandle;

Axis: DWORD;

Mode: DWORD;

Config: DWORD

): Integer; stdcall; external 'fbipmc.dll';

【パラメータ】

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

Axis 設定を行う軸を指定してください。(1 or 2)

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

31

Mode 設定項目を指定してください。

識別子 値 意味

PMC_METHOD 0000h パルス出力モード

PMC_IDLING 0001h アイドリング

PMC_WAIT 0004h 方向変化時ウェイト

PMC_FINISH 0005h 動作完了タイミング

PMC_MICRO_STEP 0006h マイクロステップ単位数

PMC_STEP_CONTROL 0007h マイクロステップ制御範囲

PMC_MACHINE_LOCK 0008h マシンロック

PMC_ORG_FINISH 0010h 原点復帰動作完了条件

Config 設定値を指定してください。(Mode で指定した設定項目により、Config の設定値が異なり

ます)

■パルス出力モード

bit31~bit2 : 予約

bit1 : 0:負論理 1:正論理

bit0 : 0:2 パルス方式 1:パルス/ディレクション方式

■アイドリング

0~7 [パルス]

■方向変化時ウェイト

識別子 値 意味

PMC_OFF 0000h 未使用

PMC_ON 0001h 使用(約 200µs)

■動作完了タイミング

識別子 値 意味

PMC_PULSE_OUT 0000h パルス出力周期完了

PMC_PULSE_OFF 0001h パルス出力 OFF

■マイクロステップ単位数

1~256 [パルス]

■マイクロステップ制御範囲

識別子 値 意味

PMC_ALWAYS 0000h 常に制御

PMC_EXCEPT_LIMIT 0001h ±EL,ALM 信号による停止時,原点復帰完了時は制

御しない

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

32

■マシンロック

識別子 値 意味

PMC_OFF 0000h 未使用

PMC_ON 0001h 使用(パルス出力なし)

■原点復帰動作完了条件

識別子 値 意味

PMC_STOP_ORG 0000h ORG 信号で停止

PMC_STOP_ORG_EZ 0001h ORG + EZ 信号入力カウントで停止

PMC_DEC_ORG_EZ 0002h ORG 信号で減速、+EZ 信号入力カウントで停止

【戻り値】

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

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

【備考】

●方向変化時ウェイト

パルス出力を パルス/ディレクション方式とした場合には、DIR 信号が変化してからパルス

出力が開始されるまでにウェイトが必要となります。PMC_ON を指定すると、DIR 信号が変

化してから約 200µs 次のスタートが遅延します。

●動作完了タイミング

PMC_PULSE_OUT を指定すると、最終パルスが ON → OFF に変化後、その時の出力周波数の

周期終了になってから完了とみなされるため、停止後すぐに動作を起動してもパルス出力休

止時間が確保されます。

PMC_PULSE_OFF を指定すると、周期終了を待たずに完了となるため、停止後すぐに動作を起

動しない場合には、サイクルタイムを短縮できます。

●マイクロステップ単位数

ステッピングモータのステップ振動抑制用にマイクロステップ制御が行えます。

マイクロステップの単位数として 1~256 に対応し、マイクロステップ制御時は単位数での

停止となり途中では停止しません。このため、PmcStopMotion 関数による減速停止時,即時

停止時にはフルステップ位置での停止となります(非常停止時にはフルステップ位置以外で

も停止します)。

なお、PmcSetMotion 関数等で指定する移動量,PmcReadCounter,PmcWriteCounter 関数で使

用するカウンタ値はマイクロステップ制御に関係なく使用できます(マイクロステップ単位

数を 10 に設定し、移動量に 120 パルスを指定した PTP 動作を起動した場合、出力パルス

は 1200 パルス,カウンタ値は 120 カウント変化します)。

●マイクロステップ制御範囲

PMC_ALWAYS を指定すると PmcStopMotion 関数による非常停止時,PmcResetController 関数

によるコントローラリセット時,デバイスのリセット時以外では、常にマイクロステップ制

御が働き停止位置はフルステップ位置となります。

PMC_EXCEPT_LIMIT を指定すると、±EL,ALM 信号による停止時,原点復帰完了時はフルス

テップ位置以外でも停止します。

●マシンロック(疑似動作)

PMC_ON を指定すると、パルス出力以外はすべての動作を行い、モータを停止させたままの

疑似動作となります。このため、OUT,DIR の各端子からはパルスは出力されません(パル

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

33

ス出力方式を パルス/ディレクション方式としている場合には、DIR 端子は方向信号として

の出力があります)。

また、マシンロック時には、以下の制限があります。・ カウンタモードは

PmcSetCounterConfig 関数での設定に関係なく内部発振パルスとなります。

・原点復帰動作では 1 パルスも出力することなく、動作完了となります。

・±EL,±SD,ALM の各信号入力が ON の状態でも無視して動作します。

・INP 信号入力により動作完了のタイミングは遅延しません。

※原点復帰動作完了条件

PMC_STOP_ORG を指定すると、 ORG 信号 ON により停止します(起動時に既に ON 状態の時

には 1 パルスも出力することなく動作完了となります)。

PMC_STOP_ORG_EZ を指定すると、 ORG 信号が ON になってから PmcSetLimitConfig 関数で

指定した Z 相信号入力回数分の Z 相信号の ON により停止します(起動時に既に ON 状態

の時には PmcSetLimitConfig 関数で指定した Z 相信号入力回数分の Z 相信号の ON により

停止します)。その間 ORG 信号は ON し続ける必要があります。

PMC_DEC_ORG_EZ を指定すると、ORG 信号が ON になると減速を開始し、PmcSetLimitConfig

関数で指定した Z 相信号入力回数分の Z 相信号の ON により停止します(起動時に既に ON

状態の時には PmcSetLimitConfig 関数で指定した Z 相信号入力回数分の Z 相信号の ON に

より停止します)。その間 ORG 信号は ON し続ける必要があります。

【使用例】

●C言語

HANDLE DeviceHandle;

INT ret;

DeviceHandle = PmcOpen( "FBIPMC1", PMC_FLAG_NORMAL );

ret = PmcSetPulseOut( DeviceHandle, 1, PMC_METHOD, 0x00 );

●Visual Basic

Dim Name As String

Dim DeviceHandle As Long

Dim ret As Long

Name = "FBIPMC1" & Chr( 0 )

DeviceHandle = PmcOpen( Name , PMC_FLAG_NORMAL )

ret = PmcSetPulseOut( DeviceHandle, 1, PMC_METHOD, &H00 )

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

34

●Delphi

var

Name : String;

DeviceHandle: THandle;

ret: Integer;

begin

Name := 'FBIPMC1';

DeviceHandle := PmcOpen( Name , PMC_FLAG_NORMAL );

ret := PmcSetPulseOut( DeviceHandle, 1, PMC_METHOD, $00 );

end;

デバイスハンドル DeviceHandle の 1 軸側パルス出力モードを 2パルス方式、負論理に設定し

ます。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

35

8. PmcGetPulseOut 【機能】

パルス出力の各種設定を取得します。

【書式】

●C言語

INT PmcGetPulseOut(

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

DWORD Axis, // 取得軸

DWORD Mode, // 取得項目

PDWORD Config // 取得値を格納する変数の参照渡し

);

●Visual Basic

Declare Function PmcGetPulseOut Lib "fbipmc.dll"(

ByVal DeviceHandle As Long,

ByVal Axis As Long,

ByVal Mode As Long,

ByRef Config As Long

)As Long

●Delphi

function PmcGetPulseOut(

DeviceHandle: THandle;

Axis: DWORD;

Mode: DWORD;

var Config: DWORD

): Integer; stdcall; external 'fbipmc.dll';

【パラメータ】

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

Axis 取得を行う軸を指定してください。(1 or 2)

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

36

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

識別子 値 意味

PMC_METHOD 0000h パルス出力モード

PMC_IDLING 0001h アイドリング

PMC_WAIT 0004h 方向変化時ウェイト

PMC_FINISH 0005h 動作完了タイミング

PMC_MICRO_STEP 0006h マイクロステップ単位数

PMC_STEP_CONTROL 0007h マイクロステップ制御範囲

PMC_MACHINE_LOCK 0008h マシンロック

PMC_ORG_FINISH 0010h 原点復帰動作完了条件

Config 取得値を格納する変数のポインタ(参照渡し)を指定してください。

【戻り値】

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

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

【使用例】

●C言語

HANDLE DeviceHandle;

INT ret;

DWORD Config;

DeviceHandle = PmcOpen( "FBIPMC1", PMC_FLAG_NORMAL );

ret = PmcGetPulseOut( DeviceHandle, 1, PMC_METHOD, &Config );

if(ret == PMC_ERROR_SUCCESS)

printf("パルス出力モード:%x\n",Config);

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

37

●Visual Basic

Dim Name As String

Dim szInfo As String

Dim DeviceHandle As Long

Dim ret As Long

Dim Config As Long

Name = "FBIPMC1" & Chr( 0 )

DeviceHandle = PmcOpen( Name , PMC_FLAG_NORMAL )

ret = PmcGetPulseOut( DeviceHandle, 1, PMC_METHOD, Config )

If ret = PMC_ERROR_SUCCESS Then

szInfo = Hex(Config)

szInfo = "パルス出力モード:" & szInfo & "H"

ret = MsgBox(szInfo, (vbOKOnly+vbInformation),"PmcGetPulseOut")

End If

●Delphi

var

Name : String;

Info: String;

DeviceHandle: THandle;

ret: Integer;

Config: DWORD;

begin

Name := 'FBIPMC1';

DeviceHandle := PmcOpen( Name , PMC_FLAG_NORMAL );

ret := PmcGetPulseOut( DeviceHandle, 1, PMC_METHOD, Config );

if ret = PMC_ERROR_SUCCESS then

begin

Info := 'パルス出力モード:'+IntToHex(Config,2);

MessageDlg(Info, mtInformation,[mbOk],0);

end;

end;

デバイスハンドル DeviceHandle の 1 軸側パルス出力モードを取得します。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

38

9. PmcSetLimitConfig 【機能】

外部信号の各種設定を行います。

【書式】

●C言語

INT PmcSetLimitConfig(

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

DWORD Axis, // 設定軸

DWORD Mode, // 設定項目

DWORD Config // 設定値

);

●Visual Basic

Declare Function PmcSetLimitConfig Lib "fbipmc.dll"(

ByVal DeviceHandle As Long,

ByVal Axis As Long,

ByVal Mode As Long,

ByVal Config As Long

)As Long

●Delphi

function PmcSetLimitConfig(

DeviceHandle: THandle;

Axis: DWORD;

Mode: DWORD;

Config: DWORD

): Integer; stdcall; external 'fbipmc.dll';

【パラメータ】

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

Axis 設定を行う軸を指定してください。(1 or 2)

Mode 設定項目を指定してください。

識別子 値 意味

PMC_MASK 0000h マスク設定

PMC_LOGIC 0001h 入力論理

PMC_SD_FUNC 0002h SD 信号機能

PMC_INP_CONTROL 0004h INP 信号制御

PMC_EZ_COUNT 0008h Z 相信号入力回数

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

39

Config 設定値を指定してください。(Mode で指定した設定項目により、Config の設定値が異なり

ます)

■マスク設定

bit31~bit1 : 予約

bit0 : ±SD 0:信号入力有効 1:信号入力無効

■入力論理

bit31~bit8 : 予約

bit7 : INP 0:負論理 1:正論理

bit6 : ALM 0:負論理 1:正論理

bit5 : ORG 0:負論理 1:正論理

bit4 : Z 0:負論理 1:正論理

bit3,2,1 : 予約

bit0 : ±SD 0:負論理 1:正論理

■SD 信号機能

識別子 値 意味

PMC_CHANGE_SD_SPEED 0000h 減速入力

PMC_DEC_STOP_SIGNAL 0001h 減速停止入力

■INP 信号制御

識別子 値 意味

PMC_OFF 0000h 処理なし

PMC_ON 0001h INP 信号入力まで動作完了は遅延

■Z 相信号入力回数

1~16

【戻り値】

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

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

【備考】

●マスク設定は、±SD 信号のみ可能となっています(±SD 信号以外は、マスクすることはで

きません)。

●±EL 信号の入力論理は、I/O モジュール上の DSW1 により設定します(本関数では設定でき

ません)。

●±SD 信号,ORG 信号入力は、レベル入力となっています。

●INP 信号制御を有効にした場合(PMC_ON を指定)には、動作完了のタイミングが、パルス出

力完了後 INP 信号が入力されるまで遅延します。無効とした場合(PMC_OFF を指定)には、

パルス出力完了により動作完了となります。

●Z 相信号入力回数は、原点復帰動作時の停止条件となります。Z 相信号入力回数に n を指

定した場合には、原点復帰動作時の停止条件(PmcSetPulseOut 関数にて設定)に

PMC_STOP_ORG_EZ,PMC_DEC_ORG_EZ を指定すると、ORG 信号が ON になってから n 回目の Z

相信号の入力により停止します(ORG 信号はレベル入力のため、その間 ORG 信号は ON し続

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

40

ける必要があります)。

【使用例】

●C言語

HANDLE DeviceHandle;

INT ret;

DeviceHandle = PmcOpen( "FBIPMC1", PMC_FLAG_NORMAL );

ret = PmcSetLimitConfig( DeviceHandle, 1, PMC_LOGIC, 0x01 );

●Visual Basic

Dim Name As String

Dim DeviceHandle As Long

Dim ret As Long

Name = "FBIPMC1" & Chr( 0 )

DeviceHandle = PmcOpen( Name , PMC_FLAG_NORMAL )

ret = PmcSetLimitConfig( DeviceHandle, 1, PMC_LOGIC, &H01 )

●Delphi

var

Name : String;

DeviceHandle: THandle;

ret: Integer;

begin

Name := 'FBIPMC1';

DeviceHandle := PmcOpen( Name , PMC_FLAG_NORMAL );

ret := PmcSetLimitConfig( DeviceHandle, 1, PMC_LOGIC, $01 );

end;

デバイスハンドル DeviceHandle の 1 軸側 ±SD 信号の入力論理を正論理,その他の信号を負論

理にします。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

41

10. PmcGetLimitConfig

【機能】

外部信号の各種設定を取得します。

【書式】

●C言語

INT PmcGetLimitConfig(

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

DWORD Axis, // 取得軸

DWORD Mode, // 取得項目

PDWORD Config // 取得値を格納する変数の参照渡し

);

●Visual Basic

Declare Function PmcGetLimitConfig Lib "fbipmc.dll"(

ByVal DeviceHandle As Long,

ByVal Axis As Long,

ByVal Mode As Long,

ByRef Config As Long

)As Long

●Delphi

function PmcGetLimitConfig(

DeviceHandle: THandle;

Axis: DWORD;

Mode: DWORD;

var Config: DWORD

): Integer; stdcall; external 'fbipmc.dll';

【パラメータ】

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

Axis 取得を行う軸を指定してください。(1 or 2)

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

識別子 値 意味

PMC_MASK 0000h マスク設定

PMC_LOGIC 0001h 入力論理

PMC_SD_FUNC 0002h SD 信号機能

PMC_INP_CONTROL 0004h INP 信号制御

PMC_EZ_COUNT 0008h Z 相信号入力回数

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

42

Config 取得値を格納する変数のポインタ(参照渡し)を指定してください。

【戻り値】

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

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

【使用例】

●C言語

HANDLE DeviceHandle;

INT ret;

DWORD Config;

DeviceHandle = PmcOpen("FBIPMC1", PMC_FLAG_NORMAL );

ret = PmcGetLimitConfig( DeviceHandle, 1, PMC_LOGIC, &Config );

if(ret == PMC_ERROR_SUCCESS)

printf("入力論理:%x\n",Config);

●Visual Basic

Dim Name As String

Dim szInfo As String

Dim DeviceHandle As Long

Dim ret As Long

Dim Config As Long

Name = "FBIPMC1" & Chr( 0 )

DeviceHandle = PmcOpen( Name, PMC_FLAG_NORMAL )

ret = PmcGetLimigConfig( DeviceHandle, 1, PMC_LOGIC, Config )

If ret = PMC_ERROR_SUCCESS Then

szInfo = Hex(Config)

szInfo = "入力論理:" & szInfo & "H"

ret = MsgBox(szInfo, (vbOKOnly+vbInformation),"PmcGetLimitConfig")

End If

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

43

●Delphi

var

Name: String;

Info: String;

DeviceHandle: THandle;

ret: Integer;

Config: DWORD;

begin

Name := 'FBIPMC1';

DeviceHandle := PmcOpen( Name, PMC_FLAG_NORMAL );

ret := PmcGetLimitConfig( DeviceHandle, 1, PMC_LOGIC, Config );

if ret = PMC_ERROR_SUCCESS then

begin

Info := '入力論理:'+IntToHex(Config,2);

MessageDlg(Info, mtInformation,[mbOk],0);

end;

end;

デバイスハンドル DeviceHandle の 1 軸側 ±SD 信号の入力論理を正論理,その他の信号を負論

理にします。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

44

11. PmcSetCounterConfig

【機能】

カウンタの各種設定を行います。

【書式】

●C言語

INT PmcSetCounterConfig(

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

DWORD Axis, // 設定軸

DWORD Mode, // 設定項目

DWORD Config // 設定値

);

●Visual Basic

Declare Function PmcSetCounterConfig Lib "fbipmc.dll"(

ByVal DeviceHandle As Long,

ByVal Axis As Long,

ByVal Mode As Long,

ByVal Config As Long

)As Long

●Delphi

function PmcSetCounterConfig(

DeviceHandle: THandle;

Axis: DWORD;

Mode: DWORD;

Config: DWORD

): Integer; stdcall; external 'fbipmc.dll';

【パラメータ】

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

Axis 設定を行う軸を指定してください。(1 or 2)

Mode 設定項目を指定してください。

識別子 値 意味

PMC_COUNTER_MODE 0000h カウンタモード選択

PMC_COUNTER_RANGE 0001h カウンタ範囲

PMC_COUNTER_CLEAR 0002h カウンタクリア条件

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

45

Config 設定値を指定してください。(Mode で指定した設定項目により、Config の設定値が異なり

ます)

■カウンタモード

識別子 値 意味

PMC_NOT_COUNT 0000h カウントしない

PMC_SINGLE 0001h エンコーダ入力 1逓倍

PMC_DOUBLE 0002h エンコーダ入力 2逓倍

PMC_QUAD 0003h エンコーダ入力 4逓倍

PMC_UP_DOWN 0004h エンコーダ入力アップ/ダウンパルス

PMC_PULSE 0008h 内部発振パルス

■カウンタ範囲

識別子 値 意味

PMC_UNIPOLER 0000h 0 ~ 268435455

PMC_BIPOLER 0001h -134,217,728 ~ +134,217,727

■カウンタクリア条件

識別子 値 意味

PMC_NOT_CLEAR 0000h クリアしない

PMC_ORG_STOP 0001h 原点復帰完了時にカウンタクリア

【戻り値】

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

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

【使用例】

●C言語

HANDLE DeviceHandle;

INT ret;

DeviceHandle = PmcOpen("FBIPMC1", PMC_FLAG_NORMAL );

ret = PmcSetCounterConfig( DeviceHandle, 1, PMC_COUNTER_MODE, PMC_SINGLE );

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

46

●Visual Basic

Dim Name As String

Dim DeviceHandle As Long

Dim ret As Long

Name = "FBIPMC1" & Chr( 0 )

DeviceHandle = PmcOpen( Name , PMC_FLAG_NORMAL )

ret = PmcSetCounterConfig( DeviceHandle, 1, PMC_COUNTER_MODE, PMC_SINGLE )

●Delphi

var

Name : String;

DeviceHandle: THandle;

ret: Integer;

begin

Name := 'FBIPMC1';

DeviceHandle := PmcOpen( Name , PMC_FLAG_NORMAL );

ret := PmcSetCounterConfig( DeviceHandle, 1, PMC_COUNTER_MODE, PMC_SINGLE );

end;

デバイスハンドル DeviceHandle の 1 軸側カウンタをエンコーダ入力 1逓倍に設定します。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

47

12. PmcGetCounterConfig

【機能】

カウンタの各種設定を取得します。

【書式】

●C言語

INT PmcGetCounterConfig(

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

DWORD Axis, // 取得軸

DWORD Mode, // 取得項目

PDWORD Config // 取得値を格納する変数の参照渡し

);

●Visual Basic

Declare Function PmcGetCounterConfig Lib "fbipmc.dll"(

ByVal DeviceHandle As Long,

ByVal Axis As Long,

ByVal Mode As Long,

ByRef Config As Long

)As Long

●Delphi

function PmcGetCounterConfig(

DeviceHandle: THandle;

Axis: DWORD;

Mode: DWORD;

var Config: DWORD

): Integer; stdcall; external 'fbipmc.dll';

【パラメータ】

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

Axis 取得を行う軸を指定してください。(1 or 2)

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

識別子 値 意味

PMC_COUNTER_MODE 0000h カウンタモード選択

PMC_COUNTER_RANGE 0001h カウンタ範囲

PMC_COUNTER_CLEAR 0002h カウンタクリア条件

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

48

Config 取得値を格納する変数のポインタ(参照渡し)を指定してください。

【戻り値】

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

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

【使用例】

●C言語

HANDLE DeviceHandle;

INT ret;

DWORD Config;

DeviceHandle = PmcOpen( "FBIPMC1", PMC_FLAG_NORMAL );

ret = PmcGetCounterConfig( DeviceHandle, 1, PMC_COUNTER_MODE, &Config );

if(ret == PMC_ERROR_SUCCESS)

printf("カウンタモード:%x\n",Config);

●Visual Basic

Dim Name As String

Dim szInfo As String

Dim DeviceHandle As Long

Dim ret As Long

Dim Config As Long

Name = "FBIPMC1" & Chr( 0 )

DeviceHandle = PmcOpen( Name , PMC_FLAG_NORMAL )

ret = PmcGetCounterConfig( DeviceHandle, 1, PMC_COUNTER_MODE, Config )

If ret = PMC_ERROR_SUCCESS Then

szInfo = Hex(Config)

szInfo = "カウンタモード:" & szInfo & "H"

ret = MsgBox(szInfo, (vbOKOnly+vbInformation),"PmcGetCounterConfig")

End If

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

49

●Delphi

var

Name : String;

Info: String;

DeviceHandle: THandle;

ret: Integer;

Config: DWORD;

begin

Name := 'FBIPMC1';

DeviceHandle := PmcOpen( Name , PMC_FLAG_NORMAL );

ret := PmcGetCounterConfig( DeviceHandle, 1, PMC_COUNTER_MODE, Config );

if ret = PMC_ERROR_SUCCESS then

begin

Info := 'カウンタモード:'+IntToHex(Config,2);

MessageDlg(Info, mtInformation,[mbOk],0);

end;

end;

デバイスハンドル DeviceHandle の 1 軸側カウンタモードを取得します。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

50

13. PmcSetMaxSpeed

【機能】

最高速度制限値を設定します。

【書式】

●C言語

INT PmcSetMaxSpeed(

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

DWORD Axis, // 設定軸

DWORD Config // 設定値

);

●Visual Basic

Declare Function PmcSetMaxSpeed Lib "fbipmc.dll"(

ByVal DeviceHandle As Long,

ByVal Axis As Long,

ByVal Config As Long

)As Long

●Delphi

function PmcSetMaxSpeed(

DeviceHandle: THandle;

Axis: DWORD;

Config: DWORD

): Integer; stdcall; external 'fbipmc.dll';

【パラメータ】

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

Axis 設定を行う軸を指定してください。(1 or 2)

Config 最高速度制限値を指定してください。(BCD 形式)

00032767h~49150500h → 3276.7~4915050.0[pps]

※下位 4bit は小数点以下 1桁となります。

【戻り値】

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

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

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

51

【備考】

●最高速度制限値は、コントローラの分解能により、本関数により設定した値と実際の制御に

使用している値が異なる場合があります。実際の制御に使用している値を確認する際には、

PmcGetMaxSpeed 関数をご使用ください。

(コントローラの仕様上、最高速度制限値は 32767h(3276.7 pps)の倍数での設定になり

ます。設定値が 32767h の倍数になっていない場合には、32767h の倍数に丸められます。)

●PmcSetMotion 関数等により設定する各動作の速度範囲は、本関数により設定した最高速度制

限値により以下のように決定されます。

設定値 出力速度範囲

BCD 設定 速度値[pps] BCD 設定 速度値[pps]

32767h 3276.7 1h~32767h 0.1~3276.7

163835h 16383.5 5h~163835h 0.5~16383.5

327670h 32767.0 10h~327670h 1~32767.0

655340h 65534.0 20h~655340h 2~65534.0

163850h 163835.0 50h~1638350h 5~163835.0

3276700h 327670.0 100h~3276700h 10~327670.0

6553400h 655340.0 200h~6553400h 20~655340.0

32767000h 3276700.0 1000h~32767000h 100~3276700.0

●出力速度設定のために最高速度制限値として 1Mpps(10000000h)以上の設定も可能ですが、

実際に出力可能な速度はハードウェアの仕様上 1Mpps までとなります。

●本関数により最高速度制限値を変更された場合には、コントローラの分解能の関係から、既

に PmcSetMotion 関数等により設定されている動作パラメータ(速度値,加減速時間)に誤

差が発生する場合があります。本関数による最高速度制限値の変更後は、動作パラメータの

再設定を行ってください。

【使用例】

●C言語

HANDLE DeviceHandle;

INT ret;

DeviceHandle = PmcOpen( "FBIPMC1", PMC_FLAG_NORMAL );

ret = PmcSetMaxSpeed( DeviceHandle, 1, 0x100000 );

●Visual Basic

Dim Name As String

Dim DeviceHandle As Long

Dim ret As Long

Name = "FBIPMC1" & Chr( 0 )

DeviceHandle = PmcOpen( Name , PMC_FLAG_NORMAL )

ret = PmcSetMaxSpeed( DeviceHandle, 1, &H100000 )

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

52

●Delphi

var

Name : String;

DeviceHandle: THandle;

ret: Integer;

begin

Name := 'FBIPMC1';

DeviceHandle := PmcOpen( Name , PMC_FLAG_NORMAL );

ret := PmcSetMaxSpeed( DeviceHandle, 1, $100000 );

end;

デバイスハンドル DeviceHandle の 1 軸側 最高速度制限値を 10kpps(100000pps)に設定しま

す。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

53

14. PmcGetMaxSpeed

【機能】

最高速度制限値を取得します。

【書式】

●C言語

INT PmcGetMaxSpeed(

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

DWORD Axis, // 取得軸

PDWORD Config // 取得値を格納する変数の参照渡し

);

●Visual Basic

Declare Function PmcGetMaxSpeed Lib "fbipmc.dll"(

ByVal DeviceHandle As Long,

ByVal Axis As Long,

ByRef Config As Long

)As Long

●Delphi

function PmcGetMaxSpeed(

DeviceHandle: THandle;

Axis: DWORD;

var Config: DWORD

): Integer; stdcall; external 'fbipmc.dll';

【パラメータ】

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

Axis 取得を行う軸を指定してください。(1 or 2)

Config 取得値を格納する変数のポインタ(参照渡し)を指定してください。

※取得した値は BCD 形式になっています。

【戻り値】

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

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

【備考】

設定した値と異なる値が戻ってくる場合があります。これはモーションコントローラの仕様上

(分解能)起るものです。正確には取得された値で制御を行っています。

【使用例】

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

54

●C 言語

HANDLE DeviceHandle;

INT ret;

DWORD Config;

DeviceHandle = PmcOpen( "FBIPMC1", PMC_FLAG_NORMAL );

ret = PmcGetMaxSpeed( DeviceHandle, 1, &Config );

if(ret == PMC_ERROR_SUCCESS)

printf("最高速度制限値:%X[BCD]\n",Config);

●Visual Basic

Dim Name As String

Dim szInfo As String

Dim DeviceHandle As Long

Dim ret As Long

Dim Config As Long

Name = "FBIPMC1" & Chr( 0 )

DeviceHandle = PmcOpen( Name , PMC_FLAG_NORMAL )

ret = PmcGetMaxSpeed( DeviceHandle, 1, Config )

If ret = PMC_ERROR_SUCCESS Then

szInfo = Hex(Status)

szInfo = "最高速度制限値:" & szInfo & "[BCD]"

ret = MsgBox(szInfo, (vbOKOnly+vbInformation),"PmcGetMaxSpeed")

End If

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

55

●Delphi

var

Name : String;

Info: String;

DeviceHandle: THandle;

ret: Integer;

Config: DWORD;

begin

Name :=‘FBIPMC1’; DeviceHandle := PmcOpen( Name , PMC_FLAG_NORMAL );

ret := PmcGetMaxSpeed( DeviceHandle, 1, Config );

if ret = PMC_ERROR_SUCCESS then

begin

Info := '最高速度制限値:'+IntToHex(Config,8)+'[BCD];

MessageDlg(Info, mtInformation,[mbOk],0);

end;

end;

デバイスハンドル DeviceHandle の 1 軸側 最高速度制限値を取得します。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

56

15. PmcSetMotion

【機能】

各種動作パラメータを設定します(連続動作,原点復帰動作,PTP 動作)。

【書式】

●C言語

INT PmcSetMotion(

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

DWORD Axis, // 設定軸

DWORD Mode, // 設定動作

PMCMOTION Motion // PMCMOTION 構造体の参照渡し

);

●Visual Basic

Declare Function PmcSetMotion Lib "fbipmc.dll"(

ByVal DeviceHandle As Long,

ByVal Axis As Long,

ByVal Mode As Long,

ByRef Motion As PMCMOTION

)As Long

●Delphi

function PmcSetMotion(

DeviceHandle: THandle;

Axis: DWORD;

Mode: DWORD;

var Motion: PMCMOTION

): Integer; stdcall; external 'fbipmc.dll';

【パラメータ】

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

Axis 設定を行う軸を指定してください。(1 or 2)

Mode 設定動作を指定してください。

識別子 値 意味

PMC_JOG 0000h 連続動作

PMC_ORG 0001h 原点復帰動作

PMC_PTP 0002h PTP 動作

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

57

Motion

設定値が格納された PMCMOTION 構造体のポインタ(参照渡し)を指定してください。

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

【戻り値】

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

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

【備考】

●本関数関数では動作パラメータをセットするのみで、実際の動作(パルス出力)は行いませ

ん。モータ動作の開始は PmcStartMotion 関数で行います。

●本関数で指定する低速側速度値,高速側速度値(BCD 形式で指定)の設定範囲は、

PmcSetMaxSpeed 関数で指定した最高速度制限値により決定されます。

●本関数で指定する加減速時間の設定範囲は、低速側速度値,高速側速度値に依存します。こ

のため、低速側速度値と高速側速度値の差が小さい場合には、加減速時間の設定範囲も小さ

くなります。

●本関数で指定した加減速時間が低速側速度値,高速側速度値により決定した範囲を上回る場

合には設定範囲の最大値に、下回る場合には設定範囲の最小値に丸められます。

●実際の動作は、コントローラの分解能の問題により、本関数で設定した各種パラメータ(速

度値,加減速時間)通りになるとは限りません。実際の動作に使用されているパラメータを

確認する場合には、PmcGetMotion 関数をご使用ください。

【使用例】

●C言語

HANDLE DeviceHandle;

INT ret;

PMCMOTION Motion;

Motion.dwMode = PMC_ACC_SIN;

Motion.dwLowSpeed = 0x1000;

Motion.dwSpeed = 0x10000;

Motion.dwAcc = 500;

Motion.dwDec = 500;

Motion.dwSSpeed = 0;

Motion.nStep = 0;

DeviceHandle = PmcOpen( "FBIPMC1", PMC_FLAG_NORMAL );

ret = PmcSetMotion( DeviceHandle, 1, PMC_JOG, &Motion );

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

58

●Visual Basic

Dim Name As String

Dim DeviceHandle As Long

Dim ret As Long

Dim Motion As PMCMOTION

Motion.dwMode = PMC_ACC_SIN

Motion.dwLowSpeed = &H1000

Motion.dwSpeed = &H10000

Motion.dwAcc = 500

Motion.dwDec = 500

Motion.dwSSpeed = 0

Motion.nStep = 0

Name = "FBIPMC1" & Chr( 0 )

DeviceHandle = PmcOpen( Name , PMC_FLAG_NORMAL )

ret = PmcSetMotion( DeviceHandle, 1, PMC_JOG, Motion )

●Delphi

var

Name : String;

DeviceHandle: THandle;

ret: Integer;

Motion: PMCMOTION;

begin

Motion.dwMode := PMC_ACC_SIN;

Motion.dwLowSpeed := $1000;

Motion.dwSpeed := $10000;

Motion.dwAcc := 500;

Motion.dwDec := 500;

Motion.dwSSpeed := 0;

Motion.nStep := 0;

Name := 'FBIPMC1';

DeviceHandle := PmcOpen( Name , PMC_FLAG_NORMAL );

ret := PmcSetMotion( DeviceHandle, 1, PMC_JOG, Motion );

end;

デバイスハンドル DeviceHandle の 1 軸側 連続動作パラメータを設定します。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

59

16. PmcGetMotion

【機能】

各種動作パラメータを取得します(連続動作,原点復帰動作,PTP 動作)。

【書式】

●C言語

INT PmcGetMotion(

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

DWORD Axis, // 取得軸

DWORD Mode, // 取得動作

PMCMOTION Motion // PMCMOTION 構造体の参照渡し

);

●Visual Basic

Declare Function PmcGetMotion Lib "fbipmc.dll"(

ByVal DeviceHandle As Long,

ByVal Axis As Long,

ByVal Mode As Long,

ByRef Motion As PMCMOTION

)As Long

●Delphi

function PmcGetMotion(

DeviceHandle: THandle;

Axis: DWORD;

Mode: DWORD;

var Motion: PMCMOTION

): Integer; stdcall; external 'fbipmc.dll';

【パラメータ】

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

Axis 取得を行う軸を指定してください。(1 or 2)

Mode 取得動作を指定してください。

識別子 値 意味

PMC_JOG 0000h 連続動作

PMC_ORG 0001h 原点復帰動作

PMC_PTP 0002h PTP 動作

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

60

Motion

取得値を格納する PMCMOTION 構造体のポインタ(参照渡し)を指定してください。

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

【戻り値】

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

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

【備考】

●設定した値と異なる値(速度値,加減速時間)が戻ってくる場合があります。これはモーシ

ョンコントローラの仕様上(分解能)起るものです。正確には取得された値で制御を行って

います。

●PmcSetMotion 関数により設定した加減速時間をもとにファームウェア内部で計算した加減

速時間が 1[ms] 未満の値となった場合には、本関数で取得した加減速時間は 0 となります

(取得値は 0 となりますが、実際には 1[ms] 未満の加減速時間での動作となります)。

【使用例】

●C言語

HANDLE DeviceHandle;

INT ret;

PMCMOTION Motion;

DeviceHandle = PmcOpen( "FBIPMC1", PMC_FLAG_NORMAL );

ret = PmcGetMotion( DeviceHandle, 1, PMC_JOG, &Motion );

if(ret == PMC_ERROR_SUCCESS){

printf("動作モード:%d\n",Motion.dwMode);

printf("低速側速度:%X[BCD]\n",Motion.dwLowSpeed);

printf("高速側速度:%X[BCD]\n",Motion.dwSpeed);

printf("加速時間:%dms\n",Motion.dwAcc);

printf("減速時間:%dms\n",Motion.dwDec);

}

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

61

●Visual Basic

Dim Name As String

Dim szInfo As String

Dim DeviceHandle As Long

Dim ret As Long

Dim Motion As PMCMOTION

Name = "FBIPMC1" & Chr( 0 )

DeviceHandle = PmcOpen( Name , PMC_FLAG_NORMAL )

ret = PmcGetMotion( DeviceHandle, 1, PMC_JOG, Motion )

If ret = PMC_ERROR_SUCCESS Then

szInfo = Hex(Motion.dwSpeed)

szInfo = "高速側速度:" & szInfo & "[BCD]"

ret = MsgBox(szInfo, (vbOKOnly+vbInformation),"PmcGetMotion")

End If

●Delphi

var

Name : String;

Info: String;

DeviceHandle: THandle;

ret: Integer;

Motion: PMCMOTION;

begin

Name := 'FBIPMC1';

DeviceHandle := PmcOpen( Name , PMC_FLAG_NORMAL );

ret := PmcGetMotion( DeviceHandle, 1, PMC_JOG, Motion );

if ret = PMC_ERROR_SUCCESS then

begin

Info := '高速側速度:'+IntToHex(Motion.dwSpeed, 8)+ '[BCD]';

MessageDlg(Info, mtInformation,[mbOk],0);

end;

end;

デバイスハンドル DeviceHandle の 1 軸に連続動作パラメータを取得します。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

62

17. PmcSetMotionCp

【機能】

CP 動作パラメータを設定します。

【書式】

●C言語

INT PmcSetMotionCp(

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

DWORD Axis, // 設定軸

DWORD Num, // 設定段数

PMCMOTION Motion※ // PMCMOTION 構造体の参照渡し

);

※又は「PMCMOTION[] Motion」

●Visual Basic

Declare Function PmcSetMotionCp Lib "fbipmc.dll"(

ByVal DeviceHandle As Long,

ByVal Axis As Long,

ByVal Num As Long,

ByRef Motion※ As PMCMOTION

)As Long

※又は「ByVal Motion() As PMCMOTION」

●Delphi

function PmcSetMotionCp(

DeviceHandle: THandle;

Axis: DWORD;

Num: DWORD;

var Motion: ※ PMCMOTION

): Integer; stdcall; external 'fbipmc.dll';

※又は「Motion: array of PMCMOTION」

【パラメータ】

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

Axis 設定を行う軸を指定してください。(1 or 2)

Num 設定段数を指定してください。(1~255)

Motion 設定値が格納された PMCMOTION 構造体のポインタ(参照渡し)を指定してください。

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

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

63

【戻り値】

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

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

【備考】

●本関数では動作パラメータをセットするのみで、実際の動作(パルス出力)は行いません。

モータ動作の開始は PmcStartMotion 関数で行います。

●本関数で指定する低速側速度値,高速側速度値(BCD 形式で指定)の設定範囲は、

PmcSetMaxSpeed 関数で指定した最高速度制限値により決定されます。

●本関数で指定する加減速時間の設定範囲は、低速側速度値,高速側速度値に依存します。こ

のため、低速側速度値と高速側速度値の差が小さい場合には、加減速時間の設定範囲も小さ

くなります。

●本関数で指定した加減速時間が低速側速度値,高速側速度値により決定した範囲を上回る場

合には設定範囲の最大値に、下回る場合には設定範囲の最小値に丸められます。

●本関数において設定する動作モード(PMC_ACC_NORMAL or PMC_ACC_SIN)および低速側速度

値は、すべての段において同じ値を設定してください。

●実際の動作は、コントローラの分解能の問題により、本関数で設定した各種パラメータ(速

度値,加減速時間)通りになるとは限りません。実際の動作に使用されているパラメータを

確認する場合には、PmcGetMotionCp 関数をご使用ください。

●本関数で指定した各段の次動作開始点は、次の速度パターンに移行するまでに出力するパル

ス数となります。また、最終段では、指定されたパルス数の出力完了後、即時停止します。

1 段目:1000 パルス,2段目:2000 パルス,3段目:3000 パルスの 3 段のパラメータを設定

した場合には、1000 パルス出力後、2 段目の速度パターンに移行し、更に 2000 パルス出力

後(合計 3000 パルス出力後)、3 段目の速度パターンに移行。更に 3000 パルス出力後(合

計 6000 パルス出力後)、パルス出力は即時停止します。

【使用例】

●C言語

HANDLE DeviceHandle;

INT ret;

PMCMOTION Motion[8];

Motion[0].dwMode = PMC_ACC_SIN;

Motion[0].dwLowSpeed = 0x1000;

Motion[0].dwSpeed = 0x10000;

Motion[0].dwAcc = 500;

Motion[0].dwDec = 500;

Motion[0].dwSSpeed = 0;

Motion[0].nStep = 10000;

Motion[1].dwMode = PMC_ACC_SIN;

Motion[1].dwLowSpeed = 0x1000;

Motion[7].dwSSpeed = 0;

Motion[7].nStep = 5000;

DeviceHandle = PmcOpen( "FBIPMC1", PMC_FLAG_NORMAL );

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

64

ret = PmcSetMotionCp( DeviceHandle, 1, 8, Motion );

●Visual Basic

Dim Name As String

Dim DeviceHandle As Long

Dim ret As Long

Dim Motion(8) As PMCMOTION

Motion(0).dwMode = PMC_ACC_SIN

Motion(0).dwLowSpeed = &H1000

Motion(0).dwSpeed = &H10000

Motion(0).dwAcc = 500

Motion(0).dwDec = 500

Motion(0).dwSSpeed = 0

Motion(0).nStep = 10000

Motion(1).dwMode = PMC_ACC_SIN

Motion(1).dwLowSpeed = &H1000

Motion(7).dwSSpeed = 0

Motion(7).nStep = 5000

Name = "FBIPMC1" & Chr( 0 )

DeviceHandle = PmcOpen( Name , PMC_FLAG_NORMAL )

ret = PmcSetMotionCp( DeviceHandle, 1, 8, Motion(0) )

●Delphi

var

Name : String;

DeviceHandle: THandle;

ret: Integer;

Motion: array[0..7] of PMCMOTION;

begin

Motion[0].dwMode := PMC_ACC_SIN;

Motion[0].dwLowSpeed := $1000;

Motion[0].dwSpeed := $10000;

Motion[0].dwAcc := 500;

Motion[0].dwDec := 500;

Motion[0].dwSSpeed := 0;

Motion[0].nStep := 10000;

Motion[1].dwMode := PMC_ACC_SIN;

Motion[1].dwLowSpeed := $1000;

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

65

Motion[7].dwSSpeed = 0;

Motion[7].nStep = 5000;

Name := 'FBIPMC1';

DeviceHandle := PmcOpen( Name , PMC_FLAG_NORMAL );

ret := PmcSetMotionCp( DeviceHandle, 1, 8, Motion[0] );

end;

デバイスハンドル DeviceHandle の 1 軸側 CP 動作パラメータ(8段)を設定します。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

66

18. PmcGetMotionCp

【機能】

CP 動作パラメータを取得します。

【書式】

●C言語

INT PmcGetMotionCp(

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

DWORD Axis, // 取得軸

PDWORD Num, // 取得値を格納する変数の参照渡し

PMCMOTION Motion※ // PMCMOTION 構造体の参照渡し

);

※又は「PMCMOTION[] Motion」

●Visual Basic

Declare Function PmcGetMotionCp Lib "fbipmc.dll"(

ByVal DeviceHandle As Long,

ByVal Axis As Long,

ByRef Num As Long,

ByRef Motion※ As PMCMOTION

)As Long

※又は「ByVal Motion() As PMCMOTION」

●Delphi

function PmcGetMotionCp(

DeviceHandle: THandle;

Axis: DWORD;

var Num: DWORD;

var Motion: ※ PMCMOTION

): Integer; stdcall; external 'fbipmc.dll';

※又は「Motion: array of PMCMOTION」

【パラメータ】

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

Axis 取得を行う軸を指定してください。(1 or 2)

Num 取得値を格納する変数のポインタ(参照渡し)を指定してください。

設定段数を取得します。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

67

Motion 取得値を格納する PMCMOTION 構造体のポインタ(参照渡し)を指定してください。

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

【戻り値】

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

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

【備考】

●本関数により CP 動作パラメータを取得する際には、Motion には 255 以上の配列(PMCMOTION

構造体)を指定してください。

●設定した値と異なる値(速度値,加減速時間)が戻ってくる場合があります。これはモーシ

ョンコントローラの仕様上(分解能)起るものです。正確には取得された値で制御を行って

います。

●PmcSetMotionCp 関数により設定した加減速時間をもとにファームウェア内部で計算した加

減速時間が 1[ms] 未満の値となった場合には、本関数で取得した加減速時間は 0 となりま

す(取得値は 0 となりますが、実際には 1[ms] 未満の加減速時間での動作となります)。

【使用例】

●C言語

HANDLE DeviceHandle;

INT ret;

DWORD Num;

PMCMOTION Motion[8];

DeviceHandle = PmcOpen( "FBIPMC1", PMC_FLAG_NORMAL );

Num = 8;

ret = PmcGetMotionCp( DeviceHandle, 1, &Num, Motion );

if(ret == PMC_ERROR_SUCCESS){

printf("取得段数:%d\n",Num);

printf("動作モード:%d\n",Motion[0].dwMode);

printf("低速側速度:%X[BCD]\n",Motion[0].dwLowSpeed);

printf("高速側速度:%X[BCD]\n",Motion[0].dwSpeed);

printf("加速時間:%dms\n",Motion[0].dwAcc);

printf("減速時間:%dms\n",Motion[0].dwDec);

}

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

68

●Visual Basic

Dim Name As String

Dim szInfo As String

Dim DeviceHandle As Long

Dim ret As Long

Dim Num As Long

Dim Motion(8) As PMCMOTION

Name = "FBIPMC1" & Chr( 0 )

DeviceHandle = PmcOpen( Name , PMC_FLAG_NORMAL )

Num = 8

ret = PmcGetMotionCp( DeviceHandle, 1, Num, Motion(0) )

If ret = PMC_ERROR_SUCCESS Then

szInfo = Hex(Motion(0).Speed)

szInfo = "移動速度:" & szInfo & "[BCD]"

ret = MsgBox(szInfo, (vbOKOnly+vbInformation),"PmcGetMotionCp")

End If

●Delphi

var

Name : String;

Info: String;

DeviceHandle: THandle;

ret: Integer;

Num: DWORD;

Motion: array[0..7] of PMCMOTION;

begin

Name := 'FBIPMC1';

DeviceHandle := PmcOpen( Name , PMC_FLAG_NORMAL );

Num := 8;

ret := PmcGetMotionCp( DeviceHandle, 1, Num, Motion[0] );

if ret = PMC_ERROR_SUCCESS then

begin

Info := '高速側速度:'+IntToHex(Motion[0].dwSpeed,8)+'[BCD]';

MessageDlg(Info, mtInformation,[mbOk],0);

end;

end;

デバイスハンドル DeviceHandle の 1 軸の CP 動作パラメータ(最大 8段)を取得します。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

69

19. PmcSetMotionEx

【機能】

予約動作パラメータを設定します。

【書式】

●C言語

INT PmcSetMotionEx(

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

DWORD Axis, // 設定軸

DWORD Num, // 設定段数

DWORD Repeat, // 繰り返し回数

PMCMOTIONEX MotionEx※ // PMCMOTIONEX 構造体の参照渡し

);

※又は「PMCMOTIONEX[] MotionEx」

●Visual Basic

Declare Function PmcSetMotionEx Lib "fbipmc.dll"(

ByVal DeviceHandle As Long,

ByVal Axis As Long,

ByVal Num As Long,

ByVal Repeat As Long,

ByRef MotionEx※ As PMCMOTIONEX

)As Long

※又は「ByVal MotionEx() As PMCMOTIONEX」

●Delphi

function PmcSetMotionEx(

DeviceHandle: THandle;

Axis: DWORD;

Num: DWORD;

Repeat: DWORD;

var MotionEx: ※ PMCMOTIONEX

): Integer; stdcall; external 'fbipmc.dll';

※又は「MotionEx: array of PMCMOTIONEX」

【パラメータ】

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

Axis 設定を行う軸を指定してください。(1 or 2)

Num 設定段数を指定してください。(1~255)

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

70

Repeat 繰り返し回数を指定してください。(1~255,0 で停止命令まで繰り返し)

MotionEx 設定値が格納された PMCMOTIONEX 構造体のポインタ(参照渡し)を指定してください。

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

【戻り値】

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

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

【備考】

●本関数で指定する低速側速度値,高速側速度値(BCD 形式で指定)の設定範囲は、

PmcSetMaxSpeed 関数で指定した最高速度制限値により決定されます。

●本関数で指定する加減速時間の設定範囲は、低速側速度値,高速側速度値に依存します。こ

のため、低速側速度値と高速側速度値の差が小さい場合には、加減速時間の設定範囲も小さ

くなります。

●本関数で指定した加減速時間が低速側速度値,高速側速度値により決定した範囲を上回る場

合には設定範囲の最大値に、下回る場合には設定範囲の最小値に丸められます。

●実際の動作は、コントローラの分解能の問題により、本関数で設定した各種パラメータ(速

度値,加減速時間)通りになるとは限りません。実際の動作に使用されているパラメータを

確認する場合には、PmcGetMotionEx 関数をご使用ください。

●本関数では動作パラメータをセットするのみで、実際の動作(パルス出力)は行いません。

モータ動作の開始は PmcStartMotion 関数で行います。

●本関数において設定する動作モード(PMC_ACC_NORMAL or PMC_ACC_SIN)は、予約するすべ

ての段において同じ値を設定してください。

【使用例】

●C言語

HANDLE DeviceHandle;

INT ret;

PMCMOTIONEX MotionEx[8];

MotionEx[0].dwMotion = PMC_PTP;

MotionEx[0].PmcEx.dwMode = PMC_ACC_SIN;

MotionEx[0].PmcEx.dwLowSpeed = 0x1000;

MotionEx[0].PmcEx.dwSpeed = 0x10000;

MotionEx[0].PmcEx.dwAcc = 500;

MotionEx[0].PmcEx.dwDec = 500;

MotionEx[0].PmcEx.dwSSpeed = 0;

MotionEx[0].PmcEx.nStep = 10000;

MotionEx[1].dwMotion = PMC_PTP;

MotionEx[1].PmcEx.dwMode = PMC_ACC_SIN;

MotionEx[1].PmcEx.dwLowSpeed = 0x3000;

MotionEx[7].PmcEx.dwSSpeed = 0;

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

71

MotionEx[7].PmcEx.nStep = 5000;

DeviceHandle = PmcOpen( "FBIPMC1", PMC_FLAG_NORMAL );

ret = PmcSetMotionEx( DeviceHandle, 1, 8, 10, MotionEx );

●Visual Basic

Dim Name As String

Dim DeviceHandle As Long

Dim ret As Long

Dim MotionEx(8) As PMCMOTIONEX

MotionEx(0).dwMotion = PMC_PTP

MotionEx(0).PmcEx.dwMode = PMC_ACC_SIN

MotionEx(0).PmcEx.dwLowSpeed = &H1000

MotionEx(0).PmcEx.dwSpeed = &H10000

MotionEx(0).PmcEx.dwAcc = 500

MotionEx(0).PmcEx.dwDec = 500

MotionEx(0).PmcEx.dwSSpeed = 0

MotionEx(0).PmcEx.nStep = 10000

MotionEx(1).dwMotion = PMC_PTP

MotionEx(1).PmcEx.dwMode = PMC_ACC_SIN

MotionEx(1).PmcEx.dwLowSpeed = &H3000

MotionEx(7).PmcEx.dwSSpeed = 0

MotionEx(7).PmcEx.nStep = 5000

Name = "FBIPMC1" & Chr( 0 )

DeviceHandle = PmcOpen( Name , PMC_FLAG_NORMAL )

ret = PmcSetMotionEx( DeviceHandle, 1, 8, 10, MotionEx )

●Delphi

var

Name : String;

DeviceHandle: THandle;

ret: Integer;

MotionEx: array[0..7] of PMCMOTIONEX;

begin

MotionEx[0].dwMotion := PMC_PTP;

MotionEx[0].PmcEx.dwMode := PMC_ACC_SIN;

MotionEx[0].PmcEx.dwLowSpeed := $1000;

MotionEx[0].PmcEx.dwSpeed := $10000;

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

72

MotionEx[0].PmcEx.dwAcc := 500;

MotionEx[0].PmcEx.dwDec := 500;

MotionEx[0].PmcEx.dwSSpeed := 0;

MotionEx[0].PmcEx.nStep := 10000;

MotionEx[1].dwMotion := PMC_PTP;

MotionEx[1].PmcEx.dwMode := PMC_ACC_SIN;

MotionEx[1].PmcEx.dwLowSpeed := $3000;

Motion[7].PmcEx.dwSSpeed = 0;

Motion[7].PmcEx.nStep = 5000;

Name := 'FBIPMC1';

DeviceHandle := PmcOpen( Name , PMC_FLAG_NORMAL );

ret := PmcSetMotionEx( DeviceHandle, 1, 8, 10, MotionEx );

end;

デバイスハンドル DeviceHandle の 1 軸側動作予約パラメータ(8段,10 回)を設定します。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

73

20. PmcGetMotionEx

【機能】

予約動作パラメータを取得します。

【書式】

●C言語

INT PmcGetMotionEx(

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

DWORD Axis, // 設定軸

PDWORD Num, // 取得値を格納する変数の参照渡し

PDWORD Repeat, // 取得値を格納する変数の参照渡し

PMCMOTIONEX MotionEx // PMCMOTIONEX 構造体の参照渡し

);

●Visual Basic

Declare Function PmcGetMotionEx Lib "fbipmc.dll"(

ByVal DeviceHandle As Long,

ByVal Axis As Long,

ByRef Num As Long,

ByRef Repeat As Long,

ByRef MotionEx As PMCMOTIONEX

)As Long

●Delphi

function PmcGetMotionEx(

DeviceHandle: THandle;

Axis: DWORD;

var Num: DWORD;

var Repeat: DWORD;

var MotionEx: PMCMOTIONEX

): Integer; stdcall; external 'fbipmc.dll';

【パラメータ】

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

Axis 設定を行う軸を指定してください。(1 or 2)

Num 取得値を格納する変数のポインタ(参照渡し)を指定してください。

設定段数を取得します。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

74

Repeat 取得値を格納する変数のポインタ(参照渡し)を指定してください。

繰り返し回数を取得します。

MotionEx 取得値を格納する PMCMOTIONEX 構造体のポインタ(参照渡し)を指定してください。

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

【戻り値】

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

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

【備考】

●本関数による予約動作パラメータを取得する際には、MotionEx には 255 以上の配列

(PMCMOTIONEX 構造体)を指定してください。

●設定した値と異なる値(速度値,加減速時間)が戻ってくる場合があります。これはモーシ

ョンコントローラの仕様上(分解能)起るものです。正確には取得された値で制御を行って

います。

●PmcSetMotionEx 関数により設定した加減速時間をもとにファームウェア内部で計算した加

減速時間が 1[ms] 未満の値となった場合には、本関数で取得した加減速時間は 0 となりま

す(取得値は 0 となりますが、実際には 1[ms] 未満の加減速時間での動作となります)。

【使用例】

●C言語

HANDLE DeviceHandle;

INT ret;

DWORD Num,Repeat;

PMCMOTIONEX MotionEx[8];

DeviceHandle = PmcOpen( "FBIPMC1", PMC_FLAG_NORMAL );

Num = 8;

ret = PmcGetMotionEx( DeviceHandle, 1, &Num, &Repeat, MotionEx );

if(ret == PMC_ERROR_SUCCESS){

printf("取得段数:%d\n",Num);

printf("繰り返し回数:%d\n",Repeat);

printf("起動動作:%d\n",MotionEx[0].dwMotion);

printf("動作モード:%d\n",MotionEx[0].PmcEx.dwMode);

printf("低速側速度:%X[BCD]\n",MotionEx[0].PmcEx.dwLowSpeed);

printf("高速側速度:%X[BCD]\n",MotionEx[0].PmcEx.dwSpeed);

printf("加速時間:%dms\n",MotionEx[0].PmcEx.dwAcc);

printf("減速時間:%dms\n",MotionEx[0].PmcEx.dwDec);

}

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

75

●Visual Basic

Dim Name As String

Dim szInfo As String

Dim DeviceHandle As Long

Dim ret As Long

Dim Num As Long

Dim Repeat As Long

Dim MotionEx(8) As PMCMOTIONEX

Name = "FBIPMC1" & Chr( 0 )

DeviceHandle = PmcOpen( Name , PMC_FLAG_NORMAL )

Num = 8

ret = PmcGetMotionEx( DeviceHandle, 1, Num, Repeat, MotionEx(0) )

If ret = PMC_ERROR_SUCCESS Then

szInfo = Hex(Motion(0).dwSpeed)

szInfo = "高速側速度:" & szInfo & "[BCD]"

ret = MsgBox(szInfo, (vbOKOnly+vbInformation),"PmcGetMotionEx")

End If

●Delphi

var

Name : String;

Info: String;

DeviceHandle: THandle;

ret: Integer;

Num: DWORD;

Repeat: DWORD;

MotionEx: array[0..7] of PMCMOTIONEX;

begin

Name := 'FBIPMC1';

DeviceHandle := PmcOpen( Name , PMC_FLAG_NORMAL );

Num := 8;

ret := PmcGetMotionEx( DeviceHandle, 1, Num, Repeat, MotionEx[0] );

if ret = PMC_ERROR_SUCCESS then

begin

Info := '高速側速度:'+IntToHex(MotionEx[0].dwSpeed)+'[BCD]';

MessageDlg(Info, mtInformation,[mbOk],0);

end;

end;

デバイスハンドル DeviceHandle の 1 軸側動作予約パラメータ(最大 8段)を取得します。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

76

21. PmcStartMotion

【機能】

各種動作を起動します。

【書式】

●C言語

INT PmcStartMotion(

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

DWORD Axis, // 起動軸

DWORD Mode // 起動動作

);

●Visual Basic

Declare Function PmcStartMotion Lib "fbipmc.dll"(

ByVal DeviceHandle As Long,

ByVal Axis As Long,

ByVal Mode As Long

)As Long

●Delphi

function PmcStartMotion(

DeviceHandle: THandle;

Axis: DWORD;

Mode: DWORD

): Integer; stdcall; external 'fbipmc.dll';

【パラメータ】

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

Axis 起動軸を指定してください。(1 or 2)

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

77

Mode 起動動作を指定してください。

bit31~bit8 : 予約

bit7 : 同時起動選択

0:即起動

1:同時起動信号入力まで起動保留 [ PMC_SYNC_WAIT(80h)]

bit6,5 : 加減速選択

00( bit6,5 とも 0 ):加減速動作

01( bit6 が 0、bit5 が 1 ):低速側速度による一定速動作

[ PMC_CONST_LOW(20h)]

10( bit6 が 1、bit5 が 0 ):高速側速度による一定速動作

[ PMC_CONST_HIGH(40h)]

bit4 : 移動方向

0: +方向 [ PMC_P(00h)]

1: -方向 [ PMC_N(10h)]

bit3~bit0 : 動作選択

0000:連続動作 [ PMC_START_JOG(00h)]

0010:原点復帰動作 [ PMC_START_ORG(02h)]

0011:移動量指定 原点復帰動作 [ PMC_START_ORG_PLS(03h)]

0100:原点サーチ動作 [ PMC_SERCH_ORG(04h)]

0101:原点抜け出し動作 [ PMC_EXIT_ORG(05h)]

0110:シングルステップ [ PMC_SINGLE_STEP(06h)]

0111:タイマ動作 [ PMC_START_TIMER(07h)]

1000:PTP 動作 [ PMC_START_PTP(08h)]

1011:0 点復帰動作 [ PMC_ORG_ZERO(0Bh)]

1101:動作再開(残りパルス出力) [ PMC_RESTART(0Dh)]

1110:CP 動作 [ PMC_START_CP(0Eh)]

1111:予約動作 [ PMC_RESERVE(0Fh)]

【戻り値】

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

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

【備考】

●bit7 において同時起動信号入力まで起動保留を設定した場合には、対応する軸側で

PmcStartSync 関数を実行する、または対応する軸側の TRIGIN 端子に信号入力があるまで、

動作は起動しません(パルスは出力されません)。

なお、すでに指定した軸側の TRIGIN 端子に信号が入力されている状態であれば、本関数実

行後、すぐに動作が起動します。

●bit7 において同時起動信号入力まで起動保留を設定した場合に、起動保留状態を解除する

には PmcStopMotion 関数による非常停止、または PmcResetController 関数によるコントロ

ーラのリセットを行ってください。

●0点復帰動作,動作再開では、bit4 の移動方向の指定は無効となります。

●予約動作起動時には、bit7~4 の設定内容は無視されます(同時起動選択,加減速選択,動

作方向は、PmcSetMotionEx 関数にて設定した PMCMOTIONEX 構造体のメンバ変数:dwMotion の

設定に依存します)。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

78

【使用例】

●C言語

HANDLE DeviceHandle;

INT ret;

DeviceHandle = PmcOpen( "FBIPMC1", PMC_FLAG_NORMAL );

ret = PmcStartMotion( DeviceHandle, 1, ( PMC_N | PMC_START_JOG ) );

●Visual Basic

Dim Name As String

Dim DeviceHandle As Long

Dim ret As Long

Name = "FBIPMC1" & Chr( 0 )

DeviceHandle = PmcOpen( Name , PMC_FLAG_NORMAL )

ret = PmcStartMotion( DeviceHandle, 1, ( PMC_N Or PMC_START_JOG ) )

●Delphi

var

Name : String;

DeviceHandle: THandle;

ret: Integer;

begin

Name := 'FBIPMC1';

DeviceHandle := PmcOpen( Name , PMC_FLAG_NORMAL );

ret := PmcStartMotion( DeviceHandle, 1, ( PMC_N or PMC_START_JOG ) );

end;

デバイスハンドル DeviceHandle の 1 軸側で連続動作(-方向,加減速)を起動します。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

79

22. PmcStopMotion

【機能】

動作を停止します。

【書式】

●C言語

INT PmcStopMotion(

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

DWORD Axis, // 停止軸

DWORD Mode // 停止動作

);

●Visual Basic

Declare Function PmcStopMotion Lib "fbipmc.dll"(

ByVal DeviceHandle As Long,

ByVal Axis As Long,

ByVal Mode As Long

)As Long

●Delphi

function PmcStopMotion(

DeviceHandle: THandle;

Axis: DWORD;

Mode: DWORD

): Integer; stdcall; external 'fbipmc.dll';

【パラメータ】

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

Axis 停止軸を指定してください。(1 or 2)

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

識別子 値 意味

PMC_DEC_STOP 0000h 減速停止

PMC_IMMEDIATE_STOP 0001h 即時停止

PMC_STOP_EMERGENCY 0002h 非常停止

PMC_STOP_URGENT 0004h 緊急停止

PMC_STOP_RESERVE 0008h 予約停止

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

80

【戻り値】

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

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

【備考】

●緊急停止時には、パルス出力を停止し、カウンタ値を除くすべての設定が初期状態(オープ

ン時の設定)となります。

なお、緊急停止はデバイス単位での実行となりますので、緊急停止時には 1,2 軸ともパル

ス出力が停止しカウンタ値を除くすべての設定が初期状態となります。また、緊急停止は

PmcHandShake 関数により取得したハンドシェークデータが書き込み不可(bit4 = 0)の状態

でも実行可能です(緊急停止以外では、書き込み許可状態でなければ実行することはできま

せん)。

●減速停止,即時停止時には PmcSetPulseOut 関数により指定したマイクロステップ単位数の

フルステップ位置での停止となります。

また、停止完了後、減速停止時は 0Ah(1 軸側)/8Ah(2 軸側)、即時停止時には 09h(1

軸側)/89h(2 軸側)の制御状態コードが返信されます(返信された制御状態コードは、

PmcGetStatus 関数により確認してください)。

●非常停止時には、PmcSetPulseOut 関数により指定したマイクロステップ単位数のフルステッ

プ位置以外での停止も可能となります(このため、最終出力パルス幅が狭くなる場合があり

ます)。

なお、非常停止時には制御状態コードは返信されません。

●PMC_STOP_RESERVE は、予約動作実行時にのみ有効となります(それ以外の動作時には指定

することはできません)。予約停止を実行すると、PmcSetMotionEx 関数により設定した動作

の最終段の動作完了後、停止します(PmcSetMotionEx 関数によるくり返し回数の設定が無効

になります)。

例)

動作段数:5段,繰り返し回数:4 回の予約動作時において、実行段数:3 段目,実行回数:

2回目の動作中に予約停止を実行した場合には、実行段数:5段目,実行回数:2回目の動作

完了後、停止します。

【使用例】

●C言語

HANDLE DeviceHandle;

INT ret;

DeviceHandle = PmcOpen( "FBIPMC1", PMC_FLAG_NORMAL );

ret = PmcStopMotion( DeviceHandle, 1, PMC_IMMEDIATE_STOP );

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

81

●Visual Basic

Dim Name As String

Dim DeviceHandle As Long

Dim ret As Long

Name = "FBIPMC1" & Chr( 0 )

DeviceHandle = PmcOpen( Name , PMC_FLAG_NORMAL )

ret = PmcStopMotion( DeviceHandle, 1, PMC_IMMEDIATE_STOP )

●Delphi

var

Name : String;

DeviceHandle: THandle;

ret: Integer;

begin

Name := 'FBIPMC1';

DeviceHandle := PmcOpen( Name , PMC_FLAG_NORMAL );

ret := PmcStopMotion( DeviceHandle, 1, PMC_IMMEDIATE_STOP );

end;

デバイスハンドル DeviceHandle の 1 軸側を即時停止します。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

82

23. PmcStartSync

【機能】

同時起動を実行します(同時起動信号を出力します)。

【書式】

●C言語

INT PmcStartSync(

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

DWORD Axis // 起動軸

);

●Visual Basic

Declare Function PmcStartSync Lib "fbipmc.dll"(

ByVal DeviceHandle As Long,

ByVal Axis As Long

)As Long

●Delphi

function PmcStartSync(

DeviceHandle: THandle;

Axis: DWORD

): Integer; stdcall; external 'fbipmc.dll';

【パラメータ】

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

Axis 起動軸を指定してください。(1 or 2)

【戻り値】

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

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

【備考】

●複数軸の同時起動を行う際には、外部接続が必要となります(接続方法については USER'S

MANUAL をご覧ください)。

●同時起動を行う際には、PmcStartMotion 関数にて「同時起動信号入力まで起動保留」の設定

で実行し、起動保留状態にしておく必要があります。

なお、同時起動を行う場合には、同時起動する軸が起動保留状態となっている必要がありま

す。PmcStartMotion 関数実行後、ある程度のウェイト(1ms 程度)を置いて同時起動信号を

入力してください。

●本関数実行時に指定した軸が起動保留状態となっている場合には、本関数実行後、動作が起

動します(起動保留状態となっていない場合には、動作は起動しません)。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

83

【使用例】

●C言語

HANDLE DeviceHandle;

INT ret;

DeviceHandle = PmcOpen( "FBIPMC1", PMC_FLAG_NORMAL );

ret = PmcStartMotion( DeviceHandle, 1, ( PMC_SYNC_WAIT | PMC_START_JOG ) );

ret = PmcStartMotion( DeviceHandle, 2, ( PMC_SYNC_WAIT | PMC_START_JOG ) );

ret = PmcStartSync( DeviceHandle, 1 );

●Visual Basic

Dim Name As String

Dim DeviceHandle As Long

Dim ret As Long

Name = "FBIPMC1" & Chr( 0 )

DeviceHandle = PmcOpen( Name , PMC_FLAG_NORMAL )

ret = PmcStartMotion( DeviceHandle, 1, ( PMC_SYNC_WAIT Or PMC_START_JOG ) )

ret = PmcStartMotion( DeviceHandle, 2, ( PMC_SYNC_WAIT Or PMC_START_JOG ) )

ret = PmcStartSync( DeviceHandle, 1 )

●Delphi

var

Name : String;

DeviceHandle: THandle;

ret: Integer;

begin

Name := 'FBIPMC1';

DeviceHandle := PmcOpen( Name , PMC_FLAG_NORMAL );

ret := PmcStartMotion( DeviceHandle, 1, ( PMC_SYNC_WAIT or PMC_START_JOG ) );

ret := PmcStartMotion( DeviceHandle, 2, ( PMC_SYNC_WAIT or PMC_START_JOG ) );

ret := PmcStartSync( DeviceHandle, 1 );

end;

デバイスハンドル DeviceHandle の 1 軸側 同時起動信号により、 1,2 軸を同時起動します

(TRIGOUT1 と TRIGIN2 の外部接続が必要)。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

84

24. PmcChangeSpeed

【機能】

動作中に移動速度を変更します。

【書式】

●C言語

INT PmcChangeSpeed(

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

DWORD Axis, // 変更軸

DWORD Mode, // 変更方式

DWORD Speed // 変更速度

);

●Visual Basic

Declare Function PmcChangeSpeed Lib "fbipmc.dll"(

ByVal DeviceHandle As Long,

ByVal Axis As Long,

ByVal Mode As Long,

ByVal Speed As Long

)As Long

●Delphi

function PmcChangeSpeed(

DeviceHandle: THandle;

Axis: DWORD;

Mode: DWORD;

Speed: DWORD

): Integer; stdcall; external 'fbipmc.dll';

【パラメータ】

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

Axis 速度変更を行う軸を指定してください。(1 or 2)

Mode 速度変更方式を指定してください。

識別子 値 意味

PMC_CHANGE 0000h 速度変更

PMC_IMMEDIATE_LOW 0004h 即時 低速側速度へ変更

PMC_IMMEDIATE_HIGH 0005h 即時 高速側速度へ変更

PMC_DEC_LOW 0006h 低速側速度へ減速

PMC_ACC_HIGH 0007h 高速側速度へ加速

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

85

Speed 変更速度を指定してください。(BCD 形式で設定)

動作中の移動速度範囲内での変更となります。

移動速度の範囲については PmcSetMaxSpeed 関数を参照してください。

Speed の設定値は PMC_CHANGE 指定時にのみ有効となります。

【戻り値】

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

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

【備考】

PMC_CHANGE を指定した速度変更では、高速側速度値の変更を行います。このため、速度変更後

PMC_IMMEDIATE_HIGH,PMC_ACC_HIGH 指定による高速側速度への変更を行われても、変更前の速

度には戻りません。変更前の速度にしたい場合には、再度 PMC_CHANGE により変更前の速度を

指定してください。

【使用例】

●C言語

HANDLE DeviceHandle;

INT ret;

DeviceHandle = PmcOpen( "FBIPMC1", PMC_FLAG_NORMAL );

ret = PmcChangeSpeed( DeviceHandle, 1, PMC_DEC_LOW, 0 );

●Visual Basic

Dim Name As String

Dim DeviceHandle As Long

Dim ret As Long

Name = "FBIPMC1" & Chr( 0 )

DeviceHandle = PmcOpen( Name , PMC_FLAG_NORMAL )

ret = PmcChangeSpeed( DeviceHandle, 1, PMC_DEC_LOW, 0 )

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

86

●Delphi

var

Name : String;

DeviceHandle: THandle;

ret: Integer;

begin

Name := 'FBIPMC1';

DeviceHandle := PmcOpen( Name , PMC_FLAG_NORMAL );

ret := PmcChangeSpeed( DeviceHandle, 1, PMC_DEC_LOW, 0 );

end;

デバイスハンドル DeviceHandle の 1 軸側移動速度を低速側速度へ減速します。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

87

25. PmcReadSpeed

【機能】

現在の移動速度を確認します。

【書式】

●C言語

INT PmcReadSpeed(

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

DWORD Axis, // 取得軸

PDWORD Speed // 取得値を格納する変数の参照渡し

);

●Visual Basic

Declare Function PmcReadSpeed Lib "fbipmc.dll"(

ByVal DeviceHandle As Long,

ByVal Axis As Long,

ByRef Speed As Long

)As Long

●Delphi

function PmcReadSpeed(

DeviceHandle: THandle;

Axis: DWORD;

var Speed: DWORD

): Integer; stdcall; external 'fbipmc.dll';

【パラメータ】

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

Axis 速度変更を行う軸を指定してください。(1 or 2)

Speed 取得値を格納する変数のポインタ(参照渡し)を指定してください。

※取得した値は BCD 形式になっています。

【戻り値】

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

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

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

88

【使用例】

●C言語

HANDLE DeviceHandle;

INT ret;

DWORD Speed;

DeviceHandle = PmcOpen(“FBIPMC1”, PMC_FLAG_NORMAL ); :

ret = PmcReadSpeed( DeviceHandle, 1, &Speed );

if(ret == PMC_ERROR_SUCCESS)

printf("現在速度値:%X[BCD]\n",Speed);

●Visual Basic

Dim Name As String

Dim szInfo As String

Dim DeviceHandle As Long

Dim ret As Long

Dim Speed As Long

Name = "FBIPMC1" & Chr( 0 )

DeviceHandle = PmcOpen( Name , PMC_FLAG_NORMAL )

ret = PmcReadSpeed( DeviceHandle, 1, Speed )

If ret = PMC_ERROR_SUCCESS Then

szInfo = Hex(Speed)

szInfo = "現在速度値:" & szInfo & "[BCD]"

ret = MsgBox(szInfo, (vbOKOnly+vbInformation),"PmcReadSpeed")

End If

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

89

●Delphi

var

Name : String;

Info: String;

DeviceHandle: THandle;

Speed: DWORD;

ret: Integer;

begin

Name := 'FBIPMC1';

DeviceHandle := PmcOpen( Name , PMC_FLAG_NORMAL );

ret := PmcReadSpeed( DeviceHandle, 1, Speed );

if ret = PMC_ERROR_SUCCESS then

begin

Info := '現在速度値:'+IntToHex(Speed,8)+'[BCD]';

MessageDlg(Info, mtInformation,[mbOk],0);

end;

end;

デバイスハンドル DeviceHandle の 1 軸側移動速度を確認します。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

90

26. PmcReadCounter

【機能】

各種カウンタを読み込みます。

【書式】

●C言語

INT PmcReadCounter(

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

DWORD Axis, // 取得軸

DWORD Mode, // 取得カウンタ

PINT Pos // 取得値を格納する変数の参照渡し

);

●Visual Basic

Declare Function PmcReadCounter Lib "fbipmc.dll"(

ByVal DeviceHandle As Long,

ByVal Axis As Long,

ByVal Mode As Long,

ByRef Pos As Long

)As Long

●Delphi

function PmcReadCounter(

DeviceHandle: THandle;

Axis: DWORD;

Mode: DWORD;

var Pos: Integer

): Integer; stdcall; external 'fbipmc.dll';

【パラメータ】

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

Axis 取得軸を指定してください。(1 or 2)

Mode

取得カウンタを指定してください。

識別子 値 意味

PMC_COUNTER 0001h カウンタ

PMC_REMAINS 0002h 残りパルス数

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

91

Pos 取得値を格納する変数のポインタ(参照渡し)を指定してください。

【戻り値】

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

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

【備考】

●1,2軸のカウンタ値を同時に読み出す場合には、Axis に 0 を指定してください。この場合

は、Pos には 2 軸分のカウンタ値を格納できる領域(配列)を指定してください。

なお、残りパルス数は 1 軸毎の読み出しになります(Axis に 0 を指定することはできませ

ん)。

●PMC_COUNTER の値は、PmcSetCounterConfig 関数で設定したカウンタとなります。

【使用例】

●C言語

HANDLE DeviceHandle;

INT ret,Pos;

DeviceHandle = PmcOpen( "FBIPMC1", PMC_FLAG_NORMAL );

ret = PmcReadCounter( DeviceHandle, 1, PMC_COUNTER, &Pos );

if(ret == PMC_ERROR_SUCCESS)

printf("カウンタ値:%d\n",Pos);

●Visual Basic

Dim Name As String

Dim szInfo As String

Dim DeviceHandle As Long

Dim ret As Long

Dim Pos As Long

Name = "FBIPMC1" & Chr( 0 )

DeviceHandle = PmcOpen( Name , PMC_FLAG_NORMAL )

ret = PmcReadCounter( DeviceHandle, 1, PMC_COUNTER, Pos )

If ret = PMC_ERROR_SUCCESS Then

szInfo = Str(Pos)

szInfo = "カウンタ値:" & szInfo

ret = MsgBox(szInfo, (vbOKOnly+vbInformation),"PmcReadCounter")

End If

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

92

●Delphi

var

Name : String;

Info: String;

DeviceHandle: THandle;

ret, Pos: Integer;

begin

Name := 'FBIPMC1';

DeviceHandle := PmcOpen( Name , PMC_FLAG_NORMAL );

ret := PmcReadCounter( DeviceHandle, 1, PMC_COUNTER, Pos );

if ret = PMC_ERROR_SUCCESS then

begin

Info := 'カウンタ値:'+IntToStr(Pos);

MessageDlg(Info, mtInformation,[mbOk],0);

end;

end;

デバイスハンドル DeviceHandle の 1 軸側カウンタ値を読み取ります。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

93

27. PmcWriteCounter

【機能】

各種カウンタ値を書き込みます。

【書式】

●C言語

INT PmcWriteCounter(

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

DWORD Axis, // 対象軸

DWORD Mode, // 対象カウンタ

INT Pos // カウンタ値

);

●Visual Basic

Declare Function PmcWriteCounter Lib "fbipmc.dll"(

ByVal DeviceHandle As Long,

ByVal Axis As Long,

ByVal Mode As Long,

ByVal Pos As Long

)As Long

●Delphi

function PmcWriteCounter(

DeviceHandle: THandle;

Axis: DWORD;

Mode: DWORD;

Pos: Integer

): Integer; stdcall; external 'fbipmc.dll';

【パラメータ】

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

Axis 対象軸を指定してください。(1 or 2)

Mode 対象カウンタを指定してください。

識別子 値 意味

PMC_COUNTER 0001h カウンタ

Pos カウンタ値を指定してください。

0~268435455/-134217728~+134217727

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

94

【戻り値】

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

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

【備考】

カウンタ値の設定範囲は、PmcSetCounterConfig 関数により設定されたカウンタ範囲に依存し

ます。

【使用例】

●C言語

HANDLE DeviceHandle;

INT ret;

DeviceHandle = PmcOpen( "FBIPMC1", PMC_FLAG_NORMAL );

ret = PmcWriteCounter( DeviceHandle, 1, PMC_COUNTER, 200 );

●Visual Basic

Dim Name As String

Dim DeviceHandle As Long

Dim ret As Long

Name = "FBIPMC1" & Chr( 0 )

DeviceHandle = PmcOpen( Name , PMC_FLAG_NORMAL )

ret = PmcWriteCounter( DeviceHandle, 1, PMC_COUNTER, 200 )

●Delphi

var

Name : String;

DeviceHandle: THandle;

ret: Integer;

begin

Name := 'FBIPMC1';

DeviceHandle := PmcOpen( Name , PMC_FLAG_NORMAL );

ret := PmcWriteCounter( DeviceHandle, 1, PMC_COUNTER, 200 );

end;

デバイスハンドル DeviceHandle の 1 軸側カウンタ値に 200 を設定します。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

95

28. PmcClearCounter

【機能】

各種カウンタ値をクリアします。

【書式】

●C言語

INT PmcClearCounter(

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

DWORD Axis, // 対象軸

DWORD Mode // 対象カウンタ

);

●Visual Basic

Declare Function PmcClearCounter Lib "fbipmc.dll"(

ByVal DeviceHandle As Long,

ByVal Axis As Long,

ByVal Mode As Long

)As Long

●Delphi

function PmcClearCounter(

DeviceHandle: THandle;

Axis: DWORD;

Mode: DWORD

): Integer; stdcall; external 'fbipmc.dll';

【パラメータ】

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

Axis 対象軸を指定してください。(1 or 2)

Mode 対象カウンタを指定してください。

識別子 値 意味

PMC_COUNTER 0001h カウンタ

【戻り値】

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

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

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

96

【備考】

カウンタ値の設定範囲は、PmcSetCounterConfig 関数により設定されたカウンタ範囲に依存し

ます。

【使用例】

●C言語

HANDLE DeviceHandle;

INT ret;

DeviceHandle = PmcOpen( "FBIPMC1", PMC_FLAG_NORMAL );

ret = PmcClearCounter( DeviceHandle, 1, PMC_COUNTER );

●Visual Basic

Dim Name As String

Dim DeviceHandle As Long

Dim ret As Long

Name = "FBIPMC1" & Chr( 0 )

DeviceHandle = PmcOpen( Name , PMC_FLAG_NORMAL )

ret = PmcClearCounter( DeviceHandle, 1, PMC_COUNTER )

●Delphi

var

Name : String;

DeviceHandle: THandle;

ret: Integer;

begin

Name := 'FBIPMC1';

DeviceHandle := PmcOpen( Name , PMC_FLAG_NORMAL );

ret := PmcClearCounter( DeviceHandle, 1, PMC_COUNTER );

end;

デバイスハンドル DeviceHandle の 1 軸側カウンタ値をクリアします。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

97

29. PmcGetStatus

【機能】

各種ステータスを取得します。

【書式】

●C言語

INT PmcGetStatus(

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

DWORD Axis, // 取得軸

DWORD Mode, // 取得項目

PDWORD Status // 取得値を格納する変数の参照渡し

);

●Visual Basic

Declare Function PmcGetStatus Lib "fbipmc.dll"(

ByVal DeviceHandle As Long,

ByVal Axis As Long,

ByVal Mode As Long,

ByRef Status As Long

)As Long

●Delphi

function PmcGetStatus(

DeviceHandle: THandle;

Axis: DWORD;

Mode: DWORD;

var Status: DWORD

): Integer; stdcall; external 'fbipmc.dll';

【パラメータ】

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

Axis 取得軸を指定してください。(1 or 2)

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

98

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

識別子 値 意味

PMC_BUSY 0000h 動作状態

PMC_STOP 0001h 停止要因

PMC_LIMIT 0002h 制御信号入力

PMC_DO 0003h 汎用出力状態

PMC_INTERLOCK 0004h インタロック信号状態

PMC_RESET 0008h リセット要因

PMC_STATUS_CODE 0010h 制御状態コード

PMC_MOVE_NUM 0020h 動作段数

PMC_REPEAT 0021h 動作段数

Status 取得値を格納する変数のポインタ(参照渡し)を指定してください。

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

■動作状態

00h : 停止中(起動保留状態)

04h : 起動遅延タイマ動作中/INP 信号入力待ち

05h : 加速中

06h : 一定速動作中

07h : 減速中

■停止要因

01h : 減速停止命令による停止

02h : PTP 動作完了による停止

03h : 原点復帰(原点サーチ)完了による停止

04h : 原点抜け出し完了による停止

07h : -EL 信号入力による停止

08h : +EL 信号入力による停止

09h : -SD 信号入力による停止

0Ah : +SD 信号入力による停止

0Bh : ALM 信号入力による停止

20h : CP 動作完了による停止

22h : 予約停止命令による停止

■制御信号状態

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

INP ALM ORG Z -EL +EL -SD +SD

bit31~bit8 : 予約

bit7~bit0 : 0 - High 1 - Low

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

99

■汎用出力状態

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

- - - - DO4 DO3 DO2 DO1

bit31~bit4 : 予約

bit3~bit0 : 0 - High 1 - Low

■インタロック信号状態

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

- - - - STS - SOFT HARD

bit31~bit4,2 : 予約

bit3,1,0 : 0 – 動作中 1 – 解除中

■リセット要因

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

- - - - WD - ILICK SOFT

bit31~bit4,2 : 予約

bit3 : ウォッチドッグタイマ

bit1 : インタロックによるリセット

bit0 : ソフトウェアリセット

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

100

■制御状態コード

1 軸 2 軸 意味

01h 81h PTP 動作完了

02h 82h CP 動作完了

03h 83h 原点復帰(原点サーチ)完了

04h 84h 原点抜け出し完了

09h 89h 即時停止命令による停止完了

0Ah 8Ah 減速停止命令による停止完了

0Bh 8Bh 予約動作完了

0Fh 8Fh 制御信号入力による停止/ALM 信号入力

45h C5h エンコーダ入力エラー

46h C6h 動作中のため実行不可

47h C7h 停止中のため実行不可

48h C8h インタロック中のため実行不可

49h C9h 速度値異常(設定可能範囲外)

4Ah CAh 速度値異常(低速側 ≧ 高速側)

4Bh CBh 移動パルス数異常(設定可能範囲外)

4Ch CCh 加減速時間異常(設定可能範囲外)

4Dh CDh パラメータ異常

51h D1h CP 動作パラメータ未設定

61h D1h 動作予約パラメータ未設定

■動作段数

CP 動作,予約動作の動作中の段数を確認します。

■動作回数

予約動作の実行回数を確認します。

【戻り値】

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

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

【備考】

●対象ステータスにリセット要因,制御状態コードを指定した場合には、軸番号の指定は無効

となります。

●動作状態

PmcSetLimitConfig 関数において INP 信号制御を有功とした場合には、パルス出力完了後、

INP 信号が入力されるまで動作状態は 04h となり、INP 信号入力後 00h となります。また、

PmcSetPulseOut 関数において方向変化時ウェイトを使用する設定にした場合の方向変化時

のウェイト実行時には、動作状態は 04h となります。

なお、PmcStartMotion 関数において同時起動信号まで起動保留を設定した場合、起動保留時

には、動作状態は 00h となります。

●停止要因

予約動作時の停止要因は、各段の動作の停止要因となります。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

101

●インタロック信号

bit3(インタロック状態)は、bit1(ソフトウェアインタロック),bit0(ハードウェアイ

ンタロック)がともに 1(解除)となった場合に 1 になります。いずれかが 0(動作)と

なっている場合には、0 となります。

●リセット要因

PmcHandShake 関数により取得したハンドシェークデータの bit1(リセット要因)が 1 とな

っている場合にのみ、読み出した値は有効となります。

●制御状態コード

PmcHandShake 関数により取得したハンドシェークデータの bit0(制御状態コード返信)が 1

となっている場合にのみ、読み出した値は有効となります。

なお、上記以外の制御状態コードが返信された場合があります。上記以外の制御状態コード

は内部処理に使用されていますので、アプリケーション側では読み捨ててください。

●動作段数

CP 動作 または 予約動作の起動中にのみ、確認することができます(それ以外の動作起動

中に実行した場合には PMC_ERROR_INVALID_PARAMETER を返し、停止中に実行した場合には

PMC_ERROR_NOW_STOPPED を返します)。

●動作回数

予約動作の起動中にのみ、確認することができます(それ以外の動作起動中に実行した場合

に は PMC_ERROR_INVALID_PARAMETER を 返 し 、 停 止 中 に 実 行 し た 場 合 に は

PMC_ERROR_NOW_STOPPED を返します)。

なお、PmcSetMotionEx 関数にて繰り返し回数に 0(停止命令まで繰り返し)を指定した場合

には、動作回数が 255 を超えると動作回数は 0 となりカウントを継続します。

●ALM 信号入力について

ALM 信号入力は、デバイスに搭載されている CPU に対しての汎用割り込み信号となってい

ます。このため、動作中/停止中に関わらず ALM 信号が入力されるとデバイスに搭載され

ている CPU に対して割り込みが発生し、ALM 信号入力の制御状態コード 0Fh(1 軸側)/8Fh

(2 軸側)が返信されます(動作中の場合には、ALM 信号が入力されると動作方向に関わら

ず停止します)。

また、ALM 信号が入力された場合には、動作中/停止中に関わらず停止要因は 0Bh(ALM 信

号入力による停止)となります。

【使用例】

●C言語

HANDLE DeviceHandle;

INT ret;

DWORD Status;

DeviceHandle = PmcOpen( "FBIPMC1", PMC_FLAG_NORMAL );

ret = PmcGetStatus( DeviceHandle, 1, PMC_STOP, &Status );

if(ret == PMC_ERROR_SUCCESS)

printf("停止要因:%xH\n",Status);

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

102

●Visual Basic

Dim Name As String

Dim szInfo As String

Dim DeviceHandle As Long

Dim ret As Long

Dim Status As Long

Name = "FBIPMC1" & Chr( 0 )

DeviceHandle = PmcOpen( Name , PMC_FLAG_NORMAL )

ret = PmcGetStatus( DeviceHandle, 1, PMC_STOP, Status )

If ret = PMC_ERROR_SUCCESS Then

szInfo = Hex(Status)

szInfo = "停止要因:" & szInfo & "H"

ret = MsgBox(szInfo, (vbOKOnly+vbInformation),"PmcGetStatus")

End If

●Delphi

var

Name : String;

Info: String;

DeviceHandle: THandle;

ret: Integer;

Status: DWORD;

begin

Name := 'FBIPMC1';

DeviceHandle := PmcOpen( Name , PMC_FLAG_NORMAL );

ret := PmcGetStatus( DeviceHandle, 1, PMC_STOP, Status );

if ret = PMC_ERROR_SUCCESS then

begin

Info := '停止要因:'+IntToHex(Status,2);

MessageDlg(Info, mtInformation,[mbOk],0);

end;

end;

デバイスハンドル DeviceHandle の 1 軸側停止要因を取得します。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

103

30. PmcOutputDO

【機能】

汎用出力を制御します。

【書式】

●C言語

INT PmcOutputDO(

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

DWORD Axis, // 設定軸

DWORD DO // 出力値

);

●Visual Basic

Declare Function PmcOutputDO Lib "fbipmc.dll"(

ByVal DeviceHandle As Long,

ByVal Axis As Long,

ByVal DO As Long

)As Long

●Delphi

function PmcOutputDO(

DeviceHandle: THandle;

Axis: DWORD;

DO: DWORD

): Integer; stdcall; external 'fbipmc.dll';

【パラメータ】

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

Axis

設定を行う軸を指定してください。(1 or 2)

DO 出力値を指定してください。

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

- - - - DO4 DO3 DO2 DO1

bit31~bit4 : 予約

bit3~bit0 : 0 - High 1 - Low

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

104

【戻り値】

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

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

【使用例】

●C言語

HANDLE DeviceHandle;

INT ret;

DeviceHandle = PmcOpen( "FBIPMC1", PMC_FLAG_NORMAL );

ret = PmcOutputDO( DeviceHandle, 1, 0x01 );

●Visual Basic

Dim Name As String

Dim DeviceHandle As Long

Dim ret As Long

Name = "FBIPMC1" & Chr( 0 )

DeviceHandle = PmcOpen( Name , PMC_FLAG_NORMAL )

ret = PmcOutputDO( DeviceHandle, 1, &H01 )

●Delphi

var

Name : String;

DeviceHandle: THandle;

ret: Integer;

begin

Name := 'FBIPMC1';

DeviceHandle := PmcOpen( Name , PMC_FLAG_NORMAL );

ret := PmcOutputDO( DeviceHandle, 1, $01 );

end;

デバイスハンドル DeviceHandle の 1 軸側汎用出力の DO1:LOW,DO2~4:HIGH を出力します。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

105

31. PmcInputDI

【機能】

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

【書式】

●C言語

INT PmcInputDI(

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

DWORD Axis, // 取得軸

PDWORD DI // 取得値を格納する変数の参照渡し

);

●Visual Basic

Declare Function PmcInputDI Lib "fbipmc.dll"(

ByVal DeviceHandle As Long,

ByVal Axis As Long,

ByRef DI As Long

)As Long

●Delphi

function PmcInputDI(

DeviceHandle: THandle;

Axis: DWORD;

var DI: DWORD

): Integer; stdcall; external 'fbipmc.dll';

【パラメータ】

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

Axis 設定を行う軸を指定してください。(1 or 2)

Config 取得値を格納する変数のポインタ(参照渡し)を指定してください。

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

- - - - DI4 DI3 DI2 DI1

bit31~bit4 : 予約

bit3~bit0 : 0 - High 1 - Low

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

106

【戻り値】

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

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

【使用例】

●C言語

HANDLE DeviceHandle;

INT ret;

DWORD DI;

DeviceHandle = PmcOpen( "FBIPMC1", PMC_FLAG_NORMAL );

ret = PmcInputDI( DeviceHandle, 1, &DI );

if(ret == PMC_ERROR_SUCCESS)

printf("汎用入力値:%x\n",DI);

●Visual Basic

Dim Name As String

Dim szInfo As String

Dim DeviceHandle As Long

Dim ret As Long

Dim DI As Long

Name = "FBIPMC1" & Chr( 0 )

DeviceHandle = PmcOpen( Name , PMC_FLAG_NORMAL )

ret = PmcInputDI( DeviceHandle, 1, DI )

If ret = PMC_ERROR_SUCCESS Then

szInfo = Hex(DI)

szInfo = "汎用入力値:" & szInfo

ret = MsgBox(szInfo, (vbOKOnly+vbInformation),"PmcInputDI")

End If

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

107

●Delphi

var

Name : String;

Info: String;

DeviceHandle: THandle;

ret: Integer;

DI: DWORD;

begin

Name := 'FBIPMC1';

DeviceHandle := PmcOpen( Name , PMC_FLAG_NORMAL );

ret := PmcInputDI( DeviceHandle, 1, DI );

if ret = PMC_ERROR_SUCCESS then

begin

Info := '汎用入力値:'+IntToHex(DI);

MessageDlg(Info, mtInformation,[mbOk],0);

end;

end;

デバイスハンドル DeviceHandle の 1 軸側汎用入力状態を取得します。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

108

32. PmcOutputDO1

【機能】

汎用出力 DO1 を制御します。

【書式】

●C言語

INT PmcOutputDO1(

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

DWORD Axis, // 設定軸

DWORD DO // 出力値

);

●Visual Basic

Declare Function PmcOutputDO1 Lib "fbipmc.dll"(

ByVal DeviceHandle As Long,

ByVal Axis As Long,

ByVal DO As Long

)As Long

●Delphi

function PmcOutputDO1(

DeviceHandle: THandle;

Axis: DWORD;

DO: DWORD

): Integer; stdcall; external 'fbipmc.dll';

【パラメータ】

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

Axis 設定を行う軸を指定してください。(1 or 2)

DO 出力値を指定してください。

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

- - - - - - - DO1

bit31~bit1 : 予約

bit0 : 0 - High 1 - Low

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

109

【戻り値】

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

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

【備考】

本関数は PmcOutputDO 関数とは異なり、DO1 の出力状態のみを制御します。このため、本関数

実行後においても他の接点(DO2,DO3,DO4)の出力状態は変化しません。

【使用例】

●C言語

HANDLE DeviceHandle;

INT ret;

DeviceHandle = PmcOpen( "FBIPMC1", PMC_FLAG_NORMAL );

ret = PmcOutputDO1( DeviceHandle, 1, 0x01 );

●Visual Basic

Dim Name As String

Dim DeviceHandle As Long

Dim ret As Long

Name = "FBIPMC1" & Chr( 0 )

DeviceHandle = PmcOpen( Name , PMC_FLAG_NORMAL )

ret = PmcOutputDO1( DeviceHandle, 1, &H01 )

●Delphi

var

Name : String;

DeviceHandle: THandle;

ret: Integer;

begin

Name := 'FBIPMC1';

DeviceHandle := PmcOpen( Name , PMC_FLAG_NORMAL );

ret := PmcOutputDO1( DeviceHandle, 1, $01 );

end;

デバイスハンドル DeviceHandle の 1 軸側汎用出力 DO1 に LOW を出力します。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

110

33. PmcOutputDO2

【機能】

汎用出力 DO2 を制御します。

【書式】

●C言語

INT PmcOutputDO2(

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

DWORD Axis, // 設定軸

DWORD DO // 出力値

);

●Visual Basic

Declare Function PmcOutputDO2 Lib "fbipmc.dll"(

ByVal DeviceHandle As Long,

ByVal Axis As Long,

ByVal DO As Long

)As Long

●Delphi

function PmcOutputDO2(

DeviceHandle: THandle;

Axis: DWORD;

DO: DWORD

): Integer; stdcall; external 'fbipmc.dll';

【パラメータ】

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

Axis 設定を行う軸を指定してください。(1 or 2)

DO 出力値を指定してください。

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

- - - - - - - DO2

bit31~bit1 : 予約

bit0 : 0 - High 1 - Low

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

111

【戻り値】

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

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

【備考】

本関数は PmcOutputDO 関数とは異なり、DO2 の出力状態のみを制御します。このため、本関数

実行後においても他の接点(DO1,DO3,DO4)の出力状態は変化しません。

【使用例】

●C言語

HANDLE DeviceHandle;

INT ret;

DeviceHandle = PmcOpen( "FBIPMC1", PMC_FLAG_NORMAL );

ret = PmcOutputDO2( DeviceHandle, 1, 0x01 );

●Visual Basic

Dim Name As String

Dim DeviceHandle As Long

Dim ret As Long

Name = "FBIPMC1" & Chr( 0 )

DeviceHandle = PmcOpen( Name , PMC_FLAG_NORMAL )

ret = PmcOutputDO2( DeviceHandle, 1, &H01 )

●Delphi

var

Name : String;

DeviceHandle: THandle;

ret: Integer;

begin

Name := 'FBIPMC1';

DeviceHandle := PmcOpen( Name , PMC_FLAG_NORMAL );

ret := PmcOutputDO2( DeviceHandle, 1, $01 );

end;

デバイスハンドル DeviceHandle の 1 軸側汎用出力 DO2 に LOW を出力します。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

112

34. PmcOutputDO3

【機能】

汎用出力 DO3 を制御します。

【書式】

●C言語

INT PmcOutputDO3(

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

DWORD Axis, // 設定軸

DWORD DO // 出力値

);

●Visual Basic

Declare Function PmcOutputDO3 Lib "fbipmc.dll"(

ByVal DeviceHandle As Long,

ByVal Axis As Long,

ByVal DO As Long

)As Long

●Delphi

function PmcOutputDO3(

DeviceHandle: THandle;

Axis: DWORD;

DO: DWORD

): Integer; stdcall; external 'fbipmc.dll';

【パラメータ】

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

Axis 設定を行う軸を指定してください。(1 or 2)

DO 出力値を指定してください。

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

- - - - - - - DO3

bit31~bit1 : 予約

bit0 : 0 - High 1 - Low

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

113

【戻り値】

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

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

【備考】

本関数は PmcOutputDO 関数とは異なり、DO3 の出力状態のみを制御します。このため、本関数

実行後においても他の接点(DO1,DO2,DO4)の出力状態は変化しません。

【使用例】

●C言語

HANDLE DeviceHandle;

INT ret;

DeviceHandle = PmcOpen( "FBIPMC1", PMC_FLAG_NORMAL );

ret = PmcOutputDO3( DeviceHandle, 1, 0x01 );

●Visual Basic

Dim Name As String

Dim DeviceHandle As Long

Dim ret As Long

Name = "FBIPMC1" & Chr( 0 )

DeviceHandle = PmcOpen( Name , PMC_FLAG_NORMAL )

ret = PmcOutputDO3( DeviceHandle, 1, &H01 )

●Delphi

var

Name : String;

DeviceHandle: THandle;

ret: Integer;

begin

Name := 'FBIPMC1';

DeviceHandle := PmcOpen( Name , PMC_FLAG_NORMAL );

ret := PmcOutputDO3( DeviceHandle, 1, $01 );

end;

デバイスハンドル DeviceHandle の 1 軸側汎用出力 DO3 に LOW を出力します。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

114

35. PmcOutputDO4

【機能】

汎用出力 DO4 を制御します。

【書式】

●C言語

INT PmcOutputDO4(

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

DWORD Axis, // 設定軸

DWORD DO // 出力値

);

●Visual Basic

Declare Function PmcOutputDO4 Lib "fbipmc.dll"(

ByVal DeviceHandle As Long,

ByVal Axis As Long,

ByVal DO As Long

)As Long

●Delphi

function PmcOutputDO4(

DeviceHandle: THandle;

Axis: DWORD;

DO: DWORD

): Integer; stdcall; external 'fbipmc.dll';

【パラメータ】

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

Axis 設定を行う軸を指定してください。(1 or 2)

DO 出力値を指定してください。

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

- - - - - - - DO4

bit31~bit1 : 予約

bit0 : 0 - High 1 - Low

【戻り値】

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

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

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

115

【備考】

本関数は PmcOutputDO 関数とは異なり、DO4 の出力状態のみを制御します。このため、本関数

実行後においても他の接点(DO1,DO2,DO3)の出力状態は変化しません。

【使用例】

●C言語

HANDLE DeviceHandle;

INT ret;

DeviceHandle = PmcOpen( "FBIPMC1", PMC_FLAG_NORMAL );

ret = PmcOutputDO4( DeviceHandle, 1, 0x01 );

●Visual Basic

Dim Name As String

Dim DeviceHandle As Long

Dim ret As Long

Name = "FBIPMC1" & Chr( 0 )

DeviceHandle = PmcOpen( Name , PMC_FLAG_NORMAL )

ret = PmcOutputDO4( DeviceHandle, 1, &H01 )

●Delphi

var

Name : String;

DeviceHandle: THandle;

ret: Integer;

begin

Name := 'FBIPMC1';

DeviceHandle := PmcOpen( Name , PMC_FLAG_NORMAL );

ret := PmcOutputDO4( DeviceHandle, 1, $01 );

end;

デバイスハンドル DeviceHandle の 1 軸側汎用出力 DO4 に LOW を出力します。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

116

36. PmcSetEvent

【機能】

割り込みの設定を行います。

【書式】

●C言語

INT PmcSetEvent(

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

PMCEVENTREQ Event // PMCEVENTREQ 構造体の参照渡し

);

●Visual Basic

Declare Function PmcSetEvent Lib "fbipmc.dll"(

ByVal DeviceHandle As Long,

ByRef Event As PMCEVENTREQ

)As Long

●Delphi

function PmcSetEvent(

DeviceHandle: THandle;

var Event: PMCEVENTREQ

): Integer; stdcall; external 'fbipmc.dll';

【パラメータ】

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

Event 設定値が格納された PMCEVENTREQ 構造体のポインタ(参照渡し)を指定してください。

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

【戻り値】

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

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

【備考】

●Visual Basic では Ver 5.0 以降でなければ、本関数は使用できません。

●割り込み設定用構造体の各メンバ変数に NULL または 0 を設定することにより、各割り込

み発生時の処理が行われないようになります。

●ALM 信号入力について

ALM 信号入力は、デバイスに搭載されている CPU に対しての汎用割り込み信号となってい

ます。このため、動作中/停止中に関わらず ALM 信号が入力されるとデバイスに搭載され

ている CPU に対して割り込みが発生し、ALM 信号入力の制御状態コード 0Fh(1 軸側)/8Fh

(2 軸側)が返信されます。

これにより、ALM 信号入力時には、本関数により設定された割り込みイベントが実行されま

す。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

117

【使用例 1】

●C言語

HANDLE DeviceHandle;

INT ret;

PMCEVENTREQ Event;

DeviceHandle = PmcOpen( "FBIPMC1", PMC_FLAG_NORMAL );

// ここでモータの起動などを行う。

Event.hWnd = NULL;

Event.uStatus = 0;

Event.uReset = 0;

Event.uReserved = 0;

Event.hReset = NULL;

Event.hReserved = NULL;

Event.lpCallBackProc = NULL;

// イベントの作成

Event.hStatus = CreateEvent(NULL, TRUE, FALSE, NULL);

ret = PmcSetEvent( DeviceHandle, &Event );

if( ret == PMC_ERROR_SUCCESS ){

ret = WaitForSingleObject(Event.hStatus, 10000);

if( ret != 0 )

printf("タイムアウト\n");

else

printf("制御状態コード返信\n");

}

●Visual Basic Ver 5.0 以降

Dim Name As String

Dim DeviceHandle As Long

Dim ret As Long

Dim Event As PMCEVENTREQ

Name = "FBIPMC1" & Chr( 0 )

DeviceHandle = PmcOpen( Name , PMC_FLAG_NORMAL )

'ここでモータの起動などを行う。

Event.hWnd = nul

Event.uStatus = 0

Event.uReset = 0

Event.uReserved = 0

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

118

Event.hReset = nul

Event.hReserved = nul

Event.lpCallBackProc = nul

// イベントの作成

Event.hStatus = CreateEvent(nul, True, False, nul)

ret = PmcSetEvent( DeviceHandle, Event )

If ret = PMC_ERROR_SUCCESS Then

ret = WaitForSingleObject(Event.hStatus, 10000)

If ret <> 0 Then

MsgBox("タイムアウト",(vbOKOnly+vbInformation),"PmcSetEvent")

Else

MsgBox("制御状態コード返信",(vbOKOnly+vbInformation),"PmcSetEvent");

EndIf

EndIf

●Delphi

var

Name : String;

DeviceHandle: THandle;

ret: Integer;

Event: PMCEVENTREQ;

begin

Name := 'FBIPMC1';

DeviceHandle := PmcOpen( Name , PMC_FLAG_NORMAL );

// ここでモータの起動などを行う。

Event.hWnd := nil;

Event.uStatus := 0;

Event.uReset := 0;

Event.uReserved := 0;

Event.hReset := nil;

Event.hReserved := nil;

Event.lpCallBackProc := nil;

// イベントの作成

Event.hStatus := CreateEvent(nil, True, False, nil);

ret := PmcSetEvent( DeviceHandle, Event );

if ret = PMC_ERROR_SUCCESS then

begin

ret := WaitForSingleObject(Event.hStatus, 10000);

if ret <> 0 then

MessageDlg('タイムアウト', mtInformation,[mbOk],0)

Else

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

119

MessageDlg('制御状態コード返信', mtInformation,[mbOk],0);

end;

end;

PmcOpen 関数で取得したデバイスハンドル DeviceHandle において、イベントハンドルを使用

して制御状態コード返信を確認します。

【使用例 2】

●C言語

// コールバック関数

void CALLBACK fnEvent( HANDLE DeviceHandle, DWORD Data )

{

// ここに割り込み発生時に処理するコードを記述します。

printf("割り込み発生\n");

}

main( )

{

HANDLE DeviceHandle;

DWORD User;

INT ret;

PMCEVENTREQ Event;

DeviceHandle = PmcOpen( "FBIPMC1", PMC_FLAG_NORMAL );

// ここでモータの起動などを行う。

Event.hWnd = NULL;

Event.uStatus = 0;

Event.uReset = 0;

Event.uReserved = 0;

Event.hStatus = NULL;

Event.hReset = NULL;

Event.hReserved = NULL;

Event.lpCallBackProc = fnEvent;

Event.dwUser = 1;

//割り込み発生時にコールバック関数 fnEvent が実行されます。

ret := PmcSetEvent( DeviceHandle, Event );

}

●Visual Basic Ver 5.0 以降

' コールバック関数

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

120

' このコールバック関数はモジュールファイルに定義してください。

Public Sub fnEvent( ByVal DeviceHandle As Long, ByVal User As Long )

Dim ret As Long

' ここに割り込み発生時に処理するコードを記述します。

' MainForm の Label1 の Caption に表示します。

MainForm.Label1.Caption = "割り込み発生"

End Sub

'MainForm の処理です。MainForm 上の Button1 をクリックした時に

'デバイスのオープンと割り込みの設定を行います。

Private Sub Button1_Click( )

Dim Name As String

Dim DeviceHandle As Long

Dim ret As Long

Dim Event As PMCEVENTREQ

Name = "FBIPMC1" & Chr( 0 )

DeviceHandle = PmcOpen( Name , PMC_FLAG_NORMAL )

'ここでモータの起動などを行う。

Event.hWnd = nul

Event.uStatus = 0

Event.uReset = 0

Event.uReserved = 0

Event.hStatus = nul

Event.hReset = nul

Event.hReserved = nul

Event.lpCallBackProc = AddressOf fnEvent

Event.dwUser = 1

' 割り込み発生時にコールバック関数 fnEvent が実行されます。

ret = PmcSetEvent( DeviceHandle, Event )

End Sub

●Delphi

// ユーザ定義のプロトタイプ宣言をしておく

procedure fnEvent( DeviceHandle: THandle, User: DWORD );stdcall;

//

// コールバック関数

procedure fnEvent( DeviceHandle: THandle, Data: DWORD );

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

121

begin

// ここに割り込み発生時に処理するコードを記述します。

// MainForm のフォームの Label1 の Caption に表示します。

MainForm.Label1.Caption := '割り込み発生';

end;

procedure TMainForm.Button1Click(Sender: TObject);

var

Name : String;

DeviceHandle: THandle;

ret: Integer;

Event: PMCEVENTREQ;

begin

Name :=‘FBIPMC1’; DeviceHandle := PmcOpen( Name , PMC_FLAG_NORMAL );

// ここでモータの起動などを行う。

Event.hWnd := nil;

Event.uStatus := 0;

Event.uReset := 0;

Event.uReserved := 0;

Event.hStatus := nil;

Event.hReset := nil;

Event.hReserved := nil;

Event.lpCallBackProc := @fnEvent;

//割り込み発生時にコールバック関数 fnEvent が実行されます。

ret := PmcSetEvent( DeviceHandle, Event );

end;

PmcOpen 関数で取得したデバイスハンドル DeviceHandle において、割り込み発生時にコール

バック関数を実行します。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

122

37. PmcGetEvent

【機能】

割り込みの設定を取得します。

【書式】

●C言語

INT PmcGetEvent(

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

PMCEVENTREQ Event // PMCEVENTREQ 構造体の参照渡し

);

●Visual Basic

Declare Function PmcGetEvent Lib "fbipmc.dll"(

ByVal DeviceHandle As Long,

ByRef Event As PMCEVENTREQ

)As Long

●Delphi

function PmcGetEvent(

DeviceHandle: THandle;

var Event: PMCEVENTREQ

): Integer; stdcall; external 'fbipmc.dll';

【パラメータ】

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

Event 取得値を格納する PMCEVENTREQ 構造体のポインタ(参照渡し)を指定してください。

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

【戻り値】

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

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

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

123

【使用例】

●C言語

HANDLE DeviceHandle;

INT ret;

PMCEVENTREQ Event;

DeviceHandle = PmcOpen( "FBIPMC1", PMC_FLAG_NORMAL );

ret = PmcGetEvent( DeviceHandle, &Event );

●Visual Basic Ver 5.0 以降

Dim Name As String

Dim DeviceHandle As Long

Dim ret As Long

Dim Event As PMCEVENTREQ

Name = "FBIPMC1" & Chr( 0 )

DeviceHandle = PmcOpen( Name , PMC_FLAG_NORMAL )

ret = PmcGetEvent( DeviceHandle, Event )

●Delphi

var

Name : String;

DeviceHandle: THandle;

ret: Integer;

Event: PMCEVENTREQ;

begin

Name := 'FBIPMC1';

DeviceHandle := PmcOpen( Name , PMC_FLAG_NORMAL );

ret := PmcGetEvent( DeviceHandle, Event );

end;

デバイスハンドル DeviceHandle の割り込み設定を取得します。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

124

38. PmcReset

【機能】

デバイスをリセットします。

【書式】

●C言語

INT PmcReset(

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

);

●Visual Basic

Declare Function PmcReset Lib "fbipmc.dll"(

ByVal DeviceHandle As Long

)As Long

●Delphi

function PmcReset(

DeviceHandle: THandle

): Integer; stdcall; external 'fbipmc.dll';

【パラメータ】

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

【戻り値】

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

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

【備考】

本関数によるリセット後には、リセット要因が返信されますので、PmcGetStatus 関数によりリ

セット要因を読み出してください(リセット要因を読み出さなければ、各種設定用関数,起動

関数を実行することはできません)。

【使用例】

●C言語

HANDLE DeviceHandle;

INT ret;

DeviceHandle = PmcOpen( "FBIPMC1", PMC_FLAG_NORMAL );

ret = PmcReset( DeviceHandle );

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

125

●Visual Basic

Dim Name As String

Dim DeviceHandle As Long

Dim ret As Long

Name = "FBIPMC1" & Chr( 0 )

DeviceHandle = PmcOpen( Name , PMC_FLAG_NORMAL )

ret = PmcReset( DeviceHandle )

●Delphi

var

Name : String;

DeviceHandle: THandle;

ret: Integer;

begin

Name := 'FBIPMC1';

DeviceHandle := PmcOpen( Name , PMC_FLAG_NORMAL );

ret := PmcReset( DeviceHandle );

end;

デバイスハンドル DeviceHandle をリセットします。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

126

39. PmcResetController

【機能】

デバイスに搭載されているコントローラをリセットします。

【書式】

●C言語

INT PmcResetController(

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

DWORD Axis // リセット軸

);

●Visual Basic

Declare Function PmcResetController Lib "fbipmc.dll"(

ByVal DeviceHandle As Long,

ByVal Axis As Long,

)As Long

●Delphi

function PmcResetController(

DeviceHandle: THandle;

Axis: DWORD

): Integer; stdcall; external 'fbipmc.dll';

【パラメータ】

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

Axis リセット軸を指定してください。(1 or 2)

【戻り値】

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

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

【備考】

●本関数は、PmcReset 関数とは異なり、指定された軸側のコントローラ(PCL3013)のみをリ

セットします。

●本関数によるコントローラのリセットでは、制御状態コードは返信されません。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

127

【使用例】

●C言語

HANDLE DeviceHandle;

INT ret;

DeviceHandle = PmcOpen( "FBIPMC1", PMC_FLAG_NORMAL );

ret = PmcResetController( DeviceHandle, 1 );

●Visual Basic

Dim Name As String

Dim DeviceHandle As Long

Dim ret As Long

Name = "FBIPMC1" & Chr( 0 )

DeviceHandle = PmcOpen( Name , PMC_FLAG_NORMAL )

ret = PmcResetController( DeviceHandle, 1 )

●Delphi

var

Name : String;

DeviceHandle: THandle;

ret: Integer;

begin

Name := 'FBIPMC1';

DeviceHandle := PmcOpen( Name , PMC_FLAG_NORMAL );

ret := PmcResetController( DeviceHandle, 1 );

end;

デバイスハンドル DeviceHandle の 1 軸側コントローラをリセットします。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

128

4.3 コールバック関数

※Visual Basicでコールバック機能を使用する場合、幾つかの制約事項が発生します(後述の

『4.1.2 Visual Basic使用時の制約事項』をご参照ください)。

4.1.1 PmcSetEvent 関数により設定されるコールバック関数 PmcSetEvent 関数にて登録し、割り込みイベントが発生した時にコールされるコールバックルー

チンです。

コールバック関数内では、PmcHandShake 関数によりハンドシェークデータを確認し、発生した割

り込みに対する処理(制御状態コードの確認,リセット要因の確認)を行ってください。

【記述】

コールバックルーチンを使用する場合、下記のように記述します。

(下記はコールバックルーチンを EventProc とする場合の例です。)

●C 言語

void CALLBACK EventProc(HANDLE DeviceHandle, DWORD User)

{

// 割り込みイベントに対応する処理を記述します

}

コールバックルーチンの関数型 LPPMCCALLBACK は下記のように定義されます。

typedef void (CALLBACK PMCCALLBACK)(HANDLE DeviceHandle, DWORD User);

typedef PMCCALLBACK FAR *LPPMCCALLBACK;

●Visual Basic

Function EventProc(DeviceHandle As Long, User As Long)

‘ 割り込みイベントに対応する処理を記述します

End Function

コールバックルーチンは PmcSetEvent 関数の呼び出しを行うプロジェクト内の標準モジュール

の中に記述しなければなりません。

PmcSetEvent 関数の引数パラメータでプロシージャのアドレスを渡す為に AddressOf 演算子を

使用します。(PmcSetEvent 関数の使用例を参照してください。)AddressOf 演算子を使うと、

プロシージャからの戻り値ではなく、プロシージャ自体のアドレスが、ダイナミック リンク ラ

イブラリ (DLL)の PmcSetEvent 関数に渡されます。

●Delphi

procedure EventProc(DeviceHandle:THandle; User:DWORD); stdcall;

begin

// 割り込みイベントに対応する処理を記述します

end;

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

129

【パラメータ】

DeviceHandle 割り込みが発生したデバイスのハンドルが格納されます。

User PMCEVENTREQ 構造体の dwUser にて指定された値が格納されます。

【戻り値】

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

4.1.2 Visual Basic 使用時の制約事項 ●Visual Basic Ver. 4.0 では、コールバック関数の登録ができない(AddressOf 演算子がサポー

トされない)為、イベント機能を使用することはできません。Visual Basic Ver. 5.0 以降は

可能です。

●Microsoft Visual Basic 6.0 上で弊社ソフトウェアライブラリが提供する関数コールバック機

能を使用した場合、下記のアプリケーションエラーが発生する場合があります。

「“0x660d64d0”の命令が“0x0000009c”のメモリを参照しました。メモリが“written”になるこ

とはできませんでした。」

※”0x660d64d0”は異なる場合があります

アプリケーションエラーは下記の条件で発生します。

〇登録したコールバック関数内で、下記の関数、ステートメントをコールする。

・関数コール(弊社ソフトウェアライブラリが提供する関数含む)

・Visual Basic のステートメント(Str()等)

・スタティックテキストへの文字列代入

また、この問題は、Visual Basic 6.0 の Learning、Professional、Enterprise Edition の全

てに当てはまり、サービスパックの適用有無にかかわらず発生します。

コールバック関数内で、アプリケーションエラーを発生させる処理を行わずに別の機能を利用

することで目的の処理が実行できるように設計を変更してください。

Microsoft Visual Basic 6.0 は、スレッディング モデルとして、アパートメント モデルを採

用しています。

Microsoft Visual Basic 6.0 が作成、起動したスレッド以外からコールバック関数が実行され

た場合にアプリケーションエラーが発生する場合があります。

弊社ソフトウェアライブラリでは、ライブラリ内で起動した別のスレッドから登録されたコー

ルバック関数の実行を行いますので、この問題が発生します。

解決方法は、以下の項を参照してください。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

130

本製品ではメッセージを使用し、メッセージ送出先ウィンドウ(フォーム)のウィンドウプロシ

ージャをフック(サブクラス化)することにより、割り込みコールバック処理を行います。

メッセージによるコールバックを行う場合には、以下の処理を追加してください。

手順 1.

メッセージ送出先ウィンドウのウィンドウプロシージャをフック。(AddressOf 演算子,

CallWindowProc 関数,SetWindowLong 関数を使用)(通常は、ウィンドウ初期化時に 1 回だけ行

う)

手順 2.

フックしたウィンドウプロシージャ内で、PmcSetEvent 関数にて指定するメッセージに対する

処理を記述。

手順 3.

PmcSetEvent 関数により、割り込み発生時のメッセージ送出先ウィンドウのハンドル,送出メ

ッセージを指定。

手順 4.

フックしたウィンドウプロシージャをアンフック(元に戻す)。(通常は、ウィンドウクローズ時

に 1回だけ行う)

これらのコードの追加により、割り込み発生時にはメッセージによるコールバック処理が実行

されます。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

131

4.4 構造体

4.4.1 PMCMOTION 構造体 PMCMOTION 構造体は、PmcSetMotion,PmcSetMotionCp,PmcSetMotionEx の各関数による各種動

作パラメータの設定、および PmcGetMotion,PmcGetMotionCp,PmcSetMotionEx の各関数によ

る各種動作パラメータの取得の際に使用する構造体です。

●C 言語

typedef struct {

DWORD dwMode;

DWORD dwLowSpeed;

DWORD dwSpeed;

DWORD dwAcc;

DWORD dwDec;

DWORD dwSSpeed;

INT nStep;

INT nReserved;

} PMCMOTION, *PPMCMOTION;

●Visual Basic

Type PMCMOTION

dwMode As Long

dwLowSpeed As Long

dwSpeed As Long

dwAcc As Long

dwDec As Long

dwSSpeed As Long

nStep As Long

nReserved As Long

End Type

●Delphi

type

PMCMOTION = record

dwMode: DWORD;

dwLowSpeed: DWORD;

dwSpeed: DWORD;

dwAcc: DWORD;

dwDec: DWORD;

dwSpeed: DWORD;

nStep: Integer;

nReserved: Integer;

end;

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

132

メンバ 説明

加減速起動時の加減速の種類

識別子 値 意味

PMC_ACC_NORMAL 0000h 直線加減速

PMC_ACC_SIN 0001h S 字加減速

dwMode

※CP 動作,動作予約パラメータ設定時は、すべての段において同じ値を設定し

てください。

dwLowSpeed 低速側速度

00000001h~10000000h → 0.1~1000000.0[pps](BCD 形式)

※下位 4bit は小数点以下 1桁となります。

※実際に設定できる範囲は[最高速度制限値/32767]~最高速度制限値となり

ます(最高速度制限値は PmcSetMaxSpeed 関数により設定します)。

※低速側速度は、必ず高速側速度 dwSpeed より小さい値を設定してください。

※CP 動作パラメータ設定時は、すべての段において同じ値を設定してください。

dwSpeed 移動速度

00000001h~10000000h → 0.1~1000000.0[pps](BCD 形式)

※下位 4bit は小数点以下 1桁となります

※実際に設定できる範囲は低速側速度~最高速度制限値となります(最高速度制

限値は PmcSetMaxSpeed 関数により設定します)。

※高速側速度は、必ず低速側速度 dwLowSpeed より大きい値を設定してくださ

い。

dwAcc 加速時間

1 ~ 400000[ms](直線加減速[PMC_ACC_NORMAL 指定]時)

1 ~ 800000 [ms] (S 字加減速[PMC_ACC_SIN 指定]時)

※実際に設定できる範囲は、低速側速度,高速側速度の設定に依存します。低速

側速度と高速側速度の差が小さい場合には、加カ減速時間を長く設定すること

はできません。

※設定した加減速時間が設定可能範囲を上回る場合には設定範囲の最大値に、下

回る場合には設定範囲の最小値に丸められます。

dwDec 減速時間

1 ~ 400000[ms](直線加減速[PMC_ACC_NORMAL 指定]時)

1 ~ 800000 [ms] (S 字加減速[PMC_ACC_SIN 指定]時)

※減速時間は、必ず加速時間と同じ値を設定してください。

dwcSSpeed 予約(0 を指定)

nStep 移動パルス数

0 ~ 268435455

※連続動作パラメータ設定時は、0 を指定してください。

※CP 動作パラメータ設定時は、各段での移動パルス数を設定してください。

※移動方向は、PmcStartMotion 関数(動作予約時は、PMCMOTIONEX 構造体の

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

133

dwMotion 変数)により指定します。

nReserved 予約(0 を指定)

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

134

4.4.2 PMCMOTIONEX 構造体 PMCMOTIONEX 構造体は、PmcSetMotionEx 関数による各種動作パラメータの設定、および

PmcGetMotionEx 関数による各種動作パラメータの取得の際に使用する構造体です。

●C 言語

typedef struct {

DWORD dwMotion;

PMCMOTION PmcEx;

} PMCMOTIONEX, *PPMCMOTIONEX;

●Visual Basic

Type PMCMOTIONEX

dwMotion As Long

PmcEx As PMCMOTON

End Type

●Delphi

type

PMCMOTIONEX = record

dwMotion: Long;

PmcEx: PMCMOTION;

end;

メンバ 説明

dwMotion 起動動作

PmcStartMotion 関数で指定する起動動作パラメータと同じ値を設定してくださ

い。

※動作再開,CP 動作,動作予約を指定することはできません。

PmcEx 動作パラメータ

dwMotion により選択した動作のパラメータを設定します(PMCMOTION 構造体)。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

135

4.4.3 PMCNTREQ 構造体 PMCEVENTREQ 構造体は、PmcSetEvent 関数による割り込みイベントの設定、および PmcGetEvent

関数による割り込みイベントの設定の取得の際に使用する構造体です。

●C 言語

typedef struct {

HANDLE hWnd;

UINT uStatus;

UINT uReset;

UINT uReserved;

HANDLE hStatus;

HANDLE hReset;

HANDLE hReserved;

LPPMCCALLBACK lpCallBackProc;

DWORD dwUser;

} PMCEVENTREQ, *PPMCEVENTREQ;

●Visual Basic

Type PMCEVENTREQ

hWnd As Long

uStatus As Long

uReset As Long

uReserved As Long

hStatus As Long

hReset As Long

hReserved As Long

lpCallBackProc As Long

dwUser As Long

End Type

●Delphi

type

PMCEVENTREQ = record

hWnd: HWND;

uStatus: DWORD;

uReset: DWORD;

uReserved: DWORD;

hStatus: THandle;

hReset: THandle;

hReserved: THandle;

lpCallBackProc: FARPROC;

dwUser: DWORD;

end;

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

136

メンバ 説明

hWnd メッセージ送出ウィンドウハンドル

各種割り込み発生時にメッセージをポストするウィンドウのハンドルを指定

します。

メッセージポストを行わない場合には、0を指定してください。

uStatus 制御状態コード返信メッセージ

デバイスから制御状態コードが返信された場合に発生した割り込みに対して

送出されるメッセージコードを指定します。

メッセージポストを行わない場合には、0を指定してください。

※メッセージポスト先ウィンドウにおいて本メッセージを受け取った場合に

は、PmcGetStatus 関数(PMC_STATUS_CODE を指定)にて返信された制御状

態コードを確認してください。

uReset リセットメッセージ

デバイスがリセットされた場合に発生した割り込みに対して送出されるメッ

セージコードを指定します。

メッセージポストを行わない場合には、0を指定してください。

※メッセージポスト先ウィンドウにおいて本メッセージを受け取った場合に

は、PmcGetStatus 関数(PMC_RESET_STATUS を指定)にてリセット要因を確

認してください。

uReserved 予約

“0”を指定してください。

hStatus 制御状態コード返信用イベントハンドル

デバイスから制御状態コードが返信された場合に発生した割り込みに対して

シグナル状態となるイベントのハンドルを指定します。

イベントハンドルを使用しない場合は、0を指定してください。

※本イベントがシグナル状態になった場合には、PmcGetStatus 関数

(PMC_STATUS_CODE を指定)にて返信された制御状態コードを確認してくだ

さい。

hReset リセット用イベントハンドル

デバイスがリセットされた場合に発生した割り込みに対してシグナル状態と

なるイベントのハンドルを指定します。

イベントハンドルを使用しない場合は、0を指定してください。

※本イベントがシグナル状態になった場合には、PmcGetStatus 関数

(PMC_RESET_STATUS を指定)にてリセット要因を確認してください。

hReserved 予約

“0”を指定してください。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

137

lpCallBackProc コールバック関数

dwUser ユーザ・コールバック関数へ引き渡すユーザ・データを指定してください。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

138

4.5 戻り値一覧

エラー識別子 値 意味 対処方法

PMC_ERROR_SUCCESS 00000000h 正常終了。

PMC_ERROR_NOT_DEVICE C0000001h デバイスが呼び出せませ

ん。

指定されたデバイスが見つかりませ

んでした。指定しているデバイス名が

存在するかどうかを確認してくださ

い。

PMC_ERROR_NOT_DEVICE C0000002h ドライバが OPEN できませ

ん。

デバイスのオープン時に何らかのエ

ラーが発生しました。ドライバの内部

作業領域の確保の失敗等が原因です。

PMC_ERROR_INVALID_HANDLE C0000003h デバイスハンドルが正し

くありません。

不正なデバイスハンドルで呼び出し

を行おうとしました。PmcOpen 関数で

取得したデバイスハンドルを使用し

てください。

PMC_ERROR_ALREADY_OPEN C0000004h すでに OPEN しているデバ

イスを OPEN しようとしま

した。

既に OPEN されているデバイスです。

複数枚の I/O モジュールを制御する

場合は他のデバイス名を指定してく

ださい。

PMC_ERROR_NOT_SUPPORTED C0000009h サポートされていない機

能です。

PMC_ERROR_NOW_MOVING C0001000h モータ動作中です。 モータ動作中には実行できません。

PmcGetStatus 関数により、モータが

停止していることを確認してから実

行してください。

PMC_ERROR_NOW_STOPPED C0001001h モータ停止中です。 モータ停止中には実行できません。

PmcGetStatus 関数により、モータが

動作していることを確認してから実

行してください。

PMC_ERROR_WRITE_FAILED C0001010h コントローラの書き込み

に失敗しました。

PMC_ERROR_READ_FAILED C0001011h コントローラの読み込み

に失敗しました。

PmcHanShake 関数によるハンドシェ

ークデータの確認,PmcGetStatus 関

数による制御状態コードの確認によ

り、書き込み/読み込みが可能になる

のを確認してください。

PMC_ERROR_INVALID_DEVICE C0001012h デバイスの指定が正しく

ありません。

PmcOpen 関数で返されたデバイスハ

ンドルを指定してください。

PMC_ERROR_INVALID_AXIS C0001013h 軸番号指定に誤りがあり

ます。

軸番号には 1 または 2 を設定してく

ださい。

PMC_ERROR_INVALID_SPEED C0001014h 速度パラメータの値が不

正です。

PMC_ERROR_INVALID_ACCDEC C0001015h 加減速パラメータの値が

不正です。

PMC_ERROR_INVALID_PULSE C0001016h 移動量パラメータの値が

不正です。

PMC_ERROR_INVALID_PARAMETER C0001017h 引数パラメータの値が不

正です。

各関数に指定する値が不正、もしくは

範囲外です。

PMC_ERROR_NOW_INTERLOCKED C0001020h インタロック中です。 ハードウェアインタロックの解除,

PmcOffInterLock 関数によるソフト

ウェアインタロックの解除を行って

ください。

PMC_ERROR_IMPOSSIBLE C0001021h 実行不可。 現在、実行できない状態になっていま

す。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

139

PMC_ERROR_NOT_ALLOCATE_MEMORY C0001024h 作業用メモリの確保に失

敗しました。

利用可能なメモリが足りなくなって

います。不要なアプリケーションなど

を終了させ、利用可能なメモリを増や

すようにしてください。

PMC_ERROR_INITIALIZE C0001030h CPU 初期化中。 デバイスに搭載されている CPU が初

期化中のため実行できません。

PmcHandShake 関数により、CPU の初

期化完了を確認後、実行してくださ

い。

PMC_ERROR_STATUS_RECEIVED C0001032h 制御状態コード返信。 制御状態コードが返信されています。

PmcGetStatus 関数により制御状態コ

ードを確認してください。

PMC_ERROR_RESET C0001033h リセットされました。 リセットされました。PmcGetStatus

関数によりリセット要因を確認し、各

種パラメータの再設定を行ってくだ

さい。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

140

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

以下、各サンプルプログラムの概要を説明します。

5.1 PmcSmpl 【概要】

サンプルプログラム「PmcSmpl」は基本的なインタロックの解除、PTP 動作を行なうサンプルプ

ログラムです。

【実行手順】

サンプルプログラムには実行形式のファイルが付属していません。

ソースコードをコンパイルして実行ファイルを生成してから、動作させてください。

●Visual C++の場合

Visual C++(Visual Studio)を起動し、「ファイル」メニューから「ワークスペースを開く」

を選び、メイクファイル「PmcSmpl_C.mak」または「PmcSmpl_Cpp.mak」を開き、ビルドしてく

ださい。

●Visual Basic の場合

Visual Basic を起動し、プロジェクトファイル「PmcSmpl_B.vbp」を開き、ビルドしてくださ

い。

●Delphi の場合

Delphi を起動し、プロジェクトファイル「PmcSmpl_D.dpr」を開き、ビルドしてください。

作成後、「PmcSmpl_xxx」を起動してください。

【内容】

1. メニューバーの「Open」でデバイスオープンダイアログが表示されます。オープンするデ

バイス名を入力してください。

2. 「InterLock Off」でソフトインタロックを解除します。

ハードインタロックの解除(ピン番号 27、28 の短絡)を行っていませんとモータを起動

させることができません。

「Start」で PTP 動作を起動します。

「Stop」でモータを停止させます。

3. 「Status」で制御状態コードを表示します。

※制御状態コードについては PmcGetStatus 関数を参照してください。

※緊急の時は制御信号、インタロック信号、またはサンプルプログラムを終了させることでモ

ータを停止させてください。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

141

PTP 動作の設定値:

加減速動作 :PMC_ACC_NORMAL(直線加減速)

起動時速度 :1000h

移動速度 :10000h

加減速時間(ms) :500

移動量(パルス数) :10000

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

142

5.2 PmcInt 【概要】

サンプルプログラム「PmcInt」は基本的な割り込み処理を行なうサンプルプログラムです。

【実行手順】

サンプルプログラムには実行形式のファイルが付属していません。

ソースコードをコンパイルして実行ファイルを生成してから、動作させてください。

●Visual C++の場合

Visual C++(Visual Studio)を起動し、「ファイル」メニューから「ワークスペースを開く」

を選び、メイクファイル「PmcInt_C.mak」または「PmcInt_Cpp.mak」を開き、ビルドしてくだ

さい。

●Visual Basic の場合

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

●Delphi の場合

Delphi を起動し、プロジェクトファイル「PmcInt_D.dpr」を開き、ビルドしてください。

作成後、「PmcInt_xxx」を起動してください。

【内容】

1. メニューバーの「Open」でデバイスオープンダイアログが表示されます。オープンするデ

バイス名を入力してください。

2. 「InterLock Off」でソフトインタロックを解除します。

ハードインタロックの解除(ピン番号 27、28 の短絡)を行なっていませんとモータを起

動させることができません。

「Start」で PTP 動作を起動します。

「Stop」でモータを停止させます。

3. インタロック解除後、モータ停止時に割り込みが発生します。

割り込み発生時にコールバック関数を呼び出し、制御状態コードの読み込み、表示を行い

ます。

※サンプルプログラムでモータを動作させる前に PIK チューニングソフトで PIK 定数の設定を

行ってください。

※制御状態コードについては PmcGetStatus 関数を参照してください。

緊急の時は制御信号、インタロック信号、またはサンプルプログラムを終了させることでモー

タを停止させてください。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

143

PTP 動作の設定値:

加減速動作 :PMC_ACC_NORMAL(直線加減速)

起動時速度 :1000h

移動速度 :10000h

加減速時間(ms) :500

移動量(パルス数) :10000

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

144

第6章 ユーティリティ

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

6.1 自己診断プログラム 本製品には、動作不具合時の原因がハードウェア的なものか、ソフトウェア的なものかを容易

に判断するための自己診断機能を搭載しています。診断プログラムを用いて動作確認を行って

ください。

【必要な機材】

・端子台:TRM-2201

・ケーブル:CAB-66xx

・ワニ口ケーブル等

・外部電源

【起動方法】

ソフトウェアのインストール完了後、「スタート」メニューより「プログラム」-「Interface

GPC-7206」-「診断プログラム」を起動します。

「デバイス選択」画面が表示されますので、その中から、診断を行う製品を選択してください。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

145

(メイン画面)

【操作手順】

1. 診断プログラムを実行すると「デバイス選択」ダイアログが表示され、使用可能なデバイ

ス名が表示されます。このダイアログより使用する製品のデバイス名を選択します。

RSW 番号より、診断を行うデバイスのデバイス名を確認してください。

2. デバイス名を選択して、「OPEN」ボタンをクリックするとメイン画面が表示されます。

3. ①操作の手順方法が表示されます。

各検査ごとにここで表示される手順方法に従ってください。

4. ②.には信号ピンの接続が表示されます。

画面上の指示どおりに信号ピンを接続してください。

5. 「開始」ボタンをクリックするとプログラムが実行され、③にその診断結果が表示されま

す。

6. 「結果」ボタンをクリックすると下図のように全検査結果を表示したダイアログが表示さ

れます。「Save」ボタンをクリックするとファイル保存ダイアログが表示されますので、

全検査結果データをファイルとして保存できます。

※信号名、ピン番号などは USER'S MANUAL を参照してください。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

146

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

147

6.2 動作確認プログラム 動作確認プログラムにより、PCI-7206 の各機能が正常に動作しているか、機器を接続した状態

で確認することができます。1~2 軸のモータの起動(パルス出力),停止,各種ステータスの

確認,汎用入出力制御,制御信号,インタロック信号の入力状態の確認が可能です。

【起動方法】

ソフトウェアのインストール完了後、「スタート」メニューより「プログラム」-「Interface

GPC-7206」-「動作確認プログラム」を起動します。

「デバイス選択」ダイアログが表示されますので、その中から、使用する製品を選択してくだ

さい。

(メイン画面)

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

148

【操作手順】

1. 動作確認プログラムを実行すると「デバイス選択」ダイアログが表示され、使用可能なデ

バイス名が表示されます。このダイアログより使用するデバイス名を選択します。RSW 番

号より、動作確認を行うデバイスのデバイス名を確認してください。

2. デバイス名を選択して、「OPEN」ボタンをクリックするとメイン画面が表示されます。

3. ①はモータの制御部です。モータの+/-方向の移動,停止用のボタンと動作状態,位置

カウンタを表示します。

4. ②は制御信号入力状態モニタ部です。赤で ON,緑で OFF を意味します。

5. ③は汎用出力部です。それぞれの出力部のボタンをクリックすることにより汎用出力を制

御します。

6. ④、⑤汎用入力,インタロック状態のモニタ部です。赤で ON,緑で OFF を意味します。

7. ⑥は制御状態コードを表示します。

※モータドライバと接続については USER'S MANUAL を参照してください。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

149

第7章 用語説明

7.1 連続動作 動作命令により指定した方向に動作を起動し、停止命令まで動作します。

7.2 原点復帰動作 動作命令により指定した方向に動作を起動し、原点復帰完了条件が成立するまで動作します。

原点復帰完了条件は、PmcSetPulseOut 関数にて設定します(Z 相信号入力回数は、

PmcSetLimitConfig 関数にて指定します)。

原点復帰完了時には制御状態コード 03h(1 軸側)/83h(2 軸側)が返信されます。

7.3 移動量指定 原点復帰動作 動作命令により指定した方向に動作を起動し、原点復帰完了条件の成立 または 指定パルス数を

出力するまで動作します。起動後、原点復帰動作のように動作しますが、原点復帰動作完了条件

が成立するまでに指定パルス数が出力されると停止します。

減手復帰完了により停止したか、指定パルス数出力により停止したかの判断は、PmcReadCounter

関数による残りパルス数の確認 または PmcGetStatus 関数による停止要因の確認で行います。判

断を残りパルス数で行う場合には、残りパルス数が 0 のときが指定パルス数出力での停止,0 以

外であれば原点復帰完了による停止となります。判断を停止要因で行う場合には、02h のときが

指定パルス数出力での停止、03h のときが原点復帰完了による停止となります。

原点復帰完了時には制御状態コード 03h(1 軸側)/83h(2 軸側)が、指定パルス数出力完了時

には 01h(1 軸側)/81h(2 軸側)返信されます。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

150

7.4 原点サーチ動作 +EL,-EL 信号間を往復して、指定した方向から原点復帰します(PmcSetLimitConfig 関数により

±SD 信号を減速停止とした場合には、±SD 信号による減速停止も ±EL 信号入力時と同じ処理に

なります)。

原点サーチ完了時には制御状態コード 03h(1 軸側)/83h(2 軸側)が返信されます。

例)

ORG,-EL 信号間から-方向原点サーチを起動した場合

1. 指定された-方向に動作を起動します(同方向の原点復帰動作)。

2. -EL 信号入力により停止し、指定と逆の+方向へ動作を起動します(逆方向の原点復帰動

作)。

3. ORG 信号入力により停止しますが、指定方向から原点位置に入り直すため原点抜け出し位置

まで移動します(逆方向の原点抜け出し動作)。

4. 更に+方向へ動作して確実に ORG 信号 OFF の位置へ移動します(逆方向の PTP 動作)。

5. 指定された-方向に動作を起動します(同方向の原点復帰動作)。

6. 原点位置で停止します。

7. 停止後、制御状態コード 03h(1 軸側)/83h(2 軸側)が返信されます。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

151

7.5 原点抜け出し動作 ORG 信号 ON 状態でも原点位置とは限りません。その場合には、一度 ORG 信号 OFF 位置へ移動

してから原点復帰を行う必要があります。原点抜け出し動作は、指定された方向の ORG 信号 OFF

の位置へ移動します。原点抜け出し完了条件は、原点復帰動作と同じ設定になります。

原点抜け出し完了時には制御状態コード 04h(1 軸側)/84h(2 軸側)が返信されます。

7.6 シングルステップ 1 パルス(マイクロステップ制御時は単位数)だけ、指定方向に出力します。

各動作パラメータは、PmcSetMotion 関数で設定した PTP 動作パラメータと同じ設定になります。

シングルステップ完了時には制御状態コード 01h(1 軸側)/81h(2 軸側)が返信されます。

7.7 タイマ動作 内部動作時間をタイマとして使用します(パルスは出力されません)。内部動作は PTP 動作と同

様になります。±EL,±SD 信号入力は無効(常に OFF と見なす)となり、タイマ動作中はカウ

ンタは停止します。PmcSetPulseOut 関数にてパルス出力モードを 1 パルス方式として DIR 端子

から方向信号を出力している場合には、指定した移動方向にしたがって DIR 端子の出力状態は変

化します。起動命令は一定速動作とし、内部動作時間は出力パルスの周期と移動量(パルス数)

との積になります(1000pps で 120 パルス出力時は 120ms)。PmcSetLimitConfig 関数による INP

信号制御の設定に関わらず、INP 信号により動作完了は遅延しません。

タイマ動作完了時には制御状態コード 01h(1 軸側)/81h(2 軸側)が返信されます。

7.8 PTP 動作 パルス数(PmcSetMotion 関数により指定)と方向(PmcStartMotion 関数により指定)を指定して

位置決め動作を行います。出力パルス数の設定範囲は 0~268435455 となります。

PTP 動作完了時には制御状態コード 01h(1 軸側)/81h(2 軸側)が返信されます。

7.9 0 点復帰動作 動作完了時にカウンタ値が 0 になるように位置決めを行います。動作方向は自動的に設定される

ため、PmcStartMotion 関数での方向指定は無効となります。

0 点復帰動作完了時には制御状態コード 01h(1 軸側)/81h(2 軸側)が返信されます。

7.10 動作再開(残りパルス出力) PTP 動作を途中停止した場合、本命令により残りパルスの出力を行います(PTP 動作以外では、

正常な動作は起動できません)。

動作再開(残りパルス数出力)完了時には制御状態コード 01h(1 軸側)/81h(2 軸側)が返信

されます。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

152

7.11 CP 動作 各段毎に高速側速度,加減速時間,出力パルス数を設定(PmcSetMotionCp 関数にて設定)し、指

定パルス出力後、次段の動作に移行します(この間、パルス出力は停止しません)。設定した最終

段のパルス出力後、モータ(パルス出力)は即時停止します。

また、最終段のパルス出力完了後、CP 動作完了となり制御状態コード 02h(1 軸側)/82h(2 軸

側)が返信されます。

例)

1 段目 移動パルス数:1000,高速側速度:400pps,2 段目 移動パルス数:2000,高速側速度:600pps,

3 段目 移動パルス数:4000,高速側速度:800pps の 3 段の CP 動作を起動した場合

1. 指定された方向に動作を起動します(移動パルス数:1000,高速側速度:400)。

2. 指定された方向に動作を起動します(移動パルス数:1000,高速側速度:400)。

3. そこから 2000 パルス出力後(合計 3000 パルス出力後)、高速側速度が 800pps に変更さ

れます。

4. そこから 4000 パルス出力後(合計 7000 パルス出力後)、動作(パルス出力)は即時停止

します。

5. 停止後、制御状態コード 02h(1 軸側)/82h(2 軸側)が返信されます。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

153

7.12 予約動作 予め複数の動作パラメータを指定(PmcSetMotionEx 関数により設定)しておき、1 回の起動命令

(PmcStartMotion関数にて予約動作を指定)により予約されたすべての動作を順番に実行します。

また、予約したすべての動作を繰り返し起動することも可能です。

予約したすべての動作を、指定された回数の実行が完了すると、予約動作完了となり制御状態コ

ード 0Bh(1 軸側)/8Bh(2 軸側)が返信されます。

なお、予約動作実行中に PmcStopMotion 関数により停止 または 制御信号入力により停止となっ

た場合には、次段の動作は起動されません。指定パルス出力完了(PTP 動作完了) または 原点

復帰完了時でなければ、次段の動作を起動することはできません。

また、PmcSetMotionEx 関数により設定する動作予約時にには、CP 動作,動作再開(残りパルス

数出力),動作予約の各パラメータは設定することはできません。

例)

1 段目 PTP 動作(+方向,移動パルス数:1000),2 段目 タイマ動作(1000ms),3 段目 原点復

帰動作(-方向)の 3 段,くり返し回数 3 回の予約動作を起動した場合

1. 指定された方向に PTP 動作を起動します(+方向,移動パルス数:1000)。

2. PTP 動作によるパルス出力完了後、タイマ動作が起動します。

3. タイマ動作による指定時間経過後、原点復帰動作が起動します。

4. 原点復帰動作完了まで動作します。

5. 1.~4.の動作を 3 回繰り返します、

6. 1.~5.完了後、制御状態コード 0Bh(1 軸側)/8Bh(2 軸側)が返信されます。

7.13 速度設定方法 PmcSetMaxSpeed,PmcSetMotion 等の各関数で指定する速度値は、下位 4bit を小数点以下 1 桁

とした BCD 形式にて指定します。

例)

0.1pps → 1h

1pps → 10

20pps → 200h

100pps → 1000h

1000pps → 10000h

32767pps → 327670h

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

154

7.14 速度設定範囲 PmcSetMotion,PmcChangeSpeed 等の各関数で指定可能な速度範囲は、PmcSetMaxSpeed 関数によ

る最高速度制限値の設定に依存し、

[最高速度制限値/32767]~ 最高速度制限値

となります。

速度設定範囲は最高速度制限値により以上のように決定されますが、実際に出力可能な速度値は、

コントローラの分解能により、最高速度制限値の 1/32767 毎の値になります。このため、最高速

度制限値を 3276.7pps と指定(PmcSetMaxSpeed 関数にて 32767h を指定)した場合には 0.1pps

毎での設定が可能となりますが、327670pps と指定(PmcSetMaxSpeed 関数にて 3276700h を指定)

した場合には 10pps 毎の指定になります。

また、実際に設定可能な低速側速度,高速側速度の各設定値は、

[最高速度制限値/32767]≦ 低速側速度 < 高速側速度 ≦ 最高速度制限値

となりますが、低速側速度,高速側速度は

低速側速度 + [最高速度制限値/32767]≦ 高速側速度

となっている必要があります。

なお、10pps 毎の設定時に 15pps 等の 10pps の倍数になっていない速度値を設定した場合には、

設定値は 10pps の倍数に丸められます(15pps は 10pps に丸められます)。その他の設定値でも

同様となります。

また、PmcSetMaxSpeed 関数では、コントローラの速度範囲の関係から 1Mpps(10000000h)以上

の最高速度制限値を設定することも可能ですが、実際に PmcSetMotion,PmcSetMotionCp,

PmcSetMotionEx 関数にて設定可能な速度値は、デバイス(PCI-7206)の仕様上 1Mpps 以下とな

ります。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

155

第8章 FAQ

Q1) PmcStartMotion 関数を実行しても、モータが起動されない。

A1) PmcStartMotion 関数実行後モータが起動されない場合には、以下のことが考えられます。以

下を、ご確認ください。 ・ PmcStartMotion 関数が異常終了している。

・ インタロック機能が作動している(I/O モジュール上の LED が点灯している,

PmcOffInterLock 関数を実行していない)。

・ 何らかの制御信号が入力されている。

・ 何らかの制御状態コードが返信されている。

・ 外部電源が接続されていない。

Q2) 関数実行時に PMC_ERROR_WRITE_FAILED が返される。

A2) 関数から PMC_ERROR_WRITE_FAILED が返される場合には、PCI-7206 に搭載されている CPU

が書き込み許可状態になっていないことを表します。 PmcHandShake 関数により取得したハ

ンドシェークデータにより書き込み許可状態となっていることを確認後、関数を実行してく

ださい。

Q3) 関数実行時に PMC_ERROR_READ_FAILED が返される。

A3) 関数から PMC_ERROR_READ_FAILED が返される場合には、関数実行中に PCI-7206 に搭載され

ている CPU から制御状態コードが返信され、データを読み出すことができない状態になって

いることを表します。 PmcHandShake 関数により取得したハンドシェークデータにより制御

状態コード返信状態を確認後、PmcGetStatus 関数により制御状態コードを確認してくださ

い。

Q4) 関数実行時に PMC_ERROR_RESET が返される。

A4) 関数から PMC_ERROR_RESET が返される場合には、PCI-7206 に搭載されている CPU が何らか

の要因(インタロック信号入力,ソフトウェアリセット,ウォッチドッグタイマ)によりリ

セットされていることを表します。 PmcHandShake 関数により取得したハンドシェークデー

タによりリセット要因返信状態を確認後、PmcGetStatus 関数によりリセット要因を確認して

ください。

Q5) PmcSetMotion 関数で指定したパラメータ(速度値,加減速時間)にならない。

A5) PmcSetMaxSpeed 関数による最高速度制限値設定、および PCI-7206 に搭載されているコント

ローラ(PCL3013)の分解能により、設定値通りの動作にならない場合があります。実際の動

作に使用しているパラメータは PmcGetMotion 関数にて確認してください。

Q6) ALM 信号入力について

A6) ALM 信号入力は、デバイスに搭載されている CPU に対しての汎用割り込み信号となっていま

す。 このため、動作中/停止中に関わらず ALM 信号が入力されるとデバイスに搭載されて

いる CPU に対して割り込みが発生し、 ALM 信号入力の制御状態コード 0Fh(1 軸側)/8Fh

(2 軸側)が返信されます(動作中の場合には、ALM 信号が入力されると動作方向に関わら

ず停止します)。

また、ALM 信号が入力された場合には、動作中/停止中に関わらず停止要因は 0Bh(ALM 信号

入力による停止)となります。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

156

Q7) 同時起動について

A7) PCI-7206 では、複数軸(複数の I/O モジュール)の同時起動が可能です。 PmcStartMotion

関数により起動保留状態とし、PmcStartSync 関数の実行,同時起動信号の入力により同時起

動が行われます。

なお、同時起動には TRIGOUT,TRIGIN 端子の外部接続が必要となります。 接続方法につい

ては、PCI-7206 の USER'S MANUAL をご覧ください。

また、PCI-7206 の TRIGOUT 端子以外の外部回路(外部機器)から TRIGIN 端子に信号を入

力し同時起動を行う場合には、パルス幅が基準動作クロック(19.6608MHz)の 8 周期以上の

ワンショットパルスを入力してください。

Q8) ハンドシェークデータについて

A8) PCI-7206 には I/O モジュール上にファームウェアが搭載されています。

このファームウェアが現在、データ書き込み、読み込みが可能かどうかの情報をハンドシェ-

クデータと言います。

アプリケーションなどから動作に必要な動作パラメータを設定すると、I/O モジュール上の

ファームウェアにデータが渡されます。ファームウェアでは計算を行い、どれだけの速度で

どのくらいのパルス数を出力するかを決めてパルス出力を行います。

アプリケーションからファームウェアにデータを渡す時に、ファームウェアの状態を確認し

ておかないとデータを書きこむことができない場合があります。

また、現在、ファームウェアがどういう動作を終えたのかという情報を確認しないと次の動

作設定ができない場合があります。このどういう動作を終えたかという情報をステータスデ

ータといいます。

Q9) ORG1,ORG2 端子がありますが、原点検出を行う際、どのような動作をするのか?

A9) ORG1,2 は、以下のように動作します。

ORG1:入力後、即停止する。

ORG2:入力後、低速側速度に減速する。

Q10) ダイレクト制御の際も制御信号は有効か?

A10) EL は有効です。(方向は関係なく、+El,-EL のどちらかが入力されると、出力は 0になります)

SD,ORG,ALM,Z は無効です。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

157

第9章 重要な情報

保証の内容と制限

弊社は本ドキュメントに含まれるソースプログラムの実行が中断しないこと、またはその実行に

誤りが無いことを保証していません。

本製品の品質や使用に起因する、性能に起因するいかなるリスクも使用者が負うものとします。

弊社はドキュメント内の情報の正確さに万全を期しています。万一、誤記または誤植などがあっ

た場合、弊社は予告無く改訂する場合があります。ドキュメントまたはドキュメント内の情報に

起因するいかなる損害に対しても弊社は責任を負いません。

ドキュメント内の図や表は説明のためであり、ユーザ個別の応用事例により変化する場合があり

ます。

著作権、知的所有権

弊社は本製品に含まれるおよび本製品に対する権利や知的所有権を保持しています。

本製品はコンピュータ ソフトウェア、映像/音声(例えば図、文章、写真など)を含んでいます。

医療機器/器具への適用における注意

弊社の製品は人命に関わるような状況下で使用される機器に用いられる事を目的として設計、製

造された物では有りません。

弊社の製品は人体の検査などに使用するに適する信頼性を確保する事を意図された部品や検査機

器と共に設計された物では有りません。

医療機器、治療器具などの本製品の適用により、製品の故障、ユーザ、設計者の過失などにより、

損傷/損害を引き起こす場合が有ります。

複製の禁止

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

できません。

責任の制限

弊社は、弊社または再販売者の予見の有無にかかわらず発生したいかなる特別損害、偶発的損害、

間接的な損害、重大な損害について、責任を負いません。

本製品(ハードウェア,ソフトウェア)のシステム組み込み、使用、ならびに本製品から得られる

結果に関する一切のリスクについては、本製品の使用者に帰属するものとします。

本製品に含まれるバグ、あるいは本製品の供給(納期遅延)、性能もしくは使用に起因する付帯的

損害もしくは間接的損害に対して、弊社に全面的に責がある場合でも、弊社はその製品に対する

改良(正常に動作する)、代品交換までとし、金銭面での賠償の責任は負わないものとしますので、

予めご了承ください。

本製品(ソフトウェアを含む)は、日本国内仕様です。本製品を日本国外で使用された場合、弊

社は一切責任を負いかねます。また、弊社は本製品に関し、海外での保守サービスおよび技術サ

ポート等は行っておりません。

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

GPC-7206 Help for Windows

© 1999, 2006 Interface Corporation. All rights reserved.

158

商標/登録商標

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