テーマ 使用機器 概要 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
© Copyright 2024 ExpyDoc