STEPPING ＆ SERVO MOTOR CONTROLLER'S OPTION

MPL-36-02Ｖ2.00/USBW32
MPL-37-02Ｖ2.00/USBW64
取扱説明書 応用機能編(設計者用)(USBシリーズ用 Windowsデバイスドライバ )MCC09ユニット編

既に本製品の別冊、取扱説明書を読まれていることを前提に、より多彩な機能･仕様を解説した応用機能編です。
取扱説明書以上の内容についてはこの応用機能編を良く読んで十分に理解してください。
この応用機能編は、いつでも取り出して読めるように保管してください。

MN0323

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )はじめに
このデバイスドライバ「取扱説明書 応用機能編 」は、「USBシリーズのステッピングモータ
およびサーボモータ用コントローラ」を正しく安全に使用していただくために、ステッピングモータ、あるいはサーボモータを使った制御装置の設計を担当される方を対象に、応用機能について説明しています。
応用機能を扱うときは各コントローラの「取扱説明書」、ならびにデバイスドライバの「取扱説明書」と同様に、本デバイスドライバ「取扱説明書 応用機能編 」を良く読んで十分に理解してください。
この「取扱説明書 応用機能編 」は、いつでも取り出して読めるように保管してください。

安全設計に関するお願い■本資料に記載される技術情報は、製品の代表的動作・応用を説明するためのものであり、その使用に際して当社および第三者の知的財産権その他の権利に対する保証または実施権の許諾を行うものではありません。
■本資料に記載されている回路、ソフトウェア、およびこれらに関連する情報を使用する
場合は、お客様の機器およびシステム全体で十分に評価し、お客様の責任において適用可否を判断してください。
■半導体ならびに半導体を使用した製品は、ある確率で故障が発生したり、使用条件によっては誤動作したりする場合があります。本製品の故障または誤動作により、人身事故、火災事故、社会的な損害などを生じさせないように、お客様の責任において、お客様の機器またはシステムに必要な安全設計を行うことをお願いします。
■本製品は、一般工業向けの汎用品として設計・製造されていますので、航空機器、航空
宇宙機器、海底中継機器、原子力制御システム、輸送機器(車両、船舶等)、交通用信号
機器、防災・防犯機器、安全装置、医療機器など、人命や財産に多大な影響が予想される用途には使用しないでください。
■本製品を改造、改変、複製等しないでください。
■輸出に際しては、「外国為替および外国貿易法」など適用される輸出関連法令を遵守し、かかる法令の定めるところにより必要な手続きを行ってください。本製品または本資料に記載されている技術情報を、大量破壊兵器の開発等の目的、軍事利用の目的、その他軍事用途の目的で使用しないでください。
また、本製品を国内外の法令および規制により製造・使用・販売を禁止されている機器に使用することはできません。
■本製品の環境適合性などの詳細につきましては、必ず弊社営業窓口までお問い合わせください。ご使用に際しては、特定の物質の含有・使用を規制する RoHS 指令など適用される環境関連法令を十分調査の上、かかる法令に適合するようにご使用ください。
お客様がかかる法令を遵守しないことにより生じた損害に関して、当社は一切その責任は負いません。

-2-

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )安全に関する事項の記述方法について
本製品は正しい方法で取り扱うことが大切です。
誤った方法で使用された場合、予期しない事故を引き起こし、人身への障害や財産の損壊などの被害を被るおそれがあります。
そのような事故の多くは、危険な状況を予め知っていれば回避することができます。
そのため、このデバイスドライバ「取扱説明書 応用機能編 」では危険な状況が予想できる場合には、注意事項が記述してあります。
それらの記述は、次のようなシンボルマークとシグナルワードで示しています。
 警告

取り扱いを誤った場合に死亡、または重傷を負うおそれのある警告事項を示します。

 注意

取り扱いを誤った場合に、軽傷を負うおそれや物的損害が発生するおそれがある注意事項を示します。

御使用の前に■ USB シリーズコントローラは各軸を独立で制御できるため、各軸を以下のように呼称します。また、本書では、 *1 の製品のことをコントローラドライバと呼称します。
製品名
UC-7660
UCD-7620/A5F31DE
UCD-7621/A5F41DE
UCD-7630/A5F31Q

*1
*1
*1

1 軸目
X軸
X軸
X軸
X軸

2 軸目
Y軸
Y軸
Y軸
Y軸

3 軸目
Z軸
−
−
Z軸

4 軸目
A軸
−
−
A軸

以降、原則として X 軸についてのみ説明します。
■ 入出力仕様ならびに接続に関する取り扱いについては、各コントローラの｢取扱説明書｣をご覧ください。
■ デバイスドライバを用いた基本的な仕様については、 別冊デバイスドライバ「取扱説明書」
をご覧ください。

-3-

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )はじめに
安全設計に関するお願い
安全に関する事項の記述方法について御使用の前に

目

次

PAGE

１．概要
1-1. 特徴8２．関数リファレンス
2-1. MCC PORT アクセス関数の移行について
2-2. ユニット関数
2-2-1. A/D 変換関数
A/D データ構造体
A/D DATA 読み出し関数
A/D DATA A/D データ構造体読み出し関数
2-3. デバイス関数
2-3-1. MCC PORT アクセス関数
DRIVE DATA 32 ビット書き込み関数
DRIVE DATA1 PORT 書き込み関数
DRIVE DATA2 PORT 書き込み関数
DRIVE DATA 32 ビット読み出し関数
DRIVE DATA1 PORT 読み出し関数
DRIVE DATA2 PORT 読み出し関数
データ構造体DRIVE COMMAND データ構造体書き込み関数
DRIVE DATA データ構造体書き込み関数
DRIVE DATA データ構造体読み出し関数
データセット関数
データゲット関数
2-3-2. コマンド予約機能関数
COMREG NOT FULL WAIT 関数
DRIVE COMMAND バッファー書き込み関数
2-3-3. 円弧補間の演算関数
円弧補間短軸 PULSE 数ゲット関数
2-3-4. その他の関数
16 ビット符号なし変換関数
16 ビット符号付き変換関数
32 ビット符号なし変換関数
32 ビット符号付き変換関数
2-4. ユニット MCM 関数
2-4-1. MCM 情報の表示
AXIS MCM INFO 構造体
UNIT MCM INFO 構造体
UNIT MCM INFO READ 関数
2-4-2. MCM SPEC の設定と読み出し
AXIS MCM SPEC 構造体
UNIT MCM SPEC 構造体
UNIT MCM SPEC0 SET 関数
UNIT MCM SPEC0 GET 関数
UNIT MCM SPEC1 SET 関数
UNIT MCM SPEC1 GET 関数
UNIT MCM SPEC2 SET 関数
UNIT MCM SPEC2 GET 関数
UNIT MCM SPEC3 SET 関数
UNIT MCM SPEC3 GET 関数
2-4-3. シートのダウンロード
UNIT MCM SHEET DOWNLOAD 関数
2-4-4. RAM 領域のアクセス
UNIT MCM RAM WRITE 関数
UNIT MCM RAM READ 関数

-4-

9
10
10
10
11
12
13
13
13
14
15
16
17
18
19
20
21
22
23
24
25
25
26
27
27
28
28
29
30
31
32
32
32
33
34
35
35
36
37
38
39
42
43
45
46
48
49
49
50
50
51

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )目
2-4-5. MCM の制御
AXIS MCM START DATA 構造体
UNIT MCM START DATA 構造体
UNIT MCM START 関数
UNIT MCM FSSTOP 関数
UNIT MCM SLSTOP 関数
UNIT MCM ERROR CLR 関数
2-4-6. 状態の表示
AXIS MCM STATUS 構造体
UNIT MCM STATUS 構造体
UNIT MCM STATUS READ 関数
2-4-7. エラー状態の表示
AXIS MCM ERROR STATUS 構造体
UNIT MCM ERROR STATUS 構造体
UNIT MCM ERROR STATUS READ 関数

次

PAGE
52
52
53
54
55
56
57
58
58
59
60
63
63
64
65

３．コマンド仕様
3-1. ドライブコマンド
3-1-1. 入出力仕様の設定(1 ) HARD INITIALIZE1(2 ) HARD INITIALIZE2(3 ) HARD INITIALIZE3(4 ) HARD INITIALIZE7(5 ) HARD INITIALIZE8
3-1-2. ドライブパラメータの設定(1 ) FSPD SET(2 ) HIGH SPEED SET(3 ) LOW SPEED SET(4 ) RATE SET(5 ) SCAREA SET(6 ) SHAREA SET(7 ) DOWN PULSE ADJUST
3-1-3. ORIGIN ドライブの設定(1 ) ORIGIN SPEC SET
3-1-4. 補間ドライブの設定(1 ) CP SPEC SET
3-1-5. 直線補間ドライブの設定と実行(1 ) LONG POSITION SET(2 ) SHORT POSITION SET(3 ) MAIN STRAIGHT CP(4 ) SUB STRAIGHT CP
3-1-6. 円弧補間ドライブの設定と実行(1 ) CIRCULAR XPOSITION SET(2 ) CIRCULAR YPOSITION SET(3 ) CIRCULAR PULSE SET(4 ) MAIN CIRCULAR CP(5 ) SUB CIRCULAR CP
3-1-7. SPEED CHANGE の設定と実行(1 ) SPEED CHANGE SPEC SET(2 ) SPEED RATE CHANGE
3-1-8. INDEX CHANGE の設定と実行(1 ) INDEX CHANGE SPEC SET(2 ) INC INDEX CHANGE(3 ) ABS INDEX CHANGE(4 ) PLS INDEX CHANGE

67
67
67
69
70
71
73
74
74
75
76
77
78
79
80
81
81
83
83
85
90
91
92
93
94
99
100
101
102
103
104
104
105
106
106
107
108
109

-5-

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )目

次

3-1-9. RAM I/F の設定(1 ) RAM SPEC SET(2 ) RAM READ JUMP
(3 ) RAM STOP
3-1-10. RSPD データの読み出し(1 ) RSPD DATA READ
3-2. カウンタコマンド
3-2-1. アドレスカウンタの設定(1 ) ADDRESS COUNTER MAX COUNT SET
3-2-2. パルスカウンタの設定(1 ) PULSE COUNTER MAX COUNT SET
3-2-3. カウンタのラッチ・クリア機能の設定(1 ) COUNT LATCH SPEC SET
3-2-4. カウントデータのラッチデータの読み出し(1 ) ADDRESS LATCH DATA READ
(2 ) PULSE LATCH DATA READ
(3 ) DFL LATCH DATA READ

PAGE
110
110
112
113
114
114
115
115
115
116
116
117
117
119
119
119
119

３．機能説明4-1. ドライブ仕様
4-1-1. コマンド予約機能
4-1-2. 入出力仕様(1 ) 入出力信号の論理切り替え機能
4-1-3. ドライブパラメータ(1 ) 加減速パラメータ(2 ) 加減速時定数(3 ) 直線加減速ドライブ(4 ) S 字加減速ドライブ(5 ) 加速ドライブ(6 ) 減速ドライブ(7 ) 一定速ドライブ(8 ) その他のドライブ
4-1-4. ORIGIN ドライブ (MCC09 チップの機械原点検出機能)
4-1-5. 補間ドライブ(1 ) 任意軸補間ドライブ(2 ) 直線補間ドライブ(3 ) 円弧補間ドライブ(4 ) 線速一定制御
4-1-6. ドライブ CHANGE 機能(1 ) SPEED CHANGE 機能(2 ) INDEX CHANGE 機能
4-1-7. 読み出し機能(1 ) カウントデータのラッチデータ読み出し
4-1-8. RSPD 機能
4-2. カウンタ仕様
4-2-1. リングカウンタ機能
4-2-2. カウントデータのラッチ・クリア機能
4-3. MCM 機能
4-3-1. 特徴
4-3-2. MCM 関数シーケンス(1 ) MCM の全体実行シーケンス(2 ) 全軸の確認が必要な MCM 関数(3 ) 対象軸の確認が必要な MCM 関数
4-3-3. 構成
4-3-4. MCM の設定

-6-

120
120
122
122
123
123
124
126
127
131
131
131
132
133
134
134
137
138
141
142
142
144
149
149
150
151
151
152
153
153
155
155
156
157
158
160

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )目
4-3-5. MCM の自動実行機能(1 ) MCM の開始(2 ) MCM の終了(3 ) MCM の同期(4 ) MCM の分岐(5 ) MCM を組む上での注意
4-3-6. 状態の表示
4-4. I/O 仕様
4-4-1. その他の I/O PORT(1 ) SIGNAL I/O1 信号(2 ) SIGNAL I/O2 信号

次

PAGE
163
163
164
165
173
174
176
177
177
177
178

５． 付録
5-1. 初期仕様一覧(1 ) 応用設定(2 ) 応用ドライブパラメータ
5-2. 関数一覧
5-3. ドライブコマンド一覧(1 ) 汎用コマンド(2 ) 特殊コマンド

179
179
180
181
186
186
188

本版で改訂された主な箇所-7-

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )１．概要
1-1. 特徴● USB シリーズは、パソコンの小規模なシステムに最適な USB 通信によるステッピングモータ、サーボモータ、および I/O をコントロールするシステムです。
・パソコンを選ばずに、モーションおよび I/O コントロールのシステムが容易に構築できます。
・ Windows 用デバイスドライバの関数仕様は、弊社製 PCI ボードコントローラ C-VX870 シリーズ(デバイス関数)、および AL-Ⅱシリーズ(デバイス関数とユニット関数)間で互いに移行が容易な仕様です。
● MPL-36-02v2.00/USBW32、および MPL-37-02v2.00/USBW64 は、 Windows パソコン上の USB ポートから、
弊社製 USB シリーズのステッピング＆サーボモータコントローラを動作させるための DLL ベースのドライバ関数です。
当デバイスドライバは、 MCC09 搭載した新たなコントローラ UC-7660 に加え新たなスレーブコントローラ
ドライバ UCD-7620/A5F31DE、 UCD-7621/A5F41DE、 UCD-7630/A5F31Q に対応したバージョンアップ品ですが、MCC07 製品にも対応しています。
・ Windows 32 ビット対応版が MPL-36-02v2.00/USBW32 です。
・ Windows 64 ビット対応版が MPL-37-02v2.00/USBW64 です。
MPL-37-02v2.00/USBW64 は、画像処理などの高速化を目的とした Windows 64 ビット環境のモーション
および I/O システムを可能にします。
● 取扱説明書で解説している標準仕様の他に、この応用機能編では、主に以下を解説します。
・コマンド予約機能
・ドライブ CHANGE 機能
・外部トリガ出力機能
・新たなコントローラで対応された Motion Contorl Macro 機能(以降、本書では MCM 機能と呼称します。)
・その他、従来関数を継承できるようにするための関数など

以下についての詳細は、デバイスドライバ取扱説明書をご覧ください。
・サポート OS や言語他
・ソフト開発に必要なファイル
・デバイスドライバの制限事項
・標準的な関数、コマンド、機能の解説
・全体の実行シーケンス等-8-MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )２．関数リファレンス
当デバイスドライバ仕様は、 MCC09 および MCC07 の搭載製品ならびにデジタル I/O やアナログ入力を含む関数を網羅しています。
ユニットに MCC09 および MCC07 搭載製品が混在したシステム構成も可能です。
原則、関数仕様は共通性がありますので、搭載チップ毎のスレーブユニットによって、ユーザアプリケーションを分ける必要はありません。
なお、 MCC09 と MCC07 搭載の製品の差異を明らかにできるように、本書では MCC09 搭載製品を対象とした製品の仕様を示します。

2-1. MCC PORT アクセス関数の移行について
本書で説明するデバイス関数は、主に従来より対応している関数群です。
これらの関数は、下記に推奨している標準関数で代用することが可能です。
下記の従来関数から推奨関数に移行することで、特に、マルチスレッドプログラミングにおける、
ユーザアプリケーション側での排他処理を不要とすることができます。
従来関数群
・ DRIVE COMMAND データ構造体書き込み関数( MC07_IWDrive)
・ DRIVE DATA データ構造体書き込み関数(MC07_IWData)
・ DRIVE DATA 32 ビット書き込み関数(MC07_LWData )・ DRIVE DATA1 PORT 書き込み関数( MC07_BWDriveData1)
・ DRIVE DATA2 PORT 書き込み関数( MC07_BWDriveData2)

推奨関数
・ DRIVE COMMAND 32 ビット書き込み関数( MC07_LWDrive)

従来関数群
・ DRIVE DATA データ構造体読み出し関数(MC07_IRDrive )・ DRIVE DATA 32 ビット読み出し関数(MC07_LRDrive)
・ DRIVE DATA1 PORT 読み出し関数 ( MC07_BRDriveData1)
・ DRIVE DATA2 PORT 読み出し関数 ( MC07_BRDriveData2)

推奨関数
・ DRIVE COMMAND 32 ビット書き込み関数／読み出し関数(MC07_LWRDrive)
・ DRIVE COMMAND PORT 書き込み関数／読み出し関数(MC07_BWRDrive )*1 MCC09 搭載製品のみ対応している関数です。

-9-

*1

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )2-2. ユニット関数
2-2-1. A/D 変換関数
ユニットオープン関数で取得したユニットハンドルにより、ユニットのアナログ入力を制御します。
A/D 変換されたアナログ入力信号の読み出しを行います。

A/Dデータ構造体

UsbC

UC‑7660機 能全てのアナログ入力信号をA/D変換したデータを格納します。
書 式
C言語
typedef struct ̲MC07̲S̲AD̲DATA {WORD Data[16];} MC07̲S̲AD̲DATA;VBType MC07̲S̲AD̲DATA
Data(1 To 16) As Integer
End Type

VB.NET

Structure MC07̲S̲AD̲DATA<MarshalAs(UnmanagedType.ByValArray, SizeConst:=16)> Public Data() As Short
Public Sub Initialize()
ReDim Data(15)End Sub
End Structure

C#.NET

struct MC07̲S̲AD̲DATA{[MarshalAs(UnmanagedType.ByValArray, SizeConst = 16)]
public ushort[] Data;public MC07̲S̲AD̲DATA(ushort dummy){
Data = new ushort[16];
}
}

メンバ
〜

Data[0] ･･･ AD0信号のデータが格納されます。
Data[3] ･･･ AD3信号のデータが格納されます。
Data[4]〜Data[15] ･･･ 将来の拡張用です。
・VBの Data(1)〜(16)は、C言語の Data［0］〜［15］ に対応します。
・VB.NETの Data(0)〜(15)は、C言語の Data［0］〜［15］ に対応します。
・C#.NETの Data［0］〜［15］ は、C言語の Data［0］〜［15］ に対応します。
ユニット
UC‑766

範囲
0〜1023*1*1 変換データ
入力電圧値 ＝ 変換データ×入力レンジ÷分解能〜

AD変換データ(10ビット)
1023(H'3FF)
1022(H'3FE)〜

入力電圧4.995V
4.990V
0.00488V
0V

1
0

例)

(H'001)(H'000)- 10 -

読み出されたAD変換データがH'1FFのとき
入力電圧 ＝ H'1FF×5V÷1024＝ 511×5V÷1024＝ 2.441VMPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )A/D DATA読み出し関数

UsbC

UC‑7660

機 能指定されたアナログ入力信号をA/D変換し、データを読み出します。
書 式
C言語
BOOL MC07̲BRADData(DWORD hUnit, WORD Signal, WORD *pData, MC07̲S̲RESULT *psResult);
VB

Function MC07̲BRADData(ByVal hUnit As Long, ByVal Signal As Integer,
ByRef pData As Integer, ByRef psResult As MC07̲S̲RESULT) As Boolean

VB.NET

Function MC07̲BRADData(ByVal hUnit As Integer, ByVal Signal As Short,
ByRef pData As Short, ByRef psResult As MC07̲S̲RESULT) As Boolean

C#.NETbool MC07.BRADData(uint hUnit, ushort Signal, ref ushort pData, ref MC07̲S̲RESULT psResult);

引

数

hUnit
Signal･･･ ユニットハンドルを指定します。
･･･ アナログ入力信号を指定します。

指定できる値
0
1
2
3

pData

意味
AD0信号
AD1信号
AD2信号
AD3信号

･･･ 読み出した内容が格納される変数のポインタを指定します。

ユニット
UC‑766

範囲
0〜1023*1*1 変換データ
入力電圧値 ＝ 変換データ×入力レンジ÷分解能

psResult･･･ この関数を実行した結果が格納されるRESULT構造体のポインタを指定します。
NULLポインタまたは0が指定されると、実行結果が格納されません。

戻り値
この関数を実行した結果、正常終了したときはTRUE、エラーが発生したときはFALSEを返します。

- 11 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )A/D DATA A/Dデータ構造体読み出し関数

UsbC

UC‑7660機 能全てのアナログ入力信号をA/D変換し、データを読み出します。
書 式
C言語
BOOL MC07̲IRADData(DWORD hUnit, MC07̲S̲AD̲DATA *psData, MC07̲S̲RESULT *psResult);
VB

Function MC07̲IRADData(ByVal hUnit As Long, ByRef psData As MC07̲S̲AD̲DATA,
ByRef psResult As MC07̲S̲RESULT) As Boolean

VB.NET

Function MC07̲IRADData(ByVal hUnit As Integer, ByRef psData As MC07̲S̲AD̲DATA,
ByRef psResult As MC07̲S̲RESULT) As Boolean

C#.NETbool MC07.IRADData(uint hUnit, ref MC07̲S̲AD̲DATA psData, ref MC07̲S̲RESULT psResult);

引

数

hUnit
psDatapsResult･･･ ユニットハンドルを指定します。
･･･ A/Dデータ構造体のポインタを指定します。
･･･ この関数を実行した結果が格納されるRESULT構造体のポインタを指定します。
NULLポインタまたは0が指定されると、実行結果が格納されません。

戻り値
この関数を実行した結果、正常終了したときはTRUE、エラーが発生したときはFALSEを返します。

- 12 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )2-3. デバイス関数
2-3-1. MCC PORT アクセス関数
DRIVE DATA 32ビット書き込み関数
UC‑7660

UCD‑7620

UCD‑7621

UsbC

UCD‑7630

機 能指定されたデバイスのDRIVE DATA1 PORT、DRIVE DATA2 PORTにデータを書き込みます。
書 式
C言語
BOOL MC07̲LWData( DWORD hDev, DWORD *pData, MC07̲S̲RESULT *psResult );VB

Function MC07̲LWData( ByVal hDev As Long, ByRef pData As Long,
ByRef psResult As MC07̲S̲RESULT ) As Boolean

VB.NET

Function MC07̲LWData( ByVal hDev As Integer, ByRef pData As Integer,
ByRef psResult As MC07̲S̲RESULT ) As Boolean

C#.NETbool MC07.LWData( uint hDev , ref uint pData, ref MC07̲S̲RESULT psResult );

引

数

hDev
pData

psResult･･･ デバイスハンドルを指定します。
･･･ 書き込むデータが格納されている変数のポインタを指定します。
・変数の上位16ビットは、DRIVE DATA2 PORTに書き込まれます。
・変数の下位16ビットは、DRIVE DATA1 PORTに書き込まれます。
･･･ この関数を実行した結果を格納するためのRESULT構造体のポインタを指定します。

戻り値
この関数を実行した結果、正常終了したときはTRUE、エラーが発生したときはFALSEを返します。

- 13 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )DRIVE DATA1 PORT書き込み関数
UC‑7660

UCD‑7620

UCD‑7621

UsbC

UCD‑7630

機 能指定されたデバイスのDRIVE DATA1 PORTにデータを書き込みます。
書 式
C言語
BOOL MC07̲BWDriveData1(DWORD hDev, WORD *pData, MC07̲S̲RESULT *psResult);
VB

Function MC07̲BWDriveData1(ByVal hDev As Long, ByRef pData As Integer,
ByRef psResult As MC07̲S̲RESULT) As Boolean

VB.NET

Function MC07̲BWDriveData1(ByVal hDev As Integer, ByRef pData As Short,
ByRef psResult As MC07̲S̲RESULT) As Boolean

C#.NETbool MC07.BWDriveData1(uint hDev, ref ushort pData, ref MC07̲S̲RESULT psResult);

引

数

hDev
pData
psResult･･･ デバイスハンドルを指定します。
･･･ 書き込むデータが格納されている変数のポインタを指定します。
･･･ この関数を実行した結果を格納するためのRESULT構造体のポインタを指定します。

戻り値
この関数を実行した結果、正常終了したときはTRUE、エラーが発生したときはFALSEを返します。

- 14 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )DRIVE DATA2 PORT書き込み関数
UC‑7660

UCD‑7620

UCD‑7621

UsbC

UCD‑7630

機 能指定されたデバイスのDRIVE DATA2 PORTにデータを書き込みます。
書 式
C言語
BOOL MC07̲BWDriveData2(DWORD hDev, WORD *pData, MC07̲S̲RESULT *psResult);
VB

Function MC07̲BWDriveData2(ByVal hDev As Long, ByRef pData As Integer,
ByRef psResult As MC07̲S̲RESULT) As Boolean

VB.NET

Function MC07̲BWDriveData2(ByVal hDev As Integer, ByRef pData As Short,
ByRef psResult As MC07̲S̲RESULT) As Boolean

C#.NETbool MC07.BWDriveData2(uint hDev, ref ushort pData, ref MC07̲S̲RESULT psResult);

引

数

hDev
pData
psResult･･･ デバイスハンドルを指定します。
･･･ 書き込むデータが格納されている変数のポインタを指定します。
･･･ この関数を実行した結果を格納するためのRESULT構造体のポインタを指定します。

戻り値
この関数を実行した結果、正常終了したときはTRUE、エラーが発生したときはFALSEを返します。

- 15 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )DRIVE DATA 32ビット 読み出し関数
UC‑7660

UCD‑7620

UCD‑7621

UsbC

UCD‑7630

機 能指定されたデバイスのDRIVE DATA1 PORT、DRIVE DATA2 PORTの内容を読み出します。
書 式
C言語
BOOL MC07̲LRDrive(DWORD hDev, DWORD *pData, MC07̲S̲RESULT *psResult);
VB

Function MC07̲LRDrive(ByVal hDev As Long, ByRef pData As Long,
ByRef psResult As MC07̲S̲RESULT)As Boolean

VB.NET

Function MC07̲LRDrive(ByVal hDev As Integer, ByRef pData As Integer,
ByRef psResult As MC07̲S̲RESULT) As Boolean

C#.NETbool MC07.LRDrive(uint hDev , ref uint pData, ref MC07̲S̲RESULT psResult);

引

数

hDev
pData

psResult･･･ デバイスハンドルを指定します。
･･･ 読み出した内容を格納するための変数のポインタを指定します。
・DRIVE DATA2 PORTの内容が変数の上位16ビットに格納されます。
・DRIVE DATA1 PORTの内容が変数の下位16ビットに格納されます。
･･･ この関数を実行した結果を格納するためのRESULT構造体のポインタを指定します。

戻り値
この関数を実行した結果、正常終了したときはTRUE、エラーが発生したときはFALSEを返します。

- 16 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )DRIVE DATA1 PORT読み出し関数
UC‑7660

UCD‑7620

UCD‑7621

UsbC

UCD‑7630

機 能指定されたデバイスのDRIVE DATA1 PORTの内容を読み出します。
書 式
C言語
BOOL MC07̲BRDriveData1(DWORD hDev, WORD *pData, MC07̲S̲RESULT *psResult);
VB

Function MC07̲BRDriveData1(ByVal hDev As Long, ByRef pData As Integer,
ByRef psResult As MC07̲S̲RESULT) As Boolean

VB.NET

Function MC07̲BRDriveData1(ByVal hDev As Integer, ByRef pData As Short,
ByRef psResult As MC07̲S̲RESULT) As Boolean

C#.NETbool MC07.BRDriveData1(uint hDev, ref ushort pData, ref MC07̲S̲RESULT psResult);

引

数

hDev
pData
psResult･･･ デバイスハンドルを指定します。
･･･ 読み出した内容を格納するための変数のポインタを指定します。
･･･ この関数を実行した結果を格納するためのRESULT構造体のポインタを指定します。

戻り値
この関数を実行した結果、正常終了したときはTRUE、エラーが発生したときはFALSEを返します。

- 17 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )DRIVE DATA2 PORT読み出し関数
UC‑7660

UCD‑7620

UCD‑7621

UsbC

UCD‑7630

機 能指定されたデバイスのDRIVE DATA2 PORTの内容を読み出します。
書 式
C言語
BOOL MC07̲BRDriveData2(DWORD hDev, WORD *pData, MC07̲S̲RESULT *psResult);
VB

Function MC07̲BRDriveData2(ByVal hDev As Long, ByRef pData As Integer,
ByRef psResult As MC07̲S̲RESULT) As Boolean

VB.NET

Function MC07̲BRDriveData2(ByVal hDev As Integer, ByRef pData As Short,
ByRef psResult As MC07̲S̲RESULT) As Boolean

C#.NETbool MC07.BRDriveData2(uint hDev, ref ushort pData, ref MC07̲S̲RESULT psResult);

引

数

hDev
pData
psResult･･･ デバイスハンドルを指定します。
･･･ 読み出した内容を格納するための変数のポインタを指定します。
･･･ この関数を実行した結果を格納するためのRESULT構造体のポインタを指定します。

戻り値
この関数を実行した結果、正常終了したときはTRUE、エラーが発生したときはFALSEを返します。

- 18 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )データ構造体UC‑7660

UCD‑7620

UsbC

UCD‑7621

UCD‑7630

機 能
DRIVE DATA1 PORT、DRIVE DATA2 PORTに書き込むデータを格納します。
書 式
C言語
typedef struct ̲MC07̲S̲DATA{WORD MC07̲Data[4];} MC07̲S̲DATA
VBType MC07̲S̲DATA

MC07̲Data(1 To 4) As Integer
End Type
VB.NET

Structure MC07̲S̲DATA<MarshalAs(UnmanagedType.ByValArray, SizeConst:=4)> Public MC07̲Data() As Short
Public Sub Initialize()
ReDim MC07̲Data(3)End Sub
End Structure

C#.NET

struct MC07̲S̲DATA{[MarshalAs( UnmanagedType.ByValArray, SizeConst=4 )] public ushort[] MC07̲Data;
MC07̲S̲DATA( ushort dummy ){MC07̲Data = new ushort[4];}}メンバ
次に示すメンバは、C言語で表記しています。C言語のMC07̲Data[0]〜MC07̲Data[3]は、Visual Basicでは
MC07̲Data(1)〜MC07̲Data(4)、Visual Basic.NETではMC07̲Data(0)〜MC07̲Data(3)、C#.NETではMC07̲Data[0]〜MC07̲Data[3]に対応します。

MC07̲Data[0] ･･･ DRIVE DATA1 PORTの内容を格納します。
MC07̲Data[1] ･･･ DRIVE DATA2 PORTの内容を格納します。
MC07̲Data[2] ･･･ 将来の拡張用です。
MC07̲Data[3] ･･･ 将来の拡張用です。
*VB.NETでは、配列を含む構造体は、Initializeメソッドにより配列を作成します。
*C#.NETでは、配列を含む構造体は、コンストラクタにより配列を作成します。
コンストラクタの引数dummyは何を指定しても無効です。

- 19 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )DRIVE COMMAND データ構造体書き込み関数
UC‑7660

UCD‑7620

UCD‑7621

UsbC

UCD‑7630

機 能指定されたデバイスのDRIVE DATA1 PORT、DRIVE DATA2 PORTにデータ構造体の内容を書き込んだ後、DRIVE COMMAND PORTにコマンドコードを書き込みます。
書 式
C言語
BOOL MC07̲IWDrive(DWORD hDev, WORD Cmd, MC07̲S̲DATA *psData, MC07̲S̲RESULT *psResult);
VB

Function MC07̲IWDrive(ByVal hDev As Long, ByVal Cmd As Integer, ByRef psData As MC07̲S̲DATA,
ByRef psResult As MC07̲S̲RESULT) As Boolean

VB.NET

Function MC07̲IWDrive(ByVal hDev As Integer, ByVal Cmd As Short, ByRef psData As MC07̲S̲DATA,
ByRef psResult As MC07̲S̲RESULT) As Boolean

C#.NETbool MC07.IWDrive(uint hDev , ushort Cmd, ref MC07̲S̲DATA psData,ref MC07̲S̲RESULT psResult);

引

数

hDev
Cmd
psDatapsResult･･･ デバイスハンドルを指定します。
･･･ 書き込むコマンドコードを指定します。
･･･ 書き込むデータが格納されているデータ構造体のポインタを指定します。
･･･ この関数を実行した結果を格納するためのRESULT構造体のポインタを指定します。

戻り値
この関数を実行した結果、正常終了したときはTRUE、エラーが発生したときはFALSEを返します。

- 20 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )DRIVE DATA データ構造体書き込み関数
UC‑7660

UCD‑7620

UCD‑7621

UsbC

UCD‑7630

機 能指定されたデバイスのDRIVE DATA1 PORT、DRIVE DATA2 PORTにデータを書き込みます。
書 式
C言語
BOOL MC07̲IWData(DWORD hDev , MC07̲S̲DATA *psData, MC07̲S̲RESULT *psResult);
VB

Function MC07̲IWData(ByVal hDev As Long, ByRef psData As MC07̲S̲DATA,
ByRef psResult As MC07̲S̲RESULT) As Boolean

VB.NET

Function MC07̲IWData(ByVal hDev As Integer, ByRef psData As MC07̲S̲DATA,
ByRef psResult As MC07̲S̲RESULT) As Boolean

C#.NETbool MC07.IWData(uint hDev, ref MC07̲S̲DATA psData,ref MC07̲S̲RESULT psResult);

引

数

hDev
psDatapsResult･･･ デバイスハンドルを指定します。
･･･ 書き込むデータが格納されているデータ構造体のポインタを指定します。
･･･ この関数を実行した結果が格納されるRESULT構造体のポインタを指定します。

戻り値
この関数を実行した結果、正常終了したときはTRUE、エラーが発生したときはFALSEを返します。

- 21 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )DRIVE DATA データ構造体読み出し関数
UC‑7660

UCD‑7620

UCD‑7621

UsbC

UCD‑7630

機 能指定されたデバイスのDRIVE DATA1 PORT、DRIVE DATA2 PORTの内容を読み出します。
書 式
C言語
BOOL MC07̲IRDrive(DWORD hDev, MC07̲S̲DATA *psData, MC07̲S̲RESULT *psResult);
VB

Function MC07̲IRDrive(ByVal hDev As Long, ByRef psData As MC07̲S̲DATA,
ByRef psResult As MC07̲S̲RESULT)As Boolean

VB.NET

Function MC07̲IRDrive(ByVal hDev As Integer, ByRef psData As MC07̲S̲DATA,
ByRef psResult As MC07̲S̲RESULT) As Boolean

C#.NETbool MC07.IRDrive(uint hDev , ref MC07̲S̲DATA psData, ref MC07̲S̲RESULT psResult);

引

数

hDev
psDatapsResult･･･ デバイスハンドルを指定します。
･･･ 読み出した内容を格納するためのデータ構造体のポインタを指定します。
･･･ この関数を実行した結果が格納されるRESULT構造体のポインタを指定します。

戻り値
この関数を実行した結果、正常終了したときはTRUE、エラーが発生したときはFALSEを返します。

- 22 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )データセット関数

UsbC

−
機 能
32ビットデータを次の形式でデータ構造体に格納します。
引数psDataで示されるデータ構造体のメンバ MC07̲Data[0] (C言語表記)[各種DATA1 PORTに対応]
D15

D14

D13

D12

D11

D10

D9

D8

D7

D6

D5

D4

D3

D2

D1

引数 Data の下位 16 ビット(D15 〜 D0)

D15

D0
D0

引数psDataで示されるデータ構造体のメンバ MC07̲Data[0] (C言語表記)[各種DATA2 PORTに対応]
D15

D14

D13

D12

D11

D10

D9

D8

D7

D6

D5

D4

D3

D2

D1

引数 Data の上位 16 ビット(D31 〜 D16)

D31

書 式
C言語
VOID MC07̲SetData(DWORD Data, MC07̲S̲DATA *psData);
VB

Sub MC07̲SetData(ByVal Data As Long, ByRef psData As MC07̲S̲DATA)VB.NET

Sub MC07̲SetData(ByVal Data As Integer, ByRef psData As MC07̲S̲DATA)

C#.NETvoid MC07.SetData(uint Data , ref MC07̲S̲DATA psData);

引

Data
psData数･･･ 32ビットのデータを指定します。
･･･ データ構造体のポインタを指定します。

戻り値
この関数に、戻り値はありません。

- 23 -D0
D16

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )データゲット関数

UsbC

−

機 能
データ構造体の内容を、次の形式で32ビットデータに変換し返します。
変換後の32ビットデータ
D31

D30

D28

D27

D26

D25

D24

D23

D22

D21

D20

D19

D18

D14

D13

D12

D11

D10

D9

D8

D7

D6

D5

D4

D3

D2

引数psDataで示されるデータ構造体のメンバMC07̲Data[0](C言語表記 )[各種DATA1 PORTに対応]

書 式
C言語
DWORD MC07̲GetData(MC07̲S̲DATA *psData);
VB

Function MC07̲GetData(ByRef psData As MC07̲S̲DATA) As Long

VB.NET

Function MC07̲GetData(ByRef psData As MC07̲S̲DATA) As Integer

C#.NET

Uint MC07.GetData(ref MC07̲S̲DATA psData);

引

数･･･ データ構造体のポインタを指定します。

戻り値
32ビットに変換されたデータを返します。

- 24 -

D16
D0[各種DATA2 PORTに対応]

D15

psDataD17

引数psDataで示されるデータ構造体のメンバMC07̲Data[1](C言語表記 )

D15

D15

D29

D1

D0
D0

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )2-3-2. コマンド予約機能関数
MCC09 の汎用コマンドは、コマンド予約機能によりコマンドを予約レジスタに書き込むことができます。
コマンド予約機能で汎用コマンドを書き込むときは、 DRIVE STATUS1 PORT 内の ERROR=0 および
COMREG FL BIT=0 を確認してから汎用コマンドを書き込みます。
また、汎用コマンドをコマンド予約機能で書き込みした後に、予約コマンドの空き待ちを行います。
COMREG NOT FULL WAIT 関数は、この汎用コマンドを予約コマンドとして書き込みした後の終了待ちするときに用いる関数です。

COMREG NOT FULL WAIT関数
UC‑7660

UCD‑7620

UCD‑7621

UsbC

UCD‑7630

機 能指定されたデバイスがコマンドレジスタ予約可能な状態(DRIVE STATUS1 PORT COMREG FULL BIT = 0）になるまで待機します。
・最大待ち時間を超えるとエラー終了します。
・待機中にDRIVE STATUS1 PORTのERROR = 1 を検出したときもエラー終了します。
書 式
C言語
BOOL MC07̲BWaitComregNotFull(DWORD hDev, WORD WaitTime, MC07̲S̲RESULT *psResult);
VB

Function MC07̲BWaitComregNotFull(ByVal hDev As Long, ByVal WaitTime As Integer,
ByRef psResult As MC07̲S̲RESULT) As Boolean

VB.NET

Function MC07̲BWaitComregNotFull(ByVal hDev As Integer, ByVal WaitTime As Short,
ByRef psResult As MC07̲S̲RESULT) As Boolean

C#.NETbool MC07.BWaitComregNotFull(uint hDev, ushort WaitTime, ref MC07̲S̲RESULT psResult);

引

数

hDev
WaitTime
psResult･･･ デバイスハンドルを指定します。
･･･ 最大待ち時間を1ms単位で設定します。
0を指定すると無限に待機します。
･･･ この関数を実行した結果を格納するためのRESULT構造体のポインタを指定します。

戻り値
この関数を実行した結果、正常終了したときはTRUE、エラーが発生したときはFALSEを返します。

- 25 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )DRIVE COMMAND バッファー書き込み関数
UC‑7660

UCD‑7620

UCD‑7621

UsbC

UCD‑7630

機 能コマンドデータ構造体の配列に格納されているコマンド、データを指定されたデバイスのDRIVE DATA1 PORT、DRIVE DATA2 PORT、DRIVE COMMAND PORTに指定された個数書き込みます。
書 式
C言語
BOOL MC07̲LWDriveBuf(DWORD hDev, MC07̲S̲COMMAND̲DATA
MC07̲S̲RESULT *psResult);

CmdDataBuf[], WORD Count,

VB

Function MC07̲LWDriveBuf(ByVal hDev As Long, ByRef CmdDataBuf As MC07̲S̲COMMAND̲DATA,
ByVal Count As Integer, ByRef psResult As MC07̲S̲RESULT) As Boolean

VB.NET

Function MC07̲LWDriveBuf(ByVal hDev As Integer, ByVal CmdDataBuf() As MC07̲S̲COMMAND̲DATA,
ByVal Count As Short, ByRef psResult As MC07̲S̲RESULT) As Boolean

C#.NETbool MC07.LWDriveBuf(uint hDev, MC07̲S̲COMMAND̲DATA[] CmdDataBuf, ushort Count,ref MC07̲S̲RESULT psResult);

引

数

hDev
CmdDataBuf

Count
psResult･･･ デバイスハンドルを指定します。
･･･ コマンドデータ構造体の配列に指定します。
CmdDataBuf[0] ･･･ 1番目に書き込むコマンドコード構造体を格納します。
･･･
CmdDataBuf[7] ･･･ 8番目に書き込むコマンドコード構造体を格納します。
CmdDataBuf[8]〜CmdDataBuf[15] ･･･ 将来の拡張用です。
･･･ コマンドコード構造体の配列に格納されている要素の個数(最大8個)を指定します。
･･･ この関数を実行した結果が格納されるRESULT構造体のポインタを指定します。

戻り値
この関数を実行した結果、正常終了したときはTRUE、エラーが発生したときはFALSEを返します。

- 26 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )2-3-3. 円弧補間の演算関数
円弧補間短軸PULSE数ゲット関数
UC‑7660

UCD‑7620

UCD‑7621

UsbC

UCD‑7630

機 能指定された円弧の中心点、目的地、回転方向から、目的地までの短軸パルス数を計算します。
座標は、モータの現在位置を座標中心(0,0)とした相対アドレスです。
計算方法については、「4‑1‑5. 補間ドライブ (4) 円弧補間ドライブ」をご覧ください。
注. 次の場合、関数がエラー終了します。
・円弧の中心点座標が(0, 0)、または中心点と目的地が同一座標の場合
・円弧補間で求めた短軸PULSE数が‑2,147,483,648〜+2,147,483,647の範囲内でない場合
・円弧補間で指定出来ない目的地座標が指定された場合
書 式
C言語
BOOL MC07̲GetCirShortPulse( WORD Dir, MC07̲S̲XY̲POSITION *psCenterPosition,
MC07̲S̲XY̲POSITION *psTargetPosition,
LONG *pShortPulse, MC07̲S̲RESULT *psResult );VB

Function MC07̲GetCirShortPulse(ByVal Dir As Integer,
ByRef psCenterPosition As MC07̲S̲XY̲POSITION,
ByRef psTargetPosition As MC07̲S̲XY̲POSITION, ByRef pShortPulse As Long,
ByRef psResult As MC07̲S̲RESULT) As Boolean

VB.NET

Function MC07̲GetCirShortPulse(ByVal Dir As Short,
ByRef psCenterPosition As MC07̲S̲XY̲POSITION,
ByRef psTargetPosition As MC07̲S̲XY̲POSITION, ByRef pShortPulse As Integer,
ByRef psResult As MC07̲S̲RESULT) As Boolean

C#.NETbool MC07.GetCirShortPulse(ushort Dir, ref MC07̲S̲XY̲POSITION psCenterPosition,
ref MC07̲S̲XY̲POSITION psTargetPosition, ref int pShortPulse,
ref MC07̲S̲RESULT psResult);

引

数

Dir

･･･

回転方向を指定します。

指定できる値
MC07̲CCW
MC07̲CW

意味‑(CCW)方向+(CW)方向

psCenterPosition･･･ 中心点のX‑Y相対座標が格納されているポジション構造体のポインタを指定します。
(指定できる値の範囲はX座標･Y座標ともに、‑8,388,607〜+8,388,607です。)
中心点のX‑Y座標は、現在位置を座標の中心(0,0)とした相対座標です。

psTargetPosition･･･

目的地のX‑Y相対座標が格納されているポジション構造体のポインタを指定します。
(指定できる値の範囲はX座標･Y座標ともに、‑16,777,214〜+16,777,214です。)
目的地のX‑Y座標は、現在位置を座標の中心(0,0)とした相対座標です。

pShortPulse･･･

目的地の短軸パルス数を格納するための変数のポインタを指定します。

psResult･･･ この関数を実行した結果を格納するためのRESULT構造体のポインタを指定します。

戻り値
この関数を実行した結果、正常終了したときはTRUE、エラーが発生したときはFALSEを返します。

- 27 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )2-3-4. その他の関数
16ビット符号なし変換関数

UsbC

−
機 能
指定された16ビット符号付きデータを16ビット符号なしデータに変換します。
書 式
C言語
WORD MC07̲Unsigned16( SHORT Data );VB−

VB.NET

Function MC07̲Unsigned16(ByVal Data As Short) As UShort

C#.NET

ushort MC07.Unsigned16( short Data );

引

Data

数
･･･ 16ビット符号付きデータを指定します。

戻り値
16ビット符号なしデータを返します。

- 28 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )16ビット符号付き変換関数

UsbC

−
機 能
指定された16ビット符号なしデータを16ビット符号つきデータに変換します。
書 式
C言語
SHORT MC07̲Signed16( WORD Data );VB−

VB.NET

Function MC07̲Signed16(ByVal Data As UShort) As Short

C#.NET

short MC07.Signed16( ushort Data );

引

Data

数
･･･ 16ビット符号なしデータを指定します。

戻り値
16ビット符号付きデータを返します。

- 29 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )32ビット符号なし変換関数

UsbC

−
機 能
指定された32ビット符号付きデータを32ビット符号なしデータに変換します。
書 式
C言語
DWORD MC07̲Unsigned32( LONG Data );VB−

VB.NET

Function MC07̲Unsigned32(ByVal Data As Integer) As UInteger

C#.NET

uint MC07.Unsigned32( int Data );

引

Data

数
･･･ 32ビット符号付きデータを指定します。

戻り値
32ビット符号なしデータを返します。

- 30 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )32ビット符号付き変換関数

UsbC

−
機 能
指定された32ビット符号なしデータを32ビット符号つきデータに変換します。
書 式
C言語
LONG MC07̲Signed32( DWORD Data );VB−

VB.NET

Function MC07̲Signed32(ByVal Data As UInteger) As Integer

C#.NET

int MC07.Signed32( uint Data );

引

Data

数
･･･ 32ビット符号なしデータを指定します。

戻り値
32ビット符号付きデータを返します。

- 31 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )2-4. ユニット MCM 関数
MCM の設定・制御を行います。

2-4-1. MCM 情報の表示
MCM の情報を読み出します。

AXIS MCM INFO構造体
UC‑7660

UCD‑7620

UCD‑7621

UsbC

UCD‑7630

機 能軸のMCMの情報が格納されます。
書 式
C言語
typedef struct ̲MC07̲S̲AXIS̲MCM̲INFO {DWORD Address;} MC07̲S̲AXIS̲MCM̲INFO;VBType MC07̲S̲AXIS̲MCM̲INFO
Address As LongEnd Type

VB.NET

Structure MC07̲S̲AXIS̲MCM̲INFO
Public Address As Integer
End Structure

C#.NET

struct MC07̲S̲AXIS̲MCM̲INFO{
public uint Address;}

メンバ

Address･･･ RAM領域の次に実行するメモリアドレスが格納されます。

- 32 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )UNIT MCM INFO構造体
UC‑7660

UCD‑7620

UCD‑7621

UsbC

UCD‑7630

機 能ユニットのMCMの情報が格納されます。
書 式
C言語
typedef struct ̲MC07̲S̲UNIT̲MCM̲INFO {DWORD SheetNo;
MC07̲S̲AXIS̲MCM̲INFO X;
MC07̲S̲AXIS̲MCM̲INFO Y;
MC07̲S̲AXIS̲MCM̲INFO Z;
MC07̲S̲AXIS̲MCM̲INFO A;} MC07̲S̲UNIT̲MCM̲INFO;VBType MC07̲S̲UNIT̲MCM̲INFO
SheetNo As Integer
X As MC07̲S̲AXIS̲MCM̲INFOY As MC07̲S̲AXIS̲MCM̲INFO
Z As MC07̲S̲AXIS̲MCM̲INFO
A As MC07̲S̲AXIS̲MCM̲INFO
End Type

VB.NET

Structure MC07̲S̲UNIT̲MCM̲INFO
Public SheetNo As Short
Public X As MC07̲S̲AXIS̲INFO
Public Y As MC07̲S̲AXIS̲INFO
Public Z As MC07̲S̲AXIS̲INFO
Public A As MC07̲S̲AXIS̲INFO
End Structure

C#.NET

struct MC07̲S̲UNIT̲MCM̲INFO{
public ushort SheetNo;
public MC07̲S̲AXIS̲MCM̲INFO X;
public MC07̲S̲AXIS̲MCM̲INFO Y;
public MC07̲S̲AXIS̲MCM̲INFO Z;
public MC07̲S̲AXIS̲MCM̲INFO A;}

メンバ

SheetNoXYZ
A･･･ UNIT MCM SHEET DOWNLOAD関数のダウンロード元のシート番号が格納されます。
･･･ X軸のAXIS MCM INFO構造体の内容が格納されます。
･･･ Y軸のAXIS MCM INFO構造体の内容が格納されます。
･･･ Z軸のAXIS MCM INFO構造体の内容が格納されます。
･･･ A軸のAXIS MCM INFO構造体の内容が格納されます。

・ユニットの電源投入後、未だ一度もシートをダウンロードしていない場合、
メンバ SheetNo には、H'00FFが格納されます。

- 33 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )UNIT MCM INFO READ関数
UC‑7660

UCD‑7620

UCD‑7621

UsbC

UCD‑7630

機 能指定されたユニットのMCMの情報を読み出します。
書 式
C言語
BOOL MC07̲UReadMcmInfo( DWORD hUnit, DWORD AxisSel,
MC07̲S̲UNIT̲MCM̲INFO *psUnitMcmInfo,
MC07̲S̲RESULT *psResult );VB

Function MC07̲UReadMcmInfo( ByVal hUnit As Long, ByVal AxisSel As Long,
ByRef psUnitMcmInfo As MC07̲S̲UNIT̲MCM̲INFO,
ByRef psResult As MC07̲S̲RESULT ) As Boolean

VB.NET

Function MC07̲UReadMcmInfo( ByVal hUnit As Integer, ByVal AxisSel As Integer,
ByRef psUnitMcmInfo As MC07̲S̲UNIT̲MCM̲INFO,
ByRef psResult As MC07̲S̲RESULT ) As Boolean

C#.NETbool MC07.UReadMcmInfo( uint hUnit, uint AxisSel,
ref MC07̲S̲UNIT̲MCM̲INFO psUnitMcmInfo,
ref MC07̲S̲RESULT psResult );

引

数

hUnit
AxisSelpsUnitMcmInfo
psResult･･･ ユニットハンドルを指定します。
･･･ MC07̲SEL̲X̲Y̲Z̲Aを指定します。
･･･ MCMの情報を格納するためのUNIT MCM INFO構造体のポインタを指定します。
･･･ この関数を実行した結果を格納するためのRESULT構造体のポインタを指定します。

戻り値
この関数を実行した結果、正常終了したときはTRUE、エラーが発生したときはFALSEを返します。

- 34 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )2-4-2. MCM SPEC の設定と読み出し
MCM の SPEC 設定と読み出しを行います。
設定する内容については、 UNIT MCM SPEC SET1, 2, 3 関数を参照してください。

AXIS MCM SPEC構造体
UC‑7660

UCD‑7620

UCD‑7621

UsbC

UCD‑7630

機 能軸の基本設定を格納します。
書 式
C言語
typedef struct ̲MC07̲S̲AXIS̲MCM̲SPEC {WORD Spec;} MC07̲S̲AXIS̲MCM̲SPEC;
VB

Type MC07̲S̲AXIS̲MCM̲SPEC
Spec As Integer
End Type

VB.NET

Structure MC07̲S̲AXIS̲MCM̲SPEC
Public Spec As ShortEnd Structure

C#.NET

struct MC07̲S̲AXIS̲MCM̲SPEC{
public ushort Spec;
}

メンバ

Spec

･･･ MCM SPEC1, 2, 3の設定データを格納します。

- 35 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )UNIT MCM SPEC構造体
UC‑7660

UCD‑7620

UCD‑7621

UsbC

UCD‑7630

機 能ユニットの基本設定を格納します。
書 式
C言語
typedef struct ̲MC07̲S̲UNIT̲MCM̲SPEC {MC07̲S̲AXIS̲MCM̲SPEC X;
MC07̲S̲AXIS̲MCM̲SPEC Y;
MC07̲S̲AXIS̲MCM̲SPEC Z;
MC07̲S̲AXIS̲MCM̲SPEC A;} MC07̲S̲UNIT̲MCM̲SPEC;
VB

Type MC07̲S̲UNIT̲MCM̲SPEC
X As MC07̲S̲AXIS̲MCM̲SPEC
Y As MC07̲S̲AXIS̲MCM̲SPEC
Z As MC07̲S̲AXIS̲MCM̲SPEC
A As MC07̲S̲AXIS̲MCM̲SPEC
End Type

VB.NET

Structure MC07̲S̲UNIT̲MCM̲SPEC
Public X As MC07̲S̲AXIS̲SPEC
Public Y As MC07̲S̲AXIS̲SPEC
Public Z As MC07̲S̲AXIS̲SPEC
Public A As MC07̲S̲AXIS̲SPEC
End Structure

C#.NET

struct MC07̲S̲UNIT̲MCM̲SPEC{
public MC07̲S̲AXIS̲MCM̲SPEC X;
public MC07̲S̲AXIS̲MCM̲SPEC Y;
public MC07̲S̲AXIS̲MCM̲SPEC Z;
public MC07̲S̲AXIS̲MCM̲SPEC A;
}

メンバ

X
Y
Z
A

･･･ X軸(またはSOUT0信号)のAXIS MCM SPEC構造体の内容を格納します。
･･･ Y軸(またはSOUT1信号)のAXIS MCM SPEC構造体の内容を格納します。
･･･ Z軸(またはSOUT2信号)のAXIS MCM SPEC構造体の内容を格納します。
･･･ A軸(またはSOUT3信号)のAXIS MCM SPEC構造体の内容を格納します。

- 36 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )UNIT MCM SPEC0 SET関数
UC‑7660

UCD‑7620

UsbC

UCD‑7621

UCD‑7630

機 能指定されたユニットに対し、MCM SPEC0を設定します。
この関数を実行する前に、MCM STATUS1の全軸のMERR = 0, MBUSY = 0を確認してください。
この関数の実行中は、全軸のMCM STATUS1のMBUSY = 1になります。
UNIT MCM SPEC0 SET関数は、ユニット全体の関数です。
直接ユーザアプリケーションからRAM領域に書き込み／読み出しできるように切り替えます。
書 式
C言語
BOOL MC07̲USetMcmSpec0( DWORD hUnit, WORD Spec, MC07̲S̲RESULT *psResult );VB

Function MC07̲USetMcmSpec0( ByVal hUnit As Long, ByVal Spec As Integer,
ByRef psResult As MC07̲S̲RESULT ) As Boolean

VB.NET

Function MC07̲USetMcmSpec0( ByVal hUnit As Integer, ByVal Spec As Short,
ByRef psResult As MC07̲S̲RESULT ) As Boolean

C#.NETbool MC07.USetMcmSpec0( uint hUnit, ushort Spec,ref MC07̲S̲RESULT psResult );

引

数

hUnit
Spec

･･･ ユニットハンドルを指定します。
･･･ MCM SPEC0の設定データを指定します。
MCMの動作モードを設定します。ユニット単位の設定です。
D15

D14

D13

D12

D11

D10

D9

D8

0

0

0

0

0

0

0

0

D7

D6

D5

D4

D3

D2

D1

0

0

0

0

0

0

0

D0
RAM
ACCESSENABLE

電源投入後の初期値は H'0000（アンダーライン側）です。
D0：RAM ACCESS ENABLE
ユーザアプリケーションから、UNIT MCM RAM WRITE関数、UNIT MCM RAM READ関数を用いた
RAM領域へのアクセス機能を「有効にする／無効にする」を設定します。
0：RAM領域へのアクセス機能を無効にする
1：RAM領域へのアクセス機能を有効にする

psResult･･･ この関数を実行した結果を格納するためのRESULT構造体のポインタを指定します。

戻り値
この関数を実行した結果、正常終了したときはTRUE、エラーが発生したときはFALSEを返します。

- 37 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )UNIT MCM SPEC0 GET関数
UC‑7660

UCD‑7620

UCD‑7621

UsbC

UCD‑7630

機 能指定されたユニットに対し、MCM SPEC0の設定を読み出します。
書 式
C言語
BOOL MC07̲UGetMcmSpec0( DWORD hUnit, WORD *pSpec, MC07̲S̲RESULT *psResult );VB

Function MC07̲UGetMcmSpec0( ByVal hUnit As Long, ByRef pSpec As Integer,
ByRef psResult As MC07̲S̲RESULT ) As Boolean

VB.NET

Function MC07̲UGetMcmSpec0( ByVal hUnit As Integer, ByRef pSpec As Short,
ByRef psResult As MC07̲S̲RESULT ) As Boolean

C#.NETbool MC07.UGetMcmSpec0( uint hUnit, ref ushort pSpec, ref MC07̲S̲RESULT psResult );

引

数

hUnit
pSpec
psResult･･･ ユニットハンドルを指定します。
･･･ MCM SPEC0の設定データを格納するための変数のポインタを指定します。
･･･ この関数を実行した結果を格納するためのRESULT構造体のポインタを指定します。

戻り値
この関数を実行した結果、正常終了したときはTRUE、エラーが発生したときはFALSEを返します。

- 38 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )UNIT MCM SPEC1 SET関数
UC‑7660

UCD‑7620

UCD‑7621

UsbC

UCD‑7630

機 能指定されたユニットにMCM SPEC1を設定します。
この関数を実行する前に、MCM STATUS1の全軸のMERR = 0, MBUSY = 0を確認してください。
UNIT MCM SPEC1 SET関数は、ユニット内の１軸に対する設定です。
MCMの同期を行うための信号の割り当てと機能を設定します。
・SS1 SELを「多軸同期の同期信号」に設定し、SS1 OUT1 ASSIGNを設定することにより、
内部トリガによる多軸同期を行います・SS1 SELを「ユニット外部からの同期信号」に設定することで、外部トリガによる同期を行います
書 式
C言語
BOOL MC07̲USetMcmSpec1( DWORD hUnit, DWORD AxisSel,
MC07̲S̲UNIT̲MCM̲SPEC *psUnitMcmSpec,
MC07̲S̲RESULT *psResult );VB

Function MC07̲USetMcmSpec1( ByVal hUnit As Long, ByVal AxisSel As Long,
ByRef psUnitMcmSpec As MC07̲S̲UNIT̲MCM̲SPEC,
ByRef psResult As MC07̲S̲RESULT ) As Boolean

VB.NET

Function MC07̲USetMcmSpec1( ByVal hUnit As Integer, ByVal AxisSel As Integer,
ByRef psUnitMcmSpec As MC07̲S̲UNIT̲MCM̲SPEC,
ByRef psResult As MC07̲S̲RESULT ) As Boolean

C#.NETbool MC07.USetMcmSpec1( uint hUnit, uint AxisSel,
ref MC07̲S̲UNIT̲MCM̲SPEC psUnitMcmSpec,ref MC07̲S̲RESULT psResult );

引

数

hUnit
AxisSel･･･ ユニットハンドルを指定します。
･･･ 軸（複数指定可）を指定します。

複数の軸を指定する場合は、論理和を指定します
指定できる値軸MC07̲SEL̲X
X軸
MC07̲SEL̲YY軸
MC07̲SEL̲Z
Z軸
MC07̲SEL̲A
A軸
次の指定も組み合わせることができます
指定できる値軸MC07̲SEL̲X̲Y
X軸とY軸
MC07̲SEL̲X̲Z
X軸とZ軸
MC07̲SEL̲X̲A
X軸とA軸
MC07̲SEL̲Y̲Z
Y軸とZ軸
MC07̲SEL̲Y̲A
Y軸とA軸
MC07̲SEL̲Z̲A
Z軸とA軸指定できる値
MC07̲SEL̲X̲Y̲Z
MC07̲SEL̲X̲Y̲A
MC07̲SEL̲X̲Z̲A
MC07̲SEL̲Y̲Z̲A
MC07̲SEL̲X̲Y̲Z̲A- 39 -軸
X軸とY軸とZ軸
X軸とY軸とA軸
X軸とZ軸とA軸
Y軸とZ軸とA軸
X軸とY軸とZ軸とA軸

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )psUnitMcmSpec･･･ 設定するデータが格納されているUNIT MCM SPEC構造体のポインタを指定します。

D15

D14

D13

D12

D11

D10

D9

D8

0

0

0

0

0

SS1
SEL2

SS1
SEL1

SS1
SEL0

D7

D6

D5

D4

0

0

0

D3
SS1
AOUT1
ASSIGN

D2
SS1
ZOUT1
ASSIGN

D1
SS1
YOUT1
ASSIGN

D0
SS1
XOUT1
ASSIGN0

電源投入後の初期値は H'0000（アンダーライン側）です。

D0 ：SS1 XOUT1 ASSIGN
SS1にXOUT1を「割り当てる／割り当てない」を選択します。
0：割り当てない
1：割り当てる
D1 ：SS1 YOUT1 ASSIGN
SS1にYOUT1を「割り当てる／割り当てない」を選択します。
0：割り当てない
1：割り当てる
D2 ：SS1 ZOUT1 ASSIGN
SS1にZOUT1を「割り当てる／割り当てない」を選択します。
0：割り当てない
1：割り当てる
D3 ：SS1 AOUT1 ASSIGN
SS1にAOUT1を「割り当てる／割り当てない」を選択します。
0：割り当てない
1：割り当てるD10‑‑8 ：SS1 SEL
SS1の機能を選択します。
SEL2
0
0
0
0
1
1
1
1

SEL1
0
0
1
1
0
0
1
1

SEL0
0
1
0
1
0
1
0
1

SS1の機能機能なし
多軸同期１のマスター軸からの同期信号
多軸同期２のスレーブ軸からの同期信号
多軸同期２のマスター軸からの同期信号
ユニット外部からの同期信号
ユニット外部からの同期信号
機能なし
機能なし

SS1に入力する信号
常時ローレベルOUT1の切り出し信号
OUT1の合成信号
OUT1のスルー信号
IN0信号
IN1信号
常時ローレベル
常時ローレベル● 内部トリガによる多軸同期
多軸同期１のマスター軸については「機能なし」を選択します。
（多軸同期１のマスター軸とスレーブ軸を兼ねる場合、「多軸同期１のマスター軸からの同期信号」
を選択します）多軸同期１のスレーブ軸は「多軸同期１のマスター軸からの同期信号」を選択します。
多軸同期２のマスター軸は「多軸同期２のスレーブ軸からの同期信号」を選択します。
多軸同期２のスレーブ軸は「多軸同期２のマスター軸からの同期信号」を選択します。
SS1 SELを「マスター軸からの同期信号」にする場合、マスター軸のOUT1のみを
SS1に割り当てるようにSS1 XOUT1 ASSIGN ‑‑ SS1 AOUT1 ASSIGNを設定してください。

- 40 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )● 外部トリガによる同期
MCMをIN0信号に同期させる場合、「ユニット外部からの同期信号(IN0信号)」を選択します。
MCMをIN1信号に同期させる場合、「ユニット外部からの同期信号(IN1信号)」を選択します。
【 多軸同期または外部トリガによる同期を行うための信号と軸の機能（X軸の場合）】

同期信号
同期信号

IN0
IN1
汎用入力
汎用入力

停止センサ(XSS0)
停止センサ(YSS0)

XOUT1
YOUT1
*1 ZOUT1*1 AOUT1

切り出し

同期信号

多軸同期１のマスター軸からの同期信号*1*1

SS1 XOUT1 ASSIGN
SS1 YOUT1 ASSIGN
SS1 ZOUT1 ASSIGN
SS1 AOUT1 ASSIGN

同期信号

合成

SS1 SEL

XSS1

多軸同期２のスレーブ軸からの同期信号スルー

同期信号

多軸同期２のマスター軸からの同期信号0
機能なし*1 ZOUT1,AOUT1,SS1 ZOUT1 ASSIGN,SS1 AOUT1 ASSIGN は、 4 軸ユニットのみ指定及び選択が出来ます。

・IN0信号を同期信号として使用する場合、停止センサとして使用しないでください。
・IN1信号を同期信号として使用する場合、停止センサとして使用しないでください。

psResult･･･ この関数を実行した結果を格納するためのRESULT構造体のポインタを指定します。

戻り値
この関数を実行した結果、正常終了したときはTRUE、エラーが発生したときはFALSEを返します。

- 41 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )UNIT MCM SPEC1 GET関数
UC‑7660

UCD‑7620

UCD‑7621

UsbC

UCD‑7630

機 能指定されたユニットのMCM SPEC1の設定を読み出します。
書 式
C言語
BOOL MC07̲UGetMcmSpec1( DWORD hUnit, DWORD AxisSel,
MC07̲S̲UNIT̲MCM̲SPEC *psUnitMcmSpec,
MC07̲S̲RESULT *psResult );VB

Function MC07̲UGetMcmSpec1( ByVal hUnit As Long, ByVal AxisSel As Long,
ByRef psUnitMcmSpec As MC07̲S̲UNIT̲MCM̲SPEC,
ByRef psResult As MC07̲S̲RESULT ) As Boolean

VB.NET

Function MC07̲UGetMcmSpec1( ByVal hUnit As Integer, ByVal AxisSel As Integer,
ByRef psUnitMcmSpec As MC07̲S̲UNIT̲MCM̲SPEC,
ByRef psResult As MC07̲S̲RESULT ) As Boolean

C#.NETbool MC07.UGetMcmSpec1( uint hUnit, uint AxisSel,
ref MC07̲S̲UNIT̲MCM̲SPEC psUnitMcmSpec,ref MC07̲S̲RESULT psResult );

引

数

hUnit
AxisSelpsUnitMcmSpec
psResult･･･ ユニットハンドルを指定します。
･･･ MC07̲SEL̲X̲Y̲Z̲Aを指定します。
･･･ 設定されているデータを格納するためのUNIT MCM SPEC構造体のポインタを指定します。
･･･ この関数を実行した結果を格納するためのRESULT構造体のポインタを指定します。

戻り値
この関数を実行した結果、正常終了したときはTRUE、エラーが発生したときはFALSEを返します。

- 42 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )UNIT MCM SPEC2 SET関数
UC‑7660

UCD‑7620

UsbC

UCD‑7621

UCD‑7630

機 能指定されたユニットにMCM SPEC2を設定します。
この関数を実行する前に、MCM STATUS1の全軸のMERR = 0, MBUSY = 0を確認してください。
UNIT MCM SPEC2 SET関数は、ユニット内の１軸に対する設定です。
停止センサSS0に入力する信号を設定します。
書 式
C言語
BOOL MC07̲USetMcmSpec2( DWORD hUnit, DWORD AxisSel,
MC07̲S̲UNIT̲MCM̲SPEC *psUnitMcmSpec,
MC07̲S̲RESULT *psResult );VB

Function MC07̲USetMcmSpec2( ByVal hUnit As Long, ByVal AxisSel As Long,
ByRef psUnitMcmSpec As MC07̲S̲UNIT̲MCM̲SPEC,
ByRef psResult As MC07̲S̲RESULT ) As Boolean

VB.NET

Function MC07̲USetMcmSpec2( ByVal hUnit As Integer, ByVal AxisSel As Integer,
ByRef psUnitMcmSpec As MC07̲S̲UNIT̲MCM̲SPEC,
ByRef psResult As MC07̲S̲RESULT ) As Boolean

C#.NETbool MC07.USetMcmSpec2( uint hUnit, uint AxisSel,
ref MC07̲S̲UNIT̲MCM̲SPEC psUnitMcmSpec,ref MC07̲S̲RESULT psResult );

引

数

hUnit
AxisSel･･･ ユニットハンドルを指定します。
･･･ 軸（複数指定可）を指定します。

複数の軸を指定する場合は、論理和を指定します
指定できる値軸MC07̲SEL̲X
X軸
MC07̲SEL̲YY軸
MC07̲SEL̲Z
Z軸
MC07̲SEL̲A
A軸
次の指定も組み合わせることができます
指定できる値軸MC07̲SEL̲X̲Y
X軸とY軸
MC07̲SEL̲X̲Z
X軸とZ軸
MC07̲SEL̲X̲A
X軸とA軸
MC07̲SEL̲Y̲Z
Y軸とZ軸
MC07̲SEL̲Y̲A
Y 軸と A 軸
MC07̲SEL̲Z̲A
Z 軸と A 軸

psUnitMcmSpec

指定できる値
MC07̲SEL̲X̲Y̲Z
MC07̲SEL̲X̲Y̲A
MC07̲SEL̲X̲Z̲A
MC07̲SEL̲Y̲Z̲A
MC07̲SEL̲X̲Y̲Z̲A軸
X軸とY軸とZ軸
X軸とY軸とA軸
X軸とZ軸とA軸
Y軸とZ軸とA軸
X 軸と Y 軸と Z 軸とA軸･･･ 設定するデータが格納されているUNIT MCM SPEC構造体のポインタを指定します。

D15

D14

D13

D12

D11

0

0

0

0

0

D7

D6

D5

D4

D3

SIGNAL2 SEL

D10
SS0
SEL2
D2

D9
SS0
SEL1
D1

SIGNAL1 SEL- 43 -

D8
SS0
SEL0
D0

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )電源投入後の初期値は次の通りです。
・X軸: H'0000（SIGNAL1 SEL = 0, SIGNAL2 SEL = 0, SS0 SEL = 0）
・Y軸: H'0001（SIGNAL1 SEL = 1, SIGNAL2 SEL = 0, SS0 SEL = 0）・Z軸: H'0400（SIGNAL1 SEL = 0, SIGNAL2 SEL = 0, SS0 SEL = 4）
・A軸: H'0400（SIGNAL1 SEL = 0, SIGNAL2 SEL = 0, SS0 SEL = 4）
D3‑‑0 ：SIGNAL1 SEL
D7‑‑4 ：SIGNAL2 SEL
SIGNAL1, SIGNAL2に入力する信号を選択します。
SEL3 SEL2
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
1
‑

SEL1
0
0
1
1
0
0
1
1
‑

SEL0
0
1
0
1
0
1
0
1
‑

SIGNAL1,2に入力する信号
IN0信号
IN1信号
設定禁止（常時ローレベル）
設定禁止（常時ローレベル）
SIN0信号
SIN1信号
SIN2信号
SIN3信号
設定禁止（常時ローレベル）

・SIGNAL1, SIGNAL2に入力する際に負論理信号は正論理信号になります。
D10‑‑8 ：SS0 SEL
SS0に入力する信号を選択します。
SEL2
0
0
0
0
1
1
1
1

SEL1
0
0
1
1
0
0
1
1

SEL0
0
1
0
1
0
1
0
1

SS0に入力する信号
SIGNAL1のスルー出力
SIGNAL1 AND SIGNAL2のスルー出力
SIGNAL1 OR SIGNAL2のスルー出力
設定禁止（常時ローレベル）
設定禁止（常時ローレベル）
設定禁止（常時ローレベル）
設定禁止（常時ローレベル）
設定禁止（常時ローレベル）【 停止センサ機能（ X 軸の場合）】

IN0
IN1
SIN0
SIN1
SIN2
SIN3

SIGNAL1 SEL

SIGNAL1

SS0 SEL

SIGNAL2 SEL

psResult

XSS0

SIGNAL2･･･ この関数を実行した結果を格納するためのRESULT構造体のポインタを指定します。

戻り値
この関数を実行した結果、正常終了したときはTRUE、エラーが発生したときはFALSEを返します。

- 44 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )UNIT MCM SPEC2 GET関数
UC‑7660

UCD‑7620

UCD‑7621

UsbC

UCD‑7630

機 能指定されたユニットのMCM SPEC2の設定を読み出します。
書 式
C言語
BOOL MC07̲UGetMcmSpec2( DWORD hUnit, DWORD AxisSel,
MC07̲S̲UNIT̲MCM̲SPEC *psUnitMcmSpec,
MC07̲S̲RESULT *psResult );VB

Function MC07̲UGetMcmSpec2( ByVal hUnit As Long, ByVal AxisSel As Long,
ByRef psUnitMcmSpec As MC07̲S̲UNIT̲MCM̲SPEC,
ByRef psResult As MC07̲S̲RESULT ) As Boolean

VB.NET

Function MC07̲UGetMcmSpec2( ByVal hUnit As Integer, ByVal AxisSel As Integer,
ByRef psUnitMcmSpec As MC07̲S̲UNIT̲MCM̲SPEC,
ByRef psResult As MC07̲S̲RESULT ) As Boolean

C#.NETbool MC07.UGetMcmSpec2( uint hUnit, uint AxisSel,
ref MC07̲S̲UNIT̲MCM̲SPEC psUnitMcmSpec,ref MC07̲S̲RESULT psResult );

引

数

hUnit
AxisSelpsUnitMcmSpec
psResult･･･ ユニットハンドルを指定します。
･･･ MC07̲SEL̲X̲Y̲Z̲Aを指定します。
･･･ 設定されているデータを格納するためのUNIT MCM SPEC構造体のポインタを指定します。
･･･ この関数を実行した結果を格納するためのRESULT構造体のポインタを指定します。

戻り値
この関数を実行した結果、正常終了したときはTRUE、エラーが発生したときはFALSEを返します。

- 45 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )UNIT MCM SPEC3 SET関数
UC‑7660

UCD‑7620

UsbC

UCD‑7621

UCD‑7630

機 能指定されたユニットにMCM SPEC3を設定します。
SOUT0信号〜SOUT3信号のそれぞれに対する設定です。
この関数を実行する前に、MCM STATUS1の全軸のMERR = 0, MBUSY = 0を確認してください。
UNIT MCM SPEC3 SET関数は、ユニット内の１軸に対する設定です。
ステータス外部出力SOUTx信号に出力する信号を設定します。
書 式
C言語
BOOL MC07̲USetMcmSpec3( DWORD hUnit, DWORD AxisSel,
MC07̲S̲UNIT̲MCM̲SPEC *psUnitMcmSpec,
MC07̲S̲RESULT *psResult );VB

Function MC07̲USetMcmSpec3( ByVal hUnit As Long, ByVal AxisSel As Long,
ByRef psUnitMcmSpec As MC07̲S̲UNIT̲MCM̲SPEC,
ByRef psResult As MC07̲S̲RESULT ) As Boolean

VB.NET

Function MC07̲USetMcmSpec3( ByVal hUnit As Integer, ByVal AxisSel As Integer,
ByRef psUnitMcmSpec As MC07̲S̲UNIT̲MCM̲SPEC,
ByRef psResult As MC07̲S̲RESULT ) As Boolean

C#.NETbool MC07.USetMcmSpec3( uint hUnit, uint AxisSel,
ref MC07̲S̲UNIT̲MCM̲SPEC psUnitMcmSpec,ref MC07̲S̲RESULT psResult );

引

数

hUnit
AxisSel･･･ ユニットハンドルを指定します。
･･･ 信号（複数指定可）を指定します。

複数の信号を指定する場合は、論理和を指定します
指定できる値信号MC07̲SEL̲X
SOUT0信号MC07̲SEL̲Y
SOUT1信号MC07̲SEL̲Z
SOUT2信号MC07̲SEL̲A
SOUT3信号次の指定も組み合わせることができます
指定できる値軸MC07̲SEL̲X̲Y
SOUT0、SOUT1信号
MC07̲SEL̲X̲Z
SOUT0、SOUT2信号
MC07̲SEL̲X̲A
SOUT0、SOUT3信号
MC07̲SEL̲Y̲Z
SOUT1、SOUT2信号
MC07̲SEL̲Y̲A
SOUT1、SOUT3信号
MC07̲SEL̲Z̲A
SOUT2、SOUT3信号

psUnitMcmSpec

指定できる値
MC07̲SEL̲X̲Y̲Z
MC07̲SEL̲X̲Y̲A
MC07̲SEL̲X̲Z̲A
MC07̲SEL̲Y̲Z̲A
MC07̲SEL̲X̲Y̲Z̲A

軸
SOUT0、SOUT1、SOUT2信号
SOUT0、SOUT1、SOUT3信号
SOUT0、SOUT2、SOUT3信号
SOUT1、SOUT2、SOUT3信号
SOUT0〜SOUT3信号･･･ 設定するデータが格納されているUNIT MCM SPEC構造体のポインタを指定します。

D15

D14

D13

D12

D11

0

0

0

0

0

D7

D6

D5

D4

D3

SIGNAL2 SEL

D10
SOUT
SEL2
D2

D9
SOUT
SEL1
D1

SIGNAL1 SEL- 46 -

D8
SOUT
SEL0
D0

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )電源投入後の初期値は次の通りです。
・SOUT0 : H'0000（SIGNAL1 SEL = 0, SIGNAL2 SEL = 0, SOUT SEL = 0）
・SOUT1 : H'0001（SIGNAL1 SEL = 1, SIGNAL2 SEL = 0, SOUT SEL = 0）
・SOUT2 : H'0002（SIGNAL1 SEL = 2, SIGNAL2 SEL = 0, SOUT SEL = 0）
・SOUT3 : H'0003（SIGNAL1 SEL = 3, SIGNAL2 SEL = 0, SOUT SEL = 0）
D3‑‑0 ：SIGNAL1 SEL
D7‑‑4 ：SIGNAL2 SEL
SIGNAL1, SIGNAL2に出力する信号を選択します。
SEL3 SEL2
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
1
‑

SEL1
0
0
1
1
0
0
1
1
‑

SEL0
0
1
0
1
0
1
0
1
‑

SIGNAL1,2に出力する信号
XOUT0
YOUT0
ZOUT0
AOUT0
XOUT1
YOUT1
ZOUT1
AOUT1
設定禁止（常時ローレベル）

D10‑‑8 ：SOUT SEL
SOUTx信号に出力する信号を選択します。
SEL2
0
0
0
0
1
1
1
1

SEL1
0
0
1
1
0
0
1
1

SEL0
0
1
0
1
0
1
0
1

SOUTn信号に出力する信号
SIGNAL1のスルー出力
SIGNAL1 AND SIGNAL2のスルー出力
SIGNAL1 OR SIGNAL2のスルー出力
設定禁止（常時ローレベル）
設定禁止（常時ローレベル）
設定禁止（常時ローレベル）
設定禁止（常時ローレベル）
設定禁止（常時ローレベル）

・SOUTx信号に出力する際に正論理信号は負論理信号になります。
【 ステータス外部出力機能（SOUT0信号の場合）】
XOUT0
YOUT0
*1 ZOUT0*1 AOUT0
XOUT1
YOUT1
*1 ZOUT1*1 AOUT1

SIGNAL1 SEL

SIGNAL1

SOUT SEL

SIGNAL2 SEL

SOUT0

SIGNAL2*1 ZOUT0,AOUT0,ZOUT1,AOUT1 は、 4 軸ユニットのみ選択が出来ます。

psResult･･･ この関数を実行した結果を格納するためのRESULT構造体のポインタを指定します。

戻り値
この関数を実行した結果、正常終了したときはTRUE、エラーが発生したときはFALSEを返します。

- 47 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )UNIT MCM SPEC3 GET関数
UC‑7660

UCD‑7620

UCD‑7621

UsbC

UCD‑7630

機 能指定されたユニットのMCM SPEC3の設定を読み出します。
書 式
C言語
BOOL MC07̲UGetMcmSpec3( DWORD hUnit, DWORD AxisSel,
MC07̲S̲UNIT̲MCM̲SPEC *psUnitMcmSpec,
MC07̲S̲RESULT *psResult );VB

Function MC07̲UGetMcmSpec3( ByVal hUnit As Long, ByVal AxisSel As Long,
ByRef psUnitMcmSpec As MC07̲S̲UNIT̲MCM̲SPEC,
ByRef psResult As MC07̲S̲RESULT ) As Boolean

VB.NET

Function MC07̲UGetMcmSpec3( ByVal hUnit As Integer, ByVal AxisSel As Integer,
ByRef psUnitMcmSpec As MC07̲S̲UNIT̲MCM̲SPEC,
ByRef psResult As MC07̲S̲RESULT ) As Boolean

C#.NETbool MC07.UGetMcmSpec3( uint hUnit, uint AxisSel,
ref MC07̲S̲UNIT̲MCM̲SPEC psUnitMcmSpec,ref MC07̲S̲RESULT psResult );

引

数

hUnit
AxisSelpsUnitMcmSpec
psResult･･･ ユニットハンドルを指定します。
･･･ MC07̲SEL̲X̲Y̲Z̲Aを指定します。
･･･ 設定されているデータを格納するためのUNIT MCM SPEC構造体のポインタを指定します。
･･･ この関数を実行した結果を格納するためのRESULT構造体のポインタを指定します。

戻り値
この関数を実行した結果、正常終了したときはTRUE、エラーが発生したときはFALSEを返します。

- 48 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )2-4-3. シートのダウンロード
MCM のシートから MCC09 の RAM 領域へダウンロードを行います。

UNIT MCM SHEET DOWNLOAD関数
UC‑7660

UCD‑7620

UCD‑7621

UsbC

UCD‑7630

機 能指定されたユニットの指定されたシートをRAM領域にダウンロードします。
この関数を実行する前に、MCM STATUS1の全軸のMERR = 0, MBUSY = 0を確認してください。
書 式
C言語
BOOL MC07̲UDownloadMcmSheet( DWORD hUnit, WORD SheetNo,
MC07̲S̲RESULT *psResult );VB

Function MC07̲UDownloadMcmSheet( ByVal hUnit As Long, ByVal SheetNo As Integer,
ByRef psResult As MC07̲S̲RESULT ) As Boolean

VB.NET

Function MC07̲UDownloadMcmSheet( ByVal hUnit As Integer, ByVal SheetNo As Short,
ByVal psResult As MC07̲S̲RESULT ) As Boolean

C#.NETbool MC07.UDownloadMcmSheet( uint hUnit, ushort SheetNo,
ref MC07̲S̲RESULT psResult );

引

数

hUnit
SheetNo
psResult･･･ ユニットハンドルを指定します。
･･･ シート番号(0〜3)を指定します。
･･･ この関数を実行した結果を格納するためのRESULT構造体のポインタを指定します。

戻り値
この関数を実行した結果、正常終了したときはTRUE、エラーが発生したときはFALSEを返します。

- 49 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )2-4-4. RAM 領域のアクセス
ユーザアプリケーションから MCC09 の RAM 領域にアクセスを行います。

UNIT MCM RAM WRITE関数
UC‑7660

UCD‑7620

UCD‑7621

UsbC

UCD‑7630

機 能指定されたユニットに対し、次の処理を行います。
・RAM領域の指定された軸、指定されたアドレスにコマンドコード、データを書き込みます。
この関数を実行する前に、MCM STATUS1の該当軸のMERR = 0, MBUSY = 0を確認してください。
この関数の実行中は、対象軸のMCM STATUS1のMBUSY = 1になります。
UNIT MCM SPEC0 SET関数のRAM ACCESS ENABLE =0 の場合、この関数を実行することはできません。
ユーザアプリケーションからRAM領域に書き込み後のRAM動作は、UNIT MCM START関数で実行します。
書 式
C言語
BOOL MC07̲UWriteMcmRam( DWORD hUnit, WORD Axis, DWORD Address,
MC07̲S̲COMMAND̲DATA *psCmdData,
MC07̲S̲RESULT *psResult );VB

Function MC07̲UWriteMcmRam( ByVal hUnit As Long, ByVal Axis As Integer,
ByVal Address As Long, ByRef psCmdData As MC07̲S̲COMMAND̲DATA,
ByRef psResult As MC07̲S̲RESULT ) As Boolean

VB.NET

Function MC07̲UWriteMcmRam( ByVal hUnit As Integer, ByVal Axis As Short,
ByVal Address As Integer, ByRef psCmdData As MC07̲S̲COMMAND̲DATA,
ByRef psResult As MC07̲S̲RESULT ) As Boolean

C#.NETbool MC07.UWriteMcmRam( uint hUnit, ushort Axis,
unit Address, ref MC07̲S̲COMMAND̲DATA psCmdData,ref MC07̲S̲RESULT psResult );

引

数

hUnit
Axis

･･･ ユニットハンドルを指定します。
･･･ 軸を指定します。

指定できる値
MC07̲X
MC07̲Y
MC07̲Z
MC07̲A

Address
psCmdData
psResult

軸
X軸
Y軸
Z軸
A軸

･･･ RAM領域のメモリアドレス(0〜3,999)を指定します。
･･･ 書き込むコマンドコード、データが格納されているコマンドデータ構造体のポインタを指定します。
･･･ この関数を実行した結果を格納するためのRESULT構造体のポインタを指定します。

戻り値
この関数を実行した結果、正常終了したときはTRUE、エラーが発生したときはFALSEを返します。

- 50 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )UNIT MCM RAM READ関数
UC‑7660

UCD‑7620

UCD‑7621

UsbC

UCD‑7630

機 能指定されたユニットに対し、次の処理を行います。
・RAM領域の指定された軸、指定されたアドレスからコマンドコード、データを読み出します
この関数を実行する前に、MCM STATUS1の該当軸のMERR = 0, MBUSY = 0を確認してください。
この関数の実行中は、対象軸のMCM STATUS1のMBUSY = 1になります。
UNIT MCM SPEC0 SET関数のRAM ACCESS ENABLE =0 の場合、この関数は実行することはできません。
書 式
C言語BOOL MC07̲UReadMcmRam( DWORD hUnit, WORD Axis, DWORD Address,
MC07̲S̲COMMAND̲DATA *psCmdData,
MC07̲S̲RESULT *psResult );VB

Function MC07̲UReadMcmRam( ByVal hUnit As Long, ByVal Axis As Integer,
ByVal Address As Long, ByRef psCmdData As MC07̲S̲COMMAND̲DATA,
ByRef psResult As MC07̲S̲RESULT ) As Boolean

VB.NET

Function MC07̲UReadMcmRam( ByVal hUnit As Integer, ByVal Axis As Short,
ByVal Address As Integer, ByRef psCmdData As MC07̲S̲COMMAND̲DATA,
ByRef psResult As MC07̲S̲RESULT ) As Boolean

C#.NETbool MC07.UReadMcmRam( uint hUnit, ushort Axis,
unit Address, ref MC07̲S̲COMMAND̲DATA psCmdData,ref MC07̲S̲RESULT psResult );

引

数

hUnit
Axis

･･･ ユニットハンドルを指定します。
･･･ 軸を指定します。

指定できる値
MC07̲X
MC07̲Y
MC07̲Z
MC07̲A

Address
psCmdData
psResult

軸
X軸
Y軸
Z軸
A軸

･･･ RAM領域のメモリアドレス(0〜3,999)を指定します。
･･･ 読み出すコマンドコード、データを格納するためのコマンドデータ構造体のポインタを指定します。
･･･ この関数を実行した結果を格納するためのRESULT構造体のポインタを指定します。

戻り値
この関数を実行した結果、正常終了したときはTRUE、エラーが発生したときはFALSEを返します。

- 51 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )2-4-5. MCM の制御
MCM の制御を行います。

AXIS MCM START DATA構造体
UC‑7660

UCD‑7620

UCD‑7621

UsbC

UCD‑7630

機 能
MCMを開始するための情報を格納します。
書 式
C言語
typedef struct ̲MC07̲S̲AXIS̲MCM̲START̲DATA {DWORD Address;} MC07̲S̲AXIS̲MCM̲START̲DATA;VBType MC07̲S̲AXIS̲MCM̲START̲DATA
Address As LongEnd Type

VB.NET

Structure MC07̲S̲AXIS̲MCM̲START̲DATA
Public Address As Integer
End Structure

C#.NET

struct MC07̲S̲AXIS̲MCM̲START̲DATA{
public uint Address;}

メンバ

Address･･･ 開始アドレスを格納します。

- 52 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )UNIT MCM START DATA構造体
UC‑7660

UCD‑7620

UCD‑7621

UsbC

UCD‑7630

機 能
MCMを開始するための情報を格納します。
書 式
C言語
typedef struct ̲MC07̲S̲UNIT̲MCM̲START̲DATA {MC07̲S̲AXIS̲MCM̲START̲DATA X;
MC07̲S̲AXIS̲MCM̲START̲DATA Y;
MC07̲S̲AXIS̲MCM̲START̲DATA Z;
MC07̲S̲AXIS̲MCM̲START̲DATA A;} MC07̲S̲UNIT̲MCM̲START̲DATA;VBType MC07̲S̲UNIT̲MCM̲START̲DATAX As MC07̲S̲AXIS̲MCM̲START̲DATAY As MC07̲S̲AXIS̲MCM̲START̲DATAZ As MC07̲S̲AXIS̲MCM̲START̲DATAA As MC07̲S̲AXIS̲MCM̲START̲DATA
End Type

VB.NET

Structure MC07̲S̲UNIT̲MCM̲START̲DATA
Public X As MC07̲S̲AXIS̲START̲DATA
Public Y As MC07̲S̲AXIS̲START̲DATA
Public Z As MC07̲S̲AXIS̲START̲DATA
Public A As MC07̲S̲AXIS̲START̲DATA
End Structure

C#.NET

struct MC07̲S̲UNIT̲MCM̲START̲DATA{
public MC07̲S̲AXIS̲MCM̲START̲DATA X;
public MC07̲S̲AXIS̲MCM̲START̲DATA Y;
public MC07̲S̲AXIS̲MCM̲START̲DATA Z;
public MC07̲S̲AXIS̲MCM̲START̲DATA A;
}

メンバ

X
Y
Z
A

･･･ X軸のAXIS MCM START DATA構造体の内容を格納します。
･･･ Y軸のAXIS MCM START DATA構造体の内容を格納します。
･･･ Z軸のAXIS MCM START DATA構造体の内容を格納します。
･･･ A軸のAXIS MCM START DATA構造体の内容を格納します。

- 53 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )UNIT MCM START関 数
UC‑7660

UCD‑7620

UCD‑7621

UsbC

UCD‑7630

機 能指定されたユニットに対し、次の処理を一括で行います。
・指定された軸（複数指定可）のMCMを開始します。
この関数を実行する前に、MCM STATUS1の該当軸のMERR = 0, MBUSY = 0を確認してください。
書 式
C言語
BOOL MC07̲UStartMcm( DWORD hUnit, DWORD AxisSel,
MC07̲S̲UNIT̲MCM̲START̲DATA *psUnitMcmStartData,
MC07̲S̲RESULT *psResult );VB

Function MC07̲UStartMcm( ByVal hUnit As Long, ByVal AxisSel As Long,
ByRef psUnitMcmStartData As MC07̲S̲UNIT̲MCM̲START̲DATA,
ByRef psResult As MC07̲S̲RESULT ) As Boolean

VB.NET

Function MC07̲UStartMcm( ByVal hUnit As Integer, ByVal AxisSel As Integer,
ByRef psUnitMcmStartData As MC07̲S̲UNIT̲MCM̲START̲DATA,
ByRef psResult As MC07̲S̲RESULT ) As Boolean

C#.NETbool MC07.UStartMcm( uint hUnit, uint AxisSel,
ref MC07̲S̲UNIT̲MCM̲START̲DATA psUnitMcmStartData,ref MC07̲S̲RESULT psResult );

引

数

hUnit
AxisSel･･･ ユニットハンドルを指定します。
･･･ 軸（複数指定可）を指定します。

複数の軸を指定する場合は、論理和を指定します
指定できる値軸MC07̲SEL̲X
X軸
MC07̲SEL̲YY軸
MC07̲SEL̲Z
Z軸
MC07̲SEL̲A
A軸
次の指定も組み合わせる事が可能です。
指定できる値軸MC07̲SEL̲X̲Y
X軸とY軸
MC07̲SEL̲X̲Z
X軸とZ軸
MC07̲SEL̲X̲A
X軸とA軸
MC07̲SEL̲Y̲Z
Y軸とZ軸
MC07̲SEL̲Y̲A
Y軸とA軸
MC07̲SEL̲Z̲A
Z軸とA軸

psUnitMcmStartData
psResult指定できる値
MC07̲SEL̲X̲Y̲Z
MC07̲SEL̲X̲Y̲A
MC07̲SEL̲X̲Z̲A
MC07̲SEL̲Y̲Z̲A
MC07̲SEL̲X̲Y̲Z̲A軸
X軸とY軸とZ軸
X軸とY軸とA軸
X軸とZ軸とA軸
Y軸とZ軸とA軸
X軸とY軸とZ軸とA軸･･･ MCMを開始するための情報が格納されているUNIT MCM START DATA構造体のポインタを指定します。
･･･ この関数を実行した結果を格納するためのRESULT構造体のポインタを指定します。

戻り値
この関数を実行した結果、正常終了したときはTRUE、エラーが発生したときはFALSEを返します。

- 54 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )UNIT MCM FSSTOP関 数
UC‑7660

UCD‑7620

UCD‑7621

UsbC

UCD‑7630

機 能指定されたユニットに対し、次の処理を一括で行います。
・指定された軸（複数指定可）に即時停止機能を実行します。
書 式
C言語
BOOL MC07̲UFsstopMcm( DWORD hUnit, DWORD AxisSel,
MC07̲S̲RESULT *psResult );VB

Function MC07̲UFsstopMcm( ByVal hUnit As Long,
ByVal AxisSel As Long,
ByRef psResult As MC07̲S̲RESULT ) As Boolean

VB.NET

Function MC07̲UFsstopMcm( ByVal hUnit As Integer,
ByVal AxisSel As Integer,
ByRef psResult As MC07̲S̲RESULT ) As Boolean

C#.NETbool MC07.UFsstopMcm( uint hUnit, uint AxisSel,
ref MC07̲S̲RESULT psResult );

引

数

hUnit
AxisSel･･･ ユニットハンドルを指定します。
･･･ 軸（複数指定可）を指定します。

複数の軸を指定する場合は、論理和を指定します
指定できる値軸MC07̲SEL̲X
X軸
MC07̲SEL̲YY軸
MC07̲SEL̲Z
Z軸
MC07̲SEL̲A
A軸
次の指定も組み合わせる事が可能です。
指定できる値軸MC07̲SEL̲X̲Y
X軸とY軸
MC07̲SEL̲X̲Z
X軸とZ軸
MC07̲SEL̲X̲A
X軸とA軸
MC07̲SEL̲Y̲Z
Y軸とZ軸
MC07̲SEL̲Y̲A
Y軸とA軸
MC07̲SEL̲Z̲A
Z軸とA軸

psResult指定できる値
MC07̲SEL̲X̲Y̲Z
MC07̲SEL̲X̲Y̲A
MC07̲SEL̲X̲Z̲A
MC07̲SEL̲Y̲Z̲A
MC07̲SEL̲X̲Y̲Z̲A軸
X軸とY軸とZ軸
X軸とY軸とA軸
X軸とZ軸とA軸
Y軸とZ軸とA軸
X軸とY軸とZ軸とA軸･･･ この関数を実行した結果を格納するためのRESULT構造体のポインタを指定します。

戻り値
この関数を実行した結果、正常終了したときはTRUE、エラーが発生したときはFALSEを返します。

- 55 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )UNIT MCM SLSTOP関 数
UC‑7660

UCD‑7620

UCD‑7621

UsbC

UCD‑7630

機 能指定されたユニットに対し、次の処理を一括で行います。
・指定された軸（複数指定可）に減速停止機能を実行します。
書 式
C言語
BOOL MC07̲USlstopMcm( DWORD hUnit, DWORD AxisSel,
MC07̲S̲RESULT *psResult );VB

Function MC07̲USlstopMcm( ByVal hUnit As Long,
ByVal AxisSel As Long,
ByRef psResult As MC07̲S̲RESULT ) As Boolean

VB.NET

Function MC07̲USlstopMcm( ByVal hUnit As Integer,
ByVal AxisSel As Integer,
ByRef psResult As MC07̲S̲RESULT ) As Boolean

C#.NETbool MC07.USlstopMcm( uint hUnit, uint AxisSel,
ref MC07̲S̲RESULT psResult );

引

数

hUnit
AxisSel･･･ ユニットハンドルを指定します。
･･･ 軸（複数指定可）を指定します。

複数の軸を指定する場合は、論理和を指定します
指定できる値軸MC07̲SEL̲X
X軸
MC07̲SEL̲YY軸
MC07̲SEL̲Z
Z軸
MC07̲SEL̲A
A軸
次の指定も組み合わせる事が可能です。
指定できる値軸MC07̲SEL̲X̲Y
X軸とY軸
MC07̲SEL̲X̲Z
X軸とZ軸
MC07̲SEL̲X̲A
X軸とA軸
MC07̲SEL̲Y̲Z
Y軸とZ軸
MC07̲SEL̲Y̲A
Y軸とA軸
MC07̲SEL̲Z̲A
Z軸とA軸

psResult指定できる値
MC07̲SEL̲X̲Y̲Z
MC07̲SEL̲X̲Y̲A
MC07̲SEL̲X̲Z̲A
MC07̲SEL̲Y̲Z̲A
MC07̲SEL̲X̲Y̲Z̲A軸
X軸とY軸とZ軸
X軸とY軸とA軸
X軸とZ軸とA軸
Y軸とZ軸とA軸
X軸とY軸とZ軸とA軸･･･ この関数を実行した結果を格納するためのRESULT構造体のポインタを指定します。

戻り値
この関数を実行した結果、正常終了したときはTRUE、エラーが発生したときはFALSEを返します。

- 56 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )UNIT MCM ERROR CLR関数
UC‑7660

UCD‑7620

UCD‑7621

UsbC

UCD‑7630

機 能指定されたユニットに対し、次の処理を一括で行います。
・指定された軸（複数指定可）のMCMエラーをクリアします。
書 式
C言語
BOOL MC07̲UClrMcmError( DWORD hUnit, DWORD AxisSel,
MC07̲S̲RESULT *psResult );VB

Function MC07̲UClrMcmError( ByVal hUnit As Long,
ByVal AxisSel As Long,
ByRef psResult As MC07̲S̲RESULT ) As Boolean

VB.NET

Function MC07̲UClrMcmError( ByVal hUnit As Integer,
ByVal AxisSel As Integer,
ByRef psResult As MC07̲S̲RESULT ) As Boolean

C#.NETbool MC07.UClrMcmError( uint hUnit, uint AxisSel,
ref MC07̲S̲RESULT psResult );

引

数

hUnit
AxisSel･･･ ユニットハンドルを指定します。
･･･ 軸（複数指定可）を指定します。

複数の軸を指定する場合は、論理和を指定します
指定できる値軸MC07̲SEL̲X
X軸
MC07̲SEL̲YY軸
MC07̲SEL̲Z
Z軸
MC07̲SEL̲A
A軸
次の指定も組み合わせる事が可能です。
指定できる値軸MC07̲SEL̲X̲Y
X軸とY軸
MC07̲SEL̲X̲Z
X軸とZ軸
MC07̲SEL̲X̲A
X軸とA軸
MC07̲SEL̲Y̲Z
Y軸とZ軸
MC07̲SEL̲Y̲A
Y軸とA軸
MC07̲SEL̲Z̲A
Z軸とA軸

psResult指定できる値
MC07̲SEL̲X̲Y̲Z
MC07̲SEL̲X̲Y̲A
MC07̲SEL̲X̲Z̲A
MC07̲SEL̲Y̲Z̲A
MC07̲SEL̲X̲Y̲Z̲A軸
X軸とY軸とZ軸
X軸とY軸とA軸
X軸とZ軸とA軸
Y軸とZ軸とA軸
X軸とY軸とZ軸とA軸･･･ この関数を実行した結果を格納するためのRESULT構造体のポインタを指定します。

戻り値
この関数を実行した結果、正常終了したときはTRUE、エラーが発生したときはFALSEを返します。

- 57 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )2-4-6. 状態の表示
ユニットの状態を読み出します。
読み出される内容については、 UNIT MCM STATUS READ 関数を参照してください。

AXIS MCM STATUS構造体
UC‑7660

UCD‑7620

UCD‑7621

UsbC

UCD‑7630

機 能軸のステータスの内容が格納されます。
書 式
C言語
typedef struct ̲MC07̲S̲AXIS̲MCM̲STATUS {WORD Status;
WORD NopData;
DWORD Data;} MC07̲S̲AXIS̲MCM̲STATUS;
VB

Type MC07̲S̲AXIS̲MCM̲STATUS
Status As Integer
NopData As Integer
Data As LongEnd Type

VB.NET

Structure MC07̲S̲AXIS̲MCM̲STATUS
Public Status As Short
Public NopData As Short
Public Data As Integer
End Structure

C#.NET

struct MC07̲S̲AXIS̲MCM̲STATUS{
public ushort Status;
public ushort NopData;public uint Data;}

メンバ

Status
NopDataData･･･ (将来の拡張用です。)･･･ 汎用レジスタのデータが格納されます。
･･･ パルスカウンタのカウントデータが格納されます。

- 58 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )UNIT MCM STATUS構造体
UC‑7660

UCD‑7620

UCD‑7621

UsbC

UCD‑7630

機 能ユニットのステータスの内容が格納されます。
書 式
C言語
typedef struct ̲MC07̲S̲UNIT̲MCM̲STATUS {WORD McmStatus1;
WORD McmStatus2;
MC07̲S̲AXIS̲MCM̲STATUS X;
MC07̲S̲AXIS̲MCM̲STATUS Y;
MC07̲S̲AXIS̲MCM̲STATUS Z;
MC07̲S̲AXIS̲MCM̲STATUS A;
WORD Gpin;
WORD Ctlp0in;
WORD Exp0in;
WORD Exp1in;} MC07̲S̲UNIT̲MCM̲STATUS;
VB

Type MC07̲S̲UNIT̲MCM̲STATUS
McmStatus1 As Integer
McmStatus2 As Integer
X As MC07̲S̲AXIS̲MCM̲STATUSY As MC07̲S̲AXIS̲MCM̲STATUS
Z As MC07̲S̲AXIS̲MCM̲STATUS
A As MC07̲S̲AXIS̲MCM̲STATUS
Gpin As Integer
Ctlp0in As Integer
Exp0in As Integer
Exp1in As Integer
End Type

VB.NET

Structure MC07̲S̲UNIT̲MCM̲STATUS
Public McmStatus1 As Short
Public McmStatus2 As Short
Public X As MC07̲S̲AXIS̲STATUS
Public Y As MC07̲S̲AXIS̲STATUS
Public Z As MC07̲S̲AXIS̲STATUS
Public A As MC07̲S̲AXIS̲STATUS
Public Gpin As Short
Public Ctlp0in As Short
Public Exp0in As Short
Public Exp1in As ShortEnd Structure

C#.NET

struct MC07̲S̲UNIT̲MCM̲STATUS{
public ushort McmStatus1;
public ushort McmStatus2;
public MC07̲S̲AXIS̲MCM̲STATUS X;
public MC07̲S̲AXIS̲MCM̲STATUS Y;
public MC07̲S̲AXIS̲MCM̲STATUS Z;
public MC07̲S̲AXIS̲MCM̲STATUS A;
public ushort Gpin;
public ushort Ctlp0in;
public ushort Exp0in;
public ushort Exp1in;}

メンバ

McmStatus1
McmStatus2
X
Y
Z
A
Gpin
Ctlp0in
Exp0inExp1in･･･ MCM STATUS1の内容が格納されます。
･･･ MCM STATUS2の内容が格納されます。
･･･ X軸のAXIS MCM STATUS構造体の内容が格納されます。
･･･ Y軸のAXIS MCM STATUS構造体の内容が格納されます。
･･･ Z軸のAXIS MCM STATUS構造体の内容が格納されます。
･･･ A軸のAXIS MCM STATUS構造体の内容が格納されます。
･･･ 汎用I/O入力PORTから読み出された内容が格納されます。
･･･ 制御I/O入力0 PORTから読み出された内容が格納されます。
･･･ 拡張I/O入力0 PORTから読み出された内容が格納されます。
･･･ 拡張I/O入力1 PORTから読み出された内容が格納されます。

- 59 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )UNIT MCM STATUS READ関 数
UC‑7660

UCD‑7620

UCD‑7621

UsbC

UCD‑7630

機 能指定されたユニットの状態を読み出します。
書 式
C言語
BOOL MC07̲UReadMcmStatus( DWORD hUnit, DWORD AxisSel,
MC07̲S̲UNIT̲MCM̲STATUS *psUnitMcmStatus,
MC07̲S̲RESULT *psResult );VB

Function MC07̲UReadMcmStatus( ByVal hUnit As Long, ByVal AxisSel As Long,
ByRef psUnitMcmStatus As MC07̲S̲UNIT̲MCM̲STATUS,
ByRef psResult As MC07̲S̲RESULT ) As Boolean

VB.NET

Function MC07̲UReadMcmStatus( ByVal hUnit As Integer, ByVal AxisSel As Integer,
ByRef psUnitMcmStatus As MC07̲S̲UNIT̲MCM̲STATUS,
ByRef psResult As MC07̲S̲RESULT ) As Boolean

C#.NETbool MC07.UReadMcmStatus( uint hUnit, uint AxisSel,
ref MC07̲S̲UNIT̲MCM̲STATUS psUnitMcmStatus, ref MC07̲S̲RESULT psResult );引

数･･･ ユニットハンドルを指定します。
hUnit
AxisSel･･･ MC07̲SEL̲X̲Y̲Z̲Aを指定します。
psUnitMcmStatus ･･･ 読み出した内容を格納するためのUNIT MCM STATUS構造体のポインタを指定します。
読み出されるユニットの状態は下記です。
ユニットの状態
MCM STATUS1
MCM STATUS2
パルスカウンタのカウントデータ
汎用レジスタのデータ
I/O PORT説明
MCMに関連するユニットの現在の状態
MCMに関連するユニットの現在の状態
パルスカウンタのカウントデータ
NO OPERATIONコマンドで設定された汎用レジスタのデータ
汎用I/O PORT、制御I/O PORT、拡張I/O PORTの入力状態●MCM STATUS1
ユニット単位の状態です。
MCMに関連するユニットの現在の状態 を表示します。
D15

0
D7

0

D14
A
MERR
D6
Y
MERR

D13
A
MRUN
D5
Y
MRUN

D12
A
MBUSY
D4
Y
MBUSY

D11

0
D3

0

D0 ：X MBUSY
D4 ：Y MBUSY
D8 ：Z MBUSY
D12 ：A MBUSY
MCMの実行中の状態を示します。
1: MCMの開始と同時にセットします
0: MCMの終了でクリアします- 60 -

D10
Z
MERR
D2
X
MERR

D9
Z
MRUN
D1
X
MRUN

D8
Z
MBUSY
D0
X
MBUSY

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )UNIT MCM START関数を実行すると、MBUSY = 0→1になります。
STATUS1 PORTのBUSY = 1の場合、MCMの実行状態に関わらずMBUSY = 1になります。
また、次のMCM関数を実行中は、全軸または対象軸のMBUSY = 1になります。
・UNIT MCM SPEC0 SET関数(全軸)・UNIT MCM SPEC1 SET関数(全軸)・UNIT MCM SPEC2 SET関数(全軸)・UNIT MCM SPEC3 SET関数(全軸)・UNIT MCM SHEET DOWNLOAD関数(全軸)・UNIT MCM RAM WRITE関数(対象軸)・UNIT MCM RAM READ関数(対象軸)D1 ：X MRUN
D5 ：Y MRUN
D9 ：Z MRUN
D13 ：A MRUN
MCMの実行中の状態を示します。
1：MCMの開始と同時にセットします
0：MCMの終了でクリアします・UNIT MCM START関数を実行すると、MBUSY = 0→1と同時にMRUN = 0→1になります。
・DRIVE STATUS1 PORTのBUSY = 1の場合、MCMの実行状態に関わらずMRUN = 1になります。
D2 ：X MERR
D6 ：Y MERR
D10 ：Z MERR
D12 ：A MERR
MCMエラーが発生したことを示します
1: エラーの発生と同時にセットします
0: UNIT MCM ERROR CLR関数の実行でクリアします
STATUS1 PORTのERROR = 1またはORIGIN STATUSのORIGIN ERROR = 1の場合、MCMエラーの発生状況に関わらずMERR = 1になります。

●MCM STATUS2
ユニット単位の状態です。
MCMに関連するユニットの現在の状態を表示します。
D15

D14

0

0

D7

D6

0

0

D13
A
MRSTBYD5YMRSTBYD12A
MRBUSYD4
Y
MRBUSY

D11

D10

0

0

D3

D2

0

0

D9
Z
MRSTBYD1X
MRSTBY

D8Z
MRBUSY
D0
X
MRBUSY

D0 ：X MRBUSY
D4 ：Y MRBUSY
D8 ：Z MRBUSY
D12 ：A MRBUSY
MCMがRAM領域のコマンドを自動実行中であることを示します。
1: コマンドを自動実行中の状態
D1 : X MRSTBY
D5 : Y MRSTBY
D9 : Z MRSTBY
D13 : A MRSTBY
MCMがコマンドの実行タイミングを待っている状態であることを示します。
1: コマンドの実行タイミングを待っている状態
0: 実行タイミングの検出でクリアします
UNIT MCM FSSTOP関数またはUNIT MCM SLSTOP関数の実行でクリアします
MERR = 1の検出でクリアします- 61 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )● パルスカウンタのカウントデータ
軸単位の状態です。
パルスカウンタのカウントデータを表示します。
● 汎用レジスタのデータ
軸単位の状態です。
NO OPERATIONコマンドで設定された汎用レジスタのデータを表示します。
● I/O PORT
ユニット単位の状態です。
汎用I/O PORT、制御I/O PORT、拡張I/O PORTの入力状態を表示します。

psResult･･･ この関数を実行した結果を格納するためのRESULT構造体のポインタを指定します。

戻り値
この関数を実行した結果、正常終了したときはTRUE、エラーが発生したときはFALSEを返します。

- 62 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )2-4-7. エラー情報の表示ユニットで発生した動作エラーのエラー情報を読み出します。
読み出される内容については、 UNIT MCM ERROR STATUS READ 関数を参照してください。

AXIS MCM ERROR STATUS構造体
UC‑7660

UCD‑7620

UCD‑7621

UsbC

UCD‑7630

機 能軸のエラー情報が格納されます。
書 式
C言語
typedef struct ̲MC07̲S̲AXIS̲MCM̲ERROR̲STATUS {WORD ErrorCode;
WORD MccErrorStatus;
WORD MccErrorStatusMask ;WORD OriginErrorStatus;} MC07̲S̲AXIS̲MCM̲ERROR̲STATUS;
VB

Type MC07̲S̲AXIS̲MCM̲ERROR̲STATUS
ErrorCode As Integer
MccErrorStatus As Integer
MccErrorStatusMask As Integer
OriginErrorStatus As Integer} MC07̲S̲AXIS̲MCM̲ERROR̲STATUS;

VB.NET

Structure MC07̲S̲AXIS̲MCM̲ERROR̲STATUS
Public ErrorCode As short
Public MccErrorStatus As short
Public MccErrorStatusMask As short
Public OriginErrorStatus As short
End Structure

C#.NET

struct MC07̲S̲AXIS̲MCM̲ERROR̲STATUS{
public ushort ErrorCode;public ushort MccErrorStatus;
public ushort MccErrorStatusMask;
public ushort OriginErrorStatus;}

メンバ

ErrorCodeMccErrorStatus
MccErrorStatusMask
OriginErrorStatus･･･ MCM関数のエラーのエラーコードが格納されます･･･ ERROR STATUSが格納されます･･･ ERROR STATUSのマスクデータが格納されます･･･ ORIGIN STATUSのエラーの状態が格納されます- 63 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )UNIT MCM ERROR STATUS構造体
UC‑7660

UCD‑7620

UCD‑7621

UsbC

UCD‑7630

機 能ユニットのエラー情報が格納されます。
書

式

C言語

typedef struct ̲MC07̲S̲UNIT̲MCM̲ERROR̲STATUS {MC07̲S̲AXIS̲MCM̲ERROR̲STATUS X;
MC07̲S̲AXIS̲MCM̲ERROR̲STATUS Y;
MC07̲S̲AXIS̲MCM̲ERROR̲STATUS Z;
MC07̲S̲AXIS̲MCM̲ERROR̲STATUS A;} MC07̲S̲UNIT̲MCM̲ERROR̲STATUS;

VB

Type MC07̲S̲UNIT̲MCM̲ERROR̲STATUS
X As MC07̲S̲AXIS̲MCM̲ERROR̲STATUSY As MC07̲S̲AXIS̲MCM̲ERROR̲STATUS
Z As MC07̲S̲AXIS̲MCM̲ERROR̲STATUS
A As MC07̲S̲AXIS̲MCM̲ERROR̲STATUS
End Type

VB.NET

Structure MC07̲S̲UNIT̲MCM̲ERROR̲STATUS
Public X As MC07̲S̲AXIS̲ERROR̲STATUS
Public Y As MC07̲S̲AXIS̲ERROR̲STATUS
Public Z As MC07̲S̲AXIS̲ERROR̲STATUS
Public A As MC07̲S̲AXIS̲ERROR̲STATUS
End Structure

C#.NET

struct MC07̲S̲UNIT̲MCM̲ERROR̲STATUS{
public MC07̲S̲AXIS̲MCM̲ERROR̲STATUS X;
public MC07̲S̲AXIS̲MCM̲ERROR̲STATUS Y;
public MC07̲S̲AXIS̲MCM̲ERROR̲STATUS Z;
public MC07̲S̲AXIS̲MCM̲ERROR̲STATUS A;
}

メンバ

X
Y
Z
A

･･･ X軸のAXIS MCM ERROR STATUS構造体の内容が格納されます･･･ Y軸のAXIS MCM ERROR STATUS構造体の内容が格納されます･･･ Z軸のAXIS MCM ERROR STATUS構造体の内容が格納されます･･･ A軸のAXIS MCM ERROR STATUS構造体の内容が格納されます- 64 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )UNIT MCM ERROR STATUS READ関 数
UC‑7660

UCD‑7620

UCD‑7621

UsbC

UCD‑7630

機 能指定されたユニットのエラー状態を読み出します。
書 式
C言語
BOOL MC07̲UReadMcmErrorStatus( DWORD hUnit, DWORD AxisSel,
MC07̲S̲UNIT̲MCM̲ERROR̲STATUS *psUnitMcmErrorStatus,
MC07̲S̲RESULT *psResult );VB

Function MC07̲UReadMcmErrorStatus( ByVal hUnit As Long, ByVal AxisSel As Long,
ByRef psUnitMcmErrorStatus As MC07̲S̲UNIT̲MCM̲ERROR̲STATUS,
ByRef psResult As MC07̲S̲RESULT ) As Boolean

VB.NET

Function MC07̲UReadMcmErrorStatus( ByVal hUnit As Integer, ByVal AxisSel As Integer,
ByRef psUnitMcmErrorStatus As MC07̲S̲UNIT̲MCM̲ERROR̲STATUS,
ByRef psResult As MC07̲S̲RESULT ) As Boolean

C#.NETbool MC07.UReadMcmErrorStatus( uint hUnit, uint AxisSel,
ref MC07̲S̲UNIT̲MCM̲ERROR̲STATUS psUnitMcmErrorStatus,
ref MC07̲S̲RESULT psResult );引

数･･･ ユニットハンドルを指定します。
hUnit
AxisSel･･･ MC07̲SEL̲X̲Y̲Z̲Aを指定します。
psUnitMcmErrorStatus ･･ 読み出した内容を格納するためのUNIT MCM ERROR STATUS構造体のポインタを指定します。
読み出されるユニットのエラー情報は下記です。
動作エラーの分類
MCM関数のエラー
MCC09のエラー
ORIGINドライブのエラー

エラー情報
MCM関数のエラーのエラーコード
・ERROR STATUS READコマンドのERROR STATUS
・ERROR STATUS MASKコマンドのERROR STATUSのマスクデータ
ORIGIN STATUSのエラー情報● MCMエラー
MCMエラーのエラーコードを表示します。
エラーコードH'0000H'0010H'0014
H'0015
H'001A
H'001B
H'0021*1

説明
エラーはありません
MCMの実行中にMCC09でエラーが発生しました*1

ERROR STATUS MASKコマンドでFSSTOP,SLSTOP,LSENDのERROR MASKの何れかが「マスクする」に設定されています

RAM領域へのアクセス機能は無効です。
メモリアドレス3,999のコマンドを実行後、MCMを強制終了しました
MCMの終了時に汎用レジスタのデータがH'FFFFのNO OPERATIONコマンドを確認できませんでした
同期信号（SS1）へのOUT1の割り当てが正しくありません
・スレーブ軸のSS1に複数軸のOUT1を割り当てることはできません
・スレーブ軸のSS1にOUT1が割り当てられていません
・多軸同期２のマスター軸のSS1にOUT1が割り当てられていません
・多軸同期２のマスター軸のSS1に自軸のOUT1が割り当てられています

MCC09のエラーやORIGINドライブのエラーにより、MCM STATUS1のMERR = 1になっている場合、
MCMエラーのエラーコードは、H'0000（エラーはありません）になります。

● MCC09の エラー
次の情報を表示します。
・ERROR STATUS READコマンドのERROR STATUS
・ERROR STATUS MASKコマンドのERROR STATUSのマスクデータ- 65 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )● ORIGINドライブのエラー
ORIGIN STATUSのエラー情報を表示します。
D15

D13

D12

D11

D10

D9

D8

SENSOR
ERROR

0

0

0

0

0

D7

D14
ERROR
PULSE
ERROR
D6

D5

D4

D3

D2

D1

D0

0

0

0

ORIGIN
ERROR

0

0

0

0

ADDRESSERROR

・ORIGIN ERROR、SENSOR ERROR、ERROR PULSE ERROR、ADDRESS ERRORについては、取扱説明書(標準)の 「 ORIGINドライブステータス読み出し関数 」 をご覧ください。

psResult･･･ この関数を実行した結果を格納するためのRESULT構造体のポインタを指定します。

戻り値
この関数を実行した結果、正常終了したときはTRUE、エラーが発生したときはFALSEを返します。

- 66 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )３．コマンド仕様
3-1. ドライブコマンド
3-1-1. 入出力仕様の設定(1 ) HARD INITIALIZE1
外部ステータス信号(SOUT 信号)に出力する機能、および MCM( RAM)動作の実行タイミング条件を設定します。
このコマンドの実行は DRIVE STATUS1 PORT の BUSY=1 のときも可能です。
<実行シーケンス>

COMMAND H'F1

DATA1 PORT

HARD INITIALIZE1 COMMAND① DRIVE DATA1 PORT に設定データを書き込みます。

WRITE
COMMAND PORT

② DRIVE COMMAND PORT に COMMAND を書き込みます。

WRITE

推奨 :MC07_LWDrive 関数(DATA2 PORT は、 H'0000 を書き込み)

DRIVE DATA1 PORT の設定データ
D15

D14

D13

D12

D11

D10

D9

D8

OUT3

OUT3

OUT3

OUT3

OUT2

OUT2

OUT2

OUT2

TYPE3

TYPE2

TYPE1

TYPE0

TYPE3

TYPE2

TYPE1

TYPE0

D7

D6

D5

D4

D3

D2

D1

D0

OUT1

OUT1

OUT1

OUT1

OUT0

OUT0

OUT0

OUT0

TYPE3

TYPE2

TYPE1

TYPE0

TYPE3

TYPE2

TYPE1

TYPE0

● 電源投入後の初期値は H'EE31 (アンダーライン側) です。
： OUT0 TYPE3--0： OUT1 TYPE3--0： OUT2 TYPE3--0： OUT3 TYPE3--0

D3--D0
D7--D4
D11--D8
D15--D12

初期値 ＝ CNTINT (外部信号出力可能)
初期値 ＝ RDYINT (外部信号出力可能)
初期値 ＝ 汎用出力(ステータスを内部フラグに利用可能)
初期値 ＝ 汎用出力(ステータスを内部フラグに利用可能)

OUT0, 1 信号および OUT2, 3 信号の出力機能を選択します。
OUT0,1,2,3 の出力機能

TYPE3 TYPE2 TYPE1 TYPE0

0

0

0

0

ADRINT

カウンタ割り込み要求の ADRINT 出力

0

0

0

1

CNTINT

カウンタ割り込み要求の CNTINT 出力

0

0

1

0

DFLINT

カウンタ割り込み要求の DFLINT 出力

0

0

1

1

RDYINT

コマンド終了割り込み要求の RDYINT 出力

0

1

0

0

STBY

STATUS1 の STBY フラグ出力

0

1

0

1

DRIVE

STATUS1 の DRIVE フラグ出力

0

1

1

0

nSPEED FL

STATUS5 の SPEED FL フラグの反転出力

0

1

1

1

nINDEX FLSTATUS5 の INDEX FL フラグの反転出力

1

0

0

0

UP

STATUS1 の UP フラグ出力

1

0

0

1

DOWN

STATUS1 の DOWN フラグ出力

1

0

1

0

CONST

STATUS1 の CONST フラグ出力

1

0

1

1

EXT PULSESTATUS1 の EXT PULSE フラグ出力

1

1

0

0

nPULSE MASKSTATUS2 の PULSE MASK フラグの反転出力

1

1

0

1

ORG SIGNALSTATUS2 の ORG SIGNAL フラグ出力

1

1

1

0

汎用出力

汎用出力として使用する

1

1

1

1

設定禁止

−

「汎用出力」に設定した場合は、 SIGNAL OUT コマンドで出力レベルを操作します。

- 67 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )SIGNAL I/O コネクタから外部出力できる信号は、初期設定は下記の割り付けになっています。
UNIT MCM SPEC3 SET 関数で任意軸や OUT1 信号の割り付けも可能です。
外部出力信号
SOUT0 信号SOUT1 信号SOUT2 信号SOUT3 信号軸と出力(割付信号名)
4 軸ユニット
2 軸ユニット
XOUT0( XCNTINT)
XOUT0( XCNTINT )YOUT0( YCNTINT)
YOUT0( YCNTINT )ZOUT0( ZCNTINT)
XOUT0( XCNTINT)
AOUT0( ACNTINT)
YOUT0( YCNTINT )OUT 2,3 信号は、ステータスを利用して、次の機能の条件に応用することができます。
・ PAUSE 機能の STBY 解除条件
・ SPEED RATE CHANGE の変更動作点
・ INDEX CHANGE の変更動作点
・パルス偏差カウンタのパルスカウント開始タイミング
・各カウンタのラッチタイミング
・ RAM 機能の JUMP 条件
・ RAM 機能のメモリーデータの NO OPERATION コマンド実行条件- 68 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )(2 ) HARD INITIALIZE2GPIO 2 信号入出力の入出力機能を設定します。
このコマンドの実行は DRIVE STATUS1 PORT の BUSY=1 のときも可能です。
<実行シーケンス>

COMMAND H'F2

DATA1 PORT

HARD INITIALIZE2 COMMAND① DRIVE DATA1 PORT に設定データを書き込みます。

WRITE

COMMAND PORT

② DRIVE COMMAND PORT に COMMAND を書き込みます。

WRITE

推奨 :MC07_LWDrive 関数(DATA2 PORT は、 H'0000 を書き込み)

DRIVE DATA1 PORT の設定データ
D15

D14

D13

D12

D11

D10

D9

D8

−

−

−

−

−

−

−

−

D3

D2

D1

D0

1

1

1

1

D7

D6

D5

D4

GPIO2

GPIO2

GPIO2

GPIO2

TYPE3

TYPE2

TYPE1

TYPE0

● 電源投入後の初期値は H'00FF (アンダーライン側) です。
：設定禁止(1)： GPIO2 TYPE3--0

D3--D0
D7--D4

初期値 ＝ 汎用入力(ステータスを内部フラグに利用可能)

GPIO 2 の入出力機能を選択します。
GPIO2 の入出力機能

TYPE3 TYPE2 TYPE1 TYPE0

0

0

0

0

ADRINT COMP1STATUS4 の ADRINT COMP1 フラグ出力

0

0

0

1

ADRINT COMP2STATUS4 の ADRINT COMP2 フラグ出力

0

0

1

0

ADRINT COMP3STATUS4 の ADRINT COMP3 フラグ出力

0

0

1

1

XADRINT AND YADRINT

X 軸と Y 軸の ADRINT の AND (論理積) 出力

0

1

0

0

XADRINT OR YADRINT

X 軸と Y 軸の ADRINT の OR (論理和) 出力

0

1

0

1

DFLINT COMP1STATUS4 の DFLINT COMP1 フラグ出力

0

1

1

0

DFLINT COMP2STATUS4 の DFLINT COMP2 フラグ出力

0

1

1

1

DFLINT COMP3STATUS4 の DFLINT COMP3 フラグ出力

1

0

0

0

ERROR

STATUS1 の ERROR フラグ出力

1

0

0

1

LSEND

STATUS1 の LSEND フラグ出力

1

0

1

0

SSEND

STATUS1 の SSEND フラグ出力
STATUS1 の FSEND フラグ出力

1

0

1

1

FSEND

1

1

0

0

SS0

STATUS5 の SS0 フラグ出力

1

1

0

1

DRVENDSTATUS1 の DRVEND フラグ出力

1

1

1

0

汎用出力

汎用出力として使用する

1

1

1

1

汎用入力

汎用入力として使用する

・「汎用出力」に設定した場合は、 SIGNAL OUT コマンドで出力レベルが操作できます。
GPIO 2 信号のステータスを利用して、次の機能の条件に応用することができます。
・ PAUSE 機能の STBY 解除条件
・ SPEED RATE CHANGE の変更動作点
・ INDEX CHANGE の変更動作点
・各カウンタのラッチタイミング
・ RAM 機能の JUMP 条件
・ RAM 機能のメモリーデータの NO OPERATION コマンド実行条件- 69 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )(3 ) HARD INITIALIZE3GPIO 3 信号の入力機能を設定します。
このコマンドの実行は DRIVE STATUS1 PORT の BUSY=1 のときも可能です。
<実行シーケンス>

COMMAND H'F3

DATA1 PORT

HARD INITIALIZE3 COMMAND① DRIVE DATA1 PORT に設定データを書き込みます。

WRITE

COMMAND PORT

② DRIVE COMMAND PORT に COMMAND を書き込みます。

WRITE

推奨 :MC07_LWDrive 関数(DATA2 PORT は、 H'0000 を書き込み)

DRIVE DATA1 PORT の設定データ
D15

D14

D13

D12

D11

D10

D9

D8

−

−

−

−

−

−

−

−

D3

D2

D1

D0

1

1

1

1

D7

D6

D5

D4

GPIO3

GPIO3

GPIO3

GPIO3

TYPE3

TYPE2

TYPE1

TYPE0

● 電源投入後の初期値は H'FF (アンダーライン側) です。
：設定禁止(1)： GPIO3 TYPE3--0

D3--D0
D7--D4

初期値 ＝ 汎用入力(ステータスを内部フラグに利用可能)

GPIO 3 の入出力機能を選択します。
GPIO 3 の入出力機能

TYPE3 TYPE2 TYPE1 TYPE0

0

0

0

0

CNTINT COMP1STATUS4 の CNTINT COMP1 フラグ出力

0

0

0

1

CNTINT COMP2STATUS4 の CNTINT COMP2 フラグ出力

0

0

1

0

CNTINT COMP3STATUS4 の CNTINT COMP3 フラグ出力

0

0

1

1

XCNTINT AND YCNTINT

X 軸と Y 軸の CNTINT の AND (論理積) 出力

0

1

0

0

XCNTINT OR YCNTINT

X 軸と Y 軸の CNTINT の OR (論理和) 出力

0

1

0

1

DFLINT COMP1STATUS4 の DFLINT COMP1 フラグ出力

0

1

1

0

DFLINT COMP2STATUS4 の DFLINT COMP2 フラグ出力

0

1

1

1

DFLINT COMP3STATUS4 の DFLINT COMP3 フラグ出力

1

0

0

0

ERRINTERROR STATUS 出力の ERRINT 出力

1

0

0

1

ORGENDSTATUS2 の ORGEND フラグ出力

1

0

1

0

COMREG EP

STATUS1 の COMREG EP フラグ出力
STATUS1 の COMREG FL フラグ出力

1

0

1

1

COMREG FL

1

1

0

0

SS1

STATUS5 の SS1 フラグ出力

1

1

0

1

nBUSY

STATUS1 の BUSY フラグの反転出力

1

1

1

0

汎用出力

汎用出力として使用する

1

1

1

1

汎用入力

汎用入力として使用する「汎用出力」に設定した場合は、 SIGNAL OUT コマンドで出力レベルが操作できます。
GPIO 3 信号のステータスを利用して、次の機能の条件に応用することができます。
・ RAM 機能の JUMP 条件
・ RAM 機能のメモリーデータの NO OPERATION コマンド実行条件- 70 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )(4 ) HARD INITIALIZE7
各入力信号のアクティブ論理を設定します。
このコマンドの実行は DRIVE STATUS1 PORT の BUSY=1 のときも可能です。
設定を誤ると製品が正しく機能しなくなります。

 注意

入力信号のアクティブ論理を設定するデータ部には、重要な機能(信号)も割り付いています。指定された "1" の論理は間違えないようにしてください。

<実行シーケンス>
DATA1 PORTWRITECOMMAND PORTWRITECOMMAND H'F7

HARD INITIALIZE7 COMMAND① DRIVE DATA1 PORT にアクティブデータを書き込みます。

② DRIVE COMMAND PORT に COMMAND を書き込みます。
推奨 :MC07_LWDrive 関数(DATA2 PORT は、 H'0000 を書き込み)

DRIVE DATA1 PORT の設定データ
D15
PAUSE
ACTIVE( 1)
D7
1

D14

D13

D12

1

1

1

D6

D5

D4

DALM
ACTIVE( 1)

1

1

D11
−

D10

D9

NORG

ORG

ACTIVE(1) ACTIVE(1)

D3

D2

D1

CCWLM

CWLM

FSSTOP

ACTIVE(1) ACTIVE(1) ACTIVE(1)● 電源投入後の初期値は H'F7FE (すべてハイアクティブ) です。
上記の値で、入力アクティブ論理は以下の初期値になっています。
D4, D5, D7, D8, D12--D14 ：設定禁止( 1)D1 ： FSSTOP ACTIVEFSSTOP 入力信号のアクティブ論理を選択します。
0 ：負論理(ローアクティブ)
1 ：正論理(ハイアクティブ)

D2 ： CWLM ACTIVECWLM 入力信号のアクティブ論理を選択します。
0 ：負論理(ローアクティブ)
1 ：正論理(ハイアクティブ)

D3 ： CCWLM ACTIVE
CCWLM 入力信号のアクティブ論理を選択します。
0 ：負論理(ローアクティブ)
1 ：正論理(ハイアクティブ)

D6 ： DALM ACTIVEDALM 入力信号のアクティブ論理を選択します。
0 ：負論理(ローアクティブ)
1 ：正論理(ハイアクティブ)
上記の信号は、初期値 B 接点入力になっています。

- 71 -

D8
1

D0−

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )D9 ： ORG ACTIVE
ORG 入力信号のアクティブ論理を選択します。
0 ：正論理(ハイアクティブ)
1 ：負論理(ローアクティブ)

D10 ： NORG ACTIVENORG 入力信号のアクティブ論理を選択します。
0 ：正論理(ハイアクティブ)
1 ：負論理(ローアクティブ)

D15 ： PAUSE ACTIVE
PAUSE 信号のアクティブ論理を選択します。
0 ： PAUSE=1 にして STBY にする
1 ： PAUSE=0 にして STBY を解除する
・ D15 の PAUSE 信号のアクティブ論理を操作することで、コマンド予約機能による連続ドライブの設定と実行ができます。
・ HARD INITIALIZE7 コマンドの実行で、各信号のアクティブ論理を変更します。
アクティブ論理を変更すると、変更した信号の製品内部デジタルフィルタ時定数経過後に、アクティブ論理の変更が確定します。

- 72 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )(5 ) HARD INITIALIZE8
パルス出力信号のアクティブ論理を設定します。
このコマンドの実行は DRIVE STATUS1 PORT の BUSY=1 のときも可能です。

設定を誤ると製品が正しく機能しなくなります。

 注意

出力信号のアクティブ論理を設定するデータ部には、重要な機能(信号)も割り付いています。指定された "1" の論理は間違えないようにしてください。

<実行シーケンス>

DATA1 PORTWRITECOMMAND PORTWRITECOMMAND H'F8

HARD INITIALIZE8 COMMAND① DRIVE DATA1 PORT にアクティブデータを書き込みます。

② DRIVE COMMAND PORT に COMMAND を書き込みます。
推奨 :MC07_LWDrive 関数(DATA2 PORT は、 H'0000 を書き込み)

DRIVE DATA1 PORT の設定データ
D15

D14

CCWP

CWP

ACTIVE( 0) ACTIVE(0)

D13

D12

D11

D10

D9

D8

−

−

1

1

1

1

D7

D6

D5

D4

D3

D2

D1

D0

−

−

1

1

1

1

1

1

● 電源投入後の初期値は H'0F3F です。
D0--D5, D8--D11 ：設定禁止(1)

D15
D14

： CCWP ACTIVE： CWP ACTIVE
パルス出力信号のアクティブ論理を選択します。
0 ：ローアクティブ
1 ：ハイアクティブ
CWP, CCWP 信号の電源投入後の初期状態は、「ローアクティブ（負論理出力）」です。
この出力論理の切替は、方向指定型の場合にも有効です。
コントローラドライバ製品では、当コマンドは実行禁止です。

- 73 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )3-1-2. ドライブ パラメータの設定
ドライブのパラメータを設定します。各設定は変更が必要な場合に設定します。
※ SPEED･RATE 関数はこれらのコマンドを使用してドライブパラメータを設定しています。

(1 ) FSPD SET
ドライブパルス出力の第１パルス目のパルス周期（パルス速度）を設定します。
<実行シーケンス >STATUS1 PORTCOMMAND H'05
N

FSPD SET COMMAND① DRIVE STATUS1 PORT の ERROR フラグが "0" であることを確認します。

ERROR = 0 ?
Y
NSTATUS1 PORT

② DRIVE STATUS1 PORT の BUSY フラグが "0" であることを確認します。

BUSY = 0 ?

推奨 :MC07_BRStatus1 関数

Y③ DRIVE DATA1 PORT にパルス速度 D15--D0 を書き込みます。

DATA1 PORTWRITE

④ DRIVE DATA2 PORT にパルス速度 D22--D16 を書き込みます。
設定範囲は、 0 〜 8,388,607（ H'00_0000 〜 H'7F_FFFF）です。
設定値は、 1 Hz 単位です。

DATA2 PORTWRITECOMMAND PORT

⑤ DRIVE COMMAND PORT に COMMAND を書き込みます。

WRITE

推奨 :MC07_LWDrive 関数

DRIVE DATA1 PORT の設定データ
D15

D14

D13

D12

D11

D10

D9

D15

D8

D7

D6

D5

D4

D3

D2

D1

FSPD

D0
D0

DRIVE DATA2 PORT の設定データ
D15

D14

D13

D12

D11

D10

D9

D8

D7

D6

−

−

−

−

−

−

−

−

−

D22

D5

D4

D3

D2

D1

FSPD

D0
D16

●電源投入後の初期値は H'00_1388 （ 5,000 Hz ：１周期 200 µs） です。
*FSPD は、設定された値の半周期を経過してから第 1 パルス目のパルス出力を開始します。
初期値 200 μ s は、この周期が実際に第 1 パルス目の出力(立ち上がりエッジ)までの遅延時間になります。
よって、起動指令後に速くパルス出力を開始したいときは、ドライバ側の入力応答周波数に注意して、この
FSPD の値を設定してください。
FSPD の設定値が "0" の場合は、 FSPD を FSPD = RSPD x RESOL に補正します。
・ RSPD ： RSPD は、 HSPD, LSPD, ELSPD と同様の 15 ビットのパルス速度データです。
DRIVE = 1 → 0 になると、最終出力のパルス速度データを RSPD に記憶します。
ただし、最終出力のパルス速度が FSPD, RFSPD と JSPD の場合は、 RSPD を書き換えません。
RSPD のリセット後の初期値は、 H'012C （ 300）です。
・第１パルスのパルス周期の計算式
10,000,000 ／ FSPD ＝ 商 A ＋余り B(10,000,000 ＋余り B)／ FSPD ＝ 商 C ＋余り D→ OFF 周期→ ON 周期＝商 A x 50 ns＝商 C x 50 ns

FSPD の設定値と実際に出力する第１パルスのパルス周期
FSPD の設定値
第１パルスのパルス周期（パルス速度）
8,388,607 〜 6,666,667 Hz → OFF 周期 = 50 ns
ON 周期 = 50 ns （ 10,000,000 Hz）
6,666,666 〜 5,000,001 Hz → OFF 周期 = 50 ns
ON 周期 = 100 ns （ 6,666,666 Hz ）5,000,000 〜 4,000,001 Hz → OFF 周期 = 100 ns ON 周期 = 100 ns （ 5,000,000 Hz）
4,000,000 〜 3,333,334 Hz → OFF 周期 = 100 ns ON 周期 = 150 ns （ 4,000,000 Hz）
3,333,333 〜 2,857,143 Hz → OFF 周期 = 150 ns ON 周期 = 150 ns （ 3,333,333 Hz）- 74 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )(2 ) HIGH SPEED SET
加減速ドライブの最高速時のパルス速度データ（ HSPD）を設定します。
加減速ドライブの速度データの速度倍率（ RESOL）を設定します。
<実行シーケンス >COMMAND H'06

HIGH SPEED SET COMMANDNSTATUS1 PORT

① DRIVE STATUS1 PORT の ERROR フラグが "0" であることを確認します。

ERROR = 0 ?
Y
NSTATUS1 PORT

② DRIVE STATUS1 PORT の BUSY フラグが "0" であることを確認します。

BUSY = 0 ?

推奨 :MC07_BRStatus1 関数

Y③ DRIVE DATA1 PORT に最高速時のパルス速度データを書き込みます。
設定範囲は、 0 〜 32,767（ H'0000 〜 H'7FFF）です。
速度倍率を 400 に設定した場合は、速度データの設定範囲は、 0 〜 25,000 （ H'0000 〜 H'61A8）です。

DATA1 PORTWRITE

④ DRIVE DATA2 PORT に速度倍率の RESOL No. を書き込みます。

DATA2 PORTWRITECOMMAND PORT

⑤ DRIVE COMMAND PORT に COMMAND を書き込みます。

WRITE

推奨 :MC07_LWDrive 関数

DRIVE DATA1 PORT の設定データ
D15

D14

−

D14

D13

D12

D11

D10

D9

D8

D7

D6

D5

D4

D3

D2

D1

HSPD

D0
D0

● 電源投入後の初期値は H'0BB8 ( 3,000 ： 3,000 Hz) です。
DRIVE DATA2 PORT の設定データ
D15

D14

D13

D12

D11

D10

D9

D8

D7

D6

D5

D4

D3

D2

D1

D0

−

−

−

−

−

−

−

−

−

−

−

−

D3

RESOL No.

D0

● 電源投入後の初期値は H'3 (速度倍率＝１) です。
HSPD の設定値が "0" の場合は、 HSPD を HSPD = RSPD に補正します。
・最高速時の速度（ Hz）＝ HSPD x RESOL
減速ドライブと一定速ドライブの 1 パルス目は、 FSPD の第 1 パルスです。
2 パルス目から HSPD x RESOL の速度になります。

RESOL No.を選択して、速度倍率（ RESOL）を設定します。
RESOL

速度倍率

RESOL

速度倍率

RESOL

速度倍率

RESOL

速度倍率

No.

(RESOL)No.

(RESOL)No.

(RESOL)No.

(RESOL)
400

H'0

1

H'4

2

H'8

50

H'C

H'1

1

H'5

5

H'9

100

H'D

400

H'2

1

H'6

10

H'A

200

H'E

400

H'3

1

H'7

20

H'B

400

H'F

400

・速度設定値＝ 速度データ x 速度倍率（ RESOL）： 1 〜 10,000,000 Hz
・速度倍率を 400 に設定した場合は、速度データの設定範囲は、 0 〜 25,000（ H'0000 〜 H'61A8）です。

- 75 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )(3 ) LOW SPEED SET
加減速ドライブの加速開始時のパルス速度データ（ LSPD ）を設定します。
加減速ドライブの減速終了時のパルス速度データ（ ELSPD ）を設定します。
<実行シーケンス >STATUS1 PORTCOMMAND H'07
N

LOW SPEED SET COMMAND① DRIVE STATUS1 PORT の ERROR フラグが "0" であることを確認します。

ERROR = 0 ?
Y
NSTATUS1 PORT

② DRIVE STATUS1 PORT の BUSY フラグが "0" であることを確認します。

BUSY = 0 ?

推奨 :MC07_BRStatus1 関数

Y③ DRIVE DATA1 PORT に加速開始時のパルス速度データを書き込みます。
設定範囲は、 0 〜 32,767（ H'0001 〜 H'7FFF）です。
速度倍率を 400 に設定した場合は、速度データの設定範囲は、 0 〜 25,000 （ H'0000 〜 H'61A8）です。

DATA1 PORTWRITE

④ DRIVE DATA2 PORT に減速終了時のパルス速度データを書き込みます。
設定範囲は、 0 〜 32,767（ H'0000 〜 H'7FFF）です。

DATA2 PORTWRITECOMMAND PORT

⑤ DRIVE COMMAND PORT に COMMAND を書き込みます。

WRITE

推奨 :MC07_LWDrive 関数

DRIVE DATA1 PORT の設定データ
D15

D14

−

D14

D13

D12

D11

D10

D9

D8

D7

D6

D5

D4

D3

D2

D1

LSPD

D0
D0

●電源投入後の初期値は H'012C（ 300： 300 Hz ） です。
DRIVE DATA2 PORT の設定データ
D15

D14

−

D14

D13

D12

D11

D10

D9

D8

D7

D6

D5

D4

D3

ELSPD

D2

D1

D0
D0

●電源投入後の初期値は H'0000（ LSPD と同じ） です。

LSPD の設定値が "0" の場合は、 LSPD を LSPD = RSPD に補正します。
・加速開始時の速度（ Hz）＝ LSPD x RESOLELSPD の設定値が "0" の場合は、 ELSPD を ELSPD = LSPD に補正します。
・減速終了時の速度（ Hz）＝ ELSPD x RESOL

加減速ドライブと加速ドライブの１パルス目は、 FSPD の第１パルスです。
2 パルス目から LSPD x RESOL の速度になります。
減速ドライブと一定速ドライブの１パルス目は、 FSPD の第１パルスです。
2 パルス目から HSPD x RESOL の速度になります。

- 76 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )(4 ) RATE SET
加速カーブの変速周期データ（ UCYCLE）を設定します。
減速カーブの変速周期データ（ DCYCLE）を設定します。
<実行シーケンス >STATUS1 PORTCOMMAND H'08
N

RATE SET COMMAND① DRIVE STATUS1 PORT の ERROR フラグが "0" であることを確認します。

ERROR = 0 ?
Y
NSTATUS1 PORT

② DRIVE STATUS1 PORT の BUSY フラグが "0" であることを確認します。

BUSY = 0 ?

推奨 :MC07_BRStatus1 関数

Y③ DRIVE DATA1 PORT に加速カーブの変速周期データを書き込みます。

DATA1 PORTWRITE

④ DRIVE DATA2 PORT に減速カーブの変速周期データを書き込みます。
設定範囲は、 1 〜 16,383（ H'0001 〜 H'3FFF）です。

DATA2 PORTWRITECOMMAND PORT

⑤ DRIVE COMMAND PORT に COMMAND を書き込みます。

WRITE

推奨 :MC07_LWDrive 関数

DRIVE DATA1 PORT の設定データ
D15

D14

D13

−

−

D13

D12

D11

D10

D9

D8

D7

D6

D5

D4

D3

D2

D1

UCYCLE

D0
D0●電源投入後の初期値は H'00C8（ 200： 100 µs 周期） です。
DRIVE DATA2 PORT の設定データ
D15

D14

D13

−

−

D13

D12

D11

D10

D9

D8

D7

D6

D5

D4

D3

D2

D1

DCYCLE

D0
D0●電源投入後の初期値は H'0000（ UCYCLE と同じ） です。

UCYCLE の設定値が "0" の場合は、 "1" に補正します。
・変速周期 (µs) ＝ UCYCLE x 0.5 µs ： 0.5 µs 〜 8.1915 ms
DCYCLE の設定値が "0" の場合は、 DCYCLE を DCYCLE = UCYCLE に補正します。
・変速周期 (µs) ＝ DCYCLE x 0.5 µs ： 0.5 µs 〜 8.1915 ms- 77 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )(5 ) SCAREA SET
加速カーブのＳ字変速領域データ（ SUAREA）を設定します。
減速カーブのＳ字変速領域データ（ SDAREA）を設定します。
<実行シーケンス >STATUS1 PORTCOMMAND H'09
N

SCAREA SET COMMAND① DRIVE STATUS1 PORT の ERROR フラグが "0" であることを確認します。

ERROR = 0 ?
Y
NSTATUS1 PORT

② DRIVE STATUS1 PORT の BUSY フラグが "0" であることを確認します。

BUSY = 0 ?

推奨 :MC07_BRStatus1 関数

Y③ DRIVE DATA1 PORT に加速カーブの S 字変速領域データを書き込みます。

DATA1 PORTWRITE

④ DRIVE DATA2 PORT に減速カーブの S 字変速領域データを書き込みます。
設定範囲は、 0 〜 32,767（ H'0000 〜 H'7FFF）です 。

DATA2 PORTWRITECOMMAND PORT

⑤ DRIVE COMMAND PORT に COMMAND を書き込みます。

WRITE

推奨 :MC07_LWDrive 関数

DRIVE DATA1 PORT の設定データ
D15

D14

−

D14

D13

D12

D11

D10

D9

D8

D7

D6

D5

D4

D3

D2

D1

SUAREA

D0
D0● 電源投入後の初期値は H'0000 (0： SUAREA の変速領域なし) です。
DRIVE DATA2 PORT の設定データ
D15

D14

−

D14

D13

D12

D11

D10

D9

D8

D7

D6

D5

D4

D3

SDAREA

D2

D1

D0
D0

● 電源投入後の初期値は H'0000 (0： SDAREA の変速領域なし) です。
SUAREA（および SUH ）の設定値が "0" の場合は、
UCYCLE と RESOL による直線加速カーブのみで加速します。
・Ｓ字加速開始部の変速領域（ Hz）＝ SUAREA x RESOL
・Ｓ字加速終了部の変速領域（ Hz）＝ SUAREA（または SUH） x RESOLSDAREA（および SDH ）の設定値が "0" の場合は、
DCYCLE と RESOL による直線減速カーブのみで減速します。
・Ｓ字減速開始部の変速領域（ Hz）＝ SDAREA（または SDH） x RESOL・Ｓ字減速終了部の変速領域（ Hz）＝ SDAREA x RESOL● SPEC INITIALIZE3 コマンドの SCAREA MODE = 0 の場合
変速領域データは以下のように補正します。
・(HSPD - LSPD) ＜ (2 * SUAREA) のときは、重複した変速領域を重ねて加速します。
・(HSPD - ELSPD) ＜ (2 * SDAREA ) のときは、 SDAREA = ( HSPD - ELSPD ) * 1/2 に補正します。

- 78 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )(6 ) SHAREA SETSPEC INITIALIZE3 コマンドの SCAREA MODE = 1 に設定している場合に有効です。
加速カーブのＳ字加速終了部の変速領域データ（ SUH）を設定します。
減速カーブのＳ字減速開始部の変速領域データ（ SDH）を設定します。
<実行シーケンス>

STATUS1 PORTCOMMAND H'0B
N

SHAREA SET COMMAND① DRIVE STATUS1 PORT の ERROR フラグが "0" であることを確認します。

ERROR = 0 ?
Y
NSTATUS1 PORT

② DRIVE STATUS1 PORT の BUSY フラグが "0" であることを確認します。

BUSY = 0 ?

推奨 :MC07_BRStatus1 関数

Y③ DRIVE DATA1 PORT にＳ字加速終了部の変速領域データを書き込みます。

DATA1 PORTWRITE

④ DRIVE DATA2 PORT にＳ字減速開始部の変速領域データを書き込みます。
設定範囲は、 0 〜 32,767（ H'0000 〜 H'7FFF）です。

DATA2 PORTWRITECOMMAND PORT

⑤ DRIVE COMMAND PORT に COMMAND を書き込みます。

WRITE

推奨 :MC07_LWDrive 関数

DRIVE DATA1 PORT の設定データ
D15

D14

−

D14

D13

D12

D11

D10

D9

D8

D7

D6

D5

D4

D3

D2

D1

SUH

D0
D0

● 電源投入後の初期値は H'0000 ( 0： SUH の変速領域なし) です。
DRIVE DATA2 PORT の設定データ
D15

D14

−

D14

D13

D12

D11

D10

D9

D8

D7

D6

D5

D4

D3

SDH

D2

D1

D0
D0

● 電源投入後の初期値は H'0000 ( 0： SDH の変速領域なし) です。
● SPEC INITIALIZE3 コマンドの SCAREA MODE = 1 の場合
SUAREA および SUH の設定値が "0" の場合は、
UCYCLE と RESOL による直線加速カーブのみで加速します。
・Ｓ字加速開始部の変速領域（ Hz）＝ SUAREA x RESOL
・Ｓ字加速終了部の変速領域（ Hz ）＝ SUH
x RESOL
SDAREA および SDH の設定値が "0" の場合は、
DCYCLE と RESOL による直線減速カーブのみで減速します。
・Ｓ字減速開始部の変速領域（ Hz ）＝ SDH
x RESOL・Ｓ字減速終了部の変速領域（ Hz）＝ SDAREA x RESOL

変速領域データは以下のように補正します。
・(HSPD - LSPD) ＜ (SUAREA)のときは、 SUAREA = ( HSPD - LSPD ) に補正します。
・(HSPD - ELSPD) ＜ (SDAREA)のときは、 SDAREA = ( HSPD - ELSPD) に補正します。
・(HSPD - LSPD) ＜ (SUH + SUAREA) のときは、 SUH = ( HSPD - LSPD - SUAREA) に補正します。
・(HSPD - ELSPD) ＜ (SDH + SDAREA) のときは、 SDH = ( HSPD - ELSPD - SDAREA) に補正します。
・ HSPD ＜ LSPD or HSPD ＜ ELSPD のときは、 SUAREA = SDAREA = SUH = SDH = 0 に補正します 。

- 79 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )(7 ) DOWN PULSE ADJUSTINDEX ドライブの停止位置への減速停止動作時に有効です。
MCC09 が自動検出する減速パルス数に加算するオフセットパルス数を設定します。
または、停止位置への減速停止動作を開始するための減速パルス数をマニュアル設定します。
<実行シーケンス>

STATUS1 PORTCOMMAND H'0A
N

DOWN PULSE ADJUST COMMAND① DRIVE STATUS1 PORT の ERROR フラグが "0" であることを確認します。

ERROR = 0 ?
Y
NSTATUS1 PORT

② DRIVE STATUS1 PORT の BUSY フラグが "0" であることを確認します。

BUSY = 0 ?

推奨 :MC07_BRStatus1 関数

Y
DATA1 PORT

③ DRIVE DATA1 PORT にパルス数 D15--D0 を書き込みます。

WRITE④ DRIVE DATA2 PORT にパルス数 D23--D16 を書き込みます。

DATA2 PORTSCAREA MODE = 0 のときの設定範囲は、 D15--D0 の-32,768 〜 +32,767（ H'8000 〜 H'7FFF）です。
負数の場合は 2 の補数表現にします。
SCAREA MODE = 1 のときの設定範囲は、 D23--D0 の
0 〜 +16,777,215（ H'00_0000 〜 H'FF_FFFF）です。

WRITE

COMMAND PORT

⑤ DRIVE COMMAND PORT に COMMAND を書き込みます。

WRITE

推奨 :MC07_LWDrive 関数

DRIVE DATA1 PORT の設定データ
D15

D14

D13

D12

D11

D10

D9

D8

D7

D6

D5

D4

D3

D2

D1

オフセット／減速パルス数

D15

D0
D0

DRIVE DATA2 PORT の設定データ
D15

D14

D13

D12

D11

D10

D9

D8

D7

−

−

−

−

−

−

−

−

D23

D6

D5

D4

D3

D2

D1

減速パルス数D0
D16● 電源投入後の初期値は H'00_0001 (＋１パルス) です。
このコマンドは、 SPEC INITIALIZE3 コマンドの SCAREA MODE の選択により、設定データの機能が変わります。
● SPEC INITIALIZE3 コマンドの SCAREA MODE = 0 の場合
DRIVE DATA1 PORT の D15--D0 のみ有効です。
INDEX ドライブのオフセットパルス数を設定します。
設定したオフセットパルス数は、 MCC09 が自動検出する減速パルス数に加算します。
・オフセットパルス数を正数にすると、減速パルス数は増加します。
・オフセットパルス数を負数にすると、減速パルス数は減少します。

● SPEC INITIALIZE3 コマンドの SCAREA MODE = 1 の場合
DRIVE DATA1, 2 PORT の D23--D0 が有効です。
INDEX ドライブの減速停止動作を開始するための減速パルス数をマニュアル設定します。
設定した減速パルス数と INDEX ドライブの残アドレス（残パルス数）が同じパルス数になると、
INDEX ドライブの停止位置への減速停止動作を開始します。
・減速パルス数の計算式は、 4-1-3.章「Ｓ字加減速ドライブ」に記載しています。

- 80 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )3-1-3. ORIGIN ドライブの設定
ORIGIN ドライブの動作仕様を設定します。
※ ORIGIN 関数は、これらのコマンドを使用して、従来製品と同様の機械原点検出ドライブを実現しています。

(1 ) ORIGIN SPEC SETORIGIN 停止機能を設定します。
<実行シーケンス>

STATUS1 PORTCOMMAND H'0F
N

ORIGIN SPEC SET COMMAND① DRIVE STATUS1 PORT の ERROR フラグが "0" であることを確認します。

ERROR = 0 ?
Y
NSTATUS1 PORT

② DRIVE STATUS1 PORT の BUSY フラグが "0" であることを確認します。

BUSY = 0 ?

推奨 :MC07_BRStatus1 関数

Y
DATA1 PORT

③ DRIVE DATA1 PORT に設定データを書き込みます。

WRITE
COMMAND PORT

④ DRIVE COMMAND PORT に COMMAND を書き込みます。

WRITE

推奨 :MC07_LWDrive 関数(DATA2 PORT は、 H'0000 を書き込み)

DRIVE DATA1 PORT の設定データ
D15

D14

D13

D12

D11

D10

D9

D8

ORG

ORG

ORG

ORG

ORG

ORG

ORG

ORG

DIVISION

DIVISION

DIVISION

DIVISION

DIVISION

DIVISION

DIVISION

DIVISION

D7

D6

D5

D4

D3

D2

D1

D0

D7

D6

D5

D4

D3

D2

D1

D0

AUTO

ORG

ORG

ORG

ORG

ORG

ORG

ORG

DRST

STOP

STOP

DETECT

SIGNALSIGNALSIGNALSIGNALENABLE

TYPE1

TYPE0

EDGE

TYPE3

TYPE2

TYPE1

TYPE0

● 電源投入後の初期値は H'0003 (アンダーライン側) です。
D3--0 ： ORG SIGNAL TYPE3--0
ORIGIN 停止機能で検出する信号（ ORG 検出信号）を選択します。
TYPE3 TYPE2 TYPE1 TYPE0

ORG 検出信号
ORG 信号

0

0

0

0

0

0

0

1

ZPO 信号

00

1

0

ORG 信号と ZPO 信号の AND (論理積)

＊

0

0

1

1

ORG 信号と ZPO 信号の OR (論理和)

＊

0

1

0

0

ORG 信号01

01

DEND 信号

0

1

1

0

ORG 信号と DEND 信号の AND (論理積)

＊

0

1

1

1

ORG 信号と DEND 信号の OR (論理和)

＊

1

0

0

0

NORG 信号

1

0

0

1

設定禁止

1

0

1

0

SS0

1

0

1

1

設定禁止

1

1

0

0

設定禁止

1

1

0

1

設定禁止

1

1

1

0

設定禁止

1

1

1

1

設定禁止

＊：各信号のアクティブレベルを論理合成して、 ORG 検出信号にします。
DEND 信号を ORG 検出信号に選択した場合は、各信号の入力機能と ORIGIN 停止機能の両方が有効になります。

- 81 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )D4 ： ORG DETECT EDGE
ORG 検出信号の検出エッジを選択します。
0 ： ORG 検出信号の 0 → 1（アクティブ）エッジを検出する
1 ： ORG 検出信号の 1 → 0（ OFF）エッジを検出する

D5 ： ORG STOP TYPE0
D6 ： ORG STOP TYPE1
検出エッジの検出条件と ORG エッジ信号の停止機能を選択します。
TYPE1 TYPE0

検出エッジの検出条件

ORG エッジ信号の停止機能

備考
−

0

0

常時検出する

停止しない

0

1

DRIVE = 1 のときに検出する

パルス出力を減速停止する

1

0

DRIVE = 1 のときに検出する

パルス出力を即時停止する

1

1

DRIVE = 1 のときに検出する

１パルス停止する

ORGEND = 1 になる
SSEND フラグは変化しない
ORGEND = 1 になる
FSEND フラグは変化しない
ORGEND = 1 になる
FSEND フラグは変化しない

１パルス停止：・１パルス停止機能は即時停止機能とほぼ同様です。１パルス停止機能を検出すると、実行中のドライブパルス出力を完全に１周期出力してから、ドライブパルス出力を停止します。
・１パルス停止の後の連続ドライブでは、ドライブパルス周期の連続性を保つことが容易になります。
"01, 10, 11" に設定した場合は、検出と同時に STATUS2 PORT の ORGEND = 1 にします。

D7 ： AUTO DRST ENABLE
SPEC INITIALIZE3 コマンドの DRST TYPE を<サーボ対応>に設定している場合に有効です。
ORG エッジ信号の停止機能が動作（ ORGEND = 1）して、ドライブパルス出力を終了した時に、DRST 信号を「出力する／出力しない」を選択します。
0 ： DRST 信号を出力しない
1 ： DRST 信号を出力する（ 10 ms 間アクティブレベルにする）

D15--D8 ： ORG DIVISION D7--D0
ORG STOP TYPE の検出条件で検出したエッジ信号の分周数を選択します。
分周した信号が、最終検出の ORG エッジ信号になります。
D7--D0

H'FF

H'FE

H'FD

〜

H'03

H'02

H'01

H'00

分周数

256

255

254

〜

4

3

2

1 (分周なし)

ORG DIVISION = H'00
ORG DIVISION = H'01：
ORG DIVISION = H'FF

：１カウント毎のエッジ信号（ ORG エッジ信号）を出力する：２カウント毎のエッジ信号（ ORG エッジ信号）を出力する： 256 カウント毎のエッジ信号（ ORG エッジ信号）を出力する

以下の場合は、分周カウント値をクリアします。
・ ORIGIN SPEC SET コマンドの実行
・ ORG STOP TYPE = "01, 10, 11" に設定したときの DRIVE = 0 の状態- 82 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )3-1-4. 補間ドライブの設定
各軸 MCC09 の CPPOUT 端子と CPPIN 端子はディジーチェーン接続で繋がっています。
任意軸補間ドライブではメイン軸のチップが CPPOUT 端子に補間ドライブの基本パルスを出力します。
サブ軸のチップは基本パルスを CPPIN 端子から入力して CPPOUT 端子に出力します。
基本パルスのディジーチェーン接続

MCC09
CPPIN

MCC09

CPPOUTCPPIN
X 軸パルス出力

X軸

Z 軸パルス出力

Z軸

Y 軸パルス出力Y軸

CPPOUTA 軸パルス出力

A軸(1 ) CP SPEC SET
補間ドライブの補間パルスの入出力機能を設定します。
このコマンドの設定は X(Z), Y( A)軸で共有します。 X(Z), Y(A)のどの軸に設定しても有効です。
<実行シーケンス>

STATUS1 PORTERROR = 0 ?

COMMAND H'20
N

CP SPEC SET COMMAND① DRIVE STATUS1 PORT の ERROR フラグが "0" であることを確認します。

Y
N

STATUS1 PORTBUSY = 0 ?

② DRIVE STATUS1 PORT の BUSY フラグが "0" であることを確認します。
推奨 :MC07_BRStatus1 関数

Y
DATA1 PORTWRITECOMMAND PORTWRITE

③ DRIVE DATA1 PORT に設定データを書き込みます。

④ DRIVE COMMAND PORT に COMMAND を書き込みます。
推奨 :MC07_LWDrive 関数(DATA2 PORT は、 H'0000 を書き込み)

DRIVE DATA1 PORT の設定データ
D15

D14

D13

D12

D11

D10

D9

D8

−

−

−

−

−

−

−

−

D7

D6

D5

D4

D3

−

−

−

CPPIN
SEL

−

D2

D1

D0

CPPOUTCPPOUTCPPOUT

SEL2

SEL1

SEL0

● 電源投入後の初期値は H'01 (アンダーライン側) です。

- 83 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )D0 ： CPPOUT SEL0
D1 ： CPPOUT SEL1
D2 ： CPPOUT SEL2CPPOUT 端子から出力する補間パルスを選択します。
CPPOUT 端子から出力するパルス

SEL2

SEL1

SEL0

0

0

0

CPPIN 端子から入力するパルス

0

0

1

パルス出力なし（ハイレベル出力）

0

1

0

X(Z)軸の出力パルス (XOP)

0

1

1

Y(A)軸の出力パルス (YOP)

1

0

0

EA0, EB0 信号を変換したパルス

1

0

1

EA1, EB1 信号を変換したパルス

*3

1

1

0

X 軸が発生する補間ドライブの基本パルス

*1

1

1

1

Y 軸が発生する補間ドライブの基本パルス*1

CPPIN 端子*2

(MCC09 内部)

CPP
MASK

CPPIN

CPP

SEL

CPPIN

MASK

CPPOUT 端子

CPPOUTSELCPPIN 端子から入力するパルス
パルス出力なし
各種パルス*1： メイン軸直線補間ドライブを実行すると、直線補間ドライブの基本パルスを出力します。
メイン軸円弧補間ドライブを実行すると、円弧補間ドライブの基本パルスを出力します。
その他のドライブを実行する場合は、パルス出力なし（ハイレベル出力）にします。
*2： EA0, EB0 端子から入力する信号を、 X 軸の外部パルス出力仕様の設定でパルス出力します。
外部パルス出力仕様は、 X 軸の ADDRESS COUNTER INITIALIZE1 コマンドで設定します。
ただし、 X 軸の COUNT PULSE SEL を EA0, EB0 または EA1, EB1 に設定している場合は、
X 軸の出力パルス（ XOP： EA0, EB0 または EA1, EB1 ）を CPPOUT 端子から出力します。
*3： EA1, EB1 端子から入力する信号を、 Y 軸の外部パルス出力仕様の設定でパルス出力します。
外部パルス出力仕様は、 Y 軸の ADDRESS COUNTER INITIALIZE1 コマンドで設定します。
ただし、 Y 軸の COUNT PULSE SEL を EA0, EB0 または EA1, EB1 に設定している場合は、
Y 軸の出力パルス（ YOP： EA0, EB0 または EA1, EB1 ）を CPPOUT 端子から出力します。

D4 ： CPPIN SEL
MCC09 内部の補間パルス入力（ CPPIN）に入力する補間パルスを選択します。
0 ： CPPIN 端子から入力するパルス
1 ： CPPOUT 端子から出力するパルス- 84 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )3-1-5. 直線補間ドライブの設定と実行※デバイスドライバによる補間関数は、これらのコマンドを使用して、座標指定による補間ドライブを実現しています。
メイン軸直線補間ドライブの実行軸には、加減速ドライブのパラメータを設定します。
直線補間ドライブでは、長軸パルスを補間ドライブの基本パルスとし、短軸側は基本パルスを補間演算して補間パルスを出力します。
現在位置を座標中心（ 0, 0）とした長軸と短軸の相対アドレスを、座標アドレスとします。
座標アドレスは、正数が ＋(CW)方向、負数が −( CCW)方向です。
長軸と短軸の座標アドレスとドライブ仕様を指定して、直線補間ドライブを実行します。

■ 直線補間ドライブのドライブ仕様
ドライブ仕様は、直線補間ドライブのコマンド実行時に指定します。
・メイン軸は、長軸と短軸のパルス比で基本パルスと補間パルスを発生し、指定した座標アドレスの補間パルスを出力します。
・サブ軸は、長軸と短軸のパルス比で補間パルスを発生し、指定した座標アドレスの補間パルスを出力します。
D0 ： DRIVE MODE
直線補間ドライブを「連続ドライブにする／位置決めドライブにする」を選択します。
● 直線補間 SCAN ドライブ
停止指令を検出するまで、連続して補間ドライブを行います。
停止指令を検出すると、メイン軸は、基本パルスと補間パルス出力を停止します。
サブ軸は、補間パルス出力を即時停止します。
● 直線補間 INDEX ドライブ
基本パルスをカウントして、カウント値が長軸の座標アドレスのパルス数と一致すると、補間ドライブを終了します。
D1 ： CONST CP ENABLE
メイン軸直線補間ドライブで有効です。
線速一定制御を「無効にする／有効にする」を選択します。
● 線速一定制御
直線補間ドライブしている２軸の合成速度を一定にする制御です。
メイン軸が発生する補間ドライブの基本パルスを線速一定制御します。
メイン軸の長軸と短軸の２軸間で、２軸同時にパルス出力したときに、次の基本パルスの出力周期を 1.414 倍にします。
線速一定で加減速ドライブを行うと、減速後の終了速度でのドライブが長くなります。
D2 ： CPP STOP ENABLE
メイン軸直線補間ドライブで有効です。
メイン軸の CPP STOP 機能を「有効にする／無効にする」を選択します。
● メイン軸の CPP STOP 機能
メイン軸補間ドライブ実行中に機能します。
・メイン軸の CPP STOP 機能を有効にすると、補間ドライブの基本パルスと CPPIN に入力するパルスを偏差カウントします。
・ CPPIN のパルス数が、メイン軸の基本パルス数より２パルス分少なくなると、
補間ドライブの基本パルス出力を停止して、メイン軸のドライブを終了します。
・ CPP STOP 機能でドライブを終了した場合は、メイン軸の ERROR STATUS の CPP STOP ERROR = 1 にします。
・メイン軸は CPP STOP 機能でドライブを終了しますが、サブ軸はドライブを終了しません。
メイン軸が CPP STOP 機能でドライブを終了した場合は、すべてのサブ軸に停止指令を実行して、ドライブを終了させてください。

- 85 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )D2 ： CPP MASK ENABLE
サブ軸直線補間ドライブで有効です。
サブ軸の CPPIN マスク機能を「有効にする／無効にする」を選択します。
● サブ軸の CPPIN マスク機能
サブ軸補間ドライブ実行中に機能します。
・サブ軸の CPPIN マスク機能を有効にすると、
ERROR = 1 になると、 MCC09 内部の CPPIN に入力するパルスをマスクします。
・出力中の補間パルスが OFF レベルのときにマスクします。
出力中の補間パルスのアクティブレベルが続く場合は、
ERROR = 1 から 100 µs 後に、補間パルス出力を OFF レベルにしてマスクします。
・ CPPOUT SEL で CPPOUT 出力を「 CPPIN 端子から入力するパルス」に設定している場合は、
CPPIN のマスクにより、 CPPOUT 出力はハイレベル状態になります。
・ CPPIN マスク機能で CPPIN をマスク中は、 STATUS5 PORT の CPP MASK = 1 にします。
ERROR = 0 にクリアすると、 CPP MASK = 0 にします。

- 86 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )■ メイン軸直線補間ドライブの実行シーケンス
任意軸
CP SPEC SET① 任意軸に、 CPPOUT 出力と CPPIN 入力を設定します。

コマンド
実行軸
ドライブ機能② 実行軸に、加減速ドライブに必要なパラメータを設定します。

パラメータ設定
実行軸
LONG POSITION③ 実行軸に、長軸の座標アドレスを設定します。

SET コマンド実行軸
SHORT POSITION④ 実行軸に、短軸の座標アドレスを設定します。

SET コマンド実行軸
ドライブ実行⑤ 実行軸に、ドライブ仕様を指定して、ドライブを実行します。

初期値および設定値に対して変更が必要な場合に設定します。

■ サブ軸直線補間ドライブの実行シーケンス
任意軸
CP SPEC SET① 任意軸に、 CPPOUT 出力と CPPIN 入力を設定します。

コマンド
実行軸
LONG POSITION② 実行軸に、長軸の座標アドレスを設定します。

SET コマンド実行軸
SHORT POSITION③ 実行軸に、短軸の座標アドレスを設定します。

SET コマンド実行軸
ドライブ実行④ 実行軸に、ドライブ仕様を指定して、ドライブを実行します。

初期値および設定値に対して変更が必要な場合に設定します。

- 87 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )■ １チップ直線補間ドライブの実行シーケンス
任意軸
CP SPEC SET
コマンド① 任意軸に、 CPPOUT 出力と CPPIN 入力を設定します。
CPPOUT SEL =「メイン軸が発生する基本パルス」に設定します。
CPPIN SEL = 「 CPPOUT 端子から出力するパルス」に設定します。

サブ軸
LONG POSITION② サブ軸に、長軸の座標アドレスを設定します。

SET コマンド
サブ軸
SHORT POSITION③ サブ軸に、短軸の座標アドレスを設定します。

SET コマンド
メイン軸
ドライブ機能④ メイン軸に、加減速ドライブに必要なパラメータを設定します。

パラメータ設定
メイン軸
LONG POSITION⑤ メイン軸に、長軸の座標アドレスを設定します。

SET コマンド
メイン軸
SHORT POSITION⑥ メイン軸に、短軸の座標アドレスを設定します。

SET コマンドサブ軸
ドライブ実行
メイン軸
ドライブ実行⑦ サブ軸に、サブ軸直線補間ドライブを実行します。

⑧ メイン軸に、メイン軸直線補間ドライブを実行します。

初期値および設定値に対して変更が必要な場合に設定します。

サブ軸直線補間ドライブを実行すると、ドライブがスタンバイ状態になります。
メイン軸直線補間ドライブを実行すると、基本パルスを出力して、補間ドライブを開始します。
サブ軸は、 CPPIN に入力するパルスを基本パルスにして、補間ドライブを開始します。

- 88 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )■ マルチチップ直線補間ドライブの実行シーケンス
各サブチップ
CP SPEC SET
コマンド
メインチップ
CP SPEC SET
コマンド① 各サブ軸のチップに、 CPPOUT 出力と CPPIN 入力を設定します。
CPPOUT SEL =「 CPPIN 端子から入力するパルス」に設定します。
CPPIN SEL = 「 CPPIN 端子から入力するパルス」に設定します。
② メイン軸のチップに、 CPPOUT 出力と CPPIN 入力を設定します。
CPPOUT SEL =「メイン軸が発生する基本パルス」に設定します。
CPPIN SEL = 「 CPPIN 端子から入力するパルス」に設定します。

各サブ軸
LONG POSITION③ 各サブ軸に、長軸の座標アドレスを設定します。

SET コマンド
各サブ軸
SHORT POSITION④ 各サブ軸に、短軸の座標アドレスを設定します。

SET コマンド

メイン軸
ドライブ機能⑤ メイン軸に、加減速ドライブに必要なパラメータを設定します。

パラメータ設定
メイン軸
LONG POSITION⑥ メイン軸に、長軸の座標アドレスを設定します。

SET コマンド
メイン軸
SHORT POSITION⑦ メイン軸に、短軸の座標アドレスを設定します。

SET コマンド

各サブ軸
ドライブ実行
メイン軸
ドライブ実行⑧ 各サブ軸に、サブ軸直線補間ドライブを実行します。

⑨ メイン軸に、メイン軸直線補間ドライブを実行します。

初期値および設定値に対して変更が必要な場合に設定します。

MCC09 の CPPIN 端子と CPPOUT 端子をデイジーチェーン接続します。
サブ軸直線補間ドライブを実行すると、ドライブがスタンバイ状態になります。
メイン軸直線補間ドライブを実行すると、基本パルスを出力して、補間ドライブを開始します。
各サブ軸は、 CPPIN 端子から入力するパルスを基本パルスとして、補間ドライブを開始します。

- 89 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )(1 ) LONG POSITION SET
直線補間ドライブの、長軸の座標アドレスを設定します。
<実行シーケンス >STATUS1 PORTCOMMAND H'22
N

LONG POSITION SET COMMAND① DRIVE STATUS1 PORT の ERROR フラグが "0" であることを確認します。

ERROR = 0 ?
Y
NSTATUS1 PORT

② DRIVE STATUS1 PORT の BUSY フラグが "0" であることを確認します。

BUSY = 0 ?

推奨 :MC07_BRStatus1 関数

Y
DATA1 PORT

③ DRIVE DATA1 PORT に長軸の目的地の座標アドレスを書き込みます。

WRITE④ DRIVE DATA2 PORT に長軸の目的地の座標アドレスを書き込みます。
設定範囲は、-2,147,483,648 〜 +2,147,483,647（ H'8000_0000 〜 H'7FFF_FFFF ）です。
正数が CW、負数が CCW 方向です。負数の場合は 2 の補数表現にします。

DATA2 PORTWRITECOMMAND PORT

⑤ DRIVE COMMAND PORT に COMMAND を書き込みます。

WRITE

推奨 :MC07_LWDrive 関数

DRIVE DATA1 PORT の設定データ
D15

D14

D13

D12

D11

D10

D9

D8

D7

D6

D5

D4

D3

D2

D1

長軸の目的地の座標アドレス

A15

D0
A0

DRIVE DATA2 PORT の設定データ
D15
A31

D14

D13

D12

D11

D10

D9

D8

D7

D6

D5

D4

D3

D2

D1

長軸の目的地の座標アドレス

D0
A16●電源投入後の初期値は H'0000_0000 です。
指定する座標アドレスは、現在位置を座標中心（ 0, 0 ）とした相対アドレスです。
「長軸の目的地の座標アドレス」には、各補間軸の中で補間パルス数が最も大きい補間軸（長軸）の目的地を設定します。
ドライブ実行コマンドの PULSE SEL で指定した軸（長軸／短軸）の座標アドレスの符号が、出力する補間パルスの動作方向になります。

- 90 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )(2 ) SHORT POSITION SET
直線補間ドライブの、短軸の座標アドレスを設定します。
<実行シーケンス >STATUS1 PORTCOMMAND H'23
N

SHORT POSITION SET COMMAND① DRIVE STATUS1 PORT の ERROR フラグが "0" であることを確認します。

ERROR = 0 ?
Y
NSTATUS1 PORT

② DRIVE STATUS1 PORT の BUSY フラグが "0" であることを確認します。

BUSY = 0 ?

推奨 :MC07_BRStatus1 関数

Y③ DRIVE DATA1 PORT に短軸の目的地の座標アドレスを書き込みます。

DATA1 PORTWRITE

④ DRIVE DATA2 PORT に短軸の目的地の座標アドレスを書き込みます。
設定範囲は、-2,147,483,648 〜 +2,147,483,647（ H'8000_0000 〜 H'7FFF_FFFF ）です。
正数が CW、負数が CCW 方向です。負数の場合は 2 の補数表現にします。

DATA2 PORTWRITECOMMAND PORT

⑤ DRIVE COMMAND PORT に COMMAND を書き込みます。

WRITE

推奨 :MC07_LWDrive 関数

DRIVE DATA1 PORT の設定データ
D15

D14

D13

D12

D11

D10

D9

D8

D7

D6

D5

D4

D3

D2

D1

短軸の目的地の座標アドレス

A15

D0
A0

DRIVE DATA2 PORT の設定データ
D15
A31

D14

D13

D12

D11

D10

D9

D8

D7

D6

D5

D4

D3

D2

D1

短軸の目的地の座標アドレス

D0
A16●電源投入後の初期値は H'0000_0000 です。
指定する座標アドレスは、現在位置を座標中心（ 0, 0 ）とした相対アドレスです。
「短軸の目的地の座標アドレス」には、短軸の目的地（符号付きアドレス）を設定します。
・「長軸の座標アドレスの絶対値≧短軸の座標アドレスの絶対値」に設定します。
ドライブ実行コマンドの PULSE SEL で指定した軸（長軸／短軸）の座標アドレスの符号が、出力する補間パルスの動作方向になります。

- 91 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )(3 ) MAIN STRAIGHT CP
1 軸単位で直線補間ドライブを行うコマンドです。
任意軸間の直線補間、または複数軸で直線補間ドライブさせるときにメイン軸に実行します。
メイン軸の直線補間ドライブは実行軸の加減速パラメータで動作します。
<実行シーケンス>

STATUS1 PORTERROR = 0 ?

COMMAND H'30

MAIN STRAIGHT CP COMMANDN① DRIVE STATUS1 PORT の ERROR フラグが "0" であることを確認します。

Y
N

STATUS1 PORTBUSY = 0 ?

② DRIVE STATUS1 PORT の BUSY フラグが "0" であることを確認します。
推奨 :MC07_BRStatus1 関数

Y
DATA1 PORTWRITECOMMAND PORTWRITE

③ DRIVE DATA1 PORT に設定データを書き込みます。

④ DRIVE COMMAND PORT に COMMAND を書き込みます。
推奨 :MC07_LWDrive 関数(DATA2 PORT は、 H'0000 を書き込み)

DRIVE DATA1 PORT の設定データ
D15

D14

D13

D12

D11

D10

D9

D8

−

−

−

−

−

−

−

−

D7

D6

D5

D4

D3

−

−

−

PULSE
SEL

−

D2

D1

D0

CPP STOPCONST CPDRIVE

ENABLEENABLEMODE

D0 ： DRIVE MODE
直線補間ドライブを「連続ドライブにする／位置決めドライブにする」を選択します。
0 ：連続ドライブにする(SCAN ドライブ)
1 ：位置決めドライブにする(INDEX ドライブ)
D1 ： CONST CP ENABLE
線速一定制御を「無効にする／有効にする」を選択します。
0 ：線速一定制御を無効にする
1 ：線速一定制御を有効にする
D2 ： CPP STOP ENABLE
CPP STOP 機能を「有効にする／無効にする」を選択します。
0 ： CPP STOP 機能を無効にする
1 ： CPP STOP 機能を有効にする
D4 ： PULSE SEL
出力する補間パルスを選択します。
0 ： LONG POSITION （長軸）の補間パルスを出力する
1 ： SHORT POSITION（短軸）の補間パルスを出力する- 92 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )(4 ) SUB STRAIGHT CP
1 軸単位で直線補間ドライブを行うコマンドです。
任意軸間の直線補間、または複数軸で直線補間ドライブさせるときにサブ軸に実行します。
サブ軸の直線補間ドライブは CPPIN 入力パルスで動作します。
<実行シーケンス>

STATUS1 PORTERROR = 0 ?

COMMAND H'31

SUB STRAIGHT CP COMMANDN① DRIVE STATUS1 PORT の ERROR フラグが "0" であることを確認します。

Y
N

STATUS1 PORTBUSY = 0 ?

② DRIVE STATUS1 PORT の BUSY フラグが "0" であることを確認します。
推奨 :MC07_BRStatus1 関数

Y
DATA1 PORTWRITECOMMAND PORTWRITE

③ DRIVE DATA1 PORT に設定データを書き込みます。

④ DRIVE COMMAND PORT に COMMAND を書き込みます。
推奨 :MC07_LWDrive 関数(DATA2 PORT は、 H'0000 を書き込み)

DRIVE DATA1 PORT の設定データ
D15

D14

D13

D12

D11

D10

D9

D8

−

−

−

−

−

−

−

−

D7

D6

D5

D4

D3

D2

D1

−

−

−

PULSE
SEL

−

CPP MASKENABLE

−

D0
DRIVE
MODE

D0 ： DRIVE MODE
直線補間ドライブを「連続ドライブにする／位置決めドライブにする」を選択します。
0 ：連続ドライブにする(SCAN ドライブ)
1 ：位置決めドライブにする(INDEX ドライブ)
D2 ： CPP MASK ENABLE
CPPIN マスク機能を「有効にする／無効にする」を選択します。
0 ： CPPIN マスク機能を無効にする
1 ： CPPIN マスク機能を有効にする
D4 ： PULSE SEL
出力する補間パルスを選択します。
0 ： LONG POSITION （長軸）の補間パルスを出力する
1 ： SHORT POSITION（短軸）の補間パルスを出力する- 93 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )3-1-6. 円弧補間ドライブの設定と実行
メイン軸円弧補間ドライブの実行軸には、加減速ドライブのパラメータを設定します。
円弧補間ドライブでは、円弧の中心座標からみた短軸側の短軸パルスを補間ドライブの基本パルスとし、長軸側は基本パルスを補間演算して補間パルスを出力します。
円弧の中心点座標を（ 0, 0）とした X 軸と Y 軸の相対アドレスを、 X-Y 座標アドレスとします。
座標アドレスは、正数が ＋(CW)方向、負数が −( CCW)方向です。
現在位置の X-Y 座標アドレスと、目的地の短軸座標までの短軸パルス数と、ドライブ仕様を指定して、円弧補間ドライブを実行します。

■ 円弧補間ドライブのドライブ仕様
ドライブ仕様は、円弧補間ドライブのコマンド実行時に指定します。
・メイン軸は、指定の円弧半径と回転方向で基本パルスと補間パルスを発生し、指定した座標アドレスの補間パルスを出力します。
・サブ軸は、指定の円弧半径と回転方向で補間パルスを発生し、指定した座標アドレスの補間パルスを出力します。
D0 ： DRIVE MODE
円弧補間ドライブを「連続ドライブにする／位置決めドライブにする」を選択します。
● 円弧補間 SCAN ドライブ
停止指令を検出するまで、連続して補間ドライブを行います。
停止指令を検出すると、メイン軸は、基本パルスと補間パルス出力を停止します。
サブ軸は、補間パルス出力を即時停止します。
● 円弧補間 INDEX ドライブ
基本パルスをカウントして、カウント値が短軸パルス数の設定値と一致すると、補間ドライブを終了します。
D1 ： CONST CP ENABLE
メイン軸円弧補間ドライブで有効です。
線速一定制御を「無効にする／有効にする」を選択します。
● 線速一定制御
補間ドライブしている２軸の合成速度を一定にする制御です。
メイン軸が発生する補間ドライブの基本パルスを線速一定制御します。
X 座標軸と Y 座標軸の２軸間で、２軸同時にパルス出力したときに、次の基本パルスの出力周期を 1.414 倍にします。
線速一定で加減速ドライブを行うと、減速後の終了速度でのドライブが長くなります。
D2 ： CPP STOP ENABLE
メイン軸円弧補間ドライブで有効です。
メイン軸の CPP STOP 機能を「有効にする／無効にする」を選択します。
● メイン軸の CPP STOP 機能
メイン軸補間ドライブ実行中に機能します。
・メイン軸の CPP STOP 機能を有効にすると、補間ドライブの基本パルスと CPPIN に入力するパルスを偏差カウントします。
・ CPPIN のパルス数が、メイン軸の基本パルス数より２パルス分少なくなると、
補間ドライブの基本パルス出力を停止して、メイン軸のドライブを終了します。
・ CPP STOP 機能でドライブを終了した場合は、メイン軸の ERROR STATUS の CPP STOP ERROR = 1 にします。
・メインは CPP STOP 機能でドライブを終了しますが、サブ軸はドライブを終了しません。
メイン軸が CPP STOP 機能でドライブを終了した場合は、すべてのサブ軸に停止指令を実行して、ドライブを終了させてください。

- 94 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )D2 ： CPP MASK ENABLE
サブ軸円弧補間ドライブで有効です。
サブ軸の CPPIN マスク機能を「有効にする／無効にする」を選択します。
● サブ軸の CPPIN マスク機能
サブ軸補間ドライブ実行中に機能します。
・サブ軸の CPPIN マスク機能を有効にすると、
ERROR = 1 になると、 MCC09 内部の CPPIN に入力するパルスをマスクします。
・出力中の補間パルスが OFF レベルのときにマスクします。
出力中の補間パルスのアクティブレベルが続く場合は、
ERROR = 1 から 100 µs 後に、補間パルス出力を OFF レベルにしてマスクします。
・ CPPOUT SEL で CPPOUT 出力を「 CPPIN 端子から入力するパルス」に設定している場合は、
CPPIN のマスクにより、 CPPOUT 出力はハイレベル状態になります。
・ CPPIN マスク機能で CPPIN をマスク中は、 STATUS5 PORT の CPP MASK = 1 にします。
ERROR = 0 にクリアすると、 CPP MASK = 0 にします。

- 95 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )■ メイン軸円弧補間ドライブの実行シーケンス
任意軸
CP SPEC SET① 任意軸に、 CPPOUT 出力と CPPIN 入力を設定します。

コマンド
実行軸
ドライブ機能② 実行軸に、加減速ドライブに必要なパラメータを設定します。

パラメータ設定
実行軸
XPOSITION SET③ 実行軸に、現在位置の X 座標アドレスを設定します。

コマンド
実行軸
YPOSITION SET④ 実行軸に、現在位置の Y 座標アドレスを設定します。

コマンド
実行軸
CIRCULAR PULSE⑤ 実行軸に、目的地の短軸座標までのパルス数を設定します。

SET コマンド実行軸
ドライブ実行⑥ 実行軸に、ドライブ仕様を指定して、ドライブを実行します。

初期値および設定値に対して変更が必要な場合に設定します。

■ サブ軸円弧補間ドライブの実行シーケンス
任意軸
CP SPEC SET① 任意軸に、 CPPOUT 出力と CPPIN 入力を設定します。

コマンド
実行軸
XPOSITION SET② 実行軸に、現在位置の X 座標アドレスを設定します。

コマンド
実行軸
YPOSITION SET③ 実行軸に、現在位置の Y 座標アドレスを設定します。

コマンド
実行軸
CIRCULAR PULSE④ 実行軸に、目的地の短軸座標までのパルス数を設定します。

SET コマンド実行軸
ドライブ実行⑤ 実行軸に、ドライブ仕様を指定して、ドライブを実行します。

初期値および設定値に対して変更が必要な場合に設定します。

- 96 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )■ １チップ２軸円弧補間ドライブの実行シーケンス
任意軸
CP SPEC SET
コマンド① 任意軸に、 CPPOUT 出力と CPPIN 入力を設定します。
CPPOUT SEL =「メイン軸が発生する基本パルス」に設定します。
CPPIN SEL = 「 CPPOUT 端子から出力するパルス」に設定します。

サブ軸
XPOSITION SET② サブ軸に、現在位置の X 座標アドレスを設定します。

コマンド
サブ軸
YPOSITION SET③ サブ軸に、現在位置の Y 座標アドレスを設定します。

コマンド
サブ軸
CIRCULAR PULSE④ サブ軸に、目的地の短軸座標までのパルス数を設定します。

SET コマンド
メイン軸
ドライブ機能⑤ メイン軸に、加減速ドライブに必要なパラメータを設定します。

パラメータ設定
メイン軸
XPOSITION SET⑥ メイン軸に、現在位置の X 座標アドレスを設定します。

コマンド
メイン軸
YPOSITION SET⑦ メイン軸に、現在位置の Y 座標アドレスを設定します。

コマンド
メイン軸
CIRCULAR PULSE⑧ メイン軸に、目的地の短軸座標までのパルス数を設定します。

SET コマンドサブ軸
ドライブ実行
メイン軸
ドライブ実行⑨ サブ軸に、サブ軸円弧補間ドライブを実行します。

⑩ メイン軸に、メイン軸円弧補間ドライブを実行します。

初期値および設定値に対して変更が必要な場合に設定します。

サブ軸円弧補間ドライブを実行すると、ドライブがスタンバイ状態になります。
メイン軸円弧補間ドライブを実行すると、基本パルスを出力して、補間ドライブを開始します。
サブ軸は、 CPPIN に入力するパルスを基本パルスにして、補間ドライブを開始します。

- 97 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )■ ２チップ２軸円弧補間ドライブの実行シーケンス
サブチップ
CP SPEC SET
コマンド
メインチップ
CP SPEC SET
コマンド① サブ軸のチップに、 CPPOUT 出力と CPPIN 入力を設定します。
CPPOUT SEL =「 CPPIN 端子から入力するパルス」に設定します。
CPPIN SEL = 「 CPPIN 端子から入力するパルス」に設定します。
② メイン軸のチップに、 CPPOUT 出力と CPPIN 入力を設定します。
CPPOUT SEL =「メイン軸が発生する基本パルス」に設定します。
CPPIN SEL = 「 CPPIN 端子から入力するパルス」に設定します。

サブ軸
XPOSITION SET③ サブ軸に、現在位置の X 座標アドレスを設定します。

コマンド
サブ軸
YPOSITION SET④ サブ軸に、現在位置の Y 座標アドレスを設定します。

コマンド
サブ軸
CIRCULAR PULSE⑤ サブ軸に、目的地の短軸座標までのパルス数を設定します。

SET コマンド
メイン軸
ドライブ機能⑥ メイン軸に、加減速ドライブに必要なパラメータを設定します。

パラメータ設定
メイン軸
XPOSITION SET⑦ メイン軸に、現在位置の X 座標アドレスを設定します。

コマンド
メイン軸
YPOSITION SET⑧ メイン軸に、現在位置の Y 座標アドレスを設定します。

コマンド
メイン軸
CIRCULAR PULSE⑨ メイン軸に、目的地の短軸座標までのパルス数を設定します。

SET コマンドサブ軸
ドライブ実行
メイン軸
ドライブ実行⑩ サブ軸に、サブ軸円弧補間ドライブを実行します。

⑪ メイン軸に、メイン軸円弧補間ドライブを実行します。

初期値および設定値に対して変更が必要な場合に設定します。

サブ軸円弧補間ドライブを実行すると、ドライブがスタンバイ状態になります。
メイン軸円弧補間ドライブを実行すると、基本パルスを出力して、補間ドライブを開始します。
サブ軸は、 CPPIN 端子から入力するパルスを基本パルスとして、補間ドライブを開始します。

- 98 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )(1 ) CIRCULAR XPOSITION SET
円弧の中心点座標を（ 0, 0）とした現在位置の X 座標アドレスを設定します。
実行軸のどちらの軸に設定しても有効です。
<実行シーケンス >COMMAND H'28

CIRCULAR XPOSITION SET COMMANDNSTATUS1 PORT

① DRIVE STATUS1 PORT の ERROR フラグが "0" であることを確認します。

ERROR = 0 ?
Y
NSTATUS1 PORT

② DRIVE STATUS1 PORT の BUSY フラグが "0" であることを確認します。

BUSY = 0 ?

推奨 :MC07_BRStatus1 関数

Y③ DRIVE DATA1 PORT に現在位置の X 座標アドレスを書き込みます。

DATA1 PORTWRITE

④ DRIVE DATA2 PORT に現在位置の X 座標アドレスを書き込みます。
設定範囲は、-8,388,608 〜 +8,388,607（ H'80_0000 〜 H'7F_FFFF）です。
正数が CW、負数が CCW 方向です。負数の場合は 2 の補数表現にします。

DATA2 PORTWRITECOMMAND PORT

⑤ DRIVE COMMAND PORT に COMMAND を書き込みます。

WRITE

推奨 :MC07_LWDrive 関数

DRIVE DATA1 PORT の設定データ
D15

D14

D13

D12

D11

D10

D9

D8

D7

D6

D5

D4

D3

D2

D1

現在位置の X 座標アドレス

A15

D0
A0

DRIVE DATA2 PORT の設定データ
D15

D14

D13

D12

D11

D10

D9

D8

D7

−

−

−

−

−

−

−

−

A23

D6

D5

D4

D3

D2

現在位置の X 座標アドレス

D1

D0
A16

●電源投入後の初期値は H'00_0000 です。
・指定する座標アドレスは、円弧の中心点座標を（ 0, 0）とした X 軸の相対アドレスです。

- 99 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )(2 ) CIRCULAR YPOSITION SET
円弧の中心点座標を（ 0, 0）とした現在位置の Y 座標アドレスを設定します。
実行軸のどちらの軸に設定しても有効です。
<実行シーケンス >COMMAND H'29

CIRCULAR YPOSITION SET COMMANDNSTATUS1 PORT

① DRIVE STATUS1 PORT の ERROR フラグが "0" であることを確認します。

ERROR = 0 ?
Y
NSTATUS1 PORT

② DRIVE STATUS1 PORT の BUSY フラグが "0" であることを確認します。

BUSY = 0 ?

推奨 :MC07_BRStatus1 関数

Y③ DRIVE DATA1 PORT に現在位置の Y 座標アドレスを書き込みます。

DATA1 PORTWRITE

④ DRIVE DATA2 PORT に現在位置の Y 座標アドレスを書き込みます。
設定範囲は、-8,388,608 〜 +8,388,607（ H'80_0000 〜 H'7F_FFFF）です。
正数が CW、負数が CCW 方向です。負数の場合は 2 の補数表現にします。

DATA2 PORTWRITECOMMAND PORT

⑤ DRIVE COMMAND PORT に COMMAND を書き込みます。

WRITE

推奨 :MC07_LWDrive 関数

DRIVE DATA1 PORT の設定データ
D15

D14

D13

D12

D11

D10

D9

D8

D7

D6

D5

D4

D3

D2

D1

現在位置の Y 座標アドレス

A15

D0
A0

DRIVE DATA2 PORT の設定データ
D15

D14

D13

D12

D11

D10

D9

D8

D7

−

−

−

−

−

−

−

−

A23

D6

D5

D4

D3

D2

現在位置の Y 座標アドレス

D1

D0
A16

●電源投入後の初期値は H'00_0000 です。
・指定する座標アドレスは、円弧の中心点座標を（ 0, 0）とした Y 軸の相対アドレスです。

- 100 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )(3 ) CIRCULAR PULSE SET
現在位置の X-Y 座標アドレスから目的地の短軸座標までの短軸パルス数を設定します。
実行軸のどちらの軸に設定しても有効です。
<実行シーケンス >STATUS1 PORTCOMMAND H'2A

CIRCULAR PULSE SET COMMANDN① DRIVE STATUS1 PORT の ERROR フラグが "0" であることを確認します。

ERROR = 0 ?
Y
NSTATUS1 PORT

② DRIVE STATUS1 PORT の BUSY フラグが "0" であることを確認します。

BUSY = 0 ?

推奨 :MC07_BRStatus1 関数

Y③ DRIVE DATA1 PORT に目的地の短軸座標までのパルス数を書き込みます。

DATA1 PORTWRITE

④ DRIVE DATA2 PORT に目的地の短軸座標までのパルス数を書き込みます。
設定範囲は、-2,147,483,648 〜 +2,147,483,647（ H'8000_0000 〜 H'7FFF_FFFF ）です。
正数が CW、負数が CCW 方向です。負数の場合は 2 の補数表現にします。

DATA2 PORTWRITECOMMAND PORT

⑤ DRIVE COMMAND PORT に COMMAND を書き込みます。

WRITE

推奨 :MC07_LWDrive 関数

DRIVE DATA1 PORT の設定データ
D15

D14

D13

D12

D11

D10

D9

D8

D7

D6

D5

D4

D3

D2

D1

目的地の短軸座標までのパルス数

D15

D0
D0

DRIVE DATA2 PORT の設定データ
D15
D31

D14

D13

D12

D11

D10

D9

D8

D7

D6

D5

D4

D3

D2

D1

目的地の短軸座標までのパルス数●電源投入後の初期値は H'0000_0000 ( 0 パルス) です。
指定するパルス数は、
目的地の短軸座標に到達するまでに経由する、各象限の短軸の合計パルス数です。
・短軸パルス数の計算式は、「 4-1-5.(4)円弧補間ドライブ」をご覧ください。
デバイスドライバの円弧補間短軸 PULSE 数ゲット関数を使用すると指定された円弧の中心点相対アドレス、目的地相対アドレス、回転方向をもとに目的地の短軸座標までのパルス数を算出します。

円弧を描く回転方向は、パルス数の符号で指定します。
・正数を指定すると CW 方向に回転します。
・負数を指定すると CCW 方向に回転します。

- 101 -D0
D16

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )(4 ) MAIN CIRCULAR CP
1 軸単位で円弧補間ドライブを行うコマンドです。
任意軸間の円弧補間ドライブさせるときにメイン軸に実行します。
メイン軸の加減速パラメータで発生するパルスを基本パルスにして動作します。

<実行シーケンス>

STATUS1 PORTERROR = 0 ?

COMMAND H'38

N

MAIN CIRCULAR CP COMMAND① メイン軸の DRIVE STATUS1 PORT のERROR フラグが "0" であることを確認します。

Y
N

STATUS1 PORTBUSY = 0 ?

② メイン軸 DRIVE STATUS1 PORT の
BUSY フラグが "0" であることを確認します。
推奨 :MC07_BRStatus1 関数

Y
DATA1 PORTWRITECOMMAND PORT
WRITE

③ 実行軸の DRIVE DATA1 PORT に設定データを書き込みます。
④ メイン軸の DRIVE COMMAND PORT に COMMAND を書き込みます。
* サブ軸を先にコマンド実行した後、メイン軸にコマンド実行します。
推奨 :MC07_LWDrive 関数(DATA2 PORT は、 H'0000 を書き込み)

DRIVE DATA1 PORT の設定データ
D15

D14

D13

D12

D11

D10

D9

D8

−

−

−

−

−

−

−

−

D7

D6

D5

D4

D3

−

−

−

PULSE
SEL

−

D2

D1

D0

CPP STOPCONST CPDRIVE

ENABLEENABLEMODE

D0 ： DRIVE MODE
円弧補間ドライブを「連続ドライブにする／位置決めドライブにする」を選択します。
0 ：連続ドライブにする(SCAN ドライブ)
1 ：位置決めドライブにする(INDEX ドライブ)
D1 ： CONST CP ENABLE
線速一定制御を「無効にする／有効にする」を選択します。
0 ：線速一定制御を無効にする
1 ：線速一定制御を有効にする
D2 ： CPP STOP ENABLE
CPP STOP 機能を「有効にする／無効にする」を選択します。
0 ： CPP STOP 機能を無効にする
1 ： CPP STOP 機能を有効にする
D4 ： PULSE SEL
出力する補間パルスを選択します。
0 ：円弧補間演算の X 座標アドレスの補間パルス（ XCP）を出力する
1 ：円弧補間演算の Y 座標アドレスの補間パルス（ YCP）を出力する- 102 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )(5 ) SUB CIRCULAR CP
1 軸単位で円弧補間ドライブを行うコマンドです。
任意軸間の円弧補間ドライブさせるときにサブ軸に実行します。
サブ軸は、 CPPIN 入力パルスを基本パルスにして動作します。
<実行シーケンス>

STATUS1 PORTERROR = 0 ?
Y
NSTATUS1 PORTBUSY = 0 ?

COMMAND H'39
N

SUB CIRCULAR CP COMMAND① サブ軸の DRIVE STATUS1 PORT のERROR フラグが "0" であることを確認します。
② サブ軸の DRIVE STATUS1 PORT の
BUSY フラグが "0" であることを確認します。
推奨 :MC07_BRStatus1 関数

Y
DATA1 PORT

③ 実行軸の DRIVE DATA1 PORT に設定データを書き込みます。

WRITE
COMMAND PORT
WRITE

④ サブ軸の DRIVE COMMAND PORT に COMMAND を書き込みます。
* サブ軸を先にコマンド実行した後、メイン軸にコマンド実行します。
推奨 :MC07_LWDrive 関数(DATA2 PORT は、 H'0000 を書き込み)

DRIVE DATA1 PORT の設定データ
D15

D14

D13

D12

D11

D10

D9

D8

−

−

−

−

−

−

−

−

D7

D6

D5

D4

D3

D2

D1

−

−

−

PULSE
SEL

−

CPP MASKENABLE

−

D0
DRIVE
MODE

D0 ： DRIVE MODE
円弧補間ドライブを「連続ドライブにする／位置決めドライブにする」を選択します。
0 ：連続ドライブにする(SCAN ドライブ)
1 ：位置決めドライブにする(INDEX ドライブ)
D2 ： CPP MASK ENABLE
CPPIN マスク機能を「有効にする／無効にする」を選択します。
0 ： CPPIN マスク機能を無効にする
1 ： CPPIN マスク機能を有効にする

D4 ： PULSE SEL
出力する補間パルスを選択します。
0 ：円弧補間演算の X 座標アドレスの補間パルス（ XCP）を出力する
1 ：円弧補間演算の Y 座標アドレスの補間パルス（ YCP）を出力する- 103 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )3-1-7. SPEED CHANGE の設定と実行変更動作点を設定して、 SPEED CHANGE を実行します。
変更動作点の設定は、変更動作点の変更が必要な場合に設定します。

(1 ) SPEED CHANGE SPEC SETSPEED CHANGE 指令を実行する変更動作点を設定します。
<実行シーケンス>

COMMAND H'C1

STATUS5 PORT

① DRIVE STATUS5 PORT の SPEED FL フラグが "0" であることを確認します。

NSPEED FL = 0 ?

SPEED CHANGE SPEC SET COMMAND

MC07_BRStatus5 関数

Y
DATA1 PORT

② DRIVE DATA1 PORT に設定データを書き込みます。

WRITE
COMMAND PORT

③ DRIVE COMMAND PORT に COMMAND を書き込みます。

WRITE

推奨 :MC07_LWDrive 関数(DATA2 PORT は、 H'0000 を書き込み)

DRIVE DATA1 PORT の設定データ
D15

D14

D13

D12

D11

D10

D9

D8

−

−

−

−

−

−

−

−

D7

D6

D5

D4

D3

−

−

−

−

−

D2

D1

D0

SPEED

SPEED

SPEED

CHANGECHANGECHANGE

TYPE2

TYPE1

TYPE0

●電源投入後の初期値は H'0 (アンダーライン側) です。
D2--D0 ： SPEED CHANGE TYPE2--0
SPEED CHANGE 指令を実行する変更動作点を選択します。
D2

D1

D0

SPEED CHANGE を実行する変更動作点

検出仕様

0

0

0

STATUS1 PORT の DRIVE = 1 で実行する

レベル検出

0

0

1

DRIVE = 1 のときに、他軸の STATUS3 PORT の OUT3 = 0 → 1 で実行する

エッジ検出

0

1

0

DRIVE = 1 のときに、 STATUS3 PORT の GPIO2 = 0 → 1 で実行する

エッジ検出

0

1

1

DRIVE = 1 のときに、 ORIGIN 停止機能の ORG エッジ信号の検出で実行する

エッジ検出

1

0

0

DRIVE = 1 のときに、 STATUS3 PORT の OUT2 = 0 → 1 で実行する

エッジ検出

1

0

1

DRIVE = 1 のときに、 STATUS3 PORT の OUT3 = 0 → 1 で実行する

エッジ検出

1

1

0

設定禁止

−

1

1

1

設定禁止

−

■ SPEED CHANGE の実行シーケンス
SPEED CHANGE
SPEC SET コマン ドSPEED RATECHANGE コマンド

① SPEED CHANGE 指令を実行する変更動作点を設定します。

② SPEED RATE CHANGE 指令を実行（設定）します。

初期値および設定値に対して変更が必要な場合に設定します。

- 104 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )(2 ) SPEED RATE CHANGE
変更動作点の検出で、 SPEED RATE CHANGE 指令を実行します。
<実行シーケンス>

COMMAND H'C8

STATUS5 PORT

① DRIVE STATUS5 PORT の SPEED FL フラグが "0" であることを確認します。

NSPEED FL = 0 ?

SPEED RATE CHANGE COMMAND

MC07_BRStatus5 関数

Y② DRIVE DATA1 PORT に変更速度データを書き込みます。
変更速度データの設定範囲は、 0 〜 32,767（ H'0000 〜 H'7FFF）です。
速度倍率を 400 に設定した場合は、変更速度データの設定範囲は、 0 〜 25,000（ H'0000 〜 H'61A8）です。

DATA1 PORTWRITE

DATA2 PORT

③ DRIVE DATA2 PORT に変速周期データを書き込みます。
変速周期データの設定範囲は、 0 〜 16,383（ H'0000 〜 H'3FFF）です。

WRITE

COMMAND PORT

④ DRIVE COMMAND PORT に COMMAND を書き込みます。

WRITE

推奨 :MC07_LWDrive 関数

DRIVE DATA1 PORT の設定データ
D15

D14

−

D14

D13

D12

D11

D10

D9

D8

D7

D6

D5

D4

D3

D2

D1

SPEED CHANGE データ

D0
D0

DRIVE DATA2 PORT の設定データ
D15

D14

D13

−

−

D13

D12

D11

D10

D9

D8

D7

D6

RATE CHANGE データ

D5

D4

D3

D2

D1

D0
D0

SPEED CHANGE データの設定値を "0" にすると、 CONST DRIVE 指令になります。
・ SPEED CHANGE の速度（ Hz）＝ SPEED CHANGE データ x RESOL ： 1 〜 10,000,000 Hz
RATE CHANGE データ（変速周期データ）の設定値が "0" の場合は、「 RATE CHANGE データ＝ RATE SET コマンドの UCYCLE または DCYCLE 」にします。
・加速カーブの変速周期（ µs）＝ RATE CHANGE データ（または UCYCLE） x 0.5 µs
・減速カーブの変速周期（ µs）＝ RATE CHANGE データ（または DCYCLE） x 0.5 µs
SPEED RATE CHANGE コマンドを実行しても、予め設定されている速度パラメータの値は変わりません。

- 105 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )3-1-8. INDEX CHANGE の設定と実行変更動作点を設定して、 INDEX CHANGE を実行します。
変更動作点の設定は、変更動作点の変更が必要な場合に設定します。

(1 ) INDEX CHANGE SPEC SETINDEX CHANGE 指令を実行する変更動作点と RFSPD を設定します。
<実行シーケンス>

COMMAND H'C3

STATUS5 PORT

① STATUS5 PORT の INDEX FL フラグが "0" であることを確認します。

N

INDEX FL = 0 ?

INDEX CHANGE SPEC SET COMMAND

MC07_BRStatus5 関数

Y
DATA1 PORT

② DRIVE DATA1 PORT に設定データを書き込みます。

WRITE
COMMAND PORT

③ DRIVE COMMAND PORT に COMMAND を書き込みます。

WRITE

推奨 :MC07_LWDrive 関数(DATA2 PORT は、 H'0000 を書き込み)

DRIVE DATA1 PORT の設定データ
D15

D14

D13

D12

D11

D10

D9

D8

RFSPD

RFSPD

RFSPD

RFSPD

RFSPD

RFSPD

RFSPD

RFSPD

D7

D6

D5

D4

D3

D2

D1

D0

D7

D6

D5

D4

D3

−

−

−

−

−

D2

D1

D0

INDEX

INDEX

INDEX

CHANGECHANGECHANGE

TYPE2

TYPE1

TYPE0

● 電源投入後の初期値は H'1400 (アンダーライン側) です。
D2--D0 ： INDEX CHANGE TYPE2--0
INDEX CHANGE 指令を実行する変更動作点を選択します。
D2

D1

D0

INDEX CHANGE を実行する変更動作点

検出仕様

0

0

0

STATUS1 PORT の DRIVE = 1 で実行する

レベル検出

0

0

1

DRIVE = 1 のときに、他軸の STATUS3 PORT の OUT3 = 0 → 1 で実行する

エッジ検出

0

1

0

DRIVE = 1 のときに、 STATUS3 PORT の GPIO2 = 0 → 1 で実行する

エッジ検出

0

1

1

DRIVE = 1 のときに、 ORIGIN 停止機能の ORG エッジ信号の検出で実行する

エ ッジ検出100DRIVE = 1 のときに、 STATUS3 PORT の OUT2 = 0 → 1 で実行する

エッジ検出

1

0

1

DRIVE = 1 のときに、 STATUS3 PORT の OUT3 = 0 → 1 で実行する

エッジ検出

1

1

0

設定禁止

−

1

1

1

設定禁止

−

D15--D8 ： RFSPD D7--D0
INDEX CHANGE 指令による反転方向の動作も可能です。
この反転ドライブの第１パルス目のパルス周期（パルス速度）を設定します。
・設定範囲は、 0 〜 255 （ H'00 〜 H'FF）です。設定値は、 1 Hz 単位です。
・ RFSPD の初期値は、 20 Hz（ H'14）です。
RFSPD の設定値が "0" の場合は、 RFSPD を RFSPD = RSPD x RESOL に補正します。

■ INDEX CHANGE の実行シーケンス
INDEX CHANGE
SPEC SET コマンド

INDEX CHANGE
コマンド① INDEX CHANGE 指令を実行する変更動作点と反転ドライブの第１パルス目のパルス周期を設定します。

② INDEX CHANGE 指令を実行（設定）します。
初期値および設定値に対して変更が必要な場合に設定します。

- 106 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )(2 ) INC INDEX CHANGE
変更動作点の検出で、 INC INDEX CHANGE 指令を実行します。
指定したデータを、起動位置を原点とする相対アドレスの停止位置に設定して、INC INDEX ドライブを行います。

N<実行シーケンス>

COMMAND H'CCSTATUS5 PORT

① DRIVE STATUS5 PORT の INDEX FL フラグが "0" であることを確認します。

INDEX FL = 0 ?

INC INDEX CHANGE COMMAND

MC07_BRStatus5 関数

Y
DATA1 PORT

② DRIVE DATA1 PORT に目的地の相対アドレス D15--D0 を書き込みます。

WRITE③ DRIVE DATA2 PORT に目的地の相対アドレス D31--D16 を書き込みます。
設定範囲は、‑2,147,483,647 〜+ 2,147,483,647（ H'8000_0001 〜 H'7FFF_FFFF）です。
正数が CW、負数が CCW 方向です。負数の場合は 2 の補数表現にします。

DATA2 PORTWRITECOMMAND PORT

④ DRIVE COMMAND PORT に COMMAND を書き込みます。

WRITE

推奨 :MC07_LWDrive 関数

DRIVE DATA1 PORT の設定データ
D15

D14

D13

D12

D11

D10

D9

D8

D7

D6

D5

D4

D3

D2

D1

INDEX CHANGE データ

D15

D0
D0

DRIVE DATA2 PORT の設定データ
D15
D31

D14

D13

D12

D11

D10

D9

D8

D7

D6

D5

D4

INDEX CHANGE データ

指定する相対アドレスは、起動位置から停止位置までのパルス数を、起動位置を原点として符号付きで表現した値です。

- 107 -

D3

D2

D1

D0
D16

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )(3 ) ABS INDEX CHANGE
変更動作点の検出で、 ABS INDEX CHANGE 指令を実行します。
指定したデータを、アドレスカウンタで管理している絶対アドレスの停止位置に設定して、ABS INDEX ドライブを行います。

N<実行シーケンス>

COMMAND H'CD

STATUS5 PORT

① DRIVE STATUS5 PORT の INDEX FL フラグが "0" であることを確認します。

INDEX FL = 0 ?

ABS INDEX CHANGE COMMAND

MC07_BRStatus5 関数

Y
DATA1 PORT

② DRIVE DATA1 PORT に目的地の絶対アドレス A15--A0 を書き込みます。

WRITE③ DRIVE DATA2 PORT に目的地の絶対アドレス A31--A16 を書き込みます。
設定範囲は、‑2,147,483,647 〜+ 2,147,483,647（ H'8000_0001 〜 H'7FFF_FFFF）です。
負数の場合は 2 の補数表現にします。

DATA2 PORTWRITECOMMAND PORT

④ DRIVE COMMAND PORT に COMMAND を書き込みます。

WRITE

推奨 :MC07_LWDrive 関数

DRIVE DATA1 PORT の設定データ
D15

D14

D13

D12

D11

D10

D9

D8

D7

D6

D5

D4

D3

D2

D1

INDEX CHANGE データ

A15

D0
A0

DRIVE DATA2 PORT の設定データ
D15
A31

D14

D13

D12

D11

D10

D9

D8

D7

D6

D5

D4

D3

D2

INDEX CHANGE データ

指定する絶対アドレスは、アドレスカウンタで管理している絶対アドレスです。

- 108 -

D1

D0
A16

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )(4 ) PLS INDEX CHANGE
変更動作点の検出で、 PLS INDEX CHANGE 指令を実行します。
指定したデータを、変更動作点の検出位置を原点とする相対アドレスの停止位置に設定して、INC INDEX ドライブを行います。

N<実行シーケンス>

COMMAND H'CE

STATUS5 PORT

① DRIVE STATUS5 PORT の INDEX FL フラグが "0" であることを確認します。

INDEX FL = 0 ?

PLS INDEX CHANGE COMMAND

MC07_BRStatus5 関数

Y
DATA1 PORT

② DRIVE DATA1 PORT に目的地の相対アドレス D15--D0 を書き込みます。

WRITE③ DRIVE DATA2 PORT に目的地の相対アドレス D31--D16 を書き込みます。
設定範囲は、‑2,147,483,647 〜+ 2,147,483,647（ H'8000_0001 〜 H'7FFF_FFFF）です。
正数が CW、負数が CCW 方向です。負数の場合は 2 の補数表現にします。

DATA2 PORTWRITECOMMAND PORT

④ DRIVE COMMAND PORT に COMMAND を書き込みます。

WRITE

推奨 :MC07_LWDrive 関数

DRIVE DATA1 PORT の設定データ
D15

D14

D13

D12

D11

D10

D9

D8

D7

D6

D5

D4

D3

D2

D1

INDEX CHANGE データ

D15

D0
D0

DRIVE DATA2 PORT の設定データ
D15
D31

D14

D13

D12

D11

D10

D9

D8

D7

D6

D5

D4

D3

D2

D1

INDEX CHANGE データ

指定する相対アドレスは、変更動作点の検出位置から停止位置までのパルス数を、変更動作点の検出位置を原点として符号付きで表現した値です。

- 109 -D0
D16

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )3-1-9. RAM I/F の設定
ここで説明する RAM I/F 機能は、 SSMAP-63 による MCM 編集ツール、または直接ユーザアプリケーションから
RAM 領域にアクセスして MCM (RAM 領域)を操作するためのコマンドです。
MCM 実行中に、ユーザアプリケーションから、当コマンドを実行することはできません。

(1 ) RAM SPEC SETRAM READ JUMP コマンドの実行タイミングと有効条件を設定します。
NO OPERATION コマンドの実行タイミングを設定します。
このコマンドの実行は常時可能です。
<実行シーケンス>

DATA1 PORTWRITECOMMAND PORTWRITECOMMAND H'B0

RAM SPEC SET COMMAND① DRIVE DATA1 PORT に設定データを書き込みます。

② DRIVE COMMAND PORT に COMMAND を書き込みます。

DRIVE DATA1 PORT の設定データ
D15

D14

−

−

D7
−

D13
−

D12

D11

−

−

D3

D6

D5

D4

JUMP

JUMP

JUMP

ENABLE2

ENABLE1

ENABLE0

−

D10

D9

D8

NOP

NOP

NOP

TYPE2

TYPE1

TYPE0

D2

D1

D0

JUMP

JUMP

JUMP

TYPE2

TYPE1

TYPE0

● 電源投入後の初期値は H'000 (アンダーライン側) です。
D0 ： JUMP TYPE0
D1 ： JUMP TYPE1
D2 ： JUMP TYPE2
RAM READ JUMP コマンドを内部 RAM のコマンドとして使用する場合に有効です。
内部 RAM にメモリした RAM READ JUMP コマンドの実行タイミングを選択します。
TYPE2 TYPE1 TYPE0

実行タイミング <レベル検出>

0

0

0

即実行する

0

0

1

STATUS3 PORT の OUT2 = 0 のときに実行する

0

1

0

STATUS3 PORT の GPIO2 = 0 のときに実行する

0

1

1

STATUS3 PORT の GPIO3 = 0 のときに実行する

1

0

0

STATUS3 PORT の OUT2 = 1 のときに実行する

1

0

1

設定禁止

1

1

0

STATUS3 PORT の GPIO2 = 1 のときに実行する

1

1

1

STATUS3 PORT の GPIO3 = 1 のときに実行する

実行タイミングの検出で、 RAM から読み出した RAM READ JUMP コマンドを実行します。
・ RAM READ JUMP コマンドは、 JUMP ENABLE の有効条件が一致しているときに実行します。
不一致のときには、 RAM READ JUMP コマンドを無効にして、次のメモリデータを読み出します。
実行タイミングが検出されないときは、実行タイミングの検出を待ちます。
・実行タイミングを待っている間は、内部 RAM のコマンド読み出しを保留します。
・実行タイミングを待っている間は、 MCM STATUS2 の MRSTBY = 1 になります。

- 110 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )D4 ： JUMP ENABLE0
D5 ： JUMP ENABLE1
D6 ： JUMP ENABLE2
RAM READ JUMP コマンド実行時の有効条件を選択します。
EN2

EN1

EN0

有効条件 <レベル検出>

無効条件

0

0

0

常時有効にする

無効にしない00

1

STATUS3 PORT の OUT2 = 0 のときは有効にする

OUT2 = 1 のときは無効にする

0

1

0

STATUS3 PORT の GPIO2 = 0 のときは有効にする

GPIO2 = 1 のときは無効にする

0

1

1

STATUS3 PORT の GPIO3 = 0 のときは有効にする

GPIO3 = 1 のときは無効にする

1

0

0

STATUS3 PORT の OUT2 = 1 のときは有効にする

OUT2 = 0 のときは無効にする

1

0

1

設定禁止

−

1

1

0

STATUS3 PORT の GPIO2 = 1 のときは有効にする

GPIO2 = 0 のときは無効にする

1

1

1

STATUS3 PORT の GPIO3 = 1 のときは有効にする

GPIO3 = 0 のときは無効にする

有効条件が一致しているときは、 RAM READ JUMP コマンドを実行します。
有効条件が不一致のときは、 RAM READ JUMP コマンドを無効にします。

D8 ： NOP TYPE0
D9 ： NOP TYPE1
D10 ： NOP TYPE2
メモリデータの NO OPERATION コマンドの実行タイミングを選択します。
TYPE2 TYPE1 TYPE0

実行タイミング <レベル検出>
COMREG FL = 0 のときに実行する

0

0

0

0

0

1

設定禁止

0

1

0

COMREG FL = 0、 STATUS3 PORT の GPIO2 = 0 のときに実行する

0

1

1

COMREG FL = 0、 STATUS3 PORT の GPIO3 = 0 のときに実行する

1

0

0

COMREG FL = 0、 STATUS3 PORT の OUT2 = 1 のときに実行する

1

0

1

設定禁止

1

1

0

COMREG FL = 0、 STATUS3 PORT の GPIO2 = 1 のときに実行する

1

1

1

COMREG FL = 0、 STATUS3 PORT の GPIO3 = 1 のときに実行する

実行タイミングの検出で、 RAM から読み出した NO OPERATION コマンドを実行します。
・ BUSY = 1 のときは、コマンド予約機能の予約レジスタに格納します。
実行タイミングが検出されないときは、実行タイミングの検出を待ちます。
・実行タイミングを待っている間は、内部 RAM のコマンド読み出しを保留します。
・実行タイミングを待っている間は、 STATUS3 PORT の RAM READ STBY = 1 になります。

- 111 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )(2 ) RAM READ JUMP
移動アドレスから、内部 RAM のコマンド読み出しを開始します。
<実行シーケンス>

COMMAND H'B9

RAM READ JUMP COMMAND① DRIVE DATA1 PORT に移動アドレス A11--A0 を書き込みます。
設定範囲は、 0 〜 3,999（ H'000 〜 H'F9F ）です。

DATA1 PORTWRITECOMMAND PORT

② DRIVE COMMAND PORT に COMMAND を書き込みます。

WRITE

DRIVE DATA1 PORT の設定データ
D15

D14

D13

D12

D11

−

−

−

−

A11

D10

D9

D8

D7

D6

D5

D4

D3

D2

D1

移動アドレス

D0
A0

RAM READ JUMP コマンドは、有効条件が一致しているときに実行します。
・有効条件は、 RAM SPEC SET コマンドの JUMP ENABLE で選択します。
有効条件が一致のときに、 RAM READ JUMP コマンドを実行すると、
現在実行中の MCM 内のコマンドの読み出しを終了します。
・読み出し中の MCM 内のコマンドは、無効になります。
次に、指定された MCM の移動アドレスから、データとコマンドを読み出して、MCM 内のコマンドを順次実行します。
・内部 RAM のコマンド実行中に、自動的に移動させる場合、移動を実行する内部 RAM のメモリアドレスに、 RAM READ JUMP コマンドを書き込んでおきます。
・内部 RAM の RAM READ JUMP コマンドは、実行タイミングの検出で実行します。
実行タイミングは、 RAM SPEC SET コマンドの JUMP TYPE で選択します。
・更に、 RAM READ JUMP コマンドは、有効条件が一致しているときに実行します。
不一致のときには、 RAM READ JUMP コマンドを無効にして、次のコマンドを読み出します。

- 112 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )(3 ) RAM STOP
内部 RAM I/F を終了します。
<実行シーケンス>

COMMAND H'BF

COMMAND PORT

① DRIVE COMMAND PORT に COMMAND を書き込みます。

WRITE

RAM STOP COMMAND

MCM 内の RAM STOP コマンドの実行により、 MCM(RAM )動作を終了します。
・内部 RAM のコマンド実行中に、自動的に終了させる場合、最後に実行する内部 RAM のメモリアドレスに、 RAM STOP コマンドを書き込んでおきます。

- 113 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )3-1-10. RSPD データの読み出し(1 ) RSPD DATA READ
RSPD データを読み出します。
このコマンドの実行は DRIVE STATUS1 PORT の BUSY=1 のときも可能です。
<実行シーケンス>

COMMAND H'D6

COMMAND PORT

① DRIVE COMMAND PORT に COMMAND を書き込みます。

WRITE

DATA1 PORTREAD

RSPD DATA READ COMMAND(DATA1,2 PORT は、 H'0000 にして COMMAND を書き込み)② DRIVE DATA1 PORT から RSPD データ D15--D0 を読み出します。
推奨 :MC07_LWRDrive 関数(DATA2 PORT は、 H'0000 が読み出されます。)

読み出すデータは、「 15 ビットのパルス速度データ」です。
RSPD DATA READ コマンドを実行すると、
RSPD データを DRIVE DATA1 PORT（ READ）にセットします。
RSPD データ
・ RSPD は、 HSPD, LSPD, ELSPD と同様の 15 ビットのパルス速度データです。
・ STATUS1 PORT の DRIVE = 1 → 0 になると、最終出力のパルス速度データを RSPD に記憶します。
ただし、最終出力のパルス速度が FSPD, RFSPD と JSPD の場合は、 RSPD を書き換えません。
・ RSPD のリセット後の初期値は、 H'012C（ 300）です。

- 114 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )3-2.カウンタコマンド
3-2-1. アドレスカウンタの設定(1 ) ADDRESS COUNTER MAX COUNT SET
アドレスカウンタの最大カウント数を設定します。
このコマンドの実行は DRIVE STATUS1 PORT の BUSY=1 のときも可能です。
<実行シーケンス >COMMAND H'87

DATA1 PORTADDRESS COUNTER MAX COUNT SET COMMAND① DRIVE DATA1 PORT に最大カウント数 A15--A0 を書き込みます。

WRITE② DRIVE DATA2 PORT に最大カウント数 A31--A16 を書き込みます。
設定範囲は、 1 〜 4,294,967,295（ H'0000_0001 〜 H'FFFF_FFFF）です。

DATA2 PORTWRITECOMMAND PORT

③ DRIVE COMMAND PORT に COMMAND を書き込みます。

WRITE

推奨 :MC07_LWDrive 関数

DRIVE DATA1 PORT の設定データ
D15

D14

D13

D12

D11

D10

D9

D8

D7

D6

D5

D4

D3

D2

D1

最大カウント数

A15

D0
A0

DRIVE DATA2 PORT の設定データ
D15

D14

D13

A31

D12

D11

D10

D9

D8

D7

D6

最大カウント数

D5

D4

D3

D2

D1

D0
A16

●電源投入後の初期値は H'FFFF_FFFF です。
・カウント数が設定値の 1/2 に達すると、 STATUS4 PORT の ADDRESS OVF = 1 になります。
・最大カウント数を設定しても、現在のアドレスカウンタの値は変わりません。
アドレスカウンタの値が、最大カウント数の範囲内になったときから、設定が有効になります。
■最大カウント数
設定値をカウンタの最大値として、リングカウントします。
STATUS4 PORT の ADDRESS OVF フラグを無視すれば、回転系のアドレス管理ができます。
・最大カウント数＝ 1,999 の場合（ 2,000 カウントで１回転）＋方向のカウント： 0 → 1 →…→ 999 → 1000 (ADDRESS OVF = 1)→ 1001 →…→ 1999 → 0−方向のカウント： 0 → 1999 →…→ 1001 → 1000 ( ADDRESS OVF = 1 )→ 999 →…→ 1 → 0
・最大カウント数＝ 2,000 の場合（ 2,001 カウントで１回転）＋方向のカウント： 0 → 1 →…→ 1000 → 1001 ( 1001 になると ADDRESS OVF = 1)→…→ 2000 → 0−方向のカウント： 0 → 2000 →…→ 1001 → 1000 ( 1000 になると ADDRESS OVF = 1)→…→ 1 → 0- 115 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )3-2-2. パルスカウンタの設定(1 ) PULSE COUNTER MAX COUNT SET
パルスカウンタの最大カウント数を設定します。
このコマンドの実行は DRIVE STATUS1 PORT の BUSY=1 のときも可能です。
<実行シーケンス >COMMAND H'97

DATA1 PORTPULSE COUNTER MAX COUNT SET COMMAND① DRIVE DATA1 PORT に最大カウント数 D15--D0 を書き込みます。

WRITE② DRIVE DATA2 PORT に最大カウント数 D31--D16 を書き込みます。
設定範囲は、 1 〜 4,294,967,295（ H'0000_0001 〜 H'FFFF_FFFF）です。

DATA2 PORTWRITECOMMAND PORT

③ DRIVE COMMAND PORT に COMMAND を書き込みます。

WRITE

推奨 :MC07_LWDrive 関数

DRIVE DATA1 PORT の設定データ
D15

D14

D13

D12

D11

D10

D9

D8

D7

D6

D5

D4

D3

D2

D1

最大カウント数

D15

D0
D0

DRIVE DATA2 PORT の設定データ
D15

D14

D13

D31

D12

D11

D10

D9

D8

D7

D6

最大カウント数

D5

D4

D3

D2

D1

D0
D16

●電源投入後の初期値は H'FFFF_FFFF です。
・カウント数が設定値の 1/2 に達すると、 STATUS4 PORT の PULSE OVF = 1 になります。
・最大カウント数を設定しても、現在のパルスカウンタの値は変わりません。
パルスカウンタの値が、最大カウント数の範囲内になったときから、設定が有効になります。
■最大カウント数
設定値をカウンタの最大値として、リングカウントします。
STATUS4 PORT の PULSE OVF フラグを無視すれば、回転系のアドレス管理ができます。
・最大カウント数＝ 1,999 の場合（ 2,000 カウントで１回転）＋方向のカウント： 0 → 1 →…→ 999 → 1000 (ADDRESS OVF = 1)→ 1001 →…→ 1999 → 0−方向のカウント： 0 → 1999 →…→ 1001 → 1000 ( ADDRESS OVF = 1 )→ 999 →…→ 1 → 0
・最大カウント数＝ 2,000 の場合（ 2,001 カウントで１回転）＋方向のカウント： 0 → 1 →…→ 1000 → 1001 ( 1001 になると ADDRESS OVF = 1)→…→ 2000 → 0−方向のカウント： 0 → 2000 →…→ 1001 → 1000 ( 1000 になると ADDRESS OVF = 1)→…→ 1 → 0- 116 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )3-2-3. カウンタのラッチ・クリア機能の設定設定したラッチタイミングのアクティブエッジで、カウンタのカウントデータをラッチします。
ラッチしたデータは、次のラッチタイミングのアクティブエッジが入力するまで保存します。
ラッチデータは、 DRIVE DATA1, 2 PORT ( READ ) から読み出します。
各カウンタには、ラッチタイミングによるカウンタのクリア機能があります。
■カウンタのクリア機能
カウントデータのラッチと同時に、カウンタのデータを "0" にクリアします。
カウンタのカウントとクリアのタイミングが同時に発生した場合は、クリアを優先します。

(1 ) COUNT LATCH SPEC SET
各種カウンタのカウントデータをラッチするタイミングとクリア機能を設定します。
このコマンドの実行は DRIVE STATUS1 PORT の BUSY=1 のときも可能です。
<実行シーケンス>

DATA1 PORTWRITECOMMAND PORTWRITECOMMAND H'E8

COUNT LATCH SPEC SET COMMAND① DRIVE DATA1 PORT に設定データを書き込みます。

② DRIVE COMMAND PORT に COMMAND を書き込みます。
推奨 :MC07_LWDrive 関数(DATA2 PORT は、 H'0000 を書き込み)

DRIVE DATA1 PORT の設定データ
D15

D14

−

−

D13
−

D12
−

D11

D10

D9

D8

DFL

DFL

DFL

DFL

CLR

LATCH

LATCH

LATCH

ENABLE

TYPE2

TYPE1

TYPE0

D7

D6

D5

D4

D3

D2

D1

D0

PULSE

PULSE

PULSE

PULSE

ADDRESSADDRESSADDRESSADDRESS

CLR

LATCH

LATCH

LATCH

CLR

LATCH

LATCH

LATCH

ENABLE

TYPE2

TYPE1

TYPE0

ENABLE

TYPE2

TYPE1

TYPE0

● 電源投入後の初期値は H'000 (アンダーライン側) です。
D0 ： ADDRESS LATCH TYPE0
D1 ： ADDRESS LATCH TYPE1
D2 ： ADDRESS LATCH TYPE2
アドレスカウンタのカウントデータをラッチするタイミングを選択します。
TYPE2 TYPE1 TYPE0

ラッチタイミング <エッジ検出>
ADDRESS LATCH DATA READ コマンドの実行でラッチする

0

0

0

0

0

1

設定禁止

0

1

0

STATUS3 PORT の GPIO2=0 → 1 でラッチする

0

1

1

ORIGIN 停止機能の ORG エッジ信号の検出でラッチする

1

0

0

STATUS3 PORT の OUT2=0 → 1 でラッチする

1

0

1

設定禁止

1

1

0

設定禁止

1

1

1

設定禁止

- 117 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )D3 ： ADDRESS CLR ENABLE
カウンタのクリア機能で、アドレスカウンタを「クリアする／クリアしない」を選択します。

0 ：クリアしない
1 ：クリアする

D4 ： PULSE LATCH TYPE0
D5 ： PULSE LATCH TYPE1
D6 ： PULSE LATCH TYPE2
パルスカウンタのカウントデータをラッチするタイミングを選択します。
ラッチタイミング <エッジ検出>

TYPE2 TYPE1 TYPE0

PULSE LATCH DATA READ コマンドの実行でラッチする

0

0

0

0

0

1

設定禁止

0

1

0

STATUS3 PORT の GPIO2=0 → 1 でラッチする

0

1

1

ORIGIN 停止機能の ORG エッジ信号の検出でラッチする

1

0

0

STATUS3 PORT の OUT2=0 → 1 でラッチする

1

0

1

設定禁止

1

1

0

設定禁止

1

1

1

設定禁止

D7 ： PULSE CLR ENABLE
カウンタのクリア機能で、パルスカウンタを「クリアする／クリアしない」を選択します。
0 ：クリアしない
1 ：クリアする

D8 ： DFL LATCH TYPE0
D9 ： DFL LATCH TYPE1
D10 ： DFL LATCH TYPE2
パルス偏差カウンタのカウントデータをラッチするタイミングを選択します。
ラッチタイミング <エッジ検出>

TYPE2 TYPE1 TYPE0

DFL LATCH DATA READ コマンドの実行でラッチする

0

0

0

0

0

1

設定禁止

0

1

0

STATUS3 PORT の GPIO2=0 → 1 でラッチする

0

1

1

ORIGIN 停止機能の ORG エッジ信号の検出でラッチする

1

0

0

STATUS3 PORT の OUT2=0 → 1 でラッチする

1

0

1

設定禁止

1

1

0

設定禁止

1

1

1

設定禁止

D11 ： DFL CLR ENABLE
カウンタのクリア機能で、パルス偏差カウンタを「クリアする／クリアしない」を選択します。

0 ：クリアしない
1 ：クリアする- 118 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )3-2-4. カウントデータのラッチデータの読み出し■ ラッチデータの読み出しシーケンス<実行シーケンス>
COMMAND PORT

① DRIVE COMMAND PORT に COMMAND を書き込みます。

WRITE(DATA1,2 PORT は、 H'0000 にして COMMAND を書き込み)

DATA1 PORT

② DRIVE DATA1 PORT からカウントデータ D15--D0 を読み出します。

READ
DATA2 PORT

③ DRIVE DATA2 PORT からカウントデータ D31--D16 を読み出します。

READ

推奨 :MC07_LWRDrive 関数

DRIVE DATA1 PORT の読み出しデータ
D15

D14

D13

D12

D11

D10

D9

D8

D7

D6

D5

D4

D3

D2

D1

D0

ラッチデータD15

D0

DRIVE DATA2 PORT の読み出しデータ
D15

D14

D13

D12

D11

D10

D9

D8

D7

D6

D5

D4

D3

D2

ラッチデータ

D31

D1

D0
D16

・ ADDRESS LATCH DATA READ コマンドまたは PULSE LATCH DATA READ コマンドを実行すると、カウンタのラッチデータを DRIVE DATA1, 2 PORT（ READ）にセットします。
・ DFL LATCH DATA READ コマンドを実行すると、カウンタのラッチデータを DRIVE DATA1 PORT（ READ）にセットします。

(1 ) ADDRESS LATCH DATA READ
アドレスカウンタのラッチデータを読み出します。
このコマンドの実行は DRIVE STATUS1 PORT の BUSY=1 のときも可能です。
COMMAND H'DC

ADDRESS LATCH DATA READ COMMAND(2 ) PULSE LATCH DATA READ
パルスカウンタのラッチデータを読み出します。
このコマンドの実行は DRIVE STATUS1 PORT の BUSY=1 のときも可能です。
COMMAND H'DD

PULSE LATCH DATA READ COMMAND(3 ) DFL LATCH DATA READ
パルス偏差カウンタのラッチデータを読み出します。
このコマンドの実行は DRIVE STATUS1 PORT の BUSY=1 のときも可能です。
COMMAND H'DEDFL LATCH DATA READ COMMAND- 119 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )４．機能説明4-1.ドライブ仕様
4-1-1. コマンド予約機能
MCC09 の各軸には、 20 命令分のデータ・コマンドを格納する予約レジスタがあります。
予約レジスタには、 DRIVE COMMAND の汎用コマンドを予約することができます。
＊ DRIVE COMMAND の特殊コマンドは予約できません。
予約レジスタの状態は、 DRIVE STATUS1 PORT の COMREG EP と COMREG FL フラグで確認します。
BUSY = 1、 COMREG FL = 0 のときに、 DRIVE COMMAND PORT に汎用コマンドを書き込むと、DRIVE DATA1, 2 PORT のデータと汎用コマンドの１命令分を、予約レジスタに格納します。
予約レジスタは FIFO 構成になっています。
実行中のコマンド処理が終了すると、予約レジスタに格納したコマンドを順次実行します。
● コマンド予約機能が自動的に無効となる状態
以下の状態を検出すると、予約レジスタに格納している汎用コマンドをすべてクリアします。
同時に COMREG FL = 1、 COMREG EP = 1 にして、汎用コマンドの書き込みを無効にします。
・ STATUS1 PORT の ERROR = 1 の検出
ERROR = 0 にクリアすると、COMREG FL = 0、 COMREG EP = 1 にして、汎用コマンドの書き込みを有効にします。

■ コマンド予約機能の実行例
汎用コマンドを予約する場合は、 BUSY = 0 の代わりに COMREG FL = 0 を確認します。
予約シーケンス実行中に BUSY = 0 になった場合は、通常のコマンド実行になります。
●コマンド予約シーケンス

STATUS1 PORTERROR = 0 ?

N① DRIVE STATUS1 PORT の ERROR フラグが "0" であることを確認します。

Y
N

STATUS1 PORTCOMREG FL = 0 ?

② DRIVE STATUS1 PORT の COMREG FL フラグが "0" であることを確認します。

Y
DATA1,2 PORTWRITECOMMAND PORT
WRITE

③ COMMAND に必要なデータを DRIVE DATA1,2 PORT に書き込みます。

④ DRIVE COMMAND PORT に COMMAND を書き込みます。

- 120 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )● INDEX ドライブ → JOG ドライブの連続実行シーケンス

PAUSE = 1
実行
INDEX ドライブ実行
FSPD 変更
予約
JOG ドライブ
予約
PAUSE = 0実行

① STATUS1 PORT の PAUSE = 1 にします。
② ＋方向 INDEX ドライブを実行します。
STBY = 1 のままドライブの開始を保留します。
③ FSPD による DELAY TIME の設定を予約します。

④ ＋方向 JOG ドライブの実行を予約します。
⑤ STATUS1 PORT の PAUSE = 0 にします。
STBY = 0 になり、 INDEX ドライブ → JOG ドライブを開始します。

速度
自動減速
最高速度
加速カーブ

減速カーブ

終了速度

開始速度
FSPD

＋方向 INDEX ドライブ

JSPD
FSPD +JOG ドライブ

1 周期

1 周期
時間
FSPD による DELAY TIME

PAUSE = 0 実行
予約コマンドの FSPD 変更
予約コマンドの JOG ドライブ実行- 121 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )4-1-2. 入出力仕様(1) 入出力信号の論理切り替え機能
下記の入出力信号のアクティブ論理を初期値から切り替えることができます。
入力信号

初期値

FSSTOP 信号

正論理入力

CWLM 信号

正論理入力

CCWLM 信号

正論理入力

DALM 信号

正論理入力

ORG 信号負論理入力

NORG 信号対応コマンド

HARD INITIALIZE7 コマンド

負論理入力

PAUSE

1 でアクティブ

CWP 信号

負論理出力

CCWP 信号

負論理出力

HARD INITIALIZE8 コマンド・ PAUSE 信号は外部とインターフェースする信号ではありません。
コマンド予約機能で操作する MCC09 の入力信号です。
・アクティブ論理を変更すると、変更した信号の内部デジタルフィルタ機能が動作します。
デジタルフィルタ機能の時定数経過後に、アクティブ論理の変更が確定します。

- 122 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )4-1-3. ドライブパラメータ(1) 加減速パラメータ
加減速ドライブは、加速カーブと減速カーブで加減速を行うドライブです。
・加速カーブは、Ｓ字加速の変速領域と直線加速の変速領域で構成します。
・減速カーブは、Ｓ字減速の変速領域と直線減速の変速領域で構成します。
・加速カーブと減速カーブを異なる設定にすると、非対称の加減速ドライブになります。
加減速ドライブには、以下のドライブパラメータの設定が必要です。
● 速度のパラメータ・ FSPD ：第１パルスの速度（ Hz）
・ RFSPD： INDEX CHANGE による反転ドライブの第１パルスの速度（ Hz ）・ RESOL・ HSPD・ LSPD・ ELSPD：速度データの速度倍率：最高速時のパルス速度データ：加速開始時のパルス速度データ：減速終了時のパルス速度データ

・ JSPD： JOG ドライブと JSPD SCAN ドライブの速度（ Hz）

・ RSPD： RSPD は、 HSPD, LSPD, ELSPD と同様の 15 ビットのパルス速度データです。
DRIVE = 1 → 0 になると、最終出力のパルス速度データを RSPD に記憶します。
ただし、最終出力のパルス速度が FSPD, RFSPD と JSPD の場合は、 RSPD を書き換えません。
RSPD のリセット後の初期値は、 H'012C（ 300）です。

● 加減速カーブのパラメータ・ UCYCLE ：加速カーブの変速周期データ
・ DCYCLE ：減速カーブの変速周期データ
・ SUAREA
・ SDAREA
・ SUH
・ SDH

：加速カーブのＳ字変速領域データ：減速カーブのＳ字変速領域データ：加速カーブのＳ字加速終了部の変速領域データ（ SCAREA MODE = 1 のときに有効）：減速カーブのＳ字減速開始部の変速領域データ（ SCAREA MODE = 1 のときに有効）● 減速パルス数の調整／設定パラメータ・ DOWN PULSE ADJUST ：自動減速パルス数のオフセットパルス数／マニュアル減速パルス数■

加減速ドライブの速度とＳ字領域

加減速ドライブのパルス速度は、速度データと速度倍率で設定します。
・最高速時の速度 （ Hz）＝ HSPD
x RESOL・加速開始時の速度（ Hz）＝ LSPD x RESOL
・減速終了時の速度（ Hz）＝ ELSPD
x RESOL・ SPEED RATE CHANGE の指定速度（ Hz）＝ SPEED CHANGE データ x RESOLＳ字領域は、Ｓ字変速領域データと速度倍率で設定します。
・Ｓ字加速開始部の変速領域（ Hz）＝ SUAREA x RESOL
・Ｓ字加速終了部の変速領域（ Hz）＝ SUAREA（または SUH） x RESOL・Ｓ字減速開始部の変速領域（ Hz）＝ SDAREA（または SDH） x RESOL・Ｓ字減速終了部の変速領域（ Hz）＝ SDAREA x RESOL- 123 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )(2) 加減速時定数
加速および減速は、速度変化量を変速周期毎に加算および減算することで行っています。
加減速時定数は、速度を 1 kHz 変化させるのに要する時間（ ms/kHz）で表しています。
本資料では、この時定数を RATE と呼称しています。
<１ステップの速度変化><加減速時定数>

速度

速度

速度変化量

1 kHz 変化

変速周期

要する時間

時間

時間

● 加減速時定数の設定方法①最高速度と速度倍率を設定します。設定した速度倍率データで、速度変化量が決定します。
速度倍率を小さくすると、加減速が滑らかになります。
②開始速度と終了速度を設定します。
③加速の変速周期と減速の変速周期を設定します。設定した変速周期で、加減速時間が決定します。
速度変化量と変速周期で、目的に合った加減速時定数（加減速時間）を設定します。

■ 加減速 RATE の計算式
速度倍率データ（ RESOL）と変速周期データ（ UCYCLE）で、任意の加速 RATE を設定します。
速度倍率データ（ RESOL）と変速周期データ（ DCYCLE）で、任意の減速 RATE を設定します。
● 加速カーブの直線加速 RATE の計算式
・直線加速 RATE ( ms/kHz) ＝
加速カーブの変速周期

加速カーブの変速周期 (ms)＝
直線加速カーブの速度変化量 (kHz)(ms)

UCYCLERESOL * 2

＝ UCYCLE * 0.5 * 10^-3

直線加速カーブの速度変化量 (kHz) ＝ RESOL * 10^-3● 減速カーブの直線減速 RATE の計算式
・直線減速 RATE ( ms/kHz) ＝
減速カーブの変速周期

減速カーブの変速周期 (ms)＝
直線減速カーブの速度変化量 (kHz)(ms)＝ DCYCLE * 0.5 * 10^-3

直線減速カーブの速度変化量 (kHz) ＝ RESOL * 10^-3- 124 -DCYCLERESOL * 2MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )■ RATE DATA TABLE（参考）RATE

RESOL = 1

RESOL = 5

RESOL = 10

RESOL = 20

RESOL = 50

RESOL = 200

RESOL = 400(ms/kHz)U/D CYCLE

U /D CYCLE

U/D CYCLE

U/D CYCLE

U/D CYCLE

U/D CYCLE

U/D CYCLE

5,000

10,000

3,000

6,000

2,000

4,000

1,000

2,000

10,000

500

1,000

5,000

10,000

300

600

3,000

6,000

12,000

200

400

2,000

4,000

8,000

100

200

1,000

2,000

4,000

50

100

500

1,000

2,000

5,000

30

60

300

600

1,200

3,000

12,000

20

40

200

400

800

2,000

8,000

16,000

10

20

100

200

400

1,000

4,000

8,000

5

10

50

100

200

500

2,000

4,000

3

6

30

60

120

300

1,200

2,400

2

4

20

40

80

200

800

1,600

1

2

10

20

40

100

400

800

0.5

1

5

10

20

50

200

400

0.3

3

6

12

30

120

240

0.2

2

4

8

20

80

160

0.1

1

2

4

10

40

80

1

2

5

20

40

0.03

3

12

24

0.02

2

8

16

0.01

1

4

8

0.005

2

4

0.00251

2

0.05

0.00125

10,0001- 125 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )(3) 直線加減速ドライブ
直線加減速ドライブは、Ｓ字加減速の変速領域を "0" に設定して、加減速を行うドライブです。
・開始速度から最高速度まで、Ｓ字変速領域がない直線加速カーブで加速します。
・最高速度から終了速度まで、Ｓ字変速領域がない直線減速カーブで減速します。
● 直線加速カーブ
SCAREA SET コマンドの SUAREA を "0" に設定します。
SHAREA SET コマンドの SUH
を "0" に設定します。
・ SPEC INITIALIZE3 コマンドの SCAREA MODE = 0 の場合は、 SUH の設定は不要です。
開始速度から最高速度まで、 UCYCLE の直線加速カーブで加速します。
● 直線減速カーブ
SCAREA SET コマンドの SDAREA を "0" に設定します。
SHAREA SET コマンドの SDH
を "0" に設定します。
・ SPEC INITIALIZE3 コマンドの SCAREA MODE = 0 の場合は、 SDH の設定は不要です。
最高速度から終了速度まで、 DCYCLE の直線減速カーブで減速します。

■ 直線加減速ドライブの動作
速度

自動減速／マニュアル減速

最高速度(HSPD )

直線加速カーブ

直線減速カーブ

開始速度

終了速度

(LSPD)FSPD(ELSPD )第１パルス

オフセットパルス数
時間
指定位置で停止INDEX 指令

オフセットパルス数の設定は、SPEC INITIALIZE3 コマンドの SCAREA MODE = 0 に設定している場合に有効です。

● 直線加減速ドライブの加速時間と減速時間
直線加速カーブの加速時間 (ms) ： 0 ≦ TU ＜ 最高速度の１周期= (UCYCLE * 0.5 * 10^-3) * (HSPD - LSPD + 1) + TU + 第１パルスの周期(ms)
直線減速カーブの減速時間 (ms) ： 0 ≦ TD ＜ 終了速度の１周期= (DCYCLE * 0.5 * 10^-3) * ( HSPD - ELSPD + 1 ) + TD
・オフセットパルス数 = 0 で減速停止する場合の減速時間です。
・ INDEX ドライブの自動減速停止時には、オフセットパルス数（初期値： +1）の増減があります。

- 126 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )(4) S 字加減速ドライブ
Ｓ字加減速ドライブは、Ｓ字加減速の変速領域を設定して、加減速を行うドライブです。
・加速開始部のＳ字変速領域と加速終了部のＳ字変速領域を、Ｓ字加速カーブで加速します。
・減速開始部のＳ字変速領域と減速終了部のＳ字変速領域を、Ｓ字減速カーブで減速します。
● Ｓ字加速カーブ
SCAREA SET コマンドの SUAREA でＳ字加速開始部の変速領域を設定します。
SHAREA SET コマンドの SUH
でＳ字加速終了部の変速領域を設定します。
・ SPEC INITIALIZE3 コマンドの SCAREA MODE = 0 の場合は、 SUH の設定は不要です。
SUH = SUAREA にして、Ｓ字加速カーブを形成します。
SUAREA と SUH で設定した変速領域が、Ｓ字加速カーブを形成します。
残りの速度領域は、 UCYCLE の直線加速カーブで加速します。
● Ｓ字減速カーブ
SCAREA SET コマンドの SDAREA でＳ字減速終了部の変速領域を設定します。
SHAREA SET コマンドの SDH
でＳ字減速開始部の変速領域を設定します。
・ SPEC INITIALIZE3 コマンドの SCAREA MODE = 0 の場合は、 SDH の設定は不要です。
SDH = SDAREA にして、Ｓ字減速カーブを形成します。
SDAREA と SDH で設定した変速領域が、Ｓ字減速カーブを形成します。
残りの速度領域は、 DCYCLE の直線減速カーブで減速します。

■ Ｓ字加減速ドライブの動作
速度

自動減速／マニュアル減速

最高速度
Ｓ字加速終了部(HSPD )

Ｓ字減速開始部

の変速領域

の変速領域

(SUAREA or SUH)

( SDAREA or SDH)

直線加速カーブ
Ｓ字加速開始部
開始速度

直線減速カーブ
Ｓ字減速終了部

の変速領域

の変速領域

( SUAREA)(SDAREA)(LSPD)FSPD

終了速度(ELSPD )第１パルス

オフセットパルス数
時間
指定位置で停止INDEX 指令

オフセットパルス数の設定は、SPEC INITIALIZE3 コマンドの SCAREA MODE = 0 に設定している場合に有効です。

- 127 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )● Ｓ字加減速ドライブの加速時間と減速時間
Ｓ字加速カーブの加速時間 (ms) ： SUL = SUAREA， 0 ≦ TU ＜ 最高速度の１周期= T1 + T2 + T3 + TU + 第１パルスの周期(ms)= (UCYCLE * 0.5 * 10^-3 ) * (HSPD - LSPD + 1 + SUH + SUL) + TU + 第１パルスの周期(ms)・Ｓ字加速開始部の変速領域 (ms) ： T1 = ( UCYCLE * 0.5 * 10^-3) * SUL * 2
・直線加速カーブの変速領域 (ms) ： T2 = ( UCYCLE * 0.5 * 10^-3) * (HSPD - LSPD + 1 - SUH - SUL )・Ｓ字加速終了部の変速領域 (ms) ： T3 = ( UCYCLE * 0.5 * 10^-3) * SUH * 2・(HSPD - LSPD) ≧ (SUH + SUL) で加速する場合の加速時間です。
Ｓ字減速カーブの減速時間 (ms) ： SDL = SDAREA， 0 ≦ TD ＜ 終了速度の１周期= T4 + T5 + T6 + TD
= (DCYCLE * 0.5 * 10^-3 ) * (HSPD - ELSPD + 1 + SDH + SDL) + TD
・Ｓ字減速開始部の変速領域 (ms) ： T4 = ( DCYCLE * 0.5 * 10^-3) * SDH * 2
・直線減速カーブの変速領域 (ms) ： T5 = ( DCYCLE * 0.5 * 10^-3) * (HSPD - ELSPD + 1 - SDH - SDL)・Ｓ字減速終了部の変速領域 (ms) ： T6 = ( DCYCLE * 0.5 * 10^-3) * SDL * 2・(HSPD - ELSPD) ≧ (SDH + SDL)、オフセットパルス数 = 0 で減速停止する場合の減速時間です。
・ INDEX ドライブの自動減速停止時には、オフセットパルス数（初期値： +1）の増減があります。

● Ｓ字加減速ドライブの加速パルス数と減速パルス数
Ｓ字加速カーブの加速パルス数 ： SUL = SUAREA= P1 + P2 + P3 + 第１パルス (+1)
= (UCYCLE * 0.5 * 10^-6 ) * RESOL * ( 1/2 * ( HSPD - LSPD + 1) * ( HSPD + LSPD)+ SUH * HSPD + SUL * LSPD - 1/6 * ( SUH - SUL) * (SUH + SUL + 3) ) + 1
・Ｓ字加速開始部のパルス数 ： P1 = (LSPD + 1/3 * SUL) * RESOL * T1 * 10^-3・直線加速カーブのパルス数 ： P2 = (HSPD - SUH + LSPD + SUL) * RESOL * 1/2 * T2 * 10^-3
・Ｓ字加速終了部のパルス数 ： P3 = (HSPD - 1/3 * SUH ) * RESOL * T3 * 10^-3・(HSPD - LSPD) ≧ (SUH + SUL) で加速する場合の加速パルス数（小数点以下は切り上げ）です。
Ｓ字減速カーブの減速パルス数 ： SDL = SDAREA= P4 + P5 + P6 + ADJUST PULSE ( +2)= (DCYCLE * 0.5 * 10^-6 ) * RESOL * ( 1/2 * ( HSPD - ELSPD + 1) * ( HSPD + ELSPD )+ SDH * HSPD + SDL * ELSPD - 1/6 * ( SDH - SDL ) * (SDH + SDL + 3) ) + 2= ( 3 * (HSPD - ELSPD + 1 ) * (HSPD + ELSPD) + 6 * ( SDH * HSPD + SDL * ELSPD )- (SDH - SDL ) * ( SDH + SDL + 3) ) * RESOL * DCYCLE * 1/12 * 10^-6 + 2
・Ｓ字減速開始部のパルス数 ： P4 = (HSPD - 1/3 * SDH ) * RESOL * T4 * 10^-3・直線減速カーブのパルス数 ： P5 = (HSPD - SDH + ELSPD + SDL) * RESOL * 1/2 * T5 * 10^-3・Ｓ字減速終了部のパルス数 ： P6 = (ELSPD + 1/3 * SDL) * RESOL * T6 * 10^-3・(HSPD - ELSPD) ≧ (SDH + SDL) で減速停止する場合の減速パルス数（小数点以下は切り上げ）です。
<参考> Ｓ字減速カーブの減速パルス数 ： SD = SDL = SDH の場合= P4 + P5 + P6 + 2= (DCYCLE * 0.5 * 10^-6 ) * RESOL * ( 1/2 * ( HSPD - ELSPD + 1) * ( HSPD + ELSPD )+ SD * HSPD + SD * ELSPD - 1/6 * ( SD - SD) * (SD + SD + 3) ) + 2= (DCYCLE * 0.5 * 10^-6) * RESOL * 1/2 * ( HSPD - ELSPD + 1 + 2 * SD) * ( HSPD + ELSPD ) + 2= (HSPD - ELSPD + 1 + 2 * SD) * ( HSPD + ELSPD) * RESOL * DCYCLE * 1/4 * 10^-6 + 2- 128 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )■ S 字加減速 INDEX ドライブの三角駆動回避動作● SPEC INITIALIZE3 コマンドの SCAREA MODE = 0 の場合
Ｓ字加減速の INDEX ドライブで、
停止位置までのパルス数が少なくて、最高速度（目標速度）に達しない場合は、自動的に最高速度を引き下げて、滑らかなＳ字加速カーブで加速を行い、Ｓ字加速終了後からＳ字減速カーブ（または補正したＳ字減速カーブ）で減速を開始し、指定位置で INDEX ドライブを停止します。
速度
最高速度(目標速度)(HSPD )

最高速度を補正して滑らかなＳ字加減速カーブにします
自動減速開始SDAREA ＞ (補正 HSPD - ELSPD) * 1/2 の場合は、SDAREA ＝ (補正 HSPD - ELSPD) * 1/2 に補正します

開始速度

終了速度

(LSPD)(ELSPD)

時間
INDEX ドライブ指令

指定位置で停止● SPEC INITIALIZE3 コマンドの SCAREA MODE = 1 の場合
このモードの INDEX ドライブでは、マニュアル設定した減速パルス数で減速を開始します。
停止位置までのパルス数が少なくて、最高速度に達しないまま減速を開始した場合は、加速途中から補正しない減速カーブで終了速度まで減速し、指定位置で INDEX ドライブを停止します。
速度
最高速度(HSPD )

マニュアル減速開始

加速途中から減速カーブで減速します

開始速度
終了速度

(LSPD)( ELSPD)

時間
指定位置で停止INDEX ドライブ指令- 129 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )■ 減速停止指令検出時の三角駆動回避動作● SPEC INITIALIZE3 コマンドの SCAREA MODE = 0 の場合
Ｓ字加速中に減速停止指令を検出した場合は、SUAREA のＳ字加速終了カーブで滑らかに加速を終了し、Ｓ字減速カーブ（または補正したＳ字減速カーブ）で減速停止します。
速度
最高速度(HSPD )

滑らかに加速を終了してＳ字減速カーブで停止します
SDAREA ＞ (補正 HSPD - ELSPD) * 1/2 の場合は、SDAREA ＝ (補正 HSPD - ELSPD) * 1/2 に補正します
開始速度

終了速度

(LSPD)(ELSPD)時間
加減速ドライブ指令
減速停止指令Ｓ字加減速の INDEX ドライブでは、減速停止指令を検出すると、自動減速機能をマスクして、Ｓ字減速カーブ（または補正したＳ字減速カーブ）で減速停止します。
減速中に INDEX ドライブの指定位置を検出した場合は、指定位置で即時停止します。

● SPEC INITIALIZE3 コマンドの SCAREA MODE = 1 の場合
加速中に減速停止指令を検出した場合は、最高速度まで加速してから減速停止します。
速度
最高速度

最高速度まで加速してから減速停止します(HSPD )

減速停止検出開始速度(LSPD)

終了速度(ELSPD)時間
加減速ドライブ指令
減速停止指令減速停止指令検出後の加速動作中に、
INDEX ドライブのマニュアル設定した減速パルス数で減速を開始した場合は、加速途中から補正しない減速カーブで減速を開始し、終了速度または指定位置で INDEX ドライブを停止します。

- 130 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )(5) 加速ドライブ「開始速度＜最高速度」および「最高速度＝終了速度」に設定すると、開始速度と最高速度による加速ドライブを行います。
速度

最高速度

終了速度

(HSPD )( ELSPD)

加速カーブ
開始速度
(LSPD)

時間
SCAN/INDEX 指令
停止指令／指定位置(6) 減速ドライブ「開始速度＝最高速度」および「最高速度＞終了速度」に設定すると、最高速度と終了速度による減速ドライブを行います。
速度

最高速度 (HSPD)
開始速度 (LSPD)
減速カーブ
終了速度
( ELSPD)

時間
SCAN/INDEX 指令
減速停止指令／自動減速／マニュアル減速(7) 一定速ドライブ「開始速度＝最高速度＝終了速度」に設定すると、開始速度での一定速ドライブを行います。
速度

最高速度

(HSPD )

開始速度

(LSPD)

終了速度( ELSPD)

時間
SCAN/ INDEX 指令
停止指令／指定位置- 131 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )(8) その他のドライブ （ SCAREA MODE = 0 の場合に可能）●「開始速度＜最高速度＜終了速度」に設定すると、以下の加速ドライブを行います。
速度

終了速度
加速カーブ

(ELSPD)

最高速度(HSPD )

加速カーブ
開始速度
(LSPD)

時間
SCAN/ INDEX 指令
減速停止指令／自動減速●「開始速度＞最高速度＞終了速度」に設定すると、以下の減速ドライブを行います。
速度
開始速度(HSPD )

減速カーブ
最高速度
(LSPD)

減速カーブ
終了速度(ELSPD)

時間
SCAN/INDEX 指令
減速停止指令／自動減速●「開始速度＞最高速度」および「最高速度＜終了速度」に設定すると、以下の加減速ドライブを行います。
速度
開始速度

終了速度

(HSPD )

減速カーブ

加速カーブ

(ELSPD)

最高速度(LSPD)

時間
SCAN/INDEX 指令
減速停止指令／自動減速- 132 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )4-1-4. ORIGIN ドライブ

（ MCC09 チップの機械原点検出機能）関数による ORIGIN ドライブ機能は、取扱説明書をご覧ください。
ORG エッジ信号を検出して、ドライブパルス出力を減速停止、即時停止、１パルス停止します。
また、検出のみ行うことで、 MCC09 の各種機能を実行するトリガ信号として使用できます。
検出する ORG 検出信号は、 ORG 信号 , ± ZORG 信号 , DEND/PO 信号 , NORG 信号の合成信号から選択します。
ORG エッジ信号の検出条件と停止機能は、 ORIGIN SPEC SET コマンドで設定します。
・ ORG エッジ信号による停止機能は、 STATUS1 PORT の DRIVE = 1 のときに有効です。
・ ORG エッジ信号の停止機能が動作すると、 STATUS2 PORT の ORGEND = 1 にします。
STATUS1 PORT の SSEND, FSEND フラグは変化しません。
ORIGIN SPEC SET コマンド
ORIGIN 停止機能

ORG

ORG

ORG

SIGNAL

DETECT

STOP

TYPE

EDGE

TYPE

ORG

ORG エッジ信号

DIVISIONSTATUS2 出力 (ORG 検出信号)■ ORIGIN 停止機能による原点検出工程
任意のドライブを実行し、 ORG エッジ信号の停止機能で原点検出を行います。
<原点検出工程の実行例>
ORG 検出信号の３カウント目のアクティブエッジ検出で、減速停止動作させます。
・ ORG DETECT EDGE = 0 ： ORG 検出信号の 0 → 1（アクティブ）エッジを検出する
・ ORG STOP TYPE = "01" ： ORG エッジ信号の停止機能を、減速停止にする
・ ORG DIVISION = H'02 ：３カウント毎のエッジ信号（ ORG エッジ信号）を出力する● ORIGIN SCAN ドライブ
加減速ドライブのパラメータで、 SCAN （または INDEX）ドライブを実行します。
ORIGIN 停止機能の ORG エッジ信号を検出すると、減速停止します。
速度
最高速度

減速停止

( HSPD)

加速カーブ

減速カーブ

開始速度
(LSPD)

終了速度
SCAN ドライブ(ELSPD)

時間
SCAN ドライブ指令
ORG エッジ信号12

3

ORG 検出信号● ORIGIN CONSTANT SCAN ドライブ
JSPD SCAN（または JOG）ドライブを実行します。
または、一定速ドライブのパラメータで、 SCAN （または INDEX）ドライブを実行します。
ORIGIN 停止機能の ORG エッジ信号を検出すると、減速なしで停止します。

- 133 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )4-1-5. 補間ドライブ
補間ドライブには、１軸単位で直線補間ドライブを実行するコマンドと、１軸単位で円弧補間ドライブを実行するコマンドがあります。
マルチチップの多軸直線補間ドライブと任意２軸の円弧補間ドライブができます。

(1) 任意軸補間ドライブ
MCC09 の CPPIN 端子と CPPOUT 端子をデイジーチェーン接続しており、
マルチチップ補間ドライブができます。
各軸 MCC09 の CPPOUT 端子と CPPIN 端子はディジーチェーン接続で繋がっています。
任意軸補間ドライブではメイン軸のチップが CPPOUT 端子に補間ドライブの基本パルスを出力します。
サブ軸のチップは基本パルスを CPPIN 端子から入力して CPPOUT 端子に出力します。
基本パルスのディジーチェーン接続

MCC09
CPPIN

MCC09

CPPOUTX軸
Y軸

CPPIN
X 軸パルス出力
Y 軸パルス出力

任意多軸直線補間ドライブ
任意 2 軸円弧補間ドライブ

CPPOUTZ軸
A軸

Z 軸パルス出力
A 軸パルス出力… MAIN STRAIGHT CP コマンド
SUB STRAIGHT CP コマンド
… MAIN CIRCULAR CP コマンド
SUB CIRCULAR CP コマンド

(メイン軸)(サブ軸)(メイン軸)(サブ軸)

補間ドライブの基本となる加減速パルスは、メイン軸に設定した加減速パラメータで発生します。
・メイン軸のチップは、基本パルスを CPPOUT 端子から出力する設定にします。
・サブ軸のチップは、基本パルスを CPPIN 端子から入力して CPPOUT 端子に出力する設定にします。
マルチチップ直線補間ドライブは、１つのメイン軸とその他のサブ軸で構成します。
・メイン軸には、メイン軸直線補間ドライブを実行します。
・サブ軸には、サブ軸直線補間ドライブを実行します。
任意２軸円弧補間ドライブは、１つのメイン軸と１つのサブ軸で構成します。
・メイン軸には、メイン軸円弧補間ドライブを実行します。
・サブ軸には、サブ軸円弧補間ドライブを実行します。

● CPPOUT 出力
CP SPEC SET コマンドの CPPOUT SEL で選択したパルスを出力します。
● CPPIN 入力
補間ドライブの基本パルスを入力します。
CPPIN 端子に入力できるパルス速度の最高値は、 5 MHz です。

- 134 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )■ 直線補間ドライブの実行と停止機能
直線補間ドライブでは、各補間軸が独立して直線補間パルス（長軸・短軸パルス）を出力します。
・停止指令またはエラーの発生した補間軸は、パルス停止後にドライブを終了しますが、他の補間軸はドライブを終了しません。
補間軸が停止指令またはエラーにより補間ドライブを終了した場合は、他の補間軸に停止指令を実行して、ドライブを終了させてください。
● メイン軸直線補間ドライブを実行した場合
マルチチップの直線補間ドライブが実行できます。
・メイン軸直線補間ドライブのコマンドは、各サブ軸にサブ軸直線補間ドライブを実行した後（または同時）に、メイン軸に実行します。
メイン軸はコマンドの実行でドライブを開始します。
・メイン軸直線補間ドライブを実行すると、コマンド実行軸の加減速パラメータで、直線補間ドライブの基本パルスと直線補間パルスを発生します。
メイン軸直線補間ドライブでは、線速一定制御した基本パルスを発生することができます。
メイン軸直線補間ドライブ実行中に停止指令が発生した場合・減速停止指令を検出した場合は、出力中の基本パルスを減速停止して、ドライブを終了します。
・即時停止指令を検出した場合は、出力中の基本パルスが OFF レベルのときに、基本パルス出力を停止して、ドライブを終了します。
● サブ軸直線補間ドライブを実行した場合
CPPIN 入力によるマルチチップの直線補間ドライブが実行できます。
・サブ軸直線補間ドライブを実行すると、CPPIN に入力するパルスを直線補間ドライブの基本パルスにして、直線補間パルスを発生します。
サブ軸直線補間ドライブは、コマンドの実行で STBY = 1 になります。
CPPIN のハイレベルを検出すると、 STBY = 0、 DRIVE = 1 にして、ドライブを開始します。
サブ軸直線補間ドライブ実行中に停止指令が発生した場合・減速停止指令を検出した場合は、出力中の補間パルスが OFF レベルのときに、ドライブを終了します。
・即時停止指令を検出した場合は、出力中の補間パルスが OFF レベルのときに、ドライブを終了します。
・出力中の補間パルスが OFF レベルの場合は、そのまますぐにドライブを終了します。
・出力中の補間パルスがアクティブレベルの場合は、補間パルス出力が OFF レベルになると、ドライブを終了します。
● CPP STOP 機能と CPPIN マスク機能によるパルス出力の停止
この機能は、補間ドライブ実行コマンドのドライブ仕様で設定します。
CPPIN 端子と CPPOUT 端子をディジーチェーン接続したマルチチップ補間ドライブで、メイン軸の CPP STOP 機能とサブ軸の CPPIN マスク機能を有効にしてドライブを実行すると、サブ軸にエラーが発生した場合に、すべての補間軸のパルス出力を停止させることができます。
・エラーが発生したサブ軸は、 CPPIN マスク機能で CPPOUT 出力を停止します。
・エラーを検出すると、出力中の補間パルスが OFF レベルのときにドライブを終了します。
出力中の補間パルスのアクティブレベルが続く場合は、エラー検出から 100 µs 後に、補間パルス出力を OFF レベルにしてドライブを終了します。
・メイン軸は、 CPP STOP 機能でドライブを終了し、 CPPOUT 出力を終了します。
・他のサブ軸は、メイン軸の CPPOUT 出力終了でパルス出力を停止します。

- 135 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )■ 円弧補間ドライブの実行と停止機能
円弧補間ドライブでは、各補間軸が独立して円弧補間パルス（ X, Y 座標パルス）を出力します。
・停止指令またはエラーの発生した補間軸は、パルス停止後にドライブを終了しますが、他の補間軸はドライブを終了しません。
補間軸が停止指令またはエラーにより補間ドライブを終了した場合は、他の補間軸に停止指令を実行して、ドライブを終了させてください。
● メイン軸円弧補間ドライブを実行した場合
マルチチップの円弧補間ドライブが実行できます。
・メイン軸円弧補間ドライブのコマンドは、サブ軸にサブ軸円弧補間ドライブを実行した後（または同時）に、メイン軸に実行します。
メイン軸はコマンドの実行でドライブを開始します。
・メイン軸円弧補間ドライブを実行すると、コマンド実行軸の加減速パラメータで、
円弧補間ドライブの基本パルスと円弧補間パルスを発生します。
メイン軸円弧補間ドライブでは、線速一定制御した基本パルスを発生することができます。
メイン軸円弧補間ドライブ実行中に停止指令が発生した場合・減速停止指令を検出した場合は、出力中の基本パルスを減速停止して、ドライブを終了します。
・即時停止指令を検出した場合は、出力中の基本パルスが OFF レベルのときに、基本パルス出力を停止して、ドライブを終了します。

● サブ軸円弧補間ドライブを実行した場合
CPPIN 入力によるマルチチップの円弧補間ドライブが実行できます。
・サブ軸円弧補間ドライブを実行すると、CPPIN に入力するパルスを円弧補間ドライブの基本パルスにして、円弧補間パルスを発生します。
サブ軸円弧補間ドライブは、コマンドの実行で STBY = 1 になります。
CPPIN のハイレベルを検出すると、 STBY = 0、 DRIVE = 1 にして、ドライブを開始します。
サブ軸円弧補間ドライブ実行中に停止指令が発生した場合・減速停止指令を検出した場合は、出力中の補間パルスが OFF レベルのときに、ドライブを終了します。
・即時停止指令を検出した場合は、出力中の補間パルスが OFF レベルのときに、ドライブを終了します。
・出力中の補間パルスが OFF レベルの場合は、そのまますぐにドライブを終了します。
・出力中の補間パルスがアクティブレベルの場合は、補間パルス出力が OFF レベルになると、ドライブを終了します。
● CPP STOP 機能と CPPIN マスク機能によるパルス出力の停止
この機能は、補間ドライブ実行コマンドのドライブ仕様で設定します。
CPPIN 端子と CPPOUT 端子をディジーチェーン接続したマルチチップ補間ドライブで、メイン軸の CPP STOP 機能とサブ軸の CPPIN マスク機能を有効にしてドライブを実行すると、サブ軸にエラーが発生した場合に、メイン軸のパルス出力を停止させることができます。
・エラーが発生したサブ軸は、 CPPIN マスク機能で CPPOUT 出力を停止します。
・エラーを検出すると、出力中の補間パルスが OFF レベルのときにドライブを終了します。
出力中の補間パルスのアクティブレベルが続く場合は、エラー検出から 100 µs 後に、補間パルス出力を OFF レベルにしてドライブを終了します。
・メイン軸は、 CPP STOP 機能でドライブを終了し、 CPPOUT 出力を終了します。

- 136 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )(2) 直線補間ドライブ
マルチチップの多軸直線補間ドライブができます。
各補間軸は任意の長軸と短軸で座標を構成し、指定軸のパルスを出力して直線補間します。
補間ドライブの最高速度は、 5 MHz です。指定直線に対する位置誤差は、± 0.5 LSB です。
座標指定できる相対アドレス範囲は、 -2,147,483,647 〜 +2,147,483,647 （ 32 ビット）です。

● マルチチップ用の１軸単位の補間ドライブ
H'30

MAIN STRAIGHT CP

メイン軸直線補間ドライブの実行

H'31

SUB STRAIGHT CP

サブ軸直線補間ドライブの実行

メイン軸直線補間ドライブには、以下のドライブパラメータの設定が必要です。
・実行軸の加減速ドライブのパラメータ・ CP SPEC： CPPOUT 出力、 CPPIN 入力
・ LONG POSITION：補間軸の長軸の座標アドレス
・ SHORT POSITION ：補間軸の短軸の座標アドレス
サブ軸直線補間ドライブには、以下のドライブパラメータの設定が必要です。
・ CP SPEC： CPPOUT 出力、 CPPIN 入力
・ LONG POSITION：補間軸の長軸の座標アドレス
・ SHORT POSITION ：補間軸の短軸の座標アドレス■ 直線補間ドライブの軌跡（長軸 20：短軸 9 の例）
短軸

9

5

0

5

10

15

20 長軸

直線補間ドライブの軌跡は、現在位置と目的地を結ぶ直線に沿います。
・直線補間 SCAN ドライブの場合は、停止指令を検出するまで目的地の指定方向にパルス出力を続けます。
・直線補間 INDEX ドライブの場合は、長軸のパルス数が目的地のパルス数になるとドライブを終了します。

● 直線補間の長軸と短軸補間パルス数が大きい方の軸が長軸、小さい方の軸が短軸になります。

- 137 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )(3) 円弧補間ドライブ
マルチチップの任意２軸円弧補間ドライブができます。
現在の座標と中心点で形成する円弧曲線上を、指定の短軸パルス数に達するまで円弧補間します。
補間ドライブの最高速度は、 5 MHz です。指定円弧曲線に対する位置誤差は、± 1 LSB です。
座標指定できる相対アドレス範囲は、 -8,388,608 〜 +8,388,607（ 24 ビット）です。
短軸パルス数の設定範囲は、 -2,147,483,647 〜 +2,147,483,647 （ 32 ビット）です。
● 任意２軸用の１軸単位の円弧補間ドライブ
H'38

MAIN CIRCULAR CP

メイン軸円弧補間ドライブの実行

H'39

SUB CIRCULAR CP

サブ軸円弧補間ドライブの実行

メイン軸円弧補間ドライブには、以下のドライブパラメータの設定が必要です。
・実行軸の加減速ドライブのパラメータ・ CP SPEC： CPPOUT 出力、 CPPIN 入力
・ CIRCULAR XPOSITION ：現在位置の X 座標アドレス
・ CIRCULAR YPOSITION ：現在位置の Y 座標アドレス
・ CIRCULAR PULSE：目的地の短軸座標までの短軸パルス数
サブ軸円弧補間ドライブには、以下のドライブパラメータの設定が必要です。
・ CP SPEC： CPPOUT 出力、 CPPIN 入力
・ CIRCULAR XPOSITION ：現在位置の X 座標アドレス
・ CIRCULAR YPOSITION ：現在位置の Y 座標アドレス
・ CIRCULAR PULSE：目的地の短軸座標までの短軸パルス数■ 円弧補間ドライブの軌跡（ CCW 回転の例）
Y

CCW
現在位置

停止位置

X

- 138 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )円弧補間ドライブの軌跡は、現在位置と円弧の中心点の距離を半径とした円周に沿います。
・円弧補間 SCAN ドライブの場合は、停止指令を検出するまで指定の円弧半径と回転方向でパルス出力を続けます。
・円弧補間 INDEX ドライブの場合は、短軸パルス数が指定の短軸パルス数になるとドライブを終了します。

Y●円弧補間の短軸
象限 2

円弧補間の中心点( 0, 0 )としたときに象限 1

補間座標( X, Y )の絶対値が小さい方の軸が短軸になります。
右図の 1, 2, 5, 6 象限は X 軸が短軸です。

象限 3

象限 0

象限 4

象限 7

X

0, 3, 4, 7 象限は Y 軸が短軸です。

象限 5

象限 6

■円弧補間ドライブ短軸パルスの軌跡(CCW 回転の例)

CCW
現在位置

短軸の軌跡

停止位置

円弧補間ドライブは、円弧の中心座標からみた短軸側が補間ドライブの基本パルス（短軸パルス）を常に出力し、長軸側は基本パルス（短軸パルス）を補間演算して補間パルスを出力します。

- 139 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )●短軸パルス数の計算式
半径 R の円における１象限当たりの短軸パルス数 Ps は、以下の条件式で算出します。
K ＝ int(R ／√ 2)： int() は小数点以下を切り捨てた整数(1)R ≦ K ＋(K ＋ 1)2 のとき
22

条件式： | K2 ＋(K ＋ 1)2 − R2 | ＞ | K2 ＋ K2 − R2 | のときは、 Ps ＝ K| K2 ＋(K ＋ 1)2 − R2 | ≦ | K2 ＋ K2 − R2 | のときは、 Ps ＝ K ＋ 1/2(2)R2 ＞ K2 ＋(K ＋ 1)2 のとき
条件式： | K2 ＋(K ＋ 1)2 − R2 | ＞ | (K ＋ 1)2 ＋(K ＋ 1)2 − R2 | のときは、 Ps ＝ K ＋ 1| K2 ＋(K ＋ 1)2 − R2 | ≦ | (K ＋ 1)2 ＋(K ＋ 1)2 − R2 | のときは、 Ps ＝ K ＋ 1/2
短軸パルス数 P ＝ int(各象限の短軸パルス数の合計)
1 象限当たりの短軸パルス数の 8 倍（ Ps x 8 ）が、 1 回転のパルス数になります。
●短軸パルス数の計算例 1 （ CCW 回転）
中心点（ 0, 0）に対して、現在位置を（ 10, 5）、目的地を（ -10, -5）として CCW 回転させる場合の目的地の短軸座標までの短軸パルス数 P は、以下のようになります。
R ＝ √(102 ＋ 52) ＝ √ 125,

K ＝ int(R ／√ 2) ＝ int(7.9 ) ＝ 7

R ＝ 125, K ＋(K ＋ 1) ＝ 113, なので2

2

2| K2 ＋(K ＋ 1)2 − R2 | ＝ 12,

R2 ＞ K2 ＋(K ＋ 1)2| (K ＋ 1)2 ＋(K ＋ 1)2 − R2 | ＝ 3, なので| K2 ＋(K ＋ 1)2 − R2 | ＞ | (K ＋ 1)2 ＋(K ＋ 1)2 − R2 | のときは、 Ps ＝ K ＋ 1 ＝ 8
短軸パルス数 P ＝ int(象限 0 のパルス数 ＋ 象限 1, 2, 3 のパルス数 ＋ 象限 4 のパルス数)＝ (8 − 5) ＋ ( 8 ＋ 8 ＋ 8 ) ＋ 5 ＝ 32
CCW 回転は負数で指定するので、 CIRCULAR PULSE ＝ -32 ＝ H'FFFF_FFE0
CCW 回転時の現在位置の象限の短軸パルス数は、以下のようになります。
・現在位置が象限 0, 2, 4, 6 の短軸パルス数： Ps −(現在位置の短軸座標の絶対値)
・現在位置が象限 1, 3, 5, 7 の短軸パルス数： 現在位置の短軸座標の絶対値
CCW 回転時の目的位置の象限の短軸パルス数は、以下のようになります。
・目的位置が象限 0, 2, 4, 6 の短軸パルス数： 目的位置の短軸座標の絶対値
・目的位置が象限 1, 3, 5, 7 の短軸パルス数： Ps −(目的位置の短軸座標の絶対値)●短軸パルス数の計算例２（ CW 回転）
中心点（ 0, 0）に対して、現在位置を（ 20, 5）、目的地を（ -20, -5）として CW 回転させる場合の目的地の短軸座標までの短軸パルス数 P は、以下のようになります。
R ＝ √(202 ＋ 52) ＝ √ 425,

K ＝ int(R ／√ 2) ＝ int(14.6) ＝ 14

R ＝ 425, K ＋(K ＋ 1) ＝ 421, なので2

2

2| K2 ＋(K ＋ 1)2 − R2 | ＝ 4,

R2 ＞ K2 ＋(K ＋ 1)2| (K ＋ 1 )2 ＋(K ＋ 1)2 − R2 | ＝ 25, なので| K2 ＋(K ＋ 1)2 − R2 | ≦ | (K ＋ 1)2 ＋(K ＋ 1)2 − R2 | のときは、 Ps ＝ K ＋ 1/2 ＝ 14.5
短軸パルス数 P ＝ int(象限 0 のパルス数 ＋ 象限 7, 6, 5 のパルス数 ＋ 象限 4 のパルス数)＝ 5 ＋ ( 14.5 ＋ 14.5 ＋ 14.5) ＋ ( 14.5 − 5) ＝ 58
CW 回転は正数で指定するので、 CIRCULAR PULSE ＝ 58 ＝ H'0000_003A
CW 回転時の現在位置の象限の短軸パルス数は、以下のようになります。
・現在位置が象限 0, 2, 4, 6 の短軸パルス数： 現在位置の短軸座標の絶対値
・現在位置が象限 1, 3, 5, 7 の短軸パルス数： Ps −(現在位置の短軸座標の絶対値)
CW 回転時の目的位置の象限の短軸パルス数は、以下のようになります。
・目的位置が象限 0, 2, 4, 6 の短軸パルス数： Ps −(目的位置の短軸座標の絶対値)
・目的位置が象限 1, 3, 5, 7 の短軸パルス数： 目的位置の短軸座標の絶対値- 140 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )(4) 線速一定制御
メイン軸直線補間ドライブで有効です。
メイン軸円弧補間ドライブで有効です。
補間ドライブしている２軸の合成速度を一定にする制御です。
メイン軸直線／円弧補間ドライブの基本パルスを線速一定制御します。
２軸同時にパルス出力したときに、次の基本パルスの出力周期を 1.414 倍にします。
・直線補間ドライブでは、メイン軸の長軸と短軸の２軸間で、線速一定制御します。
・円弧補間ドライブでは、 X 座標軸と Y 座標軸の２軸間で、線速一定制御します。
線速一定で加減速ドライブを行うと、減速パルス数が増加します。
INDEX ドライブの自動減速では、減速後の終了速度でのドライブが長くなります。

■ 線速一定の補間パルス出力 (２軸直線補間ドライブの例）
アクティブレベルの幅はそのままで、 OFF レベルの幅を長くします。
1

1.414

1

1.414

1

長軸の補間パルス
0.5

0.5

0.914

0.5

短軸の補間パルス

直線補間ドライブの軌跡(長軸 10:短軸 10 の例)<線速一定制御なしのとき>
短軸<線速一定制御ありのとき>
短軸

10
合成速度 =√ 2 × 1000 Hz

長軸の設定速度 =1000 Hz

10
合成速度 =1000 Hz

10 長軸

10 長軸

長軸の設定速度 =1000 Hz

長軸の速度を一定速の 1000Hz とすると、
2 軸直線補間で描かれる軌跡の合成速度は√ 2 × 1000Hz でドライブします。

コマンド実行軸の速度を一定速の 1000Hz として
線速一定制御を設定すると、 2 軸直線補間で描かれる軌跡の合成速度が 1000Hz となるようにドライブします。

※線速一定で加減速ドライブを行うと、減速後の終了速度でのドライブが長くなります。
速度
最高速度設定された最高速度(HSPD)

線速一定制御で加減速ドライブすると、パルス出力

補間演算による線速一定の速度
加速カーブ

減速カーブ

開始速度

終了速度

(LSPD)
FSPD

できなかったパルス分は終了速度で出力します。

(ELSPD)
第１パルス
時間- 141 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )4-1-6. ドライブ CHANGE 機能
ドライブ CHANGE 機能には、 SPEED CHANGE 機能と INDEX CHANGE 機能があります。
ドライブ CHANGE 指令は、予約して実行することができます。

(1) SPEED CHANGE 機能
SPEED CHANGE 指令には、以下のコマンドがあります。
・設定コマンドSPEED CHANGE SPEC SET コマンド ： SPEED CHANGE 指令を実行する変更動作点
・実行コマンドSPEED RATE CHANGE コマンド： SPEED & RATE CHANGE 指令
SPEED CHANGE の状態は、 STATUS5 PORT の SPEED EP と SPEED FL フラグで確認します。
・ SPEED FL = 0 のときに、変更動作点を設定して、 SPEED RATE CHANGE コマンドを書き込みます。
SPEED CHANGE SPEC SET コマンドを実行しても、 SPEED FL = 0 のままです。
SPEED RATE CHANGE コマンドを書き込むと、 SPEED CHANGE 専用のレジスタに格納します。
同時に SPEED FL = 1、 SPEED EP = 0 にします。
・ DRIVE = 1 のときに、変更動作点を検出して、 SPEED RATE CHANGE コマンドを実行します。
同時に SPEED FL = 0、 SPEED EP = 1 にします。
変更動作点を検出して、 SPEED RATE CHANGE コマンドを実行すると、指定したドライブパルス速度まで（ SPEED CHANGE）、
指定した変速周期データで（ RATE CHANGE ）、加速または減速します。
・指定する速度は、最高速度以上および開始速度／終了速度以下にできます。
・直線加減速ドライブ（ SUAREA = 0, SDAREA = 0）の加減速中に CHANGE 指令を実行した場合は、現在の速度から、指定した速度まで指定した変速周期で加速または減速します。
・Ｓ字加減速ドライブの加減速中に CHANGE 指令を実行した場合は、以下のようになります。
Ｓ字加減速ドライブでは、現在の加減速カーブを終了するまでは SPEED FL = 1 のままです。
現在の加速または減速状態で、指定した速度に到達できる場合は、
現在の変速周期のまま加速または減速します。この場合は、指定した変速周期は無効になります。
現在の加速または減速状態で、指定した速度に到達できない場合は、現在の加速または減速状態を、現在の変速周期のＳ字カーブで滑らかに終了させてから、指定した速度まで指定した変速周期で加速または減速します。
・減速停止動作時および自動減速動作中の INDEX CHANGE による再加速時の変速周期は、
RATE SET コマンドで設定した UCYCLE または DCYCLE の変速周期で動作します。
指定するドライブパルス速度を "0" に設定すると、 CONST DRIVE 指令になります。
CONST DRIVE 指令を実行すると、加速または減速を終了して、一定速にします。
・直線加減速ドライブの加減速中の場合は、 CONST DRIVE 指令の実行で加速または減速を終了します。
・Ｓ字加減速ドライブの加減速中の場合は、 CONST DRIVE 指令を実行すると、現在の変速周期のＳ字カーブで滑らかに加速または減速を終了して、一定速にします。
SPEED RATE CHANGE コマンドを実行しても、ドライブパラメータの設定は変わりません。

- 142 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )■ SPEED CHANGE 指令が有効となるドライブ（コマンド）
補間ドライブでは、基本パルス発生軸の加減速パラメータに対して CHANGE 指令を実行します。
H'12

+SCAN

*P

H'13

‑SCAN

*P

＋方向 SCAN ドライブの実行−方向 SCAN ドライブの実行

H'14

INC INDEX*P

相対アドレス INDEX ドライブの実行

H'15

ABS INDEX*P

絶対アドレス INDEX ドライブの実行

H'30

MAIN STRAIGHT CP*P

メイン軸直線補間ドライブの実行

H'38

MAIN CIRCULAR CP*P

メイン軸円弧補間ドライブの実行

−

−

*P

MANUAL ドライブの SCAN ドライブの実行

・上記のドライブを実行すると DRIVE = 1 から、変更動作点の検出が有効になります。
変更動作点を検出すると、格納している SPEED RATE CHANGE コマンドを実行します。
● SPEED CHANGE 指令が自動的に無効となる状態
以下の状態を検出すると、格納している SPEED RATE CHANGE コマンドをクリアします。
SPEED FL = 1、 SPEED EP = 1 にして、 SPEED CHANGE コマンドの書き込みを無効にします。
・ SPEC INITIALIZE3 コマンドの SCAREA MODE = 1 の検出
・ STATUS1 PORT の ERROR = 1 の検出
・ DRIVE = 1 のときに、 LSEND = 1、 SSEND = 1、 FSEND = 1、 ORGEND = 1 の検出
・ INDEX ドライブの自動減速地点の検出・反転動作が必要な INDEX CHANGE 指令の検出
・ DRIVE = 1 → 0 の検出（格納している実行コマンドのクリアのみ行います）
・ SERVO RESET コマンドの実行
SCAREA MODE = 0、 ERROR = 0、 DRIVE = 0 になると、SPEED FL = 0、 SPEED EP = 1 にして、 SPEED CHANGE コマンドの書き込みを有効にします。

- 143 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )(2) INDEX CHANGE 機能
INDEX CHANGE 指令には、以下のコマンドがあります。
・設定コマンド
INDEX CHANGE SPEC SET コマンド ： INDEX CHANGE 指令を実行する変更動作点
反転ドライブの第１パルス周期（ RFSPD ）・実行コマンド
INC INDEX CHANGE コマンド
： INC INDEX CHANGE 指令
ABS INDEX CHANGE コマンド： ABS INDEX CHANGE 指令
PLS INDEX CHANGE コマンド
： PLS INDEX CHANGE 指令
INDEX CHANGE の状態は、 STATUS5 PORT の INDEX EP と INDEX FL フラグで確認します。
・ INDEX FL = 0 のときに、変更動作点を設定して、 INDEX CHANGE 実行コマンドを書き込みます。
INDEX CHANGE SPEC SET コマンドを実行しても、 INDEX FL = 0 のままです。
INDEX CHANGE 実行コマンドを書き込むと、 INDEX CHANGE 専用のレジスタに格納します。
同時に INDEX FL = 1、 INDEX EP = 0 にします。
・ DRIVE = 1 のときに、変更動作点を検出して、 INDEX CHANGE 実行コマンドを実行します。
同時に INDEX FL = 0、 INDEX EP = 1 にします。
任意の変更動作点の検出で、 INDEX CHANGE コマンドを実行します。
・変更動作点を検出して、 INC INDEX CHANGE コマンドを実行すると、指定したデータを、起動位置を原点とする相対アドレスの停止位置に設定して、INC INDEX ドライブを行います。
・変更動作点を検出して、 ABS INDEX CHANGE コマンドを実行すると、指定したデータを、アドレスカウンタで管理している絶対アドレスの停止位置に設定して、ABS INDEX ドライブを行います。
・変更動作点を検出して、 PLS INDEX CHANGE コマンドを実行すると、指定したデータを、変更動作点の検出位置を原点とする相対アドレスの停止位置に設定して、INC INDEX ドライブを行います。
PLS INDEX CHANGE コマンドを実行すると、 INC INDEX ドライブの原点を変更します。
・ PLS INDEX CHANGE コマンド実行後に、 INC INDEX CHANGE コマンドを実行すると、
PLS INDEX CHANGE コマンドの変更動作点の検出位置を原点として INC INDEX ドライブを行います。
反転動作が必要な INDEX CHANGE 指令を検出した場合は、終了速度まで減速停止後に反転ドライブを行い、指定の停止位置まで移動します。

■ INDEX CHANGE 指令が有効となるドライブ（コマンド）
H'12

+SCAN

*P

H'13

‑SCAN

*P

＋方向 SCAN ドライブの実行−方向 SCAN ドライブの実行

H'14

INC INDEX*P

相対アドレス INDEX ドライブの実行

H'15

ABS INDEX*P

絶対アドレス INDEX ドライブの実行

・上記のドライブを実行すると DRIVE = 1 から、変更動作点の検出が有効になります。
変更動作点を検出すると、格納している INDEX CHANGE 実行コマンドを実行します。
● INDEX CHANGE 指令が自動的に無効となる状態
以下の状態を検出すると、格納している INDEX CHANGE 実行コマンドをクリアします。
INDEX FL = 1、 INDEX EP = 1 にして、 INDEX CHANGE コマンドの書き込みを無効にします。
・ SPEC INITIALIZE3 コマンドの DOWN PULSE MASK = 1 の検出
・ SPEC INITIALIZE3 コマンドの SCAREA MODE = 1 の検出
・ STATUS1 PORT の ERROR = 1 の検出
・ DRIVE = 1 のときに、 LSEND = 1、 SSEND = 1、 FSEND = 1、 ORGEND = 1 の検出
・ DRIVE = 1 → 0 の検出（格納している実行コマンドのクリアのみ行います）
・ SERVO RESET コマンドの実行
DOWN PULSE MASK = 0、 SCAREA MODE = 0、 ERROR = 0、 DRIVE = 0 になると、
INDEX FL = 0、 INDEX EP = 1 にして、 INDEX CHANGE コマンドの書き込みを有効にします。

- 144 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )● INDEX CHANGE 指令によるエラー
内部カウンタの相対アドレス範囲は、 -2,147,483,647 〜 +2,147,483,647 （ 32 ビット）です。
出力パルス数範囲は、 0 〜 2,147,483,647（ 31 ビット）です。
反転動作が必要な INDEX CHANGE 指令を検出して、反転ドライブを行う場合に、反転ドライブの出力パルス数が 2,147,483,647 を超えて、オーバフローしてしまう場合があります。
この場合は、 ERROR STATUS の INDEX ERROR = 1 にします。
STATUS1 PORT の ERROR = 1 となり、実行中のドライブを終了速度まで減速して停止します。
・ INDEX CHANGE 指令検出後の反転ドライブで、出力パルス数がオーバフローした
SCAN ドライブの実行または反転動作が必要な INC INDEX CHANGE 指令の実行により、
内部カウンタの相対アドレスがオーバフローしてしまう場合があります。
この場合は、 ERROR STATUS の INDEX ERROR = 1 にします。
STATUS1 PORT の ERROR = 1 となり、実行中のドライブを終了速度まで減速して停止します。
・ INC INDEX CHANGE 指令検出後のドライブで、内部の相対アドレスがオーバフローした
SCAN ドライブの実行または反転動作が必要な ABS INDEX CHANGE 指令の実行により、
アドレスカウンタがオーバフローしてしまう場合があります。
この場合は、 ERROR STATUS の INDEX ERROR = 1 にします。
STATUS1 PORT の ERROR = 1 となり、実行中のドライブを終了速度まで減速して停止します。
・ ABS INDEX CHANGE 指令検出後のドライブで、アドレスカウンタがオーバフローした■ INDEX CHANGE コマンド実行前と実行後のドライブの停止
INDEX CHANGE コマンド実行前と実行後では、 INDEX ドライブの減速停止動作が異なります。
● INDEX CHANGE コマンド実行前の INDEX ドライブの停止
・自動減速停止動作開始後に指定アドレスを検出すると即時停止します。
・ドライブ中に減速停止指令を検出した場合は、終了速度まで減速して指定アドレス内で停止します。
減速中に指定アドレスを検出した場合は、指定アドレスで即時停止します。
・ドライブ中に ERROR = 1 を検出した場合は、終了速度まで減速して指定アドレス内で停止します。
減速中に指定アドレスを検出した場合は、指定アドレスで即時停止します。
● INDEX CHANGE コマンド実行後の INDEX ドライブの停止
・ INDEX CHANGE コマンドの実行で " 指定アドレスの検出で停止 " をマスクします。
終了速度になるとマスクを一時解除します。 DRIVE = 0 の検出でマスクを完全に解除します。
・自動減速停止動作開始後は、終了速度まで減速すると指定アドレスを検出して停止します。
ドライブ中に指定アドレスを超えた場合は、終了速度まで減速停止後に反転ドライブを行います。
反転ドライブでは、自動減速停止動作開始後に指定アドレスを検出すると即時停止します。
・ドライブ中に減速停止指令を検出した場合は、終了速度まで減速して停止します。
減速中に指定アドレスを検出しても停止しません。終了速度で停止します。
・ドライブ中に ERROR = 1 を検出した場合は、終了速度まで減速して停止します。
減速中に指定アドレスを検出しても停止しません。終了速度で停止します。

- 145 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )■ INC INDEX CHANGE の動作指定したデータを、起動位置を原点とする相対アドレスの停止位置にします。
速度
最高速度(HSPD )

開始速度

終了速度 (ELSPD)(LSPD)

最初の停止位置変更した停止位置位置

INC INDEX CHANGE で指定したデータ

ドライブ指令INC INDEX ドライブの原点

INC INDEX CHANGE 指令■ ABS INDEX CHANGE の動作指定したデータを、アドレスカウンタが管理している絶対アドレスの停止位置にします。
速度
最高速度(HSPD )

開始速度

終了速度 (ELSPD)(LSPD)

最初の停止位置変更した停止位置位置ABS INDEX CHANGE で指定したデータ
ドライブ指令ABS INDEX CHANGE 指令■ PLS INDEX CHANGE の動作指定したデータを、変更動作点の検出位置を原点とする相対アドレスの停止位置にします。
速度
最高速度(HSPD )

開始速度

終了速度 (ELSPD)(HSPD )

最初の停止位置変更した停止位置位置PLS INDEX CHANGE で指定したデータ
ドライブ指令PLS INDEX CHANGE 指令

INC INDEX ドライブの原点の変更- 146 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )■ 減速中の INDEX CHANGE 動作● 直線加減速ドライブの減速中の INDEX CHANGE
停止位置への減速中に、加速が必要な INDEX CHANGE 指令を検出した場合は、減速の途中から再加速して、変更した停止位置までドライブします。
速度
最高速度(HSPD )

開始速度

終了速度

(LSPD)( ELSPD)位置
最初の停止位置変更した停止位置

ドライブ指令INDEX CHANGE 指令● Ｓ字加減速ドライブの減速中の INDEX CHANGE
停止位置への減速中に、加速が必要な INDEX CHANGE 指令を検出した場合は、Ｓ字減速カーブで滑らかに減速を終了させてから、Ｓ字加速カーブで再加速します。
速度
最高速度(HSPD )

減速終了
開始速度

終了速度

(LSPD)( ELSPD)位置
最初の停止位置
ドライブ指令INDEX CHANGE 指令- 147 -

変更した停止位置

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )■ INDEX CHANGE の反転ドライブ
終了速度まで減速停止後に反転ドライブを行い、指定の停止位置まで移動します。
速度

INDEX CHANGE 指令

最高速度

開始速度

終了速度
FSPD

変更した停止位置

最初の停止位置
位置
RFSPD

終了速度

開始速度

最高速度
ドライブ指令● INDEX CHANGE 指令による反転ドライブ
反転動作が必要な INDEX CHANGE 指令を検出した場合は、以下のようになります。
・ INDEX CHANGE コマンドの実行で " 指定アドレスの検出で停止 " をマスクします。
終了速度になるとマスクを一時解除します。 DRIVE = 0 の検出でマスクを完全に解除します。
・実行中のドライブを終了速度まで減速して停止します。
・ STATUS1 PORT の DRIVE = 1 → 0 になります。
・ DRIVE = 0 の検出で " 指定アドレスの検出で停止 " のマスクを完全に解除します。
・ DEND 信号の<サーボ対応>も実行します。
・この間は、 BUSY = 1 のままです。
・ LSEND = 0、 SSEND = 0、 FSEND = 0 、 ORGEND = 0 、 ERROR = 0 のときに、
指定アドレスを超えて停止した場合は、反転ドライブを実行し、指定の停止位置まで移動します。
・反転ドライブの第１パルス周期は、 FSPD ではなく RFSPD になります。
RFSPD は、 INDEX CHANGE SPEC SET コマンドで設定します。
その他のドライブパラメータは、 INC/ABS INDEX ドライブの設定値で動作します。
・反転ドライブの自動減速停止動作開始後に指定アドレスを検出すると即時停止します。
・停止後には、 DEND 信号の<サーボ対応>も実行します。
反転ドライブ中に、反転動作が必要な INDEX CHANGE 指令を検出した場合は、
上記の動作を繰り返します。
以下の状態を検出した場合は、指定アドレスを超えて停止しても、反転ドライブを実行しません。
・ STATUS1 PORT の ERROR = 1、 LSEND = 1、 SSEND = 1、 FSEND = 1 の検出
・ STATUS2 PORT の ORGEND = 1 の検出- 148 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )4-1-7. 読み出し機能
下記データの読み出しは、取扱説明書(標準)の 3-7.章の制限事項を除き、常時可能です。
下記の関数にて、コマンドの書き込みと、データの読み出しを一括で処理することができます。
これらの関数は、コマンドの書き込みからデータの読み出しまで、関数内で排他処理されています。
マルチスレッドプログラミングのように、複数のスレッドで処理される場合は、この関数によって読み出しすることを推奨します。
・デバイス単位 … DRIVE COMMAND 32 ビット書き込み／読み出し関数
DRIVE COMMAND PORT 書き込み／読み出し関数(1) カウントデータのラッチデータ読み出し
MCCC09 に各カウンタ LATCH DATA READ コマンドを実行するとラッチしたカウントデータを読み出すことができます。

- 149 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )4-1-8. RSPD 機能
RSPD とは、ドライブ終了時に MCC09 が記憶している終了速度です。

RSPD 設定方法
・ JOG パルス速度( JSPD)を "0" に設定すると、 JSPD ＝ RSPD x RESOL に補正して JSPD が設定されます。
・第 1 パルス周期(FSPD)を "0" に設定すると、 FSPD ＝ RSPD x RESOL に補正して FSPD が設定されます。
・ INDEX CHANGE の反転開始速度(RFSPD)を "0" に設定すると、 RFSPD ＝ RSPD x RESOL に補正して
RFSPD が設定されます。
・最高速度(HSPD)を "0" に設定すると、 HSPD ＝ RSPD x RESOL に補正して HSPD が設定されます。
・最低速度(LSPD )を "0" に設定すると、 LSPD ＝ RSPD x RESOL に補正して LSPD が設定されます。
終了速度(ELSPD)を "0" に設定した場合は、 ELSPD は、 ELSPD = LSPD に補正されます。
但し、以下の場合は、 RSPD は書き換えません。
・最終出力のパルス速度が FSPD のとき
・最終出力のパルス速度が JSPD のとき
RSPD の電源投入後の初期値は、 H'012C （ 300）です。

RSPD の読み出し
RSPD DATA READ コマンドにより、 FPSD、 HSPD、 LSPD と同様のパルス速度データが読み出しできます。

●応用例
連続したドライブなど、 2 回目の開始速度を MCC09 が記憶している速度でドライブを再開して、変速のない
ドライブパターンのつなぎ方が可能です。
一回の位置決め量が少ないときは、加速ドライブパターンで設定した最高速度、減速ドライブパターンで設定した終了速度まで到達せずに、ドライブを終了する可能性があります。
このときの終了した速度は、通常アプリケーション側から再設定することはできません。
これを RSPD 機能により、前の区間のドライブの終了速度を、次のドライブ開始速度として、自動的に再設定することを可能にしています。
RSPD 機能と加減速時定数( RATE)の変更や任意なドライブパターンを組み合わせてコマンド予約機能を使用すると、任意なドライブ形状を作ることが可能でます。
下記の例で示す印が MCC09 が記憶する終了速度(RSPD )です。

速度

加速ドライブ

加速時 LSPD=0

一定速ドライブ

一定速 FSPD=0

減速ドライブ

減速時 HSPD=0
RSPD 機能

終了速度が次の開始速度に自動設定

時間
INDEX 指令
(SPEED パラメータや移動量をコマンド予約で変更)- 150 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )4-2. カウンタ仕様
4-2-1. リングカウンタ機能
アドレスカウンタ、およびパルスカウンタは、カウント最大値を設定すると、設定値をカウンタの最大値としてリングカウントします。
回転系のアドレス管理に便利です。
●最大カウント数＝ 1,999 の場合(2,000 カウントで 1 回転)
STATUS4 PORT の OVF=1＋方向のカウント：−方向のカウント：

0 →1 →
0 → 1999 →…
…

→999 → 1000 → 1001 →→ 1001 → 1000 →
999 →

…
…

→ 1999 →→1 →STATUS4 PORT の OVF=1●最大カウント数＝ 2,000 の場合(2,001 カウントで 1 回転)
STATUS4 PORT の OVF=1＋方向のカウント：−方向のカウント：

0 →1 →
0 → 2000 →…
…

→ 1000 → 1001 →→ 1001 → 1000 →…
…

→ 2000 →
→
1 →

0
0

STATUS4 PORT の OVF=1・パルス偏差カウンタにはリングカウンタ機能はありません。
・カウント数が設定値の 1/2 に達すると、 STATUS4 PORT の各カウンタの OVF=1 になります。
・カウント最大値は各カウンタの COUNTER MAX COUNT SET コマンドで設定します。
・アドレスカウンタにカウント最大値を設定して、 ABS INDEX ドライブでカウント最大値以上のアドレスを指定した場合、アドレスカウンタが OVF した時点でドライブは停止し、エラーとなります。

- 151 -00

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )4-2-2. カウントデータのラッチ・クリア機能■カウンタのラッチ機能
設定したラッチタイミングのアクティブエッジで、カウンタのカウントデータをラッチします。
ラッチしたデータは次のラッチタイミングのアクティブエッジを検出するまで保存します。
ラッチしたデータは各カウンタ LATCH DATA READ コマンドで読み出すことができます。
●設定できるラッチタイミング
ラッチタイミング <エッジ検出>
・各カウンタ LATCH DATA READ コマンドの実行でラッチする
・他軸の STATUS3 PORT の OUT3 = 0 → 1 でラッチする
・ STATUS3 PORT の GPIO2 = 0 → 1 でラッチする
・ ORIGIN 停止機能の ORG エッジ信号の検出でラッチする
・ STATUS3 PORT の OUT2 = 0 → 1 でラッチする
・ STATUS3 PORT の OUT3 = 0 → 1 でラッチする

・各カウンタのラッチタイミングは COUNT LATCH SPEC SET コマンドで設定します。
(注)GPIO2( SS0)信号は SPEC INITIALIZE2 コマンドで SS0 機能が「汎用入力」に設定している場合に有効です。
・ SS0 信号は下記の軸に対応しています。(初期値)/IN0 信号X 軸の SS0 信号/IN1 信号Y 軸の SS0 信号■カウンタのクリア機能
カウントデータのラッチと同時にカウントデータを "0" にクリアします。
カウンタのカウントタイミングとクリアタイミングが同時に発生した場合はクリアを優先します。
・各カウンタのラッチクリア機能は COUNT LATCH SPEC SET コマンドで設定します。
●カウンタラッチとクリア機能を応用したドライブ例
センサ(IN0 信号または IN1 信号)の検出を基準とした位置から、カウンタのコンパレータ一致による停止機能
でドライブを停止させることが可能です。
・ドライブ起動前に必要な設定を済ませることができ、ドライブ中の Windows OS や AL-Ⅱ通信などの影響を受けない繰り返し精度の高いセンサ検出によるドライブが可能です。
・予め INDEX ドライブを起動することで、センサ信号検出しない場合でもメカの最大移動量は保証できます。
・センサ検出から減速開始または即時停止するまでの移動量をコンパレータの設定値により調整できます。
減速停止時の減速開始から出力されるパルス数は保証されます。
・ドライブ中の他の停止信号や停止コマンドも有効です。
速度

最高速度

開始速度

終了速度
センサ基準からの任意停止位置

最大停止位置位置

INDEX で指定した移動量データ
センサ検出からの停止位置
INDEX ドライブ指令

・ COUNTER INITIALIZE2 コマンドにて
COMP1 の停止機能を "有効 "にする

INx 信号(SS0)検出

COMP1 の設定

COMP1 の STOP TYPE で即時 /減速停止を選択
・ COUNT LATCH SPEC SET コマンドにて任意設定値( n)

ラッチと同時COMP1 の任意な設定値と"SS0 = 0 → 1 でラッチする "一致で停止指令"クリアする "に設定に 0 にクリア* 必ずクリア後からの値で一致するように、カウンタの値
0,1, 2,…

カウンタ設定値は、以下のようにします。

…n

COMP1 設定値 + 1

COMP1 一致検出
(停止指令)- 152 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )4-3. MCM 機能
4-3-1. 特徴
MCM(Motion Control Macro)とは、ユーザが独自に複数の MCC09 コマンドを連続実行するプログラムを
シート単位のメモリーにマクロ化することができる機能です。
ユーザアプリケーションから、 MCM を開始することにより、ユーザマクロプログラムはユニット上のハードウェア処理で自動実行させることができます。その結果、リアルタイムなモーション制御が可能になり、モーションコントロールの精度および信頼性の向上を図ることができます。
また、モーションコントロールがユニットに分散されるため、アプリケーション処理に要する負荷を軽減させることができます。
●応用例 1INDEX ドライブ中に任意の位置で SOUT0 信号にトリガ出力します
速度

時間

Y

X

SOUT0

X 軸のパルスカウンタのコンパレータ一致と同時に、予め MCM に登録されている任意な検出値を順次コンパレータに自動的に書き換えます。
このコンパレータ一致検出タイミングを SOUT0 信号に出力させます。
OS に依存するコンパレータの書き換え時間の不安定性さや、且つその処理の負荷も省くことができます。
パルスカウンタの実位置を基準としたタイミングでリアルタイムな外部機器との同期制御が可能です。
●応用例 2
直線補間ドライブ中に任意の区間で SOUT0 信号にアクティブレベルを出力します
速度

時間

Y

X

SOUT0

X 軸のパルスカウンタのコンパレータ一致と同時にコンパレータの書き換えを行います。
コンパレータ一致直後に、予め MCM に登録されている SIGNAL OUT コマンドを実行して、SOUT0 信号の ON/OFF 出力を自動実行します。
カウンタの読み出しから I/O 信号出力までの制御時間の遅れや繰り返し誤差をなくすことができます。
パルスカウンタの実位置を基準としたタイミングでリアルタイムな外部機器同期が可能です。

- 153 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )●応用例 3
直線補間ドライブ中、区間の始まりに同期して Z 軸の INDEX ドライブを行います
速度

時間

Y

X

Z

予め MCM に登録されている X-Y 軸の各ポジションへ直線補間ドライブを実行します。
各ポジションの通過時に、次の X-Y 軸の直線補間ドライブの実行タイミングと同期を合わせて、 Z 軸の INDEX ドライブを実行します。
アプリケーションから X-Y 軸ポジションの通過点となる終了タイミングを監視(読み出す)する必要はなく、 X-Y 座標の任意な位置で Z 軸のドライブ開始タイミングをリアルタイムに制御できます。ヘッド制御のアーチモーション等にも応用できます。

●応用例 4
円弧補間ドライブ中に任意の区間で SOUT0 信号にアクティブレベルを出力します
速度

時間

Y

X

SOUT0

予め MCM に登録されている X 軸の INDEX ドライブまたは X-Y 軸の各ポジションへ
円弧補間ドライブを実行します。
各ポジションの通過時に、次の X 軸の INDEX ドライブまたは X-Y 軸の円弧補間ドライブの実行タイミングと同期を合わせて、 SIGNAL OUT コマンドを実行して、 SOUT0 信号の
ON/OFF 出力を自動実行します。
アプリケーションから X-Y 軸ポジションの通過点となる終了タイミングを監視(読み出す)する必要はなく、リアルタイムな外部機器同期が可能です。

- 154 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )4-3-2. MCM 関数シーケンス
MCM による制御シーケンスを示します。
このシーケンスには、関数エラーが発生した場合のフローは含まれていません。

(1 ) MCM の全体実行シーケンス
UNIT MCM SHEET DOWNLOAD 関数① RAM 領域に MCM シートをダウンロードします。

の実行

UNIT MCM SPEC1 SET 関数
HARD INITIALIZE1 コマンド
HARD INITIALIZE3 コマンドの実行

UNIT MCM SPEC3 SET 関数
HARD INITIALIZE1 コマンドの実行

ERROR STATUS MASK コマンドの実行

*1

UNIT MCM START 関数② MCM の同期動作を行うときの信号の割り当てと機能を設定します。
・ UNIT MCM SPEC1 :SS1 の機能を選択します。
・ HARD INITIALIZE1 :OUT1 の同期タイミングを取る信号を選択します。
・ HARD INITIALIZE3 :GPIO3 機能を SS1 にします。

③ MCM の自動実行中に内部タイミングを外部出力するときの信号の割り当てと機能を設定します。
・ UNIT MCM SPEC3 :SOUT 信号に出力する軸と信号を設定します。
・ HARD INITIALIZE1 :OUT0 信号の出力機能を選択します。
④ MCM 動作を次の要因で停止できるように ERROR STATUS MASKを「マスクしない」に設定します。
・即時停止要因 :FSSTOP ERROR MASK
・減速停止要因 :SLSTOP ERROR MASK・リミット停止 :LSEND ERROR MASK
⑤ 開始アドレスを指定して、 MCM を開始します。

の実行

MCM の自動実行中

MCM 動作の終了処理として、
ERROR STATUS MASK コマンドの実行 *2⑥ 開始アドレスから、内部 RAM のデータ・コマンドを自動実行します。
・ RAM STOP コマンドを MCM に組み込んでおくと自動終了します⑦ MCM 終了処理として、 MCM 起動前の ERROR STATUS MASK に設定し直します。
・即時停止要因 :FSSTOP ERROR MASK
・減速停止要因 :SLSTOP ERROR MASK・リミット停止 :LSEND ERROR MASK

初期値および設定値に対して変更が必要な場合に設定します。
*1 ユーザアプリケーションから MCM 動作の開始前に、 ERROR STATUS MASK を設定してください。
MCM 動作中の即時停止は、 UNIT MCM FSSTOP 関数で実行します。
MCM 動作中の減速停止は、 UNIT MCM SLSTOP 関数で実行します。
ERROR STATUS MASK 設定および上記の関数の実行により、 RAM 領域の停止と予約コマンドに格納されている汎用コマンドがクリアされ、 MCM 動作が停止します。
*2 MCM 動作終了後に、 ERROR STATUS MASK 設定を MCM 起動前の元の設定に戻してください。

- 155 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )(2 ) 全軸の確認が必要な MCM 関数
MCM 関数で次の処理をする場合、 MCM STATUS1 の全軸の MERR = 0 と MBUSY = 0 の確認が必要です。
・ UNIT MCM SPEC0 SET 関数
・ UNIT MCM SPEC1 SET 関数
・ UNIT MCM SPEC2 SET 関数
・ UNIT MCM SPEC3 SET 関数
・ UNIT MCM SHEET DOWNLOAD 関数

MCM STATUS1 を読み出します。

MCM STATUS1 読み出し

No

MCM STATUS1
全軸 MERR = 0
Yes
MCM STATUS1
全軸 MBUSY = 0
Yes

動作エラー

MCM STATUS1 の全軸の MERR = 0 を確認します。

No
MCM STATUS1 の全軸の MBUSY = 0 を確認します。

目的の MCM 関数を実行します。

MCM 関数実行・ユニットの一部の軸で MERR = 1 または MBUSY = 1 の場合、上記の MERR = 0 と MBUSY = 0 の確認が必要な関数を実行すると、関数はエラー終了します。

- 156 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )(3 ) 対象軸の確認が必要な MCM 関数
MCM 関数で次の処理をする場合、 MCM STATUS1 の対象軸の MERR = 0 と MBUSY = 0 の確認が必要です。
・ UNIT MCM START 関数の実行
・ UNIT MCM WRITE 関数の実行
・ UNIT MCM READ 関数の実行

MCM STATUS1 を読み出します。

MCM STATUS1 読み出し

No

MCM STATUS1
対象軸 MERR = 0
Yes
MCM STATUS1
対象軸 MBUSY = 0
Yes

動作エラー

MCM STATUS1 の対象軸の MERR = 0 を確認します。

No
MCM STATUS1 の対象軸の MBUSY = 0 を確認します。

目的の MCM 関数を実行します。

MCM 関数実行・対象軸の一部または全部で MERR = 1 または MBUSY = 1 の場合、上記の MERR = 0 と MBUSY = 0 の確認が必要な関数を実行すると、関数はエラー終了します。

次の MCM 関数を実行する場合、 MCM STATUS1 の対象軸の MERR = 0 と MBUSY = 0 の確認は不要です。
・ UNIT MCM FSSTOP 関数
・ UNIT MCM SLSTOP 関数
・ UNIT MCM ERROR CLR 関数

目的の MCM 関数を実行します。

MCM 関数実行- 157 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )4-3-3. 構成
MCC09 搭載製品には、 MCM を保存するための ROM 領域と、 MCM を実行するための RAM 領域があります。
ROM 領域には 4 枚のシートが存在し、各シートには MCC09 のコマンドを 4000 個× 4 軸分だけ保存することができます。 RAM 領域には 1 枚のシートと同じ容量が確保されています。
ROM 領域に格納されているコマンドは、ユニットの電源を切っても失われることはありません。
RAM 領域に格納されているコマンドは、ユニットの電源を切ると、全て失われます。
MCC09 搭載製品
ROM 領域
0

X

Y

MCM

Z

A

MCM
MCM

0

X

0

Y

X

Z

Y

A

Z

A

MCM

MCM
MCM

MCM

SSMAP-63-01vx.xx

MCM

MCM

MCM

MCM

3999
ダウンロードRAM 領域
シートダウンロード

0

アプリケーション

Y

Z

A

MCM

MCM の設定 /読出
ユーザ

X
MCM

MCM の開始
MCM の停止MCM
MCM

MCM 状態の読出

MCM

MCM

MCM

RAM 領域 *1(書込 /読出)

3999※ Z 軸と A 軸は 4 軸ユニットのみ有効です。
ユニットの出荷時、 ROM 領域の全エリアは H'FFFF_FFFF_FF に初期化されています。
ユニットの電源投入時、 RAM 領域の全エリアは H'FFFF_FFFF_FF に初期化されます。
*1 ユニットの電源投入時、ユーザアプリケーションからの RAM 領域アクセスは無効になっています。
MCM SPEC0 SET 関数により、ユーザアプリケーションからの RAM 領域アクセスを、無効から有効に切り替えることができます。
ユーザアプリケーションから実行できる MCM 関数は、以下の通りです。
項目

関数名

機能

MCM の設定

UNIT MCM SPEC1 SET ／ GET 関数

MCM 同期制御を行うときの設定と読み出し

初期値−

UNIT MCM SPEC2 SET ／ GET 関数

外部入力信号の割り付け設定と読み出し−

UNIT MCM SPEC3 SET ／ GET 関数

外部出力信号の割り付け設定と読み出し−

MCM シートの設定

UNIT MCM SHEET DOWNLOAD 関数

MCM シートのダウンロード−

MCM の開始

UNIT MCM START 関数

MCM の起動−MCM の停止

UNIT MCM FSSTOP 関数

MCM の即時停止−

UNIT MCM SLSTOP 関数

MCM の減速停止−

MCM 状態読み出し

UNIT MCM STATUS READ 関数

MCM ステータスの読み出し−

MCM 情報読み出し

UNIT MCM INFO READ 関数

MCM の実行シートと実行アドレスの読み出し−

MCM エラー読み出し

UNIT MCM ERROR STATUS READ 関数 MCM のエラーの読み出し−

MCM エラー解除

UNIT MCM ERROR CLR 関数−

MCM エラーのクリア

RAM アクセス設定

UNIT MCM SPEC0 SET ／ GET 関数

RAM 領域アクセスの有効／無効の切替

無効

RAM 領域書き込み

UNIT MCM RAM WRITE 関数

RAM 領域へ 1 アドレス分の書き込み

無効

RAM 領域読み出し

UNIT MCM RAM READ 関数

RAM 領域から 1 アドレス分の読み出し

無効- 158 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )1 枚のシートには複数の MCM を保存することができ、専用エディッタツールソフト SSMAP-63-01 を用いることで、シート上の任意の位置にプログラミングした MCM を配置することができます。
* SSMAP-63-01 は、 USB 通信を介して、 MCC09 搭載スレーブユニット上の MCM シート編集、
書き込み／読み出しを行うためのエディッタツール兼簡易動作アプリケーションソフトです。
SSMAP-63-01 の取り扱い方法については、 HELP ファイルにてご確認ください。
シート上に MCM を配置後、 UNIT MCM SHEET DOWNLOAD 関数を実行すると、 ROM 領域の中の 1 枚のシートのイメージが RAM 領域に転送され、 MCM が実行可能になります。
また、ユーザアプリケーションからは、 UNIT MCM SPEC0 SET 関数により、直接 RAM 領域にアクセスすることも可能です。

ROM 領域および RAM 領域上の MCM は MCC09 のコマンドから構成され、各コマンドは
16 ビットの DATA2、 16 ビットの DATA1、 8 ビットの COMMAND で構成されます。
・ DATA1･･･ MCC09 の DRIVE DATA1 PORT に書き込むデータ
・ DATA2･･･ MCC09 の DRIVE DATA2 PORT に書き込むデータ
・ COMMAND･･･ MCC09 の DRIVE COMMAND PORT に書き込むデータ
ROM 領域（シート）／ RAM 領域
0

X

Y

Z

A

MCM
MCM

MCM
MCM

MCM

MCM

MCM

※ Z 軸と A 軸は 4 軸ユニットのみ有効です。

3999

0

DATA2

DATA1

COMMAND

1

DATA2

DATA1

COMMAND

･･･

･･･

･･･

･･･

3998

DATA2

DATA1

COMMAND

3999

DATA2

DATA1

COMMAND

16bit

16bit

8bit

MCM は、 RAM 領域にメモリされたデータ・コマンドを自動実行します。
・ 1 つの軸につき、複数の MCM を同時に実行させることはできません
・異なる軸であれば、複数の MCM を同時に実行させることができます
RAM 領域
0

X

Y

Z

A

MCM
MCM

MCM
MCM

MCM

MCM
MCM

実行中のコマンド3999※ Z 軸と A 軸は 4 軸ユニットのみ有効です。
メモリされたコマンド・データは、実行タイミングの検出で順次実行します。
・汎用コマンドおよび特殊コマンドを自動実行して、任意形状ドライブのシーケンス制御ができます。
・ SPEED CHANGE コマンドを自動実行して、任意形状ドライブができます。
・パルスカウンタの COMP1 設定コマンドを自動実行して、任意時間連続検出ができます。
・パルス偏差カウンタの COMP1 設定コマンドを自動実行して、任意時間連続検出ができます。

- 159 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )4-3-4. MCM の設定
MCM SPEC を設定すると、 MCM で次のような制御が可能になります。
● MCM SPEC0 SET 関数
直接ユーザアプリケーションから MCC09 の RAM 領域に書き込み／読み出しができるように切り替えることができます。
・ UNIT MCM WRITE 関数により、指定された RAM 領域のアドレスにコマンドとデータを書き込みます。
・ UNIT MCM READ 関数により、指定された RAM 領域のアドレスからコマンドとデータを読み出します。
● MCM SPEC1 SET 関数
MCM での同期制御を行うときの設定です。
MCM の同期を行うための信号の割り当てと機能を設定することができます。
・ SS1 SEL により、外部トリガによる同期を行うための設定をします。
・ SS1 SEL 、 SS1 OUT1 ASSIGN により、内部トリガによる多軸同期を行うための設定をします。
電源投入時の初期値は、「 SS1 に割り当てない」、「 SS1 機能なし」です。
【 多軸同期または外部トリガによる同期を行うための信号と軸の機能（ X 軸の場合）】

同期信号
IN0

同期信号

IN1
汎用入力
汎用入力
停止センサ(XSS0)
停止センサ(YSS0)

切り出し

XOUT1

同期信号

YOUT1

*1 ZOUT1*1 AOUT1

多軸同期１のマスター軸からの同期信号SS1 XOUT1 ASSIGN
SS1 YOUT1 ASSIGN

*1
*1

MCC09

同期信号

合成

SS1 SEL

SS1 ZOUT1 ASSIGN

XSS1

SS1 AOUT1 ASSIGN
多軸同期２のスレーブ軸からの同期信号同期信号

スルー

多軸同期２のマスター軸からの同期信号0
機能なし*1 ZOUT1,AOUT1,SS1 ZOUT1 ASSIGN,SS1 AOUT1 ASSIGN は、 4 軸ユニットのみ指定及び選択が出来ます。

・ IN0 信号を同期信号として使用する場合、停止センサ(SS0 )として使用しないでください。
・ IN1 信号を同期信号として使用する場合、停止センサ(SS0)として使用しないでください。
UNIT MCM SPEC1 SET 関数により、 MCM SPEC1 を設定します
HARD INITIALIZE3 コマンドで GPIO3 信号を SS1 に設定します。
MCM SPEC1 で MCC09 の SS1 に信号を割り付けると、 GPIO3 の SS1 フラグを用いた、
MCM 同期の制御が可能になります。

- 160 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )● MCM SPEC2 SET
外部信号から制御を行うときの設定です。
外部信号から MCC09 の SS0 に入力する信号を設定することができます。
MCC09 の SS0 は、停止機能または外部トリガとして使用ことができます。
SIGNAL1 と SIGNAL2 には、それぞれ次の信号を割り付けることができます。
・ IN0 信号 : +24V I/F フォトカプラ入力
・ IN1 信号 : +24V I/F フォトカプラ入力
・ SIN0 信号 :TTL レベル入力
・ SIN1 信号 :TTL レベル入力
・ SIN2 信号 :TTL レベル入力
・ SIN3 信号 :TTL レベル入力
SS0 SEL により、上記 SIGNAL1 または SIGNAL2 に割り付けされた外部入力信号をSS0 信号に入力する条件を加えて接続することができます。
・ SIGNAL1 側の信号をスルー出力で SS0 に接続する
・ SIGNAL1 側の信号と SIGNAL2 側の信号を論理積(AND)を取って SS0 に接続する
・ SIGNAL1 側の信号と SIGNAL2 側の信号を論理和(OR)を取って SS0 に接続する
外部信号と SS0 信号の初期値は次のようになっています。
・ X 軸 SS0 : IN0 信号
・ Y 軸 SS0 : IN1 信号・ Z 軸 SS0 : 外部信号割り当てなし
・ A 軸 SS0 : 外部信号割り当てなし【 停止センサ機能（ X 軸の場合）】

IN0
IN1
SIN0
SIN1

SIGNAL1 SEL

SIGNAL1

SIN2
SIN3

MCC09
SS0 SEL

SIGNAL2 SEL

XSS0

SIGNAL2

UNIT MCM SPEC2 SET 関数により、 MCM SPEC2 を設定します・ SS0 を停止機能として使用する場合、 SPEC INITIALIZE2 コマンドで SS0 信号を停止機能に設定します。
・ SS0 をトリガ信号として使用する場合、 SPEC INITIALIZE2 コマンドで SS0 信号を汎用入力に設定します。
MCM SPEC2 で MCC09 の SS0 に信号を割り付けると、外部信号を GPIO2 の SS0 フラグにより、次のタイミングを取ることができます。
PAUSE 機能の STBY 解除条件
SPEED RATE CHANGE の変更動作点
INDEX CHANGE の変更動作点
各カウンタのラッチタイミング
パルス偏差カウンタのカウント信号
RAM 機能の JUMP 条件
RAM 機能のメモリーデータの NO OPERATION コマンド実行条件- 161 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )● MCM SPEC3 SET
MCC09 の内部ステータス信号 OUT0 信号 , OUT1 信号を SOUT 信号に出力する信号として設定できます。
UNIT MCM SPEC3 SET 関数により、 MCM SPEC3 を設定します【 ステータス外部出力機能（ SOUT0 信号の場合）】
XOUT0
YOUT0

*1 ZOUT0*1 AOUT0

SIGNAL1 SEL

XOUT1SIGNAL1YOUT1*1 ZOUT1*1 AOUT1
SOUT SEL

SIGNAL2 SEL

SOUT0

SIGNAL2*1 ZOUT0,AOUT0,ZOUT1,AOUT1 は、 4 軸ユニットのみ選択が出来ます。

OUT0, OUT1 信号の選択は、 HARD INITIALIZE1 コマンドで設定します。
OUT0,1 信号の出力機能
OUT0,1 の出力機能

TYPE3 TYPE2 TYPE1 TYPE0

0

0

0

0

ADRINT

カウンタ割り込み要求の ADRINT 出力

0

0

0

1

CNTINT

カウンタ割り込み要求の CNTINT 出力

0

0

1

0

DFLINT

カウンタ割り込み要求の DFLINT 出力

0

0

1

1

RDYINT

コマンド終了割り込み要求の RDYINT 出力

0

1

0

0

STBY

STATUS1 の STBY フラグ出力

0

1

0

1

DRIVE

STATUS1 の DRIVE フラグ出力

0

1

1

0

nSPEED FL

STATUS5 の SPEED FL フラグの反転出力

0

1

1

1

nINDEX FLSTATUS5 の INDEX FL フラグの反転出力

1

0

0

0

UP

STATUS1 の UP フラグ出力

1

0

0

1

DOWN

STATUS1 の DOWN フラグ出力

1

0

1

0

CONST

STATUS1 の CONST フラグ出力

1

0

1

1

EXT PULSESTATUS1 の EXT PULSE フラグ出力

1

1

0

0

nPULSE MASKSTATUS2 の PULSE MASK フラグの反転出力

1

1

0

1

ORG SIGNALSTATUS2 の ORG SIGNAL フラグ出力

1

1

1

0

汎用出力

汎用出力として使用する

1

1

1

1

設定禁止

−

OUT0 初期値 ＝ CNTINT
OUT1 初期値 ＝ RDYINT
SOUT 信号には、割り当てる軸、ステータス信号の種、および任意な２つの信号の論理和・論理積を加えて出力させることができます。
SOUT 信号の初期値は次のようになっています。
外部出力信号
SOUT0
SOUT1
SOUT2
SOUT3

軸と出力(割付信号名)
4 軸ユニット
2 軸ユニット
XOUT0 (XCNTINT)
XOUT0( XCNTINT )YOUT0 (YCNTINT)
YOUT0( YCNTINT )ZOUT0( ZCNTINT )XOUT0( XCNTINT )AOUT0 (ACNTINT)
YOUT0( YCNTINT )SIGNAL1 SEL
信号をスルー出力信号をスルー出力信号をスルー出力信号をスルー出力

MCM SPEC3 で MCC09 内部ステータス信号 SOUT 信号を割り付けると、 OUT0, OUT1 の内部ステータスのタイミングで外部機器に信号出力することができます。

- 162 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )4-3-5. MCM の自動実行
MCM を開始すると、 MCM を構成する MCC09 のデータ・コマンドは自動実行します。
・ MCC09 のコマンドは、実行タイミングの検出で順次実行します。

(1) MCM の開始以下の関数で、 MCM の実行を開始します。
・ UNIT MCM START 関数 ：開始アドレスから、 RAM 領域のコマンド自動実行の開始
MCM STATUS1 の MBUSY = 0 のときに、 MCM START 関数を実行すると、指定された開始アドレスから、
データ・コマンドを読み出して、 RAM 領域のコマンドを順次実行します。
・ UNIT MCM START 関数を実行すると、 MCM STATUS1 の MBUSY = 1 になります。
・同時に MCM STATUS1 の MRUN = 0 → 1、 MCM STATUS2 の MRBUSY = 0 → 1 になります。
・ 40 ビットのデータ・コマンドを読み出して、１命令のコマンドとして実行します。
RAM 領域のコマンドは、実行タイミングを検出すると実行します。
実行タイミングを待っている間は、 RAM 領域のコマンド読み出しを保留します。
実行タイミングを待っている間は、 MCM STATUS2 の MRSTBY = 1 になります。
・ RAM 領域の開始アドレスから読み出したコマンドを実行すると、 RAM 領域の開始アドレス＋１のアドレスのデータ・コマンドを読み出します。
・ RAM 領域から読み出したコマンドを実行すると、前回の読み出しアドレス＋１のアドレスのデータ・コマンドを読み出します。以降は、これを繰り返します。
<RAM 領域のコマンドの実行タイミング>
・汎用コマンド（ H'01 〜 H'3F）は、 COMREG FL = 0 のときに実行します。
BUSY = 1 のときは、コマンド予約機能の予約レジスタに格納します。
・ SPEED CHANGE コマンド（ H'C1, H'C8）は、 SPEED FL = 0 のときに実行します。
・ INDEX CHANGE コマンド（ H'C3, H'CC, H'CD, H'CE）は、 INDEX FL = 0 のときに実行します。
・ ADRINT COMPARE REGISTER1 SET コマンド（ H'88）は、 STATUS4 PORT の ADRINT COMP1 = 0 → 1 のアクティブエッジの検出で実行します。
・ CNTINT COMPARE REGISTER1 SET コマンド（ H'98）は、 STATUS4 PORT の CNTINT COMP1 = 0 → 1 のアクティブエッジの検出で実行します。
・ DFLINT COMPARE REGISTER1 SET コマンド（ H'A8）は、 STATUS4 PORT の DFLINT COMP1 = 0 → 1 のアクティブエッジの検出で実行します。
・ RAM READ JUMP コマンド（ H'BC）の実行タイミングは、 RAM SPEC SET コマンドの JUMP TYPE で選択します。
・その他のコマンドは、即実行します。

- 163 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )(2) MCM の終了
以下のコマンドで MCM はその実行を終了します。
・ RAM STOP コマンド ： RAM 領域のコマンド自動実行の終了
MCM に埋め込まれた RAM STOP コマンドを実行すると、 MCM はコマンド自動実行を終了します。
・コマンド自動実行を終了すると、 MCM STATUS2 の MRBUSY = 1 → 0 になります。
・ MCM が自動実行を終了した後、実行中または予約中の汎用コマンドが終了すると、 MCM は終了します。
・ MCM が終了すると、 MCM STATUS1 の MBUSY = 1 → 0 、 MRUN = 1 → 0 になります。
RAM STOP コマンドで MCM を終了させるときは、 RAM STOP コマンドの一つ手前のアドレスに
NO OPERATION コマンドを入れます。
・ NO OPERATION コマンドで設定する汎用レジスタのデータは H'FFFF にしてください。
① NO OPERATION コマンドで汎用レジスタのデータを
H'FFFF にします。
② 汎用レジスタのデータが H'FFFF のとき、MCM は終了します
NO OPERATION①
RAM STOP②MCM

MCM の処理

RAM 領域の読み出しアドレスが 3,999 になると、読み出したコマンド実行後に、コマンド読み出しを終了します。
・アドレス 3,999 が RAM STOP コマンド以外の場合、 MCM はエラー終了します※ RAM STOP コマンドは、 MCM の中で自動的に実行するコマンドです。
ユーザアプリケーションから実行することはできません。

MCM STATUS1 の MBUSY = 1 のときに、 UNIT MCM FSSTOP 関数または UNIT MCM SLSTOP 関数、
即時停止機能または減速停止機能を実行すると、 MCM はコマンド自動実行を終了します。
・コマンド自動実行を終了すると、 MCM STATUS2 の MRBUSY = 1 → 0 になります。
実行タイミングを待っているコマンドは無効にします。
・ MCM が自動実行を終了した後、実行中の汎用コマンドが終了すると、 MCM は終了します。
・ MCM が終了すると、 MCM STATUS1 の MBUSY = 1 → 0 、 MRUN = 1 → 0 になり、同時にMCM エラーが発生します。

MCM STATUS1 の MBUSY = 1 のときに、 STATUS1 PORT の ERROR = 1 を検出すると、 MCM は
コマンド自動実行を終了します。
・コマンド自動実行を終了すると、 MCM STATUS2 の MRBUSY = 1 → 0 になります。
実行タイミングを待っているコマンドは無効にします。
・ MCM が自動実行を終了した後、実行中の汎用コマンドが終了すると、 MCM は終了します。
・ MCM が終了すると、 MCM STATUS1 の MBUSY = 1 → 0 、 MRUN = 1 → 0 になり、同時にMCM エラーが発生します。

- 164 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )(3) MCM の同期
MCM の中に同期ポイントを設けることで、 MCM の実行を目的のタイミングに同期させることができます。
・同期ポイントとは、 MCM を作成する際に MCM に埋め込んでおく必要がある一連のコマンド群です。
・ MCM の実行中、同期ポイントに達するまでは通常に動作し、同期ポイントに達したときに、同期信号の出力や同期信号の待機を行います。
・同期ポイントで待機中の MCM は、目的のタイミングを検出すると、 MCM の実行を再開します。
MCM の同期には、外部トリガによる同期と、内部トリガによる同期があります。
1 つの MCM の中で、外部トリガによる同期と、内部トリガによる多軸同期の両方を使用することはできません。

■ 外部トリガによる同期
IN0 または IN1 を外部トリガとして、 MCM を同期させることができます。
外部トリガによる同期を利用すると、次の例の様な動作が可能です。
例 . IN0 のアクティブと同時にドライブを開始する

IN0
XDRIVEYDRIVEIN0=0 に同期

外部トリガによる同期を行う場合、 IN0 または IN1 がアクティブになるまで、 MCM の実行を中断します。
・ IN0 または IN1 がアクティブになると、 GPIO3( SS1) = 1 になります。
・ GPIO3( SS1) = 0 の間待機し続ける MCM は、 GPIO3( SS1) = 1 の検出で実行を再開します。
① RAM SPEC SET コマンドで次の設定にします。
・ JUMP TYPE =「 STATUS3 PORT の GPIO3 = 1 のときに実行する」

RAM SPEC SET・ JUMP ENABLE =「常時有効にする」①
RAM READ JUMP②

GPIO3
(SS1 )=1② RAM READ JUMP コマンドで、移動アドレスには次のアドレスを設定します。

GPIO3(SS1) =0

MCM の処理同期ポイント

通常の処理

同期ポイント

通常の処理

GPIO3( SS1)

● 同期信号
GPIO3 に出力する同期信号として、 IN0 または IN1 の選択ができます。
● MCM 開始前の設定
外部トリガによる同期を用いた MCM の開始前には、ユーザアプリケーションで次の設定をし、MCM の終了後に元に戻します。
・ UNIT MCM SPEC1 SET 関数で次の設定をする
SS1 SEL を「ユニット外部からの同期信号」にする
・ HARD INITIALIZE3 コマンドの GPIO3 TYPE を「 SS1」に設定する※ 外部トリガによる同期を用いた MCM の中では、次の機能に SS1 または GPIO3 を使用しないでください。
・ ORIGIN SPEC SET コマンドの ORG SIGNAL TYPE ( SS1)
・ RAM SPEC SET コマンドの NOP TYPE ( GPIO3)- 165 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )■ 内部トリガによる同期
MCC09 の内部信号をトリガとして、 MCM を同期させることができます。
内部トリガによる同期には、次の３つのタイプがあります。
・１軸同期
・多軸同期１・多軸同期２
1 つの MCM の中で、１軸同期と多軸同期１の両方または１軸同期と多軸同期２の両方を使用することができます。
1 つの MCM の中で、多軸同期１と多軸同期２の両方を使用することはできません。
● １軸同期
自軸が特定の状態になるまで、自軸の MCM の実行を中断します。
１軸同期を利用すると、次の例の様な動作が可能です。
例 . ドライブを連続で 3 回行い、 2 回目の区間のみ SOUT0 をアクティブレベルにする

XDRIVESOUT0

XDRIVE=0 に同期

XDRIVE=0 に同期

MCM の各コマンドは、実行タイミングの検出により実行されます。（ MCM のコマンド自動実行機能）
このような実行タイミングの検出を待つ動作も、自軸が特定の状態になるまで自軸の MCM の実行を中断しますが、ここでは実行タイミングの検出を待つ動作自体を１軸同期とは定義していません。

● 多軸同期
ユニット内の複数軸を使用した多軸同期ができます。
多軸同期を行う場合、多軸同期を行うための信号の割り当てと機能を MCM SPEC1 SET 関数で定義します。
【 多軸同期１】
マスター軸が特定の状態になるまで、スレーブ軸の MCM の実行を中断します。
・同期させる軸がマスター軸、同期する軸がスレーブ軸です。
・多軸同期１は、ユニット内の 1 つのマスター軸と、 1 〜 4 軸のスレーブ軸で構成します。
このとき、マスター軸がスレーブ軸を兼ねることも可能です。
多軸同期１を利用すると、次の例の様な動作が可能です。
例 . X 軸のパルスカウンタが所定のカウント値に達する度に Y 軸でドライブを起動する（ マスター軸）XDRIVEXCNTINT（スレーブ軸）YDRIVEXCNTINT=1 に同期

XCNTINT=1 に同期- 166 -XCNTINT=1 に同期

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )【 多軸同期２】
マスター軸および全てのスレーブ軸が特定の状態になるまで、マスター軸・スレーブ軸の MCM を中断します。
・マスター軸とスレーブ軸が相互に同期させる軸と同期する軸になります。
・多軸同期２は、ユニット内の 1 つのマスター軸と、それ以外の 1 〜 3 軸のスレーブ軸で構成します。
多軸同期２を利用すると、次の例の様な動作が可能です。
例 . 全軸がドライブを終了してから、一斉に次のドライブを開始する（マスター軸）XDRIVE（スレーブ軸）YDRIVEZDRIVE

全軸の DRIVE=0 に同期

全軸の DRIVE=0 に同期- 167 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )【１軸同期の設定例】
自軸が特定の状態になるまで、自軸の MCM の実行を中断します。
・同期信号を OUT2 に割り当てます。
・ OUT2 = 0 の間待機し続ける MCM は、 OUT2 = 1 の検出で実行を再開し、 OUT2 = 0 にクリアします。
① RAM SPEC SET コマンドで次の設定にします。
・ JUMP TYPE = 「 STATUS3 PORT の OUT2 = 1 のときに実行する」

RAM SPEC SET・ JUMP ENABLE =「常時有効にする」①② RAM READ JUMP コマンドで、移動アドレスには次のアドレスを

RAM READ JUMP②
OUT2=0

OUT2 をクリア③

OUT2=1

設定します。
③ OUT2 をクリアします。
・ NO OPERATION コマンドを実行するとクリアされます
同期ポイント

MCM の処理

通常の処理

同期ポイント

通常の処理

OUT2

● 同期信号
OUT2 に出力する同期信号として、次の信号を選択します。
・ RDYINT ：コマンド終了割り込み要求の RDYINT 出力次の同期信号で１軸同期を行う必要がある場合、その 1 軸をマスター軸兼スレーブ軸として、
多軸同期１を使用して下さい。
・ DRIVE ： STATUS1 の DRIVE フラグ出力
・ UP： STATUS1 の UP フラグ出力
・ DOWN ： STATUS1 の DOWN フラグ出力・ CONST ： STATUS1 の CONST フラグ出力● MCM 開始前と終了後の設定
１軸同期を用いた MCM の開始前には、ユーザアプリケーションで次の設定をし、MCM の終了後に元に戻します。
・ HARD INITIALIZE1 コマンドの OUT2 TYPE で OUT2 の出力機能を設定します。

※ １軸同期を用いた MCM の中では、次の機能に OUT2 を使用しないでください。
・ SPEC INITIALIZE3 コマンドの STBY TYPE・ SPEED CHANGE SPEC SET コマンドの SPEED CHANGE TYPE
・ INDEX CHANGE SPEC SET コマンドの INDEX CHANGE TYPE・ DFL COUNTER INITIALIZE1 コマンドの COUNT START TYPE・ COUNT LATCH SPEC SET コマンドの各カウンタの LATCH TYPE・ RAM SPEC SET コマンドの NOP TYPE

- 168 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )【多軸同期１の設定例】
マスター軸が特定の状態になるまで、スレーブ軸の MCM の実行を中断します。
・マスター軸の OUT1 がアクティブになると、全てのスレーブ軸の GPIO3 (SS1) = 0 → 1 → 0 になります。
・ GPIO3( SS1) = 0 の間、待機し続ける全てのスレーブ軸の MCM は、 GPIO3 (SS1 ) = 0 → 1 → 0 の検出で実行を再開します。

マスター軸

OUT1

SS1

切り出し

SS1

SS1

スレーブ軸

スレーブ軸

スレーブ軸

マスター軸
同期信号を汎用出力にすると、 MCM の処理と同期して同期信号がアクティブになります。
（同期信号を汎用出力以外にすると、 MCM の処理とは非同期に同期信号がアクティブになります。）① SIGNAL OUT コマンドで OUT1 = 1 にします
② SIGNAL OUT コマンドで OUT1 = 0 にします

SIGNAL OUT①
SIGNAL OUT②

同期ポイントスレーブ軸① RAM SPEC SET コマンドで次の設定にします。
・ JUMP TYPE = 「 STATUS3 PORT の GPIO3 = 1 のときに実行する」

RAM SPEC SET・ JUMP ENABLE =「常時有効にする」①
RAM READ JUMP②
GPIO3(SS1) =0② RAM READ JUMP コマンドで、移動アドレスには次のアドレスを
GPIO3(SS1 )=1

RAM SPEC SET・ JUMP TYPE = 「 STATUS3 PORT の GPIO3 = 0 のときに実行する」③
GPIO3(SS1 )=0

RAM READ JUMP④
GPIO3(SS1) =1

設定します
③ RAM SPEC SET コマンドで次の設定にします。
・ JUMP ENABLE =「常時有効にする」④ RAM READ JUMP コマンドで、移動アドレスには次のアドレスを設定します
同期ポイント（マスター軸）OUT1（スレーブ軸）MCM の処理

通常の処理

同期ポイントGPIO3( SS1)

通常の処理
150ns 〜 250ns- 169 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )● 同期信号
マスター軸は、 OUT1 に出力する同期信号として、次のいずれかの選択ができます。
・ CNTINT ：カウンタ割り込み要求の CNTINT 出力
・ RDYINT ：コマンド終了割り込み要求の RDYINT 出力
・ DRIVE ： STATUS1 の DRIVE フラグ出力
・ UP： STATUS1 の UP フラグ出力
・ DOWN ： STATUS1 の DOWN フラグ出力・ CONST ： STATUS1 の CONST フラグ出力
・汎用出力：汎用出力として使用する● MCM 開始前と終了後の設定
多軸同期１を用いた MCM の開始前には、ユーザアプリケーションで次の設定をし、MCM の終了後に元に戻します。
軸
マスター軸

設定
UNIT MCM SPEC1 SET 関数で次の設定をする
・ SS1 SEL を「機能なし」にする
HARD INITIALIZE1 コマンドの OUT1 TYPE で OUT1 の出力機能を設定する

スレーブ軸

UNIT MCM SPEC1 SET 関数で次の設定をする
・ SS1 OUT1 ASSIGN で自軸の SS1 にマスター軸の OUT1 を割り当てる
・ SS1 SEL を「多軸同期１のマスター軸からの同期信号」にする
HARD INITIALIZE3 コマンドの GPIO3 TYPE を「 SS1」に設定する

マスター軸
兼
スレーブ軸

UNIT MCM SPEC1 SET 関数で次の設定をする
・ SS1 OUT1 ASSIGN で自軸の SS1 に自軸の OUT1 を割り当てる
・ SS1 SEL を「多軸同期１のマスター軸からの同期信号」にする
HARD INITIALIZE1 コマンドの OUT1 TYPE で OUT1 の出力機能を設定する
HARD INITIALIZE3 コマンドの GPIO3 TYPE を「 SS1」に設定する

多軸同期１を実行する場合、マスター軸が同期信号をアクティブにする前に、全てのスレーブ軸が同期ポイントに達する必要があります。
スレーブ軸が同期ポイントに達する前にマスター軸が同期信号をアクティブにすると、スレーブ軸は同期信号を検出できません。
※ 多軸同期１を用いた MCM の中では、次の機能に SS1 または GPIO3 を使用しないでください。
・ ORIGIN SPEC SET コマンドの ORG SIGNAL TYPE( SS1)
・ RAM SPEC SET コマンドの NOP TYPE( GPIO3)- 170 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )【多軸同期２の設定例】
マスター軸が特定の状態になるまでスレーブ軸の MCM の実行を中断し、全てのスレーブ軸が特定の状態になるまでマスター軸の MCM の実行を中断します。
・マスター軸の OUT1 = 1 になると、全てのスレーブ軸の GPIO3( SS1) = 1 に、全てのスレーブ軸の OUT1 = 1 になると、マスター軸の GPIO3( SS1) = 1 になります・マスター軸・スレーブ軸ともに、 GPIO3( SS1) = 0 の間、待機し続ける MCM は、
GPIO3( SS1) = 1 の検出で OUT1 = 0 にします・マスター軸の OUT1 = 0 になると、全てのスレーブ軸の SS1(GPIO3) = 1 に、全てのスレーブ軸の OUT1 = 0 になると、マスター軸の SS1(GPIO3) = 0 になります。
・マスター軸・スレーブ軸ともに、 GPIO3 = 1 の間待機し続ける MCM は、
GPIO3( SS1) = 0 の検出で実行を再開します。

SS1 マスター

OUT1

スルー

軸

スルー

SS1

スレーブ

OUT1

軸

SS1

スレーブ

OUT1

軸
合成

スルー

SS1

スレーブ

OUT1

軸

マスター軸
① SIGNAL OUT コマンドで OUT1 = 1 にします。
② RAM SPEC SET コマンドで次の設定にします。

SIGNAL OUT

・ JUMP TYPE = 「 STATUS3 PORT の GPIO3 = 1 のときに実行する」①

・ JUMP ENABLE =「常時有効にする」

RAM SPEC SET③ RAM READ JUMP コマンドで、移動アドレスには次のアドレスを②
RAM READ JUMP③
GPIO3(SS1) =0

設定します
GPIO3
(SS1 )=1⑤ RAM SPEC SET コマンドで次の設定にします。

SIGNAL OUT

・ JUMP TYPE = 「 STATUS3 PORT の GPIO3 = 0 のときに実行する」④

・ JUMP ENABLE =「常時有効にする」

RAM SPEC SET⑥ RAM READ JUMP コマンドで、移動アドレスには次のアドレスを⑤
RAM READ JUMP⑥

④ SIGNAL OUT コマンドで OUT1 = 0 にします。

GPIO3(SS1 )=0

GPIO3(SS1) =1

同期ポイントスレーブ軸① RAM SPEC SET コマンドで次の設定にします。
・ JUMP TYPE = 「 STATUS3 PORT の GPIO3 = 1 のときに実行する」

RAM SPEC SET・ JUMP ENABLE =「常時有効にする」①
RAM READ JUMP②
GPIO3(SS0) =0② RAM READ JUMP コマンドで、移動アドレスには次のアドレスを
GPIO3(SS0 )=1

SIGNAL OUT④ RAM SPEC SET コマンドで次の設定にします。

③

・ JUMP TYPE = 「 STATUS3 PORT の GPIO3 = 0 のときに実行する」

RAM SPEC SET・ JUMP ENABLE =「常時有効にする」④
RAM READ JUMP⑤
GPIO3(SS0) =1

設定します
③ SIGNAL OUT コマンドで OUT1 = 1 にします。

⑤ RAM READ JUMP コマンドで、移動アドレスには次のアドレスを
GPIO3(SS0 )=0⑥ SIGNAL OUT コマンドで OUT1 = 0 にします。

SIGNAL OUT⑥
同期ポイント- 171 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )（マスター軸）MCM の処理

通常の処理

同期ポイント

通常の処理

OUT1
GPIO3( SS1)
（スレーブ軸）MCM の処理

通常の処理

同期ポイント

通常の処理

OUT1
GPIO3( SS1)

● 同期信号
マスター軸・スレーブ軸とも、 OUT1 に出力する同期信号として、汎用出力信号を選択します。
● MCM 開始前と終了後の設定
多軸同期２を用いた MCM の開始前には、ユーザアプリケーションで次の設定をし、MCM の終了後に元に戻します。
軸
マスター軸

設定
・ UNIT MCM SPEC1 SET 関数で次の設定をする
・ SS1 OUT ASSIGN で、自軸の SS1 に全てのスレーブ軸の OUT1 を割り当てる
・ SS1 SEL で「多軸同期２のスレーブ軸からの同期信号」を選択
・ HARD INITIALIZE1 コマンドの OUT1 TYPE で OUT1 の出力機能を「汎用出力」にする
・ HARD INITIALIZE3 コマンドの GPIO3 TYPE を「 SS1」に設定する

スレーブ軸

・ UNIT MCM SPEC1 SET 関数で次の設定をする
・ SS1 OUT ASSIGN で、自軸の SS1 にマスター軸の OUT1 を割り当てる
・ SS1 SEL で「多軸同期２のマスター軸からの同期信号」を選択
・ HARD INITIALIZE1 コマンドの OUT1 TYPE で OUT1 の出力機能を「汎用出力」にする
・ HARD INITIALIZE3 コマンドの GPIO3 TYPE を「 SS1」に設定する※ 多軸同期２を用いた MCM の中では、次の機能に SS1 または GPIO3 を使用しないでください。
・ ORIGIN SPEC SET コマンドの ORG SIGNAL TYPE( SS1)
・ RAM SPEC SET コマンドの NOP TYPE( GPIO3)- 172 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )(4) MCM の分岐
以下のコマンドで、 MCM は任意のアドレスに分岐します。
・ RAM READ JUMP コマンド ：分岐先のアドレスから、コマンド自動実行の開始
RAM 領域の RAM READ JUMP コマンドは、実行タイミングの検出で実行します。
実行タイミングは、 RAM SPEC SET コマンドの JUMP TYPE で選択します。
更に、 RAM READ JUMP コマンドは、有効条件が一致しているときに実行します。
不一致のときには、 RAM READ JUMP コマンドを無効にして、次のコマンドを読み出します。

実行タイミングを検出すると、有効条件の一致状態による処理が行われます②有効条件が一致している場合、移動アドレスに分岐します③有効条件が不一致の場合、分岐せずに①①実行タイミングを検出する

次のコマンドを実行します

RAM READ JUMP
分岐しないときに実行までは、待機します

分岐したときに実行③②※ RAM SPEC SET コマンド、 RAM READ JUMP コマンドは、 MCM の中で自動実行するコマンドです。
ユーザアプリケーションから実行することはできません。

- 173 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )(5) MCM を組む上での注意● MCC09 コマンド
MCM は、リアルタイムなモーションと I/O 制御を提供できるように考慮されたものです。
USB シリーズコントローラで仕様公開されている MCC09 コマンドは、 MCM のプログラムを組む上で特に制限を設けていません。
しかし、確実なリアルタイム性あるモーション制御を行わせるためには、ユーザシステム上の基本的なパラメータはユーザアプリケーションから予め設定した後に、下記のような MCM による制御を行うことを推奨します。
・ドライブ機能の設定と実行を行うコマンド・パルスカウンタのコンパレータの設定
・汎用出力信号の操作
MCM 内で推奨しない MCC09 コマンド例
コマンド

コマンド名

備考

コード
H'01

SPEC INITIALIZE1

ドライブパルスの出力仕様の設定

H'02

SPEC INITIALIZE2CWLM, CCWLM, RDYINT, SS0, SS1 の設定

H'80

ADDRESS COUNTER PRESET

アドレスカウンタの現在位置の設定

H'81

ADDRESS COUNTER INITIALIZE1

アドレスカウンタの各機能の設定

H'82

ADDRESS COUNTER INITIALIZE2

アドレスカウンタの各機能の設定

H'87

ADDRESS COUNTER MAX COUNT SET

アドレスカウンタの最大カウント数の設定

H'88

ADRINT COMPARE REGISTER1 SETADRINT のコンペアレジスタ１の設定

H'89

ADRINT COMPARE REGISTER2 SETADRINT のコンペアレジスタ２の設定

H'8A

ADRINT COMPARE REGISTER3 SETADRINT のコンペアレジスタ３の設定

H'8C

ADRINT COMP1 ADD DATA SETADRINT の COMP1 ADD データの設定

H'90

PULSE COUNTER PRESET

パルスカウンタのカウント初期値の設定

H'91

PULSE COUNTER INITIALIZE1

パルスカウンタの各機能の設定

H'92

PULSE COUNTER INITIALIZE2

パルスカウンタの各機能の設定

H'97

PULSE COUNTER MAX COUNT SET

パルスカウンタの最大カウント数の設定

H'9C

CNTINT COMP1 ADD DATA SET

CNTINT の COMP1 ADD データの設定

H'A0

DFL COUNTER PRESET

パルス偏差カウンタのカウント初期値の設定

H'A1

DFL COUNTER INITIALIZE1

パルス偏差カウンタの各機能の設定

H'A2

DFL COUNTER INITIALIZE2

パルス偏差カウンタの各機能の設定

H'A3

DFL COUNTER INITIALIZE3

パルス偏差カウンタの各機能の設定

H'A8

DFLINT COMPARE REGISTER1 SETDFLINT のコンペアレジスタ１の設定
DFLINT のコンペアレジスタ２の設定

H'A9

DFLINT COMPARE REGISTER2 SET

H'AA

DFLINT COMPARE REGISTER3 SETDFLINT のコンペアレジスタ３の設定

H'AC

DFLINT COMP1 ADD DATA SETDFLINT の COMP1 ADD データの設定

H'C1

SPEED CHANGE SPEC SETSPEED CHANGE の変更動作点の設定

H'C3

INDEX CHANGE SPEC SETINDEX CHANGE の変更動作点の設定

H'D1

ERROR STATUS READERROR STATUS の読み出し

H'D4

MCC SPEED READ

ドライブパルス速度の読み出し

H'D5

SET DATA READ

MCC09 設定データの読み出し

H'D6

RSPD DATA READ

RSPD データの読み出し

H'D8

ADDRESS COUNTER READ

アドレスカウンタの読み出し

H'D9

PULSE COUNTER READ

パルスカウンタの読み出し

H'DA

DFL COUNTER READ

パルス偏差カウンタの読み出し

H'DC

ADDRESS LATCH DATA READ

アドレスカウンタのラッチデータの読み出し

H'DD

PULSE LATCH DATA READ

パルスカウンタのラッチデータの読み出し

H'DE

DFL LATCH DATA READ

パルス偏差カウンタのラッチデータの読み出し

H'E5

ERROR STATUS MASKERROR に出力する ERROR STATUS のマスク

H'E8

COUNT LATCH SPEC SET

カウントデータのラッチタイミングの設定

H'F1

HARD INITIALIZE1

OUT 0,1 出力機能、 OUT2,3 ステータスの設定

H'F7

HARD INITIALIZE7

入力信号のアクティブ論理の選択

H'F8

HARD INITIALIZE8

出力信号のアクティブ論理の選択- 174 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )● パルスカウンタ COMP1 設定コマンドの自動実行
パルスカウンタの COMP1 設定コマンドの自動実行を利用して MCM を構築する場合、最初の検出値については、ユーザアプリケーションで設定してください。

ユーザアプリケーション

CNTINT COMPARE REGISTER1SET コマンドの実行①

UNIT MCM START 関数

MCM

の実行

CNTINT COMPARE②

REGISTER1 SET
CNTINT COMPARE③

REGISTER1 SET
CNTINT COMPARE④

REGISTER1 SET

MCM 実行前に設定

COMPARE REGISTER1①の設定値

MCM の中で設定

②の設定値

MBUSY
CNTINT- 175 -

③の設定値

④の設定値

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )4-3-6. 状態の表示●各種 MCM 情報
UNIT MCM STATUS READ 関数を実行すると、ユニットの状態を読み出すことができます。
ユニットの状態
MCM STATUS1
MCM STATUS2
パルスカウンタのカウントデータ
汎用レジスタのデータ
I/O PORT説明
MCM に関連するユニットの現在の状態
MCM に関連するユニットの現在の状態
パルスカウンタのカウントデータ
NO OPERATION コマンドで設定された汎用レジスタのデータ
汎用 I/O PORT、制御 I/O PORT、拡張 I/O PORT の入力状態● MCM ERROR 情報
UNIT MCM ERROR STATUS READ 関数を実行すると、ユニット上で発生した動作エラーのエラー情報を読み出すことができます。
動作エラーの分類
MCM 関数のエラー
MCC のエラー
ORIGIN ドライブのエラー

エラー情報
MCM 関数のエラーのエラーコード
・ ERROR STATUS READ コマンドの ERROR STATUS
・ ERROR STATUS MASK コマンドの ERROR STATUS のマスクデータ
ORIGIN STATUS のエラー情報- 176 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )4-4. I/O 仕様
4-4-1. その他の I/O PORT
(1) SIGNAL I/O1 信号
UC-7660、 UCD-7620/A5F31DE 、 UCD-7621/A5F41DE、 UCD-7630/A5F31Q は、各軸の任意ステータス信号を、
SIGNAL I/O1 コネクタの SOUT 信号から、外部出力することができます。
SOUT0、 SOUT1、 SOUT2 、 SOUT3 信号は接続する信号によって、オープンコレクタまたはラインドライバ出力が選択できます。初期値は下記の割付になっています。
外部出力信号
SOUT0 信号SOUT1 信号SOUT2 信号SOUT3 信号軸と出力(割付信号名)
4 軸ユニット
2 軸ユニット
XOUT0( XCNTINT)
XOUT0( XCNTINT )YOUT0( YCNTINT)
YOUT0( YCNTINT )ZOUT0( ZCNTINT)
XOUT0( XCNTINT)
AOUT0( ACNTINT)
YOUT0( YCNTINT )SOUT 信号の状態は、各軸の DRIVE STATUS3 PORT から読み出すことができます。
SOUT 信号の軸割り当てや、出力できる信号の詳細については、 4-3-4.章 MCM の設定をご覧ください。 UNIT MCM SPEC3 SET 関数により設定します- 177 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )(2) SIGNAL I/O2 信号
UC-7660 は SIGNAL I/O2 コネクタに、 0V 〜 +5V までのアナログ電圧を入力することができます。
ジョイスティックレバーの倒角度をアナログ電圧入力し、読み出したデジタル変換値によって、UC-7660 の出力パルス速度を変化させるジョイスティック運転アプリケーションが可能です。
+5V

 +4.5V

REG

-

YCCW



10 ビットデータ



+



 


AD 変換




AD0,AD1 など

XCW
YCW


UC-766

XCCW

ジョイスティック

AGND●変換データ
入力電圧値 ＝ 変換データ×入力レンジ÷分解能〜

AD変換データ(10ビット)
1023(H'3FF)
1022(H'3FE)〜

入力電圧4.995V
4.990V
0.00488V
0V

1
0

例)

読み出されたAD変換データがH'1FFのとき
入力電圧 ＝ H'1FF×5V÷1024＝ 511×5V÷1024＝ 2.441V(H'001)(H'000)●制御例
UC-7660 でサポートしている +4.5V 電源を使用した例を示します。
これらジョイスティックアプリケーションは、 ADx の入力電圧を A/D DATA 読み出し関数または A/D DATA
A/D データ構造体読み出し関数で読み出し、その電圧情報に基づいて各軸をコマンド制御します。
・レバーの方向判別(方向は任意)… 4.5V/2 のセンター値 2.25V に対して、
アナログ電圧が高いとき :CW 方向の SCAN DRIVE を起動します。
アナログ電圧が低いとき :CCW 方向の SCAN DRIVE を起動します。

・倒角と速度の制御(速度データは任意)…読み出したアナログ電圧が 2.25V に対して、
アナログ電圧が高くなる、または低くなるに連れ速度を速く制御します。
2.25V 〜 4.5V の範囲(または 2.25V 〜 0V の範囲)をある任意な電圧区間毎にSPEED CHANGE 指令で速度を変更します。

・停止処理…レバーがニュートラルのポジションになったとき、 STOP COMMAND でドライブを(即時 /減速停止は任意)停止させます。
・ティーチング…停止したときのカウンタの値を読み出します。
(ティーチングは任意)
その読み出した値を指定したパソコン内のメモリーに保存します。

* ジョイスティックを操作するサンプルプログラムについては、別途お問い合わせください。

- 178 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )５．付録
5-1.初期仕様一覧(1) 応用設定項目■ 入力信号のデジタルフィルタ機能

初期仕様

対応関数 /コマンド−■ 入出力信号のアクティブ論理
FSSTOP 信号

正論理入力

CWLM 信号

正論理入力

CCWLM 信号

正論理入力

DALM 信号

正論理入力

ORG 信号負論理入力

NORG 信号

負論理入力

PAUSE 信号1 でアクティブ

CWP 信号

負論理出力

CCWP 信号

負論理出力

HARD INITIALIZE7 コマンド

HARD INITIALIZE8 コマンド■ アドレスカウンタ
最大カウント数

H'FFFF_FFFF

ADDRESS COUNTER MAX COUNT SET コマンド

H'FFFF_FFFF

PULSE COUNTER MAX COUNT SET コマンド■ パルスカウンタ
最大カウント数■ カウンタのラッチ・クリア機能
アドレスカウンタラッチタイミング

ADDRESS LATCH DATA READ コマンドの実行

ADDRESS CLR ENABLE

クリアしないパルスカウンタラッチタイミング

PULSE LATCH DATA READ コマンドの実行

PULSE CLR ENALBE

クリアしないパルス偏差カウンタラッチタイミング

DFL LATCH DATA READ コマンドの実行

DFL CLR ENABLE

クリアしないCOUNT LATCH SPEC SET コマンド

■ RAM アクセス機能
直接 RAM アクセス機能

無効

MCM SPEC0 SET 関数

各軸 SS0 入力機能

汎用入力

SPEC INITIALIZE2 コマンドX 軸 SS1 接続信号

割り当てなし(LOW 固定)■ 多用途センサ機能

Y 軸 SS1 接続信号

割り当てなし(LOW 固定)

Z 軸 SS1 接続信号

割り当てなし(LOW 固定)

A 軸 SS1 接続信号

割り当てなし(LOW 固定)

X 軸 SS0 接続信号

/IN0 信号のスルー

Y 軸 SS0 接続信号

/IN1 信号のスルー

Z 軸 SS0 接続信号

割り当てなし(LOW 固定)

A 軸 SS0 接続信号

割り当てなし(LOW 固定)

MCM SPEC1 SET 関数

MCM SPEC2 SET 関数■ ステータス外部出力機能
各軸 OUT0 出力ステータス

CNTINT

各軸 OUT1 出力ステータス

RDYINT

各軸 OUT2 ステータス

汎用出力

各軸 OUT3 ステータス

汎用出力

各軸 GPIO2 ステータス

汎用入力

HARD INITIALIZE2 コマンド

各軸 GPIO3 ステータス

汎用入力

HARD INITIALIZE3 コマンド

SOUT0 出力信号

X 軸 OUT0 のスルー

SOUT1 出力信号

Y 軸 OUT0 のスルー

SOUT2 出力信号

Z 軸 OUT0 のスルー

SOUT3 出力信号

A 軸 OUT0 のスルー

HARD INITIALIZE1 コマンド

MCM SPEC3 SET 関数■ 同期スタート機能
各軸 STBY 解除条件

PAUSE=0 で解除

SPEC INITIALIZE3 コマンド

各軸 SS1(同期)機能

機能なし

MCM SPEC1 SET 関数- 179 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )(2) 応用ドライブパラメータ項目■ 第 1 パルス出力周期

初期仕様(FSPD)

対応関数 /コマンド
FSPD SET コマンド

5,000Hz■ 加減速パラメータ
速度倍率(RESOL)

1 (No.3)

最高速時の速度データ(HSPD )

3,000

加速開始時の速度データ(LSPD)

300

減速終了時の速度データ(ELSPD)300

加速カーブ変速周期データ(UCYCLE)200

減速カーブ変速周期データ(DCYCLE)200

加速カーブ S 字変速領域データ(SUAREA)

0(変速領域なし)

減速カーブ S 字変速領域データ(SDAREA)

0(変速領域なし)

加速カーブ S 字変速領域データ(SUH)

0(変速領域なし)

減速カーブ S 字変速領域データ(SDH)

0(変速領域なし)

減速パルス数のオフセットパルス数

HIGH SPEED SET コマンド
LOW SPEED SET コマンド
RATE SET コマンド
SCAREA SET コマンド
SHAREA SET コマンド

1 パルス

DOWN PULSE ADJUST コマンド

■ ORIGIN ドライブパラメータ
ORG 検出信号

ORG 信号と± ZORG 信号の OR(論理和)

ORG 検出信号の検出エッジ

ORG 検出信号の 0 → 1(アクティブ)エッジ

ORG STOP 型式

常時検出 /エッジ検出で停止しない

停止時 DRST 出力

出力しない

検出エッジのカウント数

1 カウント目のエッジ検出で停止

ORIGIN SPEC SET コマンド

■ 補間ドライブパラメータ
CPPOUT 端子から出力するパルス

パルス出力なし

CP SPEC SET コマンド

直線補間 長軸の目的地の座標アドレス

H'0000_0000

LONG POSITION SET コマンド

直線補間 短軸の目的地の座標アドレス

H'0000_0000

SHORT POSITION SET コマンド

円弧補間 現在位置の X 座標アドレス

H'00_0000

CIRCULAR XPOSITION SET コマンド

円弧補間 現在位置の Y 座標アドレス

H'00_0000

CIRCULAR YPOSITION SET コマンド

円弧補間 目的地までの短軸パルス数

H'0000_0000

CIRCULAR PULSE SET コマンド■ ドライブ CHANGE パラメータSPEED RATE CHANGE 変更動作点

STATUS1 PORT の DRIVE = 1 で実行SPEED CHANGE SPEC SET コマンド

INDEX CHANGE 変更動作点

STATUS1 PORT の DRIVE = 1 で実行

INDEX CHANGE SPEC SET コマンド- 180 -

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )5-2. 関数一覧

ユ ニ ッ ト ア ク セ ス

ユ ニ ッ トシ ス テ ム基 本 構 造 体

種 名称
記号
別
説明
RESULT構造体
MC07̲S̲RESULT
関数を実行した結果を格納する
コマンドデータ構造体
MC07̲S̲COMMAND̲DATA
DRIVE COMMAND PORT､DRIVE DATA1 PORT｡DRIVE DATA2 PORTに書き込むデータを格納する
ステータスデータ構造体
MC07̲S̲STATUS̲DATA
DRIVE STATUS1 PORT、DRIVE DATA1 PORT、DRIVE DATA2 PORTから読み出した内容を格納するユニット情報構造体MC07̲S̲UNIT̲INFO
パソコンに接続される全ユニットのタイプを格納する
環境設定関数MC07̲Environment
パソコンに接続されている全ユニットを対象に環境設定を行う
ユニット情報読み出し関数
MC07̲ReadUnitInfo
環境設定されている全ユニットのタイプを読み出す
ユニットオープン関数
MC07̲UOpen
指定ユニット番号でユニットオープンし､引数 phUnitの変数にユニットハンドルを格納するユニットクローズ関数
MC07̲UClose
指定されたユニットをクローズする
ユニット動作エラークリア関数
MC07̲UClrError
指定ユニットに対し、指定された軸の動作エラークリア処理を一括で行う
拡張ユニット通信設定関数
MC07̲UWExUnitCommMode指定されたユニットと拡張ユニット間の通信設定を行う
拡張ユニット通信制御関数
MC07̲UWExUnitCommControl
指定されたユニットと拡張ユニット間の通信を制御する
拡張ユニット通信ステータス読み出し関数
MC07̲URExUnitCommStatus
指定されたユニットと拡張ユニット間の通信の状態を読み出す
拡張ユニット通信設定読み出し関数
MC07̲URExUnitCommMode指定されたユニットと拡張ユニット間の通信設定を読み出す
ユニットステータス構造体
MC07̲S̲UNIT̲STATUS
ユニットのステータスの内容を格納するユニットコマンド構造体
MC07̲S̲UNIT̲COMMAND
ユニットのコマンドを格納する
入力PORT構造体
MC07̲S̲IN̲PORT
ユニットの入力PORTから読み出された内容を格納する
出力PORT構造体
MC07̲S̲OUT̲PORT
ユニットの出力PORTに書き込むデータ,OR書き込みデータ,AND書き込みデータを格納するユニットDRIVE COMMAND･I/O書き込み関数
MC07̲UWDriveIo指定されたユニットに対し､各軸のDATA,COMMAND,各I/O PORTデータの書き込みを一括で行うユニットDRIVE COMMAND書き込み/読み出し関数
MC07̲UWRDrive
指定されたユニットに対し､各軸のDATA,COMMANDを書き込み､読み出しする順の処理を一括で行うユニットSTATUS1･I/O読み出し関数
MC07̲URStatus1Io指定されたユニットに対し、各軸のSTATUS1 PORT､I/O PORTの読み出しを一括で行うユニットSTATUS1･パルスカウンタ･I/O読み出し関数
MC07̲URStatus1PcntIo指定されたユニットに対し､各軸のSTATUS1 PORT､パルスカウンタ値､I/O PORTの読み出しを一括で行う
ユニットI/O PORT書き込み関数
MC07̲UPortOUT
指定されたユニットに対し、各I/O PORT毎の個別データを書き込む
ユニットI/O PORT OR書き込み関数
MC07̲UPortOrOUT指定されたユニットに対し、各I/O PORT毎の個別データをOR書き込む
ユニットI/O PORT AND書き込み関数
MC07̲UPortAndOUT
指定されたユニットに対し、各I/O PORT毎の個別データをAND書き込む
ユニットI/O PORT読み出し関数
MC07̲UPortIn指定されたユニットに対し、各I/O PORTの内容を一括で読み出す
A/D DATA構造体
MC07̲S̲AD̲DATA
全てのアナログ入力信号をA/D変換したデータを格納する
A/D DATA読み出し関数
MC07̲BRADData指定されたアナログ入力信号をA/D変換し、データを読み出す
A/D DATA A/Dデータ構造体読み出し関数
MC07̲IRADData
全てのアナログ入力信号をA/D変換し、データを読み出す- 181 -

ページ
標準編
30

応用編

32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
52
54
55
56
57
10
11
12

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )デ バ イ ス

種 名称
記号
別
説明
デバイスオープン関数
MC07̲BOpen
指定ユニット番号､軸でデバイスオープンし､引数 phDevの変数にデバイスハンドルを格納する
デバイスクローズ関数
MC07̲BClose
指定されたデバイスをクローズする
動作エラークリア関数
MC07̲ClrError
指定されたデバイスの動作エラーをクリアする
DRIVE COMMAND 32ビット書き込み関数
MC07̲LWDrive
指定デバイスのDRIVE DATA1 PORT､DRIVE DATA2 PORTにデータを書き込んだ後コマンドを書きむ
DRIVE COMMAND PORT書き込み関数
MC07̲BWDriveCommand
指定デバイスのDRIVE COMMAND PORTにコマンドコードを書き込む
DRIVE STATUS1 PORT読み出し関数
MC07̲BRStatus1
指定デバイスのDRIVE STATUS1 PORTを読み出す
DRIVE STATUS2 PORT読み出し関数
MC07̲BRStatus2
指定デバイスのDRIVE STATUS2 PORTを読み出す
DRIVE STATUS3 PORT読み出し関数
MC07̲BRStatus3
指定デバイスのDRIVE STATUS3 PORTを読み出す。
DRIVE STATUS4 PORT読み出し関数
MC07̲BRStatus4
指定デバイスのDRIVE STATUS4 PORTを読み出す。
DRIVE STATUS5 PORT読み出し関数
MC07̲BRStatus5
指定デバイスのDRIVE STATUS5 PORTを読み出す
DRIVE STATUSバッファー読み出し関数
MC07̲BRStatusBuf
指定デバイスのDRIVE STATUS1,STATUS2,STATUS3,STATUS4,STATUS5 PORT,ORIGIN STATUSを読み出す
DRIVE COMMAND 32ビット書き込み/読み出し関数
MC07̲LWRDrive
指定デバイスのDRIVE DATA,COMMAND PORTにデータ､コマンドを書き込み､DRIVE DATA PORTを読み出す
DRIVE COMMAND PORT書き込み/読み出し関数
MC07̲BWRDrive
指定デバイスのDRIVE COMMAND PORTにコマンドを書き込み､DRIVE DATA PORTを読み出す。
NOP DATA PORT読み出し関数
MC07̲BRNopData
指定デバイスのNOP DATA PORTを読み出す
DRIVE DATA 32ビット書き込み関数
MC07̲LWDATA
指定デバイスのDRIVE DATA1 PORT､DRIVE DATA2 PORTにデータを書き込む。
DRIVE DATA1 PORT書き込み関数
MC07̲BWDriveData1
指定デバイスのDRIVE DATA1 PORTにデータを書き込む。
DRIVE DATA2 PORT書き込み関数
MC07̲BWDriveData2
指定デバイスのDRIVE DATA2 PORTにデータを書き込む。
DRIVE DATA 32ビット読み出し関数
MC07̲LRDrive
指定デバイスのDRIVE DATA1 PORT、DRIVE DATA2 PORTを一括で読み出す。
DRIVE DATA1 PORT読み出し関数
MC07̲BRDriveData1
指定デバイスのDRIVE DATA1 PORTを読み出す。
DRIVE DATA2 PORT読み出し関数
MC07̲BRDriveData2
指定デバイスのDRIVE DATA2 PORTを読み出す。
データ構造体MC07̲S̲DATA
DRIVE DATA1 PORT、DRIVE DATA2 PORTに書き込むデータを格納する
DRIVE COMMANDデータ構造体書き込み関数
MC07̲IWDRIVE
指定デバイスのDRIVE DATA1､2 PORTにデータ構造体の内容を書き込み後､コマンドコードを書き込む
DRIVE DATAデータ構造体書き込み関数
MC07̲IWDATA
指定されたデバイスのDRIVE DATA1 PORT、DRIVE DATA2 PORTにデータ構造体の内容を書きむ
DRIVE DATA構造体読み出し関数
MC07̲IRDrive
指定されたデバイスのDRIVE DATA1 PORT､DRIVE DATA2 PORTの内容をデータ構造体に読み出す
データセット関数
MC07̲SetData
32ビットデータを引数 psDataで示されるデータ構造体に格納する
データゲット関数
MC07̲GetData
データ構造体の内容を引数 psDataで示される32ビットデータに変換して返す- 182 -

ページ
標準編
58

応用編

59
60
63
64
65
69
71
72
74
77
78
79
80
13
14
15
16
17
18
19
20
21
22
23
24

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )

ページ
標準編
81

88

予 約

O R I G I N

S P E E D

83
84

- 183 -

応用編

82

補 間 ド ラ イ ブ

W A I T

種 名称
記号
別
説明
READY WAIT関数
MC07̲BWaitDriveCommand
指定デバイスがREADY(STATUS1 BUSY BIT=0)まで待機し、最大待ち時間を超えるとエラー終了する
WAIT状態読み出し関数
MC07̲BIsWait
指定デバイスのWAIT状態を返す
WAIT中止関数
MC07̲BBreakWait
指定デバイスのREADY WAIT関数またはCOMREG NOT FULL WAIT関数の実行を中止する
SPEED・RATE構造体
MC07̲S̲SPEED̲RATESPEED・RATEセット関数で使用する
SPEED・RATEセット関数
MC07̲SetSpeedRate
指定のRESOL No.とSPEED･RATE構造体を元にSPEEDパラメータ設定､加減速時定数(RATE)設定を実行する
SPEED・RATE読み出し関数
MC07̲ReadSpeedRate
指定デバイスからSPEEDパラメータ､加減速時定数設定を読み出し､SPEED･RATE構造体に格納する
POSITION構造体
MC07̲S̲XY̲POSITIONX･Y座標を指定するときに使用する
2軸相対アドレス直線補間ドライブ関数
MC07̲IncStrCp
相対アドレスで指定された目的地まで任意2軸直線補間ドライブを行う
2軸相対アドレス円弧補間ドライブ関数
MC07̲IncCirCp
相対アドレスで指定された目的地まで任意2軸円弧補間ドライブを行う
円の中心点ゲット関数
MC07̲GetCirCenterPosition
円弧の通過点相対アドレス､目的地相対アドレスを元に中心点相対アドレス､回転方向を求める
相対アドレス変換関数
MC07̲IncFromAbs
指定された絶対アドレスを相対アドレス(絶対アドレス ‑ 現在位置)に変換する
円弧補間短軸PULSE数ゲット関数
MC07̲GetCirShortPulse
指定円弧の中心点相対アドレス､目的地相対アドレス､回転方向を元に目的地短軸座標までのパルス数を計算
ORIGINドライブパラメータ構造体
MC07̲TAG̲S̲ORG̲PARAM
ORIGINドライブ パラメータ読み出し関数で読み出した内容を格納する
ORIGINドライブステータス読み出し関数
MC07̲ReadOrgStatus
ORIGIN STATUSの内容を読み出す
ORIGIN SPEC SET関数
MC07̲SetOrgSpec
ORIGINドライブの動作仕様を設定する
ORIGIN MARGIN PULSE SET関数
MC07̲SetOrgMarginPulse
ORIGINドライブの機械原点信号検出後のMARGINパルス数を設定する
ORIGIN DELAY SET関数
MC07̲SetOrgDelay
ORIGINドライブの各工程後で挿入するDELAYを設定する
ORIGIN ERROR PULSE SET関数
MC07̲SetOrgErrorPulse
CONSTANT SCAN工程時および1PULSE送り工程時にエラー判定する各最大パルス数を設定する
ORIGIN OFFSET PULSE SET関数
MC07̲SetOrgOffsetPulse
機械原点近傍アドレスのOFFSETパルス数を設定する
ORIGIN PRESET PULSE SET関数
MC07̲SetOrgPresetPulse
機械原点検出終了後に実行するORIGINドライブのPRESETパルスを設定する
ORIGINドライブパラメータ読み出し関数
MC07̲ReadOrgParam
設定されたORIGINドライブパラメータを読み出し､ORIGINドライブパラメータ構造体に格納する
ORIGIN FLAG RESET関数
MC07̲ResetOrgFlag
ORIGIN FLAGをRESETする
ORIGINドライブ関数
MC07̲Org指定された機械原点の型式に従いORIGINドライブを行う
COMREG NOT FULL WAIT関数
MC07̲BWaitComregNotFull
指定デバイスがコマンド予約可能(STATUS1 COMREG FULL BIT=0)まで待機し最大待ち時間超えでエラー終了
DRIVE COMMANDバッファー書き込み関数
MC07̲LWDriveBuf
コマンドデータ構造体配列に格納さたコマンド,データを指定デバイスのDATA1,2,COMMANDに指定個数書込む｡

86
87

89
91
93
94
27
95
96
98
101
102
103
104
105
106
107
108
25
26

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )M C M

そ の 他 の 関 数

I / O

種 名称
記号
別
説明
I/O PORTオープン関数
MC07̲BPortOpen
拡張･汎用･制御I/O PORTをオープンし､引数 phPortの変数にPORTハンドルを格納する
I/O PORTクローズ関数
MC07̲BPortClose
指定された拡張･汎用･制御I/O PORTをクローズする
I/O PORT書き込み関数
MC07̲BPortOut
指定された拡張･汎用･制御・GユニットのI/O PORTにデータを書き込む
I/O PORT OR書き込み関数
MC07̲BPortOrOut指定された拡張･汎用･制御・GユニットのI/O PORTにORデータを書き込む
I/O PORT AND書き込み関数
MC07̲BPortAndOut
指定された拡張･汎用･制御・GユニットのI/O PORTにANDデータを書き込む
I/O PORT 読み出し関数
MC07̲BPortIn指定された拡張･汎用･制御・GユニットのI/O PORTのデータを読み出す
16ビット符号なし変換関数
MC07̲Unsigned16指定された16ビット符号付きデータを16ビット符号なしデータに変換する。
16ビット符号付き変換関数
MC07̲signed16指定された16ビット符号なしデータを16ビット符号つきデータに変換する。
32ビット符号なし変換関数
MC07̲Unsigned32指定された16ビット符号付きデータを16ビット符号なしデータに変換する。
32ビット符号付き変換関数
MC07̲signed32指定された16ビット符号なしデータを16ビット符号つきデータに変換する。
AXIS MCM INFO構造体
MC07̲S̲AXIS̲MCM̲INFO
指定された軸のMCM情報を格納する
UNIT MCM INFO構造体
MC07̲S̲UNIT̲MCM̲INFO
指定されたユニットのMCM情報を格納する
UNIT MCM INFO READ関数
MC07̲UReadMcmInfo指定されたユニットのMCM情報を読み出す
AXIS MCM SPEC構造体
MC07̲S̲AXIS̲MCM̲SPEC指定された軸のMCM基本設定の内容を格納する
UNIT MCM SPEC構造体
MC07̲S̲UNIT̲MCM̲SPEC指定されたユニットのMCM基本設定の内容を格納する
UNIT MCM SPEC0 SET関数
MC07̲USetMcmSpec0指定されたユニットのMCM SPEC0を設定する
UNIT MCM SPEC0 GET関数
MC07̲UGetMcmSpec0指定されたユニットのMCM SPEC0を設定を読み出す
UNIT MCM SPEC1 SET関数
MC07̲USetMcmSpec1指定されたユニットのMCM SPEC1を設定する
UNIT MCM SPEC1 GET関数
MC07̲UGetMcmSpec1指定されたユニットのMCM SPEC1を設定を読み出す
UNIT MCM SPEC2 SET関数
MC07̲USetMcmSpec2指定されたユニットのMCM SPEC2を設定する
UNIT MCM SPEC2 GET関数
MC07̲UGetMcmSpec2指定されたユニットのMCM SPEC2を設定を読み出す
UNIT MCM SPEC3 SET関数
MC07̲USetMcmSpec3指定されたユニットのMCM SPEC3を設定する
UNIT MCM SPEC3 GET関数
MC07̲UGetMcmSpec3指定されたユニットのMCM SPEC3を設定を読み出す- 184 -

ページ
標準編
109

応用編

110
111
112
113
114
28
29
30
31
32
33
34
35
36
37
38
39
42
43
45
46
48

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )

M C M

種 名称
記号
別
説明
UNIT MCM SHEET DOWNLOAD関数
MC07̲UDownloadMcmSheet
指定されたユニットの指定されたシートをRAM領域にダウンロードする
UNIT MCM RAM WRITE関数
MC07̲UWriteMcmRam
指定された軸のRAM領域アドレスにデータ・コマンドを書き込む
UNIT MCM RAM READ関数
MC07̲UReadMcmRam
指定された軸のRAM領域アドレスからデータ・コマンドを読み出す
AXIS MCM START DATA構造体
MC07̲S̲AXIS̲MCM̲START̲DATA指定された軸のMCMを開始するための情報を格納する
UNIT MCM START DATA構造体
MC07̲S̲UNIT̲MCM̲START̲DATA指定されたユニットのMCMを開始するための情報を格納する
UNIT MCM START関数
MC07̲UStartMcm
指定されたユニットに対し指定された軸のMCMを開始する
UNIT MCM FSSTOP関数
MC07̲UFsstopMcm
指定されたユニットに対し指定された軸に即時停止機能を実行する
UNIT MCM SLSTOP関数
MC07̲USlstopMcm
指定されたユニットに対し指定された軸に減速停止機能を実行する
UNIT MCM ERROR CLR関数
MC07̲USlstopMcm
指定されたユニットに対し指定された軸のMCMエラーをクリアする
AXIS MCM STATUS構造体
MC07̲S̲AXIS̲MCM̲STATUS
指定された軸のMCMステータスの内容を格納する
UNIT MCM STATUS構造体
MC07̲S̲UNIT̲MCM̲STATUS
指定されたユニットのMCMステータスの内容を格納する
UNIT MCM STATUS READ関数
MC07̲UReadMcmStatus
指定されたユニットのMCMステータスを読み出す
AXIS MCM ERROR STATUS構造体
MC07̲S̲AXIS̲MCM̲ERROR̲STATUS
指定された軸のMCMエラーステータスの内容を格納する
UNIT MCM ERROR STATUS構造体
MC07̲S̲UNIT̲MCM̲ERROR̲STATUS
指定されたユニットのMCMエラーステータスの内容を格納する
UNIT MCM ERROR STATUS READ関数
MC07̲UReadMcmErrorStatus
指定されたユニットのMCMエラーステータスを読み出す- 185 -

ページ
標準編

応用編
49
50
51
52
53
54
55
56
57
58
59
60
63
64
65

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )5-3.ドライブコマンド一覧(1) 汎用コマンド

汎 用 コ マ ン ド

種 コマンド名
コマンドコード別
説明
NO OPERATION
H'00
機能なし
SPEC INITIALIZE1
H'01
ドライブパルスの出力仕様の設定
SPEC INITIALIZE2
H'02
CWLM,CCWLM,SS0の設定
SPEC INITIALIZE3
H'03
DRST,DEND/PO,DALMの設定
FSPD SET
H'05
ドライブパルス出力の第１パルス目のパルス周期（パルス速度)を設定
HIGH SPEED SET
H'06
加減速ドライブの最高速時のパルス速度データ(HSPD)､ 速度データの速度倍率(RESOL)を設定
LOW SPEED SET
H'07
加減速ドライブの加速開始時パルス速度データ(LSPD)､減速終了時パルス速度データ(ELSPD)を設定
RATE SET
H'08
加速カーブの変速周期データ(UCYCLE)､減速カーブの変速周期データ(DCYCLE)を設定
SCAREA SET
H'09
加速カーブのS字変速領域データ(SUAREA)､減速カーブのS字変速領域データ(SDAREA)を設定
DOWN PULSE ADJUSTH'0A
INDEXドライブの自動減速停止動作を開始する減速パルス数のオフセットパルス数を設定
SHAREA SET
H'0B
加速カーブのS字変速領域データ(SUH)､減速カーブのS字変速領域データ(SDH)を設定
JSPD SET
H'0C
JOGドライブのパルス速度の設定
JOG PULSE SET
H'0D
JOGドライブのパルス数の設定
ORIGIN SPEC SET
H'0F
ORIGINドライブの動作仕様を設定
+JOG
H'10
+方向JOGドライブの実行
‑JOG
H'11
‑方向JOGドライブの実行
+SCAN
H'12
+方向SCANドライブの実行
‑SCAN
H'13
‑方向SCANドライブの実行
INC INDEX
H'14
相対アドレスINDEXドライブの実行
ABS INDEX
H'15
絶対アドレスINDEXドライブの実行+JSPD SCAN
H'16
+方向JSPD SCANドライブの実行‑JSPD SCAN
H'17
‑方向JSPD SCANドライブの実行
SERVO RESET
H'1F
DRST信号出力に10ms間アクティブを出力- 186 -

ページ
標準編
138

応用編

115
116
118
74
75
76
77
78
80
79
122
123
81
124
125
126
126
127
128
125
125
131

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )汎 用 コ マ ン ド

種 コマンド名
コマンドコード
別
説明
CP SPEC SET
H'20
相関2軸1チップのCPPOUT端子から出力するパルスを設定
LONG POSITION SET
H'22
直線補間ドライブの、長軸の座標アドレスを設定
SHORT POSITION SET
H'23
直線補間ドライブの、短軸の座標アドレスを設定
CIRCULAR XPOSITION SET
H'28
円弧の中心点座標を(0,0)とした現在位置のX座標アドレスを設定
CIRCULAR YPOSITION SET
H'29
円弧の中心点座標を(0,0)とした現在位置のY座標アドレスを設定
CIRCULAR PULSE SET
H'2A
現在位置のX‑Y座標アドレスから目的地の短軸座標までの短軸パルス数を設定
MAIN STRAIGHT CP
H'30
任意軸、複数軸の直線補間ドライブのときのメイン軸に実行
SUB STRAIGHT CP
H'31
任意軸、複数軸の直線補間ドライブのときのサブ軸に実行
MAIN CIRCULART CP
H'38
任意軸の円弧補間ドライブのときのメイン軸に実行
SUB CIRCULART CP
H'39
任意軸の円弧補間ドライブのときのサブ軸に実行- 187 -

ページ
標準編

応用編
83
90
91
99
100
101
92
93
102
103

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )(2) 特殊コマンド
コマンドコード

特 殊 コ マ ン ド

種 コマンド名別
説明
ADDRESS COUNTER PRESET
アドレスカウンタの現在位置設定
ADDRESS COUNTER INITIALIZE1
アドレスカウンタの各機能の設定
ADDRESS COUNTER INITIALIZE2
アドレスカウンタの各機能の設定
ADDRESS COUNTER MAX COUNT SET
アドレスカウンタの最大カウント数の設定
ADRINT COMPARE REGISTER1 SETADRINTのコンペアレジスタ1の設定
ADRINT COMPARE REGISTER2 SETADRINTのコンペアレジスタ2の設定
ADRINT COMPARE REGISTER3 SETADRINTのコンペアレジスタ3の設定
ADRINT COMP1 ADD DATA SETADRINTのCOMP1 ADDデータの設定
PULSE COUNTER PRESET
パルスカウンタのカウント初期値の設定
PULSE COUNTER INITIALIZE1
パルスカウンタの各機能の設定
PULSE COUNTER INITIALIZE2
パルスカウンタの各機能の設定
PULSE COUNTER MAX COUNT SET
パルスカウンタの最大カウント数の設定
CNTINT COMPARE REGISTER1 SET
CNTINTのコンペアレジスタ1の設定
CNTINT COMPARE REGISTER2 SET
CNTINTのコンペアレジスタ2の設定
CNTINT COMPARE REGISTER3 SET
CNTINTのコンペアレジスタ3の設定
CNTINT COMP1 ADD DATA SET
CNTINTのCOMP1 ADDデータの設定
DFL COUNTER PRESET
パルス偏差カウンタのカウント初期値の設定
DFL COUNTER INITIALIZE1
パルス偏差カウンタの各機能の設定
DFL COUNTER INITIALIZE2
パルス偏差カウンタの各機能の設定
DFL COUNTER INITIALIZE3
パルス偏差カウンタの各機能の設定
DFLINT COMPARE REGISTER1 SETDFLINTのコンペアレジスタ1の設定
DFLINT COMPARE REGISTER2 SETDFLINTのコンペアレジスタ2の設定
DFLINT COMPARE REGISTER3 SETDFLINTのコンペアレジスタ3の設定
DFLINT COMP1 ADD DATA SETDFLINTのCOMP1 ADDデータの設定

ページ

H'80

標準編
144

H'81

139

H'82

142

H'87

115

H'88

145

H'89

145

H'8A

145

H'8C

146

H'90

152

H'91

147

H'92

150

H'97

- 188 -

応用編

116

H'98

153

H'99

153

H'9A

153

H'9C

154

H'A0

163

H'A1

155

H'A2

158

H'A3

161

H'A8

164

H'A9

164

H'AA

164

H'AC

165

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )

ページ
標準編

特 殊 コ マ ン ド

種 コマンド名
コマンドコード別
説明
RAM SPEC SET
H'B0
RAM READ JUMP, NO OPERATIONの実行タイミングと有効条件を設定
RAM READ JUMP
H'B9
移動アドレスからRAM領域のコマンド読み出しを開始
RAM STOP
H'BF
RAM領域のコマンド読み出しを終了
SPEED CHANGE SPEC SET
H'C1
SPEED CHANGE指令を実行する変更動作点を設定
INDEX CHANGE SPEC SET
H'C3
INDEX CHANGE指令を実行する変更動作点を設定する
SPEED RATE CHANGE
H'C8
実行中のパルス出力を指定ドライブパルス速度とRATEで加速または減速させる
INC INDEX CHANGE
H'CC
指定したデータを起動位置を原点とする相対アドレスの停止位置に設定してINC INDEXを行う
ABS INDEX CHANGE
H'CD
指定データをアドレスカウンタで管理している絶対アドレスの停止位置に設定してABS INDEXを行う
PLS INDEX CHANGE
H'CE
指定データを変更点の検出位置を原点とする相対アドレスの停止位置に設定してINC INDEXを行う
ERROR STATUS READ
H'D1
ERROR STATUSの読み出し
MCC SPEED READ
H'D4
ドライブパルス速度の読み出し
MCC SET DATA READ
H'D5
設定データの読み出し
RSPD DATA READ
H'D6
RSPDデータの読み出し
ADDRESS COUNTER READ
H'D8
アドレスカウンタの読み出し
PULSE COUNTER READ
H'D9
パルスカウンタの読み出し
DFL COUNTER READ
H'DA
パルス偏差カウンタの読み出し
ADDRESS LATCH DATA READ
H'DC
アドレスカウンタのラッチデータを読み出す
PULSE LATCH DATA READ
H'DD
パルスカウンタのラッチデータを読み出す
DFL LATCH DATA READ
H'DE
パルス偏差カウンタのラッチデータを読み出す
ERROR STATUS MASKH'E5
ERRORに出力するERROR STATUSのマスク
COUNT LATCH SPEC SET
H'E8
各種カウンタのカウントデータをラッチするタイミングとクリア機能を設定- 189 -

応用編
110
112
113
104
106
105
107
108
109

133
135
136
114
166
166
166
119
119
119
132
117

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )種 コマンド名
コマンドコード
別
説明
HARD INITIALIZE1
H'F1
ステータス信号(SOUT信号)に出力する機能を設定
HARD INITIALIZE2
H'F2
GPIO2信号の入出力機能を設定
HARD INITIALIZE3
H'F3
GPIO3信号の入出力機能を設定
HARD INITIALIZE7H'F7CWLM信号、CCWLM信号、FSSTOP信号、DALM信号の入力アクティブ論理を設定
HARD INITIALIZE8H'F8CWP信号、CCWP信号の出力アクティブ論理を設定
SIGNAL OUT
H'FC
汎用出力信号の操作
SLOW STOP
H'FE
減速停止の実行
FAST STOP
H'FF
即時停止の実行- 190 -

ページ
標準編

応用編
67
69
70
71
73

130
129
129

MPL-36-02v2.00/USBW32
MPL-37-02v2.00/USBW64

取扱説明書

応用機能編

( USB シ リー ズ MCC09 ユニ ット 編 )本版で改訂された主な箇所
箇

所

内
なし

- 191 -

容

■ 製品保証
保証期間と保証範囲について● 納入品の保証期間は、納入後１ヶ年と致します。
● 上記保証期間中に当社の責により故障を生じた場合は、その修理を当社の責任において行います。
(日本国内のみ)
ただし、次に該当する場合は、この保証対象範囲から除外させて頂きます。
(1) お客様の不適当な取り扱い、ならびに使用による場合。
(2) 故障の原因が、当製品以外からの事由による場合。
(3) お客さまの改造、修理による場合。
(4) 製品出荷当時の科学・技術水準では予見が不可能だった事由による場合。
(5) その他、天災、災害等、当社の責にない場合。

(注1)ここでいう保証は､納入品単体の保証を意味するもので納入品の故障により誘発される損害はご容赦頂きます。
(注2)当社において修理済みの製品に関しましては、保証外とさせて頂きます。

技術相談のお問い合わせTEL.(042)664‑5382 FAX.(042)666‑5664
E‑mail s‑support@melec‑inc.com

販売に関するお問い合わせTEL.(042)664‑5384 FAX.(042)666‑2031
制御機器営業部〒193‑0834 東京都八王子市東浅川町516‑10
記載内容は、製品改良のため予告なく変更することがありますのでご了承ください。

URL:http://www.melec-inc.com
c1601