JP6471402B2 - Nc工作機械の制御方法 - Google Patents

Nc工作機械の制御方法 Download PDF

Info

Publication number
JP6471402B2
JP6471402B2 JP2014138743A JP2014138743A JP6471402B2 JP 6471402 B2 JP6471402 B2 JP 6471402B2 JP 2014138743 A JP2014138743 A JP 2014138743A JP 2014138743 A JP2014138743 A JP 2014138743A JP 6471402 B2 JP6471402 B2 JP 6471402B2
Authority
JP
Japan
Prior art keywords
machine tool
measurement
controller
command
probe
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014138743A
Other languages
English (en)
Other versions
JP2016018255A (ja
Inventor
耕樹 笠原
耕樹 笠原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitutoyo Corp
Original Assignee
Mitutoyo Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitutoyo Corp filed Critical Mitutoyo Corp
Priority to JP2014138743A priority Critical patent/JP6471402B2/ja
Publication of JP2016018255A publication Critical patent/JP2016018255A/ja
Application granted granted Critical
Publication of JP6471402B2 publication Critical patent/JP6471402B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Description

本発明はNC工作機械システムに関する。具体的には、三次元測定機用の測定プログラムを用いてNC工作機械に測定動作を実行させるためのシステムに関する。
NC工作機械(数値制御工作機械)でワークを精密加工するにあたり、加工の途中段階で必要な形状測定を行いたいというニーズがある。そこで、三次元測定機(CMM、Coordinate-measuring machine)で使用される測定プローブと同等のNC工作機械用プローブをNC工作機械に取り付け、NC工作機械上で三次元測定機と同等の測定を行うための技術が開発されている(例えば、特許文献1、2、3、4)。
NC工作機械で三次元測定を実行させるため、次のような方策が採用されている。まず、三次元測定機用の測定ソフトウェアを用意する。例えば、本出願人である株式会社ミツトヨは測定機のメーカであるところ、本出願人はMCOSMOS(Mitutoyo Controlled Open System for Modular Operation Support(登録商標))という測定用パッケージソフトウェアを提供している。この測定ソフトウェアというのは、例えばウィンドウズ(登録商標)などのOS上で動作し、三次元測定機(CMM)がもつ多種多様な測定機能を能率的かつ簡便に使いこなせるようにしたインターフェースを提供したり、さらに付加的な測定機能(付加的アプリケーション)との連繋を可能にしたりする。この測定用ソフトウェアを使い、「三次元測定機」における一連の測定動作、いわゆるパートプログラム等の測定プログラムを生成する。
ところで、NC工作機械と三次元測定機(CMM)とはもちろん全く別物である。NC工作機械はNCコントローラで制御される。
ここで、工作機械の業界標準として、NCコントローラはNC工作機械の駆動制御等をGコード系列の指令で行うようになっている。測定プログラムのコマンド(命令)は三次元測定機(CMM)を駆動制御するようにはなっているが、NC工作機械をダイレクトに制御できるようにはなっていない。そこで、測定プログラムをNC工作機械向けに変換する必要がある。このような変換機能を行うものとしてNCドライバの仕様がすでに知られている。したがって、測定プログラムとNCコントローラとの間にNCドライバを介在させることにより、プログラムした通りの測定動作をNC工作機械に実行させることができる。
特開平5−253800号公報 特開2000−317775号公報 国際公開WO01/002914号公報 特開2014−2654号公報
たしかに、一連の測定プログラムが用意されればNC工作機械に意図した通りの測定動作を実行させることができるのであるが、それでもなお不便な点がいくつかある。
第一に、一連の測定プログラムを組むという作業自体がかなり難しい。一連の測定プログラムを組むにあたっては、測定用パッケージソフトウェアを使用するとしたとしても三次元測定機そのものに習熟している必要があり、かなり専門的な知識や技量を要する。例えば、マスターワークや設計CAD図面があったとしても、ワーク座標、マシン座標、プローブ座標を頭の中で繋げながら測定時におけるプローブの一連の動きを数値入力で指令していくのは相当の技量である。測定機メーカは、不慣れなユーザのために測定プログラムの作成代行を提供しているほどである。
第二に、例えば試作品を加工しながらその都度測定を行いたいというニーズがある。製品を大量生産する段階になってくれば測定プログラムを組む作業に時間や費用を掛けることもできるが、その都度その都度測定したいといった場合に数値入力で測定プログラムを組むというのは非効率である。実際のところ、目の前に測定したい箇所があったとしても、どういう命令(測定プログラム)を与えれば意図した通りの測定動作をさせることができるかは専門家でもすぐにはわからないことがある。
ここで、三次元測定機にはジョイスティック等でプローブを手動操作させる機能がある。プローブを手動操作できれば、複雑な座標変換や数値入力が必要無く、直感的にプローブを動かすことができる。例えば、一連の測定プログラムを作成する際にティーチングを行ったり、測定したい箇所をその場でその都度測定したりするのに素晴らしく便利である。NC工作機械で測定動作を行うにあたってもプローブを手動で動かす機能を付加することで操作性を劇的に向上させることができるであろう。
本発明の目的は、測定プローブの手動操作をNC工作機械上で実現させることにある。
本発明のNC工作機械システムは、
工具に代えて測定用プローブを主軸に取り付けることができるNC工作機械と、
前記NC工作機械を駆動制御するNCコントローラと、
測定機用の測定ソフトウェアを格納しているとともに、前記NCコントローラに動作指令を発して前記NC工作機械に測定機に相当する動作をさせる端末装置と、を備えるNC工作機械システムであって、
前記端末装置には、手動操作によって前記測定プローブの移動方向および移動速さを入力指示する手動操作部が有線または無線で接続されている
ことを特徴とする。
本発明では、
前記端末装置は、前記手動操作部から入力された前記移動方向の入力指示を方向ベクトルとして前記NCコントローラに与え、
前記NCコントローラは、相対座標系の指令コードによって前記NC工作機械の駆動制御を行う
ことが好ましい。
本発明では、
前記NCコントローラは、前記端末装置との通信状態を確認し、前記端末装置との通信が有効に機能していることが確認できた場合にのみ、手動操作による移動指令でNC工作機械を駆動させる
ことが好ましい。
本発明では、
前記NCコントローラは、前記プローブが物体に接触しているときにはその旨を表わす接触状態フラグを立て、
前記端末装置は、前記接触状態フラグが立っている場合、手動操作部からの入力指示に関わらず、前記移動方向および前記移動速さの指示をすべてゼロにする
ことが好ましい。
本発明の計測マクロプログラムは、
手動操作部が接続された端末装置から発せられる動作指令に基づいてNC工作機械に測定機に相当する動作をさせるNCコントローラに組み込まれる計測マクロプログラムであって、
このNCコントローラに、
前記端末装置から与えられる移動指令を読み取らせ、
前記移動指令を相対座標系の指令コードとし、前記NC工作機械の駆動制御を実行させる
ことを特徴とする。
本発明のNC工作機械の制御方法は、
手動操作部が接続された端末装置から発せられる動作指令に基づいてNC工作機械に測定機に相当する動作をさせるNC工作機械の制御方法であって、
前記端末装置が、手動操作による移動方向の入力指示を受け付け、
前記端末装置が、前記移動方向の入力指示を方向ベクトルとしてNCコントローラに与え、
前記NCコントローラが、相対座標系の指令コードによって前記NC工作機械の駆動制御を行う
ことを特徴とする。
測定機能を具備するようにしたNC工作機械システムのシステム構成図。 手動操作部を示す図。 変数値レジスタに書き込まれる動作命令を例示した図。 NCドライバ220の動作を説明するためのフローチャート。 NCドライバ220の動作を説明するためのフローチャート。 NCドライバ220の動作を説明するためのフローチャート。 NCドライバ220の動作を説明するためのフローチャート。 NCコントローラ(計測マクロプログラム)による動作を説明するためのフローチャート。 NCコントローラ(計測マクロプログラム)による動作を説明するためのフローチャート。
本発明の実施形態を図示するとともに図中の各要素に付した符号を参照して説明する。
(第1実施形態)
図1は、測定機能を具備するようにしたNC工作機械システムのシステム構成図である。
NC工作機械システム100は、コンピュータ端末装置200と、NCコントローラ400と、NC工作機械500と、を備える。
コンピュータ端末装置200としては、CPUとメモリとを有し基本OSが入っているような小型コンピュータ端末装置(いわゆるパソコン(パーソナルコンピュータ))でもよい。
コンピュータ端末装置200には、モニタ(表示装置)201と、キーボード202およびマウス203(入力装置)と、手動操作部300と、が接続されている。
図2は、手動操作部300を示す図である。
手動操作部300は、プローブ(不図示)を手動操作で移動させるためのものである。言い換えると、NC工作機械500の主軸を手動操作で移動させ、これによって、主軸の先端に付設したプローブに任意の(思い通りの)動作をさせるものである。プローブを手動操作できることにより、その場その都度の必要に応じて任意に測定したり、ティーチングによって測定プログラムを簡便に作成したりすることができるようになる。
手動操作部300は、ジョイスティック320と、傾倒角検出手段330と、第1から第6スイッチ341−346と、を備える。
ジョイスティック320は、操作盤310に揺動可能に設けられ、プローブの移動方向および移動速さを手動で指示するための入力装置である。
ジョイスティック320として第1レバー321と第2レバー322とが設けられている。第1レバー321および第2レバー322は、基端側で操作盤310に揺動可能に支持されており、自由端側が手動操作により前後左右に揺動する。第1レバー321は、前後、左右、斜めを含めて自由に揺動するようになっており、プローブのX方向およびY方向の動きを指示するためのものである。第2レバー322は、前後に揺動するようになっており、プローブのZ方向の動きを指示するためのものである。
傾倒角検出手段330は、X角検出部331と、Y角検出部332と、Z角検出部333と、を有する。X角検出部331は、第1レバー321の下端で第1レバー321の左右の倒れ角を検出する。Y角検出部332は、第1レバー321の下端で第1レバー321の前後の倒れ角を検出する。Z角検出部333は、第2レバー322の下端で第2レバー322の前後の倒れ角を検出する。
第1スイッチ341から第6スイッチ346は操作盤310に設けられた押しボタン式のスイッチである。
第1スイッチ341から第6スイッチ346の機能割り当てを例示する。
第1スイッチ341は「移動スイッチ」である。移動スイッチ341を押してからジョイスティック320を倒すと、プローブは指示方向に指示速さで移動する。
第2スイッチ342は「微動スイッチ」である。微動スイッチ342を押してからジョイスティック320を倒すと、プローブは指示方向に指示速さで移動する。ただし、移動速さは、「移動スイッチ341」を押したときよりも格段に遅くなるように設定されている。
第3スイッチ343は、「測定スイッチ」である。測定スイッチ343を押してからジョイスティック320を倒すと、指示方向にあるワークの座標値を測定する測定動作を行う。
例えば、「測定スイッチ343」を押して、ジョイスティック320をある方向に倒す。(一瞬倒して、後は手を離してもいい。倒す角度量は大きくても小さくてもよい。)すると、プローブが指示方向に所定の速さで移動し、その移動はプローブがワークに接触するまで継続する。プローブがワークに接触したところで座標をサンプリングするとともに、プローブの移動を停止する。その後、プローブは決められた位置まで戻る。
第4スイッチ344は「停止スイッチ」である。前記「測定動作」の実行中に停止スイッチ344を押すと、プローブの移動をその場で停止させ、測定動作をキャンセルする。
第5スイッチ345は、「GoToスイッチ」である。プローブを任意の位置に移動させた後、「GoToスイッチ345」を押すと、その座標を記憶して、測定プログラム中にその座標への移動命令を追加する。
第6スイッチ346は、「キャンセルスイッチ」である。キャンセルスイッチ346を押すと、測定プログラム中の直前の命令を削除する。
なお、上記手動操作部300の構成は一つの例示に過ぎず、手動操作部300の構成は限定されない。例えば、汎用されているゲーム用のコントローラを使用してもよいし、キーボード202のカーソルキーやマウス203で方向指示ができるようにしてもよいであろう。または、タブレット端末やスマートフォンのタッチパネル入力を利用することもできる。
手動操作部300からの入力を読み取ること自体は、汎用OS(Windows(登録商標)など)が備えているインターフェース(例えばDirectInput)でできる。
手動操作部300とコンピュータ端末200との接続は有線接続であっても無線接続であってもよい。無線接続にしておけば、NC工作機械500の近くでワークを直に見ながら手動操作できるという便利さがある。
コンピュータ端末装置200には、測定用アプリケーションソフトウェア210と、NCドライバ220と、が格納されている。
測定用アプリケーションソフトウェア210は、三次元測定機用の測定ソフトウェアである。測定ソフトウェア210は、一連の測定動作を指示したり、測定データの処理(補間、輪郭抽出、幾何学的当てはめなど)を行ったり、ユーザインターフェース画面を提供したりする。
NCドライバ220は、測定ソフトウェア210とNCコントローラ400とを連繋させるドライバソフトである。
また、手動操作部300はNCドライバ220に連結されている。NCドライバ220は、測定機用の命令をNC工作機械500が予め備える動作機能に分解するとともにNCコントローラ400に動作指令を与える役割をもつ(具体的な例は後述する)。一連の測定動作がパートプログラムとして完成されている場合には、NCドライバ220は測定ソフトウェアの解析(変換)をバッチ処理で行うことが効率的であろう。一方、手動操作部300から逐次動作指令が入力されるような場合には、NCドライバ220は逐次処理を行うことになる。そして、NCドライバ220は、測定機用の命令を工作機械の動作に置き換えた後、動作指令をNCコントローラ400に与える。また、NCドライバ220は、NCコントローラ400から測定値を受け取った場合には、その測定値を測定ソフトウェア210に渡す。
NCコントローラ400は、NC工作機械500を駆動制御するための制御装置である。NCコントローラ400は、CPUおよびメモリの他、駆動制御回路410、各種レジスタ430、ループカウンタ440を備える。
駆動制御回路410は、Gコード指令に応じてNC工作機械500のモータその他の電気系統を制御するものである。各種レジスタ430およびカウンタ440については必要な箇所で後述する。
NCコントローラ400には、NC工作機械500を駆動制御するためのNCプログラム420が格納されている。
NCプログラム420には、メインプログラムとしての加工マクロプログラム421と、サブプログラムとしての計測マクロプログラム422と、が含まれる。加工マクロプログラム421は、NC工作機械500をまさにNC工作機械として動作させるためのメインプログラムであり、ワークを自動加工するために必要な一連のシーケンスを規定したプログラムである。
計測マクロプログラム422は、NC工作機械500を測定機として動作させるためのプログラムであり、NCドライバ220からの動作指令を読み取ってGコード系列の指令で駆動制御回路に命令を発する役割を持つ。ここで、NCドライバ220はNCコントローラ400に対して動作命令を発するところ、NCドライバ220は、それら動作命令をNCコントローラ400のレジスタ430に書き込む。(逆に、NCドライバ220は、レジスタ430を巡回検査することによってNCコントローラ400からの情報を受け取る。)動作命令は、命令の種類ごとに定められた”変数(識別子)”に書き込まれる(代入される)。
計測マクロプログラム422は、レジスタ430に書き込まれた動作命令を参照し、動作種類ごとに用意された処理ルーチンによってNC工作機械500を動作させる。計測マクロプログラム422は、工作機械の動作制御用に用意されているGコードで駆動指示を発する。すると、各種Gコードおよび指令値に応じて駆動制御回路410がNC工作機械500の駆動制御を実行する。つまり、計測マクロプログラム422は、指示された測定動作を工作機械用に用意されている動作機能を用いて実現させる。
なお、工作機械であればGコード自体はほぼ共通しているが、変数(識別子)など細かい仕様は工作機械ごとあるいはNCコントローラ400ごとに異なる。したがって、測定機メーカとしては、工作機械ごとあるいはNCコントローラ400ごとに適切なNCドライバ220および計測マクロプログラム422を作成し、必要に応じて工作機械のユーザに提供するというサービスを行うことになる。
レジスタ430には、動作命令が書き込まれる変数値レジスタ431の他、プローブの状態(接触/非接触状態)を表わすフラグを記録する接触状態フラグレジスタ432、測定動作の停止指示の有無を記録する停止指示フラグレジスタ433がある。変数値レジスタ431に書き込まれる動作命令を図3に例示する。本実施形態では手動操作を追加したことに第1の特徴がある。
図3の例でいうと、動作種別(その識別子は#903)として与える変数値に“100”を新設し、NCドライバ220からNCコントローラ400(計測マクロプログラム422)に手動操作でプローブの移動を指示できるようにした。その移動方向は、変数#900、#901、#902に代入する値で与えられ、その移動速さは変数#913に代入する値で与えられる。(より具体的な動作例については後述する。)接触状態フラグレジスタ432および停止指示フラグレジスタ433の動作および役割については、動作説明のときに説明する。
同じく、ループカウンタ440の動作および役割についても動作説明のときに説明する。
NC工作機械500は既知のものであるので詳しい説明は割愛するが、機能を簡略に記載しておく。NC工作機械500は、ワークに対して主軸を3軸方向(X軸方向、Y軸方向およびZ軸方向)に自在に相対移動できるようになっている(さらに各軸を回転させる機能を有する場合、最大6軸駆動というものもある)。駆動軸ごとにサーボモータとエンコーダとを有し、駆動軸ごとにフィードバック制御が可能となっている。そして、主軸の先端に工具または測定プローブを取り付けられるようになっている。
(動作の説明)
図4から図7のフローチャートを参照しながらNCドライバ220の動作を説明する。
まず、NCドライバ220は、ユーザによって選択されているモードを確認する(ST110)。モードとしては、リピートモードとシングルラーモードとがある。リピートモードというのは、既に用意されている測定パートプログラムを繰り返し実行してワークの測定を次々行うモードである。リピートモード(ST120:YES)における動作(ST130−ST150)はすでに開示されているので詳細な説明は割愛する(例えば特開2014−2654号公報を参照されたい)。
シングルラーモードは、マニュアル測定したり、ティーチングしたりするためのモードであり、すなわち、一つ一つの動作指令が逐次入力されるモードである。シングルラーモードが選択されている場合(ST120:NO)、NCドライバ220は、手動操作部300からの入力信号を監視する(ST210)。なお、図5中では「フローチャート」として表現する都合上処理ボックスST210を配置したが、シングルラーモードの場合、NCドライバ220は手動操作部300からの入力信号を監視し続ける。
さて、移動スイッチ341または微動スイッチ342が押された場合(ST220:YES)を説明する。この場合、ユーザがジョイスティック320を倒すとプローブが指示された方向に指示された速さで移動するようにしたい。NCドライバ220は、移動スイッチ341または微動スイッチ342が押されたことを検知した場合(ST220:YES)、NCコントローラ400の変数値レジスタ431中に#903=“100”を書き込む(ST230)。
なお、“#903”は、動作種別を書き込むために用意された変数(識別子)である。また、“100”は、継続移動を指示するために新設した変数値である。すなわち、“#903=100”のとき、NCコントローラ400は、移動方向の指示(#900、#901、#902)および移動速さの指示(#913)を短いサイクルで読み込むとともに、指示された動作(主軸の移動)の指令を継続的にNC工作機械500に与える。これにより、NC工作機械500が継続的に主軸(プローブ)を移動させるという動作が実現する。NCコントローラ400側の動作については項を改めて後述する(図8)。
さらに、NCドライバ220は、ループカウンタ440のカウント値を更新する(例えばカウントアップする)。正確にいうと、NCドライバ220は、NCコントローラに向けてループカウンタ440のカウント値を更新する指令を発する。ループカウンタ440はNCコントローラ400に内蔵されたカウンタであるところ、NCドライバ220側からの指令でループカウンタ440の更新に成功したということは、NCコントローラ400とNCドライバ220(コンピュータ端末装置200)との接続が正常であることを意味する。(NCドライバ220からの指令通りにループカウンタ440の更新が成功したか否かはNCコントローラ400の側で確認することになる(図8で後述))。
次に、NCドライバ220は、接触状態フラグレジスタ432に記録されているフラグ値を確認する(ST250)。
ここで、接触状態フラグレジスタ432はNCコントローラ400内のレジスタであり、プローブの状態(接触/非接触状態)を表わすフラグを記録するNC工作機械500に取り付けられたプローブが何か(例えばワーク)に接触すると、プローブからは接触信号が発せられる。この接触信号はNC工作機械500からNCコントローラ400に伝達される。NCコントローラ400は、接触信号を受けたら接触状態フラグを“1”にする。逆に、接触信号が無いときは接触状態フラグを“0”にする。
NCドライバ220は、接触状態フラグを確認し(ST250)、接触状態フラグが“0”である場合(ST260:YES)、続いて、移動指令をNCコントローラ400に発する。NCドライバ220は、手動操作部300からの入力を受けて、x座標値、y座標値、z座標値および移動速さをNCコントローラ400に指示する。すなわち、x座標値を#900に書き込み、y座標値を#901に書き込み、z座標値を#902に書き込み、移動速さを#913に書き込む。
手動操作部300からの入力信号をどのような換算でx座標値、y座標値、z座標値、移動速さに変換するかには様々なバリエーションが有り得る。
一例だけ挙げておく。
手動操作部300は、第1レバー321および第2レバー322が傾けられている角度量を内蔵している傾倒角検出手段330(X角検出部331、Y角検出部332、Z角検出部333)でそれぞれ検出し、NCドライバ220に入力する。
いま、この角度量の組を(θx、θy、θz)という数ベクトルΘで表わすとする。
NCドライバ220は、Θ(θx、θy、θz)の大きさを1にするように変換して(数ベクトルΘをΘの大きさで割る)、大きさ1の(単位)方向ベクトルを生成する。このようにして求まった(単位)方向ベクトルTがプローブの進行方向を表わし、(単位)方向ベクトルTの成分を(x座標値、y座標値、z座標値)とする。(当然であるが、大きさを1にしたのは便宜上のことであり、方向ベクトルの大きさ自体は拘泥するところではない。)一方、Θ(θx、θy、θz)の大きさが移動速さに相当する。移動スイッチ341が押されている場合には|Θ|に比較的大なる係数を乗したものを移動速さとし、微動スイッチ342が押されている場合には|Θ|に比較的小なる係数を乗したものを移動速さとする。
なお、手動操作のときには(x座標値、y座標値、z座標値)が方向ベクトルを意味しているのであって、移動先の絶対座標値を表わしているわけではない。手動操作のときに(x座標値、y座標値、z座標値)を方向ベクトルTと解釈し、方向ベクトルTの向きへ主軸(プローブ)を継続的に移動させるようにNC工作機械500を駆動制御しなければならない。それはNCコントローラ400の役割である(後述する)。
一方、ST260で接触状態フラグが“1”の場合、すなわち、プローブが何か(例えばワーク)に接触している場合、NCドライバ220は手動操作部300からの入力信号に関わらずプローブの移動を止める。このとき、NCドライバ220は、手動操作部300からの入力信号に関わらず、#900、#901、#902および#913をすべて“0”とする。これで、プローブは動きを止める。
次に、測定スイッチ343が押し下げされた場合の動作を説明する(ST220:NO、ST310:YES)。ユーザが測定スイッチ343を押すのは次のような状況である。事前に「移動」または「微動」によってプローブを測定対象箇所の近傍まで移動させておく。そして、測定スイッチ343を押し、それから、ジョイスティック320を測定対象箇所の方向に倒す。すると、プローブが測定対象箇所に向けて移動し、接触を検知したところで座標値をサンプリングし、プローブを所定の位置(例えば元の位置)に移動させる、という一連の動作が実行される。このようにしてユーザは任意の測定箇所を随時測定することができる。
測定スイッチ343の押し下げを検知したら、NCドライバ220は、NCコントローラ400の変数値レジスタ431中に#903=“2”を書き込む(ST320)。
#903=“2”は「測定」を指示するための変数値である。そして、NCドライバ220は、手動操作部300からの入力を受けて、x座標値、y座標値、z座標値および測定速さをNCコントローラ400に指示する。
x座標値、y座標値およびz座標値はジョイスティック320の各傾斜角によって指示される値であって、前述と同様にこれは方向ベクトルを意味する。
ただし、NC工作機械500には「測定」という機能はもともとない。そこで、NC工作機械500にもともとあるブロックスキップという機能を代用する。ブロックスキップという機能で「測定」を実現する都合上、方向ベクトルにはある程度の大きさが必要であり、そこで、(単位)方向ベクトルTに所定の係数(>1)を乗した値を(x座標値、y座標値、z座標値)とする。
ブロックスキップを用いて測定動作を実現する仕組み自体は本発明の主たるポイントではないのでこれ以上の説明は割愛するが、詳しくは、例えば特開2014−2654号公報を参照されたい。
また、「測定速さ」の値は予め設定されている値であって、ジョイスティック320の傾斜角度の大きさによらず一定とする。NCドライバ220は、x座標値を#900に書き込み、y座標値を#901に書き込み、z座標値を#902に書き込み、さらに、測定速さを#912に書き込む(ST330)。
NCコントローラ400は、変数値レジスタ431に書き込まれた指令に従ってNC工作機械500を駆動制御し、そして、この「測定」によって得た座標値をNCドライバ220に伝える。すなわち、NCコントローラ400は、測定値を#904、#905、#906に書き込み、NCドライバ220はこれを読み取る。NCドライバ220は、測定ソフトウェア210に測定値を渡し、測定ソフトウェア210によってデータ解析が実行される(ST340)。「測定」が終了したら、フローはST220に戻る。
なお、NCドライバ220は、手動操作部300からの入力を常に監視しているところ、測定動作が開始された後に停止スイッチ344の押下げを検知した場合(ST350)、測定動作を中止させる。
NCドライバ220は、停止スイッチ220の押下げを検知したら、NCコントローラ400の停止指示フラグレジスタ433にフラグ“1”を書き込む。NCコントローラ400では内蔵されているシーケンサーユニット(業界ではPMCと呼称されることがある)がレジスタ430やループカウンタ440を巡回監視している。停止指示フラグレジスタ433に“1”が入ったことを検知した場合、NCコントローラ400はNC工作機械の(測定)動作を中止させる。このようにして、ユーザは、測定動作の途中キャンセルを手動操作部300から指示することができる。
次に、GoToスイッチ345が押し下げられた場合(ST410:YES)、NCドライバ220は、プローブの現在位置(座標値)を取得して、その座標値への移動を測定パートプログラムに追加する(ST420)。
プローブの現在位置(座標値)は、変数値レジスタの#907−#911に書き込まれている。NCドライバ220は、変数値レジスタの#907−#911を読み取って、測定ソフトウェア210に渡す。
次に、キャンセルスイッチ346が押し下げられた場合(ST510:YES)、NCドライバ220は測定ソフトウェア210にキャンセル指示を出す。これにより、測定ソフトウェア210は測定パートプログラムの直前の命令を削除する。
シングルラーモードにおけるNCドライバ220の動作としては、図5、図6、図7のフローチャートで説明した動作を終了条件(ST530)が満たされるまで繰り返すということになる。
次に、図8、図9をNCコントローラ400側の動作を説明する。
図8、図9は、NCコントローラ400、具体的には、計測マクロプログラム422による動作を説明するためのフローチャートである。計測マクロプログラム422は、NC工作機械500を「測定機」として機能させる際に呼び出される。計測マクロプログラム422は、呼び出されるとまずNCコントローラ400のシーケンサーユニットに指示を出す。具体的には、計測マクロプログラム422はシーケンサーユニットにプローブの接触状態を監視させるとともに(ST610)、停止指示フラグレジスタの監視(ST620)をさせる。前述の通り、プローブが何か(例えばワーク)に接触したら、NCコントローラ400は接触状態フラグレジスタに“1”を書き込み、プローブから接触信号が無い場合は接触状態フラグレジスタを“0”にしておく。また、停止指示フラグに“1”が書き込まれたらNCコントローラ400はNC工作機械500の測定動作を中止させる(後に触れる)。
NCコントローラ400は、変数値レジスタ431を監視しているところ、NCドライバ220によって変数値レジスタに#903=100が書き込まれたとする(ST630:YES)。これは、シングルラーモードにおいて手動操作部300でプローブの継続移動が指令されたことを意味する。この場合、NCコントローラ400は、まず、ループカウンタ440の値を見て、ループカウンタ440が更新されているかを確かめる(ST640)。ループカウンタの更新が正常であれば(ST650:YES)、NCコントローラ400(計測マクロプログラム422)は、変数値レジスタ431の#900、#901、#902、#913に書き込まれた値に従って駆動制御回路410に動作指令を発する。
NCコントローラ400(駆動制御回路410)やNC工作機械500はGコード系列の命令で動作するので、計測マクロプログラム422は、継続移動の指令をそれに応じたGコードで駆動制御回路410に指令する。
そこで、G01とG91を使用する。
G01は、直線移動を指令するコードである。G91は、相対座標系を意味するコードである(言葉を換えると、現在位置に対してインクリメントせよという指令である)。G91のコードの下で、x座標値(#900)、y座標値(#901)、z座標値(#902)、さらに、移動速さ(#913)を駆動制御回路410に与える(ST660)。すると、NC工作機械500の主軸(プローブ)が手動操作部300で指示された方向に指示された速さで継続的に移動する。NCドライバ220がST220−ST270のループを繰り返すことで変数値レジスタ431の#900−#902、#913を書き換え、さらに、計測マクロプログラム422がST630−ST660を繰り返す。これにより、NC工作機械500の主軸(プローブ)が3次元測定機(CMM)の如くユーザが意図した通りの移動を応答性よく滑らかに行う。
ここで、ループカウンタ440の確認動作(ST640)においてループカウンタ440の更新が確認できなかったとする(ST650:NO)。この場合、シーケンサーユニット(NCコントローラ400)は、駆動制御回路410に「停止」を指示する(ST670)。ループカウンタ440はNCドライバ220によって更新されるものであるところ、ループカウンタ440の更新が無いとすれば、それはNCコントローラ400とNCドライバ220(コンピュータ端末装置200)との通信が不調であることを意味している。この場合には、変数値レジスタ431にどのような値が書き込まれていようと関係なく、計測マクロプログラム422は、駆動制御回路410に「停止」を指示する。
変数値レジスタ431の識別子#903の変数値が“100”以外の場合、図9のフローチャートのようになる。#903に100以外の値が与えられるのは、手動操作時ではなく、主として測定パートプログラムを実行しているときである。これらの動作のほとんどはすでに開示されているので逐一の詳細な説明は割愛するが(例えば特開2014−2654号公報を参照されたい)、本発明に関係するところを若干付言しておく。
#903=1のとき(ST710)、これは指示された座標値への移動指令を意味する。
このとき、計測マクロプログラムはG90というコードを用いる。G90は絶対座標系での移動指令である。駆動制御回路410は、G90の指令の下、#900(x座標値)、#901(y座標値)、#902(z座標値)で指示された座標値へNC工作機械500の主軸を移動させるようにフィードバック制御を行う。同じ移動指令であるが、#903=100のときにはG91という相対座標系を用いていることと対照であることに留意されたい。
#903=2のとき(ST720)、これは測定動作の指示である。
計測マクロプログラム422は、G31のコードで「測定動作」を実現する。正確にいうと、G31はブロックスキップを表わすコードであるが、この機能を用いることでNC工作機械500にワークとの接触検知をさせることができる(例えば特開2014−2654号公報を参照されたい)。計測マクロプログラム422はG31で「測定動作」を駆動制御回路410に指示するのであるが(ST721)、停止指示フラグを常時監視し(ST620)、停止指示フラグレジスタ433に“1”が書き込まれた場合(ST350)、即時に動作の停止を駆動制御回路410に指示する(ST722)。
停止スイッチの押し下げがあった場合にNCドライバが停止指示フラグを“1”にすることは前述した(ST350)。
このような構成を備える本実施形態によれば次の効果を奏する。
(1)NC工作機械500上で測定動作を行うにあたって手動操作部300によるマニュアル操作ができるようになった。
これにより、プローブを任意(思い通り)に移動させることが可能になり、その場その都度の必要に応じてワークを簡便に測定することができる。例えば試作品の加工段階で素晴らしく利便性を発揮するであろうし、数値入力で測定指示を打ち込む場合に比べて直感的操作が可能になるので工作機械上での測定機能を誰でも使いこなせるようになる。
なお、三次元測定機には手動操作部によるプローブのマニュアル操作という機能があるが、NC工作機械には主軸のマニュアル操作といった機能は用意されていなかった。
工作機械という性質上、人が工具をマニュアルで動かしてワークを精密加工するという必要がもともと無かったためと考えられる。工具をスタート位置に持っていくため軸ごとに手動のハンドルのようなものはあったかもしれないが、ジョイスティックのような操作部材で主軸を自在に動かすような機能は無かった。NC工作機械上で加工と測定とを交互にしたい、しかも工作機械上で効率よく簡便に「測定」を行いたいという新たな課題のもと、そのために好適な手段として、プローブの手動操作という機能が工作機械上でも実現するように本発明を着想したのである。
(2)手動操作部300からの移動指示でプローブを移動させるにあたり、継続移動(“100”)という動作指示を新たに設け、これをGコードのG91に対応させることとした。これにより、ジョイスティック320(手動操作部300)からの移動指令に従ってプローブが滑らかに移動する。
従来、測定パートプログラムからの移動指令は「位置決め(“1”)」で指示され、G90の絶対座標系で移動先の座標を与えるようになっていた。組み上げられた一連の測定パートプログラムでは、移動先は予め決まっているのであるから、このような指示方式を用いるのは当然のことである。
しかしながら、ジョイスティック320(手動操作部300)からの移動指令を絶対座標系で指示すると円滑な移動が実現できない。ジョイスティック320(手動操作部300)からの移動指令を絶対座標系(G90)で与えようとすると次のようなプロセスになる。
まず、プローブの現在位置を取得する。そのうえで、ジョイスティック320の傾倒方向および傾倒角の大きさから次の時点での移動先の座標値を(10、0、0)→(11、0、0)、(13、0、0)・・・というように時々刻々求める。それをNCコントローラ400に与え、NCコントローラ400は指示された座標値に向けてフィードバック制御で主軸を移動させる。
このような方式は従来の発想の延長線上にあるので設計としては組みやすいが、プローブの動きがぎこちなく応答性もよくない。
そこで、本発明者らは、ジョイスティック320(手動操作部300)からの移動指令は方向ベクトルで与えられるものとし、継続移動(“100”)という動作指示を新たに設け、駆動制御回路410にはG91のもとで座標を指示するようにした。そして、指示座標を短サイクルでダイナミックに更新することにより、ユーザの意図通りの滑らかな移動を実現可能とした。
(3)本実施形態ではNCコントローラ400にループカウンタ440を設けておき、ループカウンタ440の更新がNCドライバ220によって正常に行われている場合にだけ手動操作による移動指示を駆動制御回路410に発することをしている。前述のように、ジョイスティック320(手動操作部300)による移動指示は方向ベクトルであるとした。
このため、#903に“100”が代入されている間は#900−#902の値の通りに主軸が動き続けることになる。一つの問題として、変動値レジスタ431に#903=100が書き込まれた状態でNCドライバ220(コンピュータ端末200)とNCコントローラ400との通信が不調になった場合が考えられる。
この場合、ユーザの意図と関係なく、#900−#902の値の通りに主軸がどこまでも動き続けることになる。そこで、手動操作による移動指示を駆動制御回路410に発する前に、NCコントローラ400とNCドライバ220(コンピュータ端末装置200)との通信が正常であるかを確認するステップを介在させ、通信が不調の場合にはNC工作機械500を「停止」させることとした。
これにより、手動操作による利便性と安全性とを両立させることができる。
(4)NCコントローラ400に接触状態フラグレジスタ432を設け、接触状態フラグが“1”のときには手動操作による移動指令がNCコントローラ400に入力されないようにした。
手動操作にはやはり誤操作が避けられない。また、NCドライバ220(コンピュータ端末装置200)はNC工作機械500に直接繋がっているわけではないのでプローブが接触しているかどうかは直接には検知し得ない。そこで、プローブの接触状態がNCドライバ220の側でも確認できるように接触状態フラグレジスタ432を設け、プローブが何か(例えばワーク)に接触したら、手動操作入力に関わらずプローブ移動を自動で止めるようにした。
これにより、手動操作による利便性と安全性とを両立させることができる。
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
上記の識別子や変数値、フラグ値はすべて例示であって文字や数字の値そのものに拘泥しないのは当然である。
NCドライバとNCコントローラとの通信確認にループカウンタを用いる場合を例示したが、もちろん通信の良/不良を確認する手段は他にも種々有り得る。
100…NC工作機械システム、200…コンピュータ端末装置、201…モニタ、202…キーボード、203…マウス、210…測定ソフトウェア、220…NCドライバ、300…手動操作部、310…操作盤、320…ジョイスティック、321…第1レバー、322…第2レバー、330…傾倒角検出手段、331…X角検出部、332…Y角検出部、333…Z角検出部、341…移動スイッチ、342…微動スイッチ、343…測定スイッチ、344…停止スイッチ、345…GoToスイッチ、346…キャンセルスイッチ、400…NCコントローラ、410…駆動制御回路、420…NCプログラム、421…加工マクロプログラム、422…計測マクロプログラム、430…レジスタ、431…変数値レジスタ、432…接触状態フラグレジスタ、433…停止指示フラグレジスタ、440…ループカウンタ、500…NC工作機械。

Claims (2)

  1. 工具に代えて測定用プローブを主軸に取り付けることができるNC工作機械と、
    前記NC工作機械を駆動制御するNCコントローラと、
    測定機用の測定ソフトウェアを格納しているとともに、前記NCコントローラに動作指令を発して前記NC工作機械に測定機に相当する動作をさせる端末装置と、
    を備えるNC工作機械システムの前記NC工作機械に測定機に相当する動作をさせるNC工作機械の制御方法であって、
    前記端末装置には、手動操作によって前記測定プローブの移動方向および移動速さを入力指示する手動操作部が有線または無線で接続されており、
    前記NCコントローラは、前記端末装置からの動作命令が書き込まれるレジスタと、前記端末装置からの更新指令によって更新されるループカウンタと、を有しており、
    前記端末装置は、前記手動操作部による入力指示で前記NC工作機械を制御するにあたって、前記NCコントローラの前記レジスタに継続移動を指示する指令を書き込むとともに、前記ループカウンタのカウント値を更新する指令を前記NCコントローラに向けて発し、続いて、前記手動操作部から入力された前記移動方向および前記移動速さの入力指示を前記NCコントローラに与え、
    前記NCコントローラは、前記レジスタに前記継続移動を指示する指令が書き込まれている場合、前記ループカウンタの更新を確認し、前記ループカウンタの更新が確認できた場合には、相対座標系の指令コードによって前記NC工作機械の主軸を前記入力指示の前記移動方向および前記移動速さで継続的に移動させる
    ことを特徴とするNC工作機械の制御方法。
  2. 請求項1に記載のNC工作機械の制御方法において、
    前記NCコントローラは、前記測定用プローブが物体に接触しているときにはその旨を表わす接触状態フラグを立て、
    前記端末装置は、前記接触状態フラグが立っている場合、前記手動操作部からの入力指示に関わらず、前記移動方向および前記移動速さの指示をすべてゼロにする
    ことを特徴とするNC工作機械の制御方法。
JP2014138743A 2014-07-04 2014-07-04 Nc工作機械の制御方法 Active JP6471402B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014138743A JP6471402B2 (ja) 2014-07-04 2014-07-04 Nc工作機械の制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014138743A JP6471402B2 (ja) 2014-07-04 2014-07-04 Nc工作機械の制御方法

Publications (2)

Publication Number Publication Date
JP2016018255A JP2016018255A (ja) 2016-02-01
JP6471402B2 true JP6471402B2 (ja) 2019-02-20

Family

ID=55233469

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014138743A Active JP6471402B2 (ja) 2014-07-04 2014-07-04 Nc工作機械の制御方法

Country Status (1)

Country Link
JP (1) JP6471402B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190111534A1 (en) * 2016-03-31 2019-04-18 Makino Milling Machine Co., Ltd. Instrument for measuring workpiece, and machine tool
CN106292545B (zh) * 2016-08-18 2019-03-01 四川泛华航空仪表电器有限公司 利用宏程序数控加工圆柱曲面的方法
CN109661292B (zh) * 2016-09-09 2022-01-18 株式会社牧野铣床制作所 工件测定方法
JP6840585B2 (ja) * 2017-03-21 2021-03-10 株式会社ミツトヨ 測定システム、測定プログラム及び制御方法
JP6674005B1 (ja) 2018-10-26 2020-04-01 キタムラ機械株式会社 工作機械操作システムおよび該システムによる工作機械操作方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2662864B2 (ja) * 1987-07-09 1997-10-15 ファナック株式会社 産業用ロボット制御装置
JPH05253800A (ja) * 1992-03-10 1993-10-05 Okuma Mach Works Ltd ワークの加工精度検査機能を備えたマシニングセンタ
JP3100296B2 (ja) * 1994-09-30 2000-10-16 株式会社ミツトヨ 座標測定機のプローブ駆動方法及び装置
JP3698216B2 (ja) * 1995-05-02 2005-09-21 株式会社ミツトヨ ジョイスティック駆動装置
JP3439331B2 (ja) * 1997-09-12 2003-08-25 株式会社ミツトヨ プローブ座標系駆動装置
JP2000317775A (ja) * 1999-04-28 2000-11-21 Mitsutoyo Corp 加工システム
US6671571B1 (en) * 1999-07-05 2003-12-30 Mitutoyo Corporation Method for NC- programming and system for NC- machining
JP2005003583A (ja) * 2003-06-13 2005-01-06 Mitsutoyo Corp 駆動制御装置およびこれを用いた測定機
JP5906956B2 (ja) * 2012-06-20 2016-04-20 株式会社ミツトヨ Nc工作機械の制御方法、制御プログラム、及び制御装置

Also Published As

Publication number Publication date
JP2016018255A (ja) 2016-02-01

Similar Documents

Publication Publication Date Title
JP6471402B2 (ja) Nc工作機械の制御方法
US10814484B2 (en) Method, control system and movement setting means for controlling the movements of articulated arms of an industrial robot
CN110394780B (zh) 机器人的仿真装置
CN108290291B (zh) 机器人系统
EP2917001B1 (en) Hybrid gesture control haptic system
JP2014512530A (ja) 座標位置決め装置
JP5906956B2 (ja) Nc工作機械の制御方法、制御プログラム、及び制御装置
JP6629759B2 (ja) 操作装置及び制御システム
KR20180064494A (ko) 로보틱 시스템
US10086517B2 (en) Apparatus and method for operating robots
JP2018183845A (ja) ロボットを操作するための操作装置、ロボットシステム、および操作方法
JP2018200278A (ja) 位置計測装置の操作方法
JP6625266B1 (ja) ロボット制御装置
WO2016162066A1 (en) An industrial robot and a method for lead-through programming of an industrial robot
CN106808476B (zh) 作业装置以及作业装置中的示教方法
JP2020110867A (ja) 機械の教示に用いる機械教示端末、機械、プログラム及び安全確認方法
US10589428B1 (en) Automatic distribution of control functions between multiple knob controllers based on proximity and relative positioning of the knobs
JP5201336B2 (ja) 形状測定装置
JP6601201B2 (ja) ロボット操作装置、及びロボット操作プログラム
JP4652011B2 (ja) 三次元座標測定システム及びそれに用いるパートプログラム
JP2020001099A (ja) 制御装置、ロボット、及び、ロボットシステム
CN115996822B (zh) 控制工业致动器的方法、控制系统和工业致动器系统
KR20190001842A (ko) 다관절 햅틱 장치의 성능 평가 시스템 및 이를 이용한 성능 평가 방법
US10921978B2 (en) Shaft feeder
WO2022269927A1 (ja) プログラム作成装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170607

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180608

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180803

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20181210

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190106

R150 Certificate of patent or registration of utility model

Ref document number: 6471402

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250