(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0012】
以下、添付の図面を参照して本発明の実施形態の一例について説明する。なお、各図面において同一又は相当の部分に対しては同一の符号を附すこととする。
【0013】
(第1実施形態)
図1は、第1実施形態に係る数値制御システムを示す図である。
図1に示す数値制御システム1は、工作機械(図示省略)を制御するシステムであり、数値制御装置10と画像処理装置20とを備える。
画像処理装置20は、視覚センサ(撮像装置)2によって撮像された工作機械における工具T又はワークWの画像を画像処理する。視覚センサ2は、工作機械における工具T又はワークWを撮像する。なお、撮像装置としては、視覚センサに限定されず、例えば、カメラ又は3次元ビジョンセンサなどの種々の撮像装置であってもよい。また、撮像装置から画像処理装置20へ提供する画像としては、白黒画像、カラー画像、距離画像などに限らず、3次元点群なども含むものとする。
数値制御装置10は、ワークWの加工時、NCプログラムに基づいて工作機械を制御する。また、数値制御装置10は、工具T又はワークWの撮像及び画像処理時、NCプログラムに基づいて視覚センサ2及び画像処理装置20を制御する。
以下では、工具T又はワークWの撮像及び画像処理を行う際について主に着目し、数値制御装置10及び画像処理装置20について詳細に説明する。
【0014】
図2は、
図1に示す数値制御装置10及び画像処理装置20を詳細に示す図である。
図2に示すように、数値制御装置10は、NCプログラム解析部(プログラム解析部)11と、マクロ変数値テーブル格納部(運転制御情報格納部)12と、通信部13と、画像処理入出力項目−変数番号変換部(画像処理入出力項目−運転制御情報変換部)14とを備える。
【0015】
図3は、工具T又はワークWの撮像及び画像処理時、視覚センサ2及び画像処理装置20を制御するためのNCプログラムの一例(左部分)とその説明(右部分)を示す図である。
図3に示すように、NCプログラムは、Gコード指令、Mコード指令及びマクロ変数を含む。例えば、
「G810」は、撮像および画像処理起動指令(Gコード指令)であり、
「♯100」は、使用する視覚センサを指定するマクロ変数であり、
「♯101」は、画像処理プログラム番号を指定するマクロ変数であり、
「♯201」は、実行結果(計測点の座標値)を示すマクロ変数である。
NCプログラムは、例えばEEPROM等の書き換え可能なメモリ(図示省略)に格納される。
【0016】
NCプログラム解析部11は、NCプログラムを1ブロックずつ読み取り、指令内容を解析する。
指令がマクロ変数の書き込み指令である場合、NCプログラム解析部11は、マクロ変数値テーブル格納部12のマクロ変数値テーブルにマクロ変数値を書き込む。具体的には、NCプログラム解析部11は、指令において指定されたマクロ変数番号(例えば、等式の左辺)に対応するマクロ変数値テーブルの領域に、指令において設定されたマクロ変数値(例えば、等式の右辺)を書き込む。
一方、
図3に示すように、指令が撮像及び画像処理の起動指令である場合、NCプログラム解析部11は、撮像及び画像処理の起動指令を通信部13に出力する。
【0017】
マクロ変数値テーブル格納部12は、工作機械の運転制御に必要な設定値(例えば、工具情報、ワーク情報、特徴的な箇所の座標値)をマクロ変数の値として格納する。また、マクロ変数値テーブル格納部12は、視覚センサ2及び画像処理装置20の運転制御に必要な設定値(例えば、視覚センサ2の解像度、画像処理のプログラム名)をマクロ変数の値として格納する。このような設定値は、NCプログラムが実行されたときに設定される。
更に、マクロ変数値テーブル格納部12は、画像処理装置20による画像処理の結果得られた工具T又はワークWの情報をマクロ変数の値として格納する。
例えば、上述の例では、マクロ変数値テーブルは以下のようになる。
♯100:使用する視覚センサ番号
♯101:画像処理プログラム番号
♯201:実行結果(計測点の座標値)
ここで、変数番号「♯100」「#101」が、後述の画像処理入力項目の値が格納されるマクロ変数名であり、使用する視覚センサ番号、および画像処理プログラム番号が、画像処理入力項目の値である。
また、変数番号「♯201」が、後述の画像処理出力項目の値が格納されるマクロ変数名であり、実行結果(計測点の座標値)が、画像処理出力項目の値である。
このように、マクロ変数値テーブル格納部12は、工作機械、視覚センサ2及び画像処理装置20の運転制御に必要な各種設定値を、NCプログラム解析部11によって読み書き可能な形式であるマクロ変数の値として格納するする。換言すれば、マクロ変数値テーブル格納部12は、NCプログラム作成者が読み書きでき、かつ、NCプログラム解析部11が読み書きできる領域である。マクロ変数値テーブル格納部12は、例えばEEPROM等の書き換え可能なメモリである。
【0018】
通信部13は、NCプログラム解析部11から撮像及び画像処理の起動指令が出力されるとき、視覚センサ2及び画像処理装置20を操作するために必要な設定値を、マクロ変数値テーブル格納部12のマクロ変数値テーブルから読み出す。そして、通信部13は、撮像及び画像処理の起動指令と、マクロ変数値テーブルから読み出した設定値(後述の画像処理入力項目及びその値)とを、画像処理装置20又は視覚センサ2に送信する。
また、通信部13は、画像処理装置20から画像処理の実行結果を受信し、受信した実行結果(後述する画像処理出力項目及びその値)をマクロ変数値テーブル格納部12のマクロ変数値テーブルに書き込む。
本実施形態では、通信部13は、マクロ変数値テーブル格納部12のマクロ変数値テーブルからの設定値の読み出し、及び、マクロ変数値テーブル格納部12のマクロ変数値テーブルへの撮像及び画像処理の実行結果の書き込みを、画像処理入出力項目−変数番号変換部14を介して行う。
通信部13は、LAN、WAN等の有線又は無線通信規格、又は、Bluetooth、Wi−Fi等の近距離通信規格などに従う通信インタフェースを含む。
【0019】
マクロ変数値テーブルからの設定値の読み出し時、画像処理入出力項目−変数番号変換部14は、マクロ変数値テーブル格納部12に格納された視覚センサ2及び画像処理装置20を操作するために必要な設定値(マクロ変数値)を、視覚センサ2及び画像処理装置20によって認識可能な形式の設定値である画像処理の入力項目に変換する。
一方、マクロ変数値テーブルへの撮像及び画像処理の実行結果の書き込み時、画像処理入出力項目−変数番号変換部14は、画像処理装置20からの画像処理の結果である画像処理の出力項目を、NCプログラム解析部11によって認識可能な形式の変数(マクロ変数)に変換する。
【0020】
次に、画像処理装置20は、
図2に示すように、通信部21と画像処理部22とを備える。
通信部21は、数値制御装置10から受信した撮像の起動指令、及び、視覚センサ2の運転に必要な設定値を視覚センサ2に送信する。また、通信部21は、視覚センサ2から工具T又はワークWの撮像画像を受信し、受信した撮像画像を画像処理装置20に出力する。
通信部13は、LAN、WAN等の有線又は無線通信規格、又は、Bluetooth、Wi−Fi等の近距離通信規格などに従う通信インタフェースを含む。
【0021】
画像処理部22は、数値制御装置10から受信した画像処理の起動指令、及び、画像処理部22の運転に必要な設定値に基づいて、視覚センサ2からの画像を画像処理し、画像処理の実行結果を画像処理の出力項目として、数値制御装置10に送信する。
【0022】
数値制御装置10及び画像処理装置20は、例えば、DSP(Digital Signal Processor)、FPGA(Field−Programmable Gate Array)等の演算プロセッサで構成される。数値制御装置10及び画像処理装置20の各種機能は、例えば記憶部に格納された所定のソフトウェア(プログラム、アプリケーション)を実行することで実現される。数値制御装置10及び画像処理装置20の各種機能は、ハードウェアとソフトウェアとの協働で実現されてもよいし、ハードウェア(電子回路)のみで実現されてもよい。
【0023】
次に、
図4を参照して、第1実施形態に係る数値制御システム1による工具T又はワークWの撮像及び画像処理の動作について説明する。
図4は、第1実施形態に係る数値制御システム1による工具T又はワークWの撮像及び画像処理の動作を示すフローチャートである。
まず、数値制御装置10におけるNCプログラム解析部11は、NCプログラムにおける1ブロックを読み取り(S1)、指令内容を解析する(S2)。
指令がマクロ変数の書き込み指令である場合、NCプログラム解析部11は、マクロ変数値テーブル格納部12のマクロ変数値テーブルにマクロ変数値を書き込む(S3)。具体的には、NCプログラム解析部11は、指令において指定されたマクロ変数番号(例えば、等式の左辺)に対応するマクロ変数値テーブルの領域に、指令において設定されたマクロ変数値(例えば、等式の右辺)を書き込む(S3)。その後、後述のステップS11に移行する。
【0024】
一方、ステップS2において指令が撮像及び画像処理の起動指令である場合、通信部13は、画像処理入出力項目−変数番号変換部14に、画像処理入力項目の値を読み出すように要求する(S4)。
次に、画像処理入出力項目−変数番号変換部14は、画像処理入力項目を予め定められた変数番号に変換し、変換した変数番号の値をマクロ変数値テーブル格納部12のマクロ変数値テーブルから読み出し、読み出した変数番号の値を画像処理入力項目の値として通信部13に応答する(S5)。
次に、通信部13は、撮像及び画像処理の起動指令と、画像処理入出力項目−変数番号変換部14から取得した画像処理入力項目の値とを、画像処理装置20に送信する(S6)。
【0025】
画像処理装置20における画像処理部22は、数値制御装置10から受信した撮像及び画像処理の起動指令に基づいて、通信部21を介して視覚センサ2を操作し、工作機械における工具T又はワークWの撮像を行う(S7)。
次に、画像処理部22は、視覚センサ2からの撮像画像に対して画像処理を実行し、画像処理入力項目の値に応じた画像処理出力項目の値を得る(S8)。
【0026】
次に、数値制御装置10における通信部13は、画像処理装置20から画像処理出力項目の値(実行結果)を取得し、画像処理入出力項目−変数番号変換部14に出力する(S9)。
次に、画像処理入出力項目−変数番号変換部14は、通信部13から取得した画像処理出力項目の値を、予め定められた変数番号の値とみなし、変数番号に対応するマクロ変数値テーブル格納部12のマクロ変数値テーブルの領域に書き込む(S10)。
【0027】
次に、NCプログラム解析部11は、NCプログラムの全てのブロックの解析が終了したか否かを判定する(S11)。NCプログラムの全てのブロックの解析が終了していない場合、ステップS1に戻り、NCプログラムの次の1ブロックについて上述したステップS1〜S11の処理を行う。
一方、ステップS11においてNCプログラムの全てのブロックの解析が終了した場合、数値制御システム1は、工具T又はワークWの撮像及び画像処理の動作を終了する。
【0028】
次に、具体的な実施例を挙げながら本実施形態を詳細に説明するが、本実施形態はこれらの具体例に限定されない。
【0029】
(実施例1)
例えば、
図5A及び
図5Bに示すように、無垢の鋳物は、鋳物ごとに寸法が大きく異なるので、NCプログラムは、寸法の大きい鋳物でも加工できるように作成される。このNCプログラムを寸法の小さい鋳物に対して使うと、工具軌跡において非切削(エアカット)時間が多くなり、無駄な加工時間がかかる。
【0030】
そこで、実施例1では、鋳物Wの撮像及び画像処理によって鋳物Wの最上面の座標値をマクロ変数値としてマクロ変数値テーブルに格納する。これにより、鋳物Wの最上面の座標値をNCプログラムに反映することができる。
まず、
図6Aに示すように、視覚センサ2(例えば、3次元ビジョンセンサ)を鋳物Wに向けて設置する。
次に、画像処理部において、視覚センサ2が鋳物Wを撮像後にその画像(例えば、3次元点群)を受け取り、その画像をもとに鋳物Wの最上面の座標値を求めるようにしておく。これは、一般的な画像処理ソフトで実現すればよい。
次に、
図6Bに示すように、撮像及び画像処理のためのNCプログラムを作成する。このとき、画像処理入力項目及び画像処理出力項目は以下のように設定される。
画像処理入力項目:使用する視覚センサ番号(#100)、画像処理プログラム番号(#101)
画像処理出力項目:鋳物Wの最上面の座標値(#201)
次に、NCプログラムを実行すると、上述した
図4のフローチャートに従って撮像及び画像処理が実行され、
図6Cに示すように画像処理の実行結果がマクロ変数値テーブルに格納される。
【0031】
これにより、NCプログラム作成者は、加工時、マクロ変数値テーブルを読み出し、鋳物Wが存在する領域のみ加工(例えば切削)するように、NCプログラムを作成することができる。例えば、NCプログラム解析部11は、
図6Cに示すマクロ変数値テーブルを読み出し、♯201(鋳物の最上面の座標値)が小さい場合、
図7に示すようにそれよりも高い部分を加工するためのブロックが実行されないように、NCプログラムを作成することができる。
これにより、非切削(エアカット)時間が少なくなり、加工時間が削減される。
【0032】
(実施例2)
例えば、
図8Aに示すように、ワークWを加工すると切粉が加工領域に溜まることがある。加工領域に切粉が溜まり過ぎると、機械の動作不良、又はワークWの加工不良が発生することがある。
【0033】
そこで、実施例2では、ワークWの加工領域の撮像及び画像処理によって切粉の堆積量及び堆積領域(点の位置)をマクロ変数値としてマクロ変数値テーブルに格納する。これにより、ワークWの加工領域の切粉の堆積量及び堆積領域(点の位置)に応じて切粉の除去を行うようにNCプログラムを作成することができる。
まず、
図8Aに示すように、視覚センサ2を、ワークWにおける切粉が堆積しやすい領域に向けて設置する。
次に、画像処理部22において、視覚センサ2がワークWにおける切粉が堆積しやすい領域を撮像後にその画像を受け取り、その画像をもとに、切粉がある一定量溜まったことを示すフラグ、切粉の堆積領域(点の位置)X,Yを求めるようにしておく。
例えば、切粉が堆積しているかどうかやその位置は、ヒストグラムで明るさの違いを検知するなどして求められればよい。
これは、一般的な画像処理ソフトで実現すればよい。
次に、
図8Bに示すように、撮像及び画像処理のためのNCプログラムを作成する。このとき、画像処理入力項目及び画像処理出力項目は以下のように設定される。
画像処理入力項目:使用する視覚センサ番号(#100)、画像処理プログラム番号(#101)
画像処理出力項目:切粉がある一定量溜まったことを示すフラグ、切粉の堆積領域(点の位置)X,Y(♯201,♯202,♯203)
次に、NCプログラムを実行すると、上述した
図4のフローチャートに従って撮像及び画像処理が実行され、
図8Cに示すように画像処理の実行結果がマクロ変数値テーブルに格納される。
【0034】
これにより、NCプログラム作成者は、加工時、マクロ変数値テーブルを読み出し、
図9A及び
図9Bに示すように、ワークWにおける切粉の堆積領域に切削液が当たるようにテーブルを移動させる、というようなNCプログラムを作成することができる。
これにより、切削液を切粉に集中的に当てることで切粉を除去し、機械の動作不良、又はワークWの加工不良の発生を防ぐことができる。
【0035】
(実施例3)
図10A及び
図10Bに示すように、加工プログラムにおいて、コーナ部を滑らかに接続するコーナ接続機能がある。コーナ接続機能では、NCプログラムにおいてトレランス量(加工ワーク形状が設計図の形状から乖離していい上限値)を引数として指定することが可能である。しかし、実際に加工を行うと、サーボ遅れにより余計に内回るので、内回った分だけトレランス量に小さい値を再指定することが考えられる。しかし、トレランス量を手動で再指定するのは手間がかかる。
【0036】
そこで、実施例3では、ワークWの撮像及び画像処理によってワークWの実形状が期待していた形状と一番乖離している部分の距離をマクロ変数値としてマクロ変数値テーブルに格納する。これにより、トレランス量を自動的に修正するようにNCプログラムを作成することができる。
まず、
図11Aに示すように、視覚センサ2をワークWに向けて設置する。
次に、画像処理部において、視覚センサ2がワークWを撮像後にその画像を受け取り、その画像をもとに、実形状が期待していた理想形状と一番乖離している部分の距離を求めるようにしておく。
例えば、画像処理出力項目は以下のように求められればよい。
・予めワークWの理想形状が教示される。
・理想形状における任意の理想点と、得られた実形状における任意の実加工形状点との距離を、複数の任意の点について算出
・ある1つの「理想点」と複数の「実加工形状点」との上記距離の中から、最小値を選出
・複数の「理想点」において上記の最小値を選出し、その中の最大値を出力
これは、一般的な画像処理ソフトで実現すればよい。
次に、
図11Bに示すように、撮像及び画像処理のためのNCプログラムを作成する。このとき、画像処理入力項目及び画像処理出力項目は以下のように設定される。
画像処理入力項目:使用する視覚センサ番号(#100)、画像処理プログラム番号(#101)
画像処理出力項目:実形状が期待していた形状と一番乖離している部分の距離(♯201)
次に、NCプログラムを実行すると、上述した
図4のフローチャートに従って撮像及び画像処理が実行され、
図11Cに示すように画像処理の実行結果がマクロ変数値テーブルに格納される。
【0037】
これにより、
図12に示すように、実形状が期待していた形状と一番乖離している部分の距離に基づいてトレランス量の指定値を自動的に修正するNCプログラムを作成することができる。そのため、トレランス量を手動で再指定する手間を省くことができる。
【0038】
(実施例4)
実施例4では、工具Tの撮像及び画像処理によって工具長をマクロ変数値テーブルに格納する。これにより、工具交換、加工停止、又は数値制御装置への工具情報設定等を行うようにプログラムを作成することができる。
まず、
図13Aに示すように、視覚センサ2を工具Tに向けて設置する。
次に、画像処理部において、視覚センサ2が工具Tを撮像後にその画像を受け取り、その画像をもとに、工具長を求めるようにしておく。これは、一般的な画像処理ソフトで実現すればよい。
次に、
図13Bに示すように、撮像及び画像処理のためのNCプログラムを作成する。このとき、画像処理入力項目及び画像処理出力項目は以下のように設定される。
画像処理入力項目:使用する視覚センサ番号(#100)、画像処理プログラム番号(#101)
画像処理出力項目:工具長(♯201)
次に、NCプログラムを実行すると、上述した
図4のフローチャートに従って撮像及び画像処理が実行され、
図13Cに示すように画像処理の実行結果がマクロ変数値テーブルに格納される。
【0039】
これにより、加工時、マクロ変数値テーブルを読み出し、画像処理結果の工具長が数値制御装置10に予め設定されている工具長と異なる場合、以下のようにNCプログラムのプログラマの判断により状況に応じたNCプログラムを作成することができる。
(A)加工直前に撮像し、かつ、工具が折損している可能性が考えられる状況だとプログラマが判断する場合、
図14Aに示すように、正常に加工を行うために工作機械の工具マガジンに装着されている同種の別の工具に交換をする、というようなNCプログラムを組むことができる。
(B)加工直後に撮像し、かつ、工具が加工中に折損して加工が正常に行われていない可能性が考えられる状況だとプログラマが判断する場合、
図14Bに示すように、加工を停止する、というようなNCプログラムを組むこともできる。
(C)新品の工具の長さを計測する場合など、工具が折損している可能性が低い状況だとプログラマが判断する場合、
図14Cに示すように、画像処理結果の工具長を数値制御装置10に予め設定されている値に上書きするようなNCプログラムを組むこともできる。
【0040】
以上説明したように、本実施形態の数値制御システム1によれば、画像処理入出力項目−変数番号変換部(画像処理入出力項目−運転制御情報変換部)14は、画像処理装置20からの画像処理の結果である画像処理の出力項目を、NCプログラム解析部11によって認識可能な形式のマクロ変数の値(運転制御情報)に変換する。
これにより、NCプログラム解析部11は、マクロ変数を読み出すことにより画像処理の実行結果(画像処理の出力項目)を受け取ることができる。そのため、視覚センサ2によって撮像された工作機械における工具T又はワークWの撮像結果をNCプログラムに反映することができる。
【0041】
ところで、特許文献1に記載の技術のように、Gコード指令の引数を使用して視覚センサ2及び画像処理装置20の運転制御を行う場合、Gコードの指令フォーマットにより引数の数が制限を受けるので、設定値を指定できる数が制限を受け易い。例えば、アルファベット1文字により引数の種類を指定するフォーマットの場合、アルファベットの文字数が指定できる数の上限となる。
この点に関し、本実施形態の数値制御システム1によれば、画像処理入出力項目−変数番号変換部(画像処理入出力項目−運転制御情報変換部)14は、NCプログラム解析部11によって読み書き可能な形式でマクロ変数値テーブル格納部(運転制御情報格納部)12に格納されたマクロ変数の値(運転制御情報)を、撮像装置2及び画像処理装置20によって認識可能な形式の設定値である画像処理の入力項目に変換する。
これにより、マクロ変数値テーブル格納部として使える領域のサイズを増やすだけで、マクロ変数の数を増やすことができる。そのため、設定値を指定できる数が制限を受け難い。また、簡単に対応でき、拡張性が高い。
【0042】
(第2実施形態)
第1実施形態では、画像処理入出力項目−変数番号変換部14が数値制御装置10内に配置される形態を例示したが、画像処理入出力項目−変数番号変換部14は画像処理装置20内に配置されてもよい。
【0043】
図15は、第2実施形態に係る数値制御システムを示す図である。
図15に示す第2実施形態の数値制御システム1は、
図2に示す数値制御システム1において、画像処理入出力項目−変数番号変換部14が画像処理装置20内に配置されている点で第1実施形態と異なる。
【0044】
次に、
図16を参照して、第2実施形態に係る数値制御システム1による工具T又はワークWの撮像及び画像処理の動作について説明する。
図16は、第2実施形態に係る数値制御システム1による工具T又はワークWの撮像及び画像処理の動作を示すフローチャートである。
まず、上述のステップS1及びステップS2と同様に、数値制御装置10におけるNCプログラム解析部11は、NCプログラムにおける1ブロックを読み取り(S1A)、指令内容を解析する(S2A)。
指令がマクロ変数の書き込み指令である場合、上述のステップS3と同様に、NCプログラム解析部11は、マクロ変数値テーブル格納部12のマクロ変数値テーブルにマクロ変数値を書き込む(S3A)。具体的には、NCプログラム解析部11は、指令において指定されたマクロ変数番号(例えば、等式の左辺)に対応するマクロ変数値テーブルの領域に、指令において設定されたマクロ変数値(例えば、等式の右辺)を書き込む(S3A)。その後、後述のステップS10Aに移行する。
【0045】
一方、ステップS2Aにおいて指令が撮像及び画像処理の起動指令である場合、通信部13は、予め定められた変数番号の値をマクロ変数値テーブル格納部12のマクロ変数値テーブルから読み出す。通信部13は、撮像及び画像処理の起動指令と、読み出した変数番号の値とを、画像処理装置20に送信する(S4A)。
【0046】
画像処理装置20における画像処理入出力項目−変数番号変換部14は、数値制御装置10から受信した変数番号の値を、画像処理入力項目とみなし、画像処理部22に入力する(S5A)。
次に、上述のステップS7と同様に、画像処理部22は、数値制御装置10から受信した撮像及び画像処理の起動指令に基づいて、通信部21を介して視覚センサ2を操作し、工作機械における工具T又はワークWの撮像を行う(S6A)。
次に、上述のステップS8と同様に、画像処理部22は、視覚センサ2からの撮像画像に対して画像処理を実行し、画像処理入力項目の値に応じた画像処理出力項目の値を得る(S7A)。
次に、画像処理入出力項目−変数番号変換部14は、画像処理出力項目の値を、予め定められた変数番号の値とみなし、数値制御装置10に送信する(S8A)。
【0047】
次に、数値制御装置10における通信部13は、画像処理装置20から画像処理出力項目の値(実行結果)を取得し、取得した画像処理出力項目の値を、変数番号に対応するマクロ変数値テーブル格納部12のマクロ変数値テーブルの領域に書き込む(S9A)。
【0048】
次に、上述のステップS11と同様に、NCプログラム解析部11は、NCプログラムの全てのブロックの解析が終了したか否かを判定する(S10A)。NCプログラムの全てのブロックの解析が終了していない場合、ステップS1Aに戻り、NCプログラムの次の1ブロックについて上述したステップS1A〜S10Aの処理を行う。
一方、ステップS10AにおいてNCプログラムの全てのブロックの解析が終了した場合、数値制御システム1は、工具T又はワークWの撮像及び画像処理の動作を終了する。
【0049】
この第2実施形態の数値制御システム1でも、上述した第1実施形態の数値制御システム1と同様の利点を得ることができる。
なお、第2実施形態の数値制御システム1によれば、既存の数値制御装置でも本発明の特徴を実現することができる。
【0050】
(第3実施形態)
第1実施形態では、工作機械の工具T又はワークWの撮像及び画像処理の結果をNCプログラムに反映する数値制御システム1について説明した。第3実施形態では、工作機械の工具T又はワークWの撮像及び画像処理の結果をラダープログラムに反映する数値制御システムについて説明する。
【0051】
図17は、第3実施形態に係る数値制御システムを示す図である。
図17に示す数値制御システム1Bは、
図2に示す数値制御システム1において数値制御装置10に代えて数値制御装置10Bを備える構成で第1実施形態と異なる。
数値制御装置10Bは、数値制御装置10において、NCプログラムにラダープログラムを用いる点、及び、NCプログラム解析部11、マクロ変数値テーブル格納部12及び画像処理入出力項目−変数番号変換部14に代えて、ラダープログラム解析部(プログラム解析部)11B、信号格納部(運転制御情報格納部)12B及び画像処理入出力項目−信号アドレス変換部(画像処理入出力項目−運転制御情報変換部)14Bを備える構成で第1実施形態と異なる。
【0052】
図18は、工具T又はワークWの撮像及び画像処理時、視覚センサ2及び画像処理装置20を制御するためのラダープログラムの一例(左部分)とその説明(右部分)を示す図である。
図18に示すように、ラダープログラムは、指令と信号領域とを含む。例えば、
「R0810」は、撮像および画像処理起動指令であり、
「R0100」は、使用する視覚センサを指定する信号領域であり、
「R0101」は、画像処理プログラム番号を指定するする信号領域であり、
「R0210」は、実行結果(計測点の座標値)を示す信号領域である。
ラダープログラムは、例えばEEPROM等の書き換え可能なメモリ(図示省略)に格納される。
【0053】
ラダープログラム解析部11Bは、ラダープログラムを1ブロックずつ読み取り、指令内容を解析する。
図18のSET(R0100、1)やSET(R0101、123)のように、指令が信号領域の書き込み指令である場合、ラダープログラム解析部11Bは、信号格納部12Bの信号領域に引数を書き込む。具体的には、ラダープログラム解析部11Bは、指令において第1引数に指定された信号アドレスに対応する信号領域に、第2引数を書き込む。
一方、
図18のSET(R0810、1)のように、指令が撮像及び画像処理の起動指令である場合、ラダープログラム解析部11Bは、撮像及び画像処理の起動指令を通信部13に出力する。
【0054】
信号格納部12Bは、工作機械の運転制御に必要な設定値(例えば、工具情報、ワーク情報、特徴的な箇所の座標値)を信号として格納する。また、信号格納部12Bは、視覚センサ2及び画像処理装置20の運転制御に必要な設定値(例えば、視覚センサ2の解像度、画像処理のプログラム名)をマクロ変数として格納する。このような設定値は、ラダープログラムが実行されたときに設定される。
更に、信号格納部12Bは、画像処理装置20による画像処理の結果得られた工具T又はワークWの情報をマクロ変数として格納する。
例えば、信号格納部12Bにおける信号領域は以下のようになる。
R0100:使用する視覚センサ番号
R0101:画像処理プログラム番号
R0210:実行結果(計測点の座標値)
ここで、変数番号「R0100」「R0101」が、後述の画像処理入力項目の値が格納される信号名であり、使用する視覚センサ番号、および画像処理プログラム番号が、画像処理入力項目の値である。
また、変数番号「R0210」が、後述の画像処理出力項目の値が格納される信号名であり、実行結果(計測点の座標値)が、画像処理出力項目の値である。
このように、信号格納部12Bは、工作機械、視覚センサ2及び画像処理装置20の運転制御に必要な各種設定値を、ラダープログラム解析部11Bによって読み書き可能な形式である信号として格納する。換言すれば、信号格納部12Bは、ラダープログラム作成者が読み書きでき、かつ、ラダープログラム解析部11Bが読み書きできる領域である。信号格納部12Bは、例えばEEPROM等の書き換え可能なメモリである。
【0055】
画像処理入出力項目−信号アドレス変換部14Bは、信号領域からの設定値の読み出し時、画像処理入出力項目−信号アドレス変換部14Bは、信号格納部12Bに格納された視覚センサ2及び画像処理装置20を操作するために必要な設定値(信号)を、視覚センサ2及び画像処理装置20によって認識可能な形式の設定値である画像処理の入力項目に変換する。
一方、信号領域への撮像及び画像処理の実行結果の書き込み時、画像処理入出力項目−信号アドレス変換部14Bは、画像処理装置20からの画像処理の結果である画像処理の出力項目を、ラダープログラム解析部11Bによって認識可能な形式の信号に変換する。
【0056】
次に、
図19を参照して、第3実施形態に係る数値制御システム1Bによる工具T又はワークWの撮像及び画像処理の動作について説明する。
図19は、第3実施形態に係る数値制御システム1Bによる工具T又はワークWの撮像及び画像処理の動作を示すフローチャートである。
まず、数値制御装置10Bにおけるラダープログラム解析部11Bは、ラダープログラムにおける1ブロックを読み取り(S1B)、指令内容を解析する(S2B)。
指令が信号の書き込み指令である場合、ラダープログラム解析部11Bは、信号格納部12Bの信号領域に引数を書き込む(S3B)。具体的には、ラダープログラム解析部11Bは、指令において第1引数に指定された信号アドレスに対応する信号領域に、第2引数を書き込む(S3B)。その後、後述のステップS11Bに移行する。
【0057】
一方、ステップS2Bにおいて指令が撮像及び画像処理の起動指令である場合、通信部13は、画像処理入出力項目−信号アドレス変換部14Bに、画像処理入力項目の値を読み出すように要求する(S4B)。
次に、画像処理入出力項目−信号アドレス変換部14Bは、画像処理入力項目を予め定められた信号アドレスに変換し、変換した信号アドレスの値を信号格納部12Bの信号領域から読み出し、読み出した信号アドレスの値を画像処理入力項目の値として通信部13に応答する(S5B)。
次に、通信部13は、撮像及び画像処理の起動指令と、画像処理入出力項目−信号アドレス変換部14Bから取得した画像処理入力項目の値とを、画像処理装置20に送信する(S6B)。
【0058】
画像処理装置20における画像処理部22は、上述のステップS7と同様に、数値制御装置10Bから受信した撮像及び画像処理の起動指令に基づいて、通信部21を介して視覚センサ2を操作し、工作機械における工具T又はワークWの撮像を行う(S7B)。
次に、画像処理部22は、上述のステップS8と同様に、視覚センサ2からの撮像画像に対して画像処理を実行し、画像処理入力項目の値に応じた画像処理出力項目の値を得る(S8B)。
【0059】
次に、数値制御装置10Bにおける通信部13は、画像処理装置20から画像処理出力項目の値(実行結果)を取得し、画像処理入出力項目−信号アドレス変換部14Bに出力する(S9B)。
次に、画像処理入出力項目−信号アドレス変換部14Bは、通信部13から取得した画像処理出力項目の値を、予め定められた信号アドレスの値とみなし、信号アドレスに対応する信号格納部12Bの信号領域に書き込む(S10B)。
【0060】
次に、ラダープログラム解析部11Bは、ラダープログラムの全てのブロックの解析が終了したか否かを判定する(S11B)。ラダープログラムの全てのブロックの解析が終了していない場合、ステップS1Bに戻り、ラダープログラムの次の1ブロックについて上述したステップS1B〜S11Bの処理を行う。
一方、ステップS11Bにおいてラダープログラムの全てのブロックの解析が終了した場合、数値制御システム1Bは、工具T又はワークWの撮像及び画像処理の動作を終了する。
【0061】
次に、具体的な実施例を挙げながら本実施形態を詳細に説明するが、本実施形態はこれらの具体例に限定されない。
【0062】
(実施例5)
例えば、実施例2において上述したように、ワークWを加工すると切粉が加工領域に溜まることがある。加工領域に切粉が溜まり過ぎると、機械の動作不良、又はワークWの加工不良が発生することがある。
【0063】
そこで、実施例5では、ワークWの加工領域の撮像及び画像処理によって切粉の堆積量及び堆積領域(点の位置)を信号として信号領域に格納する。これにより、ワークWの加工領域の切粉の堆積量及び堆積領域(点の位置)に応じて切粉の除去を行うようにNCプログラムを作成することができる。
まず、
図20Aに示すように、視覚センサ2を、ワークWにおける切粉が堆積しやすい領域に向けて設置する。
なお、本実施例では、工具T(主軸及び切削液用ノズル)は、NCプログラムの移動指令によりX方向、Y方向及びZ方向に移動する。そして、切粉堆積箇所向けノズルが、堆積した切粉を除去するためのノズルである。切粉堆積箇所向けノズルは、主軸の移動軸X、Y、Zとは別の切粉堆積箇所向けノズル用の移動軸XL、YLに沿うXL、YL方向に、ラダープログラムの移動指令により移動する。
次に、画像処理部において、視覚センサ2がワークWにおける切粉が堆積しやすい領域を撮像後にその画像を受け取り、その画像をもとに、切粉がある一定量溜まったことを示すフラグ、切粉の堆積領域(点の位置)X,Yを求めるようにしておく。
例えば、切粉が堆積しているかどうかやその位置は、ヒストグラムで明るさの違いを検知するなどして求められれば良い。
これは、一般的な画像処理ソフトで実現すればよい。
次に、
図20Bに示すように、撮像及び画像処理のためのラダープログラムを作成する。このとき、画像処理入力項目及び画像処理出力項目は以下のように設定される。
画像処理入力項目:使用する視覚センサ番号(#100)、画像処理プログラム番号(#101)
画像処理出力項目:切粉がある一定量溜まったことを示すフラグ、切粉の堆積領域(点の位置)XL,YL(♯201,♯202,♯203)
次に、ラダープログラムを実行すると、上述した
図19のフローチャートに従って撮像及び画像処理が実行され、
図20Cに示すように画像処理の実行結果が信号領域に格納される。
【0064】
これにより、ラダープログラム作成者は、加工時、信号領域の信号を読み出し、
図20A及び
図21に示すように、ワークWにおける切粉の堆積領域に切削液が当たるように切粉堆積箇所向けノズルを移動させる、というようなラダープログラムを作成することができる。
これにより、切削液を切粉に集中的に当てることで切粉を除去し、機械の動作不良、又はワークWの加工不良の発生を防ぐことができる。
更に、ラダープログラムはNCプログラムとは独立して実行されるので、NCプログラムによる加工と並行して、切粉を除去することができる。これにより、加工にかかる工数を削減することができる。
【0065】
この第3実施形態の数値制御システム1Bでも、上述した第1実施形態の数値制御システム1と同様の利点を得ることができる。
第3実施形態では、画像処理入出力項目−信号アドレス変換部14Bが数値制御装置10B内に配置される形態を例示したが、画像処理入出力項目−信号アドレス変換部14Bは画像処理装置20内に配置されてもよい。
【0066】
(第4実施形態)
第1実施形態では、画像処理入出力項目−変数番号変換部(画像処理入出力項目−運転制御情報変換部)14は、マクロ変数値テーブル格納部(運転制御情報格納部)12に格納された運転制御情報を、視覚センサ2及び画像処理装置20によって認識可能な形式の設定値である画像処理の入力項目に変換した。
第4実施形態では、画像処理入出力項目−運転制御情報変換部は、プログラム解析部がプログラムから読み出した指令を、視覚センサ及び画像処理装置によって認識可能な形式の設定値である画像処理の入力項目に変換する。
【0067】
図22は、第4実施形態に係る数値制御システムを示す図である。
図22に示す第4実施形態の数値制御システム1は、
図2に示す数値制御システム1において、画像処理入出力項目−変数番号変換部14に代えて、画像処理入出力項目−運転制御情報変換部14を備える点で第1実施形態と異なる。
【0068】
図23は、工具T又はワークWの撮像及び画像処理時、視覚センサ2及び画像処理装置20を制御するためのNCプログラムの一例(左部分)とその説明(右部分)を示す図である。
図23に示すように、本実施形態では、視覚センサ番号、画像処理プログラム番号をマクロ変数♯100、♯101に代入する代わりに、G810のブロックで指定する。
【0069】
画像処理入出力項目−運転制御情報変換部14は、プログラム解析部11がプログラムから読み出した起動指令を、視覚センサ2及び画像処理装置20によって認識可能な形式の設定値である画像処理の入力項目に変換する。
【0070】
次に、
図24を参照して、第4実施形態に係る数値制御システム1による工具T又はワークWの撮像及び画像処理の動作について説明する。
図24は、第4実施形態に係る数値制御システム1による工具T又はワークWの撮像及び画像処理の動作を示すフローチャートである。
まず、上述同様に、数値制御装置10におけるNCプログラム解析部11は、NCプログラムにおける1ブロックを読み取り(S1)、指令内容を解析する。
次に、画像処理入出力項目−運転制御情報変換部14は、NCプログラム解析部11が読み出した撮像及び画像処理の起動指令の引数の値を、画像処理入力項目の値に変換する(S5C)。
次に、上述同様に、通信部13は、画像処理入出力項目−運転制御情報変換部14から取得した画像処理入力項目の値を、画像処理装置20に送信する(S6)。
【0071】
すると、上述同様に、画像処理装置20における画像処理部22は、数値制御装置10から受信した撮像及び画像処理の起動指令に基づいて、通信部21を介して視覚センサ2を操作し、工作機械における工具T又はワークWの撮像を行う(S7)。
次に、上述同様に、画像処理部22は、視覚センサ2からの撮像画像に対して画像処理を実行し、画像処理入力項目の値に応じた画像処理出力項目の値を得る(S8)。
【0072】
次に、上述同様に、数値制御装置10における通信部13は、画像処理装置20から画像処理出力項目の値(実行結果)を取得し、画像処理入出力項目−運転制御情報変換部14に出力する(S9)。
次に、上述同様に、画像処理入出力項目−運転制御情報変換部14は、通信部13から取得した画像処理出力項目の値を、予め定められた変数番号の値とみなし、変数番号に対応するマクロ変数値テーブル格納部12のマクロ変数値テーブルの領域に書き込む(S10)。
【0073】
次に、上述同様に、NCプログラム解析部11は、NCプログラムの全てのブロックの解析が終了したか否かを判定する(S11)。NCプログラムの全てのブロックの解析が終了していない場合、ステップS1に戻り、NCプログラムの次の1ブロックについて上述したステップS1〜S11の処理を行う。
一方、ステップS11においてNCプログラムの全てのブロックの解析が終了した場合、数値制御システム1は、工具T又はワークWの撮像及び画像処理の動作を終了する。
【0074】
この第4実施形態の数値制御システム1でも、第1実施形態の数値制御システム1と同様の利点を得ることができる。
更に、第4実施形態の数値制御システム1によれば、マクロ変数値テーブル格納部(運転制御情報格納部)12への設定、読み出しをすることなく視覚センサ2及び画像処理を起動できるので、処理時間が少なく済む。第4実施形態の数値制御システム1は、
画像処理入力項目の種類が少ない場合(マクロ変数の数の拡張性がメリットにならない場合)に有効である。
なお、第4実施形態の特徴は、上述した第2実施形態及び第3実施形態に適用されてもよい。
【0075】
以上、本発明の実施形態について説明したが、本発明は上述した実施形態に限定されることなく、種々の変更及び変形が可能である。例えば、上述した実施形態では、工作機械の工具又はワークの撮像及び画像処理の結果をNCプログラム又はラダープログラムに反映する数値制御システムを例示した。しかし、本発明の特徴はこれに限定されず、例えば、コンパイルしてROM(例えば、フラッシュメモリ)等に登録される実行形式のマクロプログラムに、工作機械の工具又はワークの撮像及び画像処理の結果を反映する数値制御システムにも適用可能である。このようなマクロプログラムとしては、例えばNCプログラムの一種であるP−CODEマクロが挙げられる。
【0076】
また、上述した実施形態では、数値制御装置が画像処理装置を介して視覚センサを制御する形態を説明したが、画像処理装置が視覚センサを制御してもよい。
図25は、工具T又はワークWの撮像及び画像処理時、視覚センサ2及び画像処理装置20を制御するためのNCプログラムの一例(左部分)とその説明(右部分)を示す図である。
図25に示すように、画像処理装置が視覚センサを制御する場合、NCプログラムでは、画像処理装置の操作に関する設定値(画像処理プログラム番号♯101など)のみを設定し、視覚センサに関する設定(視覚センサ番号など)は、画像処理装置に予め設定しておけばよい。
【0077】
また、上述した実施形態では、工作機械を制御する数値制御システムを例示した。しかし、本発明の特徴はこれに限定されず、産業機械又は産業ロボット等の種々の機械を制御する数値制御システムに適用可能である。
【0078】
また、上述した実施形態では、工作機械の工具又はワークを撮像する撮像装置として視覚センサを例示した。しかし、撮像装置はこれに限定されず、種々の撮像装置が用いられてもよい。
【0079】
また、上述した実施形態では、数値制御装置と画像処理装置とが別の装置で構成される形態を説明したが、数値制御装置と画像処理装置とは一つの装置で構成される形態であってもよい。すなわち、数値制御装置及び画像処理装置の各構成要素は一つの装置に組み込まれる形態であってもよい。各構成要素の役割は上述同様である。
また、上述した実施形態では、画像処理装置と撮像装置とが別の装置で構成される形態を説明したが、画像処理装置と撮像装置とは一つの装置で構成される形態であってもよい。すなわち、画像処理装置及び撮像装置の各構成要素は一つの装置に組み込まれる形態であってもよい。各構成要素の役割は上述同様である。