【ファインモーション機能のご紹介②】高精度ラッチ
テクノの野崎です。
前回から始まったファインモーションの特徴的な機能シリーズの第2回目になります。
今回は「高精度ラッチ」です。
高精度ラッチはツール長の自動計測やタッチプローブでの形状検査(計測)、立体(3D)形状検査(計測)などに用いられます。
タッチプローブ(特殊なセンサで接触を検知)などを多軸駆動機構(ヘッド)に取り付けて、計測対象ワークに接触させます。その際、センサ入力でフィードバックカウンタ座標をラッチ(ハード的に記憶)して位置情報を計測します。
例えば、金属加工をする工作機械を想定すると金属ワークを配置した際の配置のずれを検査したり、金属ワークの形状を検査することで加工精度を高めています。
カメラで検査する場合、光の反射などで要求精度が出ないことが多くありますが、メカ的センサ&高精度ラッチでは光などの外乱に影響されないため一定した高精度な検査(計測)が可能となります。
■高精度ラッチの仕組み
タッチプローブなどのセンサがワークに接触したタイミングはサーボアンプ内部の制御周期と一致しているわけではありません。サーボアンプが持っている位置情報とセンサが接触したタイミング(サーボアンプの制御周期と一致していない)を照らし合わせてサーボアンプ内で位置情報を補正します。
しかし、サーボアンプの位置情報は電源ONしてからの情報のため上位のモーションコントローラ側の位置情報とは異なる値です。
上位のモーションコントローラはサーボアンプ内で補正された位置情報を受け取り、モーションコントローラが管理している座標系に変換することでユーザが使い易い位置情報としています。
テクノの高精度ラッチはこの変換機能を使って、高精度な形状検査や補正動作などを可能としています。
■テクノの高精度ラッチの特長
①マクロ機能と連携が可能
計測した位置情報をマクロ変数に代入したり、読み込んだりすることが可能です。
運転プログラムやPCソフト、PLCラダーから自由に活かすことができます。
②多軸同期計測が可能
タッチプローブなどのセンサー信号を複数のサーボアンプに並列に入力することができます。また、同期して計測することも可能です。
■テクノ高精度ラッチの応用例
加工機の工具計測以外にもパイプ溶接の開先形状計測に使用しました。
溶接トーチの芯線自身をタッチセンサにしてトーチを左右上下に動かすことで開先の断面形状を計測しました。
複数点を計測することで開先の角度やギャップ、段差違いを計測し、形状に応じて溶接条件を自動設定し精度を高めることに成功しました。
■ファインモーション機能にご興味のある方
マニュアルダウンロードページの各種製品「機能編:TB00-XXXXE」や「運転プログラム:TB00-XXXXF」をご確認ください。
※マニュアルダウンロードページへは会員登録が必要です。
ご質問などはお問合せもしくはお電話ください。
【ファインモーション機能のご紹介①】接線制御
テクノの野崎です。
技術コラムの更新が中々できず、申し訳ありません。
久しぶりのコラムですが、今回からはファインモーションの特徴的な機能をご紹介していきたいと思います。
まずは「接線制御/法線制御」です。
接線制御はカッティングや溶接マシンなどに必要な機能です。
また、弊社の接線制御機能は法線制御も可能です。
■接線制御とは?
布・シート・板などのカッターによる形状切断では、形状軌跡の接線方向(カッターの進行方向)に刃先を常に向ける必要があります。もし、接線方向と刃先の向きが異なってしまうと、刃が折れてしまうことがあります。刃物を回転させる軸(θ軸)がXYベクトルの方向を常時管理して、自動的に回転するようにします。
また、角の箇所では一旦、刃先を上昇させ、次の移動方向にθ軸の向きを合わせてから刃を下げる必要があります。
つまり、常に接線方向に刃先を制御します。
■法線制御とは?
軌跡に対して常に法線方向を向くよう制御した機能です。
溶接トーチを法線方向に向かせるなど主に溶接マシンなどに使われます。
■テクノの接線/法線制御の特長
①緻密&正確&なめらか
制御周期毎(例0.125msec)にXYベクトルを計算してθ軸を制御します。
また、X軸、Y軸とθ軸が完全に同期した補間となります。
XYθ軸の位置ループゲインや加減速時定数を一致させることで実動作も正確に同期させることが可能です。
細かい制御周期でθ軸を回転させるためなめらかに制御できます。
②自動運転/手動運転で動作
弊社の接線/法線制御機能は自動運転や手動運転(例 手動パルサやジョグなど)に関係なく機能します。つまり、手動パルサで動かしている場合でもカッティングなどができます。
③テクノ言語・G言語・PC・ラダーから指定が可能
テクノ言語やG言語の運転プログラム内やPC・ラダーからコマンドレベルで接線/法線制御の有効/無効を指定することができます。また、θ軸を直接指令することも可能です。
■他社メーカーの問題点
他社メーカーの機能では自動運転の運転プログラムにてXY指令からθ軸の向きを先に計算する方法があります。しかし、
・手動運転(例 手動パルサやジョグなど)ではθ軸は動作しません
・運転プログラムの中で介入動作により軌跡が変わった場合、θ軸は追従(適した角度に変更)できません
■更なる専用化の例
テクノでは接線/法線制御機能を更にカスタマイズし、お客様専用機能として実現した例があります。
例
段ボールなどのカッティングでは刃先を接線方向より若干外側に向ける必要があります。
補正する角度を指定して常に外側へ刃先を向けるように制御しました。
■ファインモーション機能にご興味のある方
マニュアルダウンロードページの各種製品「機能編:TB00-XXXXE」や「運転プログラム:TB00-XXXXF」をご確認ください。
※マニュアルダウンロードページへは会員登録が必要です。
ご質問などはお問合せもしくはお電話ください。
【テクノ言語とG言語のご紹介⑬】テクノ言語のサンプル紹介(ドリリングマシン)
テクノの野崎です。
今回のテクノ言語・G言語のサンプルプログラムは「ドリリングマシン」を例にとってご紹介します。
また、前回お伝えしたマクロ変数を用いたプログラムでご紹介します。
※テクノ言語・G言語は1行1動作の形式でプログラムを作成します。
右絵はドリリングマシンを連続補間で制御する際のイメージを示しています。
■テクノ言語のサンプル例
PTP Z#1000; /* 穴あけ開始位置へ */
LIN Z#1001 F#1002;/* F1速度でL1深さ穴あけ */
LIN Z#1003 F#1004;/* F2速度でL2深さ穴あけ */
LIN Z#1005 F#1006;/* F3速度でL3深さ穴あけ */
■G言語のサンプル例
G00 Z#1000; /* 穴あけ開始位置へ */
G01 Z#1001 F#1002; /* F1速度でL1深さ穴あけ */
G01 Z#1003 F#1004; /* F2速度でL2深さ穴あけ */
G01 Z#1005 F#1006; /* F3速度でL3深さ穴あけ */
▼テクノ言語にご興味のある方:テクノ言語運転プログラムをぜひ、ご確認ください。
▼テクノ言語/G言語の対応リストもあります。
【テクノ言語とG言語のご紹介⑫】テクノ言語のサンプル紹介(マクロ変数)
テクノの野崎です。
今回はテクノ言語における「マクロ変数」をご紹介します。
※テクノ言語・G言語は1行1動作の形式でプログラムを作成します。
運転プログラムの中で、変数や演算(四則演算、判別)を使って、移動指令の移動量や、繰り返し実行時の繰り返し回数、実行するサブルーチンなどを状況に応じて変更したいときに使用します。
マクロ変数は「#XXXX」(XXXXはレジスタ番号)で記載します。
詳細は各種ユーザーズマニュアルの「運転プログラム」をご確認ください。
※マニュアル閲覧には会員登録が必要です。
マクロは①代入、②演算、③条件判断(IF文)、④変数指定が可能です。
G言語でもマクロ変数は使用できます。
①代入
マクロ変数に対し、マクロ変数や即値の代入ができます。
======================================
#1000 = 15; /* ワード形式のマクロ変数へ値(15=0xF)代入 */
#1001 = #1600; /* ワード形式のマクロ変数へ入力ポート0(#1600)の状態を代入 */
#5502 = 6400000; /* ロングワード形式のマクロ変数へ値代入 */
======================================
②演算
マクロ変数に対し、演算を行う事ができます。
四則演算や論理演算を使用し、カウンタや設定値の計算だけでなく、入力やステータスの特定ビットの状態確認なども可能です。
======================================
#1000 = 100; /* 初期値の代入 */
:LOOP
#1532 = #1000; /* オーバライドの変更 */
#1000 = #1000 + 1; /* ワード形式のマクロ変数をインクリメント */
#1000 = #1000 & 127; /* 0~127の範囲で変化するように変更。*/
TIM1.0;
JMP LOOP; /* LOOPラベルへジャンプ。 */
END;
======================================
③条件判断
IF命令を使った条件判断を行うことができます。
マクロ変数を経由することで、演算結果だけでなく、ステータスや入出力状態などの内部情報での分岐も行えます。
======================================
#1000 = 1; /* オーバライド増分値 */
:LOOP
IF #1532 == 200; /* オーバライドが200%の場合 */
#1000 = -1; /* 増分値の符号反転 */
ENDIF;
IF #1532 == 0; /* オーバライドが0%の場合 */
#1000 = 1; /* 増分値の符号反転 */
ENDIF;
#1532 = #1532 + #1000; /* マクロ変数経由でオーバライドを変更 */
TIM1.0;
JMP LOOP; /* LOOPラベルへジャンプ。 */
END;
======================================
④変数指定
移動命令などのパラメータ(目標位置や速度など)をマクロ変数で指定することができます。
マクロ変数で指定することで、運転プログラム内の演算結果から動きを変化させることや、PCやラダーからマクロ変数を指定することで動きを変更できます。
外部から#5500に1辺の長さを設定。
#5500から移動量を計算し、正方形を描画し続けます。
======================================
/*#5500に1辺の長さを設定*/
#5504 = 30000; /* F値は30kpps */
:LOOP
#5502 = #5500; /* 移動量を指定 */
LIN X#5502 Y0 F#5504;
LIN X0 Y#5502 F#5504;
LIN X-#5502 Y0 F#5504;
LIN X0 Y-#5502 F#5504;
JMP LOOP;
END;
======================================
▼テクノ言語にご興味のある方:テクノ言語運転プログラムをぜひ、ご確認ください。
▼テクノ言語/G言語の対応リストもあります。
【テクノ言語とG言語のご紹介⑪】テクノ言語のサンプル紹介(パンチングマシン)
テクノの野崎です。
今回のテクノ言語・G言語のサンプルプログラムは軸と汎用出力(パンチの下降/上昇)を同時に制御した「パンチングマシン」を例にとってご紹介します。
※テクノ言語・G言語は1行1動作の形式でプログラムを作成します。
右絵はX、Y軸、I/Oでパンチの下降/上昇を行うパンチングマシンを示しています。
■テクノ言語のサンプル例
PTP X1000 Y0; /*位置決め*/
ONR00 TIM1.0; /*パンチ下降後1秒待*/
OFR00 TIM0.5; /*パンチ上昇後0.5秒待ち*/
(各位置に合わせて繰り返し)
■G言語のサンプル例
G00 X1000 Y0; /*位置決め*/
#1641 = #1641 | 0x0001; /*Ro00をON(パンチ)*/
G04 P1.0; /*パンチ下降後1秒待*/
#1641 = #1641 & 0xFFFE; /*Ro00をOFF*/
G04 P0.5; /*パンチ上昇後0.5秒待*/
(繰り返し)
(#1641のbit0に、汎用出力Ro00を割り付け)
次回はマクロ機能をご紹介します。
▼テクノ言語にご興味のある方:テクノ言語運転プログラムをぜひ、ご確認ください。
▼テクノ言語/G言語の対応リストもあります。