センターボード(PCI) - NPM 日本パルスモーター株式会社

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