Application Note 資料作成 040520 資料番号 68K - accelmpc.co.jp

テーマ
使用機器
概要
Application Note
資料作成 040520
資料番号 68K-011
アブソリュート ドライバ絶対位置取得の実験
AC サーボモータ&ドライバ、MPC-684、MPG-314
三菱製アブソリュート AC サーボモータ ドライバ(MR-J2S-10A1)は RS-232/422 通信で絶対位置デー
タを取得することができます。これにより、非励磁状態での手動回転や原点復帰不要の始動が可能
になります。
■構成図
ドライバとMPC-684を1:1で接続するにはRS-232が使用できます。
複数のドライバを接続するにはRS-232/422変換器を使います。
(ドライバのピン配、パラメータ設定方法等はドライバ資料を参照してください。)
ドライバ
MR-J2S-10A1
MPC-684
MPG-314
MOP-048
←RS-232→
MPC
←パルス列
422
←サーボオン
←ABS 転送モード
←ABS 要求
送信データ準備完→
232
n:1 接続は RS-232/422 変換器
でマルチドロップ
■通信プロトコル
MPC→ドライバ (データ要求)
[SOH][局番][コマンド][STX][データNo][ETX][チェックサム]
この実験では「指令単位絶対位置」を取得するため、コマンドは[0][2]、データNoは[9][1]を用います。
ドライバ→MPC (レスポンス)
[STX][局番][エラーコード][データ][ETX][チェックサム]
指令単位で絶対値を16進数データで返信します。例えば、データ 000186A0 は指令単位で100000(パルス)になります。
■サーボオン手順
このドライバはサーボオンするたびに現在位置データを出力します。それを使うには専用プロトコルで2ビットずつデータを読
み取り(シフトしながら19回繰り返し)、位置データを組み立てます。
今回の実験では(おそらく本番でも)このデータは使いません。しかし、この儀式を経ないとサーボオンできないので、実験プロ
グラムではダミーで実行しています。
1
■実験プログラム
サーボフリー状態でモータを手動回転させても絶対座標を取得できます。
'********************
'メイン
'********************
MRS=0 /* 1にするとMRS-402でRS-485通信
SETIO
CNFG#0 "9600b8pes1NONE"
IF MRS=1 THEN
CNFG#3 "9600b8pes1NONE"
CNFG#4 "9600b8pes1NONE"
END_IF
PG &H400
DO
INPUT "INPUT JOB NO->" A
SELECT_CASE A
CASE 1
GOSUB *SV_OFF
CASE 2
GOSUB *SV_ON
CASE 3
GOSUB *READ_ABS
CASE 4
GOSUB *MOVE_X
CASE_ELSE
PRINT "??"
END_SELECT
LOOP
END
'********************
'サーボオン
'********************
*SV_ON
PRINT "SERVO ON"
'一旦サーボオフにしないと実行できない
ON 0
:' ABS転送モード
TIME 100
HOUT &H10
:' サーボオン
FOR II=1 TO 19
:' 19回儀式
WAIT HPT(7)==1 :' 転送データ準備完了待ち
ON 1
:' ABS要求
WAIT HPT(7)==0
OFF 1
NEXT II
OFF 0
RETURN
'********************
'サーボオフ
'********************
*SV_OFF
PRINT "SERVO OFF"
HOUT 0
RETURN
'********************
'ABSデータ読み込み
'********************
*READ_ABS
'サーボオン時でもサーボオフ時でも実行できる
PRINT "READ ABS DATA"
Ocmd1$=CHR$(&H01)+"0"+"02"+CHR$(&H02)+"91"+CHR$(&H03)+"01"
IF MRS<>1 THEN
PRINT#0 Ocmd1$
: ' SEND TO SERVO DRIVER
H_DAT$=INP$#0(14)
ELSE
IOW 2 &H600F
: ' MRS-402(CH3) SEND ENABLE
PRINT#3 Ocmd1$
: ' SEND TO SERVO DRIVER
H_DAT$=INP$#4(14)
END_IF
'----- ユニットNo ----STRCPY H_DAT$ NO$ 1 1
PRINT "NO$=",NO$
'----- 正常 or エラー ----STRCPY H_DAT$ ERR$ 2 1
PRINT "ERR$=",ERR$
'----- ABSデータ ----STRCPY H_DAT$ DAT$ 3 8
DAT1$="&H"+DAT$
ABS_D=VAL(DAT1$)
PRINT "DAT$=",DAT$
PRINT "ABS_D=",ABS_D
'----- チェックサム ----STRCPY H_DAT$ BCC$ 12 2
PRINT "BCC$=",BCC$
'----- ポイントセット ----STPS X_A ABS_D
PRINT "current X=" X(0)
RETURN
'********************
'移動
'********************
*MOVE_X
MOVS X_A 0
WAIT RR(X_A)==0
RETURN
2
■実行結果
FTMWでプログラムをRUNしてJOB Noを入力します。
RUN
INPUT JOB NO->1
SERVO OFF
INPUT JOB NO->3
READ ABS DATA
NO$=0
ERR$=A
DAT$=000006D7
ABS_D=1751
BCC$=15
current X=1751
INPUT JOB NO->2
SERVO ON
INPUT JOB NO->3
READ ABS DATA
NO$=0
ERR$=A
DAT$=00000CB8
ABS_D=3256
BCC$=21
current X=3256
INPUT JOB NO->4
INPUT JOB NO->3
READ ABS DATA
NO$=0
ERR$=A
DAT$=00000000
ABS_D=0
BCC$=F4
current X=0
/* サーボオフ(モーター励磁解除)にして軸を手で回す
/* サーボオフでもデータを読める
/* 位置データ
/* X軸位置としてセット
/* サーボオン
/* データ読み込み
/* サーボオン時のX軸位置
/* MOVSでX軸 0 まで回転
/* データ読み込み
INPUT JOB NO->
3
■参考実験 ∼RS-232/422変換器の代わりに「MRS-402」は使えるか∼
弊社にはRS-232/422変換器およびRS-422通信ボードはありませんが、「MRS-402」のRS-485で代用可能かを実験してみました。
・結線
MRS-402のポート#3側を出力、#4側を入力として使用しました。
MRS-402
DA 8
9
DB 9
19 SDN
11 LG
J2
#4
SDP
SG 7
ドライバ CN3
DA 8
#3
5
DB 9
15 RDN
1
J1
ショートピン設定
SP4: 1-3 ショート
SP5: 1-3 ショート
RDP
通信仕様パラメータ
で RS-422 選択
LG
SG 7
(ケーブル長約 2m)
・実験プログラム
前記プログラムの先頭行を「MRS=1」とするとMRS-402からの通信になります。
・結果
1:1での通信はRS-232と同様に出来ました。しかしドライバが1台しかなかったため、マルチドロップ接続の確認はできませんで
した。また、ドライバで使用しているデバイスが不明で通信仕様が確定できません。よって、この使い方は推奨できませんので、
三菱推奨の変換器を使用してください。
■資料
三菱汎用ACサーボ MELSERVO-J2-Superシリーズ 汎用インターフェース MR-J2S-□A サーボアンプ技術資料集
以上
4