テクノからのお知らせ

2015/05/25 

【ファインモーション機能のご紹介①】接線制御

【ファインモーション機能のご紹介①】接線制御
テクノの野崎です。

技術コラムの更新が中々できず、申し訳ありません。
久しぶりのコラムですが、今回からはファインモーションの特徴的な機能をご紹介していきたいと思います。
まずは「接線制御/法線制御」です。

接線制御はカッティングや溶接マシンなどに必要な機能です。
また、弊社の接線制御機能は法線制御も可能です。

■接線制御とは?
布・シート・板などのカッターによる形状切断では、形状軌跡の接線方向(カッターの進行方向)に刃先を常に向ける必要があります。もし、接線方向と刃先の向きが異なってしまうと、刃が折れてしまうことがあります。刃物を回転させる軸(θ軸)がXYベクトルの方向を常時管理して、自動的に回転するようにします。
また、角の箇所では一旦、刃先を上昇させ、次の移動方向にθ軸の向きを合わせてから刃を下げる必要があります。
つまり、常に接線方向に刃先を制御します。

■法線制御とは?
軌跡に対して常に法線方向を向くよう制御した機能です。
溶接トーチを法線方向に向かせるなど主に溶接マシンなどに使われます。

■テクノの接線/法線制御の特長
①緻密&正確&なめらか
制御周期毎(例0.125msec)にXYベクトルを計算してθ軸を制御します。
また、X軸、Y軸とθ軸が完全に同期した補間となります。
XYθ軸の位置ループゲインや加減速時定数を一致させることで実動作も正確に同期させることが可能です。
細かい制御周期でθ軸を回転させるためなめらかに制御できます。

②自動運転/手動運転で動作
弊社の接線/法線制御機能は自動運転や手動運転(例 手動パルサやジョグなど)に関係なく機能します。つまり、手動パルサで動かしている場合でもカッティングなどができます。

③テクノ言語・G言語・PC・ラダーから指定が可能
テクノ言語やG言語の運転プログラム内やPC・ラダーからコマンドレベルで接線/法線制御の有効/無効を指定することができます。また、θ軸を直接指令することも可能です。

■他社メーカーの問題点
他社メーカーの機能では自動運転の運転プログラムにてXY指令からθ軸の向きを先に計算する方法があります。しかし、
・手動運転(例 手動パルサやジョグなど)ではθ軸は動作しません
・運転プログラムの中で介入動作により軌跡が変わった場合、θ軸は追従(適した角度に変更)できません

■更なる専用化の例
テクノでは接線/法線制御機能を更にカスタマイズし、お客様専用機能として実現した例があります。

段ボールなどのカッティングでは刃先を接線方向より若干外側に向ける必要があります。
補正する角度を指定して常に外側へ刃先を向けるように制御しました。

■ファインモーション機能にご興味のある方
マニュアルダウンロードページの各種製品「機能編:TB00-XXXXE」や「運転プログラム:TB00-XXXXF」をご確認ください。
※マニュアルダウンロードページへは会員登録が必要です。

ご質問などはお問合せもしくはお電話ください。

2014/09/12 

【テクノ言語とG言語のご紹介⑬】テクノ言語のサンプル紹介(ドリリングマシン)

【テクノ言語と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言語の対応リストもあります。

2014/09/11 

【テクノ言語と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言語の対応リストもあります。

2014/09/09 

【テクノ言語と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言語の対応リストもあります。

2014/09/08 

【テクノ言語とG言語のご紹介⑩】テクノ言語のサンプル紹介(穴あけマシン)

【テクノ言語とG言語のご紹介⑩】テクノ言語のサンプル紹介(穴あけマシン)
テクノの野崎です。

今回からはテクノ言語・G言語のサンプルプログラムをご紹介していきます。
まずは「穴あけマシン」を例にとってご紹介します。
※テクノ言語・G言語は1行1動作の形式でプログラムを作成します。

右絵はX、Y、Z軸の穴あけマシンを想定しています。

X/Y軸で位置決めをし、Z軸で穴あけ。この動作を穴数だけ繰り返すといった流れです。

■テクノ言語のサンプル例
PTPとLINのみを使用した例です。
※PTPとLINについては「テクノ言語とG言語のご紹介④と⑤」をご確認ください。

PTP X1000 Y0;    /* 位置決め */
LIN Z-100 F1000 ;  /* 穴開け下降(1穴目) */
LIN Z100;        /* 戻り 上昇 */
PTP X0 Y1000;    /* 2穴目へ 位置決め */
LIN Z-100;       /* 穴開け下降(2穴目) */
LIN Z100;        /* 戻り 上昇 */

■G言語のサンプル例
G00 X1000 Y0;    /* 位置決め   
G01 Z-100 F1000;  /* 穴開け下降(1穴目)
G01 Z100;       /* 戻り 上昇
G00 X0 Y1000;    /* 2穴目へ位置決め
G01 Z-100;      /* 穴開け下降(2穴目)
G01 Z100;       /* 戻り 上昇


シンプルに作成できることがおわかり頂けたのではないでしょうか。
次回は軸と汎用出力を同時に制御した場合のパンチングマシンの例を掲載します。


▼テクノ言語にご興味のある方:テクノ言語運転プログラムをぜひ、ご確認ください。

テクノ言語/G言語の対応リストもあります。

  • 前へ
  • 次へ