三菱電機 J5サーボアンプ/モーター設定

[モーションユニットクイックスタートガイド](https://www.mitsubishielectric.co.jp/fa/download/software/detailsearch.do?mode=lib&amp;kisyu=/ssc&amp;shiryoid=0000000123&amp;lang=1&amp;select=3&amp;softid=3&amp;infostatus=2_2_10&amp;viewradio=0&amp;viewstatus=0_0_1_1_2&amp;viewpos=544_0)
に沿って設定する…のだが218ページもあり、あんまりクイックじゃない。必要そうな箇所抜粋。
[J4はこっち。](https://qiita.com/ki_kifa/items/894783f97fc4c9e3cae6)

## 開発環境
- [MELSOFT GX Works3のアップデート](https://www.mitsubishielectric.co.jp/fa/download/software/detailsearch.do?mode=software&amp;kisyu=/plcr&amp;shiryoid=0000000016&amp;lang=1&amp;select=0&amp;softid=1&amp;infostatus=1_1_3&amp;viewradio=0&amp;viewstatus=&amp;viewpos=)
2021年でインターフェースがそこそこ変わっているので必ずやろう。1.061→1.066をさぼってハマった。
- [モーション制御設定](https://www.mitsubishielectric.co.jp/fa/download/software/detailsearch.do?mode=software&amp;kisyu=/ssc&amp;shiryoid=0000000105&amp;lang=1&amp;select=0&amp;softid=1&amp;infostatus=1_8_1&amp;viewradio=0&amp;viewstatus=&amp;viewpos=)
GX works3のアドオンみたいな。
- [FBライブラリ](https://www.mitsubishielectric.co.jp/fa/download/software/detailsearch.do?mode=software&amp;kisyu=/plcr&amp;shiryoid=0000000140&amp;lang=1&amp;select=0&amp;softid=3&amp;infostatus=3_9_2&amp;viewradio=1&amp;viewstatus=&amp;viewpos=)
[ツール]タブ⇒[プロファイル管理]⇒[登録]
- GX Works3でラベルが見切れる回避。
表示→デバイス/ラベル名表示形式→折返し表示
ツール→オプション→ラダーエディタ→回路図→表示形式→デバイス/ラベル名折返し表示行数
- バッファメモリのコメントを一括読み出し
グローバルデバイスコメントを開いた状態で
編集→サンプルコメントの流用→インテリジェント機能ユニット→先頭XYアドレスを選択。X0,X1,Y0だけなのでやらんでもいい。

## ユニットパラメーター(ネットワーク)
接続するサーボアンプをドラッグドロップして、それぞれIPアドレス(1からでいい)を入れる。各軸に対して
- モーション管理局にチェック(入れないと入出力ユニット扱いになる)
- パラメータ自動設定にチェック(電源ON時にPLCからサーボアンプへ設定を送る。アンプ交換時に便利)
- PDOマッピングは「はい」を押して自動設定。
J4よりめんどくさくなっているが、サーボアンプ以外も同じネットワークに居るから仕方ない。
![aab5d1bb2b5461136a12d74c2b433b407f860e2f.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141264/71e17d22-b297-26e9-979d-f53aea99a8f1.jpeg)


## ユニット拡張パラメーター「モーション制御設定機能」
「軸」を右クリックして必要個数追加。3軸一体のアンプは「192.168.3.1」「192.168.3.1#1」「192.168.3.1#2」になる。
- 上限、下限リミットセンサーの設定。CN3に接続するなら不要だが、PLCに取り込むなら下記。
対象：G11478000の0ビットから順に使う。CPUから見るとU0*￥G11478000.0になる。*はユニット割り付けた番号の10の位。
ユーザーが自由に使えるデバイスはG11478000～G11997999
PD41.2 1→0 リミットスイッチ有効状態：常に有効
PD41.3 1→0 センサ入力方式：サーボアンプより入力
PA04.2 0→1 強制停止無効
- 位置指令単位：pls→μm
- ドライバ単位変換分子と分母：ボールねじのリードと減速比率入れたら計算してくれる。
![7f70aeff40231387f57c6e3984aece21caa69d97.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141264/106e000f-dc8d-ef62-2b46-64d3b6c406e2.jpeg)

- PA03 0→1 絶対位置検出システム 有効
- PC29 00101000→00001000 「AL.0E3 絶対位置カウンタ警告」 無効
- PT45 原点復帰方式　37(初期値):現在地データセット　-1:近点ドグ正方向　-33:近点ドグ負方向　

## ラベルの公開設定
- モーション制御設定機能
“ラベル”⇒“グローバルラベル”⇒"Global"、"Sys+Global"、“Ax+Global”ラベルを有効に
AXIS_REAL内のAxisRef,Mdを有効に。
AXIS_REAL_MONI内のAxisStatusほか、使いそうなパラメーターを有効にする。
コメントが不親切で見逃しがちだが、Io_＊＊＊をモニタに使う。項目「Io_TorqueActualValue」の説明コメントが「Io_TorqueActualValue」って私の作るプログラム並み。
![49da296d0fd9cf32c1267f8edc09853382302646.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141264/da74d2c4-e8fc-bb76-6ab4-a6281b7feecd.jpeg)

- ラベル設定が終わったら「変換」→「公開ラベルの反映」
手癖で押しがちなF4変換だと反映されない。

- J5サーボはdouble(4ワード　LREAL)で座標を管理しており、
普段使うlong int(2ワード　DINT)と型が異なります。
宣言しない限りデバイスに実数は入らないので、DBL2DINTやDINT2DBL命令で変換する。
・1軸現在位置をD100,D101に移す。
[DBL2DINT  Axis001.Actualposition D100]
・D0,D1を1軸絶対位置決め目標に移す
[DINT2DBL  D0 Abs1Pos]
エラー関係は16進数。Md.ErrorIDとMd.WorningID
型の命名規則は三菱推奨に従おう。
u WORD 符号なし16ビット
ud DWORD 符号なし32ビット
w INT 符号付き16ビット
d DINT 符号付き32ビット
e REAL 単精度実数(FLT)
le LREAL 倍精度実数(DBL)

## ラダーへの組み込み
マニュアルにはSFCでつくれと書いてあるが、今回はラダーで書いた。
三菱の人曰くSFC派:ラダー派 = 6:4くらいらしい。
表示→ドッキングウィンドウ→部品選択　で部品選択画面を開いておく

X*1「同期用フラグ」がONになったらY*0シーケンサレディをONにする。するとX*0「準備完了」がONする。
他の入出力デバイスは全て使用禁止。
部品選択「ライブラリ」タブ→MotionControl_RD78～→FB→Management内のMC_AllPowerをラダー画面へドラッグドロップ
X*0を受けて全軸サーボON。
![ca39b55c59667b7f820a6c3e1f36b68f30801b64.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141264/72a98fbc-eeaa-6075-2fd2-fa0c9ca56738.jpeg)

以降も
「ライブラリ」タブ→MotionControl_RD78～→FB→Operation-Individualから使う動作をラダー画面にドラッグドロップ
- JOG運転 MCv_Jog
特に何も言うことがない。強いてあげるなら実数は「E70000」のようにする。Works3から整数の「K」は要らなくなった。
![JOG.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141264/4a06ab3b-e4e0-c869-16a6-409a34f6735e.jpeg)

- 原点復帰　MC_Home
原点ドグはビット扱いではなく、データ型「MC_INPUT_REF」でラベル設定必要。ここではラベル名をHomingDog1とした。
先頭IOを指定。「MOV H0* HomingDog1.Signal.Source.StartIO」
デバイス名を「文字列で」HomingDog1.Signal.Source.Targetに書き込む。信じられん不親切ポイント
つまり「$MOV_WS "[DEV]G11478001.1" HomingDog1.Signal.Source.Target」になる。
CN3に原点センサつなぐならここまで不要。もちろんデータセット方式の原点復帰なら不要。
![home.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141264/5a968965-0969-d5cf-6da5-aa9e219dad76.jpeg)

- 単独(絶対)位置決め MC_MoveAbsolute
![55312dca84e54a6a139366126e63590e6f111f53.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141264/a78e44ed-31ac-aa60-9aac-c744544ef954.jpeg)
- 同期(補完)位置決め
後日

- 異常リセット
モーションコントローラーリセットはビット「RD78_00*0.System.Cd.ErrorReset」(要ラベル公開)
軸リセットはFB→Management内のMC_Reset

## メンテナンス
- PLCからサーボアンプへ送るパラメーター設定画面の開き方
ユニットパラメーター(ネットワーク)→ネットワーク構成設定→サーボアンプの絵をダブルクリック

- ハウリングしたとき
AL. 054.1「発振検知異常」が出る。
「リスト表示」→「基本設定」PA09オートチューニング応答性を1ずつ下げていき、きれいに止まるところを見つける。

- サーボモーター交換するとき
J5からバッテリーレスで現在値や設定をサーボモーターが覚えている。同じ型式のサーボモーターでも入れ替えると異常AL. 01A.5「サーボモータ組合せ異常3」が出る。
「共通」Pr. PA03.1_サーボモータ交換準備を0→1にして数秒待つと0に戻る。
サーボアンプ電源を入れなおすとAL. 090(現在位置消失)になるので原点復帰等する。
![サーボモーター交換準備.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141264/6a46eccf-83d9-42f6-2c5c-bc033fc4c26d.png)


ここではPLCの入出力端子に原点や非常停止、上下限リミットスイッチをつける場合を書いた。
パラメータ初期値はサーボアンプのCN3に接続するようになっており、MEE製のケーブルと端子台の購入が要るが、設定が楽。ブレーキ付きサーボモータは端子台買った方がいい。端子台にハードウェアインターロックが含まれ、ブレーキかかった状態で回転するトラブル等を防いでくれる。
ケーブル：DG4SV2CB05(耐屈曲は末尾にH 長さは05,10,50,100) MR-J2HBUS05MやMR-TBNATBL05Mと互換がある。
端子台(ブレーキ付)：DG2BK1TB
端子台(ブレーキ無) ：DG2SV2TB(2軸、3軸用は末尾に2,3をつける。)

### J4と比べていいところ。
- 安い。J4→J5のユーザー移行を狙っているようで、J4のシンプルモーションと比べてなお安い。
- LANケーブルが使える。公認のハブが売られているが市販のスイッチングハブで良い。J4までは光ファイバケーブルが高価だった。
- CClink TSNという規格で通信する。入出力ユニットやPCその他通信機器と共存できる。設備内にLANケーブルの系統を3つ引くという地獄から抜け出せて偉い。