HPCI-MCAT520M HPCIe-MCAT620M HCPCI

モーション制御用省配線システム
motionCAT series
PCI Bus Master
HPCI-MCAT520M
PCI Express Bus Master
HPCIe-MCAT620M
CompactPCI Bus Master
HCPCI-MNT720M
ユーザーズマニュアル
〈ソフトウェア編 Windows 版〉
http://www.hivertec.co.jp/
..
本マニュアル及びプログラムの全部又は一部の無断転載,コピーを禁止します.
本製品の内容に関しましては,改良等により将来予告なしに変更することがあります.
本製品の内容についてお気づきの点がございましたら,お手数ながら当社までご連絡ください.
Windows は Microsoft Corporation の米国及びその他の国における登録商標です.
その他,記載されている会社名,製品名は,各社の商標又は登録商標です.
株式会社 ハイバ-テック
東京都江東区新大橋 1-8-11
三井生命新大橋ビル
TEL 03-3846-3801
FAX 03-3846-3773
[email protected]
第 2.20 版 2015 年 7 月 3 日発行
不許複製・転載
本製品をご使用される前に
motionCAT シリーズユーザーズマニュアル<導入編>「1. はじめに」,
本書の「注意事項」を必ずご一読の上ご利用をお願い致します.
本書は,motionCAT シリーズユーザーズマニュアル<導入編>の
1 章,7 章をご理解いただいた前提で書かれています.
目
次
注意事項 ............................................................................................................................................................... 1
保証範囲 .............................................................................................................................................................. 2
免責事項 .............................................................................................................................................................. 2
安全にお使い頂くために ........................................................................................................................................... 2
添付ソフトウェア適合 OS ......................................................................................................................................... 3
試運転・調整 ......................................................................................................................................................... 3
マニュアル構成 ........................................................................................................................................................ 4
添付ソフトウェア ...................................................................................................................................................... 4
更新履歴 ............................................................................................................................................................... 5
1.
はじめに ........................................................................................................................................................ 6
1.1 呼称 ............................................................................................................................................................... 7
1.2 ソフトウェアの構成 ............................................................................................................................................. 7
2.
サンプルプログラム ........................................................................................................................................... 9
2.1 サンプルプログラムの構成 ................................................................................................................................. 10
2.1.1 モジュール種別とモジュール機能 ................................................................................................................. 10
2.1.2 サンプルプログラムと各モジュールの対応表 ................................................................................................... 10
2.2 位置決めモジュール(P, W, M モジュール)サンプルプログラム .................................................................................. 11
2.2.1 サンプルプログラムの実行........................................................................................................................... 11
2.2.2 サンプルプログラムの機能........................................................................................................................... 11
2.2.3 サンプルプログラムの操作........................................................................................................................... 11
2.3 位置決めモジュール(C,F モジュール)サンプルプログラム ....................................................................................... 18
2.3.1 サンプルプログラムの実行........................................................................................................................... 18
2.3.2 サンプルプログラムの機能........................................................................................................................... 18
2.3.3 サンプルプログラムの操作........................................................................................................................... 18
2.4 DIO モジュール(D,I,O,T)サンプルプログラム ..................................................................................................... 22
2.4.1 サンプルプログラムの実行........................................................................................................................... 22
2.4.2 サンプルプログラムの機能........................................................................................................................... 22
2.4.3 サンプルプログラムの操作........................................................................................................................... 22
2.5 アナログモジュール(A,B モジュール)サンプルプログラム .......................................................................................... 26
2.5.1 サンプルプログラムの実行........................................................................................................................... 26
2.5.2 サンプルプログラムの機能........................................................................................................................... 26
2.5.3 サンプルプログラムの操作........................................................................................................................... 26
2.6 ABS エンコーダ受信モジュール(R,S モジュール)サンプルプログラム ......................................................................... 29
2.6.1 サンプルプログラムの実行........................................................................................................................... 29
2.6.2 サンプルプログラムの操作........................................................................................................................... 29
2.7 D モジュールサンプルプログラム(VB6.0 のみ) ....................................................................................................... 34
2.7.1 サンプルプログラムの実行........................................................................................................................... 34
2.7.2 サンプルプログラムの操作........................................................................................................................... 34
2.8 T モジュールサンプルプログラム(VB6.0 のみ) ........................................................................................................ 36
2.8.1 サンプルプログラムの実行........................................................................................................................... 36
2.8.2 サンプルプログラムの操作........................................................................................................................... 36
3.
ソフトウェアの準備......................................................................................................................................... 38
3.1 マスターボードを複数枚使用する場合 ............................................................................................................... 39
3.1.1 ボードのデバイス番号 ............................................................................................................................... 39
3.1.2 ボード ID の使用 ..................................................................................................................................... 39
3.2 アプリケーション作成準備 ................................................................................................................................. 40
3.2.1 Microsoft Visual C++ (2008 以上)アプリケーション作成準備 ...................................................................... 40
3.2.2 Microsoft Visual C#(2008 以上)アプリケーション作成準備 .......................................................................... 40
3.2.3 Microsoft Visual Basic(2008 以上)アプリケーション作成準備 ..................................................................... 41
3.2.4 Microsoft Visual Basic 6.0 アプリケーション作成準備 ................................................................................. 41
3.3 ボードアクセス方法 ......................................................................................................................................... 42
3.3.1 デバイス情報構造体 ................................................................................................................................ 42
3.3.2 モジュール情報構造体 ............................................................................................................................. 42
3.4 ボードアクセスの準備手順と終了処理 ............................................................................................................... 43
3.4.1 ドライバ関数を使用した準備手順 .............................................................................................................. 43
3.4.2 終了処理 ............................................................................................................................................... 43
3.4.3 ライブラリ関数を使用した準備手順 ............................................................................................................ 44
3.4.4 終了処理 ............................................................................................................................................... 44
3.5 関数の戻り値 ................................................................................................................................................ 45
4.
ライブラリ関数 .............................................................................................................................................. 46
4.1 モーションモジュール用ライブラリ関数 .................................................................................................................. 47
4.2 モーションモジュール用ライブラリ関数一覧 ........................................................................................................... 47
4.2.1 デバイス関係 ........................................................................................................................................... 47
4.2.2 初期設定 ............................................................................................................................................... 48
4.2.3 状態読み出し ......................................................................................................................................... 48
4.2.4 動作設定 ............................................................................................................................................... 49
4.2.5 動作制御指令 ........................................................................................................................................ 50
4.2.6 計算関数 ............................................................................................................................................... 50
4.3 モーションモジュール用ライブラリ関数詳細 ........................................................................................................... 51
4.3.1 デバイス関係 ........................................................................................................................................... 51
4.3.2 初期設定 ............................................................................................................................................... 53
4.3.3 状態読み出し ......................................................................................................................................... 62
4.3.4 動作設定 ............................................................................................................................................... 69
4.3.5 動作制御指令 ........................................................................................................................................ 81
4.3.6 計算関数 ............................................................................................................................................... 90
5.
ドライバ関数 ................................................................................................................................................ 92
5.1 ドライバ関数 .................................................................................................................................................. 93
5.2 ドライバ関数一覧 ........................................................................................................................................... 93
5.2.1 デバイス関係 ........................................................................................................................................... 93
5.2.2 オプションポート関係 ................................................................................................................................. 93
5.2.3 センターデバイス関係 ................................................................................................................................ 93
5.2.4 DIO モジュール(一部アナログモジュールにも使用)関係................................................................................... 94
5.2.5 モーションモジュール関係 ........................................................................................................................... 94
5.2.6 アナログモジュール関係 ............................................................................................................................. 94
5.3 ドライバ関数詳細 ........................................................................................................................................... 94
5.3.1 デバイス関係 ........................................................................................................................................... 95
5.3.2 オプションポート関係 ................................................................................................................................. 96
5.3.3 センターデバイス関係 ................................................................................................................................ 97
5.3.4 DIO モジュール(一部アナログモジュールにも使用)関係................................................................................. 104
5.3.5 モーションモジュール関係 ......................................................................................................................... 106
5.3.6 アナログモジュール関係 ........................................................................................................................... 114
6.
ポート資料 ................................................................................................................................................ 118
6.1 ポート表 ...................................................................................................................................................... 119
6.2 オプションポート ............................................................................................................................................. 120
6.2.1 マスターボード汎用入力ポート(HCPCI-MNT720M のみ) ........................................................................... 120
6.2.2 マスターボード汎用出力設定ポート(HCPCI-MNT720M のみ) ................................................................... 120
6.2.3 G9001A ステータス ................................................................................................................................ 120
6.2.4 G9001A 通信速度設定状態 ................................................................................................................. 121
6.2.5 PCI 割込許可 ....................................................................................................................................... 121
6.2.6 PCI 割込ステータスポート ........................................................................................................................ 121
6.2.7 ボード ID 確認ポート .............................................................................................................................. 122
6.2.8 ボードコード確認ポート ........................................................................................................................... 122
6.3 PCI コンフィグレーションレジスタ........................................................................................................................ 122
6.4 PCI アドレス空間 .......................................................................................................................................... 122
図
表
目
次
図 1.2-1 32 ビット W INDOWS ソフトウェアの構成 ........................................................................................... 7
図 1.2-2 64 ビット W INDOWS ソフトウェアの構成 ........................................................................................... 8
表 2.2-1 サンプルプログラム G9003 レジスタ初期値 .................................................................................... 11
図 2.2-2 デバイスオープン/クローズ画面 ................................................................................................... 12
図 2.2-3 原点復帰動作サンプル画面 ....................................................................................................... 13
図 2.2-4 入力極性選択とサーボオン ......................................................................................................... 13
図 2.2-5 動作速度設定 .......................................................................................................................... 14
図 2.2-6 原点復帰動作開始ボタン ........................................................................................................... 14
図 2.2-7 連続送り動作サンプル画面 ......................................................................................................... 15
図 2.2-8 位置決め動作サンプル画面 ........................................................................................................ 16
図 2.2-9 複数軸動作サンプル画面 ........................................................................................................... 17
表 2.3-1 サンプルプログラム G9003 レジスタ初期値 .................................................................................... 18
図 2.3-1 プログラム選択画面 .................................................................................................................... 19
図 2.3-2 2 軸直線補間動作サンプル画面 ................................................................................................. 19
図 2.3-3 2 軸円弧補間動作サンプル画面 .................................................................................................. 20
図 2.3-4 2 軸次動作連続動作サンプル画面 .............................................................................................. 21
図 2.4-1 DIO モジュールサンプル画面 ......................................................................................................... 22
図 2.5-1 アナログモジュールサンプル起動画面 ............................................................................................. 26
図 2.5-2 起動手順 ................................................................................................................................. 27
図 2.5-3 操作画面 ................................................................................................................................. 27
図 2.5-4 アナログ入力画面 ...................................................................................................................... 28
図 2.5-5 アナログ出力画面 ...................................................................................................................... 28
図 2.6-1 初期画面 .................................................................................................................................. 29
図 2.6-2 オープン/クローズ画面(ボード ID 取得, デバイスオープン) ................................................................ 30
図 2.6-3 初期画面(サンプル操作画面オープン) .......................................................................................... 31
図 2.6-4 サンプル操作画面(初期状態) ..................................................................................................... 31
図 2.6-5 サンプル操作画面(FIFO リセット後) ............................................................................................. 32
図 2.6-6 コマンドコンボボックス ................................................................................................................... 32
図 2.6-7 サンプル操作画面(コマンド結果表示) ........................................................................................... 33
図 2.7-1 DIO モジュールサンプル(VB6.0 のみ)の画面 ................................................................................. 34
図 2.7-2 モジュール ID コンボ BOX ............................................................................................................ 35
図 2.7-3 DIO モジュールサンプル(VB6.0 のみ)の操作画面 .......................................................................... 35
図 2.8-1 T モジュールサンプル(VB6.0 のみ)の画面 ...................................................................................... 36
図 2.8-2 モジュール ID コンボ BOX ............................................................................................................ 36
図 2.8-3 T モジュールサンプル(VB6.0 のみ)の操作画面 .............................................................................. 37
図 3.1-1 ボードを複数枚使用 .................................................................................................................. 39
表 3.5-1 関数の戻り値 ............................................................................................................................ 45
図 5.3-1 汎用出力状態ポートのビット構成 .............................................................................................. 106
表 5.3-1 汎用出力状態ポートの内容 ..................................................................................................... 106
図 5.3-2 汎用出力設定ポート(IOPOB)のビット構成 ............................................................................... 107
表 5.3-2 汎用出力ポートの内容 ............................................................................................................. 107
図 5.3-3 モーションメインステータス(MMSTS)のビット構成 .......................................................................... 108
表 5.3-3 モーションメインステータス(MMSTS)の内容 ................................................................................. 108
表 5.3-4 スタートコマンド ......................................................................................................................... 109
表 5.3-5 速度変更コマンド ..................................................................................................................... 110
表 5.3-6 停止コマンド ............................................................................................................................ 110
表 5.3-7 モーションコントロールコマンド ...................................................................................................... 110
表 5.3-8 プリレジスタ制御コマンド(G9103B のみ) ..................................................................................... 110
表 5.3-9 モーションレジスタ読出しコマンド ................................................................................................. 111
表 5.3-10 モーションレジスタ書込みコマンド............................................................................................... 112
表 6.1-1 ボードアドレス .......................................................................................................................... 119
図 6.2-1 マスターボード汎用入力ポートのビット構成 .................................................................................. 120
表 6.2-1 マスターボード汎用入力ポートの内容 ......................................................................................... 120
図 6.2-2 マスターボード汎用出力設定及び出力状態確認ポートのビット構成 .............................................. 120
表 6.2-2 マスターボード汎用出力設定及び出力状態確認ポートの内容 ..................................................... 120
図 6.2-3 G9001A ステータス確認ポートのビット構成................................................................................. 120
表 6.2-3 G9001A ステータス確認の内容 ................................................................................................ 120
図 6.2-4 G9001A 通信速度設定状態のビット構成 ................................................................................. 121
表 6.2-4 G9001A 通信速度設定確認ポートの内容 ................................................................................ 121
図 6.2-5 PCI 割込許可設定ポートのビット構成 ....................................................................................... 121
表 6.2-5 PCI 割込許可設定ポートの内容 .............................................................................................. 121
図 6.2-6 PCI 割込ステータスポートのビット構成 ........................................................................................ 121
表 6.2-6 PCI 割込ステータスポートの内容 ............................................................................................... 121
図 6.2-7 ボード ID 確認ポートのビット構成 ............................................................................................... 122
表 6.2-7 モジュール ID 読出(ボード ID)の内容 ......................................................................................... 122
表 6.2-8 ボードコード確認ポートの内容 ................................................................................................... 122
表 6.4-1 PCI アドレス空間 ..................................................................................................................... 122
注意事項
1
保証範囲
1.
本製品の保証期間は,お買い上げ頂いた日より 3 年間です.保証期間中に弊社の判断により欠陥が判明した場合
には,本製品を弊社に引き取り,修理または交換を行います.
2.
保証期間内外に関わらず,弊社製品の使用,供給(納期)または故障に起因する,お客様及び第三者が被った,直
接,間接,二次的な損害あるいは,遺失利益の損害に付いて,弊社は本製品の販売価格以上の責任を負わないも
のとしますので,予めご了承ください.
免責事項
1.
本書に記載された内容に沿わない,製品の取付,接続,設定,運用により生じた損害に対しましては,一切の責任を
負いかねますので,予めご了承ください.
2.
本製品は,一般電子機器用(工作機械・計測機器・FA/OA 機器・通信機器等)に製造された半導体製品を使用し
ていますので,その誤作動や故障が直接,生命を脅かしたり,身体・財産等に危害を及ぼしたりする恐れのある装置
(医療機器・交通機器・燃焼機器・安全装置等)に適用できるような設計,意図,または,承認,保証もされていませ
ん.ゆえに本製品の安全性,品質および性能に関しては,本マニュアル(またはカタログ)に記載してあること以外は明示
的にも黙示的にも一切保証するものではありませんので,予めご了承ください.
3.
保証期間内外に関わらず,お客様が行った弊社の承認しない製品の改造または,修理が原因で生じた損害に対しま
しては,一切の責任を負いかねますので,予めご了承ください.
4.
本書に記載された内容について,弊社もしくは,第三者の特許権,著作権,商標権,その他の知的所有権の権利に
対する保証または実施権の許諾を行うものではありません.
また本マニュアルに記載された情報を使用したことにより第三者の知的所有権等の権利に関わる問題が生じた場合,
弊社は,その責任を負いかねますので,予めご了承ください.
安全にお使い頂くために
この度は,弊社 NC ボードシリーズをご採用頂きまして,誠に有り難う御座います.本マニュアルは,本製品をご使用して
頂く場合の取扱い,留意点に付いて記入してありますので,必ずご一読の上ご利用をお願い致します.
尚,本マニュアルは,本マニュアルが添付された NC ボード常設箇所付近の分かりやすい場所に常時保管し,必要に応
じて適宜参照・確認頂きますよう,お願い致します.
安全上の注意
本製品のご使用前に,必ずこのユーザーズマニュアル及び付属書類を全て熟読し,内容を理解してから正しくご使用く
ださい.本製品の知識,安全の情報及び注意事項の全てに付いて習熟してからご使用ください.
本ユーザーズマニュアルでは,安全注意事項のランクを「警告」,「注意」として区分してあります.
警 告
この表示を無視して,誤った取扱いをすると,人が死亡または重傷を負う可能性が想定される
内容を示しています.
注 意
この表示を無視して,誤った取扱いをすると,人が傷害を負う可能性または物的損害が想定
される内容を示しています.
2
添付ソフトウェア適合 OS
注 意
HPCIe-MCAT620M , HPCI-MCAT520M, HCPCI-MNT720M の 標 準 添 付 ソ フ ト ウ ェ ア は
Windows8, Windows7,Windows Vista,WindowsXP に対応しております.
試運転・調整
警 告
本シリーズ製品を使用し装置を動作させる時は,プログラムのデバッグを充分行ってから動作させてくださ
い.プログラムに間違いがありますと,思わぬ動きをすることがあります.
本シリーズ製品に添付してあるサンプルプログラムを使用し装置を動作させる時,最初は速度の低いところ
で,また機械系に合った設定を行って動作を確認してください.機械系に合わない設定で動作を行うと思
わぬ動きをすることがあります.
3
マニュアル構成
motionCAT シリーズの製品には次のマニュアルが添付されています.
 motionCAT シリーズユーザーズマニュアル<導入編>
 motionCAT シリーズユーザーズマニュアル<運用編>
 motionCAT シリーズユーザーズマニュアル<ソフトウェア編 Windows 版/DOS 版>
1.
motionCAT シリーズユーザーズマニュアル<導入編>
このマニュアルには以下の事項がが記述されています.
(1) motionCAT の導入
(2) マスターボード
(3) スレーブ
(4) インストール
(5) 試運転
(6) アクセサリ
(7) 用語の説明
(8) 接続例
(1),(7)の内容は motionCAT システムを使用する方全ての人を対象としていますので,必ずご一読の上ご利用をお願いた
します.
その他は主として設置・接続・配線をする開発者を対象としています.
2.
motionCAT シリーズユーザーズマニュアル<運用編>
このマニュアルには motionCAT シリーズ製品に共通するソフトウェア構築のために必要な事項が記述されています.
(1) 各モジュールの運用
(2) デバイス資料
3.
motionCAT シリーズユーザーズマニュアル<ソフトウェア編 Windows 版 / DOS 版>
各種マスタに添付されるソフトウェアの使用方法について記述されています.
(1) ソフトウェアの構成
(2) サンプルプログラム
(3) ソフトウェアの準備
(4) ライブラリ関数
(5) ドライバ関数
(6) ポート資料
添付ソフトウェア
motionCAT シリーズのマスタには標準添付として以下の Windows 用ソフトウェアが添付されます.
(1) Windows 用デバイスドライバ
(2) 動作確認用プログラム「動かしてみる」
(3) Microsoft Visual Studio 用サンプルプログラム
添付ソフトウェアの内容についてはソフトウェア編を参照ください.
4
更新履歴
日付
版
更新内容
2011/10/24
2.00
Windows 版新規作成
2014/04/23
2.10
マニュアル見直しによる全体再構築
○誤記修正
「図 1.2-2 64 ビット Windows ソフトウェアの構成」(誤)32 ビット→(正)64 ビット
(誤)hpx_InitMotionMod→(正)hpx_InitMotionModule
2015/04/10
2015/07/03
2.11
2.20
(誤)hcx_InitMotionMod→(正)hcx_InitMotionModule
○「2.2.1, 2.3.1, 2.4.1, 2.5.1, 2.6.1 サンプルプログラムの実行」に追記
○C モジュール用の関数を追加
・「4.2 モーションモジュール用ライブラリ関数一覧」を変更
・「4.3 モーションモジュール用ライブラリ関数詳細」を変更
○F モジュール,M モジュール追加による記述追加
○誤記修正
・「4.3.4 (54) hcx_WritOpeMode() 動作モード書込み」の備考欄
・「6.1 ポート表」
5
1.はじめに
1. はじめに
6
1.はじめに
1.1 呼称
本書では motionCAT シリーズ PCI Bus マスタ HPCI-MCAT520M, CompactPCI Bus マスタ HCPCI-MNT720M を
MCAT と呼称します.
1.2 ソフトウェアの構成
弊社の提供するソフトウェアは,ライブラリ関数,ドライバ関数,デバイスドライバの 3 種類です.
デバイスドライバは MCAT への入出力を行うソフトウェアです.
ドライバ関数はアプリケーションとデバイスドライバをつなぐ入出力関数「デバイスドライバ I/F 用ライブラリ」であり,Win32API 関
数として DLL ファイルで提供されています.
ライブラリ関数はドライバ関数で構成され,モーションモジュールの初期化,原点復帰,位置決め動作等の基本的な動作を
制御することができます.ライブラリ関数はソースファイルで提供されていますので,適宜変更追加することができます.
また各開発言語用ライブラリ関数の仕様は同様になっています.
(1) Windows 版デバイスドライバ
◇Windows7(32bit),Vista(32bit),XP,2000 用 ・・・ hm520wdm.sys
◇Windows7(64bit),Vista(64bit)用
・・・ hm520x64.sys
(2)
Windows 版デバイスデバイスドライバ I/F 用 DLL
デバイスドライバ I/F 用 DLL に含まれる各種関数を「ドライバ関数」と称します.
◇Windows 用 ・・・ himnt520.dll(32bit 用と 64bit 用があります)
(3)
Windows 版ライブラリ関数
◇VC++用ライブラリ関数ソースファイル
◇VC++用ライブラリ関数ヘッダファイル
・・・ hpxl1a.c
・・・ hpxl1a.h
◇VB6.0 用ライブラリ関数ソースファイル
◇VB.NET 用ライブラリ関数ソースファイル
◇VC#用ライブラリ関数ソースファイル
・・・ hpxl1a.bas
・・・ hpxl1a.vb
・・・ hpxl1a.cs
アプリケーションプログラムとこれらのソフトウェアの関連は下図の通りです.
Windows (32bit)
アプリケーションプログラム
(ユーザー様作成部分)
ライブラリ関数
hpxl1a.c/hpxl1a.bas
ドライバ関数:himnt520.dll
デバイスドライバ:hm520wdm.sys
motionCAT マスタ(1枚目)
motionCAT マスタ(n 枚目)
motionCAT
スレーブ
図 1.2-1 32 ビット Windows ソフトウェアの構成
7
motionCAT
スレーブ
1.はじめに
Windows (64bit)
32 ビット
アプリケーション
64 ビット
アプリケーション
ライブラリ関数
hpxl1a.c
hpxl1a.bas
ライブラリ関数
hpxl1a.c
hpxl1a.bas
自動転送
SysWOW64
ドライバ関数:
himnt520.dll(32bit)
System32
ドライバ関数:
himnt520.dll(64bit)
デバイスドライバ:hm520x64.sys
motionCAT マスタ(1枚目)
motionCAT
スレーブ
motionCAT マスタ(n 枚目)
図 1.2-2 64 ビット Windows ソフトウェアの構成
8
motionCAT
スレーブ
2.サンプルプログラム
2. サンプルプログラム
各モジュールのサンプルプログラムの仕様と操作方法についてのみ記述してあります.サンプルソースコードの解説はここでは
していませんので,各サンプルソースコードのコメントを参考にしてください.
9
2.サンプルプログラム
2.1 サンプルプログラムの構成
サンプルプログラムは,添付 CD の Sample フォルダの中にあります.ファイルの説明は添付 CD の Readme.txt を参照してく
ださい.
サンプルプログラムは以下の 4 言語で作成しています.
Microsoft Visual C++ 2008
Microsoft Visual Basic2008
Microsoft Visual C#2008
Microsoft Visual Basic 6.0
各サンプルプログラムは開発環境に関わらず同様の仕様で作成しています.
本マニュアルでの説明は Microsoft Visual C++2008 サンプルプログラムの画面を使用しています.
2.1.1 モジュール種別とモジュール機能
モジュール種別
モジュール機能
C
1 軸位置決め(直線/円弧補間機能付き)
P
1 軸位置決め(補間機能なし)
W
2 軸位置決め(補間機能なし, ステッピングモータ向)
F
1 軸 5 相ステッピングモータドライバ
M
1 軸 2 相ステッピングモータドライバ
D
DIO 16in/16out
I
DI 32in
O
DO 32out
T
DIO 24in/8out
A
0-10V アナログ ADC 4ch / DAC 4ch
B
4-20mA 電流ループ ADC 4ch / DAC 1ch
R
ABS エンコーダ受信(安川,山洋)
S
ABS エンコーダ受信(パナソニック)
2.1.2 サンプルプログラムと各モジュールの対応表
開発言語
VC2008(x86)
VC#2008(x86)
VB2008(x86)
VB6.0
サンプルプロジェクト名称
対応モジュール
sp10000
P, W, C, F, M
sc10000
C, F
sd32000
D, I, O, T
sa44000
A, B
ss10000
R, S
sp10004
P, W, C
sc10004
C
sd32004
D, I, O, T
sa44004
A, B
ss10004
R, S
sp10003
P, W, C
sc10003
C
sd32003
D, I, O, T
sa44003
A, B
ss10003
R, S
sp10002
P, W
sd32002
D
sd24082
T
10
2.サンプルプログラム
2.2 位置決めモジュール(P, W, M モジュール)サンプルプログラム
2.2.1 サンプルプログラムの実行
サンプルプログラムを使用する場合は,お客様のハードディスクにコピーして使用します.
サンプル実行ファイルは”マウスのダブルクリック”操作を行う事で実行できます.
OS や.Net Framework のバージョン等,環境によりサンプル実行ファイルが動作しない場合がありますので,その場合はご
使用の環境に合った開発環境でビルドし直して下さい.
2.2.2 サンプルプログラムの機能
デバイスオープン/クローズサンプル
・・・
デバイス個数,情報取得,デバイスオープン/クローズ及びモジュール数の
チェックを行います.
原点復帰動作
連続送り動作
位置決め動作
複数軸動作
・・・
・・・
・・・
・・・
原点復帰動作のサンプルです.
連続送り動作のサンプルです.
1 軸位置決め動作のサンプルです.
2 軸位置決め動作(同時スタート)のサンプルです.
サンプルプログラム実行上の注意事項
■ 同一ライン上のモジュール ID は重複してはいけません.
■ モジュール数チェックのためデバイスオープン/クローズのサンプルを起動してから他のサンプルを起動してください.
■
■
■
■
■
複数軸動作のサンプルは同一スレーブ内の 2 個のモーションモジュールで動作します.
複数軸動作のサンプルは異なるスレーブのモーションモジュールの動作はできません.
W モジュールは SVALM 端子がありません.ソフトウェアでの入力極性は B 接設定にしてください.
M モジュールは SVALM 入力極性を B 接に設定してください.
M モジュールは SVON ON で励磁,SVON OFF で励磁オフ(モータフリー)になります.
2.2.3 サンプルプログラムの操作
(1) サンプルプログラム初期値
サンプルプログラムでは各軸の初期化は一部ソースプログラムで固定されています.
また,使用するボード ID は 0,使用するラインはライン 1 としています.
初期化の条件を変更して動作させたい場合には,ソースプログラムを変更してリビルドしてください.
レジスタ
内容
RFL
ベース速度
RFH
RUR
レジスタ初期
値
備
考
200
200pps
動作速度
2000
2000pps
加速レート
1387
200pps→2,000pps の加減速時間約 500msec(直線加減速時)
RMG
速度倍率
199
1倍
RFA
補助速度
200
200pps
RENV1
環境設定 1
00434004h
指令パルス出力形式:CW/CCW,SVCTRCL 自動出力しない,
SVCTRCL 出力パルス幅:13ms,DLS,OLS,SVALM:B 接,
ELS,SVALM 入力時即停止,DLS ラッチしない,SVRDY,INPOS:A 接,
LATC,CLR:立下りエッジ
RENV2
環境設定 2
000004FFh
サーボ I/F 出力設定,エンコーダ入力 4 逓倍
RENV3
環境設定 3
00700002h
原点復帰モード 2(OLS+Z),原点復帰完了時カウンタ 1~3 をクリア
RIRQ
イベントマスク設定 1
上記以外
正常停止時
0
表 2.2-1 サンプルプログラム G9003 レジスタ初期値
11
2.サンプルプログラム
(2)
プログラム選択画面
サンプルプログラムが正常に起動されると,次の画面が表示されます.ここでプログラムを選択します.
図 2.2-1 プログラム選択画面
(3) デバイスオープン/クローズサンプル
プログラム選択画面のデバイスオープン/クローズラジオボタンをクリックすると以下の画面が表示されます.
デバイスオープン/クローズのサンプルです.
(1) クリック
(2) ボード ID 選択
(3) ライン番号選択
(4) 接続モジュール数入力
(5) デバイスオープン
デバイスハンドル表示
選択されたマスターボードの
PCI デバイス情報が表示されます.
使用するモジュール ID を選択します.
ここで選択されたモジュール ID がその他のサンプルプログラムで使用されます.
図 2.2-2 デバイスオープン/クローズ画面
12
2.サンプルプログラム
(4)
原点復帰動作サンプル
原点復帰動作ラジオボタンをクリックすると以下の画面が表示されます.原点復帰動作の設定と原点復帰動作を行います.
【 操作画面 】
図 2.2-3 原点復帰動作サンプル画面
【 原点復帰動作の実行 】
次の原点復帰動作方法が選択できます.

OLS 検出原点復帰
・・・ 原点復帰動作 1:OLS 検出後減速停止し反転抜出し,再突入して完了.

OLS+Z 相原点復帰 ・・・ 原点復帰動作 2:OLS 検出後減速しエンコーダ Z 相検出で完了.

ELS 兼用原点復帰
・・・ 原点復帰動作 6:ELS 検出後減速停止し反転 ELS 抜出しで完了
原点復帰動作の詳細は「motionCAT シリーズユーザーズマニュアル<運用編>」を参照して下さい.
■ 極性選択とサーボオン
センサが入力されている場合,矢印部分の色が変わります.
+ELS,-ELS,SVALM が入力されると赤色,OLS,Z は緑色になります.
入力極性ボタン:入力極性を切替ます.
また現在設定されている極性を表示します.
A:A接設定/B:B接設定
サーボオン出力状態
緑:ON,白:OFF
SVONボタンクリックによりサーボオン/オフします.
図 2.2-4 入力極性選択とサーボオン
注意 1.+ELS,-ELS,SVALM が入力されていると動作をしません.
各センサの状態を確認してから,動作を開始して下さい.※SVON は,所定の接続が行われているものとしま
す.
注意 2.A 接は端子に電流が流れて「ON(検出)」,B 接は端子の電流が切れたときに「ON(検出)」です.
13
2.サンプルプログラム
■ 動作速度設定
動作速度は 1~100,000(PPS)の範囲で設定できます.
初期値は 4,000(PPS)になっていますので,必要に応じて適当な値に設定して下さい.
また,ベース速度を 200(PPS)に設定していますので,動作速度を 200(PPS)以下に設定すると,
または OLS ON で減速すべきところで,200(PPS)に加速することになります.
このような場合,サンプルソースプログラムを変更し,ベース速度を適当な値
に設定して下さい.
図 2.2-5 動作速度設定
■ 原点復帰動作開始
極性選択,動作速度を設定した後,右の図の各ボタンをクリックすると,
それぞれの原点復帰動作(-方向)が実行されます.
Homing[OLS]:OLS 減速抜け出し再突入(モード 1)
Homing[OLS+Z]:OLS 減速+Z 相(モード 2)
Homing[ELS]:ELS 減速抜け出し再突入(モード 6)
各原点復帰モードの動作の詳細は運用編マニュアルを参照してください.
Stop ボタンをクリックすることで,途中で停止することができます.
現在位置表示は指令パルスカウンタを表示しています.
現在速度表示で現在出力されているパルス速度(PPS)がわかります.
図 2.2-6 原点復帰動作開始ボタン
注意
OLS の検出はエッジ検出ですので,動作開始時に OLS ON の状態の時は OLS を検出しません.この場合は,連続送り動
作で OLS OFF の状態になるまで引き出してから,原点復帰動作を実行して下さい.
ELS 兼用原点復帰実行時は ELS ON で減速停止です.
減速距離が,ELS ON になる位置から軸の機械的な終端までの距離以下になるような速度で実行して下さい.
14
2.サンプルプログラム
(5) 連続送り動作サンプル
加減速連続送り動作を行います.
【 操作画面 】
図 2.2-7 連続送り動作サンプル画面
原点復帰動作の時と同様に,センサの接続等を確認してから動作を開始して下さい.
動作速度を 1~100,000(PPS)の範囲で設定し, +ACC Cont , -ACC Cont ボタンをクリックすると±連続送り加
速スタートの動作を行います.+CNST Cont , -CNST Cont ボタンをクリックすると±連続送り FH 定速スタートの動
作を行います.
Deceleration Stop ボタンで動作を停止することができます.CLR ボタンでカウンタをリセットできます.
15
2.サンプルプログラム
(6) 位置決め動作サンプル
加減速位置決め動作を行います
【 操作画面 】
図 2.2-8 位置決め動作サンプル画面
原点復帰動作の時と同様に,センサの接続等を確認してから動作を開始して下さい.
動作速度を 1~100,000(PPS)の範囲で設定し,移動量(符号付)を設定してから ACC Pos ボタンをクリックすると加減
速位置決め動作を行います. Deceleration Stop ボタンで動作を途中停止することができます.
CLR ボタンでカウンタをリセットできます.
16
2.サンプルプログラム
(7) 2 軸位置決め動作サンプル
ここでは同一ライン上の指定した 2 つのモーションモジュールの位置決めを行います.
【 操作画面 】
図 2.2-9 複数軸動作サンプル画面
原点復帰動作の時と同様に,センサの接続等を確認してから動作を開始して下さい.
動作速度を 1~100,000(PPS)の範囲で設定し,移動量(符号付)を設定してから Start
2 軸の加減速位置決め動作を行います. Stop
タをリセットできます.
ボタンをクリックすると指定した
ボタンで 2 軸の動作を途中停止することができます.CLR ボタンでカウン
注 1.このサンプルは複数軸を独立位置決めさせるサンプルです.
補間動作ではありませんので,片方の軸がサーボアラーム等により異常停止した場合は同時に停止しません.
17
2.サンプルプログラム
2.3 位置決めモジュール(C,F モジュール)サンプルプログラム
2.3.1 サンプルプログラムの実行
サンプルプログラムを使用する場合は,お客様のハードディスクにコピーして使用します.
サンプル実行ファイルは”マウスのダブルクリック”操作を行う事で実行できます.
OS や.Net Framework のバージョン等,環境によりサンプル実行ファイルが動作しない場合がありますので,その場合はご
使用の環境に合った開発環境でビルドし直して下さい.
2.3.2 サンプルプログラムの機能
デバイスオープン/クローズサンプル
・・・
デバイス個数,情報取得,デバイスオープン/クローズ及びモジュール数の
原点復帰動作
連続送り動作
位置決め動作
複数軸動作
直線補間動作
円弧補間動作
次動作連続実行
・・・
・・・
・・・
・・・
・・・
・・・
・・・
チェックを行います.
原点復帰動作のサンプルです.
連続送り動作のサンプルです.
1 軸位置決め動作のサンプルです.
2 軸位置決め動作(同時スタート)のサンプルです.
2 軸直線補間動作のサンプルです.
2 軸円弧補間動作のサンプルです.
2 軸直線+2 軸円弧補間の次動作連続実行サンプルです.
サンプルプログラム実行上の注意事項
■
■
■
■
同一ライン上のモジュール ID は重複してはいけません.
モジュール数チェックのためデバイスオープン/クローズのサンプルを起動してから他のサンプルを起動してください.
複数軸動作のサンプルは同一スレーブ内の 2 個のモーションモジュールで動作します.
複数軸動作のサンプルは異なるスレーブのモーションモジュールの動作はできません.
■ F モジュールは SVALM 入力極性を B 接に設定してください.
■ F モジュールは SVON ON で励磁,SVON OFF で励磁オフ(モータフリー)になります.
■ F モジュールで Z 相を用いた原点復帰を行う場合は DLS 端子に Z 相に代わるセンサを接続する必要があります.
2.3.3 サンプルプログラムの操作
(1) サンプルプログラム初期値
サンプルプログラムでは各軸の初期化は一部ソースプログラムで固定されています.
また,使用するボード ID は 0,使用するラインはライン 1 としています.
初期化の条件を変更して動作させたい場合には,ソースプログラムを変更してリビルドしてください.
レジスタ初期
レジスタ
内容
備 考
値
RFL
ベース速度
200 200pps
RFH
動作速度
2000 2000pps
RUR
加速レート
1387 200pps→2,000ppsの加減速時間約500msec(直線加減速時)
RMG
速度倍率
199 1倍
RFA
補助速度
200 200pps
指令パルス出力形式:CW/CCW,SVCTRCL自動出力しない,
SVCTRCL出力パルス幅:13ms,DLS,OLS,SVALM:B接,
RENV1 環境設定1
00434004h
ELS,SVALM入力時即停止,DLSラッチしない,SVRDY,INPOS:A接,
LATC,CLR:立下りエッジ
RENV2 環境設定2
000004FFh サーボI/F出力設定,エンコーダ入力4逓倍
RENV3 環境設定3
00700002h 原点復帰モード2(OLS+Z),原点復帰完了時カウンタ1~3をクリア
RIRQ イベントマスク設定
1 正常停止時
上記以外
0
表 2.3-1 サンプルプログラム G9003 レジスタ初期値
18
2.サンプルプログラム
(2) プログラム選択画面
サンプルプログラムが正常に起動されると,次の画面が表示されます.ここでプログラムを選択します.
デバイスオープン/クローズサンプル
原点復帰動作
連続送り動作
位置決め動作
複数軸動作
直線補間動作
円弧補間動作
次動作連続実行
図 2.3-1 プログラム選択画面
デバイスオープン/クローズ,原点復帰動作,連続送り動作,位置決め動作,複数軸動作の仕様は位置決めモジュール(P,
W モジュール)のサンプルプログラムと同等です.
(3) 2 軸直線補間動作サンプル
図 2.3-2 2 軸直線補間動作サンプル画面
原点復帰動作の時と同様に,センサの接続等を確認してから動作を開始して下さい.
動作速度を 1~100,000(PPS)の範囲で設定し,移動量(符号付)を設定してから Start ボタンをクリックすると指定した
2 軸の加減速直線補間動作を行います. Stop ボタンで 2 軸の動作を途中停止することができます.CLR ボタンでカウン
タをリセットできます.
19
2.サンプルプログラム
(4) 2 軸円弧補間動作サンプル
図 2.3-3 2 軸円弧補間動作サンプル画面
原点復帰動作の時と同様に,センサの接続等を確認してから動作を開始して下さい.
動作速度を 1~100,000(PPS)の範囲で設定し,移動量(符号付),中心位置を設定してから CW Start ボタンをクリ
ックすると指定した 2 軸の FH 定速 CW 円弧補間動作を行います.CCW Start ボタンをクリックすると指定した 2 軸の FH
定速 CCW 円弧補間動作を行います.
Stop ボタンで 2 軸の動作を途中停止することができます.CLR ボタンでカウンタをリセットできます.
20
2.サンプルプログラム
(5) 次動作連続実行サンプル
図 2.3-4 2 軸次動作連続動作サンプル画面
原点復帰動作の時と同様に,センサの接続等を確認してから動作を開始して下さい.
Start
ボタンをクリックすると下図の様な補間動作を,次動作連続実行で行います.
速度等の設定は,ベース速度 500pps(RFL=500),動作速度 5000pps(RFH=5000),速度倍率 1 倍
(RMG=199),加減速時間約 0.1sec(RUR=110, RDR=0),直線加減速としています.
位置(X,Y)
Y
P4
P3
P5
P0
Stop
P2
P1,P6
P7
X
P0
(0,0)
P1
(1000,0)
P2
(2000,1000)
P3
(2000,2000)
P4
(0,2000)
P5
(0,1000)
P6
(1000,0)
P7
(2000,0)
ボタンで 2 軸の動作を途中停止することができます.CLR ボタンでカウンタをリセットできます.
21
2.サンプルプログラム
2.4 DIO モジュール(D,I,O,T)サンプルプログラム
2.4.1 サンプルプログラムの実行
サンプルプログラムを使用する場合は,お客様のハードディスクにコピーして使用します.
サンプル実行ファイルは”マウスのダブルクリック”操作を行う事で実行できます.
OS や.Net Framework のバージョン等,環境によりサンプル実行ファイルが動作しない場合がありますので,その場合はご
使用の環境に合った開発環境でビルドし直して下さい.
2.4.2 サンプルプログラムの機能
DIO モジュールサンプルプログラムでは D モジュール(16in/16out),T モジュールの入出力(24in/8out),I モジュールの入力
(32in),O モジュールの出力(32out)ができます.
サンプルプログラム実行上の注意事項
■ 同一ライン上のモジュール ID は重複してはいけません.
■ モジュール数チェックのためデバイスオープン/クローズのサンプルを起動してから他のサンプルを起動してください.
2.4.3 サンプルプログラムの操作
(1) 起動画面
サンプルプログラムが正常に起動されると,次の画面が表示されます.
図 2.4-1 DIO モジュールサンプル画面
22
2.サンプルプログラム
(2)
起動手順
下図の手順でデバイスオープンが成功するとモジュールへの入出力が可能になります.
(1)
(2)
(3)
(4)
(5)
クリック
ボード ID 選択
ライン番号選択
接続モジュール数入力
モジュール選択
(6) デバイスオープン
選択されたマスターボードの PCI デバイス情報とデバイスオープンした際のデバイスハンドルを表示
します.
(3)
D モジュール画面
モジュール種別 D モジュールの場合(D)と表示
入力状態表示
ON:緑色,OFF:白色
出力ボタン
クリックで反転
出力状態表示
ON:緑色,OFF:白色
23
2.サンプルプログラム
(4)
I モジュール画面
モジュール種別 I モジュールの場合(I)と表示
入力状態表示
ON:緑色,OFF:白色
(5)
O モジュール画面
モジュール種別 O モジュールの場合(O)と表示
出力ボタン
クリックで反転
出力状態表示
ON:緑色,OFF:白色
24
2.サンプルプログラム
(6)
T モジュール画面
モジュール種別 T モジュールの場合(T)と表示
入力状態表示
ON:緑色,OFF:白色
出力ボタン
クリックで反転
出力状態表示
ON:緑色,OFF:白色
(7)
デバイスクローズ
Close Device ボタンクリックでサイクリック通信を停止しデバイスクローズを行います.
25
2.サンプルプログラム
2.5 アナログモジュール(A,B モジュール)サンプルプログラム
2.5.1 サンプルプログラムの実行
サンプルプログラムを使用する場合は,お客様のハードディスクにコピーして使用します.
サンプル実行ファイルは”マウスのダブルクリック”操作を行う事で実行できます.
OS や.Net Framework のバージョン等,環境によりサンプル実行ファイルが動作しない場合がありますので,その場合はご
使用の環境に合った開発環境でビルドし直して下さい.
2.5.2 サンプルプログラムの機能
本サンプルプログラムには以下の機能があります.
アナログ入力表示,範囲外通知(コンパレータ状態.範囲はソフトウェアで固定.Low 側=0,High 側 FFFh),
マニュアルアナログ出力,アナログ出力状態表示.
サンプルプログラム実行上の注意事項
■ 同一ライン上のモジュール ID は重複してはいけません.
2.5.3 サンプルプログラムの操作
サンプルプログラムでは初期化時パラメータの一部はソースプログラムで固定されています.
初期化の条件を変更して動作させたい場合には,ソースプログラムを変更しリビルドして下さい.
サンプルプログラムが正常に起動されると,次の画面が表示されます.
図 2.5-1 アナログモジュールサンプル起動画面
26
2.サンプルプログラム
(1)
起動手順
下図の手順でデバイスオープンが成功するとモジュールへの入出力が可能になります.
(1)
(2)
(3)
(4)
(5)
クリック
ボード ID 選択
ライン番号選択
接続モジュール数入力
モジュール選択
(6) デバイスオープン
A モジュールの場合(A)
B モジュールの場合(B)
選択されたマスターボードの PCI デバイス情報とデバイスオープンした際のデバイスハンドルを表示
します.
図 2.5-2 起動手順
(2)
操作画面
操作画面はアナログ入力とアナログ出力があります.
アナログ入力
アナログ出力
図 2.5-3 操作画面
27
2.サンプルプログラム
(3)
アナログ入力画面
モジュール初期化
コンパレータ状態ラッチクリア
コンパレータ状態
(H:High 側,L:Low 側)緑色:1, 白色:0
A/D 入力読出し値(16 進数:12bit)
図 2.5-4 アナログ入力画面
(4)
アナログ出力画面
B モジュールでは,使用できる D/A は CH1 のみです.
図 2.5-5 アナログ出力画面
28
2.サンプルプログラム
2.6 ABS エンコーダ受信モジュール(R,S モジュール)サンプルプログラム
2.6.1 サンプルプログラムの実行
ABS エンコーダ受信モジュールの為のサンプルプログラムについて説明します.
OS や.Net Framework のバージョン等,環境によりサンプル実行ファイルが動作しない場合がありますので,その場合はご
使用の環境に合った開発環境でビルドし直して下さい.
サンプルプログラム実行上の注意事項
■
同一ライン上のモジュール ID は重複してはいけません.
2.6.2 サンプルプログラムの操作
サンプルプログラムを使用する場合は,お客様のハードディスクにコピーして使用します.
サンプル実行ファイル(ss10000.exe)は”マウスのダブルクリック”操作を行う事で実行できます.
(1) 初期画面
サンプルプログラムを起動すると、以下の画面が表示されます。
サンプルプログラムを起動した1回目は,[Open/Close device]を選択します.
図 2.6-1 初期画面
29
2.サンプルプログラム
(2) デバイスオープン/クローズ画面
[Open/Close device]を選択すると下記画面が表示されます.[Get board ID]クリックで ID 取得後,[Open device]が有
効になります.ボード ID とライン番号を選択し,各ラインに接続されたモジュール数を入力し,[Open device]をクリックすると,
デバイスハンドルなどのマスターボード情報が表示されます.
その後,使用するモジュールのモジュール ID を選択して[Close device]をクリックします.
[Close device]で初期画面に戻ります.
図 2.6-2 オープン/クローズ画面(ボード ID 取得, デバイスオープン)
デバイスの電源が入っていない,または正しく接続されていない場合はエラーメッセージが表示されます。
30
2.サンプルプログラム
(3)
HM-S100C サンプル操作画面
前ページでの操作後,[S100/R100 Function Test] を選択するとサンプル操作画面が開きます.
図 2.6-3 初期画面(サンプル操作画面オープン)
最初に画面左上にある [Reset FIFO] ボタンをクリックします.
これにより R(S)モジュールへのコマンド送信が可能になります.
図 2.6-4 サンプル操作画面(初期状態)
31
2.サンプルプログラム
コマンド送信の操作を行う時は,下図の [コマンドコンボボックス] からコマンドを選択し,必要に応じて [Parameter data]
を入力して,[Transmit] をクリックすると,コマンド実行結果が画面に表示されます。
[Parameter data]のデータ入力形式は 16 進数を 2 桁で表現した書式で行います.例えば,文字列「D8PNS1」は
「4438504E5331」と入力します.[ Disable check Sum ] をチェックすると,チェックサムが無効になります.
コマンドコンボボックス
コマンド実行結果
図 2.6-5 サンプル操作画面(FIFO リセット後)
コマンドコンボボックスで選択できるコマンドは以下の通りです.R モジュールに対し S モジュールのコマンドを送信した場合,正
しく動作しません
コマンドフレーム
コマンド種類
No.
コマンド
(HEX)
応答フレーム
データブロック
データブロック
1
NOP
00
データなし
データなし
2
アブソリュートデータ
読み出し
01
データなし
エンコーダからのシリアルデータ.
データサイズは接続ドライバによる
3
1Bit 汎用出力
要求
10
1Byte バイナリデータ 0:OFF
0:OFF/1:ON:
1:ON:
4
RS-232C 通信
設定
50
6ByteASCII データ
'D*P*S*'
データなし
5
RS-232C データ
送信
70
1~64Byte バイナリ
または ASCII データ
データなし
6
RS-232C 受信
データ読み出し
71
データなし
0~64Byte バイナリ
または ASCII データ
7
RS-232C 受信
バッファクリア
72
データなし
データなし
図 2.6-6 コマンドコンボボックス
32
備考
S モジュールのみ
2.サンプルプログラム
・送信したコマンド(8 バイトの 16 進表記)
・チェックサム(2 バイトの 16 進表記)
コマンド実行の結果が,次の内容で表示されます.
・受信したヘッダー(8 バイトの 16 進表記)
・データ数
・チェックサム(2 バイトの 16 進表記
・コマンドリダイレクト
・ステータス(8 ビット,左がビット7)
・残データ数
・エラーコード(8 ビット,左がビット7)
・属性リダイレクト
・送信・受信のログ
マスタから R(S)モジュールへ送信したコマンドフレームが[Send **** Block]に,
R(S)モジュールからマスタへの応答フレームが[Receive **** Block]として表示されます.
[ Crear Logs ]をクリックすると,ログ表示が消去されます.また表示ログ数が一定量を越すと,自動的消去します.
図 2.6-7 サンプル操作画面(コマンド結果表示)
33
2.サンプルプログラム
2.7 D モジュールサンプルプログラム(VB6.0 のみ)
DIO モジュールの為のサンプルプログラムについて説明します.
サンプルプログラム実行上の注意事項
■
■
使用するマスタのボード ID は 0 としています.
同一ライン上のモジュール ID は重複してはいけません.
2.7.1 サンプルプログラムの実行
サンプルプログラムを使用する場合は,お客様のハードディスクにコピーして使用します.
サンプル実行ファイルはマウスのダブルクリック操作を行う事で実行できます.
2.7.2 サンプルプログラムの操作
サンプルプログラムでは初期化は一部ソースプログラムで固定されています.
初期化の条件を変更して動作させたい場合には,ソースプログラムを変更しリビルドして下さい.
(4) 操作画面 1(モジュール選択)
サンプルプログラムが正常に起動されると,次の画面が表示されます.
使用するマスターボードのボード ID を選択します.
使用するライン番号を選択します.
接続モジュール数を入力します.
選択されたマスターボードの
PCI デバイス情報が表示されます.
図 2.7-1 DIO モジュールサンプル(VB6.0 のみ)の画面
34
2.サンプルプログラム
使用するマスターボードのボード ID とライン番号を選択します.その後,システム通信開始ボタンをクリックします.
システム通信を行うと指定したライン上の DIO モジュールのモジュール ID がモジュール ID コンボ BOX に表示されます.
モジュール ID コンボ BOX
ここで使用するモジュールIDを選択します.
図 2.7-2 モジュール ID コンボ BOX
(5) サイクリック通信開始
モジュール ID を指定しサイクリック通信開始をクリックすると,使用できるすべてのモジュールへのサイクリック通信が開始され,
指定された DIO モジュールの操作ができます.
サイクリック通信停止をクリックすると全てのモジュールへのサイクリック通信が停止され操作画面 1 に戻ります.
指定した DIO モジュールの
汎用入力状態
白:入力なし,緑:入力有り
図 2.7-3 DIO モジュールサンプル(VB6.0 のみ)の操作画面
指定した DIO モジュールの汎用出力
および出力状態
クリックで出力反転
灰:出力なし,緑:出力中
35
2.サンプルプログラム
2.8 T モジュールサンプルプログラム(VB6.0 のみ)
DIO モジュール(T モジュール)の為のサンプルプログラムについて説明します.
サンプルプログラム実行上の注意事項
■
■
使用するマスタのボード ID は 0 としています.
同一ライン上のモジュール ID は重複してはいけません.
2.8.1 サンプルプログラムの実行
サンプルプログラムを使用する場合は,お客様のハードディスクにコピーして使用します.
サンプル実行ファイル(sd24080.exe)は”マウスのダブルクリック”操作を行う事で実行できます.
2.8.2 サンプルプログラムの操作
サンプルプログラムでは初期化は一部ソースプログラムで固定されています.
初期化の条件を変更して動作させたい場合には,ソースプログラムを変更しリビルドして下さい.
(1) 操作画面 1(モジュール選択)
サンプルプログラムが正常に起動されると,次の画面が表示されます.
使用するマスターボードのボード ID を選択します.
使用するライン番号を選択します.
接続モジュール数を入力します.
選択されたマスターボードの
PCI デバイス情報が表示されます.
図 2.8-1 T モジュールサンプル(VB6.0 のみ)の画面
使用するマスターボードのボード ID とライン番号を選択します.その後,システム通信開始ボタンをクリックします.
システム通信を行うと指定したライン上の T モジュールのモジュール ID がモジュール ID コンボ BOX に表示されます.
モジュール ID コンボ BOX
ここで使用するモジュールIDを選択します.
図 2.8-2 モジュール ID コンボ BOX
36
2.サンプルプログラム
(2)
サイクリック通信開始
モジュール ID を指定しサイクリック通信開始をクリックすると,使用できるすべてのモジュールへのサイクリック通信が開始され,
指定された T モジュールの操作ができます.
サイクリック通信停止をクリックすると全てのモジュールへのサイクリック通信が停止され操作画面 1 に戻ります.
指定した T モジュールの汎用
入力状態
白:入力なし,緑:入力有り
指定した T モジュールの汎用出力
および出力状態
クリックで出力反転
灰:出力なし,緑:出力中
図 2.8-3 T モジュールサンプル(VB6.0 のみ)の操作画面
37
3.ソフトウェアの準備
3. ソフトウェアの準備
ソフトウェアを使用するための開発環境の準備等について説明しています.各開発環境の詳細な設定については,別途,
一般に出版されている各開発環境の参考図書,インターネットなどの情報を参照してください.
38
3.ソフトウェアの準備
3.1 マスターボードを複数枚使用する場合
MCAT を 1 台のコンピュータに複数枚装着し,それぞれのボードと外部の接続を 1 対 1 に対応させる場合について説明しま
す.
J1
J2
J3
J3
J1
J2
J3
motionCAT マスタ
ボード ID=2
デバイス番号=k
Bus
J2
motionCAT マスタ
ボード ID=1
デバイス番号=j
J1
motionCAT マスタ
ボード ID=0
デバイス番号=i
ボード ID=0
LINE1
LINE2
ボード ID=1
LINE1
LINE2
ボード ID=2
LINE1
LINE2
図 3.1-1 ボードを複数枚使用
3.1.1 ボードのデバイス番号
PCI では BIOS がボードのアドレス管理をしています.
ボードが装着されるスロットにより BIOS 側で決めたデバイス番号が割振られます. これをデバイス番号と呼びます.
3.1.2 ボード ID の使用
デバイス番号は BIOS によって割振られるため,ボードとスロットの関係が外部から認識しにくい時があります.
個々のボードとソフトウェアを対応しやすいように MCAT には「ボード ID 設定ロータリ SW」が設けられています.
ボード ID は 0h~Fh(0~15)が設定出来ますので MCAT を 16 枚まで扱えます.
ボード ID の設定については「motionCAT シリーズユーザーズマニュアル<導入編>」を参照して下さい.
39
3.ソフトウェアの準備
3.2 アプリケーション作成準備
[ 注 意 ]
モーションモジュールは P, W, C, F, M の 5 種類あります.
P, W, M モジュールは制御用 ASIC に G9003 を使用しています.以降,P, W, M モジュールは代表して P モジュールで
表記します.
C, F モジュールは制御用 ASIC に G9103B を使用しています.以降,C, F モジュールは代表して C モジュールで表記しま
す.
3.2.1 Microsoft Visual C++ (2008 以上)アプリケーション作成準備
プロジェクト作成後,次のファイルをプロジェクトへ追加します.
No.
ファイル名
内
容
1
himnt520.h
関数定義ヘッダファイル
2
himnt520.lib
関数インポートライブラリファイル
3
hpxl1a.c
モーションモジュール(位置決め)用ライブラリ関数ソースコードファイル
4
hpxl1a.h
モーションモジュール(位置決め)用ライブラリ関数定義ヘッダファイル
5
hcxl1a.c
モーションモジュール(C モジュール固有機能)用ライブラリ関数ソースコードファイル
6
hcxl1a.h
モーションモジュール(C モジュール固有機能)用ライブラリ関数定義ヘッダファイル
またマスタを制御するソースコードには各ヘッダファイルをインクルードします.
例. #include" hpxl1a.h "
// himnt520.h は,このファイルの中で"#include"されています.
[ 注 意 ]
C モジュールを P モジュールと同様に使用する(プリレジスタを使用しない)場合は”hpxl1a.h”, “hpxl1a.c”に定義され
た”hpx_XXXX”の関数で運用できます.
C モジュール固有の機能(補間やプリレジスタなど)を使用する場合は”hcxl1a.h”, “hcxl1a.c”に定義された”hcx_xxxx”
の関数を使用します.
”hcxl1a.h”, “hcxl1a.c”に定義された”hcx_xxxx”の関数は P モジュールでは使用出来ません.
3.2.2 Microsoft Visual C#(2008 以上)アプリケーション作成準備
プロジェクト作成後,次のファイルをプロジェクトへ追加します.
No.
ファイル名
内
容
1
himnt520.cs
関数定義標準モジュール
2
hpxl1a.cs
モーションモジュール(位置決め)用ライブラリ関数標準モジュール
3
hcxl1a.cs
モーションモジュール(C モジュール固有機能)用ライブラリ関数標準モジュール
[ 注 意 ]
C モジュールを P モジュールと同様に使用する(プリレジスタを使用しない)場合は”hpxl1a.cs”に定義された”hpx_XXXX”
の関数で運用できます.
C モジュール固有の機能(補間やプリレジスタなど)を使用する場合は “hcxl1a.cs”に定義された”hcx_xxxx”の関数を
使用します.
”hcxl1a.h”, “hcxl1a.c”に定義された”hcx_xxxx”の関数は P モジュールでは使用出来ません.
40
3.ソフトウェアの準備
3.2.3 Microsoft Visual Basic(2008 以上)アプリケーション作成準備
プロジェクト作成後,次のファイルをプロジェクトへ追加します.
No.
ファイル名
内
容
1
himnt520.vb
関数定義標準モジュール
2
hpxl1a.vb
モーションモジュール(位置決め)用ライブラリ関数標準モジュール
3
hcxl1a.vb
モーションモジュール(C モジュール固有機能)用ライブラリ関数標準モジュール
[ 注 意 ]
C モジュールを P モジュールと同様に使用する(プリレジスタを使用しない)場合は”hpxl1a.vb”に定義された”hpx_XXXX”
の関数で運用できます.
C モジュール固有の機能(補間やプリレジスタなど)を使用する場合は “hcxl1a.vb”に定義された”hcx_xxxx”の関数を
使用します.
”hcxl1a.h”, “hcxl1a.c”に定義された”hcx_xxxx”の関数は P モジュールでは使用出来ません.
3.2.4 Microsoft Visual Basic 6.0 アプリケーション作成準備
プロジェクト作成後,次のファイルをプロジェクトへ追加します.
No.
ファイル名
内
1
himnt520.bas
関数定義ファイル
2
hpxl1a.bas
モーションモジュール(位置決め)用ライブラリ関数ソースコードファイル
[ 注 意 ]
P モジュール,D モジュール,T モジュールのみ対応
41
容
3.ソフトウェアの準備
3.3 ボードアクセス方法
ドライバ関数・ライブラリ関数では複数の MCAT を制御することができます.制御したい MCAT にアクセスするためには,まずこ
の MCAT をオープンして,デバイスハンドルを取得します.MCAT をオープンするために必要なハードウェアリソース(※)をデバイ
ス情報と呼びます.※.ハードウェアリソース・・・ボード ID,ベースアドレス,割込番号等
3.3.1 デバイス情報構造体
(1) Microsoft Visual C++
// デバイス情報構造体
typedef struct _HMNT520INFO {
DWORD
dwBusNumber;
DWORD
dwDeviceNumber;
// デバイス情報
// バス番号
// デバイス番号
// ベースアドレス 2
// ベースアドレス 3
// ベースアドレス 4
// IRQ 番号
// 管理番号
// ボード ID(0~15)
DWORD
dwBaseAddress2;
DWORD
dwBaseAddress3;
DWORD
dwBaseAddress4;
DWORD
dwIrqNo;
DWORD
dwNumber;
DWORD
dwBoardID;
} HMNT520INFO, /PHMNT520INFO;
他言語の構造体定義は各言語 ” himnt520.拡張子”を参照.
3.3.2 モジュール情報構造体
モジュール数確認のために次に示す HMNTMDLINFO 型構造体を用意します.
(1) Microsoft Visual C++
typedef struct _HMNTMDLINFO
BYTE byLine1g9002a;
BYTE byLine1g9002b;
BYTE byLine1g9002c;
BYTE byLine1g9002d;
BYTE byLine1g9002e;
BYTE byLine1g9x03a;
BYTE byLine1g9004a;
BYTE byLine1g9004b;
BYTE byLine2g9002a;
BYTE byLine2g9002b;
BYTE byLine2g9002c;
BYTE byLine2g9002d;
BYTE byLine2g9002e;
BYTE byLine2g9x03a;
BYTE byLine2g9004a;
BYTE byLine2g9004b;
} HUBMDLINFO;
//
//
//
//
//
//
//
//
// モジュール情報
予約
予約
接続される DIO モジュール数
予約
予約
接続されるモーションモジュール数
予約
予約
//
//
//
//
//
//
//
//
予約
予約
予約
予約
予約
予約
予約
予約
{
他言語の構造体定義は各言語 ” himnt520.拡張子”を参照.
42
3.ソフトウェアの準備
3.4 ボードアクセスの準備手順と終了処理
3.4.1 ドライバ関数を使用した準備手順
(1)ボード毎にデバイスオ-プン
まず MCAT の枚数を取得し,ボード認識用のデータ構造体を枚数分用意します.
次に MCAT のデバイス情報を取得し,制御したい MCAT のデバイス情報をデバイスオープン関数に渡します.この結果
その MCAT がオープンされます.
また,デバイスオープン関数はこの MCAT にアクセスする為のデバイスハンドル値を返してきます.
MCAT 枚数が 2 枚以上の場合には,個々の MCAT 毎にこの処理を行います.
◆mnt520_GetMstBrdCount( )
・・・MCAT の枚数取得
◆mnt520_GetMstBrdInfo( )
・・・MCAT の PCI デバイス情報取得
◆mnt520_OpenMstBrd( )
・・・MCAT のオープン処理
(2)初期設定
MCAT のオープンに成功した後は,システム通信を開始し,ローカルデバイス情報を自動設定します.
ポートデータの初期値を設定し,サイクリック通信を開始します.サイクリック通信開始後,データ通信も可能になりますの
で,ローカルデバイスの初期化を行います.
◆mnt520_rSysLclInfo( ) ・・・ローカルデバイス(DIO,モーション)の情報取得
◆mnt520_wCenCmd( )
・・・センターデバイスへのコマンド書込み
◆mnt520_rCenMsts( )
・・・センターデバイスからのセンターメインステータス読出し
◆mnt520_wIoPortB( )
・・・DIO デバイスのポートへの書込み
◆mnt520_wIoPortW( )
・・・DIO デバイスのポートへの書込み
◆mnt520_wLclSetInt( )
・・・ローカルデバイスのポート入力変化割込設定
◆mnt520_wPclPortB( )
・・・モーションデバイスのポートへの書込み
◆mnt520_wPclSetInt( )
◆mnt520_wPclReg( )
・・・モーションデバイスのポート入力変化割込設定
・・・モーションデバイスのレジスタヘの書込み
(3)運 用
初期設定終了後はデータ通信,サイクリック通信によりローカルデバイスを制御します.
◆mnt520_rIoPortB( )
・・・DIO デバイスのポートからの読出し
◆mnt520_wIoPortB( )
・・・DIO デバイスのポートへの書込み
◆mnt520_rIoPortW( )
・・・DIO デバイスのポートからの読出し
◆mnt520_wIoPortW( )
・・・DIO デバイスのポートへの書込み
◆mnt520_rLclInt( )
・・・ローカルデバイスのポート入力変化割込読出し
◆mnt520_wLclInt( )
・・・ローカルデバイスのポート入力変化割込リセット
◆mnt520_rPclPort( )
・・・モーションデバイスのポートからの読出し
◆mnt520_wPclPort( )
◆mnt520_rPclMsts( )
◆mnt520_wPclCmd( )
◆mnt520_rPclReg( )
◆mnt520_wPclReg( )
・・・モーションデバイスのポートへの書込み
・・・モーションデバイスのモーションメインステータス読出し
・・・モーションデバイスへのコマンド書込み
・・・モーションデバイスのレジスタからの読出し
・・・モーションデバイスのレジスタヘの書込み
3.4.2 終了処理
(4)オープンしたデバイスの「クローズ処理」
全ての処理が終了してアプリケーションを終了する場合には,システム上の終了処理を終えてから,オープンしたデバイス
の「クローズ処理」を行います.
MCAT 枚数が 2 枚以上の場合には,個々の MCAT 毎にこの処理を行います.
◆mnt520_CloseMstBrd( ) ・・・MNT520 のクローズ処理
43
3.ソフトウェアの準備
3.4.3 ライブラリ関数を使用した準備手順
(1)ボード毎にデバイスオ-プン
まず MCAT の枚数を取得し,ボード認識用のデータ構造体を枚数分用意します.
次に MCAT のデバイス情報を取得し,制御したい MCAT のデバイス情報をデバイスオープン関数に渡します.この結果
その MCAT がオープンされます.
また,デバイスオープン関数はこの MCAT にアクセスする為のデバイスハンドル値を返してきます.
MCAT 枚数が 2 枚以上の場合には,個々の MCAT 毎にこの処理を行います.
◆hpx_GetDevInfo( )
・・・MCAT の個数及び PCI デバイス情報取得
◆hpx_DevOpen( )
・・・MCAT のオープン処理,システム通信,サイクリック通信開始,
各モーションモジュールの初期化
◆hpx_DevOpenEx( )
・・・MCAT のオープン処理,システム通信,サイクリック通信開始,
各モーションモジュールの初期化
◆hcx_InitMotionModule( )
(モジュール数チェック有り)
・・・C モジュールの初期化(プリレジスタを使用する場合のみ)
(2)初期設定
通常の初期化後は各軸の初期化,各モジュールの初期化を行います.
(3)運 用
初期設定終了後は各種ライブラリ関数を用いて運用します.
3.4.4 終了処理
(4)オープンしたデバイスの「クローズ処理」
全ての処理が終了してアプリケーションを終了する場合には,システム上の終了処理を終えてから,オープンしたデバイス
の「クローズ処理」を行います.
MCAT 枚数が 2 枚以上の場合には,個々の MCAT 毎にこの処理を行います.
◆hpx_DevClose( )
・・・サイクリック通信停止,MNT520 のクローズ処理
44
3.ソフトウェアの準備
3.5 関数の戻り値
ドライバ関数,ライブラリ関数ともに正常に処理が行われた場合は,戻り値”0”を戻します.
“0”以外の戻り値の場合,下表の通りのエラーが発生しています.エラーの内容に応じて適切な処理が必要です.
No
記号表記
16 進数
内 容
1
NO_ERROR
0x00000000 正
2
NOT_FOUND
0x00000001 デバイスドライバ未インストール,未接続,OS に認識されていない.
3
ALREADY_OPENED
0x00000002 既にオープン済のデバイスをオープン.
4
INSUFFICIENT_MEMORY
0x00000004 デバイス情報格納メモリが不足.
5
INVALID_HANDLE
0x00000008 無効なデバイスハンドルを指定.
6
NOT_READY
0x00000010 デバイスの入出力ポートが使用できない.
7
ILLEGAL_DEVICE
0x00000020 ボード固有情報が不正.
8
ILLEGAL_PARAM
0x00000100 不正なパラメータ.
常
2-8 までのエラーはアプリケーションの継続が困難なエラーです.
以下は Motionnet に起因
9
CYC_COM_ERROR
サイクリック通信エラー.サイクリック通信エラー通信フラグにより,エラーが
発生しているモジュールを特定できます.
0x00010000
エラーをリセットする場合はサイクリック通信エラーフラグリセットが必要で
す.
サイクリック通信停止中.
サイクリック通信停止中にはシステム通信以外の通信はできません.
10 CYC_COM_STOP
0x00020000
11 DATA_COM_ERROR
0x00040000
12 COM_OTHER ERROR
0x00080000 その他の通信エラー(センター割込ステータスで詳細を確認)
データ通信エラー.センター割込ステータスを読出し,エラーが発生してい
るモジュールとエラー内容の詳細を確認できます.
以下はライブラリ関数のみ
13 MODULE_OVERCOUNT
0x00100000 通信ラインに接続されているモジュールの数が保証外.
14 MODULE_COUNT_ERROR
モジュールの数が合わない.
0x00200000 モジュール ID の重複確認,モジュールの接続,電源供給状態,ケーブル
等確認
15 ILL_ACCESS_COM
17 L I N E 1 _ E R R O R
0x00400000 通信中の不正なアクセス
未使用デバイスにデータ送信.
0x00800000
モジュールの接続,電源供給状態,ケーブル等確認.
0x10000000 ライン 1 の系統でのエラーが発生
18 L I N E 2 _ E R R O R
0x20000000 ライン 2 の系統でのエラーが発生
19 OTHER_ERROR
0x80000000 その他のエラー
16 SEND_DATA_NONUSE
表 3.5-1 関数の戻り値
45
4.ライブラリ関数
4. ライブラリ関数
ライブラリ関数は後述するドライバ関数を組み合わせて構成される API 関数です.各言語ソースコードで提供していますの
で,独自にライブラリを作成される時の参考資料としてもご使用ください.
46
4.ライブラリ関数
4.1 モーションモジュール用ライブラリ関数
ライブラリ関数はドライバ関数で構成され,各言語のソースコードで提供しています.モーションモジュールの初期化,原点復帰,
位置決め動作等の基本的な動作を制御することができます.また各開発言語用ライブラリ関数の仕様は同様になっていま
す.
モーションモジュールは P, W, C, F, M の 5 種類あります.
P, W, M モジュールは制御用 ASIC に G9003 を使用しています.以降,P, W, M モジュールは代表して P モジュールで表
記します.
C, F モジュールは制御用 ASIC に G9103B を使用しています.以降,C, F モジュールは代表して C モジュールで表記しま
す.
C モジュールを P モジュールと同様に使用する(プリレジスタを使用しない)場合は”hpx_XXXX”の関数で運用できます.
C モジュール固有の機能(補間やプリレジスタなど)を使用する場合は”hcx_xxxx”の関数を使用します.
但し,VB6 ライブラリ関数は対応していません.
特にプリレジスタを使用する場合は hpx_DevOpenEx(または hpx_DevOpen を呼んだ後に hcx_InitMotionModule
を使用し,プリレジスタの初期化を行います.
”hcx_xxxx”の関数は P モジュールでは使用出来ません.
関数の戻り値は「3.5 関数の戻り値」を参照してください.
4.2 モーションモジュール用ライブラリ関数一覧
4.2.1 デバイス関係
No
関数名
機 能
1
hpx_GetDevInfo
マスターボードのデバイス個数とデバイス情報取得
2
hpx_DevOpen
マスターボードのオープンとモーションモジュール初期化
3
hpx_DevOpenEx
マスターボードのオープンとモーションモジュール初期化
4
hpx_DevClose
マスターボードのクローズ
47
備 考
モジュールチェック有
4.ライブラリ関数
4.2.2 初期設定
No
関数名
機 能
備 考
5
hpx_InitMotionModule
P モジュールの初期化
hpx_DevOpen 内 で
使 用 されている.
6
hcx_InitMotionModule
C モジュールの初期化
プリレジスタ使用時は必須
7
hpx_SetOrgMode
原点復帰モードの設定
8
hpx_SetEls
ELS 入力の設定
9
hpx_SetOls
OLS 入力の設定
10
hpx_SetDls
DLS 入力の設定
11
hcx_SetDls
C モジュール DLS 入力の設定
12
hpx_SetLtc
Ltch 入力の設定
13
hpx_SetClr
CLR 入力の設定
14
hpx_SetCmp
コンパレータ条件の設定
15
hpx_SetEz
エンコーダ Z 相の設定
16
hpx_SetInpos
INPOS 入力の設定
17
hcx_SetInpos
C モジュール INPOS 入力の設定
18
hpx_SetSvAlm
SVALM 入力の設定
19
hpx_SetSvCtrCl
SVCTRCL 出力の設定
20
hpx_SetSvRdy
SVRDY 入力の設定
21
hpx_SetCmdPulse
指令パルス出力形式の設定
22
hpx_SetAccProfile
S 字/直線加減速の切替
23
hcx_SetAccProfile
C モジュール S 字/直線加減速の切替
24
hpx_SetAutoDec
減速開始点の計算の自動/マニュアル切替
25
hcx_SetAutoDec
C モジュール
減速開始点の計算の自動/マニュアル切替
26
hpx_SetSls
ソフトウェアリミットの設定
27
hpx_SetCtr3
カウンタ 3 の入力ソースの設定
28
hpx_SetFhAdj
FH 補正機能の ON/OFF
29
hcx_SetFhAdj
C モジュール FH 補正機能の ON/OFF
プリレジスタ使用時は必須
プリレジスタ使用時は必須
プリレジスタ使用時は必須
プリレジスタ使用時は必須
プリレジスタ使用時は必須
4.2.3 状態読み出し
No
関数名
機 能
30
hpx_ReadMainSts
メインステータスの読出し
31
hpx_ReadErrorSts
エラーステータスの読出し
32
hcx_ReadErrorSts
C モジュールエラーステータスの読出し
33
hpx_ReadEventSts
イベントステータスの読出し
34
hcx_ReadEventSts
C モジュールイベントステータスの読出し
35
hpx_ReadExSts
拡張ステータスの読出し
36
hpx_ReadOutp
出力ポート状態読出し
37
hpx_ReadSpd
指令速度の読出し(速度倍率で割った値)
38
hpx_ReadSpdEx
指令速度の読出し(速度倍率含む)
39
hpx_ReadCtr
カウンタの読出し
48
備 考
通信 1 回分時間短縮
通信 1 回分時間短縮
4.ライブラリ関数
4.2.4 動作設定
No
関数名
機 能
40
hpx_SetFLSpd
ベース速度
41
hcx_SetFLSpd
C モジュールベース速度
42
hpx_SetAuxSpd
補助速度の設定
43
hpx_SetAccRate
加速レートの設定
44
hcx_SetAccRate
C モジュール加速レートの設定
45
hpx_SetDecRate
減速レートの設定
46
hcx_SetDecRate
C モジュール減速レートの設定
47
hpx_SetMult
倍率設定値の設定
48
hcx_SetMult
C モジュール倍率設定値の設定
49
hpx_SetEventMask
イベントマスクの設定
50
hpx_SetDecPoint
減速開始点の設定
51
hcx_SetDecPoint
C モジュール減速開始点の設定
52
hcx_SetCnstIPFeed
2 軸補間合成速度一定制御 ON/OFF
53
hpx_WritOpeMode
P モジュール動作モードの設定
54
hcx_WritOpeMode
C モジュール動作モードの設定
55
hpx_WritSta
STA 入力時の動作設定
56
hcx_WritSta
C モジュール STA 入力時の動作設定
57
hpx_WritStp
STP 入力時の動作設定と STP 自動出力の設定
58
hcx_WritStp
C モジュール
STP 入力時の動作設定と STP 自動出力の設定
59
hpx_WritFHSpd
動作速度の設定
60
hcx_WritFHSpd
C モジュール動作速度の設定
61
hpx_WritPos
移動量の設定
62
hcx_WritPos
C モジュール移動量の設定
63
hpx_WritCtr
カウンタプリセット
64
hcx_Writ2AxisLine
2 軸直線補間移動量設定
65
hcx_WritCircl
2 軸円弧補間終点位置,中心位置設定
49
備 考
プリレジスタ使用時は必須
プリレジスタ使用時は必須
プリレジスタ使用時は必須
プリレジスタ使用時は必須
プリレジスタ使用時は必須
プリレジスタ使用時は必須
プリレジスタ使用時は必須
プリレジスタ使用時は必須
プリレジスタ使用時は必須
4.ライブラリ関数
4.2.5 動作制御指令
No
関数名
機 能
備 考
66
hpx_DecStop
減速停止
67
hpx_QuickStop
即停止
68
hpx_EmgStop
非常停止
69
hpx_AccStart
加速スタート
70
hpx_CnstStartFH
FH 定速スタート
71
hpx_CnstStartFL
FL 定速スタート
72
hpx_MvAccStart
移動量設定+加速スタート
73
hpx_MvCnstStartFH
移動量設定+FH 定速スタート
74
hpx_MvCnstStartFL
移動量設定+FL 定速スタート
75
hpx_SetGroup
グループ設定
76
hpx_GrpStop
グループ停止
77
hpx_GrpAccStart
グループ加速スタート
78
hpx_GrpCnstStartFH
グループ FH 定速スタート
79
hpx_GrpCnstStartFL
グループ FL 定速スタート
80
hcx_GrpStart
グループスタート
事前にスタート保留設定
スタートコマンド書込みが必要
81
hcx_GrpDecStop
グループ減速停止
P モジュールは無効
82
hcx_GrpQuickStop
グループ即停止
P モジュールは無効
83
hpx_SvOn
サーボオン
84
hpx_SvOff
サーボオフ
85
hpx_SvResetOn
サーボリセットオン
86
hpx_SvResetOff
サーボリセットオフ
87
hpx_SvTlOn
サーボトルク制限オン
88
hpx_SvTlOff
サーボトルク制限オフ
89
hpx_SvGainOn
サーボゲイン切替オン
90
hpx_SvGainOff
サーボゲイン切替オフ
91
hpx_PMOn
パルスモータ励磁オン
92
hpx_PMOff
パルスモータ励磁オフ
4.2.6 計算関数
No
関数名
機 能
93
hpx_CalAccRate
加減速レート計算
94
hpx_CalDecPoint
減速開始点計算
50
備 考
4.ライブラリ関数
4.3 モーションモジュール用ライブラリ関数詳細
ここでは VC++表記で説明します.VB,VB.NET を使用される場合,データ型の対応は下表の通りです.
言
語
データ型
データ
VC++
VB
VB.NET
8bit
BYTE
Byte
Byte
16bit
WORD
Integer
Short
32bit
DWORD
Long
Integer
例
0x0000
&H0
&H0
0x1000
&H1000
&H1000
4.3.1 デバイス関係
(1) hpx_GetDevInfo()
機
能
ボード枚数とデバイス情報の取得
現在パソコンに装着されている MCAT の枚数,及びデバイス情報を取得します.
言語
VC++
引
書
数
説
MntNum
MCAT の枚数
MntInfo
デバイス情報構造体
(2) hpx_DevOpen()
機
能
引
明
デバイスのオープン,レジスタとオプションポートの初期化
指定したデバイス情報を持つ MCAT をオープンし,他の MCAT と識別するためのデバイスハンドルを取得し
ます.以降このデバイスハンドルは,この MCAT にアクセスするために使用します.またオープンした MCAT に
接続されたモーションモジュールの初期化(※1)をします.
言語
VC++
式
DWORD hpx_GetDevInfo( DWORD* HpcNum, HMNT520INFO* MntInfo );
書
式
DWORD hpx_DevOpen( DWORD* hDevID, HMNT520INFO* MntInfo );
数
説
hDevID
デバイスハンドル
MntInfo
オープンする MCAT のデバイス情報
明
<呼び出し例>
パソコンに MCAT が 2 枚装着されていることを想定します.
デバイス情報構造体として HMNT520INFO型の配列 MntInfo[2]を準備し,この中には既に
hpx_GetDevInfo 関数により全 MCAT のデバイス情報が入っているものとします.
備
考
DWORD
DWORD
ret;
hDevID[2];
//関数の戻り値
//デバイスハンドル取得エリア
ret = hpx_DevOpen( hDevID[0], &MntInfo[0] );
ret = hpx_DevOpen( hDevID[1], &MntInfo[1] );
51
//1 番目のデバイス情報
//2 番目のデバイス情報
4.ライブラリ関数
(3) hpx_DevOpenEx()
機
能
デバイスのオープン,レジスタとオプションポートの初期化
指定したデバイス情報を持つ MCAT をオープンし,他の MCAT と識別するためのデバイスハンドルを取得し
ます.以降このデバイスハンドルは,この MCAT にアクセスするために使用します.またオープンした MCAT に
接続されたモーションモジュールの初期化(※1)をします.
言語
書
VC++
引
DWORD hpx_DevOpen( DWORD* hDevID, HMNT520INFO* MntInfo、
HMNTMDLINFO* MdlInfo WORD w );
数
説
hDevID
デバイスハンドル
MntInfo
オープンする MCAT のデバイス情報
MdlInfo
オープンする MCAT のモジュール情報
明
予約(常に 0 を設定してください)
w
備
式
考
<呼び出し例>
パソコンに MCAT が 2 枚装着されていることを想定します.
デバイス情報構造体として HMNT520INFO型の配列 MntInfo[2],モジュール情報構造体として
MNTMDLINFO 型の配列 MdlInfo[2]を準備し, MntInfo の中には既に hpx_GetDevInfo 関数により全
MCAT のデバイス情報,MdlInfo の中には使用するモジュール種別毎の数が入っているものとします.
DWORD
DWORD
ret;
hDevID[2];
//関数の戻り値
//デバイスハンドル取得エリア
ret = hpx_DevOpenEx( hDevID[0], &MntInfo[0], &MdlInfo[0], 0 ); //1 番目のデバイス情報
ret = hpx_DevOpenEx( hDevID[1], &MntInfo[1], &MdlInfo[1], 0 ); //2 番目のデバイス情報
※1.モーションモジュール レジスタの初期値
レジスタ
内容
レジスタ初期値
備
考
RFL
ベース速度
200 200pps
RFH
動作速度
2000 2000pps
RUR
加速レート
1387 200pps→2,000pps の加減速時間約 500msec(直線加減速時)
RMG
速度倍率
199 1 倍
RFA
補助速度
200
200pps
RENV1
環境設定 1
指令パルス出力形式:CW/CCW,SVCTRCL 自動出力しない,
SVCTRCL 出力パルス幅:13ms,DLS,OLS,SVALM:B 接,
0x01434004
ELS,SVALM 入力時即停止,DLS ラッチしない,SVRDY,INPOS:A
接,LATC,CLR:立下りエッジ
RENV2
環境設定 2
0x000004FF サーボ I/F 出力設定,エンコーダ入力 4 逓倍
RENV3
環境設定 3
0x00700002 原点復帰モード 2(OLS+Z),原点復帰完了時カウンタ 1~3 をクリア
RIRQ
イベントマスク設定
上記以外
1 正常停止時
0
52
4.ライブラリ関数
(4) hpx_DevClose()
機
能
デバイスのクローズ
デバイスハンドルで指定されたマスターボードをクローズします.以降,このデバイスハンドルは無効となります.
言語
書
VC++
DWORD hpx_DevClose( DWORD hDevID );
引
数
説
式
明
hDevID
デバイスハンドル
備
デバイスのクローズ処理ではデバイスハンドルを無効にするのみで,パルス出力の停止や,サーボオフは行い
ません.モーションモジュールに対する終了処理をした後でデバイスをクローズして下さい.
考
4.3.2 初期設定
(5) hpx_InitMotionModule() 位置決めモジュールの初期化
機
能
指定した位置決めモジュール(P モジュール)を初期化します.
言語
VC++
引
書
DWORD hpx_InitMotionModule(DWORD hDevID, WORD wLine, WORD wMid );
数
hDevID
式
説
明
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
備考
本関数は hpx_DevOpen 内で使用されています.
C モジュールを P モジュールと同様に使用する場合(プリレジスタを使用しない)場合は C モジュールの初期
化にも使用できます.
(6) hcx_InitMotionModule() 位置決めモジュールの初期化
機
能
指定した位置決めモジュール(C モジュール)を初期化します.
言語
VC++
引
書
DWORD hcx_InitMotionModule(DWORD hDevID, WORD wLine, WORD wMid );
数
説
hDevID
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
備
考
式
明
初期値をプリレジスタに設定します.
プリレジスタを使用するアプリケーションの場合は本関数で C モジュールの初期化を行います.
P モジュールには使用できません.
53
4.ライブラリ関数
(7) hpx_SetOrgMode() 原点復帰モードの設定
機
能
指定したモジュールの原点復帰モードを設定します.
言語
VC++
引
書
数
hDevID
説
明
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
wMode
式
DWORD hpx_SetOrgMode(DWORD hDevID, WORD wLine, WORD wMid, WORD wMode );
原点復帰モード(0-12)
(8) hpx_SetEls() ELS 入力の設定
機
能
指定したモジュールの ELS 入力の設定をします.
言語
VC++
引
書
数
hDevID
式
DWORD hpx_SetEls(DWORD hDevID, WORD wLine, WORD wMid, WORD wPol, WORD
wMot );
説
明
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
wPol
入力極性(0:B 接/1:A 接)
wMot
入力時動作(0:即停止/1:減速停止)
(9) hpx_SetOls() OLS 入力の設定
機
能
指定したモジュールの OLS 入力の設定をします.
言語
VC++
引
書
DWORD hpx_SetOls(DWORD hDevID, WORD wLine, WORD wMid, WORD wPol );
数
hDevID
式
説
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
wPol
入力極性(0:B 接/1:A 接)
54
明
4.ライブラリ関数
(10) hpx_SetDls() DLS 入力の設定
機
能
指定したモジュールの DLS 入力の設定をします.
言語
VC++
引
書
WORD wEnbl, WORD wPol, WORD wMot, WORD wLtc );
数
hDevID
式
DWORD hpx_SetDls( DWORD hDevID, WORD wLine, WORD wMid,
説
明
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
wEnbl
DLS 使用(0:不使用 / 1:使用)
wPol
入力極性(0:B 接/1:A 接)
wMot
入力時動作(0:減速のみ/1:減速停止)
wLtc
ラッチ設定(0:ラッチしない / 1:ラッチする)
(11) hcx_SetDls() DLS 入力の設定
機
能
指定したモジュール(C モジュール)の DLS 入力の設定をします.
言語
VC++
引
書
DWORD hcx_SetDls( DWORD
hDevID, WORD wLine, WORD
WORD wEnbl, WORD wPol, WORD wMot, WORD wLtc );
数
説
hDevID
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
wEnbl
DLS 使用(0:不使用 / 1:使用)
wPol
入力極性(0:B 接/1:A 接)
wMot
入力時動作(0:減速のみ/1:減速停止)
wLtc
ラッチ設定(0:ラッチしない / 1:ラッチする)
備
考
式
wMid,
明
プリレジスタに値を設定しています.
プリレジスタを使用するアプリケーションの場合は本関数で設定を行って下さい.
P モジュールには使用できません.
(12) hpx_SetLtc() LATCH 入力の設定
機
能
指定したモジュールの LATCH 入力の設定をします.
言語
VC++
引
書
DWORD hpx_SetLtc(DWORD hDevID, WORD wLine, WORD wMid, WORD wEdg );
数
hDevID
式
説
明
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID
wEdg
入力エッジ(0:フォトカプラ ON→OFF, 1: フォトカプラ OFF→ON)
55
4.ライブラリ関数
(13) hpx_SetClr() CLR 入力の設定
機
能
指定したモジュールの CLR 入力の設定をします.
言語
VC++
引
書
wCtr );
数
hDevID
式
DWORD hpx_SetClr(DWORD hDevID, WORD wLine, WORD wMid, WORD wSpc, WORD
説
明
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
wSpc
カウンタクリアのタイミング
(0:フォトカプラ ON→OFF でクリア, 1: フォトカプラ OFF→ON でクリア, 2: フォトカプラ OFF でクリア,
3: フォトカプラ ON でクリア)
wCtr
CTR 入力によりクリアされるカウンタの選択
(14) hpx_SetCmp() コンパレータ条件の設定
機
能
指定したモジュールのコンパレータ条件の設定をします.
言語
VC++
引
書
数
hDevID
説
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
wCtr
コンパレータ比較カウンタ
wCon
コンパレータ条件
lCmp
明
デバイスハンドル
wLine
wIndex
式
DWORD hpx_SetCmp(DWORD hDevID, WORD wLine, WORD wMid, WORD wCtr,
WORD wCon, WORD wIndex, long lCmp);
同期(定ピッチ)出力有効/無効
コンパレータ比較データ
(15) hpx_SetEz() エンコーダ Z 相の設定
機
能
指定したモジュールのエンコーダ Z 相入力の設定をします.
言語
VC++
引
書
DWORD hpx_SetEz(DWORD hDevID,WORD wLine, WORD wMid,WORD wCount,WORD
wEdg);
数
hDevID
説
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
wEdg
明
デバイスハンドル
wLine
wCount
式
原点復帰時 Z 相カウントアップ回数(0:1 回~15:16 回)
Z 相カウント仕様(0:OFF→ON / 1:ON→OFF)
56
4.ライブラリ関数
(16) hpx_SetInpos() INPOS 入力の設定
機
能
指定したモジュールの INPOS 入力の設定をします.
言語
VC++
引
書
WORD wPol);
数
hDevID
式
DWORD hpx_SetInpos(DWORD hDevID,WORD wLine, WORD wMid,WORD wEnbl,
説
明
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
wEnbl
INPOS 制御(0:不使用/1:使用)
wPol
入力極性(0:B 接/1:A 接)
(17) hcx_SetInpos() INPOS 入力の設定
機
能
指定したモジュール(C モジュール)の INPOS 入力の設定をします.
言語
書
VC++
DWORD hcx_SetInpos(DWORD hDevID,WORD wLine, WORD wMid,WORD wEnbl,
WORD wPol);
引
数
説
hDevID
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
wEnbl
INPOS 制御(0:不使用/1:使用)
wPol
備
考
式
明
入力極性(0:B 接/1:A 接)
プリレジスタに値を設定しています.
プリレジスタを使用するアプリケーションの場合は本関数で設定を行って下さい.
P モジュールには使用できません.
(18) hpx_SetSvAlm() SVALM 入力の設定
機
能
指定したモジュールの SVALM 入力の設定をします.
言語
VC++
引
書
数
hDevID
式
DWORD hpx_SetSvAlm(DWORD hDevID,WORD wLine,WORD wMid,WORD wPol,WORD
wMot);
説
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
wPol
入力仕様(0:B 接 / 1:A 接)
wMot
入力時停止方法(0:即停止/1:減速停止)
57
明
4.ライブラリ関数
(19) hpx_SetSvCtrCl() SVCTRCL 出力の設定
機
能
指定したモジュールの SVCTRCL 出力の設定をします.
言語
VC++
引
書
数
hDevID
式
DWORD hpx_SetSvCtrCl( DWORD hDevID, WORD wLine, WORD wMid, WORD wSpc);
説
明
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
wSpc
0:不使用 / 1:原点復帰完了時自動出力 / 2:異常停止時自動出力 /
3: 原点復帰完了時, 異常停止時自動出力
(20) hpx_SetSvRdy() SVRDY 入力の設定
機
能
指定したモジュールの SVRDY 入力の設定をします.
言語
書
VC++
DWORD hpx_SetSvRdy( DWORD hDevID, WORD wLine, WORD wMid, WORD wPol);
引
数
hDevID
説
式
明
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
wPol
入力極性(0:B 接/1:A 接)
(21) hpx_SetCmdPulse() 指令パルス出力形式の設定
機
能
指定したモジュールの指令パルス出力形式の設定をします.
言語
VC++
引
書
数
hDevID
式
DWORD hpx_SetCmdPulse(DWORD hDevID, WORD wLine, WORD wMid, WORD wSpc);
説
明
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
wSpc
指令パルス出力形式
(0: 個別 CW/CCW / 1:共通 パルス列+方向信号(+:H / -:L) / 2:共通 パルス列+方向信号(+:L /
-:H)
58
4.ライブラリ関数
(22) hpx_SetAccProfile() S 字/直線加減速の切り替え
機
能
指定したモジュールの加減速方式を設定します.
言語
VC++
引
書
数
hDevID
式
DWORD hpx_SetAccProfile( DWORD hDevID, WORD wLine, WORD wMid, WORD wAcc);
説
明
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
wAcc
加減速形式(0:直線加減速 / 1:S 字加減速)
(23) hcx_SetAccProfile() S 字/直線加減速の切り替え
機
能
指定したモジュール(C モジュール)の加減速方式を設定します.
言語
VC++
引
書
DWORD hcx_SetAccProfile( DWORD hDevID, WORD wLine, WORD wMid, WORD
wAcc);
数
説
hDevID
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
wAcc
加減速形式(0:直線加減速 / 1:S 字加減速)
備
考
式
明
プリレジスタに値を設定しています.
プリレジスタを使用するアプリケーションの場合は本関数で設定を行って下さい.
P モジュールには使用できません.
(24) hpx_SetAutoDec() 減速開始点の計算の自動/手動切り替え
機
能
指定したモジュールの減速開始点の計算方式を設定します.
言語
VC++
引
書
数
hDevID
式
DWORD hpx_SetAutoDec(DWORD hDevID, WORD wLine, WORD wMid, WORD wCalc);
説
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
wCalc
減速開始点計算方式 (0:自動 / 1:手動)
59
明
4.ライブラリ関数
(25) hcx_SetAutoDec() 減速開始点の計算の自動/手動切り替え
機
能
指定したモジュール(C モジュール)の減速開始点の計算方式を設定します.
言語
VC++
引
書
式
DWORD hcx_SetAutoDec(DWORD hDevID, WORD wLine, WORD wMid, WORD wCalc);
数
説
hDevID
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
明
wMid
モジュール ID(0-63)
wCalc
減速開始点計算方式 (0:自動 / 1:手動)
備
プリレジスタに値を設定しています.
プリレジスタを使用するアプリケーションの場合は本関数で設定を行って下さい.
P モジュールには使用できません.
考
(26) hpx_SetSls() ソフトウェアリミットの設定
機
能
指定したモジュールのソフトウェアリミットの設定をします.
言語
VC++
引
数
hDevID
書
式
説
明
DWORD hpx_SetSls(
DWORD
hDevID,
WORD
wLine,
WORD
wMid,
long
lPsl,
long
lMsl,
WORD
wEnbl,
WORD
wMot);
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
lPsl
+SLS
lMsl
-SLS
wEnbl
SLS 有効/無効(0:無効 / 1:有効)
wMot
SLSon 時の動作(0:即停止/1:減速停止)
60
4.ライブラリ関数
(27) hpx_SetCtr3() カウンタ 3 の入力ソースの設定
機
能
指定したモジュールのカウンタ 3(汎用カウンタ)の入力ソースを設定します.
言語
VC++
引
書
数
hDevID
式
DWORD hpx_SetCtr3(DWORD hDevID, WORD wLine, WORD wMid, WORD wSrc);
説
明
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
wSrc
CTR3 の入力ソース
(0:指令位置 / 1:機械位置 / 2:手動パルサ入力 /3:20MHz の 1/4096 分周クロックカウント / 4:偏差カ
ウント)
(28) hpx_SetFhAdj() FH 補正機能の ON/OFF
機
能
指定したモジュールの FH 補正機能を ON/OFF します.
言語
書
VC++
DWORD hpx_SetFhAdj(DWORD hDevID, WORD wLine, WORD wMid, WORD wEnbl);
引
数
hDevID
説
式
明
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID
wEnbl
FH 補正(0:OFF / 1:ON)
(29) hcx_SetFhAdj() FH 補正機能の ON/OFF
機
能
指定したモジュール(C モジュール)の FH 補正機能を ON/OFF します.
言語
VC++
引
書
式
DWORD hcx_SetFhAdj(DWORD hDevID, WORD wLine, WORD wMid, WORD wEnbl);
数
説
hDevID
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
明
wMid
モジュール ID
wEnbl
FH 補正(0:OFF / 1:ON)
備
プリレジスタに値を設定しています.
プリレジスタを使用するアプリケーションの場合は本関数で設定を行って下さい.
P モジュールには使用できません.
考
61
4.ライブラリ関数
4.3.3 状態読み出し
(30) hpx_ReadMainSts() モーションメインステータスの読出し
機
能
指定したモーションモジュールのモーションメインステータスの読出しと割り込みリセットを行います.
言語
VC++
引
書
DWORD hpx_ReadMainSts(DWORD hDevID, WORD wLine, WORD wMid, WORD*
wMMsts);
数
hDevID
式
説
明
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
wMMsts
モーションメインステータス
備
<モーションメインステータスの内容>
bit 0 (SINT)
MMSTS の bit1,2,3 のいずれかが'1'で'1'
bit 1 (SEND) 動作停止時'1'
bit 2 (SERR) 異常停止,位置のオーバライド失敗,エンコーダ信号異常時'1'
bit 3 (SEVT)
RIRQ で設定されたイベント発生時'1'
bit 8 (SBSY)
パルス出力中'1'
考
62
4.ライブラリ関数
(31) hpx_ReadErrorSts() エラーステータスの読出し
機
能
指定したモジュールのエラーステータスの読み出しとクリアを行います.
言語
VC++
引
書
数
hDevID
説
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
備
考
明
デバイスハンドル
wLine
dwRest
式
DWORD hpx_ReadErrorSts(DWORD hDevID, WORD wLine, WORD wMid, DWORD*
dwRest);
エラーステータス
<エラーステータスの内容>
bit 0(ESC1) +SLS による停止時
bit 1(ESC2) -SLS による停止時
bit 2(ESC3) CMP3 条件成立による停止時
bit 3(ESPL) +ELS 入力 ON による停止時
bit 4(ESML) -ELS 入力 ON による停止時
bit 5(ESAL) SVALM 入力 ON による停止時
bit 6(ESSP) STP 入力 ON による停止時
bit 7(ESEM) EMG 入力 ON による停止時
bit 8(ESSD) DLS 入力 ON による減速停止時
bit 9(ESPO) 手動パルサバッファカウンタのオーバーフロー発生時
bit10(ESNT)
bit11
bit12(ESOR)
bit13(ESEE)
bit14(ESPE)
断線検出による停止時
未定義
位置のオーバライド失敗(停止中に位置のオーバライドを実行しようとした)
エンコーダ入力の同時変化時(停止しない)
エンコーダ入力の同時変化時(停止しない)
<hcx_ReadErrorSts との違い>
停止時のリセット処理が 1 通信多くなっています.
C モジュールでも使用できますが,処理時間を短縮したい場合は hcx_ReadErrorSts を使用します.
63
4.ライブラリ関数
(32) hcx_ReadErrorSts() エラーステータスの読出し
機
能
指定した C モジュールのエラーステータスの読み出しとクリアを行います.
言語
VC++
引
書
dwRest);
数
説
hDevID
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
dwRest
式
DWORD hpx_ReadErrorSts(DWORD hDevID, WORD wLine, WORD wMid, DWORD*
明
エラーステータス
<エラーステータスの内容>
bit 0:+SLSによる停止時
bit 1:-SLSによる停止時
bit 2:CMP3による停止時
bit 3:+ELSによる停止時
bit 4:-ELSによる停止時
bit 5:SVALMによる停止時
bit 6:STP入力による停止時
bit 7:予約
bit 8:DLS入力による停止時
bit 9:手パバッファオーバーフローによる停止時
bit10:通信エラー発生時による停止時
備
考
bit11:未定義
bit12:位置のオーバライド失敗時
bit13:エンコーダ入力異常時(停止しない)
bit14:エンコーダ入力異常時(停止しない)
bit15:補間動作データ異常による停止時
bit16:他軸の異常停止による同時停止時
bit17:円弧補間範囲オーバによる停止時
bit18:クロック同期エラー発生(停止しない)
bit19:クロック同期エラーエラーモニタ設定回数分連続エラー発生による停止
bit20:同時停止用エラーエラーモニタ設定回数分連続エラー発生による停止
<hpx_ReadErrorSts との違い>
停止時のリセット処理が 1 通信少なくなっています.P モジュールには使用できません.
64
4.ライブラリ関数
(33) hpx_ReadEventSts() イベントステータスの読出し
機
能
指定したモジュールのイベントステータスの読み出しとクリアを行います.
言語
VC++
引
書
dwRist);
数
hDevID
説
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
備
考
明
デバイスハンドル
wLine
dwRist
式
DWORD hpx_ReadEventSts(DWORD hDevID, WORD wLine, WORD wMid, DWORD*
イベントステータス
<イベントステータスの内容>
bit 0 (ISEN) 正常停止時
bit 1 (ISUS) 加速開始時
bit 2 (ISUE) 加速終了時
bit 3 (ISDS) 減速開始時
bit 4 (ISDE) 減速終了時
bit 5 (ISC1) CMP1 条件成立時
bit 6 (ISC2) CMP2 条件成立時
bit 7 (ISC3) CMP3 条件成立時
bit 8 (ISCL) CLR 入力によるカウント値のリセット時
bit 9 (ISLT) LATCH 入力によるカウント値のラッチ時
bit10 (ISOL) OLS 入力によるカウント値のラッチ時
bit11 (ISSD)
bit12 (ISSA)
bit13 (ISNA)
bit14 (ISNP)
DLS 入力 ON 時
STA 入力 ON 時
グループスタート時
グループ停止時
<hcx_ReadEventSts との違い>
停止時のリセット処理が 1 通信多くなっています.
C モジュールでも使用できますが,処理時間を短縮したい場合は hcx_ReadEventSts を使用します.
65
4.ライブラリ関数
(34) hcx_ReadEventSts() イベントステータスの読出し
機
能
指定したモジュールのイベントステータスの読み出しとクリアを行います.
言語
VC++
引
書
dwRist);
数
説
hDevID
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
dwRist
備
考
式
DWORD hpx_ReadEventSts(DWORD hDevID, WORD wLine, WORD wMid, DWORD*
明
イベントステータス
<イベントステータスの内容>
bit 0 (ISEN) 正常停止時
bit 1 (ISUS) 加速開始時
bit 2 (ISUE) 加速終了時
bit 3 (ISDS) 減速開始時
bit 4 (ISDE) 減速終了時
bit 5 (ISC1) CMP1 条件成立時
bit 6 (ISC2) CMP2 条件成立時
bit 7 (ISC3) CMP3 条件成立時
bit 8 (ISCL) CLR 入力によるカウント値のリセット時
bit 9 (ISLT) LATCH 入力によるカウント値のラッチ時
bit10 (ISOL) OLS 入力によるカウント値のラッチ時
bit11 (ISSD)
bit12 (ISSA)
bit13 (ISNA)
bit14 (ISNP)
bit15(ISNM)
bit16(ISBE)
DLS 入力 ON 時
STA 入力 ON 時
グループスタート時
グループ停止時
動作用プリレジスタフルからプリレジスタ空きに変化した時.
プリレジスタ未設定時,現動作完了時.
(次動作連続実行時に,次動作データ設定が間に合わなかった場合.)
<hpx_ReadEventSts との違い>
停止時のリセット処理が 1 通信少なくなっています.P モジュールには使用できません.
66
4.ライブラリ関数
(35) hpx_ReadExSts() 拡張ステータスの読出し
機
能
指定したモジュールの拡張ステータスを読み出します.
言語
VC++
引
書
数
hDevID
説
明
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
dwRsts
式
DWORD hpx_ReadExSts(DWORD hDevID, WORD wLine, WORD wMid, DWORD* dwRsts);
拡張ステータス
<拡張ステータスの内容>
備
考
bit 3-0
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
停止中
STA 入力待ち
SVCTRCL タイマ完了待ち
方向変化タイマ完了待ち
バックラッシュ補正動作中
手動パルサ入力待ち
FA 定速動作中
FL 定速動作中
加速中
FH 定速動作中
減速中
1011
1111
INPOS 待ち
スタート制御中
bit 4(SDIR) 動作方向(0:+方向 1:-方向)
bit 5(SALM) SVALMon
bit 6(SPEL) +ELSon
bit 7(SMEL) -ELSon
bit 8(SORG) OLSon
bit 9(SSD) DLSon(ラッチ状態)
bit10(SDIN) DLSon(端子状態)
bit11(SSTA) STAon
bit12(SSTP) STPon
bit13(SEMG) EMGon
bit14(SPCS) SVRDY(PCS)on
bit15(SERC) SVCTRCLon
bit16(SEZ)
bit17(SCLR)
bit18(SLTC)
bit19(SINP)
bit20(SCP1)
bit21(SCP2)
bit22(SCP3)
bit23(SPLS)
67
ENCZon
CLRon
LATCHon
INPOSon
CMP1 比較条件成立時
CMP2 比較条件成立時
CMP3 比較条件成立時
パルス出力 ON
4.ライブラリ関数
(36) hpx_ReadSpd() 指令速度の読出し
機
能
指定したモジュールの指令速度を読み出します.
言語
VC++
引
書
数
hDevID
説
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
備
明
デバイスハンドル
wLine
dwRspd
式
DWORD hpx_ReadSpd(DWORD hDevID, WORD wLine, WORD wMid, DWORD* dwRspd );
指令速度/速度倍率[pps]
考
(37) hpx_ReadSpdEx() 指令速度の読出し(速度倍率含む)
機
能
指定したモジュールの指令速度を読み出します.
言語
VC++
引
書
DWORD hpx_ReadSpdEx(DWORD hDevID, WORD wLine, WORD wMid, DWORD*
dwRspd );
数
hDevID
説
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
備
明
デバイスハンドル
wLine
dwRspd
式
指令速度[pps]
考
(38) hpx_ReadOutp() 出力ポートの読出し
機
能
指定したモジュールの出力ポートを読出します.
言語
VC++
引
書
DWORD hpx_ReadOutp( DWORD hDevID, WORD wLine, WORD wMid, BYTE* byData );
数
hDevID
説
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
byData
備
式
読出データ
考
68
明
4.ライブラリ関数
(39) hpx_ReadCtr() カウンタの読出し
機
能
指定したモジュールの指定したカウンタを読み出します.
言語
VC++
引
書
(DWORD hDevID, WORD wLine WORD wMid, WORD wCtr, long* lValue);
数
hDevID
式
DWORD hpx_ReadCtr
説
明
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
wCtr
読み出すカウンタ選択(1:CTR1 / 2:CTR2 / 3:CTR3)
lValue
備
カウンタ読出し値
考
4.3.4 動作設定
(40) hpx_SetFLSpd() ベース速度の設定
機
能
指定したモジュールのベース速度を設定します.
言語
VC++
引
書
DWORD hpx_SetFLSpd(DWORD hDevID, WORD wLine, WORD wMid, DWORD dwRfl);
数
hDevID
式
説
明
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
dwRfl
RFL 設定値(1-10000)
(41) hcx_SetFLSpd() ベース速度の設定
機
能
指定したモジュール(C モジュール)のベース速度を設定します.
言語
VC++
引
書
数
説
hDevID
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
dwRfl
RFL 設定値(1-10000)
備
考
式
DWORD hcx_SetFLSpd(DWORD hDevID, WORD wLine, WORD wMid, DWORD dwRfl);
明
プリレジスタに値を設定しています.
プリレジスタを使用するアプリケーションの場合は本関数で設定を行って下さい.
P モジュールには使用できません.
69
4.ライブラリ関数
(42) hpx_SetAuxSpd() 補助速度の設定
機
能
指定したモジュールの補助速度を設定します.
言語
VC++
引
書
数
hDevID
式
DWORD hpx_SetAuxSpd(DWORD hDevID, WORD wLine, WORD wMid, DWORD dwRfa);
説
明
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID
dwRfa
補助速度(1-100000)
(43) hpx_ SetAccRate() 加速レートの設定
機
能
指定したモジュールの加速レートを設定します.
言語
VC++
引
書
DWORD hpx_SetAccRate(DWORD hDevID, WORD wLine, WORD wMid, DWORD dwRur);
数
hDevID
式
説
明
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
dwRur
加速レート(1-65535)
(44) hcx_ SetAccRate() 加速レートの設定
機
能
指定したモジュール(C モジュール)の加速レートを設定します.
言語
VC++
引
書
式
DWORD hcx_SetAccRate(DWORD hDevID, WORD wLine, WORD wMid, DWORD
dwRur);
数
説
hDevID
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
明
dwRur
加速レート(1-65535)
備
プリレジスタに値を設定しています.
プリレジスタを使用するアプリケーションの場合は本関数で設定を行って下さい.
P モジュールには使用できません.
考
70
4.ライブラリ関数
(45) hpx_SetDecRate() 減速レートの設定
機
能
指定したモジュールの減速レートを設定します.
言語
VC++
引
書
wMid, DWORD
dwRdr);
数
hDevID
式
DWORD hpx_SetDecRate(DWORD hDevID, WORD wLine, WORD
説
明
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID
dwRdr
減速レート(0-65535)
(46) hcx_SetDecRate() 減速レートの設定
機
能
指定したモジュール(C モジュール)の減速レートを設定します.
言語
VC++
引
書
式
DWORD hcx_SetDecRate(DWORD hDevID, WORD wLine, WORD
dwRdr);
数
説
hDevID
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID
明
dwRdr
減速レート(0-65535)
備
プリレジスタに値を設定しています.
プリレジスタを使用するアプリケーションの場合は本関数で設定を行って下さい.
P モジュールには使用できません.
考
wMid, DWORD
(47) hpx_SetMult() 速度倍率設定値の設定
機
能
指定したモジュールの速度倍率設定値を設定します.
言語
書
VC++
DWORD hpx_SetMult(DWORD hDevID, WORD wLine, WORD wMid, DWORD dwRmg);
引
数
hDevID
説
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
dwRmg
備
速度倍率設定値(2-4095)
考
71
式
明
4.ライブラリ関数
(48) hcx_SetMult() 速度倍率設定値の設定
機
能
指定したモジュール(C モジュール)の速度倍率設定値を設定します.
言語
VC++
引
書
数
説
hDevID
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
dwRmg
式
DWORD hcx_SetMult(DWORD hDevID, WORD wLine, WORD wMid, DWORD dwRmg);
明
速度倍率設定値(2-4095)
プリレジスタに値を設定しています.
備
考
プリレジスタを使用するアプリケーションの場合は本関数で設定を行って下さい.
P モジュールには使用できません.
(49) hpx_SetEventMask() イベントマスクの設定
機
能
指定したモジュールのイベントマスクを設定します.
言語
VC++
引
書
DWORD hpx_SetEventMask(DWORD hDevID, WORD wLine, WORD wMid, DWORD
dwRirq);
数
hDevID
説
明
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
dwRirq
式
イベントマスク(RIRQ)設定
G9003:RIRQ(0-0x00007fff) / G9003:RIRQ(0-0x0001ffff)
<イベントマスクの設定>
bit 0(IREN) 正常停止時
bit 1(IRUS) 加速開始時
bit 2(IRUE) 加速終了時
bit 3(IRDS) 減速開始時
bit 4(IRDE) 減速終了時
備
考
bit 5(IRC1)
bit 6(IRC2)
bit 7(IRC3)
bit 8(IRCL)
bit 9(IRLT)
bit10(IROL)
bit11(IRSD)
bit12(IRSA)
bit13(IRNA)
bit14(IRNP)
コンパレータ 1 条件成立時
コンパレータ 2 条件成立時
コンパレータ 3 条件成立時
CLR 信号入力によるカウント値のリセット時
LATCH 入力によるカウント値のラッチ時
OLS 入力によるカウント値のラッチ時
DLS 入力 ON 時
STA 入力 ON 時
グループスタートコマンド(2x01h)受信時
グループストップコマンド(2x02h)による停止時
72
4.ライブラリ関数
(50) hpx_SetDecPoint() 減速開始点の設定
機
能
指定したモジュールの減速開始点を設定します.
言語
VC++
引
書
数
hDevID
式
DWORD hpx_SetDecPoint(DWORD hDevID, WORD wLine, WORD wMid, long lRdp);
説
明
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
lRdp
減速開始点(パルス)
注意:位置決めまたは補間時の減速開始点計算方法により意味が異なる
備
考
(1) 自動計算時は自動計算値からのオフセット量
負の値の場合は遅めに減速を開始しベース速度より早い速度で停止
正の値の場合は早めに減速を開始しベース速度で動作してから停止
(2) 手動計算時は残移動量が設定値以下になった時に減速を開始
(51) hcx_SetDecPoint() 減速開始点の設定
機
能
指定したモジュール(C モジュール)の減速開始点を設定します.
言語
VC++
引
書
式
DWORD hcx_SetDecPoint(DWORD hDevID, WORD wLine, WORD wMid, long lRdp);
数
説
hDevID
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
lRdp
減速開始点(パルス)
明
プリレジスタに値を設定しています.
プリレジスタを使用するアプリケーションの場合は本関数で設定を行って下さい.
P モジュールには使用できません.
備
考
注意:位置決めまたは補間時の減速開始点計算方法により意味が異なる
(1) 自動計算時は自動計算値からのオフセット量
負の値の場合は遅めに減速を開始しベース速度より早い速度で停止
正の値の場合は早めに減速を開始しベース速度で動作してから停止
(2) 手動計算時は残移動量が設定値以下になった時に減速を開始
73
4.ライブラリ関数
(52) hcx_SetCnstIPFeed () 合成速度一定制御の ON/OFF
機
能
指定したモジュールの 2 軸補間時の合成速度一定制御の ON/OFF を行います.
言語
VC++
引
書
式
DWORD hcx_SetCnstIPFeed(DWORD hDevID, WORD wLine, WORD wMid,
BOOL bOn);
数
説
明
hDevID
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
bOn
TRUE:合成速度一定制御 ON,FALSE:合成速度一定制御 OFF
備
考
P モジュールには使用できません.
74
4.ライブラリ関数
(53) hpx_WritOpeMode() 動作モード書込み
機
能
指定したモジュールの動作モードを設定します.
言語
VC++
引
書
数
hDevID
式
DWORD hpx_WritOpeMode(DWORD hDevID,WORD wLine,WORD wMid,WORD wMode );
説
明
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
動作モード(詳細はユーザーズマニュアル<運用編>)
00h:コマンド制御による (+)方向連続送り
08h:コマンド制御による (-)方向連続送り
10h:(+)方向 原点復帰動作
18h:(-)方向 原点復帰動作
12h:(+)方向 原点抜け出し動作
1Ah:(-)方向 原点抜け出し動作
wMode
15h:(+)方向 原点サーチ動作
1Dh:(-)方向 原点サーチ動作
20h:+EL または+SL 位置まで動作
28h:-EL または-SL 位置まで動作
22h:-EL または-SL 抜け出し動作
2Ah:+EL または+SL 抜け出し動作
24h:(+)方向に EZ カウント分だけ動作
2Ch:(-)方向に EZ カウント分だけ動作
41h:位置決め動作(目標相対位置指定)
42h:PCS 位置決め動作
44h:指令位置(CTR1)0 点復帰動作
45h:機械位置(CTR2)0 点復帰動作
46h:(+)方向 1 パルス動作
4Eh:(-)方向 1 パルス動作
47h:タイマ動作
01h:パルサ(PA/PB)入力による連続動作
51h:パルサ(PA/PB)入力による位置決め動作
54h:パルサ(PA/PB)入力による指令位置 0 点復帰動作
55h:パルサ(PA/PB)入力による機械位置 0 点復帰動作
備
考
注意:機械座標位置指定位置決め時はフィードバック制御ではないので位置決め終了時の機械位置が
目標位置と異なる場合があります。
[hcx_WritOpeMode との違い]
上記動作モードで使用する場合は C モジュールでも使用できます.
C モジュール固有の動作モードを設定すると設定範囲外エラーとなります.
75
4.ライブラリ関数
(54) hcx_WritOpeMode() 動作モード書込み
機
能
指定したモジュールの動作モードを設定します.
言語
VC++
引
書
式
DWORD hcx_WritOpeMode(DWORD hDevID,WORD wLine,WORD wMid,
WORD wMode, WORD wCoord );
数
説
hDevID
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
明
動作モード(詳細はユーザーズマニュアル<運用編>)
00h:コマンド制御による (+)方向連続送り
08h:コマンド制御による (-)方向連続送り
10h:(+)方向 原点復帰動作
18h:(-)方向 原点復帰動作
12h:(+)方向 原点抜け出し動作
wMode
1Ah:(-)方向 原点抜け出し動作
15h:(+)方向 原点サーチ動作
1Dh:(-)方向 原点サーチ動作
20h:+EL または+SL 位置まで動作
28h:-EL または-SL 位置まで動作
22h:-EL または-SL 抜け出し動作
2Ah:+EL または+SL 抜け出し動作
24h:(+)方向に EZ カウント分だけ動作
2Ch:(-)方向に EZ カウント分だけ動作
41h:位置決め動作(wCoord の値により異なります)
42h:PCS 位置決め動作
44h:指令位置(CTR1)0 点復帰動作
45h:機械位置(CTR2)0 点復帰動作
46h:(+)方向 1 パルス動作
4Eh:(-)方向 1 パルス動作
47h:タイマ動作
01h:パルサ(PA/PB)入力による連続動作
51h:パルサ(PA/PB)入力による位置決め動作
54h:パルサ(PA/PB)入力による指令位置 0 点復帰動作
55h:パルサ(PA/PB)入力による機械位置 0 点復帰動作
60h:直線補間連続送り(補間 X 軸出力)
61h:直線補間(補間 X 軸出力)
64h:CW 方向円弧補間(補間 X 軸出力)
65h:CCW 方向円弧補間(補間 X 軸出力)
70h:直線補間連続送り(補間 Y 軸出力)
71h:直線補間(補間 Y 軸出力)
74h:CW 方向円弧補間(補間 Y 軸出力)
75h:CCW 方向円弧補間(補間 Y 軸出力)
次ページへ続く
76
4.ライブラリ関数
前ページからの続き
wCoord
備
考
ABS/INC切替(0:相対位置指定,1:指令座標位置指定,2:機械座標位置指定)
位置決め時のみ有効(補間動作は除く)
注意:機械座標位置指定位置決め時はフィードバック制御ではないので位置決め終了時の機械位置が
目標位置と異なる場合があります。
[hpx_WritOpeMode との違い]
C モジュール固有の動作モード(補間など)が追加されています.P モジュールでは使用できません.
(55) hpx_WritSta() STA 入力時の動作設定
機
能
指定したモジュールの STA 入力時の動作を設定します.
言語
VC++
引
式
説
明
DWORD hpx_WritSta(
DWORD hDevID,
WORD wLine,
WORD wMid,
WORD wEnbl,
WORD wTrg);
数
hDevID
書
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
wEnbl
STA 入力有効設定(0:無効 / 1:有効)
wTrg
STA 入力仕様(0:レベル / 1:エッジ)
(56) hcx_WritSta() STA 入力時の動作設定
機
能
指定したモジュール(C モジュール)の STA 入力時の動作を設定します.
言語
書
式
説
明
DWORD hcx_WritSta(
DWORD hDevID,
VC++
引
WORD wLine,
WORD wMid,
WORD wEnbl,
WORD wTrg);
数
hDevID
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
wEnbl
STA 入力有効設定(0:無効 / 1:有効)
wTrg
STA 入力仕様(0:レベル / 1:エッジ)
備
考
プリレジスタに値を設定しています.
プリレジスタを使用するアプリケーションの場合は本関数で設定を行って下さい.
P モジュールには使用できません.
77
4.ライブラリ関数
(57) hpx_WritStp() STP 入力時の動作設定と STP 自動出力の設定
機
能
指定したモジュールの STP 入力時の動作設定と異常停止時 STP 自動出力の設定をします.
言語
書
式
説
明
DWORD hpx_WritStp(
VC++
引
DWORD hDevID,
WORD wLine,
WORD wMid,
WORD wEnbl,
WORD wMot,
WORD wOut);
数
hDevID
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
wEnbl
STP 入力有効設定(0:無効 / 1:有効)
wMot
STP 入力時の停止方法(0:即停止/1:減速停止)
wOut
異常停止時 STP 出力設定(0:出力/1:出力しない)
(58) hcx_WritStp() STP 入力時の動作設定と STP 自動出力の設定
機
能
指定したモジュール(C モジュール)の STP 入力時の動作設定と異常停止時 STP 自動出力の設定をしま
す.
言語
書
式
説
明
DWORD hcx_WritStp(
DWORD hDevID,
VC++
引
WORD wLine,
WORD wMid,
WORD wEnbl,
WORD wMot,
WORD wOut);
数
hDevID
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
wEnbl
STP 入力有効設定(0:無効 / 1:有効)
wMot
STP 入力時の停止方法(0:即停止/1:減速停止)
wOut
異常停止時 STP 出力設定(0:出力/1:出力しない)
備
考
プリレジスタに値を設定しています.
プリレジスタを使用するアプリケーションの場合は本関数で設定を行って下さい.
P モジュールには使用できません.
78
4.ライブラリ関数
(59) hpx_WritFHSpd() 動作速度の設定
機
能
指定したモジュールの動作速度を設定します.
言語
VC++
引
書
数
hDevID
説
明
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
dwRfh
動作速度レジスタ(RFH)値(1-100000)
備
式
DWORD hpx_WritFHSpd(DWORD hDevID, WORD wLine, WORD wMid, DWORD dwRfh);
考
(60) hcx_WritFHSpd() 動作速度の設定
機
能
指定したモジュール(C モジュール)の動作速度を設定します.
言語
VC++
引
書
式
DWORD hcx_WritFHSpd(DWORD hDevID, WORD wLine, WORD wMid, DWORD
dwRfh);
数
説
hDevID
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
明
wMid
モジュール ID(0-63)
dwRfh
動作速度レジスタ(RFH)値(1-100000)
備
プリレジスタに値を設定しています.
プリレジスタを使用するアプリケーションの場合は本関数で設定を行って下さい.
P モジュールには使用できません.
考
(61) hpx_WritPos() 移動量の設定
機
能
指定したモジュールの移動量を設定します.
言語
VC++
引
書
DWORD hpx_WritPos(DWORD hDevID, WORD wLine, WORD wMid, long lRmv);
数
hDevID
式
説
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
lRmv
移動量[パルス](-134217728-134217727)
79
明
4.ライブラリ関数
(62) hcx_WritPos() 移動量の設定
機
能
指定したモジュール(C モジュール)の移動量を設定します.
言語
VC++
引
書
数
説
hDevID
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
lRmv
移動量[パルス](-134217728-134217727)
備
考
式
DWORD hcx_WritPos(DWORD hDevID, WORD wLine, WORD wMid, long lRmv);
明
プリレジスタに値を設定しています.
プリレジスタを使用するアプリケーションの場合は本関数で設定を行って下さい.
モジュールには使用できません.
(63) hpx_WritCtr() カウンタへの書込み
機
能
指定したモジュールの指定されたカウンタへ書き込みます.
言語
VC++
引
書
数
hDevID
説
明
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
lValue
書き込むカウンタ値
wCtr
式
DWORD hpx_WritCtr(DWORD hDevID,WORD wLine, WORD wMid, long lValue, WORD
wCtr);
書き込むカウンタ指定(1:CTR1 / 2:CTR2 / 3:CTR3)
(64) hcx_Writ2AxisLine() 2軸直線補間移動量設定
機
能
指定した 2 つのモジュールの指定された直線補間移動量を設定します.
言語
VC++
引
書
DWORD hcx_Writ2AxisLine(DWORD hDevID,WORD wLine,
WORD wMidX, WORD wMidY, long lDstX, long lDstY);
数
説
hDevID
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMidX
X 軸モジュール ID(0-63)
wMidY
Y 軸モジュール ID(0-63)
lDstX
X 軸移動量
lDstY
Y 軸移動量
備
考
式
P モジュールには使用できません.
80
明
4.ライブラリ関数
(65) hcx_Writ2Circl() 2軸円弧補間終点,中心位置設定
機
能
指定した 2 つのモジュールの指定された円弧補間終点,中心位置を設定します.
言語
VC++
引
書
WORD wMidX, WORD wMidY, long lDstX, long lDstY, long lCenX, lCenY);
数
説
hDevID
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMidX
X 軸モジュール ID(0-63)
wMidY
Y 軸モジュール ID(0-63)
lDstX
X 軸終点相対位置
lDstY
Y 軸終点相対位置
lCenX
X 軸中心相対位置
lCenY
Y 軸中心相対位置
備
P モジュールには使用できません.
考
式
DWORD hcx_WritCircl(DWORD hDevID,WORD wLine,
明
4.3.5 動作制御指令
(66) hpx_DecStop() 減速停止
機
能
指定したモジュールを減速停止させます.
言語
VC++
引
書
DWORD hpx_DecStop(DWORD hDevID, WORD wLine, WORD wMid );
数
hDevID
式
説
明
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
(67) hpx_QuickStop() 即停止
機
能
指定したモジュールを即停止させます.
言語
VC++
引
書
DWORD hpx_QuickStop(DWORD hDevID, WORD wLine, WORD wMid );
数
hDevID
式
説
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
81
明
4.ライブラリ関数
(68) hpx_EmgStop() 非常停止
機
能
指定したモジュールを非常停止させます.
言語
VC++
引
書
数
hDevID
説
明
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
備
式
DWORD hpx_EmgStop(DWORD hDevID, WORD wLine, WORD wMid );
考
(69) hpx_AccStart() 加速スタート
機
能
指定したモジュールを加速スタートさせます.
言語
VC++
引
書
数
hDevID
説
明
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
備
式
DWORD hpx_AccStart ( DWORD hDevID, WORD wLine, WORD wMid );
考
(70) hpx_CnstStartFH() FH 定速スタート
機
能
指定したモジュールを FH 定速スタートさせます.
言語
VC++
引
書
DWORD hpx_CnstStartFH (DWORD hDevID, WORD wLine, WORD wMid );
数
hDevID
説
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
備
式
考
82
明
4.ライブラリ関数
(71) hpx_CnstStartFL() FL 定速スタート
機
能
指定したモジュールを FL 定速スタートさせます.
言語
VC++
引
書
数
hDevID
説
明
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
備
式
DWORD hpx_CnstStartFL(DWORD hDevID, WORD wLine, WORD wMid );
考
(72) hpx_MvAccStart() 移動量設定+加速スタート
機
能
指定したモジュールの移動量の設定と加速スタートをします.
言語
VC++
引
書
数
hDevID
説
明
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
lRmv
移動量[パルス](-134217728-134217727)
備
式
DWORD hpx_MvAccStart(DWORD hDevID, WORD wLine, WORD wMid, long lRmv);
考
(73) hpx_MvCnstStartFH() 移動量設定+FH 定速スタート
機
能
指定したモジュールの移動量の設定と FH 定速スタートをします.
言語
VC++
引
書
数
hDevID
説
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
lRmv
移動量[パルス](-134217728-134217727)
備
式
DWORD hpx_MvCnstStartFH( DWORD hDevID, WORD wLine, WORD wMid, long lRmv);
考
83
明
4.ライブラリ関数
(74) hpx_MvCnstStartFL() 移動量設定+FL 定速スタート
機
能
指定したモジュールの移動量の設定と FL 定速スタートをします.
言語
VC++
引
書
数
hDevID
説
明
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
lRmv
移動量[パルス](-134217728-134217727)
備
式
DWORD hpx_MvCnstStartFL( DWORD hDevID, WORD wLine, WORD wMid, long lRmv);
考
(75) hpx_SetGroup() グループ設定
機
能
指定したモジュールを指定したグループに設定します.
言語
書
VC++
DWORD hpx_SetGroup(DWORD hDevID, WORD wLine, WORD wMid, WORD wGrp);
引
数
hDevID
説
式
明
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
wGrp
グループ番号(0-7) 但し 0 を指定した場合はグループ解除
(76) hpx_GrpStop() グループ停止
機
能
指定したグループのモジュールを停止させます.
言語
VC++
引
書
DWORD hpx_GrpStop(DWORD hDevID, WORD wLine, WORD wGrp);
数
hDevID
説
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wGrp
グループ番号(0-7), 但し"0"は全グループ
考
明
デバイスハンドル
wLine
備
式
注意:この関数を使用する場合は指定グループのモジュールに対し,「STP 入力時に停止する」設定を行う
必要があります.この設定をしていない場合は停止しません.
84
4.ライブラリ関数
(77) hpx_GrpAccStart() グループ加速スタート
機
能
指定したグループのモジュールを加速スタートさせます.
言語
VC++
引
書
数
hDevID
説
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wGrp
グループ番号(0-7), 但し"0"は全グループ
考
明
デバイスハンドル
wLine
備
式
DWORD hpx_GrpAccStart (DWORD hDevID, WORD wLine, WORD wGrp, );
注意:この関数を使用する場合は指定グループのモジュールに対し,「STA 入力によるスタート」の設定を
行う必要があります.この設定をしない場合は同時スタートではなく順々にスタートします.
C モジュール使用時,クロック同期機能を使用している場合は使用できません.
(78) hpx_GrpCnstStartFH() グループ FH 定速スタート
機
能
指定したグループのモジュールを FH 定速スタートさせます.
言語
VC++
引
書
数
hDevID
式
DWORD hpx_GrpCnstStartFH (DWORD hDevID, WORD wLine, WORD wGrp );
説
明
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wGrp
グループ番号(0-7), 但し"0"は全グループ
注意:この関数を使用する場合は指定グループのモジュールに対し,「STA 入力によるスタート」の設定を
備
考
行う必要があります.この設定をしない場合は同時スタートではなく順々にスタートします.
C モジュール使用時,クロック同期機能を使用している場合は使用できません.
(79) hpx_GrpCnstStartFL() グループ FL 定速スタート
機
能
指定したグループのモジュールを FL 定速スタートさせます.
言語
VC++
引
書
数
hDevID
説
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wGrp
グループ番号(0-7), 但し"0"は全グループ
考
明
デバイスハンドル
wLine
備
式
DWORD hpx_ GrpCnstStartFL (DWORD hDevID, WORD wLine, WORD wGrp );
注意:この関数を使用する場合は指定グループのモジュールに対し,「STA 入力によるスタート」の設定を
行う必要があります.この設定をしない場合は同時スタートではなく順々にスタートします.
C モジュール使用時,クロック同期機能を使用している場合は使用できません.
85
4.ライブラリ関数
(80) hcx_GrpStart() グループスタート
機
能
指定したグループのモジュールに対し,グループスタートコマンドを送信します.
言語
VC++
引
書
数
説
hDevID
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wGrp
グループ番号(0-7), 但し"0"は全グループ
備
考
式
DWORD hcx_ GrpStart (DWORD hDevID, WORD wLine, WORD wGrp );
明
注意:この関数を使用する場合は指定グループのモジュールに対し,「STA 入力によるスタート」の設定を
行った後,スタートコマンド書込みが必要です.
その後本関数使用で指定したグループが同時にスタートします.
(81) hcx_GrpDecStop() グループ減速停止
機
能
指定したグループのモジュールを減速停止させます.
言語
VC++
引
書
式
DWORD hcx_ GrpDecStop (DWORD hDevID, WORD wLine, WORD wGrp );
数
説
hDevID
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wGrp
グループ番号(0-7), 但し"0"は全グループ
備考
P モジュールには使用できません.
明
(82) hcx_GrpQuickStop() グループ即停止
機
能
指定したグループのモジュールを即停止させます.
言語
VC++
引
書
数
説
hDevID
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wGrp
グループ番号(0-7), 但し"0"は全グループ
備
考
式
DWORD hcx_ GrpQuickStop (DWORD hDevID, WORD wLine, WORD wGrp );
P モジュールには使用できません.
86
明
4.ライブラリ関数
(83) hpx_SvOn() サーボオン
機
能
指定したモジュールの SVON を ON します.
言語
VC++
引
書
数
hDevID
式
DWORD hpx_ SvOn (DWORD hDevID, WORD wLine, WORD wMid );
説
明
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
(84) hpx_SvOff() サーボオフ
機
能
指定したモジュールの SVON を OFF します.
言語
VC++
引
書
数
hDevID
式
DWORD hpx_ SvOff (DWORD hDevID, WORD wLine, WORD wMid );
説
明
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
(85) hpx_SvResetOn() サーボリセットオン
機
能
指定したモジュールの SVRST を ON します.
言語
VC++
引
書
DWORD hpx_SvResetOn (DWORD hDevID, WORD wLine, WORD wMid );
数
hDevID
式
説
明
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
(86) hpx_SvResetOff() サーボリセットオフ
機
能
指定したモジュールの SVRST を OFF します.
言語
VC++
引
書
DWORD hpx_SvResetOff (DWORD hDevID, WORD wLine, WORD wMid );
数
hDevID
式
説
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
87
明
4.ライブラリ関数
(87) hpx_SvTlOn() サーボトルク制限オン(オプション)
機
能
指定したモジュールの SVTL を ON します.
言語
VC++
引
書
数
hDevID
式
DWORD hpx_SvTlOn (DWORD hDevID, WORD wLine, WORD wMid );
説
明
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
(88) hpx_SvTlOff() サーボトルク制限オフ(オプション)
機
能
指定したモジュールの SVTL を OFF します.
言語
VC++
引
書
DWORD hpx_SvTlOff (DWORD hDevID, WORD wLine, WORD wMid );
数
hDevID
式
説
明
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
(89) hpx_SvGainOn() サーボゲイン切り替えオン(オプション)
機
能
指定したモジュールの SVGAIN を ON します.
言語
VC++
引
書
DWORD hpx_SvGainOn (DWORD hDevID, WORD wLine, WORD wMid );
数
hDevID
式
説
明
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
(90) hpx_SvGainOff() サーボゲイン切り替えオフ(オプション)
機
能
指定したモジュールの SVGAIN を OFF します.
言語
VC++
引
書
数
hDevID
式
DWORD hpx_SvGainOff (DWORD hDevID, WORD wLine, WORD wMid );
説
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
88
明
4.ライブラリ関数
(91) hpx_PMOn パルスモータ励磁オン
機
能
指定したモジュールのパルスモータ励磁をオンします.
言語
書
VC++
DWORD hpx_PMOn (DWORD hDevID, WORD wLine, WORD wMid );
引
式
数
hDevID
説
デバイスハンドル
wLine
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
備
考
明
SVON をドライバの励磁 ON/OFF 端子に接続している場合有効
(92) hpx_PMOff パルスモータ励磁オフ
機
能
指定したモジュールのパルスモータ励磁をオフ(モーターフリー)します.
言語
VC++
引
書
DWORD hpx_PMOff (DWORD hDevID, WORD wLine, WORD wMid );
数
hDevID
説
ライン番号指定( 0:ライン番号 1/1:ライン番号 2 )
wMid
モジュール ID(0-63)
考
明
デバイスハンドル
wLine
備
式
SVON をドライバの励磁 ON/OFF 端子に接続している場合有効
89
4.ライブラリ関数
4.3.6 計算関数
(93) hpx_CalAccRate 加減速レート計算
機
能
加減速時間,RFH,RFL 等より加減速レートを計算します.
言語
VC++
引
数
計算結果格納先
dwTim
加(減)速時間(ミリ秒)
dwRfh
RFH レジスタ値(1-100000)
dwRfl
RFL レジスタ値(1-100000)
wAcc
加減速方式(0:直線/1:S 字)
備
考
式
説
明
DWORD hpx_CalAccRate(
DWORD* dwRur,
DWORD dwTim,
DWORD dwRfh,
DWORD dwRfl,
WORD wAcc,
DWORD dwRus);
dwRur
dwRus
書
S 字区間(1-50000)
(1) dwRfh≦dwRfl の時はエラーを返します.
(2) (dwRfh-dwRfl)/2<dwRus の時はエラーを返します.
<加(減)速時間の計算式>
RXR:加速時は RUR / 減速時は RDR
RXS:加速時は RUS / 減速時は RDS
(1) 直線加速
T(加速時間[msec])=(RFH-RFL)*(RXR+1)/5000
RXR=5000*T/(RFH-RFL)-1
(2) S 字加速
T(加速時間[msec])=(RFH-RFL)*(RXR+1)/2500
RXR=2500*T/(RFH-RFL)-1
(3) S 字加速(直線区間有)
T(加速時間[msec])=(RFH-RFL+2*RXS)*(RXR+1)/5000
RxR=5000*T/(RFH-RFL+2*RXS)-1
90
4.ライブラリ関数
(94) hpx_CalDecPoint 減速開始点計算
機
能
減速開始点手動設定時の減速開始点最適値を計算します.
位置決め動作時に,この値より大きな値を減速開始点レジスタに設定すると減速が早めに開始され,ベー
ス速度で動作する時間が長くなります.逆に小さな値を減速開始点レジスタに設定すると減速が遅めに開
始され,ベース速度に到達する前に停止します.
言語
VC++
引
数
dwRdp
計算結果格納先
dwRfh
RFH レジスタ値
dwRfl
RFL レジスタ値
dwRmg
RMG レジスタ値
dwRdr
RDR レジスタ値
wAcc
加減速方式(0:直線/1:S 字)
dwRds
備
書
式
説
明
DWORD hpx_CalDecPoint(
DWORD* dwRdp,
DWORD dwRfh,
DWORD dwRfl,
DWORD dwRmg,
DWORD dwRdr,
WORD wAcc,
DWORD dwRds);
RDS レジスタ値
考
91
5.ドライバ関数
5. ドライバ関数
ドライバ関数はボードのポートを直接入出力するローレベルな関数です.入出力するデータの詳細は motionCAT series
ユーザーズマニュアル 〈運用編〉「7.デバイス資料」)も合わせて参照ください.
92
5.ドライバ関数
5.1 ドライバ関数
ドライバ関数はアプリケーションとデバイスドライバをつなぐ入出力関数「デバイスドライバ I/F 用ライブラリ」であり,Win32API 関
数として DLL ファイルで提供されています.関数の戻り値は「3.5 関数の戻り値」を参照してください.
5.2 ドライバ関数一覧
5.2.1 デバイス関係
No.
関 数 名
1
mnt520_GetMstBrdCount( )
MCAT枚数の取得
2
mnt520_GetMstBrdInfo( )
MCATデバイス情報の取得
3
mnt520_OpenMstBrd( )
MCATのオープン
4
mnt520_CloseMstBrd( )
MCATのクローズ
機
能
機
能
5.2.2 オプションポート関係
No.
関 数 名
5
mnt520_rOptPortW( )
オプションポート2バイト読出し
6
mnt520_wOptPortW( )
オプションポート2バイト書込み
5.2.3 センターデバイス関係
No.
関 数 名
機
能
7
mnt520_rCenMsts( )
センターメインステータス読出し
8
mnt520_wCenCmd( )
センターデバイスコマンド書込み
9
mnt520_rCenIsts( )
センター割込ステータス読出し
10
mnt520_rCenBuf( )
センターデバイス入出力バッファ読出し
11
mnt520_wCenBuf( )
センターデバイス入出力バッファ書込み
12
mnt520_rCenRFiFo( )
センターデバイス受信用FIFO読出し
13
mnt520_wCenSFiFo( )
センターデバイス送信用FIFO書込み
14
mnt520_rLclCycErr( )
サイクリック通信エラーフラグ読出し
15
mnt520_wLclCycErr( )
サイクリック通信エラーフラグリセット
16
mnt520_rLclInfo( )
ローカルデバイス(DIO,モーション)情報読出し
17
mnt520_wLclInfo( )
ローカルデバイス(DIO,モーション)情報書込み
18
mnt520_rLclSetInt( )
ローカルデバイス入力ポート変化フラグ設定状態読出し
19
mnt520_wLclSetInt( )
ローカルデバイス入力ポート変化フラグ設定書込み
20
mnt520_rLclnt( )
ローカルデバイス入力ポート変化フラグ読出し
21
mnt520_wLclInt( )
ローカルデバイス入力ポート変化フラグリセット
22
gu00_rCenPortW
センターデバイス指定アドレス 2 バイト読出し
23
gu00_wCenPortW
センターデバイス指定アドレス 2 バイト書込み
93
5.ドライバ関数
5.2.4 DIO モジュール(一部アナログモジュールにも使用)関係
関 数 名
No.
機
能
24
mnt520_rIoPortB( )
DIOデバイス指定ポート1バイト読出し
25
mnt520_wIoPortB( )
DIOデバイス指定ポート1バイト書込み
26
mnt520_rIoPortW( )
DIOデバイス指定ポート2バイト読出し
27
mnt520_wIoPortW( )
DIOデバイス指定ポート2バイト書込み
5.2.5 モーションモジュール関係
関 数 名
No.
機
能
28
mnt520_rPclPort( )
モーションデバイス汎用出力ポート出力状態読出し
29
mnt520_wPclPort( )
モーションデバイス汎用出力ポート出力設定書込み
30
mnt520_rPclMsts( )
モーションメインステータス読出し
31
mnt520_wPclCmd( )
モーションデバイス制御コマンド書込
32
mnt520_rPclReg( )
モーションデバイスレジスタ読出し
33
mnt520_wPclReg( )
モーションデバイスレジスタ書込
34
mnt520_RecvMultData
複数レジスタ一括受信(Cモジュールのみ)
35
mnt520_SendMultData
複数レジスタ一括送信(Cモジュールのみ)
36
mnt520_rPclMltReg
複数レジスタ一括受信(Cモジュールのみ,USBと同等仕様)
37
mnt520_wPclMltReg
複数レジスタ一括送信(Cモジュールのみ,USBと同等仕様)
5.2.6 アナログモジュール関係
関 数 名
No.
機
能
38
mnt520_rAmodAin()
アナログモジュールアナログ入力データ読出し
39
mnt520_wAmodAout()
アナログモジュールアナログ出力データ書込み
40
mnt520_rAmodAout()
アナログモジュールアナログ出力データ読出し
41
mnt520_wAmodCmd()
アナログモジュール制御コマンド書込み
42
mnt520_wAmodReg()
アナログモジュールレジスタ設定データ書込み
43
mnt520_rAmodReg()
アナログモジュールレジスタ設定データ読出し
44
mnt520_rAmodStat()
アナログモジュールステータス読出し
5.3 ドライバ関数詳細
ここでは VC++表記で説明します.
VB,VB.NET を使用される場合,データ型の対応は下表の通りです.
引数のデータ型,16 進数表記の対応
言
語
VC++
VB
VB.NET
VC#
BYTE
Byte
Byte
byte
16bit
WORD, short
Integer
Short
ushort, short
32bit
DWORD, long
Long
Integer
ulong, long
8bit
データ型
データ
例
0x0000
&H0
&H0
0x0000
0x1000
&H1000
&H1000
0x1000
94
5.ドライバ関数
5.3.1 デバイス関係
(1) mnt520_GetMstBrdCount PC に接続されているデバイス数の取得
機
能
PC に接続されている MCAT の数を取得します.
言語
VC++
引
書
DWORD mnt520_GetMstBrdCount (DWORD* dwCnt);
数
dwCnt
式
説
明
デバイスの個数
(2) mnt520_GetMstBrdInfo デバイス情報の取得
機
能
PC に接続されている MCAT のデバイス情報を取得します.
言語
VC++
引
書
DWORD mnt520_GetMstBrdInfo (DWORD* dwCnt, MCAT00INF* hInfo);
数
dwCnt
hInfo
式
説
明
デバイスの個数
デバイス情報
// デバイス情報構造体
備
考
typedef struct _HMNT520INFO {
DWORD
dwBusNumber;
DWORD
dwDeviceNumber;
DWORD
dwBaseAddress2;
DWORD
dwBaseAddress3;
DWORD
dwBaseAddress4;
DWORD
dwIrqNo;
DWORD
dwNumber;
DWORD
dwBoardID;
} HMNT520INFO, /PHMNT520INFO;
// バス番号
// デバイス番号
// ベースアドレス 2
// ベースアドレス 3
// ベースアドレス 4
// IRQ 番号
// 管理番号
// ボード ID(0~15)
(3) mnt520_OpenMstBrd デバイスのオープン
機
能
デバイス情報で指定した MCAT をオープンし,デバイスハンドルを取得します.
ここで取得したデバイスハンドルにより,MCAT を指定します.
言語
VC++
引
書
数
hDevID
hInfo
式
DWORD mnt520_OpenMstBrd (DWORD* hDevID, MCAT00INF* hInfo);
説
デバイスハンドル
デバイス情報
95
明
5.ドライバ関数
(4) mnt520_CloseMstBrd デバイスのクローズ
機
能
デバイスハンドルで指定した MCAT をクローズします.
言語
VC++
引
書
式
DWORD mnt520_CloseMstBrd (DWORD hDevID);
数
説
明
hDevID
デバイスハンドル
備
デバイスクローズ以前にアプリケーションの終了処理を行ってください.
考
5.3.2 オプションポート関係
(5) mnt520_rOptPortW オプションポート読出し
機
能
指定した MCAT の指定したアドレスのオプションポートからデータを読出します.
言語
VC++
引
書
式
DWORD mnt520_rOptPortW( DWORD hDevID, WORD wCmd, WORD* wData);
数
説
明
hDevID
デバイスハンドル
wCmd
オプションポート読出しコマンド(0202h:通信速度設定状態)
wData
オプションポートデータ
備
<通信速度設定状態>
bit3,2 00:20Mbps / 01:10Mbps / 10:5Mbps / 11:2.5Mbps
考
(6) mnt520_wOptPortW オプションポート書込み
機
能
指定した MCAT のオプションポートへデータを書込みます.
言語
VC++
引
書
DWORD mnt520_wOptPortW( DWORD hDevID, WORD wCmd, WORD wData );
数
説
hDevID
デバイスハンドル
wCmd
オプションポート書込みコマンド
wData
オプションポートデータ
備
式
考
96
明
5.ドライバ関数
5.3.3 センターデバイス関係
(7) mnt520_rCenMsts センターメインステータス読出し
機
能
デバイスハンドルで指定された MCAT のセンターメインステータスを読み出します.
言語
VC++
引
書
DWORD mnt520_rCenMsts(DWORD hDevID, WORD wReserved, WORD* wCmsts);
数
hDevID
wLine
wCmsts
式
説
明
デバイスハンドル
ライン番号(0:ライン 1,1:ライン 2)
センターメインステータス
<センターメインステータスの内容>
15
14
13
12
BBSY DBSY RBSY SBSY
11
0
10
9
RDBB TDBB
8
REF
7
0
6
5
4
3
CAER ERAE EDTE EIOE
2
1
0
IOPC BRKF CEND
bit
名称
0
データ送信用 FIFO 書き込み可能時に 1 になります.システム通信,またはデータ通信が完了して,データ送信用
CEND FIFO に次データの書き込みが可能になった時に 1 になります.本ビットのクリア方法は RENV0.bit9 の状態によりま
す.
1
BRKF ブレークフレーム受信時に 1 になります.本ビットのクリア方法は,RENV0.bit9 の状態によります.
2
IOPC
「入力変化割り込み設定」を 1 にセットした入力ポートの状態が変化した時に 1 になります.「入力ポート変化フ
ラグ」の全 256 ビットの OR 信号です.全ビットが 0 になると,このビットは 0 に戻ります.
3
EIOE
サイクリック通信エラー発生時に 1 になります.「サイクリック通信エラーフラグ」の全 64 ビットの OR 信号です.
4
EDTE データ通信エラー発生時に 1 になります.本ビットのクリア方法は,RENV0.bit9 の状態によります.
5
ERAE
ローカルデバイス側受信処理エラー発生時に 1 になります.本ビットのクリア方法は,RENV0.bit9 の状態によりま
す.
6
CAER
アプリケーションのアクセスエラーです.送信データが空のままでデータ送信コマンドを書き込む等,アプリケーション
から不適切なアクセスがあると 1 になります.本ビットのクリア方法は,RENV0.bit9 の状態によります.
8
REF
未送信の出力ポートデータがある時 1 になります.出力ポートエリアにデータを書き込むと 1 になり,全ポートへの
サイクリック通信を 2 回以上エラー無しで行った後に 0 に戻ります.
9
TDBB
データ送信用 FIFO に送信データがある時に 1 になります. データ送信用 FIFO に書き込むと 1 になり,データ送
信コマンド,または送信用 FIFO リセットコマンドを書き込んだ時に 0 に戻ります.
10
RDBB
データ受信用 FIFO に受信データがある時に 1 になります.モーションモジュール等のデータデバイスからデータを受
信すると 1 になり,アプリケーションが受信データを全て読み出すと 0 に戻ります.
説
12
SBSY サイクリック通信スタート中に 1 になります.
13
RBSY リセット処理中に 1 になります.
14
DBSY システム通信中,またはデータ通信中に 1 になります.
97
明
5.ドライバ関数
(8) mnt520_wCenCmd センターデバイスコマンド書込み
機
能
デバイスハンドルで指定された MCAT へセンターデバイスコマンドを書込みます.
言語
VC++
引
書
数
hDevID
wLine
wCcmd
説
明
デバイスハンドル
ライン番号(0:ライン 1,1:ライン 2)
センターデバイスコマンド
センターデバイスコマンド
No.
式
DWORD mnt520_wCenCmd(DWORD hDevID, WORD wLine, WORD wCcmd);
コマンド(hex)
1
無効コマンド
0000
2
ソフトウェアリセット
0100
3
送信用 FIFO リセット
0200
4
受信用 FIFO リセット
0300
5
センター割込ステータスのクリア
04##
6
エラーカウンタクリア
0600
7
全モジュールへのシステム通信
1000
8
サイクリック通信除外中の全モジュールへのシステム通信
1100
9
指定したモジュールへのシステム通信
備 考
##は割込みの種類
12##
##はモジュール ID
10 指定したモジュールの属性情報の取得
13##
##はモジュール ID
11 指定したグループへのコマンド送信
2#$$
#はグループ指定,$$はコマンド
12 サイクリック通信の開始
3000
13 サイクリック通信の停止
3100
14 データ通信
40##
15 RENV0 書込みコマンド
5500
16 RENV0 読出しコマンド
6500
17 エラーカウンタリードコマンド
6501
18 サイクリック周期レジスタリードコマンド
6502
19 受信アドレスレジスタリードコマンド
6503
98
##はモジュール ID
5.ドライバ関数
(9) mnt520_rCenIsts センター割込ステータス読出し
機
能
デバイスハンドルで指定された MCAT のセンター割込ステータスを読み出します.
言語
書
VC++
引
式
DWORD mnt520_rCenIsts(DWORD hDevID, WORD wLine, WORD* wCists);
数
説
明
15
14
13
12
11
10
9
8
7
CAE3 CAE2 CAE1 CAE0 ERA3 ERA2 ERA1 ERA0 LNRV
6
0
hDevID
デバイスハンドル
wLine
ライン番号(0:ライン 1,1:ライン 2)
wCists
センター割込ステータス
<センター割込ステータスの内容>
bit
5~0
7
名称
説
5
4
3
2
1
0
EDN5 EDN4 EDN3 EDN2 EDN1 EDN0
明
CMSTS の,EDTE=1 または ERAE=1 のエラー発生時のモジュール ID で,次回のエラー発生まで記憶され
EDN5~0
ます.
LNRV
モジュール側データ未受信時に 1 になります.
データ通信がエラーで終了した(EDTE=1)場合,モジュール側がセンターデバイスからのデータを受信出来
なかった時は 1 になり,受信出来た時は 0 になります.次回のエラー発生まで記憶されます.
11~8
モジュールが正常受信したにもかかわらず,そのデータ内容がモジュールの種類と不整合の場合,以下の
ようなコードを本ビット部分に記憶します.このコードは次回のエラー発生まで記憶されます.
ERA3~0 0001:ローカルデバイス情報エリアの I/O の設定情報と,モジュール側の I/O の組合せが異なっている場合
0010:DIO またはアナログモジュールがデータ通信を受信した時
0011:モジュールが自己の持っている受信バッファ容量以上のデータ通信を受信した時
センターデバイスに対して不正なアクセスを行った場合,以下のようなコードを本ビット部分に記憶しま
す.このコードは次回のエラー発生まで記憶されます.
15~12
CAE3~0
0001:使用モジュールなしでサイクリック通信スタートコマンドを書き込んだ時
0010:送信データを送信用 FIFO に設定しないでデータ送信スタートコマンド書き込んだ時
0011:CMSTS.DBSY=1 の時に,システム通信,またはデータ通信スタートコマンドを書込んだ時
0100:未使用モジュール扱いとなっているモジュールに対して,データ通信を行った時
99
5.ドライバ関数
(10) mnt520_rCenBuf センターデバイス入出力バッファ読出し
機
能
デバイスハンドルで指定された MCAT の入出力バッファからデータを読出します.
言語
VC++
引
書
数
hDevID
式
DWORD mnt520_rCenBuf(DWORD hDevID, WORD wLine, WORD* wCbuf);
説
明
デバイスハンドル
wLine
ライン番号(0:ライン 1,1:ライン 2)
wCbuf
センターデバイス入出力バッファデータ
センターデバイスのレジスタからのデータ読出し手順は
(1) センターデバイスコマンドを書込む
(2) 入出力バッファを読み出す
となります.
備
考
センターデバイスコマンドは以下の通りです.
RENV0 読出しコマンド
6500h
エラーカウンタリードコマンド
6501h
サイクリック周期レジスタリードコマンド 6502h
受信アドレスレジスタリードコマンド
6503h
(11) mnt520_wCenBuf センターデバイス入出力バッファ書込み
機
能
デバイスハンドルで指定された MCAT の入出力バッファへデータを書込みます.
言語
VC++
引
書
数
hDevID
説
明
デバイスハンドル
wLine
ライン番号(0:ライン 1,1:ライン 2)
wCbuf
センターデバイス入出力バッファデータ
備
センターデバイスのレジスタへのデータ書込み手順は
(1) 入出力バッファにデータを書込む
(2) センターデバイスコマンドを書込む
となります.
センターデバイスコマンドは以下の通りです.
RENV0 書込みコマンド
5500h
考
式
DWORD mnt520_wCenBuf(DWORD hDevID, WORD wLine, WORD wCbuf);
(12) mnt520_rCenRFiFo センターデバイス受信用 FIFO(1 ワード)読出し
機
能
デバイスハンドルで指定された MCAT の受信用 FIFO から 1 ワードのデータを読出します.
言語
VC++
引
書
数
hDevID
式
DWORD mnt520_rCenRFiFo(DWORD hDevID, WORD wLine, WORD* wRfifo);
説
デバイスハンドル
wLine
ライン番号(0:ライン 1,1:ライン 2)
wRfifo
受信用 FIFO から読み出されたデータ
100
明
5.ドライバ関数
(13) mnt520_wCenSFiFo センターデバイス送信用 FIFO(1 ワード)書込み
機
能
デバイスハンドルで指定された MCAT の送信用 FIFO へ 1 ワードのデータを書込みます.
言語
VC++
引
書
数
hDevID
式
DWORD mnt520_wCenSFiFo(DWORD hDevID, WORD wLine, WORD wSfifo);
説
明
デバイスハンドル
wLine
ライン番号(0:ライン 1,1:ライン 2)
wSfifo
送信用 FIFO へ書込むデータ
(14) mnt520_rLclInfo ローカルデバイス情報読出し
機
能
指定されたモジュールのローカルデバイス情報を取得します.
言語
VC++
引
書
数
hDevID
式
DWORD mnt520_rLclInfo(DWORD hDevID, WORD wLine, WORD wMid,BYTE* byData);
説
明
デバイスハンドル
wLine
ライン番号(0:ライン 1,1:ライン 2)
wMid
モジュール ID(0-63)
byData
ローカルデバイス情報
(15) mnt520_wLclInfo ローカルデバイス情報書込み
機
能
指定されたモジュールのローカルデバイス情報を書込みます.
言語
VC++
引
書
数
hDevID
式
DWORD mnt520_wLclInfo(DWORD hDevID, WORD wLine, WORD wMid,BYTE byData);
説
明
デバイスハンドル
wLine
ライン番号(0:ライン 1,1:ライン 2)
wMid
モジュール ID(0-63)
byData
ローカルデバイス情報
(16) mnt520_rLclCycErr サイクリック通信エラーフラグ読出し
機
能
指定されたモジュールのサイクリック通信エラーフラグを読み出します.
言語
VC++
引
書
DWORD mnt520_rLclCycErr(DWORD hDevID, WORD wLine, WORD wMidPrm,
WORD* wFlag);
数
hDevID
wLine
wMidPrm
wFlag
式
説
明
デバイスハンドル
ライン番号(0:ライン 1,1:ライン 2)
モジュール ID 指定パラメータ(0:MID 0~15 / 1:MID 16~31 / 2:MID 32~47 / 3:MID 49~64)
サイクリック通信エラーフラグ
101
5.ドライバ関数
(17) mnt520_wLclCycErr サイクリック通信エラーフラグリセット
機
能
指定されたモジュールのサイクリック通信エラーフラグをリセットします.
言語
VC++
引
wLine
wMidPrm
wFlag
考
式
WORD wFlag);
数
hDevID
備
書
DWORD mnt520_wLclCycErr(DWORD hDevID, WORD wLine, WORD wMidPrm,
説
明
デバイスハンドル
ライン番号(0:ライン 1,1:ライン 2)
モジュール ID 指定パラメータ(0:MID 0~15 / 1:MID 16~31 / 2:MID 32~47 / 3:MID 49~64)
サイクリック通信エラーフラグ
読み出されたエラーフラグのデータを書込むことでエラーフラグをリセットします.
(18) mnt520_rLclSetInt ローカルデバイス入力ポート変化フラグ設定状態読出し
機
能
指定したモジュールのローカルデバイス入力ポート変化フラグ設定状態を読み出します.
言語
VC++
引
書
数
hDevID
wLine
wMidPrm
式
DWORD mnt520_rLclSetInt(DWORD hDevID, WORD wLine, WORD wMidPrm, WORD*
wFlag);
説
明
デバイスハンドル
ライン番号(0:ライン 1,1:ライン 2)
モジュール ID 指定パラメータ
( 0:MID= 0- 3 / 1:MID= 4- 7 / 2:MID= 8-11 / 3:MID=12-15 /
4:MID=16-19 / 5:MID=20-23 / 6:MID=24-27 / 7:MID=28-31 /
8:MID=32-35 / 9:MID=36-39 / 10:MID=40-43 / 11:MID=44-47 /
12:MID=48-51 / 13:MID=52-55 / 14:MID=56-59 / 15:MID=60-63)
wFlag
入力ポート変化フラグ設定状態
<入力ポート変化フラグ設定データ>
15 14 13 12 11 10
MID= wMidPrm*4+3
備
9
8
MID= wMidPrm*4+2
7
6
5
MID= wMidPrm*4+1
考
ポート 3
ポート 2
ポート 1
ポート 0
102
4
3
2
1
MID= wMidPrm*4
0
5.ドライバ関数
(19) mnt520_wLclSetInt ローカルデバイス入力ポート変化フラグ設定書込み
機
能
指定したモジュールのローカルデバイス入力ポート変化フラグ設定をします.
言語
VC++
引
書
WORD wFlag);
数
hDevID
wLine
wMidPrm
wFlag
式
DWORD mnt520_wLclSetInt(DWORD hDevID, WORD wLine, WORD wMidPrm,
説
明
デバイスハンドル
ライン番号(0:ライン 1,1:ライン 2)
モジュール ID 指定パラメータ
( 0:MID= 0- 3 / 1:MID= 4- 7 / 2:MID= 8-11 / 3:MID=12-15 /
4:MID=16-19 / 5:MID=20-23 / 6:MID=24-27 / 7:MID=28-31 /
8:MID=32-35 / 9:MID=36-39 / 10:MID=40-43 / 11:MID=44-47 /
12:MID=48-51 / 13:MID=52-55 / 14:MID=56-59 / 15:MID=60-63)
入力ポート変化フラグ設定データ
(20) mnt520_rLclInt ローカルデバイス入力ポート変化フラグ読出し
機
能
指定したモジュールのローカルデバイス入力ポート変化フラグを読み出します.
言語
VC++
引
書
DWORD mnt520_rLclInt(DWORD hDevID, WORD wLine, WORD wMidPrm, WORD* wFlag);
数
hDevID
wLine
wMidPrm
wFlag
式
説
明
デバイスハンドル
ライン番号(0:ライン 1,1:ライン 2)
モジュール ID 指定パラメータ
( 0:MID= 0- 3 / 1:MID= 4- 7 / 2:MID= 8-11 / 3:MID=12-15 /
4:MID=16-19 / 5:MID=20-23 / 6:MID=24-27 / 7:MID=28-31 /
8:MID=32-35 / 9:MID=36-39 / 10:MID=40-43 / 11:MID=44-47 /
12:MID=48-51 / 13:MID=52-55 / 14:MID=56-59 / 15:MID=60-63)
ローカルデバイス入力ポート変化フラグ.
(21) mnt520_wLclInt ローカルデバイス入力ポート変化フラグリセット
機
能
指定したモジュールのローカルデバイス入力ポート変化フラグをリセットします.
言語
VC++
引
書
DWORD mnt520_wLclInt(DWORD hDevID, WORD wLine, WORD wMidPrm, WORD wFlag);
数
hDevID
wLine
wMidPrm
wFlag
式
説
明
デバイスハンドル
ライン番号(0:ライン 1,1:ライン 2)
モジュール ID 指定パラメータ
( 0:MID= 0- 3 / 1:MID= 4- 7 / 2:MID= 8-11 / 3:MID=12-15 /
4:MID=16-19 / 5:MID=20-23 / 6:MID=24-27 / 7:MID=28-31 /
8:MID=32-35 / 9:MID=36-39 / 10:MID=40-43 / 11:MID=44-47 /
12:MID=48-51 / 13:MID=52-55 / 14:MID=56-59 / 15:MID=60-63)
ローカルデバイス入力ポート変化フラグ.
103
5.ドライバ関数
(22) mnt520_rCenPortW センターデバイス指定アドレス 2 バイト読出し
機
能
デバイスハンドルで指定された MCAT の指定されたアドレスのポートから 2 バイトのデータを読出します.
言語
VC++
引
書
式
DWORD mnt520_rCenPortW( DWORD hDevID, WORD wAdrs, WORD* wData);
数
説
hDevID
デバイスハンドル
wAdrs
MCAT 内アドレス(但し奇数アドレスの指定不可)
wData
読出されたデータ
明
(23) mnt520_wCenPortW センターデバイス指定アドレス 2 バイト書込み
機
能
デバイスハンドルで指定された MCAT の指定されたアドレスのポートへ 2 バイトのデータを書込みます.
言語
VC++
引
書
式
DWORD mnt520_wCenPortW(DWORD hDevID, WORD wAdrs, WORD wData);
数
説
hDevID
デバイスハンドル
wAdrs
MCAT 内アドレス(但し奇数アドレスの指定不可)
wData
書込みデータ
明
5.3.4 DIO モジュール(一部アナログモジュールにも使用)関係
(24) mnt520_rIoPortB DIO モジュール指定ポート 1 バイト読出し
機
能
指定した DIO モジュールの指定したポートから 1 バイト読出します.
言語
書
VC++
DWORD mnt520_rIoPortB(DWORD hDevID, WORD wLine,WORD wMid, WORD wPort,
BYTE* byData);
引
数
hDevID
説
デバイスハンドル
wLine
ライン番号(0:ライン 1,1:ライン 2)
wMid
モジュール ID
wPort
DIO モジュールポート
byData
読出されたデータ
104
式
明
5.ドライバ関数
(25) mnt520_wIoPortB DIO モジュール指定ポート 1 バイト書込み
機
能
指定した DIO モジュールの指定したポートへ 1 バイト書込みます.
言語
VC++
引
書
数
hDevID
説
明
デバイスハンドル
wLine
ライン番号(0:ライン 1,1:ライン 2)
wMid
モジュール ID
wPort
DIO モジュールポート
byData
式
DWORD mnt520_wIoPortB(DWORD hDevID, WORD wLine,WORD wMid, WORD wPort,
BYTE byData);
書込むデータ
(26) mnt520_rIoPortW DIO モジュール指定ポート 2 バイト読出し
機
能
指定した DIO モジュールの指定したポートから 2 バイト読出します.
言語
書
VC++
DWORD mnt520_rIoPortW(DWORD hDevID, WORD wLine,WORD wMid, WORD wPort,
WORD* wData);
引
数
hDevID
説
式
明
デバイスハンドル
wLine
ライン番号(0:ライン 1,1:ライン 2)
wMid
モジュール ID(0-63)
wPort
DIO モジュールポート(但し奇数ポートの指定不可)
wData
読出されたデータ
(27) mnt520_wIoPortW DIO モジュール指定ポート 2 バイト書込み
機
能
指定した DIO モジュールの指定したポートへ 2 バイト書込みます.
言語
VC++
引
書
DWORD mnt520_wIoPortW(DWORD hDevID, WORD wLine, WORD wMid, WORD wPort,
WORD wData);
数
hDevID
式
説
デバイスハンドル
wLine
ライン番号(0:ライン 1,1:ライン 2)
wMid
モジュール ID(0-63)
wPort
DIO モジュールポート(但し奇数ポートの指定不可)
wData
書込むデータ
105
明
5.ドライバ関数
5.3.5 モーションモジュール関係
(28) mnt520_rPclPort モーションモジュール汎用出力ポート読出し
機
能
指定したモーションモジュールの汎用出力ポートを読出します.
言語
VC++
引
書
数
hDevID
説
明
デバイスハンドル
wLine
ライン番号(0:ライン 1,1:ライン 2)
wMid
モジュール ID(0-63)
byData
式
DWORD mnt520_rPclPort(DWORD hDevID, WORD wLine, WORD wMid, BYTE* byData);
汎用出力状態ポートデータ
[ 汎用出力状態ポートデータ ]
このポートは RENV2 レジスタ設定の初期化後有効となります.
7
6
5
4
3
ELL
GRP2
GRP1
GRP0
SVGAIN
2
1
0
SVTL
SVRST
SVON
図 5.3-1 汎用出力状態ポートのビット構成
bit
記 号
機
能
0
SVON
サーボ ON 出力状態
(‘1’で ON )
1
SVRST
サーボリセット出力状態
2
SVTL
サーボトルク制御出力状態 (‘1’で ON )
3
SVGAIN
サーボゲイン切替出力状態 (‘1’で ON )
4
GRP0
グループ設定状態 無所属 グループ:111,グループ 1:110,グループ 2:101
5
GRP1
6
GRP2
7
ELL
(‘1’で ON )
グループ 3:100,グループ 4:011,グループ 5:010
グループ 6:001,グループ 7:000
ELS 極性
( 0:A 接,1:B 接 )
表 5.3-1 汎用出力状態ポートの内容
注.IOPIB はサイクリック通信により更新されます.
従って実際の G9003 の状態が反映されるのに最大サイクリック通信の周期分の遅れが生じます.
106
5.ドライバ関数
(29) mnt520_wPclPort モーションモジュール汎用出力ポート書込み
機
能
指定したモーションモジュールの汎用出力ポートへデータを書込みます.
言語
VC++
引
書
DWORD mnt520_wPclPort(DWORD hDevID, WORD wLine, WORD wMid, BYTE byData);
数
hDevID
説
明
デバイスハンドル
wLine
ライン番号(0:ライン 1,1:ライン 2)
wMid
モジュール ID(0-63)
byData
式
汎用出力ポートデータ
[ 汎用出力ポートデータ ]
このポートは RENV2 レジスタ設定の初期化後有効となります.
7
6
5
4
3
ELL
GRP2
GRP1
GRP0
SVGAIN
2
1
0
SVTL
SVRST
SVON
図 5.3-2 汎用出力設定ポート(IOPOB)のビット構成
bit
記 号
機
0
SVON
サーボ ON 出力
1
SVRST
サーボリセット出力
2
SVTL
サーボトルク制御出力 (‘1’で ON )
3
SVGAIN
サーボゲイン切替出力 (‘1’で ON )
4
GRP0
グループ設定
5
GRP1
6
GRP2
7
ELL
能
(‘1’で ON )
(‘1’で ON )
無所属 グループ:111,グループ 1:110,グループ 2:101
グループ 3:100,グループ 4:011,グループ 5:010
グループ 6:001,グループ 7:000
ELS 極性切り替え
( 0:A 接 1:B 接 )
表 5.3-2 汎用出力ポートの内容
注.IOPOB はサイクリック通信により G9003 に反映します.
従って G9003 へ反映されるのに最大サイクリック通信周期分の遅れが生じます.
107
5.ドライバ関数
(30) mnt520_rPclMsts モーションメインステータス読出し
機
能
指定したモーションモジュールのモーションメインステータスを読出します.
言語
書
DWORD mnt520_rPclMsts(DWORD hDevID, WORD wLine, WORD wMid,
WORD* wMmsts);
VC++
引
式
数
説
明
デバイスハンドル
hDevID
wLine
ライン番号(0:ライン 1,1:ライン 2)
wMid
モジュール ID(0-63)
モーションメインステータス
wMmsts
[ モーションメインステータス ]
15
0
14
13
12
GRP2 GRP1 GRP0
11
10
9
8
7
6
5
4
0
0
0
SBSY
0
0
0
0
3
2
1
0
SEVT SERR SEND SINT
図 5.3-3 モーションメインステータス(MMSTS)のビット構成
bit
記 号
0
SINT
MMSTS の bit1,2,3 のいずれかが 1 で 1 になります.
SEND
動作停止により 1 になります.RENV1 の bit28=1 の時スター
ト時リセットされます.
または割り込みリセットコマンド(0008h)で 0 になります.
1
2
SERR
機
能
備 考
エラー停止,位置のオーバライド失敗,エンコーダ信号異常発
生により 1 になります.
REST 読み出しで 0 になります.
3
SEVT
7~4
(未定義)
8
SBSY
11~9
(未定義)
14~12
GRP2
~
GRP0
15
(未定義)
RIRQ で設定されたイベント発生により 1 になります.
RIST 読み出しで 0 になります.
常に“0”
パルス出力開始で 1 になります.動作停止で 0 になります.
常に“0”
グループ設定状態
無所属グループ:000,グループ 1:001,グループ 2:010
グループ 3:011,グループ 4:100,グループ 5:101
グループ 6:110,グループ 7:111
G9103B ではクロック同期機
能使用時に本ビットが使用で
きなくなります.
常に“0”
表 5.3-3 モーションメインステータス(MMSTS)の内容
注意.MMSTS はサイクリック通信により更新されます.
従って実際の G9003 の状態が反映されるのに最大サイクリック通信の周期分の遅れが生じます.
108
5.ドライバ関数
(31) mnt520_wPclCmd モーションモジュール制御コマンド書込み
機
能
指定したモーションモジュールへ制御コマンドを書込みます.
言語
書
VC++
引
式
DWORD mnt520_wPclCmd(DWORD hDevID, WORD wLine, WORD wMid,
WORD wMcmd);
数
hDevID
説
wLine
ライン番号(0:ライン 1,1:ライン 2)
wMid
モジュール ID(0-63)
wMcmd
明
デバイスハンドル
制御コマンド
[ スタートコマンド ]
1
スタートコマンド
RMD.b14=0 かつ停止時に書込むとスタートします.
2
残量スタートコマンド
位置決め動作を途中停止させた後に書込むと,位置決めカウンタの残パルス数分動作し
ます.
3
同時スタートコマンド
RMD.b14=1 かつ停止時,動作をスタート
コマンド名
1
2
3
4
記 号
コマンド(Hex)
内 容
FL 定速スタート
STAFL
0050
FL 定速スタート
FH 定速スタート
STAFH
0051
FH 定速スタート
加速スタート
STAUD
0053
加速スタート(加速 → FH 定速 → 減速)
残量 FL 定速スタート
CNTFL
0054
残量 FL 定速スタート
残量 FH 定速スタート
CNTFH
0055
残量 FH 定速スタート
残量加速スタート
CNTUD
0057
残量加速スタート
同時スタート(STA 出力)
CMSTA
0006
STA 出力(スレーブ内で有効)
SPSTA
002A
STA 入力代行(自軸のみ有効)
STAD
0052
FH 定速スタート後減速(G9103B のみ)
FH 定速スタート後減速
表 5.3-4 スタートコマンド
109
5.ドライバ関数
[ 速度変更コマンド ]
動作中に書込むと動作速度を変更します.停止中の書込みは無視されます.
コマンド名
記 号
コマンド(Hex)
内 容
FL 定速瞬時速度変更
FCHGL
0040
FL 定速へ瞬時速度変更
FH 定速瞬時速度変更
FCHGH
0041
FH 定速へ瞬時速度変更
FL 速度減速
FSCHL
0042
FL 速度まで減速
FH 速度加速
FSCHH
0043
FH 速度まで加速
表 5.3-5 速度変更コマンド
[ 停止コマンド ]
動作中に書込むと停止します.
コマンド名
記 号
即停止
コマンド(Hex)
内 容
STOP
0049
即停止
減速停止
SDSTP
004A
減速停止
同時停止(STP 出力)
CMSTP
0007
同時停止(STP 出力),STP 入力による停止が有効の軸を停止
表 5.3-6 停止コマンド
[ モーションコントロールコマンド ]
カウンタのリセット等の各種コントロールを行います.
コマンド名
記 号
コマンド(Hex)
NOP
0000
無効コマンド
SEND 割り込み
リセット
INTRS
0008
MMSTS.bit1(SEND)のリセット
ソフトウェア
リセット
SRST
0004
モーションデバイス(G9003)のレジスタおよびコマンドをリセットしま
す(通信関連を除く)
CUN1R
0020
CTR1(指令位置)リセット
CUN2R
0021
CTR2(機械位置)リセット
NOP コマンド
カウンタリセット
サーボ偏差カウンタ
クリア出力制御
内 容
CUN3R
0022
CTR3(汎用・偏差)リセット
SVCTRCLOUT
0024
SVCTRCL 信号の出力
SVCTRCLRST
0025
SVCTRCL 信号のリセット
PCS コマンド
PCSON
0028
PCS 信号の入力代行
カウンタラッチ
LTCH
0029
LTCH 信号の入力代行
クロック同期用エラー
カウンタリセット
CKMECR
0030
クロック同期用通信傍受エラーカウンタをリセット
(G9103B のみ)
同時停止用エラーカ
ウンタリセット
SPMECR
0031
同時停止用通信傍受エラーカウンタをリセット
(G9103B のみ)
表 5.3-7 モーションコントロールコマンド
[ プリレジスタ制御コマンド(G9103B のみ) ]
プリレジスタの制御を行います.
コマンド名
記 号
コマンド(Hex)
内 容
動作用プリレジスタキャンセル
PRECAN
0026
動作用プリレジスタ設定を無効にします.
PRCP3 キャンセル
PCPCAN
0027
PRCP3 設定を無効にします.
動作用プリレジスタシフト
PRESHF
002B
動作用プリレジスタ設定値を動作用レジスタにコピー.
コンパレータ用プリレジスタシフト
PCPSHF
002C
PRCP3 設定値を RCMP3 にコピーします.
PFCCAN
002D
PRCP3 設定と RCMP3 の設定を無効にします.
コンパレータ用レジスタキャンセル
表 5.3-8 プリレジスタ制御コマンド(G9103B のみ)
110
5.ドライバ関数
(32) mnt520_rPclReg モーションモジュールレジスタ読出し
機
能
指定したモーションモジュールの指定したレジスタからデータを読出します.
言語
VC++
引
書
DWORD*
dwReg);
数
hDevID
式
DWORD mnt520_rPclReg(DWORD hDevID, WORD wLine, WORD wMid, WORD wCmd,
説
明
デバイスハンドル
wLine
ライン番号(0:ライン 1,1:ライン 2)
wMid
モジュール ID(0-63)
wCmd
レジスタ読出しコマンド
dwReg
レジスタデータ(データ詳細は motionCAT series ユーザーズマニュアル 〈運用編〉「7.4.12 モーションデバ
イスレジスタ」)を参照してください.
コマンド名
記 号
コマンド(Hex)
RMV 読出し
RRMV
00D0
RFL 読出し
RRFL
00D1
RFH 読出し
RRFH
00D2
RUR 読出し
RRUR
00D3
RDR 読出し
RRDR
RMG 読出し
RRMG
RDP 読出し
RMD 読出し
RUS 読出し
RDS 読出し
RFA 読出し
コマンド名
記 号
コマンド(Hex)
RCTR1 読出し
RRCTR1
00E3
RCTR2 読出し
RRCTR2
00E4
RCTR3 読出し
RRCTR3
00E5
RCMP1 読出し
RRCMP1
00E7
00D4
RCMP2 読出し
RRCMP2
00E8
00D5
RCMP3 読出し
RRCMP3
00E9
RRDP
00D6
RIRQ 読出し
RRIRQ
00EC
RRMD
00D7
RLTC1 読出し
RRLTC1
00ED
RRUS
00D9
RLTC2 読出し
RRLTC2
00EE
RRDS
00DA
RDTC3 読出し
RRLTC3
00EF
RRFA
00DB
RSTS 読出し
RRSTS
00F1
RENV1 読出し
RRENV1
00DC
REST 読出し
RREST
00F2
RENV2 読出し
RRENV2
00DD
RIST 読出し
RRIST
00F3
RENV3 読出し
RRENV3
00DE
RPLS 読出し
RRPLS
00F4
RENV4 読出し
RRENV4
00DF
RSPD 読出し
RRSPD
00F5
RENV5 読出し
RRENV5
00E0
RSDC 読出し
RRSDC
00F6
RENV6 読出し
RRENV6
00E1
記 号
コマンド(Hex)
以下は G9103B のみのコマンドです.
記 号
コマンド(Hex)
PRMV 読出し
コマンド名
RPRMV
00C0
RIP 読出し
コマンド名
PRFL 読出し
RPRFL
00C1
RCIC 読出し
PRFH 読出し
RPRFH
00C2
RCI 読出し
PRUR 読出し
RPRUR
00C3
RMVY 読出し
PRDR 読出し
RPRDR
00C4
RIPY 読出し
RPRIPY
00FE
PRMG 読出し
RPRMG
00C5
RSYN 読出し
RRSYN
00FF
PRDP 読出し
RPRDP
00C6
RSYN2 読出し
RRSYN2
00EB
PRMD 読出し
RPRMD
00C7
PRCI 読出し
RPRCI
00CC
PRIP 読出し
RPRIP
00C8
PRMVY 読出し
RPRMVY
00CD
PRUS 読出し
RPRUS
00C9
PRIPY 読出し
RPRIPY
00CE
PRDS 読出し
RPRDS
00CA
RMEC 読出し
RRMEC
00CF
PRCP3 読出し
RPRCP3
00CB
表 5.3-9 モーションレジスタ読出しコマンド
111
PRIP
00D8
RRCIC
00FB
RRCI
00FC
RRMVY
00FD
5.ドライバ関数
(33) mnt520_wPclReg モーションモジュールレジスタ書込み
機
能
指定したモーションモジュールの指定したレジスタへデータを書込みます.
言語
VC++
引
書
DWORD mnt520_wPclReg(DWORD
wCmd,
DWORD dwReg);
数
hDevID
説
明
デバイスハンドル
wLine
ライン番号(0:ライン 1,1:ライン 2)
wMid
モジュール ID(0-63)
wCmd
レジスタ書込みコマンド
dwReg
式
hDevID, WORD wLine, WORD wMid, WORD
レジスタデータ(データ詳細は motionCAT series ユーザーズマニュアル 〈運用編〉「7.4.12 モーションデバ
イスレジスタ」)を参照してください.
[ モーションレジスタ書込みコマンド ]
コマンド名
記 号
コマンド(Hex)
RMV オーバライド書込み
記 号
コマンド(Hex)
WRMVOR
0080
WRMV
0090
RENV3 書込み
WRENV3
009E
RENV4 書込み
WRENV4
009F
RFL 書込み
WRFL
RFH 書込み
WRFH
0091
RENV5 書込み
WRENV5
00A0
0092
RENV6 書込み
WRENV6
00A1
RUR 書込み
RDR 書込み
WRUR
0093
RCTR1 書込み
WRCTR1
00A3
WRDR
0094
RCTR2 書込み
WRCTR2
00A4
RMG 書込み
WRMG
0095
RCTR3 書込み
WRCTR3
00A5
RDP 書込み
WRDP
0096
RCMP1 書込み
WRCMP1
00A7
RMD 書込み
WRMD
0097
RCMP2 書込み
WRCMP2
00A8
RUS 書込み
WRUS
0099
RCMP3 書込み
WRCMP3
00A9
RDS 書込み
WRDS
009A
RIRQ 書込み
WRIRQ
00AC
RFA 書込み
WRFA
009B
移動量付 FL 定速スタート
RMSTFL
0058
RENV1 書込み
WRENV1
009C
移動量付 FH 定速スタート
RMSTFH
0059
RENV2 書込み
WRENV2
009D
移動量付加速スタート
RMSTUD
005B
記 号
コマンド(Hex)
WPRCP3
00BB
WRIP
0098
RMV 書込み
コマンド名
以下は G9103B のみのコマンドです.
コマンド名
記 号
コマンド(Hex)
コマンド名
PRMV 書込み
WPRMV
00B0
PRCP3 書込み
PRFL 書込み
WPRFL
00B1
RIP 書込み
PRFH 書込み
WPRFH
00B2
RCI 書込み
WRCI
008C
PRUR 書込み
WPRUR
00B3
RMVY 書込み
WRMVY
008D
PRDR 書込み
WPRDR
00B4
RIPY 書込み
WPRIPY
008E
PRMG 書込み
WPRMG
00B5
RSYN 書込み
WRSYN
008F
PRDP 書込み
WPRDP
00B6
RSYN2 書込み
WRSYN2
00AB
PRMD 書込み
WPRMD
00B7
PRCI 書込み
WPRCI
00BC
PRIP 書込み
WPRIP
00B8
PRMVY 書込み
WPRMVY
00BD
PRUS 書込み
WPRUS
00B9
PRIPY 書込み
WPRIPY
00BE
PRDS 書込み
WPRDS
00BA
表 5.3-10 モーションレジスタ書込みコマンド
112
5.ドライバ関数
(34) mnt520_RecvMultData 複数レジスタ一括受信(C モジュールのみ)
機
能
指定したモーションモジュールからデータを一括受信します.
言語
VC++
引
書
数
説
hDevID
デバイスハンドル
wLine
ライン番号(0:ライン 1,1:ライン 2)
wMid
モジュール ID(0-63)
wSendData
送信データ列
wSendLen
送信データワード数(1~63)
wRecvData
受信データ列
wRecvLen
受信データワード数
備考
式
DWORD mnt520_wSendMultData(DWORD hDevID, WORD wLine, WORD wMid,
WORD* wSendData, WORD wSendLen, WORD* wRecvData, WORD* wRecvLen );
明
受信データは 63 ワードを超えないようにしてください.
(35) mnt520_wSendMultData 複数レジスタ一括送信(C モジュールのみ)
機
能
指定したモーションモジュールへデータを一括送信します.
言語
VC++
引
書
式
DWORD mnt520_wSendMultData(DWORD hDevID, WORD wLine,
WORD wMid, WORD* wSendData, WORD wSendLen);
数
説
hDevID
デバイスハンドル
wLine
ライン番号(0:ライン 1,1:ライン 2)
wMid
モジュール ID(0-63)
wSendData
送信データ列
wSendLen
送信データワード数(1~63)
明
(36) mnt520_rPclMltReg 複数レジスタ一括受信(C モジュールのみ,USB と同等使用)
機
能
指定したモーションモジュールの指定したレジスタへデータを書込みます.
言語
VC++
引
書
式
DWORD mnt520_rPclMltReg(DWORD hDevID, WORD wLine, WORD wMid,
WORD* wCmd, DWORD* dwReg, WORD wSize);
数
説
hDevID
デバイスハンドル
wLine
ライン番号(0:ライン 1,1:ライン 2)
wMid
モジュール ID(0-63)
wCmd
レジスタ読出しコマンドデータ列
dwReg
レジスタデータの先頭ポインタ
wSize
読出すレジスタデータ数
113
明
5.ドライバ関数
(37) mnt520_wPclMltReg 複数レジスタ一括送信(C モジュールのみ,USB と同等使用)
機
能
指定したモーションモジュールの指定したレジスタへデータを書込みます.
言語
VC++
引
書
式
DWORD mnt520_wPclMltReg(DWORD
hDevID, WORD wLine, WORD wMid,
WORD* wCmd, DWORD* dwReg, WORD wSize);
数
説
hDevID
デバイスハンドル
wLine
ライン番号(0:ライン 1,1:ライン 2)
wMid
モジュール ID(0-63)
wCmd
レジスタ書込みコマンドデータ列
dwReg
レジスタデータの先頭ポインタ
wSize
書込むレジスタデータ数
明
5.3.6 アナログモジュール関係
(38) mnt520_rAmodAin アナログモジュールアナログ入力データ読出し
機
能
指定したアナログモジュールの指定したチャンネルからアナログ入力データを読み出します.
言語
VC++
引
書
数
hDevID
式
DWORD mnt520_rAmodAin( DWORD hDevID, WORD wLine, WORD wMid,
WORD wCh, WORD* wDat,WORD* wRes);
説
明
デバイスハンドル
wLine
ライン番号(0:ライン 1,1:ライン 2)
wMid
モジュール ID(0-63)
wCh
チャンネル番号(0:CH1 / 1:CH2 / 2:CH3 / 3:CH4)
wDat
アナログ入力データ
wRes
ステータス情報(ステータス詳細は motionCAT series ユーザーズマニュアル 〈運用編〉「7.3.6 ステータ
ス」)を参照してください.
(39) mnt520_wAmodAout A モジュールアナログ出力データ書込み
機
能
指定したアナログモジュールの指定したチャンネルへ出力データを書き込みます.
言語
VC++
引
書
DWORD mnt520_wAmodAout(DWORD hDevID, WORD wLine, WORD wMid,
WORD wCh, WORD wDat, WORD*
wSts );
数
hDevID
式
説
明
デバイスハンドル
wLine
ライン番号(0:ライン 1,1:ライン 2)
wMid
モジュール ID(0-63)
wCh
チャンネル番号(0:CH1 / 1:CH2 / 2:CH3 / 3:CH4)
wDat
アナログ出力データ
wSts
ステータス情報(ステータス詳細は motionCAT series ユーザーズマニュアル 〈運用編〉「7.3.6 ステータ
ス」)を参照してください.
114
5.ドライバ関数
(40) mnt520_rAmodAout A モジュールアナログ出力データ読出し
機
能
指定したアナログモジュールの指定したチャンネルからアナログ出力データを読み出します.
言語
VC++
引
書
WORD wCh, WORD* wDat, WORD* wSts );
数
hDevID
式
DWORD mnt520_rAmodAout(DWORD hDevID, WORD wLine, WORD wMid,
説
明
デバイスハンドル
wLine
ライン番号(0:ライン 1,1:ライン 2)
wMid
モジュール ID(0-63)
wCh
チャンネル番号(0:CH1 / 1:CH2 / 2:CH3 / 3:CH4)
wDat
アナログ出力データ
wSts
ステータス情報(ステータス詳細は motionCAT series ユーザーズマニュアル 〈運用編〉「7.3.6 ステータ
ス」を参照してください.)
(41) mnt520_wAmodCmd A モジュール制御コマンド書込み
機
能
指定したアナログモジュールへ制御コマンドを書込みます.
言語
VC++
引
書
DWORD mnt520_wAmodCmd(DWORD
hDevID, WORD wLine, WORD wMid,
WORD wCmd, WORD wDat, WORD* wSts );
数
hDevID
式
説
明
デバイスハンドル
wLine
ライン番号(0:ライン 1,1:ライン 2)
wMid
モジュール ID(0-63)
wCmd
制御コマンド番号
(0:プリセット手動切り替え / 1:コンパレータラッチクリア,NOP / 2:D/A 0V 出力,連続切替実行中止)
wDat
書込みデータ
wSts
ステータス情報(ステータス詳細は motionCAT series ユーザーズマニュアル 〈運用編〉「7.3.6 ステータ
ス」を参照してください.)
115
5.ドライバ関数
(42) mnt520_wAmodReg アナログモジュールレジスタ書込み
機
能
指定したアナログモジュールのレジスタへデータを書込みます.
言語
VC++
引
書
WORD wCmd, WORD
wReg, WORD*
数
hDevID
式
DWORD mnt520_wAmodReg( DWORD hDevID, WORD wLine, WORD wMid,
wSts );
説
明
デバイスハンドル
wLine
ライン番号(0:ライン 1,1:ライン 2)
wMid
モジュール ID(0-63)
wCmd
レジスタ読出しコマンド
wReg
レジスタデータ
wSts
書込みステータス情報(ステータス詳細は motionCAT series ユーザーズマニュアル 〈運用編〉「7.3.6 ス
テータス」を参照してください.)
<アナログモジュールレジスタ書込みコマンド>
1000h:システム動作条件設定,
1100h:全コンパレータ集約動作設定,
120xh:各チャンネルコンパレータ動作設定(x=0:設定 1,1:設定 2)
13x0h:プリセットデータイベント切り替え設定(x=チャンネル番号 0~3, y=0:コンパレータ,1:DI)
備
考
14xxh, 15xxh, 16xxh:未定義
18xyh:プリセットデータ D/A 値登録(x=チャンネル番号 0~3,y=プリセットデータ番号 1~15)
19xyh:A/D コンパレータ基準値登録(x=チャンネル番号 0~3,y=0:LOW 設定,1:High 設定)
1Axyh:プリセットデータ到達時間設定(x=チャンネル番号 0~3,y=プリセットデータ番号 1~15)
1Bxyh:プリセットデータ保持時間設定(x=チャンネル番号 0~3,y=プリセットデータ番号 1~15)
1Cx0h:D/A 連続切り替え実行条件設定(x=チャンネル番号 0~3)
1Dx0h:D/A オフセット値登録(x=チャンネル番号 0~3)
1Ex0h:A/D オフセット値登録(x=チャンネル番号 0~3)
1Fxxh:未定義
116
5.ドライバ関数
(43) mnt520_rAmodReg アナログモジュールレジスタ読出し
機
能
指定したアナログモジュールのレジスタからデータを読出します.
言語
VC++
引
書
WORD wCmd, WORD*
wReg, WORD* wSts );
数
hDevID
式
DWORD mnt520_rAmodReg(DWORD hDevID, WORD wLine, WORD wMid,
説
明
デバイスハンドル
wLine
ライン番号(0:ライン 1,1:ライン 2)
wMid
モジュール ID(0-63)
wCmd
レジスタ読出しコマンド
wReg
レジスタデータ
wSts
読出しステータス情報(ステータス詳細は motionCAT series ユーザーズマニュアル 〈運用編〉「7.3.6 ス
テータス」を参照してください.)
<アナログモジュールレジスタ読出しコマンド>
3000h:システム動作条件設定,
3100h:全コンパレータ集約動作設定,
320xh:各チャンネルコンパレータ動作設定(x=0:設定 1,1:設定 2)
33xyh:プリセットデータイベント切り替え設定(x=チャンネル番号 0-3,y=0:コンパレータ,1:DI)
備
考
34xxh, 35xxh, 36xxh:未定義
37xxh:予約(使用不可)
38xyh:プリセットデータ D/A 値登録 (x=チャンネル番号 0-3,y=プリセットデータ番号 1~15)
39xyh:A/D コンパレータ基準値登録(x=チャンネル番号 0-3,y=0:LOW 設定,1:High 設定)
3Axyh:プリセットデータ到達時間(x=チャンネル番号 0~3,y=プリセットデータ番号 1~15)
3Bxyh:プリセットデータ保持時間(x=チャンネル番号 0~3,y=プリセットデータ番号 1~15)
3Cx0h:プリセットデータ連続出力条件設定(x=チャンネル番号 0~3)
3Dx0h:D/A オフセット値登録(x=チャンネル番号 0~3)
3Ex0h:A/D オフセット値登録(x=チャンネル番号 0~3)
3Fxxh:未定義
(44) mnt520_rAmodStat アナログモジュールステータス読出し
機
能
指定したアナログモジュールのレジスタからデータを読出します.
言語
VC++
引
書
DWORD mnt520_rAmodStat(DWORD hDevID, WORD wLine, WORD
wSts );
数
hDevID
式
説
wMid,
WORD*
明
デバイスハンドル
wLine
ライン番号(0:ライン 1,1:ライン 2)
wMid
モジュール ID(0-63)
wSts
読出しステータス情報(ステータス詳細は motionCAT series ユーザーズマニュアル 〈運用編〉「7.3.6 ス
テータス」を参照してください.)
備
考
117
6.ポート資料
6. ポート資料
本章はデバイスドライバ等作成される際の参考にしてください.
118
6.ポート資料
6.1 ポート表
HPCI-MCAT520M,HPCIe-MCAT620M,HCPCI-MNT720M のアドレスマップ(メモリマップ)は同じです.
Address
BAR
区分
読込み(INP)
内
書込み(OUT)
(Hex)
呼称
0000
CMSTS センターメインステータス(15- 0)
容
呼称
内
CCMD
コマンド(15- 0)
0002
CISTS
0004
CBUF
0006
容
センター割込ステータス(15- 0)
-
Reserved
入出力バッファ IN(15- 0)
CBUF
入出力バッファ OUT(15- 0)
RFIFO
データ受信 FIFO(15- 0)
SFIFO
データ送信 FIFO(15- 0)
-
Reserved
-
Reserved
0008
G9001A ~
0077
#1
0078
DINFO
ローカルデバイス情報(78-B7)
DINFO
ローカルデバイス情報(78-B7)
ライン 1
00B8
IOERR
サイクリック通信エラーフラグ(B8-BF)
IOERR
サイクリック通信エラーフラグ(B8-BF)
00C0
IINT
入力ポート変化フラグ設定状態(C0-DF)
IINT
入力ポート変化フラグ設定(C0-DF)
00E0
IRES
入力ポート変化フラグ(E0-FF)
IRES
入力ポート変化フラグリセット(E0-FF)
0100
DATA
ポートデータ IN(100-1FF)
DATA
ポートデータ OUT(100-1FF)
0200
CMSTS センターメインステータス(15- 0)
CCMD
コマンド(15- 0)
0202
CISTS
センター割込ステータス(15- 0)
-
Reserved
0204
CBUF
入出力バッファ IN(15- 0)
CBUF
入出力バッファ OUT(15- 0)
0206
RFIFO
データ受信 FIFO(15- 0)
SFIFO
データ送信 FIFO(15- 0)
-
Reserved
-
Reserved
BAR#
0208
G9001A ~
0277
#2
0278
DINFO
ローカルデバイス情報(78-B7)
DINFO
ローカルデバイス情報(78-B7)
ライン 2
02B8
IOERR
サイクリック通信エラーフラグ(B8-BF)
IOERR
サイクリック通信エラーフラグ(B8-BF)
02C0
IINT
入力ポート変化フラグ設定状態(C0-DF)
IINT
入力ポート変化フラグ設定(C0-DF)
02E0
IRES
入力ポート変化フラグ(E0-FF)
IRES
入力ポート変化フラグリセット(E0-FF)
0300
DATA
ポートデータ IN(100-1FF)
DATA
ポートデータ OUT(100-1FF)
-
Reserved
0000
0002
BAR& オプション
ポート
DIN
DOUT
マスターボード汎用入力状態
(J1: MDR14)(注)
マスターボード汎用出力状態(注)
DOUT
マスターボード汎用出力設定
(J1: MDR14)(注)
0004
STS
G9001A ステータス
-
Reserved
0006
SPD
通信速度設定状態
-
Reserved
0008
INTE
PCI 割込許可状態
INTE
PCI 割込許可
000A
INTS
PCI Bus 割込ステータス
-
Reserved
0010
BID
ボード ID 設定状態
-
Reserved
0012
BCOD
Board Code ‘MNT520_ _’
-
Reserved
BAR:ベースアドレス
#:HPCI-MCAT520M, HCPCI-MNT720M は 1, HPCIe-MCAT620M は 2
&:HPCI-MCAT520M, HCPCI-MNT720M は 2, HPCIe-MCAT620M は 3
注:HPCI-MCAT520M,HPCIe-MCAT620M には DIN, DOUT はありません.
表 6.1-1 ボードアドレス
119
6.ポート資料
6.2 オプションポート
オプションポートはマスターボード全体に 1 組おかれています.
オプションポートから
データの読み出しは mnt520_rOptPortW( )
・・・ 2 バイトデータ読み出し
データの書込みは mnt520_wOptPortW( )
・・・ 2 バイトデータ書込み
を使用します.
6.2.1 マスターボード汎用入力ポート(HCPCI-MNT720M のみ)
BAR3+00H:DIN (Read only)
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
IN4
IN3
IN2
IN1
1
0
0
0
0
0
図 6.2-1 マスターボード汎用入力ポートのビット構成
bit
記号
機
3-0
IN4-1
汎用入力状態 ON で”1“
能
備
15-4
(未定義)
常に“0”
考
表 6.2-1 マスターボード汎用入力ポートの内容
6.2.2 マスターボード汎用出力設定ポート(HCPCI-MNT720M のみ)
BAR3+02H:DOUT (Read/Write)
15
14
13
12
11
10
9
8
7
6
5
4
3
0
0
0
0
0
0
0
OUT4 OUT3 OUT2 OUT1
0
0
0
0
0
2
図 6.2-2 マスターボード汎用出力設定及び出力状態確認ポートのビット構成
bit
記号
機
能
備
3-0
OUT4-1
汎用出力設定“1”で ON,汎用出力状態 ON で”1“
15-4
(未定義)
考
書込みした値が読めます
表 6.2-2 マスターボード汎用出力設定及び出力状態確認ポートの内容
6.2.3 G9001A ステータス
BAR3+04H:STS (Read only)
15-12
11
10
9
8
7~4
3
2
1
0
0
2MCRY
0
1MSYN
1MERF
1MERR
1MCRY
2MSYN
2MERF
2MERR
図 6.2-3 G9001A ステータス確認ポートのビット構成
bit
記号
機
能
備
8,0
xMCRY
1:信号ライン信号検出で一定時間
9,1
xMERR
1:異常フレーム受信時と,無応答時に一定時間
10,2
xMERF
1:エラー応答フレーム受信時一定時間 L レベル
11,3
xMSYN
サイクリック周期毎に反転
表 6.2-3 G9001A ステータス確認の内容
120
考
6.ポート資料
6.2.4 G9001A 通信速度設定状態
BAR3+06H:SPD(Read Only)
15
14
13
12
11
10
9
8
7
6
5
4
3
0
0
0
0
0
0
0
0
SPD0 SPD1 DSW2 DSW1
0
0
0
0
2
1
0
図 6.2-4 G9001A 通信速度設定状態のビット構成
bit
記号
機
能
0
DSW1
通信設定 SW bit0 ON で "1"
1
DSW2
通信設定 SW bit1 ON で "1"
3,2
SPD1,0
通信設定 bit 読み出し ON で"1" 00:20Mbps,10:10Mbps,01:5Mbps,11:2.5Mbps
表 6.2-4 G9001A 通信速度設定確認ポートの内容
6.2.5 PCI 割込許可
BAR3+08H:INTE(Read/Write)
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
0
0
INTE
0
0
0
0
0
図 6.2-5 PCI 割込許可設定ポートのビット構成
bit
記号
機
0
INTE
PCIBus への割込を許可します.“1”で許可,“0”
で禁止.
(割込要因は G9001A に依ります)
能
備
15-1
(未定義)
考
Windows 版ソフトウェアではサポートしてい
ません.
書込みした値が読めます
表 6.2-5 PCI 割込許可設定ポートの内容
6.2.6 PCI 割込ステータスポート
BAR3+0AH:INTS (Read only)
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
INTS2 INTS1
0
0
0
0
0
図 6.2-6 PCI 割込ステータスポートのビット構成
bit
記号
機
0
INTS1
“1”で Line1 から PCIBus への割込が発生していることを示します.
能
備
1
INTS2
“1”で Line2 から PCIBus への割込が発生していることを示します
15-2
(未定義)
常に“0”
表 6.2-6 PCI 割込ステータスポートの内容
121
考
0
6.ポート資料
6.2.7 ボード ID 確認ポート
BAR3+10H:BID (Read only)
15
14
13
12
11
10
9
8
7
6
5
4
3
0
0
0
0
0
0
0
0
BID4 BID3 BID2 BID1
0
0
0
0
2
1
0
図 6.2-7 ボード ID 確認ポートのビット構成
bit
記号
機
能
3-0
BID4-1
基板上のボード ID 設定ロータリ SW の状態が読み出せます.
15-4
(未定義)
常に"0"
表 6.2-7 モジュール ID 読出(ボード ID)の内容
6.2.8 ボードコード確認ポート
BAR3+12H..17:BCOD (Read only)
アドレス
データ
内容
+12H
4E4D H
N,M
+14H
5254 H
52,T
+16H
0000 H
_,0
備
考
表 6.2-8 ボードコード確認ポートの内容
6.3 PCI コンフィグレーションレジスタ
HPCI-MCAT520M と HCPCI-MNT720M の PCI コンフィギュレーションレジスタの情報が必要な場合は別途ご相談くださ
い.
6.4 PCI アドレス空間
ベースアドレス
ターゲット
空間
Bus 幅
BAR2
#1G9001A
512 Byte
16bit
BAR2+200h
#2G9001A
512 Byte
16bit
BAR3
オプションポート
16 Byte
16bit
BAR:ベースアドレス
表 6.4-1 PCI アドレス空間
122
備 考