今回行った案件では、文字列操作関数を駆使する必要があったため、ファンクションブロックとKVスクリプトを使いまくった。


もはやラダーよりもスクリプトのプログラムのほうが多い。そんな案件もある。
電気制御設計・施工とシステムの調和
今回行った案件では、文字列操作関数を駆使する必要があったため、ファンクションブロックとKVスクリプトを使いまくった。
もはやラダーよりもスクリプトのプログラムのほうが多い。そんな案件もある。
今回はキーエンスPLCでの変数機能を使った2次元配列プログラムを紹介する。
例えばPLCでのパレタイジング処理(箱などに物をぶつからないように順番に積んでいく制御)で、現在の箱詰め状態をタッチパネルに表示したいとする。
そのとき変数機能を使った2次元配列が便利だ。最近のPLCはどのメーカーもデバイス番号(デバイスメモリ)のみならず変数が使用できる。今関わっている案件でも変数を多用している。
例えばキーエンスのタッチパネルVTでは変数を割り当てることができる。(画像のようにVARを指定する。)
パレタイジング状態を示す各セル部分を2次元配列(縦×横)の変数にして設定しておく。
そしてPLC側で変数を登録する。(今回はキーエンスKVスタジオで紹介する。)
今回は8行×7列(添え字は[0~7]×[0~6])の2次元配列を使う。
後はPLC側でKVスクリプトやST言語で2次元配列を使って表示する。今回の案件では各ロボット移動座標も8×7の56ポイント対応を行ったが、2次元配列を使ったため、連日の終電残業の中、疲れた頭脳でも簡潔にプログラムを組むことができた。
今のPLCは変数のみでプログラムを組むことも可能だ。ただそれはやりすぎなのかなあと思ったりもする。変数が使えなかった時代の古いプログラムの改修も我々には大事な仕事であり、デバイス番号と変数のいいところを折衷して、ファンクションブロックも含めて、これから模索していくことになるだろう。
今回はキーエンスMECHATROLINK-IIIのユニットKV-XH16MLで同期中にカムデータを切り替える方法について紹介する。
例えば同期中に外部エンコーダによって直線カムでサーボ同期していたものを、ある時点で同期したままバックさせるカムデータに切り替えるとき、利用される。
サーボ走行切断のときは、切断後一旦サーボ同期を解除して位置決めでゼロ点位置まで戻す方法もある。
※実際、この方式でうまくいっているものもある。
しかしこの方法は繰り返しになるが、一旦サーボ同期を解除しなければならない。
※サーボ同期したまま、クラッチをOFFにしてもサーボは単独で位置決めできない。クラッチOFFは同期から離れるだけ。
同期中にカムデータを切り替えるプログラムを以下に示す。
同期カム切替番号(バッファアドレス軸1なら#40050)、
同期カム切替位置(バッファアドレス軸1なら#40052)を指定して、
同期カム切替要求リレーをONするだけである。
同期カム切替番号はカム番号を入れればいいだけだが、同期カム切替位置は制御点番号を指定しなければならない。
制御点番号とはカム分解能のうち、どの位置かを示すものである。
IAIロボシリンダのPCON,SCONやRCONはPLCからCC-LINKやETHERNET/IPで
割り当てられた信号やデータを読み書きすれば制御できるが、
ASELシリーズはいくらPLCから指令しても、
内部にSEL言語でプログラムを組まないと動作しない。
以下SEL言語のプログラム例だ。
※PPUT(位置データ設定)は、No.199箱から読み出す。
INBはNo.99箱へ読み出す。
No. B E N Cnd Cmnd Operand1 Operand2 Pst Comment
1 TAG 1 Main
2 TAG 2 動作開始動作
3 INB 64 8 (移動量 0.1mm)
4 LET 199 *99
5 DIV 199 10
6 PPUT 1 1 目標位置設定
7 INB 96 8 (速度 1mm/sec)
8 LET 1 *99
9 PVEL *1 1 移動速度設定
10 BTOF 302 位置決め完了OFF
11 MOVL 1 ポジション1 動作開始
12 BTON 302 位置決め完了ON
13 GOTO 1 Mainへ戻る
14 EXIT
今回はキーエンスMECHATROLINK-IIIのユニットKV-XH16MLで同期の設定を紹介する。
MECHATROLINK-Ⅱでも同様の設定だ。(KV MOTION+で行う。)
なお、MECHATROLINK-Ⅱ時代のサーボ制御はhttp://sugielectric.php.xdomain.jp/plc/servo.htmlでも紹介しているので参照頂きたい。
まずKV-XH16MLの「同期制御設定」の同期パラメータで主軸を設定する。※今回は主軸を軸1、従軸を軸2にする。
カムや進角補正もここで設定可能だ。
あとは各軸の主軸クラッチ指令フラグや同期制御始動フラグ(バッファメモリやリレーで割り当てられる)を操作して同期プログラムを作っていく。三菱シンプルモーションと同じだ。
一度でもモーションプログラムを一から作った経験があれば、他のメーカーのPLCや通信方式が異なっても、サーボ機能は似通っていたり同じ概念なので、最初から学習するより、学習期間が大幅に短くて済む。
もはやサーボだけでなくIAI・オリエンタルモーターの制御も多くなってきた。
それだけIAI・オリエンタルモーターが産業機械にとって当たり前に使われる。