(57)【要約】【課題】撮像装置によって撮像された機械又はワークの撮像結果をプログラムに反映可能な数値制御システムを提供する。【解決手段】数値制御システム１は、撮像装置２によって撮像された機械又はワークの画像を画像処理する画像処理装置２０と数値制御装置１０とを備え、数値制御装置１０は、プログラム解析部１１と、機械、撮像装置２及び画像処理装置２０の運転制御情報を、プログラム解析部１１によって読み書き可能な形式で格納する運転制御情報格納部１２とを備え、数値制御システム１は、指令又は運転制御情報格納部１２に格納された運転制御情報を、撮像装置２及び画像処理装置２０によって認識可能な形式の設定値である画像処理の入力項目に変換すると共に、画像処理装置２０からの画像処理の結果である画像処理の出力項目を、プログラム解析部１１によって認識可能な形式の運転制御情報に変換する画像処理入出力項目−運転制御情報変換部１４を備える。【選択図】図２
2019185545.tif 000002
【特許請求の範囲】
【請求項１】
ワークに所定の処理を施す機械を制御する数値制御システムであって、
撮像装置によって撮像された機械又はワークの画像を画像処理する画像処理装置と、
プログラムに基づいて、前記機械を制御すると共に、前記画像処理装置を制御する数値制御装置と、
を備え、
前記数値制御装置又は前記画像処理装置は、前記撮像装置を制御し、
前記数値制御装置は、
前記プログラムを解析するプログラム解析部と、
前記機械、前記撮像装置及び前記画像処理装置を運転制御する際に必要な運転制御情報を、前記プログラム解析部によって読み書き可能な形式で格納する運転制御情報格納部と、
を備え、
前記数値制御システムは、前記プログラム解析部が前記プログラムから読み出した指令又は前記運転制御情報格納部に格納された前記運転制御情報を、前記撮像装置及び前記画像処理装置によって認識可能な形式の設定値である画像処理の入力項目に変換すると共に、前記画像処理装置からの画像処理の結果である画像処理の出力項目を、前記プログラム解析部によって認識可能な形式の運転制御情報に変換する画像処理入出力項目−運転制御情報変換部を備える、
数値制御システム。
【請求項２】
前記運転制御情報格納部は、前記プログラム解析部によって読み書き可能なマクロ変数である、請求項１に記載の数値制御システム。
【請求項３】
前記画像処理入出力項目−運転制御情報変換部は、前記数値制御装置内に配置される、請求項１又は２に記載の数値制御システム。
【請求項４】
前記画像処理入出力項目−運転制御情報変換部は、前記画像処理装置内に配置される、請求項１又は２に記載の数値制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、工作機械、産業機械又は産業ロボット等を制御する数値制御システムに関する。
【背景技術】
【０００２】
近年、工作機械内の加工ワークや周辺機械等に取り付けられたビデオカメラで撮影された画像が、加工ワーク及び周辺装置の遠隔監視、加工したワークの画像や映像の記録による品質管理などに利用されるようになってきている。特許文献１には、工作機械に接続されたビデオカメラの操作機能を有する数値制御装置が開示されている。
数値制御装置は、ビデオカメラを操作する際、操作に必要な設定値（例えば、ビデオカメラの選択、解像度、フレーム数）を指定する必要がある。特許文献１には、Ｇコード指令の引数を使用してビデオカメラの各設定値の指定を行う技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−６３４３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、撮像装置によって撮像された機械における工具又はワークの撮像及び画像処理結果（例えば、ＯＫ／ＮＧ、計測長、面積）をＮＣプログラムに反映できると、撮像及び画像処理結果に応じてＮＣプログラムを変更できるので、便利である。
しかし、Ｇコード指令では、撮像及び画像処理結果を受け取ることができず、撮像及び画像処理結果をＮＣプログラムに反映できない。
【０００５】
本発明は、撮像装置によって撮像された機械又はワークの撮像結果をプログラムに反映することができる数値制御システムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
（１）  本発明に係る数値制御システム（例えば、後述の数値制御システム１，１Ｂ）は、ワーク（例えば、後述のワークＷ）に所定の処理を施す機械を制御する数値制御システムであって、撮像装置（例えば、後述の視覚センサ２）によって撮像された機械（例えば、後述の工具Ｔを含む）又はワークの画像を画像処理する画像処理装置（例えば、後述の画像処理装置２０）と、プログラムに基づいて、前記機械を制御すると共に、前記画像処理装置を制御する数値制御装置（例えば、後述の数値制御装置１０，１０Ｂ）とを備え、前記数値制御装置又は前記画像処理装置は、前記撮像装置を制御し、前記数値制御装置は、前記プログラムを解析するプログラム解析部（例えば、後述のＮＣプログラム解析部１１又はラダープログラム解析部１１Ｂ）と、前記機械、前記撮像装置及び前記画像処理装置を運転制御する際に必要な運転制御情報を、前記プログラム解析部によって読み書き可能な形式で格納する運転制御情報格納部（例えば、後述のマクロ変数値テーブル格納部１２又は信号格納部１２Ｂ）とを備え、前記数値制御システムは、前記プログラム解析部が前記プログラムから読み出した指令又は前記運転制御情報格納部に格納された前記運転制御情報を、前記撮像装置及び前記画像処理装置によって認識可能な形式の設定値である画像処理の入力項目に変換すると共に、前記画像処理装置からの画像処理の結果である画像処理の出力項目を、前記プログラム解析部によって認識可能な形式の運転制御情報に変換する画像処理入出力項目−運転制御情報変換部（例えば、後述の画像処理入出力項目−変数番号変換部１４及び後述の画像処理入出力項目−信号アドレス変換部１４Ｂ）を備える。
【０００７】
（２）  （１）に記載の数値制御システムにおいて、前記運転制御情報格納部は、前記プログラム解析部によって読み書き可能なマクロ変数であってもよい。
【０００８】
（３）  （１）又は（２）に記載の数値制御システムにおいて、前記画像処理入出力項目−運転制御情報変換部は、前記数値制御装置内に配置されてもよい。
【０００９】
（４）  （１）又は（２）に記載の数値制御システムにおいて、前記画像処理入出力項目−運転制御情報変換部は、前記画像処理装置内に配置されてもよい。
【発明の効果】
【００１０】
本発明によれば、撮像装置によって撮像された機械又はワークの撮像結果をプログラムに反映することができる。
【図面の簡単な説明】
【００１１】
【図１】第１実施形態に係る数値制御システムを示す図である。
【図２】図１に示す数値制御装置及び画像処理装置を詳細に示す図である。
【図３】工具又はワークの撮像及び画像処理時、視覚センサ及び画像処理装置を制御するためのＮＣプログラムの一例（左部分）とその説明（右部分）を示す図である。
【図４】第１実施形態に係る数値制御システムによる工具又はワークの撮像及び画像処理の動作を示すフローチャートである。
【図５Ａ】ＮＣプログラムによる工具軌跡と大きい鋳物との関係を示す図である。
【図５Ｂ】ＮＣプログラムによる工具軌跡と小さい鋳物との関係を示す図である。
【図６Ａ】実施例１の視覚センサの配置を示す図である。
【図６Ｂ】実施例１の撮像及び画像処理のためのＮＣプログラムを示す図である。
【図６Ｃ】実施例１のマクロ変数値テーブルを示す図である。
【図７】実施例１の画像処理結果の利用例を含めたＮＣプログラムを示す図である。
【図８Ａ】実施例２の視覚センサの配置を示す図である。
【図８Ｂ】実施例２の撮像及び画像処理のためのＮＣプログラムを示す図である。
【図８Ｃ】実施例２のマクロ変数値テーブルを示す図である。
【図９Ａ】実施例２の画像処理結果の利用例を含めたＮＣプログラムを示す図である。
【図９Ｂ】図９Ａに示すＮＣプログラム（加工時）による動作を示す図である。
【図１０Ａ】トレランス量を説明するための図である。
【図１０Ｂ】トレランス量を指定するＮＣプログラム（加工時）の一例を示す図である。
【図１１Ａ】実施例３の視覚センサの配置を示す図である。
【図１１Ｂ】実施例３の撮像及び画像処理のためのＮＣプログラムを示す図である。
【図１１Ｃ】実施例３のマクロ変数値テーブルを示す図である。
【図１２】実施例３の画像処理結果の利用例を含めたＮＣプログラムを示す図である。
【図１３Ａ】実施例４の視覚センサの配置を示す図である。
【図１３Ｂ】実施例４の撮像及び画像処理のためのＮＣプログラムを示す図である。
【図１３Ｃ】実施例４のマクロ変数値テーブルを示す図である。
【図１４Ａ】実施例４の画像処理結果の利用例を含めたＮＣプログラムを示す図である。
【図１４Ｂ】実施例４の画像処理結果の利用例を含めたＮＣプログラムを示す図である。
【図１４Ｃ】実施例４の画像処理結果の利用例を含めたＮＣプログラムを示す図である。
【図１５】第２実施形態に係る数値制御システムを示す図である。
【図１６】第２実施形態に係る数値制御システムによる工具又はワークの撮像及び画像処理の動作を示すフローチャートである。
【図１７】第３実施形態に係る数値制御システムを示す図である。
【図１８】工具又はワークの撮像及び画像処理時、視覚センサ及び画像処理装置を制御するためのラダープログラムの一例（左部分）とその説明（右部分）を示す図である。
【図１９】第２実施形態に係る数値制御システムによる工具又はワークの撮像及び画像処理の動作を示すフローチャートである。
【図２０Ａ】実施例５の視覚センサの配置を示す図である。
【図２０Ｂ】実施例５の撮像及び画像処理のためのラダープログラムを示す図である。
【図２０Ｃ】実施例５の信号領域を示す図である。
【図２１】実施例５の画像処理結果の利用例を含めたラダープログラムを示す図である。
【図２２】第４実施形態に係る数値制御システムを示す図である。
【図２３】工具又はワークの撮像及び画像処理時、視覚センサ及び画像処理装置を制御するためのＮＣプログラムの一例（左部分）とその説明（右部分）を示す図である。
【図２４】第４実施形態に係る数値制御システムによる工具又はワークの撮像及び画像処理の動作を示すフローチャートである。
【図２５】工具又はワークの撮像及び画像処理時、視覚センサ及び画像処理装置を制御するためのＮＣプログラムの一例（左部分）とその説明（右部分）を示す図である。
【発明を実施するための形態】
【００１２】
以下、添付の図面を参照して本発明の実施形態の一例について説明する。なお、各図面において同一又は相当の部分に対しては同一の符号を附すこととする。
【００１３】
（第１実施形態）
図１は、第１実施形態に係る数値制御システムを示す図である。図１に示す数値制御システム１は、工作機械（図示省略）を制御するシステムであり、数値制御装置１０と画像処理装置２０とを備える。
画像処理装置２０は、視覚センサ（撮像装置）２によって撮像された工作機械における工具Ｔ又はワークＷの画像を画像処理する。視覚センサ２は、工作機械における工具Ｔ又はワークＷを撮像する。なお、撮像装置としては、視覚センサに限定されず、例えば、カメラ又は３次元ビジョンセンサなどの種々の撮像装置であってもよい。また、撮像装置から画像処理装置２０へ提供する画像としては、白黒画像、カラー画像、距離画像などに限らず、３次元点群なども含むものとする。
数値制御装置１０は、ワークＷの加工時、ＮＣプログラムに基づいて工作機械を制御する。また、数値制御装置１０は、工具Ｔ又はワークＷの撮像及び画像処理時、ＮＣプログラムに基づいて視覚センサ２及び画像処理装置２０を制御する。
以下では、工具Ｔ又はワークＷの撮像及び画像処理を行う際について主に着目し、数値制御装置１０及び画像処理装置２０について詳細に説明する。
【００１４】
図２は、図１に示す数値制御装置１０及び画像処理装置２０を詳細に示す図である。図２に示すように、数値制御装置１０は、ＮＣプログラム解析部（プログラム解析部）１１と、マクロ変数値テーブル格納部（運転制御情報格納部）１２と、通信部１３と、画像処理入出力項目−変数番号変換部（画像処理入出力項目−運転制御情報変換部）１４とを備える。
【００１５】
図３は、工具Ｔ又はワークＷの撮像及び画像処理時、視覚センサ２及び画像処理装置２０を制御するためのＮＣプログラムの一例（左部分）とその説明（右部分）を示す図である。図３に示すように、ＮＣプログラムは、Ｇコード指令、Ｍコード指令及びマクロ変数を含む。例えば、
「Ｇ８１０」は、撮像および画像処理起動指令（Ｇコード指令）であり、
「♯１００」は、使用する視覚センサを指定するマクロ変数であり、
「♯１０１」は、画像処理プログラム番号を指定するマクロ変数であり、
「♯２０１」は、実行結果（計測点の座標値）を示すマクロ変数である。
ＮＣプログラムは、例えばＥＥＰＲＯＭ等の書き換え可能なメモリ（図示省略）に格納される。
【００１６】
ＮＣプログラム解析部１１は、ＮＣプログラムを１ブロックずつ読み取り、指令内容を解析する。
指令がマクロ変数の書き込み指令である場合、ＮＣプログラム解析部１１は、マクロ変数値テーブル格納部１２のマクロ変数値テーブルにマクロ変数値を書き込む。具体的には、ＮＣプログラム解析部１１は、指令において指定されたマクロ変数番号（例えば、等式の左辺）に対応するマクロ変数値テーブルの領域に、指令において設定されたマクロ変数値（例えば、等式の右辺）を書き込む。
一方、図３に示すように、指令が撮像及び画像処理の起動指令である場合、ＮＣプログラム解析部１１は、撮像及び画像処理の起動指令を通信部１３に出力する。
【００１７】
マクロ変数値テーブル格納部１２は、工作機械の運転制御に必要な設定値（例えば、工具情報、ワーク情報、特徴的な箇所の座標値）をマクロ変数の値として格納する。また、マクロ変数値テーブル格納部１２は、視覚センサ２及び画像処理装置２０の運転制御に必要な設定値（例えば、視覚センサ２の解像度、画像処理のプログラム名）をマクロ変数の値として格納する。このような設定値は、ＮＣプログラムが実行されたときに設定される。
更に、マクロ変数値テーブル格納部１２は、画像処理装置２０による画像処理の結果得られた工具Ｔ又はワークＷの情報をマクロ変数の値として格納する。
例えば、上述の例では、マクロ変数値テーブルは以下のようになる。
♯１００：使用する視覚センサ番号
♯１０１：画像処理プログラム番号
♯２０１：実行結果（計測点の座標値）
ここで、変数番号「♯１００」「＃１０１」が、後述の画像処理入力項目の値が格納されるマクロ変数名であり、使用する視覚センサ番号、および画像処理プログラム番号が、画像処理入力項目の値である。
また、変数番号「♯２０１」が、後述の画像処理出力項目の値が格納されるマクロ変数名であり、実行結果（計測点の座標値）が、画像処理出力項目の値である。
このように、マクロ変数値テーブル格納部１２は、工作機械、視覚センサ２及び画像処理装置２０の運転制御に必要な各種設定値を、ＮＣプログラム解析部１１によって読み書き可能な形式であるマクロ変数の値として格納するする。換言すれば、マクロ変数値テーブル格納部１２は、ＮＣプログラム作成者が読み書きでき、かつ、ＮＣプログラム解析部１１が読み書きできる領域である。マクロ変数値テーブル格納部１２は、例えばＥＥＰＲＯＭ等の書き換え可能なメモリである。
【００１８】
通信部１３は、ＮＣプログラム解析部１１から撮像及び画像処理の起動指令が出力されるとき、視覚センサ２及び画像処理装置２０を操作するために必要な設定値を、マクロ変数値テーブル格納部１２のマクロ変数値テーブルから読み出す。そして、通信部１３は、撮像及び画像処理の起動指令と、マクロ変数値テーブルから読み出した設定値（後述の画像処理入力項目及びその値）とを、画像処理装置２０又は視覚センサ２に送信する。
また、通信部１３は、画像処理装置２０から画像処理の実行結果を受信し、受信した実行結果（後述する画像処理出力項目及びその値）をマクロ変数値テーブル格納部１２のマクロ変数値テーブルに書き込む。
本実施形態では、通信部１３は、マクロ変数値テーブル格納部１２のマクロ変数値テーブルからの設定値の読み出し、及び、マクロ変数値テーブル格納部１２のマクロ変数値テーブルへの撮像及び画像処理の実行結果の書き込みを、画像処理入出力項目−変数番号変換部１４を介して行う。
通信部１３は、ＬＡＮ、ＷＡＮ等の有線又は無線通信規格、又は、Ｂｌｕｅｔｏｏｔｈ、Ｗｉ−Ｆｉ等の近距離通信規格などに従う通信インタフェースを含む。
【００１９】
マクロ変数値テーブルからの設定値の読み出し時、画像処理入出力項目−変数番号変換部１４は、マクロ変数値テーブル格納部１２に格納された視覚センサ２及び画像処理装置２０を操作するために必要な設定値（マクロ変数値）を、視覚センサ２及び画像処理装置２０によって認識可能な形式の設定値である画像処理の入力項目に変換する。
一方、マクロ変数値テーブルへの撮像及び画像処理の実行結果の書き込み時、画像処理入出力項目−変数番号変換部１４は、画像処理装置２０からの画像処理の結果である画像処理の出力項目を、ＮＣプログラム解析部１１によって認識可能な形式の変数（マクロ変数）に変換する。
【００２０】
次に、画像処理装置２０は、図２に示すように、通信部２１と画像処理部２２とを備える。
通信部２１は、数値制御装置１０から受信した撮像の起動指令、及び、視覚センサ２の運転に必要な設定値を視覚センサ２に送信する。また、通信部２１は、視覚センサ２から工具Ｔ又はワークＷの撮像画像を受信し、受信した撮像画像を画像処理装置２０に出力する。
通信部１３は、ＬＡＮ、ＷＡＮ等の有線又は無線通信規格、又は、Ｂｌｕｅｔｏｏｔｈ、Ｗｉ−Ｆｉ等の近距離通信規格などに従う通信インタフェースを含む。
【００２１】
画像処理部２２は、数値制御装置１０から受信した画像処理の起動指令、及び、画像処理部２２の運転に必要な設定値に基づいて、視覚センサ２からの画像を画像処理し、画像処理の実行結果を画像処理の出力項目として、数値制御装置１０に送信する。
【００２２】
数値制御装置１０及び画像処理装置２０は、例えば、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）等の演算プロセッサで構成される。数値制御装置１０及び画像処理装置２０の各種機能は、例えば記憶部に格納された所定のソフトウェア（プログラム、アプリケーション）を実行することで実現される。数値制御装置１０及び画像処理装置２０の各種機能は、ハードウェアとソフトウェアとの協働で実現されてもよいし、ハードウェア（電子回路）のみで実現されてもよい。
【００２３】
次に、図４を参照して、第１実施形態に係る数値制御システム１による工具Ｔ又はワークＷの撮像及び画像処理の動作について説明する。図４は、第１実施形態に係る数値制御システム１による工具Ｔ又はワークＷの撮像及び画像処理の動作を示すフローチャートである。
まず、数値制御装置１０におけるＮＣプログラム解析部１１は、ＮＣプログラムにおける１ブロックを読み取り（Ｓ１）、指令内容を解析する（Ｓ２）。
指令がマクロ変数の書き込み指令である場合、ＮＣプログラム解析部１１は、マクロ変数値テーブル格納部１２のマクロ変数値テーブルにマクロ変数値を書き込む（Ｓ３）。具体的には、ＮＣプログラム解析部１１は、指令において指定されたマクロ変数番号（例えば、等式の左辺）に対応するマクロ変数値テーブルの領域に、指令において設定されたマクロ変数値（例えば、等式の右辺）を書き込む（Ｓ３）。その後、後述のステップＳ１１に移行する。
【００２４】
一方、ステップＳ２において指令が撮像及び画像処理の起動指令である場合、通信部１３は、画像処理入出力項目−変数番号変換部１４に、画像処理入力項目の値を読み出すように要求する（Ｓ４）。
次に、画像処理入出力項目−変数番号変換部１４は、画像処理入力項目を予め定められた変数番号に変換し、変換した変数番号の値をマクロ変数値テーブル格納部１２のマクロ変数値テーブルから読み出し、読み出した変数番号の値を画像処理入力項目の値として通信部１３に応答する（Ｓ５）。
次に、通信部１３は、撮像及び画像処理の起動指令と、画像処理入出力項目−変数番号変換部１４から取得した画像処理入力項目の値とを、画像処理装置２０に送信する（Ｓ６）。
【００２５】
画像処理装置２０における画像処理部２２は、数値制御装置１０から受信した撮像及び画像処理の起動指令に基づいて、通信部２１を介して視覚センサ２を操作し、工作機械における工具Ｔ又はワークＷの撮像を行う（Ｓ７）。
次に、画像処理部２２は、視覚センサ２からの撮像画像に対して画像処理を実行し、画像処理入力項目の値に応じた画像処理出力項目の値を得る（Ｓ８）。
【００２６】
次に、数値制御装置１０における通信部１３は、画像処理装置２０から画像処理出力項目の値（実行結果）を取得し、画像処理入出力項目−変数番号変換部１４に出力する（Ｓ９）。
次に、画像処理入出力項目−変数番号変換部１４は、通信部１３から取得した画像処理出力項目の値を、予め定められた変数番号の値とみなし、変数番号に対応するマクロ変数値テーブル格納部１２のマクロ変数値テーブルの領域に書き込む（Ｓ１０）。
【００２７】
次に、ＮＣプログラム解析部１１は、ＮＣプログラムの全てのブロックの解析が終了したか否かを判定する（Ｓ１１）。ＮＣプログラムの全てのブロックの解析が終了していない場合、ステップＳ１に戻り、ＮＣプログラムの次の１ブロックについて上述したステップＳ１〜Ｓ１１の処理を行う。
一方、ステップＳ１１においてＮＣプログラムの全てのブロックの解析が終了した場合、数値制御システム１は、工具Ｔ又はワークＷの撮像及び画像処理の動作を終了する。
【００２８】
次に、具体的な実施例を挙げながら本実施形態を詳細に説明するが、本実施形態はこれらの具体例に限定されない。
【００２９】
（実施例１）
例えば、図５Ａ及び図５Ｂに示すように、無垢の鋳物は、鋳物ごとに寸法が大きく異なるので、ＮＣプログラムは、寸法の大きい鋳物でも加工できるように作成される。このＮＣプログラムを寸法の小さい鋳物に対して使うと、工具軌跡において非切削（エアカット）時間が多くなり、無駄な加工時間がかかる。
【００３０】
そこで、実施例１では、鋳物Ｗの撮像及び画像処理によって鋳物Ｗの最上面の座標値をマクロ変数値としてマクロ変数値テーブルに格納する。これにより、鋳物Ｗの最上面の座標値をＮＣプログラムに反映することができる。
まず、図６Ａに示すように、視覚センサ２（例えば、３次元ビジョンセンサ）を鋳物Ｗに向けて設置する。
次に、画像処理部において、視覚センサ２が鋳物Ｗを撮像後にその画像（例えば、３次元点群）を受け取り、その画像をもとに鋳物Ｗの最上面の座標値を求めるようにしておく。これは、一般的な画像処理ソフトで実現すればよい。
次に、図６Ｂに示すように、撮像及び画像処理のためのＮＣプログラムを作成する。このとき、画像処理入力項目及び画像処理出力項目は以下のように設定される。
画像処理入力項目：使用する視覚センサ番号（＃１００）、画像処理プログラム番号（＃１０１）
画像処理出力項目：鋳物Ｗの最上面の座標値（＃２０１）
次に、ＮＣプログラムを実行すると、上述した図４のフローチャートに従って撮像及び画像処理が実行され、図６Ｃに示すように画像処理の実行結果がマクロ変数値テーブルに格納される。
【００３１】
これにより、ＮＣプログラム作成者は、加工時、マクロ変数値テーブルを読み出し、鋳物Ｗが存在する領域のみ加工（例えば切削）するように、ＮＣプログラムを作成することができる。例えば、ＮＣプログラム解析部１１は、図６Ｃに示すマクロ変数値テーブルを読み出し、♯２０１（鋳物の最上面の座標値）が小さい場合、図７に示すようにそれよりも高い部分を加工するためのブロックが実行されないように、ＮＣプログラムを作成することができる。
これにより、非切削（エアカット）時間が少なくなり、加工時間が削減される。
【００３２】
（実施例２）
例えば、図８Ａに示すように、ワークＷを加工すると切粉が加工領域に溜まることがある。加工領域に切粉が溜まり過ぎると、機械の動作不良、又はワークＷの加工不良が発生することがある。
【００３３】
そこで、実施例２では、ワークＷの加工領域の撮像及び画像処理によって切粉の堆積量及び堆積領域（点の位置）をマクロ変数値としてマクロ変数値テーブルに格納する。これにより、ワークＷの加工領域の切粉の堆積量及び堆積領域（点の位置）に応じて切粉の除去を行うようにＮＣプログラムを作成することができる。
まず、図８Ａに示すように、視覚センサ２を、ワークＷにおける切粉が堆積しやすい領域に向けて設置する。
次に、画像処理部２２において、視覚センサ２がワークＷにおける切粉が堆積しやすい領域を撮像後にその画像を受け取り、その画像をもとに、切粉がある一定量溜まったことを示すフラグ、切粉の堆積領域（点の位置）Ｘ，Ｙを求めるようにしておく。
例えば、切粉が堆積しているかどうかやその位置は、ヒストグラムで明るさの違いを検知するなどして求められればよい。
これは、一般的な画像処理ソフトで実現すればよい。
次に、図８Ｂに示すように、撮像及び画像処理のためのＮＣプログラムを作成する。このとき、画像処理入力項目及び画像処理出力項目は以下のように設定される。
画像処理入力項目：使用する視覚センサ番号（＃１００）、画像処理プログラム番号（＃１０１）
画像処理出力項目：切粉がある一定量溜まったことを示すフラグ、切粉の堆積領域（点の位置）Ｘ，Ｙ（♯２０１，♯２０２，♯２０３）
次に、ＮＣプログラムを実行すると、上述した図４のフローチャートに従って撮像及び画像処理が実行され、図８Ｃに示すように画像処理の実行結果がマクロ変数値テーブルに格納される。
【００３４】
これにより、ＮＣプログラム作成者は、加工時、マクロ変数値テーブルを読み出し、図９Ａ及び図９Ｂに示すように、ワークＷにおける切粉の堆積領域に切削液が当たるようにテーブルを移動させる、というようなＮＣプログラムを作成することができる。
これにより、切削液を切粉に集中的に当てることで切粉を除去し、機械の動作不良、又はワークＷの加工不良の発生を防ぐことができる。
【００３５】
（実施例３）
図１０Ａ及び図１０Ｂに示すように、加工プログラムにおいて、コーナ部を滑らかに接続するコーナ接続機能がある。コーナ接続機能では、ＮＣプログラムにおいてトレランス量（加工ワーク形状が設計図の形状から乖離していい上限値）を引数として指定することが可能である。しかし、実際に加工を行うと、サーボ遅れにより余計に内回るので、内回った分だけトレランス量に小さい値を再指定することが考えられる。しかし、トレランス量を手動で再指定するのは手間がかかる。
【００３６】
そこで、実施例３では、ワークＷの撮像及び画像処理によってワークＷの実形状が期待していた形状と一番乖離している部分の距離をマクロ変数値としてマクロ変数値テーブルに格納する。これにより、トレランス量を自動的に修正するようにＮＣプログラムを作成することができる。
まず、図１１Ａに示すように、視覚センサ２をワークＷに向けて設置する。
次に、画像処理部において、視覚センサ２がワークＷを撮像後にその画像を受け取り、その画像をもとに、実形状が期待していた理想形状と一番乖離している部分の距離を求めるようにしておく。
例えば、画像処理出力項目は以下のように求められればよい。
・予めワークＷの理想形状が教示される。
・理想形状における任意の理想点と、得られた実形状における任意の実加工形状点との距離を、複数の任意の点について算出
・ある１つの「理想点」と複数の「実加工形状点」との上記距離の中から、最小値を選出
・複数の「理想点」において上記の最小値を選出し、その中の最大値を出力
これは、一般的な画像処理ソフトで実現すればよい。
次に、図１１Ｂに示すように、撮像及び画像処理のためのＮＣプログラムを作成する。このとき、画像処理入力項目及び画像処理出力項目は以下のように設定される。
画像処理入力項目：使用する視覚センサ番号（＃１００）、画像処理プログラム番号（＃１０１）
画像処理出力項目：実形状が期待していた形状と一番乖離している部分の距離（♯２０１）
次に、ＮＣプログラムを実行すると、上述した図４のフローチャートに従って撮像及び画像処理が実行され、図１１Ｃに示すように画像処理の実行結果がマクロ変数値テーブルに格納される。
【００３７】
これにより、図１２に示すように、実形状が期待していた形状と一番乖離している部分の距離に基づいてトレランス量の指定値を自動的に修正するＮＣプログラムを作成することができる。そのため、トレランス量を手動で再指定する手間を省くことができる。
【００３８】
（実施例４）
実施例４では、工具Ｔの撮像及び画像処理によって工具長をマクロ変数値テーブルに格納する。これにより、工具交換、加工停止、又は数値制御装置への工具情報設定等を行うようにプログラムを作成することができる。
まず、図１３Ａに示すように、視覚センサ２を工具Ｔに向けて設置する。
次に、画像処理部において、視覚センサ２が工具Ｔを撮像後にその画像を受け取り、その画像をもとに、工具長を求めるようにしておく。これは、一般的な画像処理ソフトで実現すればよい。
次に、図１３Ｂに示すように、撮像及び画像処理のためのＮＣプログラムを作成する。このとき、画像処理入力項目及び画像処理出力項目は以下のように設定される。
画像処理入力項目：使用する視覚センサ番号（＃１００）、画像処理プログラム番号（＃１０１）
画像処理出力項目：工具長（♯２０１）
次に、ＮＣプログラムを実行すると、上述した図４のフローチャートに従って撮像及び画像処理が実行され、図１３Ｃに示すように画像処理の実行結果がマクロ変数値テーブルに格納される。
【００３９】
これにより、加工時、マクロ変数値テーブルを読み出し、画像処理結果の工具長が数値制御装置１０に予め設定されている工具長と異なる場合、以下のようにＮＣプログラムのプログラマの判断により状況に応じたＮＣプログラムを作成することができる。
（Ａ）加工直前に撮像し、かつ、工具が折損している可能性が考えられる状況だとプログラマが判断する場合、図１４Ａに示すように、正常に加工を行うために工作機械の工具マガジンに装着されている同種の別の工具に交換をする、というようなＮＣプログラムを組むことができる。
（Ｂ）加工直後に撮像し、かつ、工具が加工中に折損して加工が正常に行われていない可能性が考えられる状況だとプログラマが判断する場合、図１４Ｂに示すように、加工を停止する、というようなＮＣプログラムを組むこともできる。
（Ｃ）新品の工具の長さを計測する場合など、工具が折損している可能性が低い状況だとプログラマが判断する場合、図１４Ｃに示すように、画像処理結果の工具長を数値制御装置１０に予め設定されている値に上書きするようなＮＣプログラムを組むこともできる。
【００４０】
以上説明したように、本実施形態の数値制御システム１によれば、画像処理入出力項目−変数番号変換部（画像処理入出力項目−運転制御情報変換部）１４は、画像処理装置２０からの画像処理の結果である画像処理の出力項目を、ＮＣプログラム解析部１１によって認識可能な形式のマクロ変数の値（運転制御情報）に変換する。
これにより、ＮＣプログラム解析部１１は、マクロ変数を読み出すことにより画像処理の実行結果（画像処理の出力項目）を受け取ることができる。そのため、視覚センサ２によって撮像された工作機械における工具Ｔ又はワークＷの撮像結果をＮＣプログラムに反映することができる。
【００４１】
ところで、特許文献１に記載の技術のように、Ｇコード指令の引数を使用して視覚センサ２及び画像処理装置２０の運転制御を行う場合、Ｇコードの指令フォーマットにより引数の数が制限を受けるので、設定値を指定できる数が制限を受け易い。例えば、アルファベット１文字により引数の種類を指定するフォーマットの場合、アルファベットの文字数が指定できる数の上限となる。
この点に関し、本実施形態の数値制御システム１によれば、画像処理入出力項目−変数番号変換部（画像処理入出力項目−運転制御情報変換部）１４は、ＮＣプログラム解析部１１によって読み書き可能な形式でマクロ変数値テーブル格納部（運転制御情報格納部）１２に格納されたマクロ変数の値（運転制御情報）を、撮像装置２及び画像処理装置２０によって認識可能な形式の設定値である画像処理の入力項目に変換する。
これにより、マクロ変数値テーブル格納部として使える領域のサイズを増やすだけで、マクロ変数の数を増やすことができる。そのため、設定値を指定できる数が制限を受け難い。また、簡単に対応でき、拡張性が高い。
【００４２】
（第２実施形態）
第１実施形態では、画像処理入出力項目−変数番号変換部１４が数値制御装置１０内に配置される形態を例示したが、画像処理入出力項目−変数番号変換部１４は画像処理装置２０内に配置されてもよい。
【００４３】
図１５は、第２実施形態に係る数値制御システムを示す図である。図１５に示す第２実施形態の数値制御システム１は、図２に示す数値制御システム１において、画像処理入出力項目−変数番号変換部１４が画像処理装置２０内に配置されている点で第１実施形態と異なる。
【００４４】
次に、図１６を参照して、第２実施形態に係る数値制御システム１による工具Ｔ又はワークＷの撮像及び画像処理の動作について説明する。図１６は、第２実施形態に係る数値制御システム１による工具Ｔ又はワークＷの撮像及び画像処理の動作を示すフローチャートである。
まず、上述のステップＳ１及びステップＳ２と同様に、数値制御装置１０におけるＮＣプログラム解析部１１は、ＮＣプログラムにおける１ブロックを読み取り（Ｓ１Ａ）、指令内容を解析する（Ｓ２Ａ）。
指令がマクロ変数の書き込み指令である場合、上述のステップＳ３と同様に、ＮＣプログラム解析部１１は、マクロ変数値テーブル格納部１２のマクロ変数値テーブルにマクロ変数値を書き込む（Ｓ３Ａ）。具体的には、ＮＣプログラム解析部１１は、指令において指定されたマクロ変数番号（例えば、等式の左辺）に対応するマクロ変数値テーブルの領域に、指令において設定されたマクロ変数値（例えば、等式の右辺）を書き込む（Ｓ３Ａ）。その後、後述のステップＳ１０Ａに移行する。
【００４５】
一方、ステップＳ２Ａにおいて指令が撮像及び画像処理の起動指令である場合、通信部１３は、予め定められた変数番号の値をマクロ変数値テーブル格納部１２のマクロ変数値テーブルから読み出す。通信部１３は、撮像及び画像処理の起動指令と、読み出した変数番号の値とを、画像処理装置２０に送信する（Ｓ４Ａ）。
【００４６】
画像処理装置２０における画像処理入出力項目−変数番号変換部１４は、数値制御装置１０から受信した変数番号の値を、画像処理入力項目とみなし、画像処理部２２に入力する（Ｓ５Ａ）。
次に、上述のステップＳ７と同様に、画像処理部２２は、数値制御装置１０から受信した撮像及び画像処理の起動指令に基づいて、通信部２１を介して視覚センサ２を操作し、工作機械における工具Ｔ又はワークＷの撮像を行う（Ｓ６Ａ）。
次に、上述のステップＳ８と同様に、画像処理部２２は、視覚センサ２からの撮像画像に対して画像処理を実行し、画像処理入力項目の値に応じた画像処理出力項目の値を得る（Ｓ７Ａ）。
次に、画像処理入出力項目−変数番号変換部１４は、画像処理出力項目の値を、予め定められた変数番号の値とみなし、数値制御装置１０に送信する（Ｓ８Ａ）。
【００４７】
次に、数値制御装置１０における通信部１３は、画像処理装置２０から画像処理出力項目の値（実行結果）を取得し、取得した画像処理出力項目の値を、変数番号に対応するマクロ変数値テーブル格納部１２のマクロ変数値テーブルの領域に書き込む（Ｓ９Ａ）。
【００４８】
次に、上述のステップＳ１１と同様に、ＮＣプログラム解析部１１は、ＮＣプログラムの全てのブロックの解析が終了したか否かを判定する（Ｓ１０Ａ）。ＮＣプログラムの全てのブロックの解析が終了していない場合、ステップＳ１Ａに戻り、ＮＣプログラムの次の１ブロックについて上述したステップＳ１Ａ〜Ｓ１０Ａの処理を行う。
一方、ステップＳ１０ＡにおいてＮＣプログラムの全てのブロックの解析が終了した場合、数値制御システム１は、工具Ｔ又はワークＷの撮像及び画像処理の動作を終了する。
【００４９】
この第２実施形態の数値制御システム１でも、上述した第１実施形態の数値制御システム１と同様の利点を得ることができる。
なお、第２実施形態の数値制御システム１によれば、既存の数値制御装置でも本発明の特徴を実現することができる。
【００５０】
（第３実施形態）
第１実施形態では、工作機械の工具Ｔ又はワークＷの撮像及び画像処理の結果をＮＣプログラムに反映する数値制御システム１について説明した。第３実施形態では、工作機械の工具Ｔ又はワークＷの撮像及び画像処理の結果をラダープログラムに反映する数値制御システムについて説明する。
【００５１】
図１７は、第３実施形態に係る数値制御システムを示す図である。図１７に示す数値制御システム１Ｂは、図２に示す数値制御システム１において数値制御装置１０に代えて数値制御装置１０Ｂを備える構成で第１実施形態と異なる。
数値制御装置１０Ｂは、数値制御装置１０において、ＮＣプログラムにラダープログラムを用いる点、及び、ＮＣプログラム解析部１１、マクロ変数値テーブル格納部１２及び画像処理入出力項目−変数番号変換部１４に代えて、ラダープログラム解析部（プログラム解析部）１１Ｂ、信号格納部（運転制御情報格納部）１２Ｂ及び画像処理入出力項目−信号アドレス変換部（画像処理入出力項目−運転制御情報変換部）１４Ｂを備える構成で第１実施形態と異なる。
【００５２】
図１８は、工具Ｔ又はワークＷの撮像及び画像処理時、視覚センサ２及び画像処理装置２０を制御するためのラダープログラムの一例（左部分）とその説明（右部分）を示す図である。図１８に示すように、ラダープログラムは、指令と信号領域とを含む。例えば、
「Ｒ０８１０」は、撮像および画像処理起動指令であり、
「Ｒ０１００」は、使用する視覚センサを指定する信号領域であり、
「Ｒ０１０１」は、画像処理プログラム番号を指定するする信号領域であり、
「Ｒ０２１０」は、実行結果（計測点の座標値）を示す信号領域である。
ラダープログラムは、例えばＥＥＰＲＯＭ等の書き換え可能なメモリ（図示省略）に格納される。
【００５３】
ラダープログラム解析部１１Ｂは、ラダープログラムを１ブロックずつ読み取り、指令内容を解析する。
図１８のＳＥＴ（Ｒ０１００、１）やＳＥＴ（Ｒ０１０１、１２３）のように、指令が信号領域の書き込み指令である場合、ラダープログラム解析部１１Ｂは、信号格納部１２Ｂの信号領域に引数を書き込む。具体的には、ラダープログラム解析部１１Ｂは、指令において第１引数に指定された信号アドレスに対応する信号領域に、第２引数を書き込む。
一方、図１８のＳＥＴ（Ｒ０８１０、１）のように、指令が撮像及び画像処理の起動指令である場合、ラダープログラム解析部１１Ｂは、撮像及び画像処理の起動指令を通信部１３に出力する。
【００５４】
信号格納部１２Ｂは、工作機械の運転制御に必要な設定値（例えば、工具情報、ワーク情報、特徴的な箇所の座標値）を信号として格納する。また、信号格納部１２Ｂは、視覚センサ２及び画像処理装置２０の運転制御に必要な設定値（例えば、視覚センサ２の解像度、画像処理のプログラム名）をマクロ変数として格納する。このような設定値は、ラダープログラムが実行されたときに設定される。
更に、信号格納部１２Ｂは、画像処理装置２０による画像処理の結果得られた工具Ｔ又はワークＷの情報をマクロ変数として格納する。
例えば、信号格納部１２Ｂにおける信号領域は以下のようになる。
Ｒ０１００：使用する視覚センサ番号
Ｒ０１０１：画像処理プログラム番号
Ｒ０２１０：実行結果（計測点の座標値）
ここで、変数番号「Ｒ０１００」「Ｒ０１０１」が、後述の画像処理入力項目の値が格納される信号名であり、使用する視覚センサ番号、および画像処理プログラム番号が、画像処理入力項目の値である。
また、変数番号「Ｒ０２１０」が、後述の画像処理出力項目の値が格納される信号名であり、実行結果（計測点の座標値）が、画像処理出力項目の値である。
このように、信号格納部１２Ｂは、工作機械、視覚センサ２及び画像処理装置２０の運転制御に必要な各種設定値を、ラダープログラム解析部１１Ｂによって読み書き可能な形式である信号として格納する。換言すれば、信号格納部１２Ｂは、ラダープログラム作成者が読み書きでき、かつ、ラダープログラム解析部１１Ｂが読み書きできる領域である。信号格納部１２Ｂは、例えばＥＥＰＲＯＭ等の書き換え可能なメモリである。
【００５５】
画像処理入出力項目−信号アドレス変換部１４Ｂは、信号領域からの設定値の読み出し時、画像処理入出力項目−信号アドレス変換部１４Ｂは、信号格納部１２Ｂに格納された視覚センサ２及び画像処理装置２０を操作するために必要な設定値（信号）を、視覚センサ２及び画像処理装置２０によって認識可能な形式の設定値である画像処理の入力項目に変換する。
一方、信号領域への撮像及び画像処理の実行結果の書き込み時、画像処理入出力項目−信号アドレス変換部１４Ｂは、画像処理装置２０からの画像処理の結果である画像処理の出力項目を、ラダープログラム解析部１１Ｂによって認識可能な形式の信号に変換する。
【００５６】
次に、図１９を参照して、第３実施形態に係る数値制御システム１Ｂによる工具Ｔ又はワークＷの撮像及び画像処理の動作について説明する。図１９は、第３実施形態に係る数値制御システム１Ｂによる工具Ｔ又はワークＷの撮像及び画像処理の動作を示すフローチャートである。
まず、数値制御装置１０Ｂにおけるラダープログラム解析部１１Ｂは、ラダープログラムにおける１ブロックを読み取り（Ｓ１Ｂ）、指令内容を解析する（Ｓ２Ｂ）。
指令が信号の書き込み指令である場合、ラダープログラム解析部１１Ｂは、信号格納部１２Ｂの信号領域に引数を書き込む（Ｓ３Ｂ）。具体的には、ラダープログラム解析部１１Ｂは、指令において第１引数に指定された信号アドレスに対応する信号領域に、第２引数を書き込む（Ｓ３Ｂ）。その後、後述のステップＳ１１Ｂに移行する。
【００５７】
一方、ステップＳ２Ｂにおいて指令が撮像及び画像処理の起動指令である場合、通信部１３は、画像処理入出力項目−信号アドレス変換部１４Ｂに、画像処理入力項目の値を読み出すように要求する（Ｓ４Ｂ）。
次に、画像処理入出力項目−信号アドレス変換部１４Ｂは、画像処理入力項目を予め定められた信号アドレスに変換し、変換した信号アドレスの値を信号格納部１２Ｂの信号領域から読み出し、読み出した信号アドレスの値を画像処理入力項目の値として通信部１３に応答する（Ｓ５Ｂ）。
次に、通信部１３は、撮像及び画像処理の起動指令と、画像処理入出力項目−信号アドレス変換部１４Ｂから取得した画像処理入力項目の値とを、画像処理装置２０に送信する（Ｓ６Ｂ）。
【００５８】
画像処理装置２０における画像処理部２２は、上述のステップＳ７と同様に、数値制御装置１０Ｂから受信した撮像及び画像処理の起動指令に基づいて、通信部２１を介して視覚センサ２を操作し、工作機械における工具Ｔ又はワークＷの撮像を行う（Ｓ７Ｂ）。
次に、画像処理部２２は、上述のステップＳ８と同様に、視覚センサ２からの撮像画像に対して画像処理を実行し、画像処理入力項目の値に応じた画像処理出力項目の値を得る（Ｓ８Ｂ）。
【００５９】
次に、数値制御装置１０Ｂにおける通信部１３は、画像処理装置２０から画像処理出力項目の値（実行結果）を取得し、画像処理入出力項目−信号アドレス変換部１４Ｂに出力する（Ｓ９Ｂ）。
次に、画像処理入出力項目−信号アドレス変換部１４Ｂは、通信部１３から取得した画像処理出力項目の値を、予め定められた信号アドレスの値とみなし、信号アドレスに対応する信号格納部１２Ｂの信号領域に書き込む（Ｓ１０Ｂ）。
【００６０】
次に、ラダープログラム解析部１１Ｂは、ラダープログラムの全てのブロックの解析が終了したか否かを判定する（Ｓ１１Ｂ）。ラダープログラムの全てのブロックの解析が終了していない場合、ステップＳ１Ｂに戻り、ラダープログラムの次の１ブロックについて上述したステップＳ１Ｂ〜Ｓ１１Ｂの処理を行う。
一方、ステップＳ１１Ｂにおいてラダープログラムの全てのブロックの解析が終了した場合、数値制御システム１Ｂは、工具Ｔ又はワークＷの撮像及び画像処理の動作を終了する。
【００６１】
次に、具体的な実施例を挙げながら本実施形態を詳細に説明するが、本実施形態はこれらの具体例に限定されない。
【００６２】
（実施例５）
例えば、実施例２において上述したように、ワークＷを加工すると切粉が加工領域に溜まることがある。加工領域に切粉が溜まり過ぎると、機械の動作不良、又はワークＷの加工不良が発生することがある。
【００６３】
そこで、実施例５では、ワークＷの加工領域の撮像及び画像処理によって切粉の堆積量及び堆積領域（点の位置）を信号として信号領域に格納する。これにより、ワークＷの加工領域の切粉の堆積量及び堆積領域（点の位置）に応じて切粉の除去を行うようにＮＣプログラムを作成することができる。
まず、図２０Ａに示すように、視覚センサ２を、ワークＷにおける切粉が堆積しやすい領域に向けて設置する。
なお、本実施例では、工具Ｔ（主軸及び切削液用ノズル）は、ＮＣプログラムの移動指令によりＸ方向、Ｙ方向及びＺ方向に移動する。そして、切粉堆積箇所向けノズルが、堆積した切粉を除去するためのノズルである。切粉堆積箇所向けノズルは、主軸の移動軸Ｘ、Ｙ、Ｚとは別の切粉堆積箇所向けノズル用の移動軸ＸＬ、ＹＬに沿うＸＬ、ＹＬ方向に、ラダープログラムの移動指令により移動する。
次に、画像処理部において、視覚センサ２がワークＷにおける切粉が堆積しやすい領域を撮像後にその画像を受け取り、その画像をもとに、切粉がある一定量溜まったことを示すフラグ、切粉の堆積領域（点の位置）Ｘ，Ｙを求めるようにしておく。
例えば、切粉が堆積しているかどうかやその位置は、ヒストグラムで明るさの違いを検知するなどして求められれば良い。
これは、一般的な画像処理ソフトで実現すればよい。
次に、図２０Ｂに示すように、撮像及び画像処理のためのラダープログラムを作成する。このとき、画像処理入力項目及び画像処理出力項目は以下のように設定される。
画像処理入力項目：使用する視覚センサ番号（＃１００）、画像処理プログラム番号（＃１０１）
画像処理出力項目：切粉がある一定量溜まったことを示すフラグ、切粉の堆積領域（点の位置）ＸＬ，ＹＬ（♯２０１，♯２０２，♯２０３）
次に、ラダープログラムを実行すると、上述した図１９のフローチャートに従って撮像及び画像処理が実行され、図２０Ｃに示すように画像処理の実行結果が信号領域に格納される。
【００６４】
これにより、ラダープログラム作成者は、加工時、信号領域の信号を読み出し、図２０Ａ及び図２１に示すように、ワークＷにおける切粉の堆積領域に切削液が当たるように切粉堆積箇所向けノズルを移動させる、というようなラダープログラムを作成することができる。
これにより、切削液を切粉に集中的に当てることで切粉を除去し、機械の動作不良、又はワークＷの加工不良の発生を防ぐことができる。
更に、ラダープログラムはＮＣプログラムとは独立して実行されるので、ＮＣプログラムによる加工と並行して、切粉を除去することができる。これにより、加工にかかる工数を削減することができる。
【００６５】
この第３実施形態の数値制御システム１Ｂでも、上述した第１実施形態の数値制御システム１と同様の利点を得ることができる。
第３実施形態では、画像処理入出力項目−信号アドレス変換部１４Ｂが数値制御装置１０Ｂ内に配置される形態を例示したが、画像処理入出力項目−信号アドレス変換部１４Ｂは画像処理装置２０内に配置されてもよい。
【００６６】
（第４実施形態）
第１実施形態では、画像処理入出力項目−変数番号変換部（画像処理入出力項目−運転制御情報変換部）１４は、マクロ変数値テーブル格納部（運転制御情報格納部）１２に格納された運転制御情報を、視覚センサ２及び画像処理装置２０によって認識可能な形式の設定値である画像処理の入力項目に変換した。
第４実施形態では、画像処理入出力項目−運転制御情報変換部は、プログラム解析部がプログラムから読み出した指令を、視覚センサ及び画像処理装置によって認識可能な形式の設定値である画像処理の入力項目に変換する。
【００６７】
図２２は、第４実施形態に係る数値制御システムを示す図である。図２２に示す第４実施形態の数値制御システム１は、図２に示す数値制御システム１において、画像処理入出力項目−変数番号変換部１４に代えて、画像処理入出力項目−運転制御情報変換部１４を備える点で第１実施形態と異なる。
【００６８】
図２３は、工具Ｔ又はワークＷの撮像及び画像処理時、視覚センサ２及び画像処理装置２０を制御するためのＮＣプログラムの一例（左部分）とその説明（右部分）を示す図である。図２３に示すように、本実施形態では、視覚センサ番号、画像処理プログラム番号をマクロ変数♯１００、♯１０１に代入する代わりに、Ｇ８１０のブロックで指定する。
【００６９】
画像処理入出力項目−運転制御情報変換部１４は、プログラム解析部１１がプログラムから読み出した起動指令を、視覚センサ２及び画像処理装置２０によって認識可能な形式の設定値である画像処理の入力項目に変換する。
【００７０】
次に、図２４を参照して、第４実施形態に係る数値制御システム１による工具Ｔ又はワークＷの撮像及び画像処理の動作について説明する。図２４は、第４実施形態に係る数値制御システム１による工具Ｔ又はワークＷの撮像及び画像処理の動作を示すフローチャートである。
まず、上述同様に、数値制御装置１０におけるＮＣプログラム解析部１１は、ＮＣプログラムにおける１ブロックを読み取り（Ｓ１）、指令内容を解析する。
次に、画像処理入出力項目−運転制御情報変換部１４は、ＮＣプログラム解析部１１が読み出した撮像及び画像処理の起動指令の引数の値を、画像処理入力項目の値に変換する（Ｓ５Ｃ）。
次に、上述同様に、通信部１３は、画像処理入出力項目−運転制御情報変換部１４から取得した画像処理入力項目の値を、画像処理装置２０に送信する（Ｓ６）。
【００７１】
すると、上述同様に、画像処理装置２０における画像処理部２２は、数値制御装置１０から受信した撮像及び画像処理の起動指令に基づいて、通信部２１を介して視覚センサ２を操作し、工作機械における工具Ｔ又はワークＷの撮像を行う（Ｓ７）。
次に、上述同様に、画像処理部２２は、視覚センサ２からの撮像画像に対して画像処理を実行し、画像処理入力項目の値に応じた画像処理出力項目の値を得る（Ｓ８）。
【００７２】
次に、上述同様に、数値制御装置１０における通信部１３は、画像処理装置２０から画像処理出力項目の値（実行結果）を取得し、画像処理入出力項目−運転制御情報変換部１４に出力する（Ｓ９）。
次に、上述同様に、画像処理入出力項目−運転制御情報変換部１４は、通信部１３から取得した画像処理出力項目の値を、予め定められた変数番号の値とみなし、変数番号に対応するマクロ変数値テーブル格納部１２のマクロ変数値テーブルの領域に書き込む（Ｓ１０）。
【００７３】
次に、上述同様に、ＮＣプログラム解析部１１は、ＮＣプログラムの全てのブロックの解析が終了したか否かを判定する（Ｓ１１）。ＮＣプログラムの全てのブロックの解析が終了していない場合、ステップＳ１に戻り、ＮＣプログラムの次の１ブロックについて上述したステップＳ１〜Ｓ１１の処理を行う。
一方、ステップＳ１１においてＮＣプログラムの全てのブロックの解析が終了した場合、数値制御システム１は、工具Ｔ又はワークＷの撮像及び画像処理の動作を終了する。
【００７４】
この第４実施形態の数値制御システム１でも、第１実施形態の数値制御システム１と同様の利点を得ることができる。
更に、第４実施形態の数値制御システム１によれば、マクロ変数値テーブル格納部（運転制御情報格納部）１２への設定、読み出しをすることなく視覚センサ２及び画像処理を起動できるので、処理時間が少なく済む。第４実施形態の数値制御システム１は、
画像処理入力項目の種類が少ない場合（マクロ変数の数の拡張性がメリットにならない場合）に有効である。
なお、第４実施形態の特徴は、上述した第２実施形態及び第３実施形態に適用されてもよい。
【００７５】
以上、本発明の実施形態について説明したが、本発明は上述した実施形態に限定されることなく、種々の変更及び変形が可能である。例えば、上述した実施形態では、工作機械の工具又はワークの撮像及び画像処理の結果をＮＣプログラム又はラダープログラムに反映する数値制御システムを例示した。しかし、本発明の特徴はこれに限定されず、例えば、コンパイルしてＲＯＭ（例えば、フラッシュメモリ）等に登録される実行形式のマクロプログラムに、工作機械の工具又はワークの撮像及び画像処理の結果を反映する数値制御システムにも適用可能である。このようなマクロプログラムとしては、例えばＮＣプログラムの一種であるＰ−ＣＯＤＥマクロが挙げられる。
【００７６】
また、上述した実施形態では、数値制御装置が画像処理装置を介して視覚センサを制御する形態を説明したが、画像処理装置が視覚センサを制御してもよい。
図２５は、工具Ｔ又はワークＷの撮像及び画像処理時、視覚センサ２及び画像処理装置２０を制御するためのＮＣプログラムの一例（左部分）とその説明（右部分）を示す図である。図２５に示すように、画像処理装置が視覚センサを制御する場合、ＮＣプログラムでは、画像処理装置の操作に関する設定値（画像処理プログラム番号♯１０１など）のみを設定し、視覚センサに関する設定（視覚センサ番号など）は、画像処理装置に予め設定しておけばよい。
【００７７】
また、上述した実施形態では、工作機械を制御する数値制御システムを例示した。しかし、本発明の特徴はこれに限定されず、産業機械又は産業ロボット等の種々の機械を制御する数値制御システムに適用可能である。
【００７８】
また、上述した実施形態では、工作機械の工具又はワークを撮像する撮像装置として視覚センサを例示した。しかし、撮像装置はこれに限定されず、種々の撮像装置が用いられてもよい。
【００７９】
また、上述した実施形態では、数値制御装置と画像処理装置とが別の装置で構成される形態を説明したが、数値制御装置と画像処理装置とは一つの装置で構成される形態であってもよい。すなわち、数値制御装置及び画像処理装置の各構成要素は一つの装置に組み込まれる形態であってもよい。各構成要素の役割は上述同様である。
また、上述した実施形態では、画像処理装置と撮像装置とが別の装置で構成される形態を説明したが、画像処理装置と撮像装置とは一つの装置で構成される形態であってもよい。すなわち、画像処理装置及び撮像装置の各構成要素は一つの装置に組み込まれる形態であってもよい。各構成要素の役割は上述同様である。
【符号の説明】
【００８０】
１，１Ｂ  数値制御システム
２  視覚センサ（撮像装置）
１０，１０Ｂ  数値制御装置
１１  ＮＣプログラム解析部（プログラム解析部）
１１Ｂ  ラダープログラム解析部（プログラム解析部）
１２  マクロ変数値テーブル格納部（運転制御情報格納部）
１２Ｂ  信号格納部（運転制御情報格納部）
１３  通信部
１４  画像処理入出力項目−変数番号変換部（画像処理入出力項目−運転制御情報変換部）
１４Ｂ  画像処理入出力項目−信号アドレス変換部（画像処理入出力項目−運転制御情報変換部）
２０  画像処理装置
２１  通信部
２２  画像処理部
Ｔ  工具
Ｗ  ワーク
【図１】
2019185545.tif 000003
【図２】
2019185545.tif 000004
【図３】
2019185545.tif 000005
【図４】
2019185545.tif 000006
【図５Ａ】
2019185545.tif 000007
【図５Ｂ】
2019185545.tif 000008
【図６Ａ】
2019185545.tif 000009
【図６Ｂ】
2019185545.tif 000010
【図６Ｃ】
2019185545.tif 000011
【図７】
2019185545.tif 000012
【図８Ａ】
2019185545.tif 000013
【図８Ｂ】
2019185545.tif 000014
【図８Ｃ】
2019185545.tif 000015
【図９Ａ】
2019185545.tif 000016
【図９Ｂ】
2019185545.tif 000017
【図１０Ａ】
2019185545.tif 000018
【図１０Ｂ】
2019185545.tif 000019
【図１１Ａ】
2019185545.tif 000020
【図１１Ｂ】
2019185545.tif 000021
【図１１Ｃ】
2019185545.tif 000022
【図１２】
2019185545.tif 000023
【図１３Ａ】
2019185545.tif 000024
【図１３Ｂ】
2019185545.tif 000025
【図１３Ｃ】
2019185545.tif 000026
【図１４Ａ】
2019185545.tif 000027
【図１４Ｂ】
2019185545.tif 000028
【図１４Ｃ】
2019185545.tif 000029
【図１５】
2019185545.tif 000030
【図１６】
2019185545.tif 000031
【図１７】
2019185545.tif 000032
【図１８】
2019185545.tif 000033
【図１９】
2019185545.tif 000034
【図２０Ａ】
2019185545.tif 000035
【図２０Ｂ】
2019185545.tif 000036
【図２０Ｃ】
2019185545.tif 000037
【図２１】
2019185545.tif 000038
【図２２】
2019185545.tif 000039
【図２３】
2019185545.tif 000040
【図２４】
2019185545.tif 000041
【図２５】
2019185545.tif 000042