YA7089-0/3 RemoteI/O & RemoteMotion センターボード(PCI) Nippon Pulse Motor Co., Ltd. YA7089-0/3 「ご使用に際して」 ●弊社以外から購入の場合 弊社以外から製品を購入された場合の保証につきましては、購入先にお問い合わせください。 ●保証期間 保証期間は、製品をご指定の場所に納入後、一年間と致します。 ●保証範囲 本書に従った正常な使用状態のもとで、保証期間内に故障が発生した場合は、無償で修理を致します。 但し、保証期間内であっても、故障の原因が次のいずれかに該当する場合は、無償修理の対象外とさせ て頂きます。 ①当社又は当社が指定した者以外による改造又は修理に起因する場合 ②納品後の落下、運送上での損傷に起因する場合 ③製品の部品の自然劣化、摩耗又は疲労等による場合 (モータ軸受、歯車、グリス、ケーブル類等) ④当社製品の本来の使い方以外の使い方をしたことに起因する場合 ⑤火災、地震、落雷、風水害、塩害、電圧異常その他の天災又は不可抗力に起因する場合 ⑥その他、故障の原因が、当社の責とみなされない事由に起因する場合 注1)日本国外に輸出された製品に関しては、保証の対象外とさせて頂きます。 注2)無償修理は、弊社持ち込み修理のみとし、出張修理等は致しません。 注3)修理が行われた製品の保証期間は、故障前の保証期間を超えることなく、修理前の保証期間と同 一になります。 注4)ここでの保証は、製品単体の保証を意味するものであり、製品の故障等により誘発される損害は 保証の対象外とさせて頂きます。 注5)弊社の判断により、修理に代えて、交換とさせて頂く場合がございます。 ●本書は、製品に含まれる機能詳細を説明するものであり、お客様の特定目的に適合することを保証する ものではありません。 また、本取扱説明書に記載されている応用例、回路図等は参考用です。ご採用に際しては、機器・装置 の機能や安全性をご確認のうえ、ご使用ください。 ●弊社製品は、原則として、次のいずれかの用途にはご使用なさらないようお願い致します。ご使用を要 望される場合には、必ず、弊社営業部にご相談ください。 ①原子力設備、電力・ガス等の供給システム、交通機関、車両設備、各種安全装置、医療機器等の高い 信頼性・安全性を必要とされる設備 ②人命や財産に直接、危険が及ぶ可能性がある設備 ③カタログ、取扱説明書等に記載のない条件や環境での使用 ●弊社製品の故障により人命や財産に重大な損害が及ぼす可能性のある用途にご使用する場合には、冗長 設計等により、必ず高い信頼性・安全性を確保してご使用ください。 Motionnet センターボード(PCI) PPCI-L112 ローレベル DLL サンプル 目 YA7089-0/3 次 1.はじめに .............................................................................. 1 2.仕様 .................................................................................. 1 2-1.動作 OS ......................................................................... 1 2-2.開発環境 ........................................................................ 1 2-3.制限事項 ........................................................................ 1 3.構成 .................................................................................. 1 4.リファレンス .......................................................................... 2 4-1.関数一覧 ........................................................................ 2 4-1-1.デバイスアクセス基本関数(Ope900X.cpp, Ope900X.bas) ......................... 2 4-1-2.モーションデバイス用複合関数(Func9003.cpp, Func9003.bas) .................... 2 4-1-3.モーションデバイス用内部計算(Calc9003.cpp, Calc9003.bas) .................... 2 4-1-4.LowLevelDLL 関数(MotionNET.DLL) ............................................ 2 4-1-5.LowLevelDLL 関数(PCI_L112.DLL) ............................................. 2 4-1-6.VB ビット演算用 DLL(VBUtil.DLL) ............................................... 3 4-2.関数リファレンス ................................................................ 4 4-2-1.デバイスアクセス基本関数(Ope900X.cpp, Ope900X.bas) ......................... 4 4-2-1-1.Reset9001 ........................................................... 4 4-2-1-2.SystemComm .......................................................... 5 4-2-1-3.StartIOComm ......................................................... 6 4-2-1-4.WriteLocalData ...................................................... 7 4-2-1-5.ReadLocalData ....................................................... 8 4-2-1-6.Write9003Register ................................................... 9 4-2-1-7.Read9003Register ................................................... 10 4-2-1-8.Write9003Command ................................................... 11 4-2-2.モーションデバイス用複合関数(Func9003.cpp, Func9003.bas) ................... 12 4-2-2-1.MNET9003SetSpeed ................................................... 12 4-2-2-2.MNET9003Inc ........................................................ 13 4-2-2-3.MNET9003Abs ........................................................ 14 4-2-2-4.MNET9003Continue ................................................... 15 4-2-2-5.MNET9003Home ....................................................... 16 4-2-2-6.MNET9003GetSpeed ................................................... 17 4-2-2-7.MNET9003GetBitData ................................................. 18 4-2-3.モーションデバイス用内部計算(Calc9003.cpp, Calc9003.bas) ................... 19 4-2-3-1.SelectMg ........................................................... 19 4-2-3-2.SetSpeedData ....................................................... 20 4-2-4.LowLevelDLL 関数(MotionNET.DLL) ........................................... 21 4-2-4-1._mnet_write_mem (MNET_write_mem) .................................... 21 - C1 - RemoteI/O & RemoteMotion Motionnet センターボード(PCI) PPCI-L112 ローレベル DLL サンプル YA7089-0/3 4-2-4-2._mnet_read_mem (MNET_read_mem) ...................................... 22 4-2-4-3._mnet_set_ring config (PPCIL112SetCommSpeed) ........................ 23 4-2-5.LowLevelDLL 関数(PCI_L112.DLL) ............................................ 24 4-2-5-1._l112_open (PPCIL112Open).......................................... 24 4-2-5-2._l112_close (PPCIL112Close) ........................................ 25 4-2-5-3._l112_lio_read (PPCIL112PioRead) .................................... 26 4-2-5-4._l112_lio_write (PPCIL112PioWrite) .................................. 27 4-2-5-5._l112_lio_read_output (PPCIL112PioReadOutput) ...................... 28 4-2-6.VB ビット演算用 DLL(VBUtil.DLL) .............................................. 29 4-2-6-1.Shift32 ............................................................ 29 4-2-6-2.Shift16 ............................................................ 30 4-2-6-3.LtoS ............................................................... 31 4-3.データ ......................................................................... 32 4-3-1.構造体 ................................................................... 32 4-3-1-1.速度データ構造体 ................................................... 32 4-3-1-2.ビットデータ取得用構造体............................................ 33 4-3-1-3.G9003 レジスタデータ用構造体 ........................................ 35 4-3-2.データ定義 ............................................................... 36 4-3-2-1.通信速度設定 ....................................................... 36 4-3-2-2.G9001A アドレス ..................................................... 36 4-3-2-3.ローカルデバイスデータ選択.......................................... 36 4-3-2-4.スタートモード選択 ................................................. 37 4-3-2-5.動作方向選択 ....................................................... 37 4-3-2-6.モーションデバイス基準クロック ...................................... 37 4-3-2-7.モーションデバイス G9003 コマンド .................................... 37 4-3-2-8.エラーコード ....................................................... 38 5.サンプルプログラムの使用法 ........................................................... 39 5-1.操作手順など ................................................................... 39 5-1-1.準備 ..................................................................... 39 5-1-2.操作 ..................................................................... 39 5-2.サンプル使用についてのQ&A.................................................... 40 - C2 - RemoteI/O & RemoteMotion Motionnet センターボード(PCI) PPCI-L112 ローレベル DLL サンプル YA7089-0/3 1.はじめに このたびは、超高速シリアル通信システムMotionnetシリーズのセンターボードをお求めい ただきまして、ありがとうございます。 本取扱説明書は、Motionnet PCI センターボード PPCI-L112 の LowLevel の DLL を使用したサンプルプ ログラムについて解説しております。ご利用にあたっては弊社デバイス G9000 シリーズの各取扱説明書 を参照ください。 2.仕様 2-1.動作 OS WindowsXP, Windows2000 2-2.開発環境 VisualC++ 6.0, Visual Basic 6.0 2-3.制限事項 (1) アクセス方法を示すサンプルという主眼から、不正データや指令前の状態確認、他のエラーチェ ックは一部省いております。 (2) 本 DLL 自体は複数枚のメインボードの使用にも対応しておりますが、便宜上サンプルプログラム での使用可能なメインボード枚数は 1 枚となっております。 (3)モーションデバイスに関しては標準的な速度設定に対象を絞っています。具体的には PCL デバイス G9003 のチップ内演算の制限から、加減速動作において減速時間が加速時間の2倍以上の設定には 対応しておりません。 この制限を越えた加減速設定を行いたい場合は、減速開始ポイントおよび FH 補正値をソフト計算し 設定する必要があります。(詳細については G9003 の取扱説明書を参照下さい) 3.構成 プログラム(ソース)の構成は、次になります。 分類 アプリケーションレベル デバイスアクセス基本関数 モーションデバイス用複合関数 モーションデバイス用内部演算 LowLevelDLL 関数 G9003 コマンド定義 その他 - 1 - VC ファイル名 PPCIL112Dlg.cpp Ope900X.cpp Func9003.cpp Calc9003.cpp MotionNET.DLL PCI_L112.dll G9003.h - VB ファイル名 FrmMain.frm Ope900X.bas Func9003.bas Calc9003.bas G9003.bas VBUtil.DLL, VBUtil.bas 内容 OnClickXX, ローカルデータ R/W, G9003 レジスタ R/W Inc 移動,Abs 移動,Org 移動,. レジスタデータ計算,設定など アドレス指定 R/W, パラレルポート, ボードオープン/クローズ ビット演算用 DLL RemoteI/O & RemoteMotion Motionnet センターボード(PCI) PPCI-L112 ローレベル DLL サンプル YA7089-0/3 4.リファレンス 4-1.関数一覧 4-1-1.デバイスアクセス基本関数(Ope900X.cpp, Ope900X.bas) 1 2 3 4 5 6 7 8 関数名 Reset9001 SystemComm StartIOComm WriteLocalData ReadLocalData Write9003Register Read9003Register Write9003Command 内容 センターデバイス G9001A リセット システム通信 I/O(サイクリック)通信スタート ローカルデバイスへのデータ書き込み ローカルデバイスからデータ読み出し モーションデバイス G9003 のレジスタ書き込み モーションデバイス G9003 のレジスタ読み出し モーションデバイス G9003 へのコマンド書き込み 4-1-2.モーションデバイス用複合関数(Func9003.cpp, Func9003.bas) 1 2 3 4 5 6 7 関数名 MNET9003SetSpeed MNET9003Inc MNET9003Abs MNET9003Continue MNET9003Home MNET9003GetSpeed MNET9003GetBitData 内容 速度設定 Inc 移動 Abs 移動 連続移動 原点復帰移動 現在速度取得 ビットデータ取得 4-1-3.モーションデバイス用内部計算(Calc9003.cpp, Calc9003.bas) 1 2 関数名 SelectMg SetSpeedData 内容 速度倍率選択 速度,加減速度設定データ計算, レジスタ設定 4-1-4.LowLevelDLL 関数(MotionNET.DLL) 1 2 3 関数名 (VB 関数名) _mnet_write_mem(MNET_write_mem) _mnet_read_mem(MNET_read_mem) _mnet_set_ring_config(PPCIL112SetCommSpeed) 内容 センターデバイス G9001A の指定アドレスにデータ書き込み センターデバイス G9001A の指定アドレスのデータ読み出し 通信速度の設定 4-1-5.LowLevelDLL 関数(PCI_L112.DLL) 1 2 3 4 5 - 2 - 関数名 (VB 関数名) _l112_open(PPCIL112Open) _l112_close(PPCIL112Close) _l112_lio_read(PPCIL112PioRead) _l112_lio_write(PPCIL112PioWrite) _l112_lio_read_output(PPCIL112PioReadOutput) 内容 ボードオープン ボードクローズ パラレル入力ポート読み出し パラレル出力ポート書き込み パラレル出力ポート読み出し RemoteI/O & RemoteMotion Motionnet センターボード(PCI) PPCI-L112 ローレベル DLL サンプル YA7089-0/3 4-1-6.VB ビット演算用 DLL(VBUtil.DLL) 1 2 3 - 3 - 関数名 Shift32 Shift16 LtoS 内容 32 ビットデータシフト 16 ビットデータシフト 32 ビット->16 ビットキャスト RemoteI/O & RemoteMotion Motionnet センターボード(PCI) PPCI-L112 ローレベル DLL サンプル YA7089-0/3 4-2.関数リファレンス 4-2-1.デバイスアクセス基本関数(Ope900X.cpp, Ope900X.bas) 4-2-1-1.Reset9001 関数名 機能 書式 引数 戻り値 説明 使用例 Reset9001 センターデバイス G9001A をリセットします [VC] short Reset9001(unsigned short lineNo) [VB] Public Function Reset9001(ByVal lineNo As Integer) As Integer lineNo : ライン番号(0/1) 0 : 成功, 0 以外 : 「4-3-2-8.エラーコード」の項を参照 ・センターデバイス G9001A をリセットします [VC] Reset9001(0); [VB] Reset9001 0 ライン:0 のセンターデバイス G9001A をリセットします - 4 - RemoteI/O & RemoteMotion Motionnet センターボード(PCI) PPCI-L112 ローレベル DLL サンプル YA7089-0/3 4-2-1-2.SystemComm 関数名 機能 書式 引数 戻り値 説明 使用例 SystemComm システム通信 [VC] short SystemComm(unsigned short lineNo) [VB] Public Function SystemComm(ByVal lineNo As Integer) As Integer lineNo : ライン番号(0/1) 0 : 成功, 0 以外 : 「4-3-2-8.エラーコード」の項を参照 ・システム通信コマンドを発行します [VC] SystemComm (0); [VB] SystemComm 0 ライン:0 のシステム通信を行います - 5 - RemoteI/O & RemoteMotion Motionnet センターボード(PCI) PPCI-L112 ローレベル DLL サンプル YA7089-0/3 4-2-1-3.StartIOComm 関数名 機能 書式 引数 戻り値 説明 使用例 StartIOComm I/O 通信をスタートします [VC] short StartIOComm(unsigned short lineNo) [VB] Public Function StartIOComm (ByVal lineNo As Integer) As Integer lineNo : ライン番号(0/1) 0 : 成功, 0 以外 : 「4-3-2-8.エラーコード」の項を参照 I/O 通信スタートコマンドを発行します [VC] StartIOComm(0); [VB] StartIOComm 0 ライン:0 に I/O 通信スタートコマンドを発行します - 6 - RemoteI/O & RemoteMotion Motionnet センターボード(PCI) PPCI-L112 ローレベル DLL サンプル YA7089-0/3 4-2-1-4.WriteLocalData 関数名 機能 書式 引数 戻り値 説明 使用例 WriteLocalData ローカルデバイスのデータを書き込みます [VC] short WriteLocalData(unsigned short lineNo, unsigned short devNo, short selectData, unsigned short data) [VB] Public Function WriteLocalData(ByVal lineNo As Integer, ByVal devNo As Integer, ByVal selectData As Integer, ByVal data As Integer) As Integer lineNo : ライン番号(0/1) devNo : デバイス番号(0-63) selectData : データ種類選択 data : 書き込みデータ 0 : 成功, 0 以外 : 「4-3-2-8.エラーコード」の項を参照 ・ローカルデバイスのデータを書き込みます ・データの選択は引数 selectData で行います。 データ種類の識別子は以下のように定義されています G900X_PORT0 0 //PORT0 G900X_PORT1 1 //PORT1 G900X_PORT2 2 //PORT2 G900X_PORT3 3 //PORT3 G900X_ERRFLG 4 //I/O 通信エラーフラグ G900X_INTSET 5 //入力変化割込設定 G900X_INTFLG 6 //入力変化割込フラグ [VC] WriteLocalData(0, 5, G900X_PORT2, 0x55); [VB] WriteLocalData 0, 5, G900X_PORT2, &H55 ライン:0, デバイス:5, PORT2 に - 7 - データ: 55h を書き込みます RemoteI/O & RemoteMotion Motionnet センターボード(PCI) PPCI-L112 ローレベル DLL サンプル YA7089-0/3 4-2-1-5.ReadLocalData 関数名 機能 書式 引数 戻り値 説明 使用例 ReadLocalData ローカルデバイスのデータを読み出します [VC] short ReadLocalData(unsigned short lineNo, unsigned short devNo, short selectData, unsigned short* data) [VB] Public Function ReadLocalData(ByVal lineNo As Integer, ByVal devNo As Integer, ByVal selectData As Integer, ByRef data As Integer) As Integer lineNo : ライン番号(0/1) devNo : デバイス番号(0-63) selectData : データ種類選択 data : 読み出しデータ 0 : 成功, 0 以外 : 「4-3-2-8.エラーコード」の項を参照 ・ローカルデバイスのデータを読み出します ・データの選択は引数 selectData で行います データ種類の識別子は WriteLocalData の項を参照ください [VC] ReadLocalData(1, 45, G900X_INTFLG, &data); [VB] ReadLocalData 1, 45, G900X_INTFLG, data ライン:1, デバイス:45 の入力変化割込フラグのデータを変数 data に読み出します - 8 - RemoteI/O & RemoteMotion Motionnet センターボード(PCI) PPCI-L112 ローレベル DLL サンプル YA7089-0/3 4-2-1-6.Write9003Register 関数名 機能 書式 引数 戻り値 説明 使用例 Write9003Register モーションデバイス G9003 のレジスタ書き込み [VC] short Write9003Register(unsigned short lineNo, unsigned short devNo, unsigned short wcom, long data) [VB] Public Function Write9003Register(ByVal lineNo As Integer, ByVal devNo As Integer, ByVal wcom As Integer, ByVal data As Long) As Integer lineNo : ライン番号(0/1) devNo : デバイス番号(0-63) wcom : 書き込みコマンド data : 書き込みデータ 0 : 成功, 0 以外 : 「4-3-2-8.エラーコード」の項を参照 ・モーションデバイス G9003 のレジスタにデータを書き込みます ・書き込みコマンドは G9003 取扱説明書を参照ください ・G9003 のコマンドデータの定義は G9003.h(G9003.bas)にしてあります [VC] Write9003Register(0, 3, WRCUN1, 10000); [VB] Write9003Register 0, 3, WRCUN1, 10000 ライン:0, デバイス:3 の RCUN1 レジスタ(カウンタ 1)に,10000 を書き込みます - 9 - RemoteI/O & RemoteMotion Motionnet センターボード(PCI) PPCI-L112 ローレベル DLL サンプル YA7089-0/3 4-2-1-7.Read9003Register 関数名 機能 書式 引数 戻り値 説明 使用例 Read9003Register モーションデバイス G9003 のレジスタ読み出し [VC] short Read9003Register(unsigned short lineNo, unsigned short devNo, unsigned short rcom, long* data) [VB] Public Function Read9003Register(ByVal lineNo As Integer, ByVal devNo As Integer, ByVal rcom As Integer, ByRef data As Long) As Integer lineNo : ライン番号(0/1) devNo : デバイス番号(0-63) rcom : 読み出しコマンド data : 書き込みデータ 0 : 成功, 0 以外 : 「4-3-2-8.エラーコード」の項を参照 ・モーションデバイス G9003 のレジスタにデータを書き込みます ・読み出しコマンドについては G9003 取扱説明書を参照ください ・G9003 のコマンドデータの定義は G9003.h(G9003.bas)にしてあります [VC] Read9003Register(0, 3, RRSTS, &rsts); [VB] Read9003Register 0, 3, RRSTS, rsts ライン:0, デバイス:3 の RSTS レジスタ(拡張ステータス)を,変数 rsts に読み出します - 10 - RemoteI/O & RemoteMotion Motionnet センターボード(PCI) PPCI-L112 ローレベル DLL サンプル YA7089-0/3 4-2-1-8.Write9003Command 関数名 機能 書式 引数 戻り値 説明 使用例 Write9003Command モーションデバイス G9003 のコマンド書き込み [VC] short Write9003Command (unsigned short lineNo, unsigned short devNo, unsigned short wcom) [VB] Public Function Write9003Command (ByVal lineNo As Integer, ByVal devNo As Integer, ByVal wcom As Integer) As Integer lineNo : ライン番号(0/1) devNo : デバイス番号(0-63) wcom : コマンド 0 : 成功, 0 以外 : 「4-3-2-8.エラーコード」の項を参照 ・モーションデバイス G9003 のコマンドを書き込みます ・レジスタ書込みやレジスタ読み出しには WriteRegister, ReadRegister をご使用ください ・コマンドについては G9003 取扱説明書を参照ください ・G9003 のコマンドデータの定義は G9003.h(G9003.bas)にしてあります [VC] Write9003Command(0, 3, STAFL); [VB] Write9003Command 0, 3, STAFL ライン:0, デバイス:3 に FL 定速スタートコマンドを書き込みます - 11 - RemoteI/O & RemoteMotion Motionnet センターボード(PCI) PPCI-L112 ローレベル DLL サンプル YA7089-0/3 4-2-2.モーションデバイス用複合関数(Func9003.cpp, Func9003.bas) 4-2-2-1.MNET9003SetSpeed 関数名 機能 書式 引数 戻り値 説明 使用例 MNET9003SetSpeed 速度設定 [VC] short MNET9003SetSpeed(unsigned short lineNo, unsigned short devNo, TG9003Cmd* cmd) [VB] Public Function MNET9003SetSpeed(ByVal lineNo As Integer, ByVal devNo As Integer, ByRef cmd As TG9003Cmd) As Integer lineNo : ライン番号(0/1) devNo : デバイス番号(0-63) cmd : 速度データ構造体 0 : 成功, 0 以外 : 「4-3-2-8.エラーコード」の項を参照 ・指定したモーションデバイスに速度データを設定します ・速度等のデータは速度データ構造体のメンバーに設定します 設定したデータに基づいてレジスタ設定値が計算、設定されます [VC] TG9003Cmd cmd = {0}; // 速度データ構造体初期化 cmd.SpdL = 100; // FL 速度 : 100PPS cmd.SpdH = 3000; // FH 速度 : 3000PPS cmd.Acc = 0.3; // 加速時間 : 0.3 秒 cmd.Dec = 0.3; // 減速時間 : 0.3 秒 cmd.StartMode = STAMODE_UD; // スタートモード : 加減速 cmd.SMode = 1; // S 字有 MNET9003SetSpeed(0, 3, &cmd); // 速度設定 [VB] Dim cmd as TG9003Cmd cmd.SpdL = 100 cmd.SpdH = 3000 cmd.Acc = 0.3 cmd.Dec = 0.3 cmd.StartMode = STAMODE_UD cmd.SMode = 1 MNET9003SetSpeed 0, 3, cmd ‘/ ‘/ ‘/ ‘/ ‘/ ‘/ ‘/ ‘/ 速度データ構造体初期化 FL 速度 : 100PPS FH 速度 : 3000PPS 加速時間 : 0.3 秒 減速時間 : 0.3 秒 スタートモード : 加減速 S 字有 速度設定 ライン:0, デバイス:3 に速度データを設定します - 12 - RemoteI/O & RemoteMotion Motionnet センターボード(PCI) PPCI-L112 ローレベル DLL サンプル YA7089-0/3 4-2-2-2.MNET9003Inc 関数名 機能 書式 引数 戻り値 説明 使用例 MNET9003Inc Inc 移動指令発行 [VC] short MNET9003Inc(unsigned short lineNo, unsigned short devNo, short startMode, long amount) [VB] Public Function MNET9003Inc(ByVal lineNo As Integer, ByVal devNo As Integer, ByVal startMode As Integer, ByVal amount As Long) As Integer lineNo : ライン番号(0/1) devNo : デバイス番号(0-63) startMode : スタートモード amount :移動量 0 : 成功, 0 以外 : 「4-3-2-8.エラーコード」の項を参照 ・指定したモーションデバイスに移動指令を発行します ・速度等は事前に MNET9003SetSpeed 関数などで設定されているデータが適用されます ・当関数内では動作モードの変更、移動量の設定、スタートコマンドの発行を行っています [VC] MNET9003Inc (0, 3, STAMODE_UD 2000); // 移動量:2000 パルス,加減速 [VB] MNET9003Inc 0, 3, STAMODE_UD 2000 ‘/ 移動量:2000 パルス,加減速 ライン:0, デバイス:3 に Inc 移動指令を発行します - 13 - RemoteI/O & RemoteMotion Motionnet センターボード(PCI) PPCI-L112 ローレベル DLL サンプル YA7089-0/3 4-2-2-3.MNET9003Abs 関数名 機能 書式 引数 戻り値 説明 使用例 MNET9003Abs Abs 移動指令発行(カウンタ 1 基準) [VC] short MNET9003Abs(unsigned short lineNo, unsigned short devNo, short startMode, long pos) [VB] Public Function MNET9003Abs(ByVal lineNo As Integer, ByVal devNo As Integer, ByVal startMode As Integer, ByVal pos As Long) As Integer lineNo : ライン番号(0/1) devNo : デバイス番号(0-63) startMode : スタートモード pos :目標位置 0 : 成功, 0 以外 : 「4-3-2-8.エラーコード」の項を参照 ・指定したモーションデバイスに移動指令を発行します ・速度等は事前に MNET9003SetSpeed 関数などで設定されているデータが適用されます ・当関数内では動作モードの変更、移動量の設定、スタートコマンドの発行を行っています [VC] MNET9003Abs (0, 3, STAMODE_FL -300); //目標位置:-300 パルス, FL 定速 [VB] MNET9003Abs 0, 3, STAMODE_FL -300 ‘/ 目標位置:-300 パルス, FL 定速 ライン:0, デバイス:3 に Abs 移動指令を発行します - 14 - RemoteI/O & RemoteMotion Motionnet センターボード(PCI) PPCI-L112 ローレベル DLL サンプル YA7089-0/3 4-2-2-4.MNET9003Continue 関数名 機能 書式 引数 戻り値 説明 使用例 MNET9003Continue 連続移動指令発行 [VC] short MNET9003Continue(unsigned short lineNo, unsigned short devNo, short startMode, short direction) [VB] Public Function MNET9003Continue(ByVal lineNo As Integer, ByVal devNo As Integer, ByVal startMode As Integer, ByVal direction As Integer) As Integer lineNo : ライン番号(0/1) devNo : デバイス番号(0-63) startMode : スタートモード direction :動作方向 0 : 成功, 0 以外 : 「4-3-2-8.エラーコード」の項を参照 ・指定したモーションデバイスに移動指令を発行します ・速度等は事前に MNET9003SetSpeed 関数などで設定されているデータが適用されます ・当関数内では動作モードの変更、スタートコマンドの発行を行っています [VC] MNET9003Continue (0, 3, STAMODE_UD, DIR_MINUS); 動作方向:マイナス, 加減速 [VB] MNET9003Continue 0, 3, STAMODE_UD, DIR_MINUS ‘/動作方向:マイナス, 加減速 ライン:0, デバイス:3 にマイナス方向連続移動指令を発行します - 15 - RemoteI/O & RemoteMotion Motionnet センターボード(PCI) PPCI-L112 ローレベル DLL サンプル YA7089-0/3 4-2-2-5.MNET9003Home 関数名 機能 書式 引数 戻り値 説明 使用例 MNET9003Home 原点復帰移動指令発行 [VC] short MNET9003Home(unsigned short lineNo, unsigned short devNo, short startMode, short direction, short homeMode) [VB] Public Function MNET9003Home(ByVal lineNo As Integer, ByVal devNo As Integer, ByVal startMode As Integer, ByVal direction As Integer, ByVal homeMode As Integer) As Integer lineNo : ライン番号(0/1) devNo : デバイス番号(0-63) startMode : スタートモード direction :動作方向 homeMode : 原点復帰モード 0 : 成功, 0 以外 : 「4-3-2-8.エラーコード」の項を参照 ・指定したモーションデバイスに移動指令を発行します ・速度等は事前に MNET9003SetSpeed 関数などで設定されているデータが適用されます ・当関数内では動作モード、原点復帰モードの変更、スタートコマンドの発行を行っていま す [VC] MNET9003Home (0, 3, STAMODE_UD, DIR_MINUS, 2); [VB] MNET9003Home 0, 3, STAMODE_UD, DIR_MINUS, 2 ライン:0, デバイス:3 に原点復帰モード:2 でマイナス方向に原点復帰移動指令を発行しま す - 16 - RemoteI/O & RemoteMotion Motionnet センターボード(PCI) PPCI-L112 ローレベル DLL サンプル YA7089-0/3 4-2-2-6.MNET9003GetSpeed 関数名 機能 書式 引数 戻り値 説明 使用例 MNET9003GetSpeed 現在速度取得 [VC] short MNET9003GetSpeed(unsigned short lineNo, unsigned short devNo, double* speed) [VB] Public Function MNET9003GetSpeed(ByVal lineNo As Integer, ByVal devNo As Integer, ByRef speed As Double) As Integer lineNo : ライン番号(0/1) devNo : デバイス番号(0-63) speed : 速度データ格納 0 : 成功, 0 以外 : 「4-3-2-8.エラーコード」の項を参照 指定したモーションデバイスの現在速度を取得します [VC] MNET9003GetSpeed(0, 3, &speed); [VB] MNET9003GetSpeed 0, 3, speed ライン:0, デバイス:3 の現在速度を取得します - 17 - RemoteI/O & RemoteMotion Motionnet センターボード(PCI) PPCI-L112 ローレベル DLL サンプル YA7089-0/3 4-2-2-7.MNET9003GetBitData 関数名 機能 書式 引数 戻り値 説明 使用例 MNET9003GetBitData ビットデータ取得 [VC] short MNET9003GetBitData(unsigned short lineNo, unsigned short devNo, TG9003BitData* bit) [VB] Public Function MNET9003GetBitData(ByVal lineNo As Integer, ByVal devNo As Integer, ByRef bit As TG9003BitData) As Integer lineNo : ライン番号(0/1) devNo : デバイス番号(0-63) bit : ビットデータ取得用構造体 0 : 成功, 0 以外 : 「4-3-2-8.エラーコード」の項を参照 指定したモーションデバイスの各種ビットデータを構造体に取得します (ステータス,I/O 状態など) [VC] MNET9003GetBitData(0, 3, &bit); [VB] MNET9003GetBitData 0, 3, bit ライン:0, デバイス:3 の各種ビットデータを構造体に取得します - 18 - RemoteI/O & RemoteMotion Motionnet センターボード(PCI) PPCI-L112 ローレベル DLL サンプル YA7089-0/3 4-2-3.モーションデバイス用内部計算(Calc9003.cpp, Calc9003.bas) 4-2-3-1.SelectMg 関数名 機能 書式 引数 戻り値 説明 使用例 SelectMg 速度倍率選択 [VC] void SelectMg(double speed, unsigned long* setmg) [VB] Public Sub SelectMg(ByVal speed As Double, ByRef setmg As Long) speed : 選択基準速度 setmg : 速度倍率設定値格納 なし ・指定した速度を基に速度倍率設定値を選択します ・取得される速度倍率設定値はレジスタ設定値であり、速度倍率ではありません ・「指定の速度を含むことのできる最小限の倍率を選択」 (設定可能な速度の分解能をあげ る)という考え方を適用しています ・選択基準速度にはスタートモード : FL 定速動作の場合は FL 速度 FH 定速動作、加減速動作の場合は FH 速度 を指定します [VC] SelectMg(30000, &mg); [VB] SelectMg 30000, mg 30000PPS という速度を基準に速度倍率設定値を選択し、変数 mg に取得します - 19 - RemoteI/O & RemoteMotion Motionnet センターボード(PCI) PPCI-L112 ローレベル DLL サンプル YA7089-0/3 4-2-3-2.SetSpeedData 関数名 機能 書式 引数 戻り値 説明 使用例 SetSpeedData 速度,加減速度設定データ計算, レジスタ設定 [VC] short SetSpeedData(unsigned short lineNo, unsigned short devNo, TG9003Cmd* cmd) [VB] Public Function SetSpeedData(ByVal lineNo As Integer, ByVal devNo As Integer, ByRef cmd As TG9003Cmd) As Integer lineNo : ライン番号(0/1) devNo : デバイス番号(0-63) cmd : 速度データ構造体 0 : 成功, 0 以外 : 「4-3-2-8.エラーコード」の項を参照 速度データ構造体に設定された速度,加減速データを基にレジスタ設定値が計算/設定され ます [VC] SetSpeedData(0, 3, cmd); [VB] SetSpeedData 0, 3, cmd 速度データ構造体 cmd に設定されたデータを基にレジスタ設定値が計算/設定されます - 20 - RemoteI/O & RemoteMotion Motionnet センターボード(PCI) PPCI-L112 ローレベル DLL サンプル YA7089-0/3 4-2-4.LowLevelDLL 関数(MotionNET.DLL) 4-2-4-1._mnet_write_mem (MNET_write_mem) 関数名(VB 関数名) 機能 書式 引数 戻り値 説明 使用例 _mnet_write_mem (MNET_write_mem) センターデバイス G9001A の指定アドレスにデータを書き込み [VC] short PASCAL _mnet_write_mem(unsigned short lineNo, unsigned short offset, unsigned short data) [VB] Declare Function MNET_write_mem Lib "MotionNet.dll" Alias "_mnet_write_mem" (ByVal lineNo As Integer, ByVal offset As Integer, ByVal data As Integer) As Integer lineNo : ライン番号(0/1) offset : オフセットアドレス(0-1feh) data : 書き込みデータ 0 : 成功, 0 以外 : 「4-3-2-8.エラーコード」の項を参照 センターデバイス G9001A の指定アドレスにデータを書き込みます [VC] _mnet_write_mem (0, 0x102, 0xffff); [VB] MNET_write_mem 0, &H102, &Hffff ライン:0, アドレス:102h に - 21 - データ: ffffh を書き込みます RemoteI/O & RemoteMotion Motionnet センターボード(PCI) PPCI-L112 ローレベル DLL サンプル YA7089-0/3 4-2-4-2._mnet_read_mem (MNET_read_mem) 関数名(VB 関数名) 機能 書式 引数 戻り値 説明 使用例 _mnet_read_mem (MNET_read_mem) センターデバイス G9001A の指定アドレスのデータを読み出し [VC] short PASCAL _mnet_read_mem(unsigned short lineNo, unsigned short offset, unsigned short* data) [VB] Declare Function MNET_read_mem Lib "MotionNet.dll" Alias "_mnet_read_mem" (ByVal lineNo As Integer, ByVal offset As Integer, ByRef data As Integer) As Integer lineNo : ライン番号(0/1) offset : オフセットアドレス (0-1feh) data : 読み出しデータ 0 : 成功, 0 以外 : 「4-3-2-8.エラーコード」の項を参照 センターデバイス G9001A の指定アドレスのデータを読み出します [VC] _mnet_read_mem(0, 0x0, &data); [VB] MNET_read_mem 0, &H0, data ライン:0, アドレス:0 のデータを - 22 - 変数:data に読み出します RemoteI/O & RemoteMotion Motionnet センターボード(PCI) PPCI-L112 ローレベル DLL サンプル YA7089-0/3 4-2-4-3._mnet_set_ring config (PPCIL112SetCommSpeed) 関数名(VB 関数名) 機能 書式 引数 戻り値 説明 使用例 _mnet_set_ring_config (PPCIL112SetCommSpeed) 通信速度設定 [VC] short PASCAL _mnet_set_ring_config(unsigned short lineNo, unsigned short speed) [VB] Declare Function PPCIL112SetCommSpeed Lib "MotionNet.dll" Alias "_mnet_set_ring_config " (ByVal lineNo As Integer, ByVal speed As Integer) As Integer lineNo : ライン番号(0/1) speed : 通信速度設定 0 : 成功, 0 以外 : 「4-3-2-8.エラーコード」の項を参照 ・通信速度の設定を行います。 ・本関数実行後、センターデバイス G9001A のリセットコマンドを発行してください。 リセット完了により設定が有効になります。 ・通信速度の初期設定値は 20Mbps です。本関数を実行しなければ 20Mbps が適用されます。 [VC] _mnet_set_ring_config (0, MNET_COMMSPEED_10M); Reset9001(0); [VB] PPCIL112SetCommSpeed 0, MNET_COMMSPEED_10M Reset9001 0 ライン:0 の通信速度を 10Mbps に設定します。 - 23 - RemoteI/O & RemoteMotion Motionnet センターボード(PCI) PPCI-L112 ローレベル DLL サンプル YA7089-0/3 4-2-5.LowLevelDLL 関数(PCI_L112.DLL) 4-2-5-1._l112_open (PPCIL112Open) 関数名(VB 関数名) 機能 書式 引数 戻り値 説明 使用例 _l112_open (PPCIL112Open) ボードのオープン [VC] short PASCAL _l112_open(unsigned short* existCards); [VB] Declare Function PPCIL112Open Lib "PCI_L112.dll" Alias "_l112_open" (ByRef existCards As Integer) As Integer existCards : ボード枚数取得 0 : 成功 ・接続されている全ての PPCI-L112 ボードをオープンし、操作可能にします ・引数 existCards には接続されている PPCI-L112 の枚数が取得されます。 (1 枚のとき existCards の値は 1 になります。 existCards の値が 0 の場合は PPCI-L112 ボードはオープンされていません) [VC] _l112_open(&existCard); [VB] PPCIL112Open existCards ボードをオープンします - 24 - RemoteI/O & RemoteMotion Motionnet センターボード(PCI) PPCI-L112 ローレベル DLL サンプル YA7089-0/3 4-2-5-2._l112_close (PPCIL112Close) 関数名(VB 関数名) 機能 書式 引数 戻り値 説明 使用例 _l112_close (PPCIL112Close) ボードのクローズ [VC] short PASCAL _l112_close(); [VB] Declare Function PPCIL112Close Lib "PCI_L112.dll" Alias "_l112_close" () As Integer なし なし PPCI-L112 ボードをクローズします。 [VC] _l112_close(); [VB] PPCIL112Close システム上の PPCIL112 ボードを全てクローズします - 25 - RemoteI/O & RemoteMotion Motionnet センターボード(PCI) PPCI-L112 ローレベル DLL サンプル YA7089-0/3 4-2-5-3._l112_lio_read (PPCIL112PioRead) 関数名(VB 関数名) 機能 書式 引数 戻り値 説明 使用例 _l112_lio_read (PPCIL112PioRead) パラレル入力ポートの読み出し [VC] short PASCAL _l112_lio_read(unsigned short CardNo, unsigned char* data); [VB] Declare Function PPCIL112PioRead Lib "PCI_L112.dll" Alias "_l112_lio_read" (ByVal CardNo As Integer, ByRef data As Byte) As Integer CardNo : ボード番号(1 枚目は 0 です) data : 読み出しデータ 0 : 成功, 0 以外 : 「4-3-2-8.エラーコード」の項を参照 パラレル入力ポートを読み出します [VC] _l112_lio_read(0, &data); [VB] PPCIL112PioRead 0, data パラレル入力データを読み出します - 26 - RemoteI/O & RemoteMotion Motionnet センターボード(PCI) PPCI-L112 ローレベル DLL サンプル YA7089-0/3 4-2-5-4._l112_lio_write (PPCIL112PioWrite) 関数名(VB 関数名) 機能 書式 引数 戻り値 説明 使用例 _l112_lio_write (PPCIL112PioWrite) パラレル出力ポートの書き込み [VC] short PASCAL _l112_lio_write(unsigned short CardNo, unsigned char data) [VB] Declare Function PPCIL112PioWrite Lib "PCI_L112.dll" Alias "_l112_lio_write" (ByVal CardNo As Integer, ByVal data As Byte) As Integer CardNo : ボード番号(1 枚目は 0 です) data : 書き込みデータ 0 : 成功, 0 以外 : 「4-3-2-8.エラーコード」の項を参照 パラレル出力ポートにデータを書き込みます [VC] _l112_lio_write(0, 0xf); [VB] PPCIL112PioWrite 0, &Hf パラレル出力ポートにデータ fh を書き込みます - 27 - RemoteI/O & RemoteMotion Motionnet センターボード(PCI) PPCI-L112 ローレベル DLL サンプル YA7089-0/3 4-2-5-5._l112_lio_read_output (PPCIL112PioReadOutput) 関数名(VB 関数名) 機能 書式 引数 戻り値 説明 使用例 _l112_lio_read_output (PPCIL112PioReadOutput) パラレル出力ポートの読み出し [VC] short PASCAL _l112_lio_read_output(unsigned short CardNo, unsigned char* data); [VB] Declare Function PPCIL112PioReadOutput Lib "PCI_L112.dll" Alias "_l112_lio_read" (ByVal CardNo As Integer, ByRef data As Byte) As Integer CardNo : ボード番号(1 枚目は 0 です) data : 読み出しデータ 0 : 成功, 0 以外 : 「4-3-2-8.エラーコード」の項を参照 パラレル入力ポートを読み出します [VC] _l112_lio_read_output(0, &data); [VB] PPCIL112PioReadOutput 0, data パラレル出力データを読み出します - 28 - RemoteI/O & RemoteMotion Motionnet センターボード(PCI) PPCI-L112 ローレベル DLL サンプル YA7089-0/3 4-2-6.VB ビット演算用 DLL(VBUtil.DLL) 4-2-6-1.Shift32 VB 関数名 機能 書式 引数 戻り値 説明 使用例 Shift32 32 ビットデータのシフト [VB] Declare Function Shift32 Lib "VBUtil.dll" (ByRef src As Long, ByRef dir As Integer, ByRef num As Integer) As Long src : 元データ dir : シフト方向(0 : 右シフト, 1 : 左シフト) num : シフト桁 シフト後のデータ ・元データをシフトして返します ・シフト方向は以下のように定義しています Public Const VBUTL_SHIFT_RIGHT = 0 Public Const VBUTL_SHIFT_LEFT = 1 ・シフト桁などが不正である場合は 0 が返されますのでご注意ください [VB] src as long data as long src = &H0000FFFF& data = Shift32(src, VBUTL_SHIFT_LEFT, 16) データ src を 16 ビット左シフトします これにより data の値は &HFFFF0000& となります - 29 - RemoteI/O & RemoteMotion Motionnet センターボード(PCI) PPCI-L112 ローレベル DLL サンプル YA7089-0/3 4-2-6-2.Shift16 VB 関数名 機能 書式 引数 戻り値 説明 使用例 Shift16 16 ビットデータのシフト [VB] Declare Function Shift16 Lib "VBUtil.dll" (ByRef src As Integer, ByRef dir As Integer, ByRef num As Integer) As Integer src : 元データ dir : シフト方向(0 : 右シフト, 1 : 左シフト) num : シフト桁 シフト後のデータ ・元データをシフトして返します ・シフト方向は以下のように定義しています Public Const VBUTL_SHIFT_RIGHT = 0 Public Const VBUTL_SHIFT_LEFT = 1 ・シフト桁などが不正である場合は 0 が返されますのでご注意ください [VB] src as Integer data as Integer src = &H8000 data = Shift16(src, VBUTL_SHIFT_RIGHT, 15) データ src を 15 ビット右シフトします これにより data の値は 1 となります - 30 - RemoteI/O & RemoteMotion Motionnet センターボード(PCI) PPCI-L112 ローレベル DLL サンプル YA7089-0/3 4-2-6-3.LtoS VB 関数名 機能 書式 引数 戻り値 説明 使用例 LtoS 32 ビット->16 ビットキャスト [VB] Declare Function LtoS Lib "VBUtil.dll" (ByRef src As Long) As Integer src : 元データ キャスト後のデータ 32 ビットの元データを 16 ビットにキャストして返します [VB] src as long data as Integer src = &HFF008000& data = LtoS(src) 32 ビットデータ src を 16 ビットデータにキャストして返します これにより data の値は&H8000 となります - 31 - RemoteI/O & RemoteMotion Motionnet センターボード(PCI) PPCI-L112 ローレベル DLL サンプル YA7089-0/3 4-3.データ 4-3-1.構造体 4-3-1-1.速度データ構造体 複合関数使用時に速度、加減速度などの指定に使用します。 (Func9003.h, Func9003.bas に定義してあります) [VC] struct TG9003Cmd{ double SpdL; // FL 速度 double SpdH; // FH 速度 double Acc; // 加速時間 (秒) double Dec; // 減速時間 (秒) double SAccSect; // 加速 S 字範囲 double SDecSect; // 減速 S 字範囲 short StartMode; // 動作モード (FL/FH/加減速) short SMode; // S 字モード (0 : S 字未使用, 1 : S 字使用)}; [VB] Type TG9003Cmd SpdL As Double '/ FL 速度 SpdH As Double '/ FH 速度 Acc As Double '/ 加速時間 (秒) Dec As Double '/ 減速時間 (秒) SAccSect As Double '/ 加速 S 字範囲 SDecSect As Double '/ 減速 S 字範囲 StartMode As Integer '/ スタートモード (FL/FH/UD) SMode As Integer '/ S 字モード (0 : S 字未使用, 1 : S 字使用) End Type - 32 - RemoteI/O & RemoteMotion Motionnet センターボード(PCI) PPCI-L112 ローレベル DLL サンプル YA7089-0/3 4-3-1-2.ビットデータ取得用構造体 MNET9003GetBitData 関数で各種ビットデータを構造体に一括取得する際に使用します (Func9003.h, Func9003.bas に定義してあります) [VC] struct TG9003BitData { short svon; //SVON(MPOUT1) short almres; //ALMRES(MPOUT2) short out1; //OUT1 short out2; //OUT2 short in1; //IN1 short in2; //IN2 short svrdy; //SVRDY short in3; //IN3 short sint; //SINT(割り込み発生) short send; //SEND(動作停止) short serr; //SERR(エラー割り込み発生) short sevt; //SEVT(イベント割込み発生) short sbsy; //SBSY(BUSY) short cnd; //軸動作状態 short sdir; //動作方向 short salm; //ALM 入力 short spel; //PEL(プラスエンドリミット)入力 short smel; //MEL(マイナスエンドリミット)入力 short sorg; //ORG 入力 short sdin; //SD 入力 short ssta; //STA 入力 short sstp; //STP 入力 short semg; //EMG 入力 short spcs; //PCS 入力 short serc; //ERC 出力 short sez; //EZ 入力 short sclr; //CLR 入力 short sltc; //LTC 入力 short sinp; //INP 入力 short scp1; //コンパレータ 1 比較条件成立 short scp2; //コンパレータ 2 比較条件成立 short scp3; //コンパレータ 3 比較条件成立 }; - 33 - RemoteI/O & RemoteMotion Motionnet センターボード(PCI) PPCI-L112 ローレベル DLL サンプル YA7089-0/3 [VB] Type TG9003BitData svon As Integer '/ SVON(MPOUT1) almres As Integer '/ ALMRES(MPOUT2) out1 As Integer '/ OUT1 out2 As Integer '/ OUT2 in1 As Integer '/ IN1 in2 As Integer '/ IN2 svrdy As Integer '/ SVRDY in3 As Integer '/ IN3 sint As Integer '/ SINT(割り込み発生) send As Integer '/ SEND(動作停止) serr As Integer '/ SERR(エラー割り込み発生) sevt As Integer '/ SEVT(イベント割込み発生) sbsy As Integer '/ SBSY(BUSY) cnd As Integer '/ 軸動作状態 sdir As Integer '/ 動作方向 salm As Integer '/ ALM 入力 spel As Integer '/ PEL(プラスエンドリミット)入力 smel As Integer '/ MEL(マイナスエンドリミット)入力 sorg As Integer '/ ORG 入力 sdin As Integer '/ SD 入力 ssta As Integer '/ STA 入力 sstp As Integer '/ STP 入力 semg As Integer '/ EMG 入力 spcs As Integer '/ PCS 入力 serc As Integer '/ ERC 出力 sez As Integer '/ EZ 入力 sclr As Integer '/ CLR 入力 sltc As Integer '/ LTC 入力 sinp As Integer '/ INP 入力 scp1 As Integer '/ コンパレータ 1 比較条件成立 scp2 As Integer '/ コンパレータ 2 比較条件成立 scp3 As Integer '/ コンパレータ 3 比較条件成立 End Type - 34 - RemoteI/O & RemoteMotion Motionnet センターボード(PCI) PPCI-L112 ローレベル DLL サンプル YA7089-0/3 4-3-1-3.G9003 レジスタデータ用構造体 モーションデバイス用複合関数内部でのレジスタ設定データの計算/設定に使用します。 (Calc9003.h, Calc9003.bas に定義してあります) [VC] struct TG9003Calc { unsigned long fl; //RFL unsigned long fh; //RFH unsigned long mg; //RMG unsigned long ur; //RUR unsigned long dr; //RDR unsigned long md; //RMD unsigned long mv; //RMV unsigned long us; //RUS unsigned long ds; //RDS unsigned long dp; //RDP }; [VB] Type TG9003Calc fl As Long '/RFL fh As Long '/RFH mg As Long '/RMG ur As Long '/RUR dr As Long '/RDR md As Long '/RMD mv As Long '/RMV us As Long '/RUS ds As Long '/RDS dp As Long '/RDP End Type - 35 - RemoteI/O & RemoteMotion Motionnet センターボード(PCI) PPCI-L112 ローレベル DLL サンプル YA7089-0/3 4-3-2.データ定義 4-3-2-1.通信速度設定 通信速度設定用の識別子です (Ope900X.h, Ope900X.bas に定義してあります) 識別子 MNET_COMMSPEED_20M MNET_COMMSPEED_10M MNET_COMMSPEED_5M MNET_COMMSPEED_2_5M 値 3 2 1 0 内容 通信速度 通信速度 通信速度 通信速度 20Mbps 10Mbps 5Mbps 2.5Mbps 4-3-2-2.G9001A アドレス G9001A 内のオフセットアドレスです (Ope900X.h, Ope900X.bas に定義してあります) 識別子 G9001_CMD G9001_STS G9001_INTSTS G9001_BUF G9001_FIFO 値 0h 0h 2h 4h 6h 内容 コマンド ステータス 割込ステータス 入出力バッファ FIFO 4-3-2-3.ローカルデバイスデータ選択 WriteLocalData 関数, ReadLocalData 関数で対象のデータの指定に使用します (Ope900X.h, Ope900X.bas に定義してあります) 識別子 G900X_PORT0 G900X_PORT1 G900X_PORT2 G900X_PORT3 G900X_ERRFLG G900X_INTSET G900X_INTFLG G900X_DEVINFO G900X_PORTL G900X_PORTH - 36 - 値 0 1 2 3 4 5 6 7 10 11 内容 PORT0 PORT1 PORT2 PORT3 I/O 通信エラーフラグ 入力変化割込設定 入力変化割込フラグ デバイス情報 下位ポート(PORT1-0) 上位ポート(PORT3-2) RemoteI/O & RemoteMotion Motionnet センターボード(PCI) PPCI-L112 ローレベル DLL サンプル YA7089-0/3 4-3-2-4.スタートモード選択 モーションデバイス用複合関数で,速度設定および動作指令発行の際に指定するスタートモードを選択し ます (Func9003.h, Func9003.bas に定義してあります) 識別子 STAMODE_FL STAMODE_FH STAMODE_UD 値 50h 51h 53h 内容 スタートモード : FL 定速 スタートモード : FH 定速 スタートモード : 加減速 4-3-2-5.動作方向選択 モーションデバイス用複合関数で,動作指令発行の際に動作方向の指定が必要な場合に使用します (Func9003.h, Func9003.bas に定義してあります) 識別子 DIR_PLUS DIR_MINUS 値 0 1 内容 動作方向 : + 動作方向 : - 4-3-2-6.モーションデバイス基準クロック 速度設定値の演算に使用します (Calc9003.h, Calc 9003.bas に定義してあります) 識別子 FREQ_9003 値 40000000 内容 モーションデバイス基準クロック 4-3-2-7.モーションデバイス G9003 コマンド モーションデバイス G9003 のコマンドです 下記のファイルを参照ください。 (G9003.h, G9003.bas に定義してあります) - 37 - RemoteI/O & RemoteMotion Motionnet センターボード(PCI) PPCI-L112 ローレベル DLL サンプル YA7089-0/3 4-3-2-8.エラーコード 関数のエラーコードです (ErrorCode.h, ErrorCode.bas に定義してあります) 識別子 MNET_ERR_SET_CARDNO MNET_ERR_SET_LINENO MNET_ERR_SET_DEVNO MNET_ERR_SET_PORTNO MNET_ERR_SET_ITEM MNET_ERR_SET_VAL MNET_ERR_IOCOMM_NOT_START MNET_ERR_DATACOMM_FAILED MNET_ERR_DATACOMM_PROC MNET_ERR_DEV_NOT_MOTION MNET_ERR_M1_SET_STAMODE MNET_ERR_M1_SET_SMODE MNET_ERR_M1_SET_DIR MNET_ERR_M1_SET_ADCMTD MNET_ERR_M1_SET_SPD_DATA MNET_ERR_M1_SET_ADC_DATA MNET_ERR_M1_SET_SSECT MNET_ERR_M1_CALC_ACC_DATA MNET_ERR_M1_CALC_DEC_DATA MNET_ERR_M1_CALC_SPD_DATA - 38 - 値 100h 101h 102h 103h 104h 105h 1001h 1002h 1003h 3000h 3001h 3002h 3003h 3004h 3005h 3006h 3007h 3008h 3009h 300Ah 内容 カード番号指定エラー ライン番号指定エラー デバイス番号指定エラー ポート番号指定エラー 項目指定エラー 設定値エラー I/O 通信未スタート データ通信エラー データ通信処理エラー デバイスがモーションデバイスでない スタートモード指定エラー S 字モード指定エラー 方向指定エラー 加減速方法指定エラー 速度指定エラー 加減速度指定エラー S 字範囲指定エラー 加速レート計算結果エラー 減速レート計算結果エラー 速度計算結果エラー RemoteI/O & RemoteMotion Motionnet センターボード(PCI) PPCI-L112 ローレベル DLL サンプル YA7089-0/3 5.サンプルプログラムの使用法 5-1.操作手順など 5-1-1.準備 (1)事前に PPCI-L112 のデバイスドライバをインストールし、PPCI-L112 ボードを接続する必要があり ます。 (2)VC または VB 用のサンプルプログラムをフォルダごとコピーしてください。 5-1-2.操作 (1)サンプルプログラムを実行します。 (2)正常にボードをオープンできると VC, VB それぞれの場合共に下図のような操作ダイアログが表示さ れます。 ボタンや表示は項目ごとに分けられています。 ローカルデバイス指定 ローカルデバイスモニタ モーションデバイスモニタ センターデバイス操作 読み出しタイマー操作 センターデバイスモニタ パラレルポート操作/モニタ ローカルデバイス操作 モーションデバイス操作 (3)左上部にあるセンターデバイス操作用のリセット、システム通信、I/O 通信スタートのボタンを上 から順番にクリックします。 (4)読み出し/書き込みは左上部のデバイス指定で指定されたデバイスが対象となります。 (5)左中部の読み出しタイマースタートをクリックすることでタイマーが起動し、タイマーイベント (100ms 毎)でデータ読み出しが行われ表示されます。 指定デバイスのデバイス情報がモーションデバイスのものである場合は、モーションデバイスデー タに関しても読み出しが行われ、右側の部分に表示されます。 - 39 - RemoteI/O & RemoteMotion Motionnet センターボード(PCI) PPCI-L112 ローレベル DLL サンプル YA7089-0/3 (6)ローカルデバイスへのデータ書き込みは「設定対象データ」を選択し行います。 指定デバイスのデバイス情報がモーションデバイスのものである場合は、右側のモーションデバイ ス用の機能を使用することが可能です。 (7)モーションデバイスの操作をする際には初めに環境設定をクリックし、指定デバイスの環境設定レ ジスタにモーションデバイス自体やそれに接続するユニットに適合したデータを設定してください。 (8)パラレルポートの操作は左下部のボタンなどで行えます。 (9)ローカルデバイス、センターデバイス、パラレルポート全てのデータは、同一の読み出しタイマー 内で読み出されます。 (10)通信エラーのソフト監視は読み出し処理の中で行っているため、タイマーが起動していない間は監 視は行っておりません。 5-2.サンプル使用についてのQ&A Q1 : A1 : ローカルデバイスのポートデータを設定するにはどうしたらいいですか? WriteLocalData 関数を使用します。 たとえばライン : 0、デバイス番号 : 3 のポート番号 : 2 へのデータ : 0x33 の設定は 次のようになります。 (VC の例) WriteLocalData(0, 3, G900X_PORT2, 0x33); Q2 : A2 : ローカルデバイスのポートデータを読み出すにはどうしたらいいですか? ReadLocalData 関数を使用します。 たとえばライン : 0、デバイス番号 : 3 のポート番号 : 0 の読み出しは次のようになります。 (VC の例) ReadLocalData(0, 3, G900X_PORT0, &data); Q3 A3 : : ローカルデバイスの通信エラーフラグを読み出すにはどうしたらいいですか? ReadLocalData 関数を使用します。 たとえばライン : 0、デバイス番号 : 5 の通信エラーフラグの読み出しは次のようになりま す。 (VC の例) ReadLocalData(0, 5, G900X_ERRFLG, &data); Q4 A4 : : モーションデバイスを複合関数を使用し動作させる手順はどのようになりますか? MNET9003SetSpeed で速度データを設定した後に、MNET9003Inc や MNET9003Abs,MNET9003Continue などで動作指令を発行します。 Q5 A5 : : 軸動作を停止させるにはどうしますか? WriteCommand 関数を使用し即停止コマンドまたは減速停止コマンドなどを発行してください。 (VC の例) Write9003Command(lineNo, devNo, SDSTP, 0, 0); - 40 - //減速停止コマンド発行 RemoteI/O & RemoteMotion Motionnet センターボード(PCI) PPCI-L112 ローレベル DLL サンプル Q6 A6 : : YA7089-0/3 モーションデバイスの軸動作停止を確認するにはどうしますか? 各モーションデバイスのメインステータス(PORT0)の SEND(動作停止)ビットを確認することで 行います。 また正常停止なのか異常停止なのかは SERR(エラー割込み発生)ビットを確認することで行い、 もし SERR ビットが ON していれば REST(エラー割込み要因)レジスタを読み出すことでその原因 を調べることができます。 (このレジスタの読出しにより SERR ビットおよび REST レジスタのデータはリセットされます。 ) 複合関数使用の場合は MNET9003GetBitData で構造体に取得したビットデータのメンバーで SEND や SERR などの確認できます。 Q7 : A7 : 通信エラーの確認はどのように行いますか? センターデバイスのステータスの EIOE ビットを確認することで行います。 このビットはライン上の全 64 デバイスの I/O 通信エラーフラグの OR となっています。 このビットが ON している場合に、各ローカルデバイスの I/O 通信エラーフラグを確認すること で通信エラーとなったデバイスを特定できます。 I/O 通信エラーフラグのクリアは I/O 通信エラーフラグに 1 を書き込むことで行われます。 センターデバイスの EIOE ビットは全デバイスの I/O 通信エラーフラグが 0 になって始めてリセ ットされます。 Q8 : A8 : ローカルデバイスの入力ポートの状態が変わったことを簡単に調べることはできませんか? G9000 シリーズには入力変化割込みという機能があります。 各ローカルデバイスの各ポートに対応した入力変化割込み設定のビットを ON していれば、その 入力ポートの状態が変化することで、各ポートに対応した入力変化割込みフラグが ON します。 またセンターデバイスのステータスには通信エラーのビットと同様、全 64 デバイス×4 ポート の OR のビットが用意されています。 またこの機能はモーションデバイスに関しても有効であり、モーションデバイスのポート 0 の入力変化割込み設定を ON にすると、動作停止やエラー/イベント発生のときに入力変化割込 みフラグが ON するため、モーションデバイスの状態変化監視処理を簡略化することもできます。 Q9 : 割り込みは使用できますか? A9 : 本 DLL では LSI が発生している INT 信号の処理は行っていませんが、LSI の割り込み状態を示 すレジスタやビットは INT 信号を使う場合と同様に動作します。 それらをソフトでモニタす ることで同等の処理を実現ください。 また、本文書中で使用している「割り込みが立つ」、 「割り込みが発生する」などの表現は、 「割 り込み状態を示すステータスやビットが ON する」とご理解ください。 - 41 - RemoteI/O & RemoteMotion Motionnet センターボード(PCI) PPCI-L112 ローレベル DLL サンプル 注意 YA7089-0/3 性能、品質の向上等にともない、お断り無しに掲載事項を変更させていただく ことがありますので、あらかじめご了承ください。 日本パルスモーター株式会社 本 社 〒113-0033 東京都文京区本郷 2-16-13 電話 大阪営業所 〒552-0007 大阪市港区弁天 1-2-1-2314 電話 URL: http://www.pulsemotor.com/ 03-3813-8841(代) 06-6576-8330 FAX.03-3813-8550 FAX.06-6576-8335 2013 年 12 月発行 - 42 - RemoteI/O & RemoteMotion
© Copyright 2024 Paperzz