モーション制御用省配線システム 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 備 考
© Copyright 2024 ExpyDoc