キーエンスMECHATROLINK-IIIで同期

今回はキーエンスMECHATROLINK-IIIのユニットKV-XH16MLで同期の設定を紹介する。

MECHATROLINK-Ⅱでも同様の設定だ。(KV MOTION+で行う。)

なお、MECHATROLINK-Ⅱ時代のサーボ制御はhttp://sugielectric.php.xdomain.jp/plc/servo.htmlでも紹介しているので参照頂きたい。

まずKV-XH16MLの「同期制御設定」の同期パラメータで主軸を設定する。※今回は主軸を軸1、従軸を軸2にする。

カムや進角補正もここで設定可能だ。

あとは各軸の主軸クラッチ指令フラグや同期制御始動フラグ(バッファメモリやリレーで割り当てられる)を操作して同期プログラムを作っていく。三菱シンプルモーションと同じだ。

一度でもモーションプログラムを一から作った経験があれば、他のメーカーのPLCや通信方式が異なっても、サーボ機能は似通っていたり同じ概念なので、最初から学習するより、学習期間が大幅に短くて済む。

三菱シンプルモーションで同期

三菱PLC RD77MS(シンプルモーション)で同期の設定の仕方を紹介する。

なお、今回もギア比設定など細かな設定は割愛する。同期の基本設定のみ紹介する。

※実際の機械の動作に気を付けて作成してください。本サイトは動作を保証するものではありません。各自責任で参考にしてください。

では、まず「シンプルモーションユニット設定機能」を起動する。

そして「同期制御パラメータ」の「入力軸パラメータ」で主軸を設定する。※今回は軸1を主軸にする。

そして同期パラメータの軸n同期パラメータで従軸の設定をする。※今回は軸2を従軸にする。

クラッチ(ON、OFFすることで一時的に同期から切り離すリレー)の設定もここで可能だ。

カムの設定もここで可能だ。

「同期制御パラメータ」の「入力軸一覧」で同期の設定が確認できる。

あとは各軸の主軸クラッチ指令フラグや同期制御始動フラグ(バッファメモリで割り当てられる)を操作して同期プログラムを作っていく。

カムでサーボ同期

サーボ同期するとき、従軸が直線動作するのではなく、機械カムのように複雑な動きをさせたいときサーボ設定で簡単にできる。(これを電子カムという。)

今回も三菱モーションRD78G4で紹介する。(なお三菱シンプルモーションやキーエンスでは設定の仕方が異なる。また別記事で紹介する。)

まずRD78G4のユニット拡張パラメータをクリックしてモーション制御設定機能画面を立ち上げる。(※前々回ブログ記事を参照。)

そして演算プロファイルで「データ新規作成」を行う。

そして以下画面が立ち上がるので、ここでカムデータを作る。1サイクル長とストロークを設定して、ストローク設定にデータを入れる。

ここでカムデータを作るコツなのだが、当たり前だが、ずっと繰り返し可能なカムデータを作らないとうまくいかない。主軸とずれたりおかしな動きになってしまう。必ず動きの周期がうまくいくよう考えて作成する。

※実際の機械のインターロックに気を付けて作成してください。本サイトは動作を保証するものではありません。各自責任で参考にしてください。

後はPlcopen関数 MC_CamInのCamTableID.ProfileIDに先ほど作成した演算プロファイルを代入すれば紐づけ完了。

モーションユニットでCPUとの負荷分散制御

三菱モーションユニットRD78G4はPLCのCPU本体のラダーとは独立してサーボプログラムをST言語で組むことができる。

CPU本体のラダースキャンに影響されないサーボ制御が出来るため、またシンプルモーションに比べプログラムが組みやすいため使われる。

ただしRD77MSではできないので、要注意だ。

まずRD78G4のユニット拡張パラメータをクリックしてモーション制御設定機能画面を立ち上げる。(※前回ブログ記事を参照。)

そして「プログラム」の「ノーマル」で右クリックしてデータ新規作成を行う。

そしてファンクション部品選択からモーション制御ファンクションブロックを選択する。今回はジョグ機能をドラッグアンドドロップする。

以下ポップアップでOKする。

以下ST言語の関数が自動で記載されるため、引数を記載する。

その前にグローバルラベルを設定しておく。これがラダーとの橋渡しになる。

公開ラベルは有効にしておく。

そしてグローバルラベルをジョグの正転(G_bServoForward)・逆転の指令(G_bServoReverce:綴り間違いは許してね)に引数設定する。

そして「全変換」を行う。

さらに「公開ラベルの反映」を行う。

後はラダー側でユニットラベルから先ほど作ったジョグ正転・逆転指令のグローバルラベルをドラッグアンドドロップしラダーのコイルにすればよい。

※実際の機械のインターロックに気を付けて作成してください。本サイトは動作を保証するものではありません。各自責任で参考にしてください。

Plcopenでサーボ同期

Plcopenでサーボ同期するにはMC_GearInを使用する。

※今回もGX WORKS3で紹介する。

また直線補間や円弧補間は複数の軸を軸グループという単位で管理し、MC_GroupEnableを実行すればできる。

軸グループ設定はRD78G4のユニット拡張パラメータで設定する。

もしユニット拡張パラメータをクリックしたときに以下メッセージが表示されれば、三菱FAサイトからsw1dnn-mucnf-j_021x.zipをダウンロードしてインストールするとよい。

三菱PLCでサーボPLCopen制御

今年2月にOMRON PLC(NX)でPLCopenファンクションブロックによるサーボ制御の仕事を行ったが、今回は三菱PLCでもPLCopenによる制御が可能なので紹介する。

今回はMR-J5サーボアンプで動作する位置決めユニットRD78G4を例に紹介する。

ちなみにRD78G4は従来通りのバッファアドレスを使用したシンプルモーション方式でも制御可能である。バッファアドレスの値はほとんどRD77MS(サーボアンプはMR-J4ーB)と同じでプログラムの書き方も同じだ。

バッファアドレスのサーボ制御は三菱Aシリーズでのサーボ制御から手法自体は変わっていない。(パラメータ設定等は当然進化している)

ではPLCopenのプログラム作成方法をGX WORKS3で紹介する。

まずPLCopen用ファンクションブロックライブラリ(MotionControl_RD78G_4e.zip)を三菱電機FAサイトからダウンロードする。

そしてGX WORKS3の「部品登録」でライブラリを登録する。

そして、そのファンクションブロックをラダー画面にドラッグする。今回は絶対位置決めファンクションブロックを例にする。

ラダーでファンクションブロックを使用して位置決め制御プログラムを作っていく。なお、PLCopenのサーボファンクションブロックはOMRONやシーメンスとも共通だ。

当然、過去の資産で動いている設備の保守・改造も我々電気制御技術者にとって大事な仕事であり、従来の手法も理解しておく必要があるが、PLCopenの存在自体を知らないわけにはいかない。

ST言語のみでファンクションブロック

PLCでファンクションブロックを使うとき、決まり決まった計算をライブラリとして使いたい時が多い。

新規の機械動作する部分のラダーはファンクションブロックにするとモニターしにくく切羽詰まっている現場では向かないが、卓上で事前にシミュレーションできる数式はライブラリしておきたい。

しかしその時はラダーよりST言語で書いたほうが効率的だ。今回紹介するのは三菱PLCでST言語のみのファンクションブロック作成方法である。

QシリーズでもRシリーズでも同じやり方だ。

※GX WORKS2ではST言語使用のため、プログラム種別変更が必要。

GX WORKS3でやり方を紹介する。

まず左ナビゲーションからFBFILEを右クリックし「データ新規作成」を選択する。

データ名を参考URLに従いLinerCalcにし、プログラム言語をST言語にする。

新規作成したファンクションブロックのローカルラベルを作る。

  • VAR:普通の内部変数ラベル
  • VAR_CONSTATNT:値の変わらない内部変数ラベル
  • VAR_RETAIN:ラッチ機能のある内部変数ラベル
  • VAR_INPUT:ファンクションブロックの入力
  • VAR_OUTPUT:ファンクションブロックの出力

プログラムをST言語で書く。変換すればファンクションブロックが完成。

できたファンクションブロックをラダー作成窓にドラッグし、入出力変数を記載。

これでST言語のファンクションブロック完成。

オムロンCJ2でサーボ同期

オムロンでよく使うサーボアンプはR88D-KN20H-ECTといったEthercat G5シリーズだ。

今回はCJ2HのCJ1W-NC482でのサーボ制御を紹介する。

なお、サーボの同期制御はCJ2HのCJ1W-NC482でしかできない。※CJ1W-NC481ではサーボ制御はできるが、同期制御はできない。

三菱やキーエンスPLCと違い、オムロンPLCはバッファアドレスでサーボ制御をするのではなく、Wデバイスのチャンネル番号を指定することにより、制御するリレーやメモリが割り当てられる。またユニットのチャンネルのIOデバイスも使う。

サーボの制御パラメータ設定は、三菱やキーエンスPLCとほぼ同じだ。位置や速度をWデバイスにXFER(=三菱やキーエンスでいうBMOV)して、位置決め開始リレーをONする。

位置決めユニット設定(CX-ProgrammerのIOテーブルでCJ1W-NC482をダブルクリック)「ファイル」→「変数テーブル作成」で制御するデバイスを確認できる

同期の主軸・ギア比設定は メニューの「NCユニット」→「関連パラメータ設定」→「同期送り」 「出力設定」ボタン押下 →主軸・ギア比設定できる。これは三菱やキーエンスの同期パラメータ設定と似ている。

今回の場合だと同期制御するにはW110.8をONする。

同期位置送り指令対象のサーボ軸(従軸)の直接運転指令リレーエリアの[同期位置送りリレーW110.8]がON している間、主軸に同期して動作する。軸ステータスリレーエリアの[同期位置送り受付W181.8]がON したら、同期位置送り指令を受け付ける状態になっている。

なお、オムロンNXではEthercat標準装備されているので、特殊ユニットを経由せず、直接LANケーブルで通信できる。すげー。

オムロンNXはPLCOpenのMC_Moveで制御することになる。

三菱RCPUでプロトコルスタジオ

KEYENCEのPLCでシリアル通信やETHERNET通信ではプロトコルスタジオを使って簡単にコマンド送受信のプログラムが組めるが、三菱RCPUにもあるとのこと。

プログラムでG.CPRTCL H1 1 1 D100 M1000のようにチャンネル数(今回は1)とプロトコルの連続実行数(今回はプロトコル番号1のみ動かしたいので1)を指定して実行すれば、使える。

QJ71C24Nでも使えるとのこと。

もしプロトコルスタジオを使わないと、G.INPUTやG.OUTPUTでコマンド送受信プログラムを組む必要がある。