visual basicによるモーション コントローラ入門書 interface corporation - 2 - 目 次...

118
www.interface.co.jp チュートリアル Visual Basicによるモーション コントローラ入門書

Upload: truongthien

Post on 10-Mar-2019

222 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

www.interface.co.jp

チュートリアル

Visual Basicによるモーション

コントローラ入門書

Page 2: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

www.interface.co.jp

商標/登録商標 本ドキュメントに掲載されている会社名,製品名は、それぞれ各社の商標または登録商標です。 保障の内容と制限 弊社はドキュメント内の情報の正確さに万全を期しています。万一、誤記または誤植等があった

場合、弊社は予告なく改訂する場合があります。ドキュメントまたはドキュメント内の情報に起

因するいかなる損害に対しても弊社は責任を負いません。 製品に含まれるバグ、あるいは製品の供給(納期遅延),性能、もしくは使用に起因する付帯的損害もしくは間接的損害に対して、弊社に全面的に責がある場合でも、弊社はその製品に対する改良

(正常に動作する)、代品交換までとし、金銭面での賠償の責任は一切負わないものとしますので、予めご了承ください。 ドキュメント内の図や表は説明のためであり、ユーザ個別の応用事例により変化する場合があり

ます。 著作権,知的所有権 弊社は本製品に含まれるおよび本製品に対する権利や知的所有権を保持しています。 本製品はコンピュータ ソフトウェア(プログラム),図,文章,写真等を含んでいます。 複製の禁止 弊社の許可なく、本製品(ドキュメント含む)の全て、または一部に関わらず、複製,改変等を行うことはできません。 責任の制限 弊社は、弊社または再販売者の予見の有無に関わらず、発生したいかなる特別損害,偶発的損害,間接的な損害,重大な損害について、責任を負いません。 補償の内容 本ドキュメントで使用している弊社製品の補償については、各製品のマニュアルを参照してくだ

さい。

本書の内容の一部または全部を、無断で転載することを禁止します。 本書の内容は、将来予告なく変更することがありますので、予めご了承ください。 © 2000, 2007 Interface Corporation. All rights reserved.

Page 3: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

- 1 - Interface Corporation

改訂履歴

Ver. 年 月 改 訂 内 容 1.1 2007年7月 ●製品紹介削除。

●対象型式追加。 ●ソフトウェア Windows Vista, XP Embedded, Server 2003, XP,

2000対応。 ●インストール説明更新。 ●リファレンス更新。 ●技術資料一覧追加。 ●奥付き追加。 ●フォーマット変更。

1.0 2000年8月 新規作成

本チュートリアルをご使用の際は、必ず各製品型式の最新のドキュメント(USER'S MANUAL,Help)を併せて参照してください。また、最新のドライバソフトウェアをご使用ください。 USER'S MANUAL,ドライバソフトウェアは弊社Web site(www.interface.co.jp)からダウンロードできます。(Helpはドライバソフトウェアに含まれています)

Page 4: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

Interface Corporation - 2 -

目 次

第 1章 概要 6

1.1 ステッピングモータの特徴......................................................................................................... 7 1.2 ステッピングモータの構造......................................................................................................... 7 1.3 分配回路(モータ・ドライバ) ...................................................................................................... 8

第 2章 ステッピング・モータコントローラ製品のインストール 9

2.1 コンピュータへの設置方法......................................................................................................... 9

第 3章 ソフトウェアのインストール 10

3.1 Windows用.................................................................................................................................... 10 3.1.1 デバイスドライバのインストール................................................................................ 11 ■Windows Vistaをご使用の場合 ....................................................................................... 11 ■Windows XP Embedded, Windows XP, Windows Server 2003をご使用の場合.......... 14 ■Windows 2000をご使用の場合 ....................................................................................... 16

第 4章 Visual Basicによるステッピング・モータコントローラ制御 18

4.1 ピンアサインメント................................................................................................................... 19 4.2 DLLプロシージャ呼び出しによるプログラミング(概要).................................................... 22 4.3 ステッピング・モータ製品制御概略 ...................................................................................... 23

第 5章 チュートリアル 24

5.1 モータ制御 ................................................................................................................................... 25 Step1.基本フォーム作成 .............................................................................................................. 25 Step2.DLLプロシージャ宣言 ...................................................................................................... 27 Step3.初期化処理と終了処理 ...................................................................................................... 33 Step4.動作モード設定とモータ制御.......................................................................................... 35

5.2 カウンタ値取得 ........................................................................................................................... 39 Step1.カウント .............................................................................................................................. 39

5.3 割り込み処理 ............................................................................................................................... 41 Step1.コールバック処理(コールバックイベント)................................................................... 41

第 6章 FbiMtr.DLLリファレンス 45

MtrOpen.......................................................................................................................................... 45 MtrClose ......................................................................................................................................... 45 MtrGetDeviceInfo .......................................................................................................................... 46 MtrSetBaseClock............................................................................................................................ 46 MtrGetBaseClock ........................................................................................................................... 47 MtrSetPulseOut .............................................................................................................................. 48 MtrGetPulseOut.............................................................................................................................. 51 MtrSetLimitConfig ......................................................................................................................... 52 MtrGetLimitConfig ........................................................................................................................ 55

Page 5: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

- 3 - Interface Corporation

MtrSetCounterConfig ..................................................................................................................... 58 MtrGetCounterConfig .................................................................................................................... 59 MtrSetComparator .......................................................................................................................... 60 MtrGetComparator ......................................................................................................................... 61 MtrSetCLR ..................................................................................................................................... 62 MtrGetCLR(※ PCI-7209のみ有効) ........................................................................................... 63 MtrSetAccCurve............................................................................................................................. 64 MtrGetAccCurve ............................................................................................................................ 65 MtrSetMotion ................................................................................................................................. 65 MtrGetMotion................................................................................................................................. 66 MtrSetMotionLine(※ PCI-7204では使用できません。) ........................................................ 67 MtrGetMotionLine ......................................................................................................................... 68 MtrStartMotion............................................................................................................................... 68 MtrStopMotion ............................................................................................................................... 69 MtrRestart ....................................................................................................................................... 70 MtrSetSync ..................................................................................................................................... 70 MtrGetSync..................................................................................................................................... 71 MtrStartSync................................................................................................................................... 71 MtrSingleStep................................................................................................................................. 71 MtrChangeSpeed ............................................................................................................................ 72 MtrReadSpeed ................................................................................................................................ 73 MtrReadCounter ............................................................................................................................. 74 MtrWriteCounter ............................................................................................................................ 74 MtrClearCounter............................................................................................................................. 75 MtrGetStatus................................................................................................................................... 75 MtrOutputDO ................................................................................................................................. 78 MtrInputDI...................................................................................................................................... 78 MtrOutputDO1 ............................................................................................................................... 79 MtrOutputDO2 ............................................................................................................................... 80 MtrOutputDO3 ............................................................................................................................... 80 MtrOutputDO4 ............................................................................................................................... 81 MtrOutputCLR ............................................................................................................................... 81 MtrOutputSON ............................................................................................................................... 82 MtrSetEvent.................................................................................................................................... 82 MtrGetEvent ................................................................................................................................... 83 MtrSetEventMask........................................................................................................................... 83 MtrGetEventMask .......................................................................................................................... 83 MtrReset ......................................................................................................................................... 84 MtrOffInterLock............................................................................................................................. 84 MtrSetMotionEx............................................................................................................................. 85 MtrSetMotionLineEx ..................................................................................................................... 85 MtrChangeSpeedEx........................................................................................................................ 86 MtrReadSpeedEx............................................................................................................................ 87 MtrSetSampleCounter .................................................................................................................... 88 MtrStartSampleCounter.................................................................................................................. 88 MtrStopSampleCounter.................................................................................................................. 88

Page 6: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

Interface Corporation - 4 -

MtrGetSampleStatus....................................................................................................................... 89 MtrGetSampleData......................................................................................................................... 89 MtrGetMotionEx ............................................................................................................................ 90 MtrGetMotionLineEx..................................................................................................................... 90 MtrGetSampleCounter ................................................................................................................... 91 戻り値一覧 .................................................................................................................................... 92

6.1 型式別DLL関数サポート一覧 ................................................................................................... 93 6.2 構造体一覧 ................................................................................................................................... 95

MTRDEVICE構造体 ..................................................................................................................... 95 MTRORIGINALACC構造体 ........................................................................................................ 95 MTRMOTION構造体.................................................................................................................... 95 MTRMOTIONEX構造体 .............................................................................................................. 99 MTRMOTIONLINE構造体 ........................................................................................................ 102 MTRMOTIONLINEEX構造体 ................................................................................................... 104 MTREVENTTABLE構造体 ....................................................................................................... 106 MTREVENTREQ構造体 ............................................................................................................ 107 MTRSAMPLEREQ構造体.......................................................................................................... 108

6.3 Visual Basic用定数一覧 ............................................................................................................ 110

技術資料紹介 112

Page 7: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

- 5 - Interface Corporation

はじめに

平素は格別のご高配を賜り、厚く御礼申し上げます。本冊子は、初めて弊社ステッピング・モー

タコントローラ製品を利用し、Visual Basic 5.0(SP3)にて制御プログラムの作成を行われる方を対象に、製品の導入からプログラム作成までに関し説明したものです。プログラム初心者の方が弊

社製品をご利用頂き、またVisual Basic 5.0(SP3)にてプログラムの開発を行われる際の手助けになればと考えております。 記述する内容に関しましては、基本的なことにとどまっております。 また、弊社Web site(www.interface.co.jp)ではFAQ, 製品マニュアル, および本チュートリアル記載のサンプルプログラムのソース(BPC-0809)の公開を行っておりますので、こちらも併せてご覧頂けますと、より一層ご理解を深めて頂けるものと思います。

注意事項

本冊子では、使用する環境をWindows Vista/XP/XP Embedded/Server 2003/2000+Visual Basic 5.0(SP3)または6.0を想定し、記載しております。 Windows NT/Me/98/95をご利用の場合、インタフェースモジュールのインストール方法が本冊子に記載した内容とは異なりますのでご注意ください。こちらに関しましては、弊社製品マニュアル

をご確認ください。 対応OSはインタフェースモジュール型式によって異なりますので、対応ソフトウェア(GPC-7200)のReadmeもしくはHelpでご確認ください。

対象環境 本チュートリアルは以下の制約事項があります。 対象型式 (PCI)

PCI-7204 PCI-7208 PCI-7209

対象型式 (CPZ)

CPZ-7204

対象型式 (CTP)

CTP-7204

対象型式 (CSI)

CSI-742020

対象型式 (PEX)

PEX-742020

対象型式 (LPC)

LPC-742020

対象ユーザ 制御用電子機器および、コンピュータ等に関して基本的な知識を有している方。

※ 本冊子は上記の弊社製品型式のみに対応しています。 製品の詳細は弊社Web siteを参照してください。

Page 8: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

Interface Corporation - 6 -

第1章 概要

私たちの身の回りでは、その用途により数多くのモータが使われています。 電車やエレベータで使われている大型のパワー・モータから、カメラのズームレンズを動かすた

めに使われるマイクロモータなどいろいろなものがあります。 そのような用途の中で、高精度な位置決めに使用されているのがステッピング・モータです。ス

テッピング・モータは、パルス信号が入力されるごとに一定角度ずつ回転するモータで、「プリ

ンタ」や工作機械における「X-Yテーブル」等に使用されています。

XY

ステッピングモータ

X-Yテーブル

ステッピングモータ

プリンタ

印字ヘッドプラテン

以下に、ステッピング・モータの代表的な用途を記載します。 (例) FDD, HDD, プリンタ, 記録計, プロッタ, ファクシミリ, カメラ, コピー機, タコメータ, パワーシート(自動車等), エアコン, 冷蔵庫, ミシン, 両替機(紙幣挿入部), カードリーダ, パチンコ

Page 9: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

- 7 - Interface Corporation

1.1 ステッピングモータの特徴

ステッピング・モータには以下のような特徴があります。 ・検出器なしで位置制御が可能(制御のためのフィードバック信号を必要としない) ・システム構成が簡素で高い信頼性を確保できる ・ブレーキを使用せず停止位置が保持できる ・デジタル制御系との整合性がよい ・位置決め誤差が累積しない

注意!

ステッピング・モータはフィードフォワードなので本当に位置決めができているかといったことを

検知する必要はありません。しかし、弊社ステッピング・モータコントローラ製品にはエンコーダ

信号入力機能を内蔵している製品があり、これらの製品を使うと、サーボ・モータコントローラ

としても利用できます。

1.2 ステッピングモータの構造

下図はステッピング・モータの内部構造を示した図です。

シャフト

軸受ブラケット

ベアリング

ロータ・コア

コイル

フレーム

ステータ・コア

VR型ステッピング・モータ

Page 10: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

Interface Corporation - 8 -

ステッピング・モータは構造や動作原理により次の3つに分けることができます。下図はVR型の内部構造です。

VR型(Variable Reluctance type) 巻き線電流のみで励磁され、回転子(ロータ・コア)が突極性の電磁材料でできたもの。回転子が軟鋼でできており、これを固定子巻き線(コイル)で作られる磁力によって引きつけ回転させる。

PM型(Permanent Magnet type) 永久磁石と巻き線電流で励磁され、永久磁石を固定子巻き線でつくられる磁力によって引きつけ回転させる。

HB型(Hybrid type) VR型, PM型を組み合わせた構造をもつもの。

コイル

ステータ・コア

シャフト

ロータ・コア

N

S

シャフト コイル

永久磁石

ステータ・コア

VR型 PM型

1.3 分配回路(モータ・ドライバ)

ステッピング・モータはモータに電源を接続しただけでは動作しません。ステッピング・モータ

を動作させるには、モータ内のコイルに対して流す電流のシーケンス(順序)を決定する「分配回路(モータ・ドライバ)」を必要とします。 弊社ステッピング・モータ コントロールI/Oモジュールも直接ステッピング・モータに信号を送るのではなく、この分配回路(モータ・ドライバ)に信号を送り、モータの制御を行います。

ステッピング・モータ モータ・ドライバ

Page 11: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

- 9 - Interface Corporation

第2章 ステッピング・モータコントローラ製品のインストール

作成するアプリケーションからステッピング・モータコントローラ制御を行う場合、当然のこと

ながらアプリケーションを実行するコンピュータにステッピング・モータコントローラ製品が組

み込まれていなければなりません。 ここではWindowsVisual Basic ver.5.0(SP3)またはVer.6.0環境における、弊社ステッピング・モータコントローラ製品のインストール方法を記載します。Windows NT/Me/98/95ではインストール方法がここに記載する内容とは異なります。こちらに関しては、製品マニュアルまたはオンラインド

キュメントをご確認ください。

2.1 コンピュータへの設置方法

※ 写真は実物と異なる場合があります。

①コンピュータ本体の電源が“OFF”であることを確認し、電源ケーブルをACコンセントから外します。その後、外装カバー, スロットカバーを外します。

②拡張用スロットへインタフェースモジュールを差し込みます。

注意!

製品は正しい向きに実装してください。間違った向きに実装した場合、コンピュータ, インタ フェースモジュールを破損する恐れがあります。

③パネルをコンピュータ本体とビス留めしてください。

④本体へ外装カバーを元通り取り付け、電源ケーブルをACコンセントに接続します。その後、コンピュータを起動します。

以上でインタフェースモジュールの設置は完了です。次にドライバのインストールを行います。

基板の左右の端に力を入れ、カツンとショックがあるまで押し込む。

インタフェースモジュール

コンピュータ

PCIコネクタ

金メッキ端子がコネクタに隠れていることを確認する。

ビス留め

Page 12: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

Interface Corporation - 10 -

第3章 ソフトウェアのインストール

本製品を使用するためには、デバイスドライバをインストールする必要があります。

お知らせ

デバイスドライバは、弊社Web siteよりダウンロード(無料)できます。 ダウンロードするためには、ユーザID登録が必要になります。

DLL関数, サンプルプログラム, ユーティリティの使用方法等につきましては、ソフトウェア付

属のHelpを参照してください。

3.1 Windows用

弊社ソフトウェアは、次のように構成されています。 • ドライバディスク デバイスドライバが入っています。 ダウンロード方法 >> 弊社Web siteよりご使用のOSに対応しているGPC-7200のDriver Diskをダウンロードします。 >> ダウンロードしたプログラムを実行すると、フォルダが作成されます。

※ 詳細は、『11ページ 3.1.1 デバイスドライバのインストール』を参照してください。

• ユーティリティディスク Readme, Help, サンプルプログラム, ユーティリティ等が入っています。 ダウンロード方法 >> 弊社Web siteよりGPC-7200のUtility Diskをダウンロードします。 >> ダウンロードしたプログラムを実行すると、「SETUP」フォルダが作成されます。 >>「SETUP」フォルダ内のSETUP.EXEを実行してください。プログラムが起動しインストール

が開始されます。

Page 13: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

- 11 - Interface Corporation

3.1.1 デバイスドライバのインストール

■Windows Vistaをご使用の場合

Administratorsのグループに所属しているユーザが、インストールを行ってください。 ※ 「続行するにはあなたの許可が必要です」と警告が表示されることがあります。その場合、 「続行」をクリックしてください。

①Windows Vistaが起動すると、「新しいハードウェアが見つかりました」が表示されます。

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

③「オンラインで検索しません」をクリックします。

Page 14: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

Interface Corporation - 12 -

④「ディスクはありません。他の方法を試します」をクリックします。

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

⑥ドライバ保存先の「¥Win2000」フォルダを指定し、「次へ」をクリックします。

Page 15: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

- 13 - Interface Corporation

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

※ 「ドライバソフトウェアの発行元を検証できません」と表示された場合、「このドライバ ソフトウェアをインストールします」をクリックします。

⑧インストールが完了した旨のダイアログボックスが表示されるので、「閉じる」ボタンをクリックします。

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

Page 16: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

Interface Corporation - 14 -

■Windows XP Embedded, Windows XP, Windows Server 2003をご使用の場合

Administratorsのグループに所属しているユーザが、インストールを行ってください。 ※ Windows XP Embeddedは、Windows XPと同様の手順で、ドライバのインストールができます。

(ただし、OSイメージにデバイスの検出に必要なコンポーネントが含まれている必要があります。)

①Windows XP Embedded, Windows XP, Windows Server 2003が起動すると、「新しいハードウェアの検出ウィザード」が表示されます。

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

③「次の場所で最適のドライバを検索する」を選択し、「次の場所を含める」にチェックをつけ、

ドライバ保存先の「¥Win2000」フォルダを指定し、「次へ」をクリックします。

ドライバ保存先の「¥Win2000」フォルダを指定します。

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

⑤インストールが完了した旨のダイアログボックスが表示されるので、「完了」ボタンをクリッ

クします。

Page 17: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

- 15 - Interface Corporation

以上で、Windows XP Embedded, Windows XP, Windows Server 2003用のデバイスドライバの インストールは完了です。デバイスドライバのインストール完了後以降は、システム起動時に前

頁②のように「新しいハードウェアの検索ウィザード」が起動することはありません。デバイス

ドライバのインストールが完了したら、ユーティリティディスクのインストールを行ってくださ

い。

• Windows XP Embedded 用ハードウェア情報ファイルのインポートをする場合 ・ドライバダウンロード方法 ①弊社Web siteよりGPC-7200のDriver Disk [Windows Vista, XPe, XP, 2003, 2000]をダウンロードします。

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

・ドライバインストール方法 ①Windows XP Embedded 開発環境の Component Database Manager を起動します。

②弊社製品のハードウェア情報ファイルをインポートします。作成した「Win2000」フォルダ内の拡張子がSLDのファイルを、画面の指示に従ってインポートしてください。

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

Page 18: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

Interface Corporation - 16 -

■Windows 2000をご使用の場合

Administratorsのグループに所属しているユーザが、インストールを行ってください。 ①Windows 2000が起動すると、「新しいハードウェアの検出ウィザード」が表示されるので、「次へ」ボタンをクリックします。

②「デバイスドライバに最適なドライバを検索する(推奨)」を選択し、「次へ」ボタンをクリックします。

③「検索場所のオプション」で「場所を指定」を選択し、「次へ」ボタンをクリックします。

④「参照」ボタンをクリックし、「製造元のファイルのコピー元」にドライバ保存先の「¥Win2000」フォルダを指定します。その後、「OK」ボタンをクリックします。

⑤デバイスドライバが見つかった旨のダイアログボックスが表示されるので、「次へ」ボタンを

クリックします。 ⑥ファイルのコピーが始まります。 ⑦インストールが完了した旨のダイアログボックスが表示されるので、「完了」ボタンをクリッ

クします。

以上で、Windows 2000用のデバイスドライバのインストールは完了です。 デバイスドライバのインストール完了後以降は、システム起動時に②のように「新しいハードウ

ェアの検索ウィザード」が起動することはありません。デバイスドライバのインストールが完了

したら、ユーティリティディスクのインストールを行ってください。

Page 19: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

- 17 - Interface Corporation

インストールを完了したら、リソース(I/Oアドレス, 割り込みレベル)の設定, 競合の有無の確認を行ってください。 ドライバのインストールが正常に行われると、システムプロパティのデバイスマネージャに表示

されます。

ここにインタフェースモジュール

が追加されます。

Page 20: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

Interface Corporation - 18 -

第4章 Visual Basicによるステッピング・モータコントローラ制御

Visual Basicより、ステッピング・モータコントローラ製品を制御するには、DLLを利用します。Visual Basicでは直接I/Oやメモリにアクセスすることができません。従って、ステッピング・モータコントローラ製品に対して直接的に信号を送ることができません。そこで、製品に対して直接

的に信号を送るプログラム(DLL)から必要な手続き(関数)を呼び出し、このDLLを介してボートの制御を行います。

ステッピング・モータ

コントローラ製品

仮想デバイスドライバ(CP72xx.VxD)

Win32 API

ダイナミックリンクライブラリ(FBIMTR.DLL)

VMM

Visual Basicアプリケーション

出力

Page 21: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

- 19 - Interface Corporation

4.1 ピンアサインメント

ステッピング・モータコントローラ製品からモータ・ドライバへの制御信号の出力は製品のコネ

クタ部分より行われますが、使用する製品型式によって、各ピンに割り当てられた役割が異なり

ます。配線時には、これらピンアサインメントをよく確認の上、配線してください。 以下、弊社PCI-7204のピンアサインメントを一例として記載します。

注意!

※ [ ]内の数字は本多通信工業の刻印番号です。本多通信工業の刻印番号と本製品のピ

ン番号は一致していませんのでご注意ください。

+COM(14番ピン,15番ピン)は使用禁止です。

Page 22: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

Interface Corporation - 20 -

969594939291908988878685848382818079787776757473727170696867666564636261605958575655545352515049

NCNCNCNCNCNC

2DO42DO32DO22DO1

NCNCNCNC

2DI42DI32DI22DI1

-COM2-COM2

NCNCNCNC

TRIGIN2TRIGOUT2

NCDGND

NCNC

2DIRNCNC

2HOLD2ALM

NC2-SD2-EL

2OUTNCNCNCNC

2ORG2+SD2+EL

-COM2-COM2

NC 484746454443424140393837363534333231302928272625242322212019181716151413121110987654321

NC NC NC NC NC 1DO4 1DO3 1DO2 1DO1 NC NC NC NC 1DI4 1DI3 1DI2 1DI1 -COM1 -COM1 INTLOCK1 RCOM1 NC TRIGOUT TRIGOUT1 TRIGIN1 NC DGND NC NC 1DIR NC NC 1HOLD 1ALM NC 1-SD 1-EL 1OUT NC NC NC NC 1ORG 1+SD 1+EL -COM1 -COM1

CN1:96ピンハーフピッチコネクタ(オス) (PCR-E96LMDC(本多通信工業製)(相当品))

[48]※[96]※

[49]※ [1]※

Page 23: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

- 21 - Interface Corporation

信号説明

信号名 ピン番号 入出力方向 内 容 1+EL 3 入力 1軸側正方向停止リミット入力

1+SD 4 入力 1軸側正方向減速リミット入力

1-EL 11 入力 1軸側負方向停止リミット入力

1-SD 12 入力 1軸側負方向減速リミット入力

1ORG 5 入力 1軸側原点

1OUT 10 出力 1軸側パルス出力

1ALM 14 入力 1軸側アラーム信号 1HOLD 15 出力 1軸側モータホールド信号

1DIR 18 出力 1軸側回転方向出力

1DI1~1DI4 31~34 入力 1軸側汎用入力

1DO1~1DO4 39~42 出力 1軸側汎用出力

TRIGIN1 23 入力 1軸側同時起動トリガ入力

TRIGOUT1 24 出力 TRIGIN1のスルー出力

2+EL 51 入力 2軸側正方向停止リミット入力

2+SD 52 入力 2軸側正方向減速リミット入力

2-EL 59 入力 2軸側負方向停止リミット入力

2-SD 60 入力 2軸側負方向減速リミット入力 2ORG 53 入力 2軸側原点

2OUT 58 出力 2軸側パルス出力

2ALM 62 入力 2軸側アラーム信号

2HOLD 63 出力 2軸側モータホールド信号

2DIR 66 出力 2軸側回転方向出力

2DI1~2DI4 79~82 入力 2軸側汎用入力

2DO1~2DO4 87~90 出力 2軸側汎用出力

TRIGIN2 72 入力 2軸側同時起動トリガ入力

TRIGOUT2 71 出力 TRIGIN2のスルー出力

TRIGOUT 25 出力 同期タイミング信号

INTLOCK1 28 入力 インタロック入力

●COMの対応 入出力信号はそれぞれ対応したCOM及びGNDをご使用ください。

信 号 COM/GND 1+EL, 1+SD, 1-EL, 1-SD 1DIR, 1OUT, 1ALM, 1HOLD

1ORG, 1DI1~1DI4, 1DO1~1DO4 -COM1

2+EL, 2+SD, 2-EL, 2-SD 2DIR, 2OUT, 2ALM, 2HOLD

2ORG, 2DI1~2DI4, 2DO1~2DO4 -COM2

TRIGOUT, TRIGIN1~TRIGIN2 TRIGOUT1~TRIGOUT2

DGND (非絶縁GND)

Page 24: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

Interface Corporation - 22 -

4.2 DLLプロシージャ呼び出しによるプログラミング(概要)

Visual BasicよりDLLプロシージャ呼び出しプログラミングを行うには、弊社ステッピング・モータ制御用ソフトウェア(FBIMTR.DLL)をダイナミックリンクし、使用します。DLLとはダイナミックリンクライブラリ(Dynamic Link Library)の略でアプリケーションの実行時に動的にリンクして利用できるプロシージャのライブラリです。プロシージャとは実行時に1つの単位として処理されるコードの集まりを意味します。 Visual BasicにてDLLプロシージャを利用するには、Declareステートメントを使って プロシージャの位置を指定します。

外部プロシージャ宣言記述例

Declare Function MtrOpen Lib "FbiMtr.DLL" (ByVal lpszName As String, ByVal dwFlags As Long) As Long Declare Function MtrClose Lib "FbiMtr.DLL" (ByVal hDevice As Long) As Long Declare Function MtrSetBaseClock Lib "FbiMtr.DLL" (ByVal hDevice As Long, ByVal dwClock As Long) As Long Declare Function MtrSetPulseOut Lib "FbiMtr.DLL" (ByVal hDevice As Long, ByVal dwMode As Long, ByVal dwConfig As Long) As Long Declare Function MtrSetLimitConfig Lib "FbiMtr.DLL" (ByVal hDevice As Long, ByVal dwMode As Long, ByVal dwConfig As Long) As Long Declare Function MtrSetCounterConfig Lib "FbiMtr.DLL" (ByVal hDevice As Long, ByVal dwMode As Long, ByVal dwConfig As Long) As Long Declare Function MtrSetComparator Lib "FbiMtr.DLL" (ByVal hDevice As Long, ByVal dwMode As Long, ByVal dwConfig As Long) As Long Declare Function MtrSetCLR Lib "FbiMtr.DLL" (ByVal hDevice As Long, ByVal dwMode As Long, ByVal dwConfig As Long) As Long Declare Function MtrGetBaseClock Lib "FbiMtr.DLL" (ByVal hDevice As Long, ByRef lpdwClock As Long) As Long Declare Function MtrGetPulseOut Lib "FbiMtr.DLL" (ByVal hDevice As Long, ByVal dwMode As Long, ByRef lpdwConfig As Long) As Long Declare Function MtrGetLimitConfig Lib "FbiMtr.DLL" (ByVal hDevice As Long, ByVal dwMode As Long, ByRef lpdwConfig As Long) As Long Declare Function MtrGetCounterConfig Lib "FbiMtr.DLL" (ByVal hDevice As Long, ByVal dwMode As Long, ByRef lpdwConfig As Long) As Long Declare Function MtrGetComparator Lib "FbiMtr.DLL" (ByVal hDevice As Long, ByVal dwMode As Long, ByRef lpdwConfig As Long) As Long Declare Function MtrGetAccCurve Lib "FbiMtr.DLL" (ByVal hDevice As Long, ByRef lpdwStageNum As Long, ByRef lpOriginalAcc As MTRORIGINALACC) As Long

プログラム記述例 '製品オープン lpszName = “FBIMC1” hDeviceHandle = MtrOpen( lpszName, MTR_FLAG_NORMAL )

外部 プロシージャ

Page 25: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

- 23 - Interface Corporation

4.3 ステッピング・モータ製品制御概略

ステッピング・モータコントローラ製品の制御を行う場合、基本的に下記の制御シーケンス(順番)で行います。

初期化

各種処理

終了処理

2

1

4

プログラム起動

パルス出力

プログラム終了

各種設定パルス出力, リミット信号 動作パラメータの設定

3

(1)製品の初期化

Visual Basicで作成されたアプリケーションがステッピング・モータコントローラ製品への操作を行う場合、まずアプリケーションは、ステッピング・モータコントローラ製品を利用可能な

状態にする必要があります。 この処理が製品の初期化です。製品の初期化を行うと、プログラムは製品へのアクセスが可能

となります。本処理が行われないと製品へのアクセスは行えません。 (2)各種設定 製品のパルス出力, リミット信号, 動作パラメータの各種設定を行います。

(3)各種処理 モータ・ドライバに制御信号を出力します。

(4)終了 製品の使用終了を行うための手続きです。プログラム終了時に必ず行います。

Page 26: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

Interface Corporation - 24 -

第5章 チュートリアル

ここでは、実際に弊社ステッピング・モータコントローラ製品を用いて、ステッピング・モータ

の制御を行います。本チュートリアルを行うにあたっては、以下が必要となります。 PCI-7204 (PCI-7208,7209)

1枚:ステッピング・モータコントローラ製品

ECO-6620 1本: 96ピンハーフピッチケーブル(2.0m) TNS-9601 1個: 垂直96ピンネジ変換端子台 ステッピング・モータユニット 1個(ステッピング・モータ+モータドライバ)

コンピュータにステッピング・モータコントローラ製品PCI-7204(またはPCI-7208,7209)を実装し、ケーブル(ECO-6620)を用いて製品と96点裸線接続端子台(TNS-9601)を接続してください。次に端子台、モータドライバ、ステッピング・モータ、電源の接続を行ってください。使用するステッ

ピング・モータユニットによっては接続方法が異なる場合がありますが、以下を参考に接続*を行ってください。

1OUT(ピン番号 10)

1DIR(ピン番号 18)

モータ・ドライバとの接続例

TNS-9601

-COM

専用のモータドライバ

外部電源 DC+5V~DC+24V

+ -

+

+-

-

cw

ccw

フォトカプラ入力TTL入力方式

インタロックスイッチ

SW

RCOM1(ピン番号 27)

INTLOCK1(ピン番号 28)

ON

注意!

上図には表示されておりませんが、実際のシステム作成においては、誤動作時の安全確保の

ため、必ずリミットスイッチ入力をステッピング・モータコントローラ製品と外部機器間で接続し

てください。

Page 27: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

- 25 - Interface Corporation

5.1 モータ制御

ここでは、実際にステッピング・モータコントローラ製品からモータ・ドライバに信号を送りモー

タ・ドライバに接続されたステッピング・モータを作動させます。

OUTPUT モータ・ドライバ

ステッピング・モータ

端子台

Step1.基本フォーム作成

ここでは、これから作成するプログラムの画面作成を行います。 1. Visual Basicを起動し、新しい標準EXEプロジェクトを作成します。 ・「新規作成」タブより「標準EXE」を選択した後「開く」ボタンをクリックします。

標準EXEを選択します

2. 既定のフォームのオブジェクト名を“frmMortorTest”に変更し、フォームのCaptionプロパティ “モータテストプログラム”に変更します。

Page 28: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

Interface Corporation - 26 -

・画面上にフォームが1つ表示されているので、そのフォームを選択し、プロパティウィンドウに値を設定します。(オブジェクト名)を“frmMotorTest”にCaption を“モータテストプログラム”にそれぞれ変更します。

オブジェクト名を変更します

Captionを変更します

3. プロジェクトに標準モジュールを追加します。

標準モジュールを追加します

ここまでで、基本フォームの作成は完了です。

Page 29: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

- 27 - Interface Corporation

Step2.DLLプロシージャ宣言

DLLプロシージャを利用するには、Declareステートメントを使ってプロシージャの位置を指定し、プロシージャの呼び出しに使う引数の識別を行わなければなりません。 DLLとはダイナミックリンクライブラリ(Dynamic Link Library)の略でアプリケーションの実行時に動的にリンクして利用できるプロシージャのライブラリです。そもそも、Visual Basicでは直接I/Oやメモリにアクセスすることができません。言い換えれば、ステッピング・ モータコントローラ製品に対して直接的に信号を送ることができません。そこで、製品に対して

直接的に信号を送るプログラム(DLL)から必要な手続き(プロシージャ)を呼び出し、このDLLを介して製品の制御を行います。 ここで一度宣言したDLLプロシージャは、Visual Basicのプロシージャと同じようにコードで呼び出すことが可能となります。

1. 標準モジュールに下記Listを追加します。

(標準モジュールのプロシージャ宣言のコード) ' Open Public Const MTR_FLAG_NORMAL = 0 ' 同期制御 Public Const MTR_FLAG_OVERLAPPED = 1 ' 非同期制御 ' Set/GetBaseClock Public Const MTR_CLOCK_1M = 0 ' 1MHz Public Const MTR_CLOCK_1_4M = 1 ' 1/4MHz Public Const MTR_CLOCK_1_16M = 2 ' 1/16MHz ' Set/GetPulseOut Public Const MTR_METHOD = 0 ' パルス出力設定 Public Const MTR_IDLING = 1 ' アイドリング設定 Public Const MTR_0P5PULSE = 1 ' 0.5パルス Public Const MTR_1P5PULSE = 3 ' 1.5パルス Public Const MTR_WIDTH = 2 ' パルス幅設定 Public Const MTR_FINISH_FLAG = 3 ' 動作完了フラグ設定 Public Const MTR_PULSE_OUT = 0 ' パルス出力完了 Public Const MTR_INP = 1 ' INP信号入力 ' Set/GetLimitConfig Public Const MTR_MASK = 0 ' マスク設定 Public Const MTR_LOGIC = 1 ' 論理設定 Public Const MTR_SD_FUNC = 2 ' SD動作設定 Public Const MTR_CHANGE_SD_SPEED = 0 ' SD速度変更 Public Const MTR_DEC_STOP_SIGNAL = 1 ' 減速停止入力 Public Const MTR_SD_ACTIVE = 3 ' SD信号レベル Public Const MTR_SIGNAL_LEVEL = 0 ' レベル入力 Public Const MTR_SIGNAL_EDGE = 1 ' エッジ入力 ' Set/GetCounterConfig Public Const MTR_ENCODER_MODE = 0 ' エンコーダモード設定 Public Const MTR_NOT_COUNT = 0 ' カウントしない Public Const MTR_SINGLE = 1 ' 1逓倍 Public Const MTR_DOUBLE = 2 ' 2逓倍 Public Const MTR_QUAD = 3 ' 4逓倍 Public Const MTR_UP_DOWN = 4 ' アップダウンカウント Public Const MTR_ENCODER_CLEAR = 1 ' エンコーダクリア条件 Public Const MTR_NOT_CLEAR = &H0 ' クリアしない Public Const MTR_STOPPED_BY_ORG = &H1 ' ORG信号停止時 Public Const MTR_STOPPED_BY_ORG_Z = &H2 ' OGR+Z信号停止時 Public Const MTR_NORMAL_STOPPED = &H4 ' 正常停止時 Public Const MTR_STOPPED_BY_LIMIT = &H8 ' リミット信号停止時

Page 30: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

Interface Corporation - 28 -

' Set/GetComparator Public Const MTR_COMP_CONFIG1 = 0 ' 比較条件1設定 Public Const MTR_COMP_CONFIG2 = 1 ' 比較条件2設定 Public Const MTR_COMP_CONFIG3 = 2 ' 比較条件3設定 Public Const MTR_NO_COMP = 0 ' 設定なし Public Const MTR_GT_COMP = 1 ' P > Q Public Const MTR_EQ_COMP = 2 ' P = Q Public Const MTR_PRESET1 = 3 ' プリセット値1設定 Public Const MTR_PRESET2 = 4 ' プリセット値2設定 Public Const MTR_PRESET3 = 5 ' プリセット値3設定 Public Const MTR_COMP_OBJECT = 6 ' 比較対象設定 Public Const MTR_COMP_OBJECT1 = 6 ' 比較対象1設定 Public Const MTR_COMP_OBJECT2 = 7 ' 比較対象2設定 Public Const MTR_COMP_OUT = 9 ' CMP信号出力条件 ' Set/GetCLR Public Const MTR_ONESHOT = 0 ' 1ショット出力 Public Const MTR_LEVEL = 1 ' レベル出力 Public Const MTR_CLR_OUT = 2 ' CLR信号出力条件 ' Set/Get/StartMotion Public Const MTR_JOG = 0 ' JOG動作 Public Const MTR_ORG = 1 ' ORG動作 Public Const MTR_PTP = 2 ' PTP動作 Public Const MTR_AUTO_PTP = 3 ' 自起動PTP動作 Public Const MTR_CP = 4 ' CP動作 Public Const MTR_LINE = 6 ' 直線補間動作 Public Const MTR_ARC = 7 ' 円弧補間動作 Public Const MTR_DRAW_IN = 8 ' 動作終点への引き込み Public Const MTR_RESTART = 9 ' 再起動 Public Const MTR_NORMAL = &H0 ' 加減速動作 Public Const MTR_CONST = &H10000 ' 定速動作 Public Const MTR_ACC_NORMAL = 0 ' 直線加減速 Public Const MTR_ACC_SIN = 1 ' S字加減速 Public Const MTR_ACC_EXP = 2 ' 放物線加減速 Public Const MTR_ACC_ORIGINAL = 3 ' 自由曲線加減速 Public Const MTR_STOP_ORG = &H0 ' ORG信号で停止 Public Const MTR_STOP_ORG_EZ = &H100 ' ORG+Z信号で停止 Public Const MTR_SQUEAR_ROOT2 = &H200 ' 周速制御 Public Const MTR_MARK = &H400 ' MARK信号によりPTP開始 Public Const MTR_MARK_ACC = &H800 ' MARK信号により加速し、PTP開始 Public Const MTR_CW = 1 ' CW方向 Public Const MTR_CCW = -1 ' CCW方向 ' StopMotion Public Const MTR_DEC_STOP = 0 ' 減速停止 Public Const MTR_IMMEDIATE_STOP = 1 ' 即停止 Public Const MTR_STOP_ALL = 2 ' 一斉停止 ' Set/GetSync Public Const MTR_RESET_SYNC_START = 0 ' 同時起動要求 解除 Public Const MTR_SET_SYNC_START = 1 ' 同時起動要求 設定 ' ChangeSpeed Public Const MTR_IMMEDIATE_CHANGE = 0 ' 即速度変更 Public Const MTR_ACCDEC_CHANGE = 1 ' 加減速速度変更 Public Const MTR_DEC_LOW_SPEED = 4 ' 起動時速度へ減速 Public Const MTR_RELEASE_DEC = 5 ' 減速解除 Public Const MTR_HOLD_NOW_SPEED = 6 ' 現在の速度に固定 Public Const MTR_RELEASE_HOLD = 7 ' 固定解除 ' Read/Write/ClearCounter, SetSampleCounter Public Const MTR_ENCODER = 0 ' エンコーダ Public Const MTR_COUNTER = 1 ' 位置カウンタ Public Const MTR_REMAINS = 2 ' 残りパルス数

Page 31: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

- 29 - Interface Corporation

' GetStatus Public Const MTR_BUSY = 0 ' 動作確認 Public Const MTR_FINISH_STATUS = 1 ' 終了ステータス Public Const MTR_LIMIT_STATUS = 2 ' リミット信号入力 Public Const MTR_INTERLOCK_STATUS = 4 ' インタロック信号入力 Public Const MTR_ILOCK_OFF = 0 ' 入力なし Public Const MTR_ILOCK_ON = 1 ' 入力あり Public Const MTR_ERROR_CODE = 5 ' エラーコード Public Const MTR_CONFIRM_END = 6 ' 動作完了確認 Public Const MTR_COMPLETE = 0 ' 動作終点に到達 Public Const MTR_NOT_COMPLETE = 1 ' 動作終点に到達していない Public Const MTR_COMPARATOR = 7 ' コンパレータ ステータス ' SetSampleCounter Public Const MTR_NORMAL_SAMP = &H0 ' 即 サンプリング開始 Public Const MTR_BUSY_SAMP = &H100 ' 動作開始からサンプリング Public Const MTR_ONETIME = &H0 ' 指定件数でサンプリング終了 Public Const MTR_REPEAT = &H1000 ' 繰り返しサンプリング ' ----------------------------------------------------------------------- ' ' エラー識別子 ' ' ----------------------------------------------------------------------- Public Const MTR_ERROR_SUCCESS = &H0 ' Public Const MTR_ERROR_NOT_DEVICE = &HC0000001 ' Public Const MTR_ERROR_NOT_OPEN = &HC0000002 ' Public Const MTR_ERROR_INVALID_HANDLE = &HC0000003 ' Public Const MTR_ERROR_ALREADY_OPEN = &HC0000004 ' Public Const MTR_ERROR_NOT_SUPPORTED = &HC0000009 ' Public Const MTR_ERROR_NOW_MOVING = &HC0001000 ' Public Const MTR_ERROR_NOW_STOPPED = &HC0001001 ' Public Const MTR_ERROR_WRITE_FAILED = &HC0001010 ' Public Const MTR_ERROR_READ_FAILED = &HC0001011 ' Public Const MTR_ERROR_INVALID_DEVICE = &HC0001012 ' Public Const MTR_ERROR_INVALID_AXIS = &HC0001013 ' Public Const MTR_ERROR_INVALID_SPEED = &HC0001014 ' Public Const MTR_ERROR_INVALID_ACCDEC = &HC0001015 ' Public Const MTR_ERROR_INVALID_PULSE = &HC0001016 ' Public Const MTR_ERROR_INVALID_PARAMETER = &HC0001017 ' Public Const MTR_ERROR_NOW_INTERLOCKED = &HC0001020 ' Public Const MTR_ERROR_IMPOSSIBLE = &HC0001021 ' Public Const MTR_ERROR_WRITE_FAILED_EEPROM = &HC0001022 ' Public Const MTR_ERROR_READ_FAILED_EEPROM = &HC0001023 ' Public Const MTR_ERROR_NOT_ALLOCATE_MEMORY = &HC0001024 ' Public Const MTR_INVALID_HANDLE_VALUE = &HFFFF '

Page 32: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

Interface Corporation - 30 -

' ----------------------------------------------------------------------- ' デバイス情報構造体 ' ----------------------------------------------------------------------- Type MTRDEVICE dwType As Long ' 製品型式 dwRSW As Long ' 製品番号 dwAxis As Long ' 軸番号 End Type ' ----------------------------------------------------------------------- ' 動作パラメータ構造体 ' ----------------------------------------------------------------------- Type MTRMOTION dwMode As Long ' 動作設定(加減速/停止条件) dwLowSpeed As Long ' 起動時速度 dwSpeed As Long ' 移動速度 dwAcc As Long ' 加速時間(パルス数) dwDec As Long ' 減速時間(パルス数) dwSSpeed As Long ' S字加減速区間速度 nStep As Long ' 移動パルス数 nReserved As Long ' 拡張用 End Type ' ----------------------------------------------------------------------- ' 直線補間パラメータ構造体 ' ----------------------------------------------------------------------- Type MTRMOTIONLINE dwMode As Long ' 動作設定(加減速/停止条件) dwLowSpeed As Long ' 起動時速度 dwSpeed As Long ' 移動速度 dwAcc As Long ' 加速時間(パルス数) dwDec As Long ' 減速時間(パルス数) dwSSpeed As Long ' S字加減速区間速度 nXStep As Long ' 1軸側 移動パルス数 nYStep As Long ' 2軸側 移動パルス数 nReserved As Long ' 拡張用 End Type ' ----------------------------------------------------------------------- ' 円弧補間パラメータ構造体 ' ----------------------------------------------------------------------- Type MTRMOTIONARC dwMode As Long ' 動作設定(加減速/停止条件) dwLowSpeed As Long ' 起動時速度 dwSpeed As Long ' 移動速度 dwAcc As Long ' 加速時間(パルス数) dwDec As Long ' 減速時間(パルス数) dwSSpeed As Long ' S字加減速区間速度 nXEnd As Long ' 1軸側 終点座標 nYEnd As Long ' 2軸側 終点座標 nXCenter As Long ' 1軸側 中心座標 nYCenter As Long ' 2軸側 中心座標 nDir As Long ' 回転方向 nReserved As Long ' 拡張用 End Type ' ----------------------------------------------------------------------- ' 自由加減速パラメータ構造体 ' ----------------------------------------------------------------------- Type MTRORIGINALACC dwSpeed As Long ' 移動速度 dwAcc As Long ' 移動時間(パルス数) End Type

Page 33: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

- 31 - Interface Corporation

' ----------------------------------------------------------------------- ' 割り込みテーブル(情報/マスク)構造体 ' ----------------------------------------------------------------------- Type MTREVENTTABLE dwPulseOut As Long ' パルス出力割り込み dwCounter As Long ' カウンタ割り込み dwComparator As Long ' コンパレータ割り込み dwSignal As Long ' 外部信号割り込み dwReserved As Long ' 拡張用 End Type ' ----------------------------------------------------------------------- ' 動作割り込み設定構造体 ' ----------------------------------------------------------------------- Type MTREVENTREQ hWnd As Long ' ウィンドハンドル uPulseOut As Long ' パルス出力メッセージ uCounter As Long ' カウンタメッセージ uComparator As Long ' コンパレータメッセージ uSignal As Long ' 外部信号メッセージ uReserved As Long ' 拡張用メッセージ lpCallBackProc As Long ' ユーザコールバック関数 dwUser As Long ' ユーザデータ End Type ' ----------------------------------------------------------------------- ' サンプリング割り込み設定構造体 ' ----------------------------------------------------------------------- Type MTRSAMPLEREQ hWnd As Long ' ウィンドハンドル uStopMsg As Long ' サンプリング停止メッセージ uSampleMsg As Long ' サンプリングカウンタメッセージ dwAxis As Long ' 軸番号 dwMode As Long ' カウンタ種別(サンプリング指定) dwSampleRate As Long ' サンプリング周期 dwBufferSize As Long ' サンプリングバッファサイズ dwSampleCounter As Long ' サンプリングカウンタ値 End Type ' -------------------------------------------------------------------------------- ' ' 関数宣言 ' ' -------------------------------------------------------------------------------- ' モーター環境設定 Declare Function MtrOpen Lib "FbiMtr.DLL" (ByVal lpszName As String, ByVal dwFlags As Long) As Long Declare Function MtrClose Lib "FbiMtr.DLL" (ByVal hDevice As Long) As Long Declare Function MtrSetBaseClock Lib "FbiMtr.DLL" (ByVal hDevice As Long, ByVal dwClock As Long) As Long Declare Function MtrSetPulseOut Lib "FbiMtr.DLL" (ByVal hDevice As Long, ByVal dwMode As Long, ByVal dwConfig As Long) As Long Declare Function MtrSetLimitConfig Lib "FbiMtr.DLL" (ByVal hDevice As Long, ByVal dwMode As Long, ByVal dwConfig As Long) As Long Declare Function MtrSetCounterConfig Lib "FbiMtr.DLL" (ByVal hDevice As Long, ByVal dwMode As Long, ByVal dwConfig As Long) As Long Declare Function MtrSetComparator Lib "FbiMtr.DLL" (ByVal hDevice As Long, ByVal dwMode As Long, ByVal dwConfig As Long) As Long Declare Function MtrSetCLR Lib "FbiMtr.DLL" (ByVal hDevice As Long, ByVal dwMode As Long, ByVal dwConfig As Long) As Long Declare Function MtrGetBaseClock Lib "FbiMtr.DLL" (ByVal hDevice As Long, ByRef lpdwClock As Long) As Long Declare Function MtrGetPulseOut Lib "FbiMtr.DLL" (ByVal hDevice As Long, ByVal dwMode As Long, ByRef lpdwConfig As Long) As Long Declare Function MtrGetLimitConfig Lib "FbiMtr.DLL" (ByVal hDevice As Long, ByVal dwMode As Long, ByRef lpdwConfig As Long) As Long Declare Function MtrGetCounterConfig Lib "FbiMtr.DLL" (ByVal hDevice As Long, ByVal dwMode As Long, ByRef lpdwConfig As Long) As Long Declare Function MtrGetComparator Lib "FbiMtr.DLL" (ByVal hDevice As Long, ByVal dwMode As Long, ByRef lpdwConfig As Long) As Long Declare Function MtrGetAccCurve Lib "FbiMtr.DLL" (ByVal hDevice As Long, ByRef lpdwStageNum As Long, ByRef lpOriginalAcc As MTRORIGINALACC) As Long

Page 34: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

Interface Corporation - 32 -

' 動作設定 Declare Function MtrSetAccCurve Lib "FbiMtr.DLL" (ByVal hDevice As Long, ByVal dwStageNum As Long, ByRef lpOriginalAcc As MTRORIGINALACC) As Long Declare Function MtrSetMotion Lib "FbiMtr.DLL" (ByVal hDevice As Long, ByVal dwMove As Long, ByRef Motion As MTRMOTION) As Long Declare Function MtrSetMotionLine Lib "FbiMtr.DLL" (ByVal hDevice As Long, ByRef MotionLine As MTRMOTIONLINE) As Long Declare Function MtrSetSync Lib "FbiMtr.DLL" (ByVal hDevice As Long, ByVal dwSync As Long) As Long Declare Function MtrGetCLR Lib "FbiMtr.DLL" (ByVal hDevice As Long, ByVal dwMode As Long, ByRef lpdwConfig As Long) As Long Declare Function MtrGetMotion Lib "FbiMtr.DLL" (ByVal hDevice As Long, ByVal dwMove As Long, ByRef Motion As MTRMOTION) As Long Declare Function MtrGetMotionLine Lib "FbiMtr.DLL" (ByVal hDevice As Long, ByRef MotionLine As MTRMOTIONLINE) As Long Declare Function MtrGetSync Lib "FbiMtr.DLL" (ByVal hDevice As Long, ByRef lpdwSync As Long) As Long ' 動作コマンド Declare Function MtrStartMotion Lib "FbiMtr.DLL" (ByVal hDevice As Long, ByVal dwMove As Long) As Long Declare Function MtrRestart Lib "FbiMtr.DLL" (ByVal hDevice As Long) As Long Declare Function MtrStartSync Lib "FbiMtr.DLL" (ByVal hDevice As Long) As Long Declare Function MtrSingleStep Lib "FbiMtr.DLL" (ByVal hDevice As Long, ByVal nDir As Long) As Long Declare Function MtrChangeSpeed Lib "FbiMtr.DLL" (ByVal hDevice As Long, ByVal dwMode As Long, ByVal dwSpeed As Long) As Long Declare Function MtrOutputDO Lib "FbiMtr.DLL" (ByVal hDevice As Long, ByVal dwDO As Long) As Long Declare Function MtrInputDI Lib "FbiMtr.DLL" (ByVal hDevice As Long, ByRef lpdwDI As Long) As Long Declare Function MtrOutputDO1 Lib "FbiMtr.DLL" (ByVal hDevice As Long, ByVal dwDO1 As Long) As Long Declare Function MtrOutputDO2 Lib "FbiMtr.DLL" (ByVal hDevice As Long, ByVal dwDO2 As Long) As Long Declare Function MtrOutputDO3 Lib "FbiMtr.DLL" (ByVal hDevice As Long, ByVal dwDO3 As Long) As Long Declare Function MtrOutputDO4 Lib "FbiMtr.DLL" (ByVal hDevice As Long, ByVal dwDO4 As Long) As Long Declare Function MtrOutputCLR Lib "FbiMtr.DLL" (ByVal hDevice As Long, ByVal dwCLR As Long) As Long Declare Function MtrOutputSON Lib "FbiMtr.DLL" (ByVal hDevice As Long, ByVal dwSON As Long) As Long ' リセット Declare Function MtrReset Lib "FbiMtr.DLL" (ByVal hDevice As Long) As Long Declare Function MtrOffInterLock Lib "FbiMtr.DLL" (ByVal hDevice As Long) As Long ' 情報取得 Declare Function MtrGetDeviceInfo Lib "FbiMtr.DLL" (ByVal hDevice As Long, ByRef DevInfo As MTRDEVICE) As Long Declare Function MtrGetStatus Lib "FbiMtr.DLL" (ByVal hDevice As Long, ByVal dwMode As Long, ByRef lpdwStatus As Long) As Long Declare Function MtrReadSpeed Lib "FbiMtr.DLL" (ByVal hDevice As Long, ByRef lpdwSpeed As Long) As Long ' 停止コマンド Declare Function MtrStopMotion Lib "FbiMtr.DLL" (ByVal hDevice As Long, ByVal dwMode As Long) As Long ' エンコーダ,カウンタ Declare Function MtrReadCounter Lib "FbiMtr.DLL" (ByVal hDevice As Long, ByVal dwMode As Long, ByRef lpnPos As Long) As Long Declare Function MtrWriteCounter Lib "FbiMtr.DLL" (ByVal hDevice As Long, ByVal dwMode As Long, ByVal lpnPos As Long) As Long Declare Function MtrClearCounter Lib "FbiMtr.DLL" (ByVal hDevice As Long, ByVal dwMode As Long) As Long ' 割り込みメッセージ Declare Function MtrSetEvent Lib "FbiMtr.DLL" (ByVal hDevice As Long, ByRef EventReq As MTREVENTREQ) As Long Declare Function MtrGetEvent Lib "FbiMtr.DLL" (ByVal hDevice As Long, ByRef EventReq As MTREVENTREQ) As Long Declare Function MtrSetEventMask Lib "FbiMtr.DLL" (ByVal hDevice As Long, ByRef EventMask As MTREVENTTABLE) As Long Declare Function MtrGetEventMask Lib "FbiMtr.DLL" (ByVal hDevice As Long, ByRef EventMask As MTREVENTTABLE) As Long

本コードは、製品に添付されるサンプルプログラムに、同じものが記載されております。また、

弊社Web siteよりもダウンロードできますので、そちらを流用してください。

Page 35: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

- 33 - Interface Corporation

Step3.初期化処理と終了処理

ここでは、実際のプログラム作成を行う前に、ステッピング・モータコントローラ製品の初期化

処理と終了処理に関して、知っておかなければならないこと、および制約事項について記載しま

す。 ステッピング・モータコントローラ製品の制御を行うには、まず製品の初期化を行わなければな

りません。製品の初期化は以下のコードにより行います。

(製品の初期化) Dim lpszName As String Dim hDeviceHandle as Long '製品初期化を行います lpszName = "FBIMC1" hDeviceHandle = MtrOpen(lpszName, 0)

この時、文字列変数lpszNameに設定する値は、使用する製品のデバイス名を指定します。デバイス名は、「コントロールパネル」より「システム」を選択し「システムのプロパティ」の「デバ

イスマネージャ」より確認できます。 製品の初期化はMtrOpen関数により行います。

また、アプリケーションの終了時、もしくは処理の終了時に、製品に対して必ず終了処理を行わ

なければなりません。 製品の終了処理は以下のコードにより行います。

(製品の終了処理) ‘終了処理 nRet = MtrClose(hDeviceHandle)

「使用例」

hDeviceHandle = MtrOpen(lpszName, 0)

デバイスハンドルを格納する長整数(Long)型の変数を指定します。

0を指定します。

使用する製品のデバイス名を指定します。

Page 36: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

Interface Corporation - 34 -

製品の終了処理はMtrClose関数より行います。ここで、注意しなければならないのは、設定する引数のhDeviceHandleです。hDeviceHandle には製品初期化の際に取得した、MreOpen関数の戻り値を指定します。MtrOpen 実行時、その戻り値であるhDeviceHandleには有効なハンドル(番号)が格納されています(「33ページ 製品の初期化」List参照)。ハンドルとは使用するデバイスの接続に関する情報が格納されたメモリ領域を、識別するための値を示します。 プログラム作成時、終了処理を行うデバイスのhDeviceHandleの値が、MtrOpen実行時に取得された値となるように、MtrOpenとMtrCloseは必ず組になるよう注意してください。

MtrOpen

MtrClose

ハンドル

では、実際にプログラムの作成を行います。 1. フォーム(frmMotorTest)をダブルクリックし、コードエディタウィンドウを開き、フォーム

(frmMotorTest)のLoadイベントに下記に示すコードを記述します。

(FormのLoadイベントのコード) Private Sub Form_Load() Dim lpszName As String Dim nRet As Long lpszName = "FBIMC1" '// デバイスオープン //////////////////////////////// hDeviceHandle = MtrOpen(lpszName, MTR_FLAG_NORMAL) If hDeviceHandle = MTR_INVALID_HANDLE_VALUE Then nRet = MsgBox("エラーが発生しました![ MtrOpen ]", (vbOKOnly + vbCritical)) Else hDeviceHandle2 = hDeviceHandle End If End Sub

2. フォーム(frmMotortTest)のUnloadイベントに下記に示すコードを記述します。

(FormのUnloadイベントのコード) Private Sub Form_Unload(Cancel As Integer) Dim nRet As Long nRet = MtrClose(hDeviceHandle) End Sub

以上で、初期化/修了処理のプログラムは完成です。入力が終わったら保存してください。

「使用例」

nRet = MtrClose(hDeviceHandle)

関数が失敗するとエラーコードが格納されます。

オープン時に取得したデバイスハンドルを指定します。

Page 37: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

- 35 - Interface Corporation

Step4.動作モード設定とモータ制御

弊社ステッピング・モータコントローラ製品には、用途に応じた4つの動作モードが準備されています。それぞれのモードのにより以下の動作を行います。

連続動作 リミット信号, 停止命令が有効になるまで連続してパルスを出力

し、モータを連続動作させます。 原点復帰動作 原点信号, リミット信号, 停止命令が有効になるまで連続してパ

ルスを出力し、モータを連続動作させます。 PTP【Point To Point】動作 指定したパルス数だけパルスを出力し、モータをパルス数分移動

させます。指定パルス数の範囲は製品によって異なります。 直線補間動作 2つのモータを使用し、制御対象物をX-Y平面上で移動させる場合、

移動の軌跡がコントローラによって補われ動作します。(PCI-7208, 7209のみ有効)

開始点 X軸

Y軸

目標点

Page 38: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

Interface Corporation - 36 -

では、実際にプログラムの作成を行います。 1. フォーム上にコマンドボタン(CommandButton)コントロールを描画し、オブジェクト名を「cmdRoll」、Captionプロパティを「軸回転」に変更します。

2. 作成したコマンドボタン(cmdRoll)をダブルクリックし、編集ウィンドウを開き、以下のコードを記述します。

(コマンドボタン(cmdRoll)のClickイベントのコード) Private Sub cmdRoll_Click() Dim nRet As Long Dim DevInfo As MTRDEVICE Dim Motion As MTRMOTION '// 基準クロック設定 //////////////////////////////////// 'PCI-7204の場合は以下を設定します。 nRet = MtrSetBaseClock(hDeviceHandle, MTR_CLOCK_1M) 'PCI-7208,7209の場合は以下を設定します。 'nRet = MtrSetBaseClock(hDeviceHandle, 2500) If nRet <> MTR_ERROR_SUCCESS Then MsgBox "基準クロックの設定に失敗しました" End If 'パルス出力設定(使用するモータ・ドライバに合わせ変更してください) nRet = MtrSetPulseOut(hDeviceHandle, MTR_METHOD, &H0) If nRet <> MTR_ERROR_SUCCESS Then MsgBox "パルス出力設定に失敗しました" End If 'PTP動作設定 Motion.dwMode = MTR_ACC_SIN 'S字加減速 Motion.dwLowSpeed = 100 '起動時速度 :100Hz Motion.dwSpeed = 1000 '移動速度 :1000Hz Motion.dwAcc = 500 '加速パルス数:500パルス/ms Motion.dwDec = 500 '減速パルス数:500パルス/ms Motion.dwSSpeed = 300 'S字加減速区間速度:300Hz Motion.nStep = 1000 '移動パルス数:1000パルス Motion.nReserved = 0 '拡張 '// PTP動作設定 /////////////////////////////////////// nRet = MtrSetMotion(hDeviceHandle, MTR_PTP, Motion) If nRet <> MTR_ERROR_SUCCESS Then MsgBox "動作設定に失敗しました" Else '// PTP起動 ///////////////////////////////////////////// nRet = MtrStartMotion(hDeviceHandle, MTR_PTP) If nRet <> MTR_ERROR_SUCCESS Then MsgBox "起動に失敗しました" End If End If End Sub

以上で、プログラムの作成は完了です。

Page 39: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

- 37 - Interface Corporation

では、保存した後実行してください。 「軸回転」ボタンをクリックしてください。ステッピング・モータコントロール製品より モータ・ドライバにパルス信号が送られ、モータの軸が回転します。 では、入力したプログラムを読み取ってみましょう。 まずプログラムは基準クロック(PCI-7208, 7209の場合は速度分解能)の設定を行っています。基準クロック(または速度分解能)とは、製品から出力するパルス信号の生成の際、基準となるクロックで、ここに設定した値により、設定可能な軸の速度範囲が異なってきます。 基準クロック(または速度分解能)の設定にはMtrSetBaseClock関数を使用します。

次にプログラムはパルス出力の設定を行っています。使用するモータ・ドライバに合わせ出力パ

ルスの仕様を設定しています。本チュートリアルで使用しているモータ・ドライバは負論理, 2パルス方式で動作するので、サンプルプログラムではそのように設定してます。 パルス出力の設定にはMtrSetPulseOut関数を使用します。

第2引数に設定する項目を指定し、第3引数に設定する値を指定します。

「使用例」

nRet = MtrSetBaseClock(hDeviceHandle, MTR_CLOCK_1M)

オープン時に取得したデバイスハンドルを指定します。

関数が失敗するとエラーコードが格納されます。

基準クロック/速度分解能を指定します。

「使用例」

nRet = MtrSetPulseOut(hDeviceHandle, MTR_METHOD, &H0)

オープン時に取得したデバイスハンドルを指定します。

関数が失敗するとエラー コードが格納されます。

設定する項目を指定します。

設定値を指定し ます。

Page 40: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

Interface Corporation - 38 -

次にプログラムは動作の設定を行っています。動作の設定にはMtrSetMotion関数を使用します。本チュートリアルではPTP動作の設定を行っています。

動作モードのパラメータは動作パラメータ設定用構造体(MTRMOTION構造体)に設定します。 「36ページ コマンドボタン(cmdRoll)のClickイベントのコード」ではMTRMOTION構造体をMotion変数に定義しパラメータの設定を行っています。 Motion.dwMode = MTR_ACC_SIN 'S字加減速 Motion.dwLowSpeed = 100 '起動時速度 :100Hz Motion.dwSpeed = 1000 '移動速度 :1000Hz Motion.dwAcc = 500 '加速パルス数 :500パルス/ms Motion.dwDec = 500 '減速パルス数 :500パルス/ms Motion.dwSSpeed = 300 'S字加減速区間速度 :300Hz Motion.nStep = 1000 '移動パルス数 :1000パルス

設定項目の詳細に関しては、『45ページ 第6章 FbiMtr.DLLリファレンス』のMTRMOTION構造体の項目を参照してください。 最後にプログラムはモータ・ドライバに対し制御信号を出力しモータを起動しています。動作の

起動にはMtrStartMotion関数を使用します。

「使用例」

nRet = MtrSetMotion(hDeviceHandle, MTR_PTP, Motion)

オープン時に取得したデバイスハンドルを指定します。

関数が失敗するとエラーコードが格納されます。

動作モードを指定します。

動作パラメータ設定用構造体を指定します。

「使用例」

nRet = MtrStartMotion(hDeviceHandle, MTR_PTP)

オープン時に取得したデバイスハンドルを指定します。

関数が失敗するとエラーコードが格納されます。

起動する動作を指定します。

Page 41: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

- 39 - Interface Corporation

5.2 カウンタ値取得

ステッピング・モータコントローラ製品は製品内に出力したパルスの情報を保持しています。こ

のカウンタ値を利用するとモータの分解能からモータの軸がどれだけ回転したかといった位置情

報を検知することが可能です。ここでは、このカウンタ値を取得するプログラムの作成を行いま

す。

Step1.カウント

では、『25ページ 5.1 モータ制御』で作成したフォームを利用し、実際にプログラムの作成を行います。 1. 作成したフォーム(frmMotorTest)上にラベル(Label)コントロールを描画し、オブジェクト名を「lblPos」に変更します。

2. ラベル(Label)コントロールのAlignmentプロパティを「1-右揃え」に、Fontプロパティを表示しフォントサイズを適当なものに変更します。(ここでは48ポイントに設定しています。)

3. フォームにタイマー(Timer)コントロールを描画し、オブジェクト名をtimReadPosにします。 4. timReadPosのIntervalプロパティを「100」にEnabledプロパティを「True」に設定します。 5. 作成したタイマーコントロール(timCount)をダブルクリックし編集ウィンドウを開き以下に示すコードを記述します。

Page 42: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

Interface Corporation - 40 -

(タイマーコントロール(timReadPos)のコード) Private Sub timReadPos_Timer() Dim nRet As Long Dim nPos As Long '// 現在位置確認 (内部カウンタ)//////////////////////////// nRet = MtrReadCounter(hDeviceHandle, MTR_COUNTER, nPos) If nRet <> MTR_ERROR_SUCCESS Then MsgBox "現在位置確認に失敗しました" timReadPos.Enabled = False Else lblPos = Str(nPos) End If End Sub

以上で、プログラムの作成は完了です。 では、保存した後実行してください。 「軸回転」ボタンをクリックすると、その移動量(出力パルス)がフォーム上に配置したラベルオブジェクト(lblPos)に表示されます。 では、入力したプログラムを読み取ってみましょう。 ここでは製品に保持されるカウンタの値の取得を行っています。カウンタ値の取得には

MtrReadCounter関数を使用します。

第2引数の読み取るカウンタの指定ですが、出力パルスの「カウンタ値」以外にも、PCI-7208,7209では、「エンコーダカウンタ値」, 「残りパルス数」を指定することができます。 いずれの値も第3引数の変数に格納されます。

「使用例」

nRet = MtrReadCounter(hDeviceHandle, MTR_COUNTER, nPos)

オープン時に取得したデバイスハンドルを指定します。

読み取るカウンタを指定します。

関数が失敗するとエラーコードが格納されます。

読み取ったカウンタ値を格納する変数を指定します。

Page 43: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

- 41 - Interface Corporation

5.3 割り込み処理

ここでは、割り込み処理の方法に関し記載します。フォアグラウンドでプログラムが実行中、バ

ックグランドにて非同期に製品の状態を監視し、ボートが指定した条件に至った場合、割り込み

を発生させフォアグラウンドのプログラムを停止し(割り込み)ユーザーに知らせる方法を記載します。

Step1.コールバック処理(コールバックイベント)

ここでは、割り込みイベントが発生した時に呼び出される処理の作成を行います。 1. 標準モジュールに下記を追加します。

(標準モジュール内のSubプロシージャコード) Public Sub fnEvent(ByVal dwPulseOut As Long, ByVal dwCounter As Long, ByVal dwComparator As Long, ByVal dwSignal As Long, ByVal dwReserved As Long, ByVal dwUser As Long) MsgBox "モータ停止" End Sub

(標準モジュール内のSubプロシージャコード) Function Trans(ByVal Proc As Long) As Long Trans = Proc End Function

2. フォーム(frmMotorTest)をダブルクリックしコードエディタウィンドウを開き、フォーム(frmMotorTest)のLoadイベントに「34ページ FormのLoadイベントのコード」に示すコードを修正し、下記を作成します。(網掛け部分が「34ページ FormのLoadイベントのコード」に対して追加したコードです)

(FormのLoadイベントのコード) Private Sub Form_Load() Dim lpszName As String Dim nRet As Long Dim Mask As MTREVENTTABLE Dim pEvent As MTREVENTREQ lpszName = "FBIMC1" '// デバイスオープン //////////////////////////////// hDeviceHandle = MtrOpen(lpszName, MTR_FLAG_NORMAL) If hDeviceHandle = MTR_INVALID_HANDLE_VALUE Then nRet = MsgBox("エラーが発生しました![ MtrOpen ]", (vbOKOnly + vbCritical)) Else hDeviceHandle2 = hDeviceHandle End If

Page 44: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

Interface Corporation - 42 -

'Set Interrupt Mask Mask.dwPulseOut = &H1 Mask.dwCounter = &H0 Mask.dwComparator = &H0 Mask.dwSignal = &H0 Mask.dwReserved = &H0 nRet = MtrSetEventMask(hDeviceHandle, Mask) 'Set Callback function : fnEvent pEvent.hWnd = 0 pEvent.uPulseOut = 0 pEvent.uCounter = 0 pEvent.uComparator = 0 pEvent.uSignal = 0 pEvent.uReserved = 0 pEvent.lpCallBackProc = Trans(AddressOf fnEvent) pEvent.dwUser = 0 nRet = MtrSetEvent(hDeviceHandle, pEvent) End Sub

以上で、プログラムの作成は完了です。 では、保存した後実行してください。 「軸回転」ボタンをクリックしてください。ステッピング・モータコントロール製品より モータ・ドライバにパルス信号が送られ、モータの軸が回転します。指定パルス分軸が回転する

と軸の回転が停止しますが、それと同時に以下のメッセージボックスが表示されます。

では、入力したプログラムを読み取ってみましょう。 「41ページ 標準モジュール内のSubプロシージャコード」ですが、割り込みが発生した場合に実行されるプログラムを記述しています。割り込みが発生した場合、このプロシージャが呼び出さ

れ処理されます。 次に「41ページ 標準モジュール内のSubプロシージャコード」ですが、後に記載する、割り込み発生条件の設定と割込み信号を取得した際に実行するプロシージャの定義用に使用するプロシー

ジャです。(構造体に関数のアドレスを直接設定できないのでこのような方法をとっています) 次に、「34ページ FormのLoadイベントのコード」ですが、初期化処理の後、割り込み発生条件の設定と割込み信号を取得した際に実行するプロシージャの定義を行っています。この定義によ

り製品への割り込みを割り込みイベントとしてとらえることが可能です。

Page 45: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

- 43 - Interface Corporation

本サンプルではパルスの出力が停止(モータの軸が停止)した場合、それをイベントとして定義しています。割り込みイベントの定義には、MtrSetEventMask関数, MtrSetEvent関数を使用します。MtrSetEventMask関数で割り込みイベントの有効/無効を定義し、MtrSetEvent関数にて実際のイベントを定義しています。

コールバックルーチンは、MtrSetEvent関数の呼び出しを行うプロジェクト内の標準モジュールの中に記述しなければなりません。 また、MtrSetEventMask関数, MtrSetEvent関数ともにパラメータを構造体にて渡しています。ぞれぞれ、MTREVENTTABLE構造体, MTREVENTREQ構造体を使用しています。それぞれの構造体の設定内容詳細に関しましては、『45ページ 第6章 FbiMtr.DLLリファレンス』を参照してください。

「使用例」

nRet = MtrSetEvent(hDeviceHandle, pEvent)

オープン時に取得したデ

バイスハンドルを指定します。

関数が失敗するとエラーコードが格納されます。

コールバック関数の指定およびコールバック関数に渡す、任意の値を格納した構造体を指定します。

「使用例」

nRet = MtrSetEventMask(hDeviceHandle, Mask)

オープン時に取得したデバイスハンドルを指定します。

関数が失敗するとエラーコードが格納されます。

イベントのマスクデータを格納した構造体を指定します。

Page 46: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

Interface Corporation - 44 -

MTREVENTREQ構造体のメンバでlpCallBaclProcがありますが、ここにはコールバックプロシージャのアドレスを指定します。プロシージャのアドレスを渡すために AddressOf演算子を使用しますが、Visual Basicからでは直接AddresOf演算子にて、このメンバにアドレス値を設定することができないため、Trans関数「41ページ 標準モジュール内のSubプロシージャコード」を用意し、これを介してアドレス値の設定を行っています。

× … pEvent.lpCallBackProc = AddressOf fnEvent ○ … pEvent.lpCallBackProc = Trans(AddressOf fnEvent)

AddressOf演算子を使うと、プロシージャからの戻り値ではなく、プロシージャ自体のアドレスがMTREVENTREQ構造体のlpCallBackProcメンバに格納されます。 ここまでが、割り込み処理のプログラム例です。

Page 47: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

- 45 - Interface Corporation

第6章 FbiMtr.DLLリファレンス MtrOpen 【機能】

デバイス(軸)のオープンを行い、以後のデバイスへのアクセスを可能にします。 制御する各軸には、それぞれ “FBIMC**“という名前のデバイス名がつけられます。 本ソフトウェアでは、このデバイス名ごと(各軸ごと)に制御を行います。本関数ではこのデバイス名を指定することにより、モーションコントローラの各軸のオープンを行います。 各デバイス名の確認は、Windows NT以外の場合、デバイスマネージャにて確認できます。 Windows NTの場合は、付属のユーティリティ(動作確認プログラム等)の起動により確認できます。

【書式】

Declare Function MtrOpen Lib “FbiMtr.DLL”(_ ByVal Name As String, ByVal Flag As Long

)As Long

【パラメータ】 Name

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

オープンフラグを指定してください。 コード 値 意 味

MTR_FLAG_NORMAL 0 MtrStartSampleCounter 関数を同期で動作させます。(関数実行後、サンプリングが完了するまで処理が返りません。)

MTR_FLAG_OVERLAPPED 1 MtrStartSampleCounter関数を非同期での動作を許可するフラグです。 (関数実行後、すぐに処理が返ります。) 7210系でのみ有効な機能

【戻り値】

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

MtrClose 【機能】

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

【書式】

Declare Function MtrClose Lib “FbiMtr.DLL”( ByVal DeviceHandle As Long )As Long

【パラメータ】

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

【戻り値】

正常終了した場合は、MTR_ERROR_SUCCESSが返されます。 MTR_ERROR_SUCCESS以外の値が返された場合については、『92ページ 戻り値一覧』を参照してください。

【備考】

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

Page 48: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

Interface Corporation - 46 -

MtrGetDeviceInfo 【機能】

デバイス情報を取得します。(型式,RSW1設定値,軸番号) 【書式】

Declare Function MtrGetDeviceInfo Lib “FbiMtr.DLL” ( ByVal DeviceHandle As Long, ByRef DevInfo As MTRDEVICE )As Long

【パラメータ】

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

DevInfo デバイス情報を格納する MTRDEVICE構造体へのポインタ(参照渡し)を指定します。

【戻り値】

正常終了した場合は、MTR_ERROR_SUCCESSが返されます。 MTR_ERROR_SUCCESS以外の値が返された場合については、『92ページ 戻り値一覧』を参照してください。

MtrSetBaseClock 【機能】

基準クロック/速度倍率の設定を行います。 (基準クロック/速度倍率により設定可能な速度の範囲が変わります。パラメータ設定範囲確認プログラムにて速度,加減速時間の設定範囲が確認できます。)

【書式】

Declare Function MtrSetBaseClock Lib “FbiMtr.DLL”( ByVal DeviceHandle As Long, ByVal Clock As Long )As Long

【パラメータ】

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

Clock

■7204系 基準クロック

コード 値 意 味 MTR_CLOCK_1M 0 1MHz MTR_CLOCK_1_4M 1 1/4MHz MTR_CLOCK_1_16M 2 1/16MHz

■7208系 速度分解能:1~4096 ■7210 周波数倍率:1~4095 ■742020系 速度倍率:1~65535

【戻り値】

正常終了した場合は、MTR_ERROR_SUCCESSが返されます。 MTR_ERROR_SUCCESS以外の値が返された場合については、『92ページ 戻り値一覧』を参照してください。

【備考】

・ 動作起動中、本関数は実行できません。 ・ MtrSetMotion関数, MtrSetMotionLine関数等で起動時速度, 移動速度等を設定する前に本関数を実行してください。 ・ 製品により、Clockに設定する値の意味が異なります。(以下参照) ■7204系:基準クロックにより設定可能な移動速度の範囲が異なります。 1.31pps~66.67kpps(基準クロック 1MHz) 2.8pps~16.67kpps (基準クロック 1/4MHz) 3.2pps~ 4.17kpps (基準クロック 1/16MHz)

Page 49: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

- 47 - Interface Corporation

基準クロックと移動速度の関係式は次の通りです。 Speed = Clock/Rate [pps] Rate:15~32767 ■7208系:速度分解能により設定可能な速度範囲が異なります。

速度範囲[pps] 速度分解能 倍率 直線加減速 S 字加減速

2500 0.1 0.1~1638.3 0.1~1000 250 1 1~16383 1~10000 50 5 5~81915 5~50000 10 25 25~409575 25~250000 1 250 250~4095750 250~2500000

速度分解能と移動速度の関係式は次の通りです。 速度[pps] = 250×Range/Clock Range:1~16383(直線加減速),1~10000(S字加減速) なお、7208系では、移動速度は 0.1pps~1Mppsまでのサポートとなります。 ■7210系:周波数倍率により設定可能な速度範囲が異なります。

周波数倍率 倍率 速度範囲[pps] 2999 0.1 0.1~3276.7 266 1 1~32767

5 50 50~1638350 2 100 100~3276700 1 150 150~4915050

周波数倍率と移動速度の関係式は次の通りです。 速度[pps] = 300×Range/(Clock+1) Range:1~32767 なお、7210系では、移動速度は 0.073pps~1Mppsまでのサポートとなります。 ■742020系:速度倍率により設定可能な速度範囲が異なります。

周波数倍率 倍率 速度範囲[pps] 2439 0.1 0.1~6557.2 243 1.0 1~65572.7

3 61.0 61.0~3999938.9 2 81.3 81.3~5333251.9 1 122.0 122.0~7999877.9

速度倍率と移動速度の関係式は次の通りです。 速度[pps] = 16000000×Range/{65536×(Clock+1)} Range:1~65535 なお、742020系では、移動速度は 1pps~100kppsまでのサポートとなります。

MtrGetBaseClock 【機能】

基準クロック/速度倍率の設定を取得します。

【書式】 Declare Function MtrGetBaseClock Lib “FbiMtr.DLL”( ByVal DeviceHandle As Long, ByRef Clock As Long )As Long

【パラメータ】

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

Page 50: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

Interface Corporation - 48 -

Clock

基準クロック/速度倍率 設定値を格納する変数へのポインタ(参照渡し)を指定します。 ■7204系 基準クロック

コード 値 意 味 MTR_CLOCK_1M 0 1MHz MTR_CLOCK_1_4M 1 1/4MHz MTR_CLOCK_1_16M 2 1/16MHz

■7208系 速度分解能:1~4096 ■7210 周波数倍率:1~4095 ■742020系 速度倍率:1~65535

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

MtrSetPulseOut 【機能】

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

Declare Function MtrSetPulseOut Lib “FbiMtr.DLL”(_ ByVal DeviceHandle As Long, ByVal Mode As Long, ByVal Config As Long )As Long

【パラメータ】

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

Mode

設定項目を指定します。 コード 値 意 味

MTR_METHOD 0 パルス出力モード設定 MTR_IDLING 1 アイドリングパルス設定 MTR_FINISH_FLAG 3 動作完了フラグタイミング設定

項目と対応型式表

コード 対応製品 MTR_METHOD 7204,7208,7210,742020系 MTR_IDLING 7208,7210系 MTR_FINISH_FLAG PCI-7209,7210,742020系

Config

設定値を指定します。 [MTR_METHOD] MTR_METHODのパルス出力モードの設定は下記のビットデータで行ないます。 ■7204,7208系 bit31~2 :予約 bit1 :0-負論理、1-正論理 bit0 :0-2パルス方式、1-パルス/ディレクション方式

Page 51: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

- 49 - Interface Corporation

設定例)

bit1 bit0 0 1

0

1

■7210系 bit31~4 :予約 bit3 :方向切り替え時の遅延 0-遅延無し、1-200μs遅延有り bit2 :DIR信号出力論理 0-負論理 (信号 Hレベルで CW方向出力) 1-正論理 (信号 Hレベルで CCW方向出力) bit1 :OUT信号出力論理 0-負論理,1-正論理 bit0 :パルス出力方式 0-2パルス方式,1-パルス/ディレクション方式 設定例)

bit2,1 bit0 0 1

0

1

Page 52: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

Interface Corporation - 50 -

■742020系 bit31~3 :未使用 bit2 :DIR信号出力論理 0-負論理 (信号 Hレベルで CW方向出力) 1-正論理 (信号 Hレベルで CCW方向出力) bit1 :OUT信号出力論理 0-負論理,1-正論理 bit0 :パルス出力方式 0-2パルス方式、1-パルス/ディレクション方式 設定例)

bit2,1 bit0 0 1

0

1

[MTR_IDLING] MTR_IDLINGのアイドリングパルス数の設定データは下記のとおりです。 ■7208系

コード 値 意 味 MTR_0P5PULSE 1 0.5パルス アイドリング MTR_1P5PULSE 3 1.5パルス アイドリング

■7210系 0~6パルス 起動時速度でアイドリングパルス数出力後、次のパルスが出力されるタイミングで加速を開始します。 「アイドリング」について 加減速動作の起動時において、起動時速度からこのアイドリングで設定したパルス数を出力してから加速を開始させることができます。 当然、PTP動作等の移動量パルス数を指定する動作の場合は、このアイドリングパルス数は指定移動量パルス数の中に含まれます。 [MTR_FINISH_FLAG]

MTR_FINISH_FLAGの動作完了フラグタイミング設定の設定データは下記のとおりです。 ■PCI-7209,742020系

コード 値 意 味 MTR_PULSE_OUT 0 パルス出力完了により、動作完了フラグが ON MTR_INP 1 パルス出力完了後、INP信号入力により、動作完了フラグが ON

■7210系

コード 値 意 味 MTR_PULSE_OUT 0 パルス出力完了により、動作完了フラグが ON MTR_PULSE_OFF 2 パルス出力 OFF

最終パルスの周期完了を待たないにより、動作完了フラグが ON 「動作完了フラグ」について 動作完了フラグとは MtrGetStatu 関数の対象ステータス:MTR_BUSYで取得する動作状態の bit5のフラグのことになります。 このフラグによってパルス出力動作が完了したかどうかが判断できます。 モータ動作中に動作完了フラグの設定を行った場合は、モータ動作が完了した時にその設定が有効になります。

Page 53: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

- 51 - Interface Corporation

【戻り値】

正常終了した場合は、MTR_ERROR_SUCCESSが返されます。 MTR_ERROR_SUCCESS以外の値が返された場合については、『92ページ 戻り値一覧』を参照してください。

【備考】

本関数により設定するパルス出力方式は、ご使用のモータドライバの設定と必ず一致させてください。一致していない場合には、誤動作の原因となります。

MtrGetPulseOut 【機能】

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

【書式】 Declare Function MtrGetPulseOut Lib “FbiMtr.DLL”( ByVal DeviceHandle As Long, ByVal Mode As Long, ByRef Config As Long )As Long

【パラメータ】

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

Mode

取得項目を指定します。 コード 値 意 味

MTR_METHOD 0 パルス出力モード設定 MTR_IDLING 1 アイドリングパルス設定 MTR_FINISH_FLAG 3 動作完了フラグタイミング設定

項目と対応型式表

コード 対応製品 MTR_METHOD 7204,7208,7210,742020系 MTR_IDLING 7208,7210系 MTR_FINISH_FLAG PCI-7209,

7210,742020系 Config

設定値を格納する変数へのポインタ(参照渡し)を指定します。 [MTR_METHOD] MTR_METHODのパルス出力モードの設定は下記のビットデータで行ないます。 ■7204,7208系 bit31~2 :予約 bit1 :0-負論理、1-正論理 bit0 :0-2パルス方式、1-パルス/ディレクション方式 ■7210系 bit31~4 :予約 bit3 :方向切り替え時の遅延 0-遅延無し、1-200μs遅延有り bit2 :DIR信号出力論理 0-負論理 (信号 Hレベルで CW方向出力) 1-正論理 (信号 Hレベルで CCW方向出力) bit1 :OUT信号出力論理 0-負論理、1-正論理 bit0 :パルス出力方式 0-2パルス方式、1-パルス/ディレクション方式 ■742020系 bit31~3 :未使用 bit2 :DIR信号出力論理 0-負論理 (信号 Hレベルで CW方向出力) 1-正論理 (信号 Hレベルで CCW方向出力) bit1 :OUT信号出力論理 0-負論理、1-正論理 bit0 :パルス出力方式 0-2パルス方式、1-パルス/ディレクション方式

Page 54: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

Interface Corporation - 52 -

[MTR_IDLING] MTR_IDLINGのアイドリングパルス数の設定データは下記のとおりです。 ■7208系

コード 値 意 味 MTR_0P5PULSE 1 0.5パルス アイドリング MTR_1P5PULSE 3 0.5パルス アイドリング

■7210系 0~6パルス 起動時速度でアイドリングパルス数出力後、次のパルスが出力されるタイミングで加速を開始します。 「アイドリング」について 加減速動作の起動時において、起動時速度からこのアイドリングで設定したパルス数を出力してから加速を開始させることができます。 当然、PTP動作等の移動量パルス数を指定する動作の場合は、このアイドリングパルス数は指定移動量パルス数の中に含まれます。 [MTR_FINISH_FLAG] MTR_FINISH_FLAGの動作完了フラグタイミング設定の設定データは下記のとおりです。 ■PCI-7209,742020系

コード 値 意 味 MTR_PULSE_OUT 0 パルス出力完了により、動作完了フラグが ON MTR_INP 1 パルス出力完了後、INP信号入力により、動作完了フラグが ON

■7210系

コード 値 意 味 MTR_PULSE_OUT 0 パルス出力完了により、動作完了フラグが ON MTR_PULSE_OFF 2 パルス出力 OFF

最終パルスの周期完了を待たないにより、動作完了フラグが ON 「動作完了フラグ」について 動作完了フラグとは MtrGetStatus関数の対象ステータス:MTR_BUSYで取得する終了ステータスにて、bit5のフラグのことになります。 このフラグによってパルス出力動作が完了したかどうかが判断できます。 モータ動作中に動作完了フラグの設定を行った場合は、モータ動作が完了した時にその設定が有効になります。

【戻り値】

正常終了した場合は、MTR_ERROR_SUCCESSが返されます。 MTR_ERROR_SUCCESS以外の値が返された場合については、『92ページ 戻り値一覧』を参照してください。

MtrSetLimitConfig 【機能】

制御信号の各種設定を行います。 【書式】

Declare Function MtrSetLimitConfig Lib “FbiMtr.DLL”( ByVal DeviceHandle As Long, ByVal Mode As Long, ByVal Config As Long )As Long

【パラメータ】

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

Mode

設定項目を指定します。 コード 値 意 味

MTR_MASK 0 マスク設定 MTR_LOIC 1 入力論理設定 MTR_SD_FUNC 2 SD信号機能設定 MTR_SD_ACTIVE 3 SD信号動作入力設定 MTR_ORG_FUNC 4 ORG信号機能設定 MTR_ORG_ACTIVE 5 ORG信号動作入力設定 MTR_ORG_EZ_COUNT 6 ORG信号+Z相信号入力停止のZ相信号入力カウント設定 MTR_ALM_FUNC 7 ALM信号機能設定 MTR_SIGNAL_FILTER 8 外部入力フィルタ設定

Page 55: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

- 53 - Interface Corporation

フィルタオプション

コード 値 意 味 MTR_DI 000h デジタル入力(IN16~IN1) MTR_LIMIT 100h 制御信号

+EL,-EL,+SD,-SD,ORG,ALM MTR_SYNC_EXT 200h 同時スタート信号

例) ”MTR_SIGNAL_FILTER | MTR_LIMIT”(108h)と指定することにより、制御信号のフィルタを設定します。 項目と対応型式表

コード 対応製品 MTR_MASK 7204系 MTR_LOGIC 7204,7208,7210,742020系 MTR_SD_FUNC 7208,7210系 MTR_SD_ACTIVE 7208,7210系 MTR_ORG_FUNC 7210系 MTR_ORG_ACTIVE 7210系 MTR_ORG_EZ_COUNT 7210系 MTR_ALM_FUNC 7210系 MTR_SIGNAL_FILTER 7208,7210,742020系

「フィルタオプション」は、742020系のみ指定可能。

Config 設定値を指定します。 [MTR_MASK] ■7204系 bit31~8 :予約 bit7 :予約 bit6 :ALM信号 0-信号入力有効,1-信号入力無効 bit5 :ORG信号 0-信号入力有効,1-信号入力無効 bit4 :予約 bit3 :-EL信号 0-信号入力有効,1-信号入力無効 bit2 :+EL信号 0-信号入力有効,1-信号入力無効 bit1 :-SD信号 0-信号入力有効,1-信号入力無効 bit0 :+SD信号 0-信号入力有効,1-信号入力無効 [MTR_LOGIC] ■7204系 bit31~8 :予約 bit7 :予約 bit6 :ALM信号 0-負論理,1-正論理 bit5 :ORG信号 0-負論理,1-正論理 bit4 :予約 bit3 :-EL信号 0-負論理,1-正論理 bit2 :+EL信号 0-負論理,1-正論理 bit1 :-SD信号 0-負論理,1-正論理 bit0 :+SD信号 0-負論理,1-正論理 ■7208系 bit31~12 :予約 bit11 :予約 bit10 :予約 bit9 :MARK信号 0-負論理,1-正論理 ※ PCI-7209のみ bit8 :INP信号 0-負論理,1-正論理 ※ PCI-7209のみ bit7 :予約 bit6 :ALM信号 0-負論理,1-正論理 bit5 :ORG信号 0-負論理,1-正論理 bit4 :予約 bit3 :-EL信号 0-負論理,1-正論理 bit2 :+EL信号 0-負論理,1-正論理 bit1 :-SD信号 0-負論理,1-正論理 bit0 :+SD信号 0-負論理,1-正論理 ■7210系 bit31~7 :予約 bit6 :ALM信号 0-負論理,1-正論理 bit5 :ORG信号 0-負論理,1-正論理 bit4 :Z信号 0-負論理,1-正論理 bit3 :予約 bit2 :-EL,+EL信号 0-負論理,1-正論理 bit1 :予約 bit0 :-SD,+SD信号 0-負論理,1-正論理

Page 56: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

Interface Corporation - 54 -

■742020系 bit31~12 :予約 bit11 :予約 bit10 :予約 bit9 :予約 bit8 :INP信号 0-負論理,1-正論理 bit7 :予約 bit6 :ALM信号 0-負論理,1-正論理 bit5 :ORG信号 0-負論理,1-正論理 bit4 :予約 bit3 :-EL信号 0-負論理,1-正論理 bit2 :+EL信号 0-負論理,1-正論理 bit1 :-SD信号 0-負論理,1-正論理 bit0 :+SD信号 0-負論理,1-正論理 [MTR_SD_FUNC] ■7208系

コード 値 意 味 MTR_CHANGE_SD_SPEED 0 減速入力 MTR_DEC_STOP_SIGNAL 1 減速停止入力

■7210系

コード 値 意 味 MTR_CHANGE_SD_SPEED 0 減速入力 MTR_DEC_STOP_SIGNAL 1 減速停止入力 MTR_SD_OFF 3 SD信号制御無効

■7204,742020系 SD信号が入力されると減速停止します。 [MTR_SD_ACTIVE] ■7208系

コード 値 意 味 MTR_SIGNAL_LEVEL 0 レベル動作入力 MTR_SIGNAL_EDGE 1 エッジ動作入力

■7210系

コード 値 意 味 MTR_SIGNAL_LEVEL 0 レベル動作入力 MTR_SIGNAL_LATCH 2 ラッチ動作入力 「レベル動作」は SD信号の外部入力 ON時インタフェースモジュール内部の SD信号レベルの状態も変化し(負論理ならば Lowの状態,正論理ならば High)、信号が入力 ON時はそのレベル状態を保ちます。 SD信号の外部入力 OFF時にレベル状態も解除されます。(負論理ならば Highの状態,正論理ならば Low) 「ラッチ動作」は「レベル動作」と同様に SD信号の外部入力 ON時、インタフェースモジュール内部の SD信号レベル状態も変化しますが、SD信号の外部入力の OFF時にレベル状態は解除されず、そのままの状態を保ちつづけます。 このレベル状態をもとの状態に戻す動作(ラッチの解除)は次のとおりです。 「SD信号のラッチの解除はモータの逆方向へのスタートまたは、本関数にてレベル動作入力に設定を切り替えた時」 ■7204,742020系 レベル動作入力 [MTR_ORG_FUNC] ■7210系

コード 値 意 味 MTR_ORG_STOP 0 ORG信号 ONで停止 MTR_ORG_DEC_EZ_STOP 1 ORG信号 ONで減速 EZカウント停止 MTR_ORG_EZ_STOP 2 ORG信号+EZカウント停止

[MTR_ORG_ACTIVE] ■7210系

コード 値 意 味 MTR_SIGNAL_LEVEL 0 レベル動作入力 MTR_SIGNAL_LATCH 2 ラッチ動作入力 「レベル動作」は ORG信号の外部入力 ON時インタフェースモジュール内部の ORG信号レベルの状態も変化し(負論理ならば Lowの状態,正論理ならば High)、信号が入力 ON時はそのレベル状態を保ちます。 ORG信号の外部入力 OFF時にレベル状態も解除されます。(負論理ならば Highの状態,正論理ならば Low)

「ラッチ動作」は「レベル動作」と同様に ORG 信号の外部入力 ON 時、インタフェースモジュール内部の ORG 信号レベル状態も変化しますが、ORG信号の外部入力の OFF時にレベル状態は解除されず、そのままの状態を保ちつづけます。 このレベル状態をもとの状態に戻す動作(ラッチの解除)は次のとおりです。 「本関数にてレベル動作入力に設定を切り替えた時」

Page 57: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

- 55 - Interface Corporation

■7204,7208系,742020系 レベル動作入力 [MTR_ORG_EZ_COUNT] ■7210系 カウント数:1~16 [MTR_ALM_FUNC] ■7210系

コード 値 意 味 MTR_ALM_STOP 0 ALM信号 ONで即停止 MTR_ALM_DEC_STOP 1 ALM信号 ONで減速停止

■7204,7208,742020系 ALM信号 ONで即停止 [MTR_SIGNAL_FILTER] ■7208系

コード 値 意 味 MTR_SIGNAL_LEVEL 0 レベル動作入力 MTR_SIGNAL_EDGE 1 エッジ動作入力 フィルタ感度:1~256 フィルタ感度の設定値は、入力信号の入力感度を決めます。 対象信号:+EL,-EL,+SD,-SD,ALM 入力感度は次式で計算できます。 16×F(フィルタ感度)×基準クロックの 1周期(1/16.384MHz) ■7210系

コード 値 意 味 MTR_OFF 0 フィルタ OFF (0.1μs) MTR_ON 2 フィルタ ON (2.5μs) 対象信号:+EL,-EL,+SD,-SD,ORG,ALM ■742020系

コード 値 意 味 MTR_1MICRO 10h フィルタ (1μs) MTR_10MICRO 11h フィルタ (10μs) MTR_100MICRO 12h フィルタ (100μs)

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

MtrGetLimitConfig 【機能】

制御信号の各種設定を取得します。

【書式】 Declare Function MtrGetLimitConfig Lib “FbiMtr.DLL”( ByVal DeviceHandle As Long, ByVal Mode As Long, ByRef Config As Long )As Long

【パラメータ】

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

Mode

取得項目を指定します。 コード 値 意 味

MTR_MASK 0 マスク設定 MTR_LOGIC 1 入力論理設定 MTR_SD_FUNC 2 SD信号機能設定 MTR_SD_ACTIVE 3 SD信号動作入力設定 MTR_ORG_FUNC 4 ORG信号機能設定 MTR_ORG_ACTIVE 5 ORG信号動作入力設定 MTR_ORG_EZ_COUNT 6 ORG信号+Z相信号入力停止の Z相信号入力カウント設定 MTR_ALM_FUNC 7 ALM信号機能設定 MTR_SIGNAL_FILTER 8 外部入力フィルタ設定

Page 58: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

Interface Corporation - 56 -

フィルタオプション

コード 値 意 味 MTR_DI 000h デジタル入力(IN16~IN1) MTR_LIMIT 100h 制御信号 +EL,-EL,+SD,-SD,ORG,ALM MTR_SYNC_EXT 200h 同時スタート信号 例) ”MTR_SIGNAL_FILTER | MTR_LIMIT”(108h)と指定することにより、制御信号のフィルタを設定します。 項目と対応型式表

コード 対応製品

MTR_MASK 7204系 MTR_LOGIC 7204,7208,7210,742020系 MTR_SD_FUNC 7208,7210系 MTR_SD_ACTIVE 7208,7210系 MTR_ORG_FUNC 7210系 MTR_ORG_ACTIVE 7210系 MTR_ORG_EZ_COUNT 7210系 MTR_ALM_FUNC 7210系 MTR_SIGNAL_FILTER 7208,7210,742020系

「フィルタオプション」は、742020系のみ指定可能。

Config 設定値を格納する変数へのポインタ(参照渡し)を指定します。 [MTR_MASK] ■7204系 bit31~8 :予約 bit7 :予約 bit6 :ALM信号 0-信号入力有効、1-信号入力無効 bit5 :ORG信号 0-信号入力有効、1-信号入力無効 bit4 :予約 bit3 :-EL信号 0-信号入力有効、1-信号入力無効 bit2 :+EL信号 0-信号入力有効、1-信号入力無効 bit1 :-SD信号 0-信号入力有効、1-信号入力無効 bit0 :+SD信号 0-信号入力有効、1-信号入力無効 [MTR_LOGIC] ■7204系 bit31~8 :予約 bit7 :予約 bit6 :ALM信号 0-負論理、1-正論理 bit5 :ORG信号 0-負論理、1-正論理 bit4 :予約 bit3 :-EL信号 0-負論理、1-正論理 bit2 :+EL信号 0-負論理、1-正論理 bit1 :-SD信号 0-負論理、1-正論理 bit0 :+SD信号 0-負論理、1-正論理 ■7208系 bit31~12 :予約 bit11 :予約 bit10 :予約 bit9 :MARK信号 0-負論理、1-正論理 ※PCI-7209のみ bit8 :INP信号 0-負論理、1-正論理 ※PCI-7209のみ bit7 :予約 bit6 :ALM信号 0-負論理、1-正論理 bit5 :ORG信号 0-負論理、1-正論理 bit4 :予約 bit3 :-EL信号 0-負論理、1-正論理 bit2 :+EL信号 0-負論理、1-正論理 bit1 :-SD信号 0-負論理、1-正論理 bit0 :+SD信号 0-負論理、1-正論理 ■7210系 bit31~7 :予約 bit6 :ALM信号 0-負論理、1-正論理 bit5 :ORG信号 0-負論理、1-正論理 bit4 :Z信号 0-負論理、1-正論理 bit3 :予約 bit2 :-EL,+EL信号 0-負論理、1-正論理 bit1 :予約 bit0 :-SD,+SD信号 0-負論理、1-正論理

Page 59: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

- 57 - Interface Corporation

■742020系 bit31~12 :予約 bit11 :予約 bit10 :予約 bit9 :予約 bit8 :INP信号 0-負論理、1-正論理 bit7 :予約 bit6 :ALM信号 0-負論理、1-正論理 bit5 :ORG信号 0-負論理、1-正論理 bit4 :予約 bit3 :-EL信号 0-負論理、1-正論理 bit2 :+EL信号 0-負論理、1-正論理 bit1 :-SD信号 0-負論理、1-正論理 bit0 :+SD信号 0-負論理、1-正論理 [MTR_SD_FUNC] ■7208系

コード 値 意 味 MTR_CHANGE_SD_SPEED 0 減速入力 MTR_DEC_STOP_SIGNAL 1 減速停止入力

■7210系

コード 値 意 味 MTR_CHANGE_SD_SPEED 0 パルス出力モード設定 MTR_DEC_STOP_SIGNAL 1 アイドリングパルス設定 MTR_SD_OFF 3 動作完了フラグタイミング設定

■7204,742020系 SD信号が入力されると減速停止します。 [MTR_SD_ACTIVE] ■7208系

コード 値 意 味 MTR_SIGNAL_LEVEL 0 レベル動作入力 MTR_SIGNAL_EDGE 1 エッジ動作入力

■7210系

コード 値 意 味 MTR_SIGNAL_LEVEL 0 レベル動作入力 MTR_SIGNAL_LATCH 2 ラッチ動作入力 「レベル動作」は SD信号の外部入力 ON時製品内部の SD信号レベルの状態も変化し(負論理ならば Lowの状態,正論理ならば High)、信号が入力 ON時はそのレベル状態を保ちます。 SD信号の外部入力 OFF時にレベル状態も解除されます。(負論理ならば Highの状態,正論理ならば Low) 「ラッチ動作」は「レベル動作」と同様に SD信号の外部入力 ON時、製品内部の SD信号レベル状態も変化しますが、SD信号の外部入力の OFF時にレベル状態は解除されず、そのままの状態を保ちつづけます。 このレベル状態をもとの状態に戻す動作(ラッチの解除)は次のとおりです。 SD信号のラッチの解除はモータの逆方向へのスタートまたは、本関数にてレベル動作入力に設定を切り替えた時になります。 ■7204,742020系 レベル動作入力 [MTR_ORG_FUNC] ■7210系

コード 値 意 味 MTR_ORG_STOP 0 ORG信号 ONで停止 MTR_ORG_DEC_EZ_STOP 1 ORG信号 ONで減速 EZカウント停止 MTR_ORG_EZ_STOP 2 ORG信号+EZカウント停止

[MTR_ORG_ACTIVE] ■7210系

コード 値 意 味 MTR_SIGNAL_LEVEL 0 レベル動作入力 MTR_SIGNAL_LATCH 2 ラッチ動作入力 「レベル動作」は SD信号の外部入力 ON時製品内部の SD信号レベルの状態も変化し(負論理ならば Lowの状態,正論理ならば High)、信号が入力 ON時はそのレベル状態を保ちます。 SD信号の外部入力 OFF時にレベル状態も解除されます。(負論理ならば Highの状態,正論理ならば Low)

Page 60: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

Interface Corporation - 58 -

「ラッチ動作」は「レベル動作」と同様に SD信号の外部入力 ON時、製品内部の SD信号レベル状態も変化しますが、SD信号の外部入力の OFF時にレベル状態は解除されず、そのままの状態を保ちつづけます。 このレベル状態をもとの状態に戻す動作(ラッチの解除)は次のとおりです。 SD信号のラッチの解除はモータの逆方向へのスタートまたは、本関数にてレベル動作入力に設定を切り替えた時になります。 ■7204,7208系,742020系 レベル動作入力 [MTR_ORG_EZ_COUNT] ■7210系 カウント数:1~16

[MTR_ALM_FUNC] ■7210系

コード 値 意 味 MTR_ALM_STOP 0 ALM信号 ONで即停止 MTR_ALM_DEC_STOP 1 ALM信号 ONで減速停止

■7204,7208,742020系 ALM信号 ONで即停止 [MTR_SIGNAL_FILTER] ■7208系

コード 値 意 味 MTR_SIGNAL_LEVEL 0 レベル動作入力 MTR_SIGNAL_EDGE 1 エッジ動作入力 フィルタ感度:1~256 フィルタ感度の設定値は、入力信号の入力感度を決めます。 対象信号:+EL,-EL,+SD,-SD,ALM 入力感度は次式で計算できます。 16×F(フィルタ感度)×基準クロックの 1周期(1/16.384MHz) ■7210系

コード 値 意 味 MTR_OFF 0 フィルタ OFF (0.1µs) MTR_ON 2 フィルタ ON (2.5µs) 対象信号:+EL,-EL,+SD,-SD,ORG,ALM ■742020系

設定項目 値 意 味 MTR_1MICRO 10h フィルタ (1µs) MTR_10MICRO 11h フィルタ (10µs) MTR_100MICRO 12h フィルタ (100µs)

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

MtrSetCounterConfig 【機能】

カウンタ(エンコーダ)の各種設定を行います。(7208,7210系のみ)

【書式】 Declare Function MtrSetCounterConfig Lib “FbiMtr.DLL”( ByVal DeviceHandle As Long, ByVal Mode As Long, ByVal Config As Long )As Long

【パラメータ】

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

Page 61: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

- 59 - Interface Corporation

Mode

設定項目を指定します。 コード 値 意 味

MTR_ENCODER_MODE 0 エンコーダ入力モード MTR_ENCODER_CLEAR 1 エンコーダ値クリア条件

7208系のみ有効な機能 MTR_CODER_CLEAR 2 カウンタクリア条件

7210系のみ有効な機能 Config

設定値を指定します。 [MTR_ENCODER_MODE]

コード 値 意 味

MTR_NOT_COUNT 0 カウントしない MTR_SINGLE 1 1逓倍 MTR_DOUBLE 2 2逓倍 MTR_QUAD 3 4逓倍 MTR_UP_DOWN 4 アップダウンパルス

※ 7210系では、MTR_NOT_COUNTの設定で、内部パルスカウントとなります。 [MTR_ENCODER_CLEAR] bit31~4 :未使用(0を指定) bit3 :制御信号による停止時 0-クリアしない,1-クリアする bit2 :正常停止時 0-クリアしない,1-クリアする [MTR_COUNTER_CLEAR] この設定はエンコーダ、出力パルスカウンタのどちらにも影響します。

コード 値 意 味

MTR_OFF 0 原点復帰動作完了時にクリアしない MTR_ON 1 原点復帰動作完了時にクリアする

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

【備考】

7210系では、動作中、またはカウンタサンプリング中はエンコーダ入力モードの設定は実行できません。

MtrGetCounterConfig 【機能】

カウンタ(エンコーダ)の各種設定を取得します。(7208,7210系のみ)

【書式】 Declare Function MtrGetCounterConfig Lib “FbiMtr.DLL”( ByVal DeviceHandle As Long, ByVal Mode As Long, ByRef Config As Long )As Long

【パラメータ】

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

Mode

取得項目を指定します。 コード 値 意 味

MTR_ENCODER_MODE 0 エンコーダ入力モード MTR_ENCODER_CLEAR 1 エンコーダ値クリア条件

7208系のみ有効な機能 MTR_COUNTER_CLEAR 2 カウンタクリア条件

7210系のみ有効な機能

Page 62: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

Interface Corporation - 60 -

Config

設定値を格納する変数へのポインタ(参照渡し)を指定します。 [MTR_ENCODER_MODE]

コード 値 意 味 MTR_NOT_COUNT 0 カウントしない MTR_SINGLE 1 1逓倍 MTR_DOUBLE 2 2逓倍 MTR_QUAD 3 4逓倍 MTR_UP_DOWN 4 アップダウンパルス

※ 7210系では、MTR_NOT_COUNTの設定で、内部パルスカウントとなります。 [MTR_ENCODER_CLEAR] bit31~4 :未使用(0を指定) bit3 :制御信号による停止時 0-クリアしない、1-クリアする bit2 :正常停止時 0-クリアしない、1-クリアする [MTR_COUNTER_CLEAR] この設定はエンコーダ, 出力パルスカウンタのどちらにも影響します。

コード 値 意 味 MTR_OFF 0 原点復帰動作完了時にクリアしない MTR_ON 1 原点復帰動作完了時にクリアする

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

MtrSetComparator 【機能】

コンパレータの各種設定を行います。(7208系のみ)

【書式】 Declare Function MtrSetComparator Lib “FbiMtr.DLL”( ByVal DeviceHandle As Long, ByVal Mode As Long, ByVal Config As Long )As Long

【パラメータ】

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

Mode

設定項目を指定します。 コード 値 意 味

MTR_COMP_CONFIG1 0 比較条件 1 MTR_COMP_CONFIG2 1 比較条件 2 MTR_PRESET1 3 プリセット 1 MTR_COMP_OBJECT1 6 比較対象 1(P) MTR_COMP_OBJECT2 7 比較対象 2(Q) MTR_COMP_OUT 9 CMP信号出力条件

PCI-7209のみ有効な機能

Page 63: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

- 61 - Interface Corporation

Config

設定値を指定します。 [MTR_COMP_CONFIG1],[MTR_COMP_CONFIG2]

コード 値 意 味

MTR_NO_COMP 0 設定しない MTR_GT_COMP 1 P > Q MTR_EQ_COMP 2 P = Q

[MTR_PRESET1] -8388608~+16777215 [MTR_COMP_OBJECT1],[MTR_COMP_OBJECT2]

コード 値 意 味

MTR_ENCODER 0 エンコーダ MTR_COUNTER 1 カウンタ MTR_REMAINS 2 残りパルス数 MTR_PRESET1 3 プリセット値 1

[MTR_COMP_OUT]

コード 値 意 味

MTR_GT_COMP 1 P > Q MTR_EQ_COMP 2 P = Q

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

【備考】

・ 比較条件 1,2 の 2つを以下のように設定することで、「P≧Q」がコンパレータ条件として 可能となります。 比較条件 1 = MTR_GT_COMP,比較条件 2 = MTR_EQ_COMP または、 比較条件 1 = MTR_EQ_COMP,比較条件 2 = MTR_GT_COMP

・ コンパレータの比較条件として 2つ可能ということで、コンパレータ機能が 2つあるという訳ではありません。

MtrGetComparator 【機能】

コンパレータの各種設定を取得します。(7208系のみ)

【書式】 Declare Function MtrGetComparator Lib “FbiMtr.DLL”( ByVal DeviceHandle As Long, ByVal Mode As Long, ByRef Config As Long )As Long

【パラメータ】

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

Mode

取得項目を指定します。 コード 値 意 味

MTR_COMP_CONFIG1 0 比較条件 1 MTR_COMP_CONFIG2 1 比較条件 2 MTR_PRESET1 3 プリセット 1 MTR_COMP_OBJECT1 6 比較対象 1(P) MTR_COMP_OBJECT2 7 比較対象 2(Q) MTR_COMP_OUT 9 CMP信号出力条件

PCI-7209のみ有効な機能 Config

設定値を格納する変数へのポインタ(参照渡し)を指定します。 [MTR_COMP_CONFIG1],[MTR_COMP_CONFIG2]

コード 値 意 味

MTR_NO_COMP 0 設定しない MTR_GT_COMP 1 P > Q MTR_EQ_COMP 2 P = Q

Page 64: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

Interface Corporation - 62 -

[MTR_PRESET1] -8388608~+16777215 [MTR_COMP_OBJECT1],[MTR_COMP_OBJECT2]

コード 値 意 味 MTR_ENCODER 0 エンコーダ MTR_COUNTER 1 カウンタ MTR_REMAINS 2 残りパルス数 MTR_PRESET1 3 プリセット値 1

[MTR_COMP_OUT]

コード 値 意 味

MTR_GT_COMP 1 P > Q MTR_EQ_COMP 2 P = Q

【戻り値】

正常終了した場合は、MTR_ERROR_SUCCESSが返されます。 MTR_ERROR_SUCCESS以外の値が返された場合については、『92ページ 戻り値一覧』を参照してください。

MtrSetCLR 【機能】

CLR信号の各種設定を行います。(PCI-7209のみ)

【書式】 Declare Function MtrSetCLR Lib “FbiMtr.DLL”( ByVal DeviceHandle As Long, ByVal Mode As Long, ByVal Config As Long )As Long

【パラメータ】

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

Mode

設定項目を指定します。 コード 値 意 味

MTR_METHOD 0 CLR信号出力モード MTR_IDLING 1 出力論理 MTR_FINISH_FLAG 2 CLR信号出力条件

Config

設定値を指定します。 [MTR_METHOD]

コード 値 意 味

MTR_ONESHOT 0 ワンショット出力 MTR_LEVEL 1 レベル出力

[MTR_LOGIC] bit31~4 :予約 bit3 :予約 bit2 :予約 bit1 :予約 bit0 :CLR信号 0-負論理,1-正論理 [MTR_CLR_OUT] bit31~4 :予約 bit3 :制御信号による停止時 0-出力しない,1-出力する bit2 :正常停止時 0-出力しない,1-出力する bit1 :予約 bit0 :予約

【戻り値】

正常終了した場合は、MTR_ERROR_SUCCESSが返されます。 MTR_ERROR_SUCCESS以外の値が返された場合については、『92ページ 戻り値一覧』を参照してください。

Page 65: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

- 63 - Interface Corporation

MtrGetCLR(※ PCI-7209のみ有効) 【機能】

CLR信号の各種設定を取得します。(PCI-7209のみ)

【書式】 Declare Function MtrGetCLR Lib “FbiMtr.DLL”( ByVal DeviceHandle As Long, ByVal Mode As Long, ByRef Config As Long )As Long

【パラメータ】

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

Mode

取得項目を指定します。 コード 値 意 味

MTR_METHOD 0 CLR信号出力モード MTR_LOGIC 1 出力論理 MTR_CLR_OUT 2 CLR信号出力条件

Config

設定値を格納する変数へのポインタ(参照渡し)を指定します。 [MTR_METHOD]

コード 値 意 味 MTR_ONESHOT 0 ワンショット出力 MTR_LEVEL 1 レベル出力

[MTR_LOGIC] bit31~4 :予約 bit3 :予約 bit2 :予約 bit1 :予約 bit0 :CLR信号 0-負論理、1-正論理 [MTR_CLR_OUT] bit31~4 :予約 bit3 :制御信号による停止時 0-出力しない、1-出力する bit2 :正常停止時 0-出力しない、1-出力する bit1 :予約 bit3 :予約

【戻り値】

正常終了した場合は、MTR_ERROR_SUCCESSが返されます。 MTR_ERROR_SUCCESS以外の値が返された場合については、『92ページ 戻り値一覧』を参照してください。

Page 66: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

Interface Corporation - 64 -

MtrSetAccCurve 【機能】

自由曲線加減速の設定を行います。(7204系のみ)

【書式】 Declare Function MtrSetAccCurve Lib “FbiMtr.DLL”( ByVal DeviceHandle As Long, ByVal StageNum As Long, ByRef OriginalAcc As MTRORIGINALACC )As Long

【パラメータ】

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

StageNum

自由曲線加減速の設定段数(2~96)。

OriginalAcc 自由曲線加減速を設定した MTRORIGINALACC構造体へのポインタ(参照渡し)を指定します。

【戻り値】

正常終了した場合は、MTR_ERROR_SUCCESSが返されます。 MTR_ERROR_SUCCESS以外の値が返された場合については、『92ページ 戻り値一覧』を参照してください。

【備考】

本関数で設定した自由曲線加減速を実行するには、MtrSetMotion関数で動作パラメータを設定する構造体(MtrMotion構造体)に「MTR_ACC_ORIGINAL」を設定してください。 また、自由曲線加減速とは下図のようにMtrSetMotion関数で設定する移動速度までの加減速を、N個の段数(StageNumの引数で与えられる)の加減速度、移動パルス数に分散して設定する加減速です。

Page 67: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

- 65 - Interface Corporation

MtrGetAccCurve 【機能】

自由曲線加減速の設定を取得します。(7204系のみ)

【書式】 Declare Function MtrGetAccCurve Lib “FbiMtr.DLL”( ByVal DeviceHandle As Long, ByRef StageNum As Long, ByRef OriginalAcc As MTRORIGINALACC )As Long

【パラメータ】

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

StageNum

自由曲線加減速設定段数を取得する変数へのポインタ(参照渡し)を指定します。 OriginalAcc

自由曲線加減速を取得する MTRORIGINALACC構造体へのポインタ(参照渡し)を指定します。

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

【備考】

OriginalAccは、十分な領域(設定した段数以上の領域)を確保してください。

MtrSetMotion 【機能】

各種動作(連続動作,原点復帰動作,PTP動作,原点復帰動作 2,タイマ動作)パラメータの設定を行います。

【書式】 Declare Function MtrSetMotion Lib “FbiMtr.DLL”( ByVal DeviceHandle As Long, ByVal Mode As Long, ByVal Motion As Long )As Long

【パラメータ】

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

Mode

設定動作を指定します。 コード 値 意 味

MTR_JOG 0 連続動作 MTR_ORG 1 原点復帰動作 MTR_PTP 2 PTP動作 ※ 7210系では、さらに下記の動作設定が可能です。

コード 値 意 味

MTR_ORG_PLS 3 原点復帰動作 2 MTR_TIMER 4 タイマ動作

[原点復帰動作 2] 移動量を設定できる原点復帰動作です。 設定した移動量だけ動作します。 設定した移動量内に ORG信号を感知すると停止します。

[タイマ動作] PTP動作と同様の設定ですが、インタフェースモジュールからパルス出力はされません。 内部カウンタはカウントされます。 ただし、パルス方式がパルス/ディレクション方式の場合、DIR端子から方向信号が出力 されます。

Motion

動作パラメータを設定した MTRMOTION構造体へのポインタ(参照渡し)を指定します。

Page 68: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

Interface Corporation - 66 -

【戻り値】

正常終了した場合は、MTR_ERROR_SUCCESSが返されます。 MTR_ERROR_SUCCESS以外の値が返された場合については、『92ページ 戻り値一覧』を参照してください。

【備考】 ・ 本関数では動作パラメータをセットするのみで、実際の動作(パルス出力)は行いません。 モータ動作の起動は、MtrStartMotion関数で行います。

・ Motionの各メンバ変数に設定する値の範囲は、型式により異なります。 (MTRMOTION構造体を参照してください。)

GPC-7200の DLL(FbiMtr.dll)内の計算誤差により設定した速度よりも実際の速度が違う場合があります。

MtrGetMotion 【機能】

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

【書式】 Declare Function MtrGetMotion Lib “FbiMtr.DLL”( ByVal DeviceHandle As Long, ByVal Mode As Long, ByRef Motion As MTRMOTION )As Long

【パラメータ】

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

Mode

取得動作を指定します。 コード 値 意 味

MTR_JOG 0 連続動作 MTR_ORG 1 原点復帰動作 MTR_PTP 2 PTP動作 ※ 7210系では、さらに下記の動作設定が可能です。

コード 値 意 味

MTR_ORG_PLS 3 原点復帰動作 2 MTR_TIMER 4 タイマ動作

[原点復帰動作 2] 移動量を設定できる原点復帰動作です。 設定した移動量だけ動作します。 設定した移動量内に ORG信号を感知すると停止します。 [タイマ動作] PTP動作と同様の設定ですが、インタフェースモジュールからパルス出力はされません。 内部カウンタはカウントされます。 ただし、パルス方式がパルス/ディレクション方式の場合、DIR端子から方向信号が出力 されます。

Motion

動作パラメータを格納する MTRMOTION構造体へのポインタ(参照渡し)を指定します。 【戻り値】

正常終了した場合は、MTR_ERROR_SUCCESSが返されます。 MTR_ERROR_SUCCESS以外の値が返された場合については、『92ページ 戻り値一覧』を参照してください。

【備考】

速度,加速(減速)時間については、設定した値と異なる値が戻ってくる場合があります。 これはモーションコントローラの仕様上(分解能)起こるものです。 正確には取得された値で制御を行っています。

Page 69: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

- 67 - Interface Corporation

MtrSetMotionLine(※ PCI-7204では使用できません。) 【機能】

直線補間動作パラメータの設定をします。(7208,7210系のみ)

【書式】 Declare Function MtrSetMotionLine Lib “FbiMtr.DLL”( ByVal DeviceHandle As Long, ByRef MotionLine As MTRMOTIONLINE )As Long

【パラメータ】

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

MotionLine

動作パラメータを設定した MTRMOTIONLINE構造体へのポインタ(参照渡し)を指定します。

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

【備考】

・ 直線補間動作は、同一インタフェースモジュール上のデバイスでのみ可能となっています。 (異なるインタフェースモジュール上のデバイスによる直線補間動作を行うことはできません。) このため、PCI-7208では最大で 4デバイス(4軸)、PCI-7209では 2デバイス(2軸)での直線補間動作が可能となります。また、PCI-7210Cでは 1,2軸間、3,4軸間での直線補間動作が可能です。1,3軸間,1,4軸間 2,3軸間,2,4軸間での直線補間動作はできません。 PCI-7211Cでは 2軸での直線補間動作となります。

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

[7208系の場合] 各軸に本関数を実行した後、各軸に MtrSetSync関数および、MtrStartMotion関数を実行します。その後、MtrStartSync関数による同時起動によりモータが動作します。 実行手順

1. MtrSetMotionLine関数による直線補間動作パラメータの設定 2. MtrSetSync関数による同時起動要求 3. MtrStartMotion関数による動作起動待ち状態 4. MtrStartSync関数による同時起動(外部接続が必要となります。)

[7210系の場合] 本関数は 1軸目、3軸目のデバイスにのみ設定可能です。 2軸目、4軸目のデバイスに本関数を実行する必要はありません。1軸目もしくは 3軸目に本関数を実行した後、1軸目もしくは 3軸目のデバイスに対して、MtrStartMotion関数を実行することにより直線補間動作が起動します。2軸目もしくは4軸目のデバイスをオープンしていなかった場合、エラーとなります。 実行手順

1. MtrSetMotionLine関数による直線補間動作パラメータの設定 2. MtrStartMotion関数による動作起動

GPC-7200の DLL(FbiMtr.dll)内の計算誤差により設定した速度よりも実際の速度が違う場合があります。

Page 70: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

Interface Corporation - 68 -

MtrGetMotionLine 【機能】

直線補間動作パラメータの設定を取得します。(7208,7210系のみ)

【書式】 Declare Function MtrGetMotionLine Lib “FbiMtr.DLL”( ByVal DeviceHandle As Long, ByRef MotionLine As MTRMOTIONLINE )As Long

【パラメータ】 DeviceHandle

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

MotionLine 動作パラメータを格納する MTRMOTIONLINE構造体へのポインタ(参照渡し)を指定します。

【戻り値】

正常終了した場合は、MTR_ERROR_SUCCESSが返されます。 MTR_ERROR_SUCCESS以外の値が返された場合については、『92ページ 戻り値一覧』を参照してください。

【備考】 速度、加速(減速)時間については、設定した値と異なる値が戻ってくる場合があります。 これはモーションコントローラの仕様上(分解能)起こるものです。 正確には取得された値で制御を行っています。

MtrStartMotion 【機能】

各種動作(連続動作,原点復帰動作,原点復帰動作 2,PTP動作,タイマ動作,直線補間動作)を起動します。

【書式】 Declare Function MtrStartMotion Lib “FbiMtr.DLL”( ByVal DeviceHandle As Long, ByVal Mode As Long )As Long

【パラメータ】

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

Mode 起動動作を指定します。

コード 値 意 味

MTR_JOG 0 連続動作 MTR_ORG 1 原点復帰動作 MTR_PTP 2 PTP動作 MTR_ORG_PLS 3 原点復帰動作 2 (7210系のみ) MTR_TIMER 4 タイマ動作 (7210系のみ) MTR_LINE 6 直線補間動作 (7208,7210系のみ)

加減速オプション

コード 値 意 味

MTR_CONST 10000h 一定速動作をします。 ※ 移動速度にて起動します。

※ 加減速オプションは起動動作に OR指定することにより設定します。 (オプションを設定しない場合は、加減速動作を行います。) 例) 「MTR_CONST | MTR_PTP」 (10002h) 一定速 PTP動作を起動します。 「MTR_PTP」と指定すると、加減速 PTP動作を起動します。

【戻り値】

正常終了した場合は、MTR_ERROR_SUCCESSが返されます。『92ページ 戻り値一覧』を参照してください。

Page 71: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

- 69 - Interface Corporation

【備考】

[7208系] ・ 直線補間動作は、MtrStartSync関数による同時起動を使用して行います。(外部接続が必要となります) ・ MtrSetSyc関数による同時起動要求後、本関数により直線補間動作の起動待ち状態とし、MtrStartSync関数を実行することにより直線補間動作を起動します。 また、直線補間動作に加減速オプション MTR_CONSTを指定する場合には、直線補間動作を行う全てのデバイスに対してMTR_CONSTを指定してください。(指定していない場合には、誤動作,暴走の危険性があります)

・ 加減速オプション MTR_CONST を指定した場合には、±SD 信号入力による減速(減速停止)は行いません。(MtrStopMotion関数による減速停止も行うことはできません)

[7210系] ・ 直線補間動作では、1軸目もしくは 3軸目より本関数を実行してください。(PCI-7210C) ・ 直線補間動作では、1軸目より本関数を実行してください。(PCI-7211C) ・ MtrSetSyc関数, MtrStartSync関数の実行は必要ありません。 [7204系] ・ 原点復帰動作は、一定速動作のみとなります。

(MTR_CONSTを指定しない場合においても一定速動作となります) ・ 原点復帰動作において ORG信号(原点信号)の検知により動作を停止した場合、カウンタ値は”0”にクリアされます。

MtrSetSyc関数により同時起動が要求されている場合には、本関数実行後、実際の動作(パルス出力)は行いません。(『同時起動の手順』)

MtrStopMotion 【機能】

動作を停止させます。

【書式】 Declare Function MtrStopMotion Lib “FbiMtr.DLL”( ByVal DeviceHandle As Long, ByVal Mode As Long, )As Long

【パラメータ】

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

Mode 停止動作を指定します。

コード 値 意 味

MTR_DEC_STOP 0 減速停止 MTR_IMMEDIATE_STOP 1 即時停止 MTR_STOP_ALL 2 一斉停止

[一斉停止] 7208系における直線補間動作時にのみ指定可能となっています。 それ以外の製品型式、および直線補間動作以外の場合には指定することはできません。

【戻り値】

正常終了した場合は、MTR_ERROR_SUCCESSが返されます。 MTR_ERROR_SUCCESS以外の値が返された場合については、『92ページ 戻り値一覧』を参照してください。

【備考】

[7208系] ・ 直線補間動作時に減速停止を指定した場合、直線補間動作を行っている全てのデバイスが減速停止します。 ・ 直線補間動作時に即時停止を指定した場合、指定したデバイスのみが即時停止します。 ・ 一定速動作時(MtrStartMotion 関数において、加減速オプション MTR_CONST を指定)には、減速停止を指定した場合においても、停止は即時停止となります。

Page 72: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

Interface Corporation - 70 -

MtrRestart 【機能】

停止した動作を再開させます。(7208,7210系のみ)

【書式】 Declare Function MtrRestart Lib “FbiMtr.DLL”( ByVal DeviceHandle As Long )As Long

【パラメータ】 DeviceHandle

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

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

【備考】

・ 本関数では、MtrStopMotion関数により停止させたデバイスの動作のみを再開させます。 それ以外の要因により停止した場合(パルス出力完了,制御信号による停止等)には、動作を再開させることはできません。

・ MtrSstSync 関数により同時起動が要求されている場合には、本関数実行後、対応する TRIGIN 端子に同期信号が入力されるまで動作は起動(再開)されません。 同時起動が要求されている場合には、同期信号の外部接続を行い、同期タイミング信号(TRGOUT)が接続されているデバイスにおいて、MtrStartSync関数を実行してください。

MtrSetSync 【機能】

同時起動の設定を行います。

【書式】 Declare Function MtrSetSync Lib “FbiMtr.DLL”( ByVal DeviceHandle As Long, ByVal Synchronize As Long )As Long

【パラメータ】

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

Synchronize

設定値を指定します。 コード 値 意 味

MTR_RESET_SYNC_START 0 同時起動要求解除 MTR_SET_SYNC_START 1 同時起動要求

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

【備考】

本関数では同時起動を要求するのみで、実際の動作(パルス出力)は行いません。 起動の開始はベースとなるデバイスにおいて、MtrStartSync関数を実行することにより行います。(『同時起動の手順』)

Page 73: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

- 71 - Interface Corporation

MtrGetSync 【機能】

同時起動の設定を取得します。

【書式】 Declare Function MtrGetSync Lib “FbiMtr.DLL”( ByVal DeviceHandle As Long, ByRef Synchronize As Long )As Long

【パラメータ】

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

Synchronize

同時起動設定を格納する変数へのポインタ(参照渡し)を指定します コード 値 意 味

MTR_RESET_SYNC_START 0 同時起動要求解除 MTR_SET_SYNC_START 1 同時起動要求

【戻り値】

正常終了した場合は、MTR_ERROR_SUCCESSが返されます。 MTR_ERROR_SUCCESS以外の値が返された場合については、『92ページ 戻り値一覧』を参照してください。

MtrStartSync 【機能】

同時起動を行います。

【書式】 Declare Function MtrStartSync Lib “FbiMtr.DLL”( ByVal DeviceHandle As Long, )As Long

【パラメータ】

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

【戻り値】

正常終了した場合は、MTR_ERROR_SUCCESSが返されます。 MTR_ERROR_SUCCESS以外の値が返された場合については、『92ページ 戻り値一覧』を参照してください。

【備考】

・ 同時起動を行う際には、MtrSetSync関数を実行して同時起動の要求を行ってください。(『同時起動の手順』を参照) ・ 7208系における直線補間動作は、本関数による同時起動を使用して行います。(外部接続が必要となります)

※ 外部接続に関しては、製品のマニュアルを参照してください。

MtrSingleStep 【機能】

1パルス出力を行います。

【書式】 Declare Function MtrSingleStep Lib “FbiMtr.DLL”( ByVal DeviceHandle As Long, ByVal Dir As Long )As Long

【パラメータ】 DeviceHandle

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

動作方向を指定します。 コード 値 意 味

MTR_CW 1 +方向へ移動 MTR_CCW -1 -方向へ移動

Page 74: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

Interface Corporation - 72 -

【戻り値】

正常終了した場合は、MTR_ERROR_SUCCESSが返されます。 MTR_ERROR_SUCCESS以外の値が返された場合については、『92ページ 戻り値一覧』を参照してください。

【備考】

[7204,7208,7210系] MtrSetSync 関数により同時起動が要求されている場合には、本関数実行後、対応する TRIGIN 端子に同期信号が入力されるまで動作は起動されません。 同時起動が要求されている場合には、同期信号の外部接続を行い、同期タイミング信号(TRGOUT)が接続されているデバイスにおいて MtrStartSync関数を実行してください。 [742020系] MtrSetSync関数により同時起動が要求されている場合には、本関数実行後、SSTA端子に同時スタート信号入力または、MtrStartSync関数が実行されるまで動作は起動されません。

MtrChangeSpeed 【機能】

動作中に移動速度を変更します。

【書式】 Declare Function MtrChangeSpeed Lib “FbiMtr.DLL”( ByVal DeviceHandle As Long, ByVal Mode As Long, ByVal Speed As Long )As Long

【パラメータ】

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

Mode

速度変更方式を指定します。 コード 値 意 味

MTR_IMMEDIATE_CHANGE 0 即時速度変更 MTR_ACCDEC_CHANGE 1 加減速速度変更 MTR_LOW_SPEED 3 起動時速度へ即変更 MTR_DEC_LOW_SPEED 4 起動時速度へ減速 MTR_RELEASE_DEC 5 起動時速度への減速解除 MTR_HOLD_NOW_SPEED 6 現在の速度へ固定 MTR_RELEASE_HOLD 7 現在の速度への固定解除 項目と対応型式表

コード 対応製品

MTR_IMMEDIATE_CHANGE 7204,7210,742020系 MTR_ACCDEC_CHANGE 7204,7208,7210,742020系 MTR_LOW_SPEED 7210系 MTR_DEC_LOW_SPEED 7208,7210系 MTR_RELEASE_DEC 7208系 MTR_HOLD_NOW_SPEED 7208系 MTR_RELEASE_HOLD 7208系

Speed [MTR_IMMEDIATE_CHANGE] ■7204系 2~66670[pps] 基準クロックにより設定範囲が異なります。 ■7210系 1~1000000[pps] 周波数倍率により設定範囲が異なります。 ■742020系 1~100000[pps] 速度倍率により設定範囲が異なります。 ※ 起動時速度より大きい速度を設定してください。 [MTR_ACCDEC_CHANGE] ■7204系 2~66,670[pps] 基準クロックにより設定範囲が異なります。

Page 75: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

- 73 - Interface Corporation

■7208系 1~1000000[pps] 速度分解能により設定範囲が異なります。 ■7210系 1~1000000[pps] 周波数倍率により設定範囲が異なります。 ■742020系 1~100000[pps] 速度倍率により設定範囲が異なります。 ※ 起動時速度より大きい速度を設定してください。 [MTR_LOW_SPEED],[MTR_DEC_LOW_SPEED],[MTR_RELEASE_DEC] [MTR_HOLD_NOW_SPEED],[MTR_RELEASE_HOLD] Speedは未使用。(0を指定してください。)

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

【備考】

・ Speedにて指定した速度まで、正確に変更されない場合があります。これはモーションコントローラの仕様上(分解能)起こるものです。

・ 加減速速度変更における加減速時間/加減速パルス数は、MtrSetMotion関数で指定した値に従います。 ・ 起動時速度へ減速,起動時速度への減速解除,現在の速度へ固定,現在の速度への固定解除の場合には Speedの設定内容は無効となります。(0を指定してください)

・ 7204系における即時速度変更、加減速速度変更は、起動時速度~移動速度の速度区間でのみ可能となっています。 ・ 7208 系における速度変更は、加減速動作時にのみ可能となっています。(MtrStartMotion 関数における加減速オプション

MTR_CONSTの指定による一定速動作時には、速度変更を行うことはできません。) GPC-7200の DLL(FbiMtr.dll)内の計算誤差により設定した速度よりも実際の速度が違う場合があります。

MtrReadSpeed 【機能】

現在の移動速度を読み出します。

【書式】 Declare Function MtrReadSpeed Lib “FbiMtr.DLL”( ByVal DeviceHandle As Long, ByVal Speed As Long )As Long

【パラメータ】

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

Speed

移動速度を格納する変数へのポインタ(参照渡し)を指定します。

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

【備考】

移動速度読み出しは、7402 系ではできません。

Page 76: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

Interface Corporation - 74 -

MtrReadCounter 【機能】

各種カウンタ値の読み込みを行います。

【書式】 Declare Function MtrReadCounter Lib “FbiMtr.DLL”( ByVal DeviceHandle As Long, ByVal Mode As Long, ByRef Pos As Long )As Long

【パラメータ】

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

Mode

対象カウンタを指定します。 コード 値 意 味

MTR_ENCODER 0 エンコーダ値 7208,7210系のみ有効な機能

MTR_COUNTER 1 出力パルスカウンタ値 MTR_REMAINS 2 残りパルス数

7208,7210系のみ有効な機能 Pos

各種カウンタ値を格納する領域へのポインタ(参照渡し)を指定してください。

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

【備考】

7210系では、MtrSetCounterConfig関数のエンコーダ入力モード設定(MTR_ENCODER_MODE)にて MTR_NOT_COUNTを設定していた場合、出力パルスカウンタ値の読み込みになります。 MTR_NOT_COUNT以外を設定していた場合、エンコーダ値の読み込みになります。 また、7210系では、エンコーダ, 出力パルスカウンタとも 0~268,435,455 の 28ビット符号無しカウンタです。

MtrWriteCounter 【機能】

各種カウンタ値の書き込みを行います。

【書式】 Declare Function MtrWriteCounter Lib “FbiMtr.DLL”( ByVal DeviceHandle As Long, ByVal Mode As Long, ByVal Pos As Long )As Long

【パラメータ】

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

Mode

対象カウンタを指定します。 コード 値 意 味

MTR_ENCODER 0 エンコーダ値 7208,7210系のみ有効な機能

MTR_COUNTER 1 出力パルスカウンタ値 Pos

カウンタ値

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

【備考】

7210 系は、MtrSetCounterConfig 関数のエンコーダ入力モード設定(MTR_ENCODER_MODE)にて MTR_NOT_COUNT を設定していた場合、出力パルスカウンタ値の書き込みになります。 MTR_NOT_COUNT以外を設定していた場合、エンコーダ値の書き込みになります。 また、7210系では、エンコーダ、出力パルスカウンタとも 0~268,435,455 の 28ビット符号無しカウンタです。(範囲外の設定はできません)

Page 77: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

- 75 - Interface Corporation

MtrClearCounter 【機能】

各種カウンタ値をクリアします。

【書式】 Declare Function MtrClearCounter Lib “FbiMtr.DLL”( ByVal DeviceHandle As Long, ByVal Mode As Long )As Long

【パラメータ】

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

Mode

対象カウンタを指定します。 コード 値 意 味

MTR_ENCODER 0 エンコーダ値 7208,7210系のみ有効な機能

MTR_COUNTER 1 出力パルスカウンタ値

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

【備考】

7210系では、MtrSetCounterConfig関数のエンコーダ入力モード設定(MTR_ENCODER_MODE)にて MTR_NOT_COUNTを設定していた場合、出力パルスカウンタ値のクリアとなります。 MTR_NOT_COUNT以外を設定していた場合、エンコーダ値のクリアとなります。

MtrGetStatus 【機能】

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

【書式】 Declare Function MtrGetStatus Lib “FbiMtr.DLL”( ByVal DeviceHandle As Long, ByVal Mode As Long, ByRef Status As Long )As Long

【パラメータ】

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

Mode

取得項目を指定します。 コード 値 意 味

MTR_BUSY 0 動作状態 MTR_FINISH_STATUS 1 終了ステータス MTR_LIMIT_STATUS 2 制御信号 MTR_INTERLOCK_STATUS 4 インタロック信号 MTR_ERROR_CODE 5 エラーステータス

7204系のみ有効な機能 MTR_COMPARATOR 7 コンパレータステータス

7208系のみ有効な機能 Status

各種ステータスを格納する変数へのポインタ(参照渡し)を指定します。 [MTR_BUSY] bit31~8 :予約 bit7 :CLR CLR信号出力状態 0-OFF 1-ON bit6 :INP INP信号入力待ち 0-OFF 1-ON bit5 :STOP 動作完了フラグ 0-OFF 1-ON bit4 :ERR エラーフラグ 0-OFF 1-ON bit3 :WAIT 同時起動信号待ち 0-OFF 1-ON bit2 :DEC 減速中 0-NO 1-YES bit1 :ACC 加速中 0-NO 1-YES bit0 :BUSY 動作中 0-NO 1-YES

Page 78: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

Interface Corporation - 76 -

同時起動入力待ち 同時起動動作時のみに確認できます。 エラーフラグ ■7208系 bit5,4 = 1,0 の場合、終了ステータス:bit13,12,9,8,1,0 bit5,4 = 1,1 の場合、終了ステータス:bit14,11,10 ■7210系 異常ステータスを示す。 INP信号入力待ち INP信号入力待ち状態時のみ確認できます。 項目と対応型式表

製 品 対応ステータス

7204系 BUSY PCI-7208 STOP,ERR,DEC,ACC,BUSY PCI-7209 CLR,STOP,ERR,DEC,ACC,BUSY 7210系 STOP,WAIT,DEC,ACC,BUSY 742020系 INP,STOP,WAIT,DEC,ACC,BUSY

[MTR_FINISH_STATUS] bit31~16 :予約 bit15 :予約 bit14 :ALM ALM信号により停止 0-NO 1-YES bit13 :ORG ORG信号により停止 0-NO 1-YES bit12 :Z Z相信号により停止 0-NO 1-YES bit11 :-EL -EL信号により停止 0-NO 1-YES bit10 :+EL +EL信号により停止 0-NO 1-YES bit9 :-SD -SD信号により停止 0-NO 1-YES bit8 :+SD +SD信号により停止 0-NO 1-YES bit7~2 :予約 bit1 :CMD MtrStopMotion関数により停止 0-NO 1-YES bit0 :FNS パルス出力完了により停止 0-NO 1-YES 項目と対応型式表

製 品 対応ステータス

7204系 ALM,ORG,-EL,+EL,-SD,+SD,CMD,FNS 7208系 ALM,Z,ORG,-EL,+EL,- SD,+SD,CMD,FNS 7210系 742020系

ALM,ORG,-EL,+EL,-SD,+SD,CMD,FNS

[MTR_LIMIT_STATUS]

bit31~12 :予約 bit11 :予約 bit10 :予約 bit9 :MARK MARK信号 0-入力なし 1-入力あり bit8 :INP INP信号 0-入力なし 1-入力あり bit7 :予約 bit6 :ALM ALM信号 0-入力なし 1-入力あり bit5 :ORG ORG信号 0-入力なし 1-入力あり bit4 :Z Z相信号 0-入力なし 1-入力あり bit3 :-EL -EL信号 0-入力なし 1-入力あり bit2 :+EL +EL信号 0-入力なし 1-入力あり bit1 :-SD -SD信号 0-入力なし 1-入力あり bit0 :+SD +SD信号 0-入力なし 1-入力あり

項目と対応型式表 製 品 対応ステータス

7204系 ALM,ORG,-EL,+EL,-SD,+SD PCI-7208 ALM,ORG,Z,-EL,+EL,-SD,+SD PCI-7209 MARK,INP,ALM,ORG,Z,-EL,+EL,-SD,+SD 7210系 ALM,ORG,Z,-EL,+EL,-SD,+SD 742020系 INP,ALM,ORG,-EL,+EL,-SD,+SD

[MTR_INTERLOCK_STATUS]

コード 値 意 味

MTR_ILOCK_OFF 0 インタロック信号入力なし MTR_ILOCK_ON 1 インタロック信号入力あり

インタロック解除は、インタロック信号の入力(ハードウェア)を解除した後、MtrOffInterLock 関数(ソフトウェアによるインタロック解除)を実行してください。 インタロック解除を行うまで、起動関数(MtrStartMotion関数等)の実行はできません。

Page 79: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

- 77 - Interface Corporation

[MTR_ERROR_CODE]

値 意 味 00h エラーなし 01h 未定義命令を受け取った 02h 初期設定命令がされていない 03h EL,SD,ALM信号が入力されているため、動作を起動できない 04h 移動量が 0のため、動作を起動できない 05h 停止中に停止命令を受け取った 06h コマンドの先行しないデータを受け取った 07h データ待ち中にコマンドを受け取った 08h ORG信号が入力されているため、原点復帰動作を起動できない 09h 動作中に処理できない命令を受け取った 0Ah 初期設定命令の速度値が異常 0Bh 初期設定命令の加減速パルス数が過小 0Ch 初期設定命令の起動時速度が移動速度より大きい 0Dh 動作命令または速度変更命令時に指定された速度が範囲外 0Eh ±SD信号検知または減速停止による減速中に速度変更命令を受け取った 0Fh ±SD信号検知または減速停止による減速中に減速停止命令を受け取った 10h 停止中に速度変更命令を受け取った 11h 初期設定命令時の加減速階段数の異常(自由曲線加減速指定時) 12h 初期設定命令時の加減速階段における速度異常(自由曲線加減速指定時) 13h 初期設定命令時の加減速階段における加減速パルス数異常(自由曲線加減速指定時)

エラーステータスは読み出しクリアです。 [MTR_COMPARATOR] bit31~4 :予約 bit3 :予約 bit2 :予約 bit1 :比較条件 2 0-NO 1-YES bit0 :比較条件 1 0-NO 1-YES

【戻り値】

正常終了した場合は、MTR_ERROR_SUCCESSが返されます。 MTR_ERROR_SUCCESS以外の値が返された場合については、『92ページ 戻り値一覧』を参照してください。

【備考】

[7204系] 動作状態(MTR_BUSY) 加速、減速中も bit0が”1”になります。 終了ステータス(MTR_LIMIT_STATUS) ・ 複数の bitが”1”となる場合もあります。 例)+EL信号入力により停止:401h

・ 読み出しクリアです。 [7208系] 動作状態(MTR_BUSY) 加速中、減速中は、03h,05hが返ります(bit0も”1”となります)。 終了ステータス(MTR_LIMIT_STATUS) 動作中は取得できません。 [7210系] 動作状態(MTR_BUSY) ・ 加速中、減速中は、03h,05hが返ります(bit0も”1”となります)。 ・ bit0 はインタフェースモジュールからのパルス出力を監視しており、インタフェースモジュールからパルス出力が行われている間は“1”となります。 パルス出力がなくなると”0”となります。

・ bit5はインタフェースモジュールからのパルス出力が停止し、停止割り込みが発生した時に”1”となります。 ※MtrSetEventMask関数にて「動作停止割り込み」を有効にしていないと機能しません。

終了ステータス(MTR_LIMIT_STATUS) ・ 動作中は取得できません。 ・ MtrSetEventMask関数にて動作停止割り込みを設定していないと確認できません。(設定していない場合、”0”が返されます) ・ Z相での割り込みの確認は対応していません。 [742020系] 動作状態(MTR_BUSY) ・ 加速中、減速中は、03h,05hが返ります(bit0も”1”となります)。 ・ bit0 はインタフェースモジュールからのパルス出力を監視しており、インタフェースモジュールからパルス出力が行われている間は“1”となります。 パルス出力がなくなると”0”となります。

Page 80: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

Interface Corporation - 78 -

MtrOutputDO 【機能】

デジタル出力を制御します。

【書式】 Declare Function MtrOutputDO Lib “FbiMtr.DLL”( ByVal DeviceHandle As Long, ByVal Do As Long )As Long

【パラメータ】

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

Do

出力値を指定します。 [7204系,PCI-7209,PCI-7211C] bit31~4 :予約 bit3 :DO4 0-Highを出力 1-Lowを出力 bit2 :DO3 0-Highを出力 1-Lowを出力 bit1 :DO2 0-Highを出力 1-Lowを出力 bit0 :DO1 0-Highを出力 1-Lowを出力 [742020系] (1軸) bit31~8 :予約 bit7 :OUT8 0-Highを出力 1-Lowを出力 bit6 :OUT7 0-Highを出力 1-Lowを出力 bit5 :OUT6 0-Highを出力 1-Lowを出力 bit4 :OUT5 0-Highを出力 1-Lowを出力 bit3 :OUT4 0-Highを出力 1-Lowを出力 bit2 :OUT3 0-Highを出力 1-Lowを出力 bit1 :OUT2 0-Highを出力 1-Lowを出力 bit0 :OUT1 0-Highを出力 1-Lowを出力 (2軸) bit31~8 :予約 bit7 :OUT16 0-Highを出力 1-Lowを出力 bit6 :OUT15 0-Highを出力 1-Lowを出力 bit5 :OUT14 0-Highを出力 1-Lowを出力 bit4 :OUT13 0-Highを出力 1-Lowを出力 bit3 :OUT12 0-Highを出力 1-Lowを出力 bit2 :OUT11 0-Highを出力 1-Lowを出力 bit1 :OUT10 0-Highを出力 1-Lowを出力 bit0 :OUT9 0-Highを出力 1-Lowを出力

【戻り値】

正常終了した場合は、MTR_ERROR_SUCCESSが返されます。 MTR_ERROR_SUCCESS以外の値が返された場合については、『92ページ 戻り値一覧』を参照してください。

【備考】

・ PCI-7208,PCI-7210Cではデジタル出力機能をサポートしていないため、本関数を使用することはできません。 ・ PCI-7211Cのデジタル出力を制御する場合、インタロックが解除されている必要があります。

MtrInputDI 【機能】

デジタル入力の状態を取得します。

【書式】 Declare Function MtrInputDI Lib “FbiMtr.DLL”( ByVal DeviceHandle As Long, ByRef Di As Long )As Long

Page 81: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

- 79 - Interface Corporation

【パラメータ】

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

Di

入力状態を格納する変数へのポインタ(参照渡し)を指定します。 [7204系,PCI-7209,PCI-7211C] bit31~4 :予約 bit3 :IN4 0-端子状態が High 1-端子状態が Low bit2 :IN3 0-端子状態が High 1-端子状態が Low bit1 :IN2 0-端子状態が High 1-端子状態が Low bit0 :IN1 0-端子状態が High 1-端子状態が Low [742020系] (1軸) bit31~8 :予約 bit7 :IN8 0-端子状態が High 1-端子状態が Low bit6 :IN7 0-端子状態が High 1-端子状態が Low bit5 :IN6 0-端子状態が High 1-端子状態が Low bit4 :IN5 0-端子状態が High 1-端子状態が Low bit3 :IN4 0-端子状態が High 1-端子状態が Low bit2 :IN3 0-端子状態が High 1-端子状態が Low bit1 :IN2 0-端子状態が High 1-端子状態が Low bit0 :IN1 0-端子状態が High 1-端子状態が Low (2軸) bit31~8 :予約 bit7 :IN16 0-端子状態が High 1-端子状態が Low bit6 :IN15 0-端子状態が High 1-端子状態が Low bit5 :IN14 0-端子状態が High 1-端子状態が Low bit4 :IN13 0-端子状態が High 1-端子状態が Low bit3 :IN12 0-端子状態が High 1-端子状態が Low bit2 :IN11 0-端子状態が High 1-端子状態が Low bit1 :IN10 0-端子状態が High 1-端子状態が Low bit0 :IN9 0-端子状態が High 1-端子状態が Low

【戻り値】

正常終了した場合は、MTR_ERROR_SUCCESSが返されます。 MTR_ERROR_SUCCESS以外の値が返された場合については、『92ページ 戻り値一覧』を参照してください。

【備考】

PCI-7208,PCI-7210Cではデジタル入力機能をサポートしていないため、本関数を使用することはできません。

MtrOutputDO1 【機能】

デジタル出力 DO1を制御します。(PCI-7209,7211Cのみ)

【書式】 Declare Function MtrOutputDO1 Lib “FbiMtr.DLL”( ByVal DeviceHandle As Long, ByVal Do1 As Long )As Long

【パラメータ】

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

Do1

出力値を指定します。 bit31~4 :予約 bit3 :予約 bit2 :予約 bit1 :予約 bit0 :DO1 0-Highを出力 1-Lowを出力

【戻り値】

正常終了した場合は、MTR_ERROR_SUCCESSが返されます。 MTR_ERROR_SUCCESS以外の値が返された場合については、『92ページ 戻り値一覧』を参照してください。

【備考】 ・ PCI-7211Cの場合、インタロックが解除されている必要があります。 ・ 本関数では、MtrOutputDO関数とは異なり、DO1のみを制御することが可能です。

(MtrOutputDO関数では、DO1~DO4を一括して制御します。)

Page 82: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

Interface Corporation - 80 -

MtrOutputDO2 【機能】

デジタル出力 DO2を制御します。(PCI-7209,7211Cのみ)

【書式】 Declare Function MtrOutputDO2 Lib “FbiMtr.DLL”( ByVal DeviceHandle As Long, ByVal Do2 As Long )As Long

【パラメータ】

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

Do2

出力値を指定します。 bit31~4 :予約 bit3 :予約 bit2 :予約 bit1 :DO2 0-Highを出力 1-Lowを出力 bit0 :予約

【戻り値】

正常終了した場合は、MTR_ERROR_SUCCESSが返されます。 MTR_ERROR_SUCCESS以外の値が返された場合については、『92ページ 戻り値一覧』を参照してください。

【備考】

・ PCI-7211Cの場合、インタロックが解除されている必要があります。 ・ 本関数では、MtrOutputDO関数とは異なり、DO2のみを制御することが可能です。

(MtrOutputDO関数では、DO1~DO4を一括して制御します。)

MtrOutputDO3 【機能】

デジタル出力 DO3を制御します。(PCI-7209のみ)

【書式】 Declare Function MtrOutputDO3 Lib “FbiMtr.DLL”( ByVal DeviceHandle As Long, ByVal Do3 As Long )As Long

【パラメータ】

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

Do3

出力値を指定します。 bit31~4 :予約 bit3 :予約 bit2 :DO3 0-Highを出力 1-Lowを出力 bit1 :予約 bit0 :予約

【戻り値】

正常終了した場合は、MTR_ERROR_SUCCESSが返されます。 MTR_ERROR_SUCCESS以外の値が返された場合については、『92ページ 戻り値一覧』を参照してください。

【備考】 本関数では、MtrOutputDO関数とは異なり、DO3のみを制御することが可能です。 (MtrOutputDO関数では、DO1~DO4を一括して制御します。)

Page 83: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

- 81 - Interface Corporation

MtrOutputDO4 【機能】

デジタル出力 DO4を制御します。(PCI-7209のみ)

【書式】 Declare Function MtrOutputDO4 Lib “FbiMtr.DLL”( ByVal DeviceHandle As Long, ByVal Do4 As Long )As Long

【パラメータ】

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

Do4

出力値を指定します。 bit31~4 :予約 bit3 :DO4 0-Highを出力 1-Lowを出力 bit2 :予約 bit1 :予約 bit0 :予約

【戻り値】

正常終了した場合は、MTR_ERROR_SUCCESSが返されます。 MTR_ERROR_SUCCESS以外の値が返された場合については、『92ページ 戻り値一覧』を参照してください。

【備考】 本関数では、MtrOutputDO関数とは異なり、DO4のみを制御することが可能です。 (MtrOutputDO関数では、DO1~DO4を一括して制御します。)

MtrOutputCLR 【機能】

CLR信号を制御します。(PCI-7209のみ)

【書式】 Declare Function MtrOutputCLR Lib “FbiMtr.DLL”( ByVal DeviceHandle As Long, ByVal CLR As Long )As Long

【パラメータ】

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

CLR

出力値を指定します。 bit31~8 :予約 bit7 :CLR 0-OFFを出力 1-ONを出力 bit6 :予約 bit5 :予約 bit4 :予約 bit3 :予約 bit2 :予約 bit1 :予約 bit0 :予約

OFF : 負論理:Highを出力 正論理:Low を出力

ON : 負論理:Lowを出力 正論理:Highを出力

【戻り値】

正常終了した場合は、MTR_ERROR_SUCCESSが返されます。 MTR_ERROR_SUCCESS以外の値が返された場合については、『92ページ 戻り値一覧』を参照してください。

Page 84: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

Interface Corporation - 82 -

MtrOutputSON 【機能】

SON信号を制御します。(PCI-7209のみ)

【書式】 Declare Function MtrOutputSON Lib “FbiMtr.DLL”( ByVal DeviceHandle As Long, ByVal SON As Long )As Long

【パラメータ】

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

SON

出力値を指定します。 bit31~8 :予約 bit7 :予約 bit6 :SON 0-Highを出力 1-Lowを出力 bit5 :予約 bit4 :予約 bit3 :予約 bit2 :予約 bit1 :予約 bit0 :予約

【戻り値】

正常終了した場合は、MTR_ERROR_SUCCESSが返されます。 MTR_ERROR_SUCCESS以外の値が返された場合については、『92ページ 戻り値一覧』を参照してください。

MtrSetEvent 【機能】

割り込みの設定(メッセージ, コールバック関数の登録)を行います。

【書式】 Declare Function MtrSetEvent Lib “FbiMtr.DLL”( ByVal DeviceHandle As Long, ByRef Event As MTREVENTREQ )As Long

【パラメータ】

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

Event

割り込み設定を設定した MTREVENTREQ構造体へのポインタ(参照渡し)を指定します。

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

【備考】

・ 本関数で割り込みメッセージを設定し、割り込み要因は MtrSetEbentMask関数により設定し ます。従って割り込みの設定は、本関数と MtrSetEbentMask関数を実行する必要があります。

・ メッセージ送出時、LPARAMには割り込み要因が格納されます。 ・ フォーマットは、MTREVENTTABLE構造体の各要因と同じになります。

Page 85: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

- 83 - Interface Corporation

MtrGetEvent 【機能】

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

【書式】 Declare Function MtrGetEvent Lib “FbiMtr.DLL”( ByVal DeviceHandle As Long, ByRef Event As MTREVENTREQ )As Long

【パラメータ】 DeviceHandle

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

Event 割り込み設定を設定した MTREVENTREQ構造体へのポインタ(参照渡し)を指定します。

【戻り値】

正常終了した場合は、MTR_ERROR_SUCCESS が返されます。 MTR_ERROR_SUCCESS以外の値が返された場合については、『92ページ 戻り値一覧』を参照してください。

MtrSetEventMask

【機能】 割り込みマスクの設定を行います。 【書式】 Declare Function MtrSetEventMask Lib “FbiMtr.DLL”( ByVal DeviceHandle As Long, ByRef Mask As MTREVENTTABLE )As Long

【パラメータ】 DeviceHandle MtrOpen関数で取得したデバイスハンドルを指定してください。 Mask 割り込みマスクを設定した MTREVENTTABLE構造体へのポインタ(参照渡し)を指定します。 【戻り値】 正常終了した場合は、MTR_ERROR_SUCCESSが返されます。 MTR_ERROR_SUCCESS以外の値が返された場合については、『92ページ 戻り値一覧』を参照してください。 【備考】 本関数で割り込み要因を設定し、割り込みメッセージは MtrSetEvent関数により設定します。従って割り込みの設定は、本関数と MtrSetEvent関数を実行する必要があります。

MtrGetEventMask 【機能】

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

【書式】 Declare Function MtrGetEventMask Lib “FbiMtr.DLL”( ByVal DeviceHandle As Long, ByRef Mask As MTREVENTTABLE )As Long

【パラメータ】

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

Mask

割り込みマスク設定を格納する MTREVENTTABLE構造体へのポインタ(参照渡し)を指定します。 【戻り値】

正常終了した場合は、MTR_ERROR_SUCCESSが返されます。 MTR_ERROR_SUCCESS以外の値が返された場合については、『92ページ 戻り値一覧』を参照してください。

Page 86: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

Interface Corporation - 84 -

MtrReset 【機能】

モーションコントローラのリセットを行います。 リセットで初期化されるものは次の項目です。 ・対応軸のコントローラ IC ・対応軸の同時起動コマンド要求設定 ・対応軸の制御信号入力論理設定 ・対応軸の制御信号マスク設定 ・対応軸のパルス出力モード設定

【書式】

Declare Function MtrReset Lib “FbiMtr.DLL” ( ByVal DeviceHandle As Long )As Long

【パラメータ】

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

【戻り値】

正常終了した場合は、MTR_ERROR_SUCCESSが返されます。 MTR_ERROR_SUCCESS以外の値が返された場合については、『92ページ 戻り値一覧』を参照してください。

【備考】

MtrReset関数によるリセットでは、割り込みは発生しません。

MtrOffInterLock 【機能】

インタロック解除を行います。(ソフトウェア) インタロック信号が入力されると、全軸リセットされ初期化されます。 初期値から変更して制御を行なわれている場合には再設定が必要です。(MtrSetPulseOut関数、MtrSetLimitConfig関数) インタロック解除は、インタロック信号の入力(ハードウェア)を解除した後、本関数(ソフトウェアによるインタロック解除)を実行してください。 また、インタロック解除を行うまで、起動関数(MtrStartMotion関数等)の実行はできません。

【書式】

Declare Function MtrOffInterLock Lib “FbiMtr.DLL”( ByVal DeviceHandle As Long )As Long

【パラメータ】 DeviceHandle

MtrOpen関数で取得したデバイスハンドルを指定してください。 【戻り値】

正常終了した場合は、MTR_ERROR_SUCCESSが返されます。 MTR_ERROR_SUCCESS以外の値が返された場合については、『92ページ 戻り値一覧』を参照してください。

Page 87: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

- 85 - Interface Corporation

MtrSetMotionEx 【機能】

各種動作(連続動作,原点復帰動作,PTP動作,原点復帰動作 2,タイマ動作)パラメータの設定を行います。 設定する速度を 1pps以下まで設定できます。(7208,7210系のみ)

【書式】 Declare Function MtrSetMotionEx Lib “FbiMtr.DLL”( ByVal DeviceHandle As Long, ByVal Move As Long, ByRef MotionEx As MTRMOTIONEX )As Long

【パラメータ】

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

Move 設定動作を指定します。

コード 値 意 味

MTR_JOG 0 連続動作 MTR_ORG 1 原点復帰動作 MTR_PTP 2 PTP動作 ※ 7210系では、さらに下記の動作設定が可能です。

コード 値 意 味

MTR_ORG_PLS 3 原点復帰動作 2 MTR_TIMER 4 タイマ動作

[原点復帰動作 2] 移動量を設定できる原点復帰動作です。 設定した移動量だけ動作します。 設定した移動量内に ORG信号を感知すると停止します。

[タイマ動作] PTP動作と同様の設定ですが、インタフェースモジュールからパルス出力はされません。 内部カウンタはカウントされます。 ただし、パルス方式がパルス/ディレクション方式の場合、DIR端子から方向信号が出力されます。

MotionEx

動作パラメータを設定した MTRMOTIONEX構造体へのポインタ(参照渡し)を指定します。

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

【備考】

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

MotionExの各メンバ変数に設定する値の範囲は、型式により異なります。 (MTRMOTIONEX構造体を参照してください。) GPC-7200の DLL(FbiMtr.dll)内の計算誤差により設定した速度よりも実際の速度が違う場合があります。

MtrSetMotionLineEx 【機能】

直線補間動作パラメータの設定をします。 1pps以下の速度設定が可能です。(7208,7210系のみ)

【書式】 Declare Function MtrSetMotionLineEx Lib “FbiMtr.DLL”( ByVal DeviceHandle As Long, ByRef MotionLineEx As MTRMOTIONLINEEX )As Long

【パラメータ】

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

MotionLineEx 動作パラメータを設定した MTRMOTIONLINEEX構造体へのポインタ(参照渡し)を指定します。

Page 88: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

Interface Corporation - 86 -

【戻り値】

正常終了した場合は、MTR_ERROR_SUCCESSが返されます。 MTR_ERROR_SUCCESS以外の値が返された場合については、『92ページ 戻り値一覧』を参照してください。

【備考】

・ 直線補間動作は、同一インタフェースモジュール上のデバイスでのみ可能となっています。 (異なるインタフェースモジュール上のデバイスによる直線補間動作を行うことはできません。) このため、PCI-7208では最大で 4デバイス(4軸)、PCI-7209では 2デバイス(2軸)での直線補間動作が可能となります。また、PCI-7210Cでは 1,2軸間、3,4軸間での直線補間動作が可能です。1,3軸間,1,4軸間 2,3軸間,2,4軸間での直線補間動作はできません。 PCI-7211Cでは 2軸での直線補間動作となります。

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

[7208系の場合] 各軸に本関数を実行した後、各軸に MtrSetSync関数および、MtrStartMotion関数を実行します。その後、MtrStartSync関数による同時起動によりモータが動作します。 実行手順

1. MtrSetMotionLineEx関数による直線補間動作パラメータの設定 2.MtrSetSync関数による同時起動要求 3. MtrStartMotion関数による動作起動待ち状態 4. MtrStartSync関数による同時起動(外部接続が必要となります。)

[7210系の場合] 本関数は 1軸目、3軸目のデバイスにのみ設定可能です。 2軸目、4軸目のデバイスに本関数を実行する必要はありません。1軸目もしくは 3軸目に本関数を実行した後、1軸目もしくは 3軸目のデバイスに対して、MtrStartMotion関数を実行することにより直線補間動作が起動します。2軸目もしくは4軸目のデバイスをオープンしていなかった場合、エラーとなります。 実行手順

1. MtrSetMotionLineMtrSetMotionLine関数による直線補間動作パラメータの設定 2. MtrStartMotion関数による動作起動

GPC-7200の DLL(FbiMtr.dll)内の計算誤差により設定した速度よりも実際の速度が違う場合があります。

MtrChangeSpeedEx 【機能】

動作中に移動速度を変更します。 1pps以下の速度変更が可能です。(7208,7210系のみ)

【書式】 Declare Function MtrChangeSpeedEx Lib “FbiMtr.DLL”( ByVal DeviceHandle As Long, ByVal Mode As Long, ByVal Speed As Single )As Long

【パラメータ】

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

Mode

速度変更方式を指定します。 コード 値 意 味

MTR_IMMEDIATE_CHANGE 0 即時速度変更 MTR_ACCDEC_CHANGE 1 加減速速度変更 MTR_LOW_SPEED 3 起動時速度へ即変更 MTR_DEC_LOW_SPEED 4 起動時速度へ減速 MTR_RELEASE_DEC 5 起動時速度への減速解除 MTR_HOLD_NOW_SPEED 6 現在の速度へ固定 MTR_RELEASE_HOLD 7 現在の速度への固定解除 項目と対応型式表

速度変更方式 対応製品

MTR_IMMEDIATE_CHANGE 7210系 MTR_ACCDEC_CHANGE 7208,7210系 MTR_LOW_SPEED 7210系 MTR_DEC_LOW_SPEED 7208,7210系 MTR_RELEASE_DEC 7208系 MTR_HOLD_NOW_SPEED 7208系 MTR_RELEASE_HOLD 7208系

Page 89: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

- 87 - Interface Corporation

Speed

[MTR_IMMEDIATE_CHANGE] ■7210系 0.073~1000000[pps] 周波数倍率により設定範囲が異なります。起動時速度より大きい速度を設定してください。 [MTR_ACCDEC_CHANGE] ■7208系 0.1~1000000[pps] 速度分解能により設定範囲が異なります。 ■7210系 0.073~1000000[pps] 周波数倍率により設定範囲が異なります。起動時速度より大きい速度を設定してください。 [MTR_LOW_SPEED],[MTR_DEC_LOW_SPEED],[MTR_RELEASE_DEC] [MTR_HOLD_NOW_SPEED],[MTR_RELEASE_HOLD] Speedは未使用。(0を指定してください。)

【戻り値】

正常終了した場合は、MTR_ERROR_SUCCESSが返されます。 MTR_ERROR_SUCCESS以外の値が返された場合については、『92ページ 戻り値一覧』を参照してください。

【備考】

・ Speedにて指定した速度まで、正確に変更されない場合があります。これはモーションコントローラの仕様上(分解能)起こるものです。

・ 加減速速度変更における加減速時間/加減速パルス数は、MtrSetMotion関数で指定した値に従います。 ・ 起動時速度へ減速,起動時速度への減速解除,現在の速度へ固定,現在の速度への固定解除の場合には Speedの設定内容は無効となります。(0を指定してください)

・ 7208 系における速度変更は、加減速動作時にのみ可能となっています。(MtrStartMotion 関数における加減速オプションMTR_CONSTの指定による一定速動作時には、速度変更を行うことはできません。)

GPC-7200の DLL(FbiMtr.dll)内の計算誤差により設定した速度よりも実際の速度が違う場合があります。

MtrReadSpeedEx 【機能】

現在の移動速度を読み出します。 1pps以下の速度まで読み出し可能です。

【書式】 Declare Function MtrReadSpeedEx Lib “FbiMtr.DLL”( ByVal DeviceHandle As Long, ByRef Speed As Single )As Long

【パラメータ】

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

Speed

移動速度を格納する変数へのポインタ(参照渡し)を指定します。

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

【備考】

速度読み出しは、7204系ではできません。 また、742020系の場合、本関数での移動速度読み出しは行えません。MtrReadSpeed関数を使用してください。

Page 90: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

Interface Corporation - 88 -

MtrSetSampleCounter 【機能】

カウンタ値サンプリングの設定を行います。(7210系のみ)

【書式】 Declare Function MtrSetSampleCounter Lib “FbiMtr.DLL”( ByVal DeviceHandle As Long, ByRef Sample As MTRSAMPLEREQ )As Long

【パラメータ】

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

Sample

サンプリング条件を設定した MTRSAMPLEREQ構造体へのポインタ(参照渡し)を指定します。 【戻り値】

正常終了した場合は、MTR_ERROR_SUCCESSが返されます。 MTR_ERROR_SUCCESS以外の値が返された場合については、『92ページ 戻り値一覧』を参照してください。

【備考】

・ MtrOpen関数でオープンフラグをMTR_FLAG_NORMALに指定した場合、MTRSAMPLEREQ構造体のサンプリングモード設定で、「MTR_REPEAT」(繰り返しサンプリング)は設定できません。

・ サンプリングを行うカウンタをエンコーダにするのか出力パルスカウンタにするかは、MtrSetCounterConfig関数の設定に依存します。例えば、MtrSetCounterConfig 関数の「MTR_ENCODER_MODE」 (エンコーダ入力モード )の設定で「MTR_NOT_COUNT」(カウントしない)に設定していた場合、エンコーダをサンプリング対象に設定することはできません。

MtrStartSampleCounter 【機能】

カウンタサンプリングを行います。(7210系のみ)

【書式】 Declare Function MtrStartSampleCounter Lib “FbiMtr.DLL”( ByVal DeviceHandle As Long )As Long

【パラメータ】

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

【戻り値】

正常終了した場合は、MTR_ERROR_SUCCESSが返されます。 MTR_ERROR_SUCCESS以外の値が返された場合については、『92ページ 戻り値一覧』を参照してください。

【備考】 MtnOpen 関数でオープンフラグを「MTR_FALG_NORMAL」に設定した場合、サンプリング完了までこの関数から処理が戻ってきません。サンプリングの設定は、MtrSetCounterConfig関数で設定してください。MtrSetCounterConfig関数でカウンタ モードを変更すると実行できない場合があります。

MtrStopSampleCounter 【機能】

指定したデバイスハンドルの軸のカウンタサンプリングを停止します。(7210系のみ)

【書式】 Declare Function MtrStopSampleCounter Lib “FbiMtr.DLL”( ByVal DeviceHandle As Long )As Long

【パラメータ】

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

【戻り値】

正常終了した場合は、MTR_ERROR_SUCCESSが返されます。 MTR_ERROR_SUCCESS以外の値が返された場合については、『92ページ 戻り値一覧』を参照してください。

【備考】 MtnOpen関数でオープンフラグを「MTR_FALG_NORMAL」に設定した場合、本関数は使用できません。

Page 91: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

- 89 - Interface Corporation

MtrGetSampleStatus 【機能】

カウンタサンプリング状態を取得します。(7210系のみ)

【書式】 Declare Function MtrGetSampleStatus Lib “FbiMtr.DLL”( ByVal DeviceHandle As Long, ByRef SampleStatus As Long, ByRef SampleNum As Long )As Long

【パラメータ】

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

SampleStatus

サンプリング状態を格納する変数へのポインタ(参照渡し)を指定します。 コード 値 意 味

MTR_SAMPLE_FINISHED 0 サンプリング完了 MTR_NOW_SAMPLING 1 サンプリング中 MTR_WAITING_BUSY 2 サンプリング待ち MTR_FULL_BUFFER 3 確保したすべてのバッファ領域にサンプリングデータ

が保存されいます。 SampleNum

サンプリング完了点数を格納する変数へのポインタ(参照渡し)を指定します。

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

MtrGetSampleData 【機能】

サンプリングデータを取得します。(7210系のみ)

【書式】 Declare Function MtrGetSampleData Lib “FbiMtr.DLL”( ByVal DeviceHandle As Long, ByRef SampleNum As Long, ByRef Pos As Long )As Long

【パラメータ】

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

SampleNum

取得するサンプリングデータの件数が格納されている変数へのポインタ(参照渡し)を指定してください。 正常終了した場合には、実際に取得した件数が格納されます。

Pos

サンプリングデータを格納する領域へのポインタ(参照渡し)を指定してください。 ※ 直線補間動作実行時にサンプリングを行う時、2軸を同時にサンプリングすることが可能です。 直線補間動作実行に 1軸目もしくは 3軸目のデバイスハンドルを指定してサンプリングをスタート(MtrStartSampleCounter関数)していた場合、1 軸目もしくは 3 軸目のデバイスハンドルを指定して本関数を実行すれば 2 軸もしくは 4 軸目のサンプリングデータも取得できます。

この場合には、次のようにサンプリングデータが格納されます。 Pos[0]:1軸側 Pos[1]:2軸側 Pos[2]:1軸側 Pos[3]:2軸側 … … また、SampleNum = 100 を指定した場合、領域を 100×2を用意しなければなりません。

【戻り値】

正常終了した場合は、MTR_ERROR_SUCCESSが返されます。 MTR_ERROR_SUCCESS以外の値が返された場合については、『92ページ 戻り値一覧』を参照してください。

Page 92: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

Interface Corporation - 90 -

MtrGetMotionEx 【機能】

各種動作(連続動作,原点復帰動作,PTP動作,原点復帰動作 2,タイマ動作)パラメータの設定を取得します。 1pps以下の速度まで取得できます。(7208,7210系のみ)

【書式】 Declare Function MtrGetMotionEx Lib “FbiMtr.DLL”( ByVal DeviceHandle As Long, ByVal Mode As Long, ByRef MotionEx As MTRMOTIONEX )As Long

【パラメータ】 DeviceHandle

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

Mode 取得動作を指定します。

コード 値 意 味

MTR_JOG 0 連続動作 MTR_ORG 1 原点復帰動作 MTR_PTP 2 PTP動作 ※ 7210系では、さらに下記の動作設定が可能です。

コード 値 意 味

MTR_ORG_PLS 3 原点復帰動作 2 MTR_TIMER 4 タイマ動作

[原点復帰動作 2] 移動量を設定できる原点復帰動作です。 設定した移動量だけ動作します。 設定した移動量内に ORG信号を感知すると停止します。 [タイマ動作] PTP動作と同様の設定ですが、インタフェースモジュールからパルス出力はされません。 内部カウンタはカウントされます。 ただし、パルス方式がパルス/ディレクション方式の場合、DIR端子から方向信号が出力されます。

MotionEx

動作パラメータを格納する MTRMOTIONEX構造体へのポインタ(参照渡し)を指定します。

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

【備考】 ・ 速度,加速(減速)時間については、設定した値と異なる値が戻ってくる場合があります。 これはモーションコントローラの仕様上(分解能)起こるものです。 正確には取得された値で制御を行っています。

MtrGetMotionLineEx 【機能】

直線補間動作パラメータの設定を取得します。 1pps以下の速度まで取得できます。(7208,7210系のみ)

【書式】 Declare Function MtrGetMotionLineEx Lib “FbiMtr.DLL”( ByVal DeviceHandle As Long, ByRef MotionLineEx As MTRMOTIONLINEEX )As Long

【パラメータ】 DeviceHandle

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

MotionLineEx 動作パラメータを格納する MTRMOTIONLINEEX構造体へのポインタ(参照渡し)を指定します。

【戻り値】

正常終了した場合は、MTR_ERROR_SUCCESSが返されます。 MTR_ERROR_SUCCESS以外の値が返された場合については、『92ページ 戻り値一覧』を参照してください。

【備考】 速度,加速(減速)時間については、設定した値と異なる値が戻ってくる場合があります。 これはモーションコントローラの仕様上(分解能)起こるものです。 正確には取得された値で制御を行っています。

Page 93: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

- 91 - Interface Corporation

MtrGetSampleCounter 【機能】

カウンタサンプリングの設定を取得します。(7210 系のみ)

【書式】 Declare Function MtrGetSampleCounter Lib “FbiMtr.DLL”( ByVal DeviceHandle As Long, ByRef Sample As MTRSAMPLEREQ )As Long

【パラメータ】

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

Sample

サンプリング条件を取得する MTRSAMPLEREQ 構造体へのポインタ(参照渡し)を指定します。 【戻り値】

正常終了した場合は、MTR_ERROR_SUCCESS が返されます。 MTR_ERROR_SUCCESS以外の値が返された場合については、『92ページ 戻り値一覧』を参照してください。

Page 94: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

Interface Corporation - 92 -

戻り値一覧 エラー識別子 値 意 味 対処方法

MTR_ERROR_SUCCESS 0 正常終了 - MTR_ERROR_NOT_DEVICEHANDLE

C0000001h (-1073741823)

ドライバを呼び出せません。

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

MTR_ERROR_NOT_OPEN C0000002h (-1073741822)

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

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

MTR_ERROR_INVALID_DEVICEHANDLE_HANDLE

C0000003h (-1073741821)

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

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

MTR_ERROR_ALREADY_ OPEN

C0000004h (-1073741820)

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

既にOPENされているデバイスです。

MTR_ERROR_NOT_ SUPPORTED

C0000009h (-1073741815)

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

指定したデバイスにおいて、サポートされていない機能を選択しました。

MTR_ERROR_NOW_MOVING C0001000h (-1073737728)

モータ動作中です。 モータが動作中のため、実行できません。

MTR_ERROR_NOW_STOPPED C0001001h (-1073737727)

モータ停止中です。 モータが停止中のため、実行できません。

MTR_ERROR_WRITE_FAILED C0001010h (-1073737712)

モーションコントローラへの書き込みに失敗しました。

MTR_ERROR_READ_FAILED C0001011h (-1073737711)

モーションコントローラからの読み込みに失敗しました。

MTR_ERROR_INVALID_AXIS C0001013h (-1073737709)

軸番号指定に誤りがあります。 ・軸番号が正しくない。 ・現在使用できない軸番号を指定している。

MTR_ERROR_INVALID_SPEED C0001014h (-1073737708)

速度指定に誤りがあります。 設定速度が範囲を超えている。

MTR_ERROR_INVALID_ ACCDEC

C0001015h (-1073737707)

加減速時間指定に誤りがあります。

設定加減速時間が範囲を超えている。

MTR_ERROR_INVALID_PULSE C0001016h (-1073737706)

移動量の指定に誤りがあります。

移動量が範囲を超えている。

MTR_ERROR_INVALID_PARAMETER

C0001017h (-1073737705)

パラメータが不正です。 ・引数の値が不正です。 ・引数の値の範囲が指定範囲外です。

MTR_ERROR_NOW_INTERLOCKED

C0001020h (-1073737696)

インタロック中。 インタロックを解除するまで実行できません。 (MtrOffInterLock関数を実行してください)

MTR_ERROR_IMPOSSIBLE C0001021h (-1073737695)

実行不可。 ・インタフェースモジュールにない機能を使用した。 ・現在、実行できない状態にある。

MTR_ERROR_NOT_ ALLOCATE_MEMORY

C0001024h (-1073737692)

メモリが確保できません。 ドライバ内部で作業をするためのメモリ確保に失敗しました。

MTR_ERROR_NOW_WAIT_ STA

C0001025h (-1073737691)

他軸停止待ちです。 補間動作等で他軸が停止するまで待っている状態のため、実行できません。

Page 95: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

- 93 - Interface Corporation

6.1 型式別DLL関数サポート一覧 No. 関数名 7204系 7208系 7210系 742020系 1 MtrOpen ○ ○ ○ ○ 2 MtrClose ○ ○ ○ ○ 3 MtrGetDeviceInfo ○ ○ ○ ○ 4 MtrReset ○ ○ ○ ○ 5 MtrOffInterLock ○ ○ ○ ○ 6 MtrSetBaseClock ○ ○ ○ ○ 7 MtrSetPulseOut ○ ○ ○ ○ 8 MtrSetLimitConfig ○ ○ ○ ○ 9 MtrSetCounterConfig × ○ ○ × 10 MtrSetComparator × ○ × × 11 MtrSetCLR × ○

PCI-7209のみ × ×

12 MtrSetAccCurve ○ × × × 13 MtrSetMotion ○ ○ ○ ○ 14 MtrSetMotionEx × ○ ○ × 15 MtrSetMotionLine × ○ ○ × 16 MtrSetMotionLineEx × ○ ○ × 17 MtrStartMotion ○ ○ ○ ○ 18 MtrStopMotion ○ ○ ○ ○ 19 MtrRestart × ○ ○ × 20 MtrSetSync ○ ○ ○ ○ 21 MtrStartSync ○ ○ ○ ○ 22 MtrSingleStep ○ ○ ○ ○ 23 MtrChangeSpeed ○ ○ ○ ○ 24 MtrChangeSpeedEx × ○ ○ × 25 MtrGetStatus ○ ○ ○ ○ 26 MtrReadSpeed × ○ ○ ○ 27 MtrReadSpeedEx × ○ ○ × 28 MtrReadCounter ○ ○ ○ ○ 29 MtrWriteCounter ○ ○ ○ ○ 30 MtrClearCounter ○ ○ ○ ○ 31 MtrOutputDO ○ ○

PCI-7209のみ ○

PCI-7211Cのみ ○

32 MtrInputDI ○ ○ PCI-7209のみ

○ PCI-7211Cのみ

33 MtrOutputDO1 × ○ PCI-7209のみ

○ PCI-7211Cのみ

×

34 MtrOutputDO2 × ○ PCI-7209のみ

○ PCI-7211Cのみ

×

35 MtrOutputDO3 × ○ PCI-7209のみ

× ×

36 MtrOutputDO4 × ○ PCI-7209のみ

× ×

37 MtrOutputCLR × ○ PCI-7209のみ

× ×

38 MtrOutputSON × ○ PCI-7209のみ

× ×

39 MtrSetEvent ○ ○ ○ ○ 40 MtrSetEventMask ○ ○ ○ ○ 41 MtrSetSampleCounter × × ○ × 42 MtrStartSampleCounter × × ○ × 43 MtrStopSampleCounter × × ○ × 44 MtrGetSampleStatus × × ○ × 45 MtrGetSampleData × × ○ × 46 MtrGetBaseClock ○ ○ ○ ○ 47 MtrGetPulseOut ○ ○ ○ ○ 48 MtrGetLimitConfig ○ ○ ○ ○ 49 MtrGetCounterConfig × ○ ○ × 50 MtrGetComparator × ○ × × 51 MtrGetCLR × ○

PCI-7209のみ × ×

Page 96: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

Interface Corporation - 94 -

No. 関数名 7204系 7208系 7210系 742020系 52 MtrGetAccCurve ○ × × × 53 MtrGetMotion ○ ○ ○ ○ 54 MtrGetMotionEx × ○ ○ × 55 MtrGetMotionLine × ○ ○ × 56 MtrGetMotionLineEx × ○ ○ × 57 MtrGetSync ○ ○ ○ ○ 58 MtrGetEvent ○ ○ ○ ○ 59 MtrGetEventMask ○ ○ ○ ○ 60 MtrGetSampleCounter × × ○ ×

関数によっては、製品型式により使用できる機能,設定値の範囲等が異なる場合があります。 詳細については、各関数の個別説明を参照してください。

Page 97: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

- 95 - Interface Corporation

6.2 構造体一覧 MTRDEVICE構造体

MtrGetDeviceInfo関数によりデバイス情報を取得する際に使用する構造体です。

Type MTRDEVICE dwType As Long dwRSW As Long dwAxis As Long End Type

メンバ 説明 dwType 製品型式 dwRSW RSW1設定値

CSI-742020の場合、カードバスIDとなります。 dwAxis 軸番号

MTRORIGINALACC構造体

MtrSetAccCurve関数による自由曲線加減速設定、およびMtrSetAccCurve関数による自由曲線加減速設定の取得の際に使用する構造体です。

Type MTRORIGINALACC dwSpeed As Long dwAcc As Long End Type

メンバ 説明 dwSpeed 自由曲線加減速速度[pps] dwAcc 自由曲線加減速パルス数

MTRMOTION構造体

MtrSetMotion関数による各種動作パラメータの設定、およびMtrSetMotion関数によるの各種動作パラメータの取得の際に使用する構造体です。

※ 起動時速度,移動速度の設定可能範囲は基準クロック/速度倍率によって変わります。 また、加減速時間,S字加減速区間速度の設定は基準クロック/速度倍率,起動時速度,移動速度の値によって設定可能範囲が変わってきます。

MtrSetbaseClockに基準クロック/速度倍率と速度の関係を記しています。 また、パラメータ設定可能範囲確認プログラムで速度, 加減速時間の設定可能範囲とその関係式を確認することができます。

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

メンバ 説明 dwMode 加速減速設定

コード 値 意 味 MTR_ACC_NORMAL 0 直線加減速

MTR_ACC_SIN 1 S字加減速

MTR_ACC_EXP 2 放物線加減速 7208系のみ有効な機能

MTR_ACC_ORIGINAL 3 自由曲線加減速 7204系のみ有効な機能

Page 98: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

Interface Corporation - 96 -

原点復帰動作オプション

コード 値 意 味 MTR_STOP_ORG_EZ 0100h ORG信号入力後、Z相信号入力により停止

7208系のみ有効な機能

原点復帰動作パラメータ設定時のみ有効となります。 それ以外の動作パラメータ設定時には無効となります。 原点復帰動作オプションは、加減速設定に OR指定することにより設定します。 (オプションを指定しない場合には、ORG信号入力により停止します) 例) "MTR_ACC_SIN | MTR_STOP_ORG_EZ" (0101h) S字加減速,ORG信号入力後、Z相信号入力により停止に設定します。 ("MTR_ACC_SIN"と指定すると、S字加減速,ORG信号入力により停止に設定します)

PTP動作オプション

PCI-7209にて PTP動作パラメータ設定時のみ有効な機能 コード 値 意 味 MTR_MARK 0400h MARK信号入力により位置決め開始

MTR_MARK_ACC 0800h MARK信号入力により加速し、位置決め開始

Page 99: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

- 97 - Interface Corporation

PTP動作オプションは、加減速設定に OR指定することにより設定します。

(オプションを指定しない場合には、通常の位置決めを行います) 例) "MTR_ACC_SIN | MTR_MARK" (0401h) S字加減速,MARK信号入力により位置決め開始に設定します。 ("MTR_ACC_SIN"と指定すると、S字加減速による位置決めに設定します)

FH補正機能オプション

コード 値 意 味 MTR_FH 0100h FH補正機能 ON

7210系のみ有効な機能 位置決め動作モードで加減速動作させた時に移動量が少ないと、自動的に移動速度を低下させて三

角駆動を回避します。 dwLowSpeed 起動時速度

■7204系 2~66670[pps] (基準クロックにより、設定範囲が変わります) ※ 自由曲線加減速指定時には、起動時速度の設定値は無効になります。 (起動時速度は、自由曲線加減速設定の1段目の速度となります) ■7208系 1~1000000[pps] 速度分解能により、設定範囲が変わります。 ■7210系 1~1000000[pps] 周波数倍率により、設定範囲が変わります。 ■742020系 1~100000[pps] 速度倍率により、設定範囲が変わります。

Page 100: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

Interface Corporation - 98 -

dwSpeed 移動速度(起動時速度以上の値を設定してください)

■7204系 2~66670[pps] 基準クロックにより、設定範囲が変わります。 ■7208系 1~1000000[pps] 速度分解能により、設定範囲が変わります。 ■7210系 1~1000000[pps] 周波数倍率により、設定範囲が変わります。 ■74200系 1~100000[pps] 速度倍率により、設定範囲が変わります。

dwAcc ■7204系 加速パルス数:8~65535 自由曲線加減速指定時には、加速パルス数の設定値は無効となります。 ■7208系 加速時間[ms] 直線加減速時:0~130000[ms] S字加減速時:0~110000[ms] 速度分解能により、設定可能範囲が変わります。 ■7210系 加速時間[ms] 周波数倍率,起動時速度,移動速度により、設定可能範囲が変わります。 ■742020系 加速時間[ms] 速度倍率,起動時速度,移動速度により、設定可能範囲が変わります。

dwDec ■7204系 減速パルス数:8~65535 加速パルス数と同じ値を設定してください。 自由曲線加減速指定時には、減速パルス数の設定値は無効となります。 ■7208系 減速時間[ms] 直線加減速時:0~130000[ms] S字加減速時:0~110000[ms] 速度分解能により、設定可能範囲が変わります。 ■7210系 減速時間[ms] 周波数倍率,起動時速度,移動速度により、設定可能範囲が変わります。 ■742020系 減速時間[ms] 加速時間と同じ値を設定してください。

Page 101: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

- 99 - Interface Corporation

dwSSpeed S字加減速区間速度

■7204系 指定できません。(無効となります) ■7208系 1~499999[pps] 速度分解能,起動時速度,移動速度により、設定可能範囲が変わります。 ※ 直線加減速時には、無効となります。(0を指定してください) ■7210系 0~500000[pps] 周波数倍率,起動時速度,移動速度により、設定可能範囲が変わります。 ※ 直線加減速時には、無効となります。(0を指定してください) ■742020系 1~49999[pps] 速度倍率,起動時速度,移動速度により、設定可能範囲が変わります。 ※ 直線加減速時には、無効となります。(0を指定してください)

nStep 移動パルス数 ■7420,7208,742020系 -16777215 ~ +16777215 連続動作、原点復帰では、+方向の場合は、MTR_CW(値:1)、-方向の場合は、MTR_CCW(値:-1)を指定してください。 ■7210系 -268435455 ~ +268435455 連続動作、原点復帰では、+方向の場合は、MTR_CW(値:1)、-方向の場合は、MTR_CCW(値:-1)を指定してください。

nReserved 将来拡張用(0 を指定してください)

MTRMOTIONEX構造体

MtrSetMotionEx関数による各種動作パラメータの設定、およびMtrGetMotionEx関数による各種動作パラメータの取得の際に使用する構造体です。 1pps以下の速度設定が可能です。MTRMOTION構造体とはその点が違うだけです。 (7208,7210系のみ) 起動時速度,移動速度の設定可能範囲は速度倍率によって変わります。 また、加減速時間,S字加減速区間速度の設定は速度倍率,起動時速度,移動速度の値によって設定可能範囲が変わってきます。 MtrSetBaseClock関数に速度倍率と速度の関係が記されています。 またパラメータ設定可能範囲確認プログラムで速度,加減速時間の設定可能範囲とその関係式を確認することができます。

Type MTRMOTIONEX dwMode As Long fLowSpeed As Single fSpeed As Single dwACC As Long dwDec As Long fSSpeed As Single nStep As Long nReserved As Long End Type

メンバ 説明 dwMode 加速減速設定

コード 値 意 味

MTR_ACC_NORMAL 0 直線加減速

MTR_ACC_SIN 1 S字加減速

MTR_ACC_EXP 2 放物線加減速 7208系のみ有効な機能

Page 102: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

Interface Corporation - 100 -

原点復帰動作オプション

コード 値 意 味 MTR_STOP_ORG_EZ 0100h ORG信号入力後、Z相信号入力により停止

7208系のみ有効な機能 原点復帰動作パラメータ設定時のみ有効となります。

それ以外の動作パラメータ設定時には無効となります。 原点復帰動作オプションは、加減速設定に OR指定することにより設定します。 (オプションを指定しない場合には、ORG信号入力により停止します) 例) "MTR_ACC_SIN | MTR_STOP_ORG_EZ" (0101h) S字加減速,ORG信号入力後、Z相信号入力により停止に設定します。 ("MTR_ACC_SIN"と指定すると、S字加減速,ORG信号入力により停止に設定します)

PTP動作オプション

PCI-7209にて PTP動作パラメータ設定時のみ有効な機能 コード 値 意 味 MTR_MARK 0400h MARK信号入力により位置決め開始

MTR_MARK_ACC 0800h MARK信号入力により加速し、位置決め開始

Page 103: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

- 101 - Interface Corporation

PTP動作オプションは、加減速設定に OR指定することにより設定します。 (オプションを指定しない場合には、通常の位置決めを行います) 例) "MTR_ACC_SIN | MTR_MARK" (0401h) S字加減速,MARK信号入力により位置決め開始に設定します。 ("MTR_ACC_SIN"と指定すると、S字加減速による位置決めに設定します)

FH補正機能オプション

コード 値 意 味 MTR_FH 0100h FH補正機能 ON

7210系のみ有効な機能 位置決め動作モードで加減速動作させた時に移動量が少ないと、自動的に移動速度を低下させて三

角駆動を回避します。

fLowSpeed 起動時速度 ■7208系 0.1~1000000[pps] 速度分解能により、設定範囲が変わります。 ■7210系 0.073~1000000[pps] 周波数倍率により、設定範囲が変わります。

fSpeed 移動速度(起動時速度以上の値を設定してください。) ■7208系 0.1~1000000[pps] 速度分解能により、設定範囲が変わります。 ■7210系 0.073~1000000[pps] 周波数倍率により、設定範囲が変わります。

dwAcc ■7208系 加速時間[ms] 直線加減速時:0~130000[ms] S字加減速時:0~110000[ms] 速度分解能により、設定可能範囲が変わります。 ■7210系 加速時間[ms] 周波数倍率,起動時速度,移動速度により、設定可能範囲が変わります。

Page 104: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

Interface Corporation - 102 -

dwDec ■7208系

減速時間[ms] 直線加減速時:0~130000[ms] S字加減速時:0~110000[ms] 速度分解能により、設定可能範囲が変わります。 ■7210系 減速時間[ms] 周波数倍率,起動時速度,移動速度により、設定可能範囲が変わります。

fSSpeed S字加減速区間速度 ■7208系 0.1~499999[pps] 速度分解能,起動時速度,移動速度により、設定可能範囲が変わります。 ※ 直線加減速時には、無効となります。(0を指定してください。) ■7210系 0~500000[pps] 周波数倍率,起動時速度,移動速度により、設定可能範囲が変わります。 ※ 直線加減速時には、無効となります。(0を指定してください。)

nStep 移動パルス数 ■7208系 -16777215 ~ +16777215 連続動作、原点復帰では、+方向の場合は、MTR_CW(値:1)、-方向の場合は、MTR_CCW(値:-1)を指定してください。 ■7210系 -268435455 ~ +268435455 連続動作、原点復帰では、+方向の場合は、MTR_CW(値:1)、-方向の場合は、MTR_CCW(値:-1)を指定してください。

nReserved 将来拡張用(0を指定してください。)

MTRMOTIONLINE構造体

MtrSetMotionLine関数による直線補間動作パラメータの設定、およびMtrGetMotionLine関数による直線補間動作パラメータの取得の際に使用する構造体です。 起動時速度,移動速度の設定可能範囲は速度倍率によって変わります。 また、加減速時間,S字加減速区間速度の設定は速度倍率,起動時速度,移動速度の値によって設定可能範囲が変わってきます。 MtrSetBaseClock関数に速度倍率と速度の関係が記しています。 またパラメータ設定可能範囲確認プログラムで速度,加減速時間の設定可能範囲とその関係式を確認することができます。 7208系では、自デバイスの移動パルス数(nXStep)を除く全てのメンバ変数、およびMtrSetBaseClock関数で設定される速度分解能には、直線補間動作を行う全てのデバイス(軸)において同じ値を設定してください。 異なる値を指定した場合には、誤動作の危険性がありますので、ご注意ください。 自デバイスの移動速度については、dwSpeed × nXStepInYStepにより求めることができます。

Type MTRMOTIONLINE dwMode As Long dwLowSpeed As Long dwSpeed As Long dwAcc As Long dwDec As Long dwSSpeed As Long nXStep As Long nYStep As Long nReserved As Long End Type

メンバ 説明 dwMode 加速減速設定

コード 値 意 味 MTR_ACC_NORMAL 0 直線加減速

MTR_ACC_SIN 1 S字加減速

MTR_ACC_EXP 2 放物線加減速 7208系のみ有効な機能

Page 105: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

- 103 - Interface Corporation

dwLowSpeed 最大移動デバイスの起動時速度

■7208系 1~1000000[pps] 速度分解能により、設定範囲が変わります。 ■7210系 1~1000000[pps] 周波数倍率により、設定範囲が変わります。

dwSpeed 最大移動デバイスの移動速度(起動時速度以上の値を設定してください) ■7208系 1~1000000[pps] 速度分解能により、設定範囲が変わります。 ■7210系 1~1000000[pps] 周波数倍率により、設定範囲が変わります。

dwAcc 最大移動デバイスの加速時間 ■7208系 加速時間[ms] 直線加減速時:0~130000[ms] S字加減速時:0~110000[ms] 速度分解能により、設定可能範囲が変わります。 ■7210C系 加速時間[ms] 周波数倍率,起動時速度,移動速度により、設定可能範囲が変わります。

dwDec 最大移動デバイスの減速時間 ■7208系 減速時間[ms] 直線加減速時:0~130000[ms] S字加減速時:0~110000[ms] 速度分解能により、設定可能範囲が変わります。 ■7210系 減速時間[ms] 周波数倍率,起動時速度,移動速度により、設定可能範囲が変わります。

dwSSpeed 最大移動デバイスのS字加減速区間速度 ■7208系 1~499999[pps] 速度分解能,起動時速度,移動速度により、設定可能範囲が変わります。 ※ 直線加減速時には、無効となります。(0を指定してください) ■7210C系 0~500000[pps] 周波数倍率,起動時速度,移動速度により、設定可能範囲が変わります。 ※ 直線加減速時には、無効となります。(0を指定してください)

nXStep 自デバイスの移動パルス数 ■7208系 -16777215~+16777215 ■7210系 -268435455~+268435455

nYStep ■7208系 最大移動デバイスの移動パルス数 -16777215~+16777215 ■7210系 他軸(2,4軸)のデバイスの移動パルス数 -268435455~+268435455

nReserved 将来拡張用(0を指定してください。)

Page 106: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

Interface Corporation - 104 -

MTRMOTIONLINEEX構造体

MtrSetMotionLineEx関数による直線補間動作パラメータの設定、およびMtrGetMotionLineEx関数による直線補間動作パラメータの取得の際に使用する構造体です。 1pps以下の速度設定が可能です。MTRMOTIONLINE構造体とはその点が違うだけです。 起動時速度,移動速度の設定可能範囲は速度倍率によって変わります。 また、加減速時間,S字加減速区間速度の設定は速度倍率,起動時速度,移動速度の値によって設定可能範囲が変わってきます。 MtrSetBaseClock関数に速度倍率と速度の関係が記しています。 またパラメータ設定可能範囲確認プログラムで速度,加減速時間の設定可能範囲とその関係式を確認することができます。 7208系では、自デバイスの移動パルス数(nXStep)を除く全てのメンバ変数、およびMtrSetBaseClock関数で設定される速度分解能には、直線補間動作を行う全てのデバイス(軸)において同じ値を設定してください。 異なる値を指定した場合には、誤動作の危険性がありますので、ご注意ください。 自デバイスの移動速度については、fSpeed × nXStepInYstepにより求めることができます。

Type MTRMOTIONLINEEX dwMode As Long fLowSpeed As Single fSpeed As Single dwAcc As Long dwDec As Long fSSpeed As Single nXStep As Long nYStep As Long nReserved As Long End Type

メンバ 説明 dwMode 加速減速設定

コード 値 意 味 MTR_ACC_NORMAL 0 直線加減速

MTR_ACC_SIN 1 S字加減速

MTR_ACC_EXP 2 放物線加減速 7208系のみ有効な機能

fLowSpeed 最大移動デバイスの起動時速度 ■7208系 0.1~1000000[pps] 速度分解能により、設定範囲が変わります。 ■7210系 0.073~1000000[pps] 周波数倍率により、設定範囲が変わります。

fSpeed 最大移動デバイスの移動速度(起動時速度以上の値を設定してください。) ■7208系 0.1~1000000[pps] 速度分解能により、設定範囲が変わります。 ■7210系 0.073~1000000[pps] 周波数倍率により、設定範囲が変わります。

dwAcc 最大移動デバイスの加速時間 ■7208系 加速時間[ms] 直線加減速時:0~130000[ms] S字加減速時:0~110000[ms] 速度分解能により、設定可能範囲が変わります。 ■7210C系 加速時間[ms] 周波数倍率,起動時速度,移動速度により、設定可能範囲が変わります。

Page 107: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

- 105 - Interface Corporation

dwDec 最大移動デバイスの減速時間

■7208系 減速時間[ms] 直線加減速時:0~130000[ms] S字加減速時:0~110000[ms] 速度分解能により、設定可能範囲が変わります。 ■7210系 減速時間[ms] 周波数倍率,起動時速度,移動速度により、設定可能範囲が変わります。

fSSpeed 最大移動デバイスのS字加減速区間速度 ■7208系 0.1~499999[pps] 速度分解能,起動時速度,移動速度により、設定可能範囲が変わります。 ※ 直線加減速時には、無効となります。(0を指定してください。) ■7210C系 0~500000[pps] 周波数倍率,起動時速度,移動速度により、設定可能範囲が変わります。 ※ 直線加減速時には、無効となります。(0を指定してください。)

nXStep 自デバイスの移動パルス数 ■7208系 -16777215~+16777215 ■7210系 -268435455~+268435455

nYStep ■7208系 最大移動デバイスの移動パルス数 -16777215~+16777215 ■7210系 他軸(2,4軸)のデバイスの移動パルス数 -268435455~+268435455

nReserved 将来拡張用(0を指定してください。)

Page 108: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

Interface Corporation - 106 -

MTREVENTTABLE構造体

MtrSetEventMask関数による割り込み要因の設定、MtrGetEventMask関数による割り込み要因の設定の取得、およびMtrSetEvent関数により登録したコールバック関数にて使用する構造体です。

Type MTRMOTIONLINEEX dwPulseOut As Long dwCounter As Long dwComparator As Long dwSignal As Long dwReserved As Long End Type

メンバ 説明 dwPulseOut パルス出力割り込み

bit31~12 :予約 bit11 :予約 bit10 :予約 bit9 :予約 bit8 :エラー命令割り込み bit7 :予約 bit6 :予約 bit5 :最大加速度割り込み 0-禁止 1-許可 bit4 :予約 bit3 :等速度割り込み 0-禁止 1-許可 bit2 :減速開始割り込み 0-禁止 1-許可 bit1 :加速完了割り込み 0-禁止 1-許可 bit0 :動作停止割り込み 0-禁止 1-許可

ビット 対応製品 bit8 7204系

bit5 7208系

bit3 7208系

bit2 7208,7210系

bit1 7210系

bit0 7204,7208,7210,742020系

dwCounter カウンタ割り込み(7208系のみ) bit31~8 :予約 bit7 :予約 bit6 :予約 bit5 :残りパルス数 ボロー割り込み 0-禁止 1-許可 bit4 :予約 bit3 :カウンタ ボロー割り込み 0-禁止 1-許可 bit2 :カウンタ キャリー割り込み 0-禁止 1-許可 bit1 :エンコーダ ボロー割り込み 0-禁止 1-許可 bit0 :エンコーダ キャリー割り込み

dwComparator コンパレータ割り込み(7208系のみ) bit31~4 :予約 bit3 :予約 bit2 :予約 bit1 :比較条件 2成立割り込み 0-禁止 1-許可 bit0 :比較条件 1成立割り込み 0-禁止 1-許可

Page 109: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

- 107 - Interface Corporation

dwSignal 外部信号割り込み

bit31~12 :予約 bit11 :デジタル入力(IN4)割り込み bit10 :デジタル入力(IN3)割り込み bit9 :デジタル入力(IN2)割り込み bit8 :デジタル入力(IN1)割り込み bit7 :予約 bit6 :予約 bit5 :予約 bit4 :インタロック(リセット)割り込み ※ 禁止に設定することはできません bit3 :MARK信号割り込み bit2 :DI1割り込み bit1 :Z相信号割り込み bit0 :ORG信号割り込み

ビット 対応製品 bit11~8 742020系

2軸の場合:bit11~8 = IN12~IN9 bit4 7204,7208,7210,742020系

MtrSetEvent関数にて使用。 bit3 PCI-7209のみ

bit2 PCI-7209のみ

bit1 7208系

bit0 7208系

dwReserved 将来拡張用(0を指定してください。)

MTREVENTREQ構造体

MtrSetEvent関数による割り込みイベントの設定、およびMtrGetEvent関数による割り込みイベント設定の取得の際に使用する構造体です。

Type MTREVENTREQ hWnd As Long hPulseOut As Long uCounter As Long uComparator As Long uSignal As Long uReserved As Long lpCallBackProc As Long dwUser As Long End Type

メンバ 説明 hWnd メッセージ送出ウィンドウハンドル

MtrSetEventMask関数にて設定した各種割り込み発生時に送出するメッセージのポスト先ウィンドウハンドルを指定します。 (メッセージ送出時に、LPARAMには割り込み要因が格納されます。フォーマットは、MTREVENTTABLE構造体の各要因と同じになります) メッセージポストを行わない場合には、C言語ではNULL、Visual Basicでは0、DelphiではNILを指定してください。

uPulseOut パルス出力割り込みメッセージ MTREVENTTABLE構造体のdwPulseOutにて設定した割り込み発生時に送出するメッセージコードを指定します。 メッセージポストを行わない場合、C言語ではWM_NULL、Visual Basicでは0、DelphiではWM_NULLを指定してください。

uCounter カウンタ割り込みメッセージ(7208系のみ) MTREVENTTABLE構造体のdwCounterにて設定した割り込み発生時に送出するメッセージコードを指定します。 メッセージポストを行わない場合、C言語ではWM_NULL、Visual Basicでは0、DelphiではWM_NULLを指定してください。

Page 110: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

Interface Corporation - 108 -

uComparator コンパレータ割り込みメッセージ(7208系のみ)

MTREVENTTABLE構造体のdwComparatorにて設定した割り込み発生時に送出するメッセージコードを指定します。 メッセージポストを行わない場合、C言語ではWM_NULL、Visual Basicでは0、DelphiではWM_NULLを指定してください。

uSignal uSignal 外部信号割り込みメッセージ MTREVENTTABLE構造体のdwSignalにて設定した割り込み発生時に送出するメッセージコードを指定します。 メッセージポストを行わない場合、C言語ではWM_NULL、Visual Basicでは0、DelphiではWM_NULLを指定してください。 インタロックによるリセット時にも、uSignalで指定したメッセージが送出されます。

uReserved 将来拡張用 C言語ではWM_NULL、Visual Basicでは0、DelphiではWM_NULLを指定してください。

lpCallBackProc MtrSetEventMask関数にて設定した各種割り込み発生時に呼び出されるユーザ・コールバック関数のアドレスを指定します。 ユーザ・コールバック関数の呼び出しを行わない場合、C言語ではNULL、Visual Basicでは0、DelphiではNILを指定してください。

dwUser ユーザ・コールバック関数へ引き渡すユーザ・データを指定します。

■コールバック関数書式 void MTRCALLBACK CallBackProc(MTREVENTTABLE EventInfo,DWORD dwUser);

パラメータ 説明 EventInfo 割り込み要因が渡されます。(MTREVENTTABLE構造体)

dwUser MTREVENTREQ構造体のdwUserにて指定された値が渡されます。

MTRSAMPLEREQ構造体

MtrSetSampleCounter関数で指定するサンプリング条件の設定、およびMtrGetSampleCounter関数によるサンプリング条件の取得の際に使用する構造体です。

Type MTRSAMPLEREQ hWnd As Long uStopMsg As Long uSampleMsg As Long dwAxis As Long dwModedwMode As Long dwSampleRate As Long dwBufferSize As Long dwSampleCounter As Long End Type

メンバ 説明 hWnd メッセージ送出ウィンドウハンドル

サンプリング停止時/サンプリング済み件数一致時に送出するメッセージのポスト先ウィンドウハンドルを指定します。(メッセージ送出時、LPARAMにはサンプリング済件数が格納されます) メッセージポストを行わない場合、C言語ではNULL、Visual Basicでは0、DelphiではNILを指定してください。

uStopMsg サンプリング停止メッセージ サンプリング停止時に送出するメッセージコードを指定します。 メッセージポストを行わない場合には、C言語ではWM_NULL、Visual Basicでは0、DelphiではWM_NULLを指定してください。

uSampleMsg サンプリング済件数メッセージ 指定したサンプリングカウンタごとに送出するメッセージコードを指定します。 メッセージポストを行わない場合には、C言語ではWM_NULL、Visual Basicでは0、DelphiではWM_NULLを指定してください。

Page 111: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

- 109 - Interface Corporation

dwAxis 軸数

1:1軸サンプリング 2:2軸サンプリング ■PCI-7210Cの場合 1軸目のデバイスから2軸サンプリング指定で2軸目と同時サンプリングを行います。 3軸目のデバイスから2軸サンプリング指定で4軸目と同時サンプリングを行います。 ■PCI-7211Cの場合 1軸目のデバイスから2軸サンプリング指定で2軸目と同時サンプリングを行います。 2,4軸目のデバイスから2軸サンプリング指定はできません。

dwMode カウンタ種別 サンプリングをする対象カウンタとサンプリング方法を指定します。

コード 値 意 味

MTR_ENCODER 0 エンコーダ値をサンプリング

MTR_COUNTER 1 カウンタ値をサンプリング

MtrSetCounterConfig関数における MTR_ENCODER_MODEの設定で ・MTR_NOT_COUNTを設定していた場合、MTR_COUNTERの設定はできません。 ・MTR_NOT_COUNT以外の設定の場合、MTR_ENCODERの設定はできません。

サンプリング開始オプション

コード 値 意 味

MTR_BUSY_SAMP 0100h 動作起動時からサンプリング開始

サンプリング終了オプション

コード 値 意 味 MTR_REPEAT 1000h サンプリングバッファに空きができればサンプリン

グを再開します。

それぞれのオプションはカウンタコードに ORすることによって有効になります。 例) "MTR_COUNTER | MTR_BUSY_SAMP | MTR_REPEAT" (1101h) カウンタ値を動作起動時から繰り返しサンプリングします。

dwSampleRate サンプリング周期 1~1500ms

dwBufferSize サンプリングバッファサイズ サンプリングデータを格納しておくバッファサイズを指定します。 1~1G(3FFFFFFFh) 2軸同時の場合:1~500M(1~1FFFFFFFh)

dwSampleCounter メッセージ送出サンプリングカウンタ値 メッセージを送出するカウンタ値を設定します。 1~1G(3FFFFFFFh) 2軸同時の場合、1~500M(1~1FFFFFFFh)

Page 112: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

Interface Corporation - 110 -

6.3 Visual Basic用定数一覧 MTR_FLAG_NORMAL = 0 MTR_FLAG_OVERLAPPED = 1 MTR_CLOCK_1M = 0 MTR_CLOCK_1_4M = 1 MTR_CLOCK_1_16M = 2 MTR_METHOD = 0 MTR_IDLING = 1 MTR_0P5PULSE = 1 MTR_1P5PULSE = 3 MTR_WIDTH = 2 MTR_FINISH_FLAG = 3 MTR_PULSE_OUT = 0 MTR_INP = 1 MTR_MASK = 0 MTR_LOGIC = 1 MTR_SD_FUNC = 2 MTR_CHANGE_SD_SPEED = 0 MTR_DEC_STOP_SIGNAL = 1 MTR_SD_ACTIVE = 3 MTR_SIGNAL_LEVEL = 0 MTR_SIGNAL_EDGE = 1 MTR_ENCODER_MODE = 0 MTR_NOT_COUNT = 0 MTR_SINGLE = 1 MTR_DOUBLE = 2 MTR_QUAD = 3 MTR_UP_DOWN = 4 MTR_ENCODER_CLEAR = 1 MTR_NOT_CLEAR = &H0 MTR_STOPPED_BY_ORG = &H1 MTR_STOPPED_BY_ORG_Z = &H2 MTR_NORMAL_STOPPED = &H4 MTR_STOPPED_BY_LIMIT = &H8 MTR_COMP_CONFIG1 = 0 MTR_COMP_CONFIG2 = 1 MTR_COMP_CONFIG3 = 2 MTR_NO_COMP = 0 MTR_GT_COMP = 1 MTR_EQ_COMP = 2 MTR_PRESET1 = 3 MTR_PRESET2 = 4 MTR_PRESET3 = 5 MTR_COMP_OBJECT = 6 MTR_COMP_OBJECT1 = 6 MTR_COMP_OBJECT2 = 7 MTR_COMP_OUT = 9 MTR_ONESHOT = 0 MTR_LEVEL = 1 MTR_CLR_OUT = 2 MTR_JOG = 0 MTR_ORG = 1 MTR_PTP = 2 MTR_AUTO_PTP = 3 MTR_CP = 4 MTR_LINE = 6 MTR_ARC = 7 MTR_DRAW_IN = 8 MTR_RESTART = 9 MTR_NORMAL = &H0 MTR_CONST = &H10000 MTR_ACC_NORMAL = 0 MTR_ACC_SIN = 1 MTR_ACC_EXP = 2 MTR_ACC_ORIGINAL = 3 MTR_STOP_ORG = &H0 MTR_STOP_ORG_EZ = &H100 MTR_SQUEAR_ROOT2 = &H200 MTR_MARK = &H400 MTR_MARK_ACC = &H800 MTR_CW = 1

Page 113: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

- 111 - Interface Corporation

MTR_CCW = -1 MTR_DEC_STOP = 0 MTR_IMMEDIATE_STOP = 1 MTR_STOP_ALL = 2 MTR_RESET_SYNC_START = 0 MTR_SET_SYNC_START = 1 MTR_IMMEDIATE_CHANGE = 0 MTR_ACCDEC_CHANGE = 1 MTR_DEC_LOW_SPEED = 4 MTR_RELEASE_DEC = 5 MTR_HOLD_NOW_SPEED = 6 MTR_RELEASE_HOLD = 7 MTR_ENCODER = 0 MTR_COUNTER = 1 MTR_REMAINS = 2 MTR_BUSY = 0 MTR_FINISH_STATUS = 1 MTR_LIMIT_STATUS = 2 MTR_INTERLOCK_STATUS = 4 MTR_ILOCK_OFF = 0 MTR_ILOCK_ON = 1 MTR_ERROR_CODE = 5 MTR_CONFIRM_END = 6 MTR_COMPLETE = 0 MTR_NOT_COMPLETE = 1 MTR_COMPARATOR = 7 MTR_NORMAL_SAMP = &H0 MTR_BUSY_SAMP = &H100 MTR_ONETIME = &H0 MTR_REPEAT = &H1000

Page 114: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

Interface Corporation - 112 -

技術資料紹介 弊社では下記の技術資料を提供しております。 詳しくは、弊社Web site(www.interface.co.jp)、または弊社窓口までお問い合わせください。 カタログ

PRM-0061 CPZカタログ(日本語版) PRM-0062 PCIカタログ(日本語版) PRM-0063 CSIカタログ(日本語版)

チュートリアル TUT-0058 チュートリアル CPZ拡張ユニット 入門編 TUT-0056 チュートリアル XP Embedded OS構築編 TUT-0055 チュートリアル 画像入力I/Oモジュール TUT-0054 CANチュートリアル TUT-0053 モーションコントロールチュートリアル TUT-0050 RTLinuxによるモーションコントローラI/Oモジュール制御プログラミング チュートリアル(GPG-7400用) TUT-0048 RTLinuxによるメモリンクI/Oモジュール制御プログラミング チュートリアル TUT-0044 RTLinuxによるメモリ共有インタフェースI/Oモジュール制御プログラミング チュートリアル TUT-0043 RTLinuxによる調歩同期シリアル通信I/Oモジュール制御プログラミング チュートリアル TUT-0041 RTLinuxによるGP-IBI/Oモジュール制御プログラミング チュートリアル TUT-0040 RTLinuxによるDAI/Oモジュール制御プログラミング チュートリアル TUT-0039 RTLinuxによるADI/Oモジュール制御プログラミング チュートリアル TUT-0038 RTLinuxによるDIOI/Oモジュール制御プログラミング チュートリアル TUT-0037 RTLinuxによるHDLCI/Oモジュール制御プログラミング チュートリアル TUT-0036 RTLinuxによるPCI/CompactPCI/CardBus制御入門書(導入編) TUT-0034 Visual C++によるPPI入門書 TUT-0033 Visual Basicによるメモリ共有インタフェース入門書 TUT-0032 Visual C++によるメモリ共有インタフェース入門書 TUT-0031 Visual Basicによるメモリンク入門書 TUT-0030 Visual C++によるメモリンク入門書 TUT-0029 Visual BasicによるHDLC入門書 TUT-0028 Visual C++によるHDLC入門書 TUT-0027 Visual BasicによるGP-IB入門書 TUT-0026 Visual C++によるGP-IB入門書 TUT-0025 Visual BasicによるDIO入門書 TUT-0024 Visual C++によるDIO入門書 TUT-0023 Visual BasicによるDA入門書 TUT-0022 Visual C++によるDA入門書 TUT-0021 Visual BasicによるAD入門書 TUT-0020 Visual C++によるAD入門書 TUT-0019 Visual Basicによるモーションコントローラ入門書 TUT-0018 Visual C++によるモーションコントローラ入門書 TUT-0017 メモリンクを使用した負荷分散システム事例チュートリアル TUT-0016 Visual BasicによるPPI入門書 TUT-0015 モーションコントロールチュートリアル TUT-0014 Microsoft Visual Studio .NET移行ガイド TUT-0008 拡張ユニット チュートリアル(問題解決編) TUT-0007 拡張ユニットチュートリアル(入門編) TUT-0006 C(98)/ISA製品からPCI/CompactPCI製品への移行チュートリアル(DOS編) TUT-0005 DOSによるLAP-B入門書 TUT-0004 DOSによるAD入門書 TUT-0003 LinuxによるPCI/CompactPCI/CardBus制御 入門書 TUT-0002 PCI-ISAバスブリッジチュートリアル TUT-0001 PCI-Cバスブリッジチュートリアル

技術情報資料 初めてのCANインタフェース Linux, リアルタイムLinux移植(SH-4)経験談及び当社の今後の取り組みについて LinuxからPCI/CompactPCII/Oモジュールを制御する方法 ActiveXコントロールによるシステム組み込み技術 CompactPCIへの置き換え+システム構築/移行ガイド MS-DOSからPCI/CompactPCII/Oモジュールを制御する方法

Page 115: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019

- 113 - Interface Corporation

参考文献

著 者 題 名 見城 尚志, 新村 佳久 ステッピングモータの基礎と応用(総合電子出版社) 平山 良裕 ステッピングモータ&駆動回路の種類と特徴(CQ出版社)

警告!

本ドキュメントの一部または全てを弊社の許可なく、複写,複製,転載,電子化することを禁じま

す。

Page 116: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

TUT-0019 2007年 7月 Ver. 1.1 発行 発行所

〒732-0828 広島県広島市南区京橋町10-21 TEL 082-262-7777 FAX 082-262-5066

定価 ¥2,000

本書の内容の一部または全部を、無断で転載することを禁止します。 本書の内容は、将来予告なく変更することがありますので、予めご了承ください。 © 2000, 2007 Interface Corporation. All rights reserved.

Page 117: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

www.interface.co.jp

サポート体制

本製品についてのお問い合わせは、お客様相談センタで承ります。弊社Web siteのオンライ

ンQA(「サポート」→「お客様相談センタ」をクリック)、E-mailまたはフリーダイヤルをご利用く

ださい。 お問い合わせ先 <お客様相談センタ> TEL 0120-447213 FAX 0120-458257 (祝日および弊社休業日を除く月~金 AM9:00~PM5:00迄) E-mail [email protected]

TUT-0019 Ver. 1.1 Vol. 1/1

Page 118: Visual Basicによるモーション コントローラ入門書 Interface Corporation - 2 - 目 次 第1 章 概要 6 1.1 ステッピングモータの特徴 7 1.2 ステッピングモータの構造

www.interface.co.jp

Visual Basicによるモーションコントローラ入門書 TUT-0019 Ver. 1.1