(57)【要約】【課題】産業機械に含まれる装置における制御プログラムを管理して、当該装置に係る制御プログラムの更新における作業負担を軽減できる数値制御装置及び産業機械に含まれる装置を提供する。【解決手段】モータ駆動装置２００に対して通信可能に接続され、モータ駆動装置２００を制御する数値制御装置１００は、モータ駆動装置２００に書き込まれて実行可能な制御プログラムを記憶するプログラム管理記憶部１２１と、モータ駆動装置２００のプログラム記憶部２２１に、プログラム管理記憶部１２１に記憶された制御プログラムを書き込むプログラム書込部１１８と、モータ駆動装置２００に既に記憶されている制御プログラムを、モータ駆動装置２００から取得するデータ取得部１１１と、取得した制御プログラムをプログラム管理記憶部１２１に記憶させる記憶制御部１１２と、を備える。【選択図】図１
2019049917.tif 000002
【特許請求の範囲】
【請求項１】
産業機械に含まれる装置に対して通信可能に接続され、前記装置を制御する数値制御装置であって、
前記装置に書き込まれて実行可能な制御プログラムを記憶するプログラム管理記憶部と、
前記装置の記憶部に、前記プログラム管理記憶部に記憶された前記制御プログラムを書き込むプログラム書込手段と、
前記装置に既に記憶されている制御プログラムを、前記装置から取得するデータ取得手段と、
前記データ取得手段により取得した前記制御プログラムを、前記プログラム管理記憶部に記憶させる記憶制御手段と、
を備える数値制御装置。
【請求項２】
請求項１に記載の数値制御装置において、
前記データ取得手段により取得した前記制御プログラムと、前記プログラム管理記憶部に予め記憶された前記制御プログラムとを照合する照合手段を備え、
前記記憶制御手段は、前記照合手段による照合結果に応じて、前記データ取得手段により取得した前記制御プログラムを、前記プログラム管理記憶部に記憶させること、
を特徴とする数値制御装置。
【請求項３】
請求項２に記載の数値制御装置において、
前記プログラム管理記憶部は、前記制御プログラムの版数情報を、前記制御プログラムに対応付けて記憶し、
前記データ取得手段は、さらに前記制御プログラムの版数情報を取得し、
前記照合手段は、前記版数情報を照合すること、
を特徴とする数値制御装置。
【請求項４】
請求項３に記載の数値制御装置において、
前記データ取得手段により取得した前記制御プログラムの前記版数情報と、前記プログラム管理記憶部に予め記憶された前記制御プログラムの前記版数情報とを表示部に表示させる表示制御手段と、
前記表示部の表示に基づく書込対象の制御プログラムの選択を、入力部を介して受け付ける受付手段と、
を備え、
前記プログラム書込手段は、前記受付手段が受け付けた選択に対応する制御プログラムを、前記装置の前記記憶部に書き込むこと、
を特徴とする数値制御装置。
【請求項５】
請求項４に記載の数値制御装置において、
複数の装置に対して通信可能に接続され、
前記表示制御手段は、さらに前記装置の名称を、前記データ取得手段により取得した前記制御プログラムの前記版数情報と共に、前記表示部に表示させ、
前記受付手段は、前記書込対象の制御プログラムの選択と、選択した書込対象の前記制御プログラムの書込先である装置の選択とを、前記入力部を介して受け付け、
前記プログラム書込手段は、前記受付手段により受け付けた前記装置の前記記憶部に、前記受付手段が受け付けた選択に対応する書込対象の制御プログラムを書き込むこと、
を特徴とする数値制御装置。
【請求項６】
請求項５に記載の数値制御装置において、
前記プログラム管理記憶部は、前記制御プログラムを実行可能な装置の種類情報が対応付けられており、
前記表示制御手段は、さらに前記装置の前記種類情報を、前記プログラム管理記憶部に予め記憶された前記制御プログラムの前記版数情報と共に、前記表示部に表示させること、
を特徴とする数値制御装置。
【請求項７】
請求項１から請求項６に記載の数値制御装置に対して通信可能に接続された産業機械に含まれる装置であって、
前記数値制御装置から前記制御プログラムを受信したことに応じて、前記記憶部に、受信した前記制御プログラムの書き込みを許可する書込許可手段と、
前記数値制御装置からの要求に応じて、前記記憶部に記憶されている前記制御プログラムを送出するデータ送出手段と、
を備える装置。
【請求項８】
請求項７に記載の装置において、
前記書込許可手段は、前記記憶部に既に記憶されている制御プログラムから、受信した前記制御プログラムへの書き換えを許可すること、
を特徴とする装置。
【請求項９】
請求項７に記載の装置において、
前記記憶部は、複数の前記制御プログラムを記憶可能な記憶容量を有し、
前記書込許可手段は、前記記憶部に既に記憶されている制御プログラムに加えて、受信した前記制御プログラムの書き込みを許可し、
前記書込許可手段により書き込みを許可した前記制御プログラムに、実行する制御プログラムを切り替える切替手段を備えること、
を特徴とする装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、数値制御装置及び産業機械に含まれる装置に関する。
【背景技術】
【０００２】
例えば、工作機械及び産業用ロボット等に搭載されるモータ駆動装置では、モータ等を制御する制御ソフトウェアを含む各種のプログラムが動作している。同様に、工作機械等に搭載されるレーザ加工装置では、レーザ発振器等を制御する制御ソフトウェアを含む各種のプログラムが動作している。
このように、各種工作機械及び産業用ロボット等は、その構成要素として前述したようなモータ駆動装置やレーザ加工装置といった装置を搭載する。また、工作機械や産業用ロボットに限らず、例えばサービス用ロボットや鍛圧機械及び射出成形機といった様々な機械についても同様である。
このような工作機械及び産業用ロボット等の機械（サービス用ロボットや鍛圧機械及び射出成形機といった様々な機械を含む）に含まれる装置にインストールされている各種プログラムを更新するため、従来は、オペレータが、装置又は装置を含む工作機械及び産業用ロボット等の機械に対して、例えば、外部のパーソナルコンピュータ（ＰＣ）を直接接続して、ＰＣのツールによって、装置又は装置を含む工作機械及び産業用ロボット等の機械が備えるプログラム記憶部に各種プログラムを書き込む処理を行わせていた。したがって、例えば同じ装置、又は同じ装置を含む工作機械及び産業用ロボット等の機械が複数存在する場合、各装置、又は各工作機械及び産業用ロボット等の機械ごとに、各種プログラムを書き込む処理を行わせることが必要となり、作業時間がかかり、運用負担のかかるものであった。
これに対して、特許文献１には、ホストコンピュータからネットワークを介して、産業用ロボットにインストールされているソフトウェアを更新する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平８−２６３１２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に記載のシステムにおいては、最新のプログラムをホストコンピュータに記憶しておけばよいが、１つの産業用ロボットに最新のプログラムが既にインストールされている場合であっても、１つの産業用ロボットにインストールされている最新のプログラムを他の産業用ロボットに反映することができなかった。
【０００５】
本発明は、前述したような工作機械及び産業用ロボット等の機械（サービス用ロボットや鍛圧機械及び射出成形機といった様々な機械を含む）に含まれる装置における制御ソフトウェアを含む各種プログラムを管理して、当該装置に係る制御ソフトウェアを含む各種プログラムの更新における作業負担を軽減できる数値制御装置、並びに工作機械及び産業用ロボット等の機械に含まれる装置を提供することを目的とする。
以下、本明細書、特許請求の範囲、要約書、及び図面においては、前述した工作機械及び産業用ロボット等の機械（サービス用ロボットや鍛圧機械及び射出成形機といった様々な機械を含む）を、簡単のために、「産業機械」といい、産業機械に含まれる装置を特に断らない限り「装置」という。また、装置における制御ソフトウェアを含む各種プログラムを簡単のために「制御プログラム」という。
【課題を解決するための手段】
【０００６】
（１）本発明の数値制御装置（例えば、後述の「数値制御装置１００」）は、産業機械に含まれる装置（例えば、後述の「モータ駆動装置２００」）に対して通信可能に接続され、前記装置を制御するものであり、前記装置に書き込まれて実行可能な制御プログラム（例えば、後述の「制御プログラム」）を記憶するプログラム管理記憶部（例えば、後述の「プログラム管理記憶部１２１」）と、前記装置の記憶部（例えば、後述の「プログラム記憶部２２１」）に、前記プログラム管理記憶部に記憶された前記制御プログラムを書き込むプログラム書込手段（例えば、後述の「プログラム書込部１１８」）と、前記装置に既に記憶されている制御プログラムを、前記装置から取得するデータ取得手段（例えば、後述の「データ取得部１１１」）と、前記データ取得手段により取得した前記制御プログラムを、前記プログラム管理記憶部に記憶させる記憶制御手段（例えば、後述の「記憶制御部１１２」）と、を備える。
【０００７】
（２）  （１）に記載の数値制御装置（例えば、後述の「数値制御装置１００」）において、前記データ取得手段により取得した前記制御プログラム（例えば、後述の「制御プログラム」）と、前記プログラム管理記憶部に予め記憶された前記制御プログラムとを照合する照合手段（例えば、後述の「照合部１１４」）を備え、前記記憶制御手段は、前記照合手段による照合結果に応じて、前記データ取得手段により取得した前記制御プログラムを、前記プログラム管理記憶部に記憶させてもよい。
【０００８】
（３）  （２）に記載の数値制御装置（例えば、後述の「数値制御装置１００」）において、前記プログラム管理記憶部は、前記制御プログラム（例えば、後述の「制御プログラム」）の版数情報を、前記制御プログラムに対応付けて記憶し、前記データ取得手段は、さらに前記制御プログラムの版数情報を取得し、前記照合手段は、前記版数情報を照合するものであってもよい。
【０００９】
（４）  （３）に記載の数値制御装置（例えば、後述の「数値制御装置１００」）において、前記データ取得手段により取得した前記制御プログラム（例えば、後述の「制御プログラム」）の前記版数情報と、前記プログラム管理記憶部に予め記憶された前記制御プログラムの前記版数情報とを表示部（例えば、後述の「表示部１３０」）に表示させる表示制御手段（例えば、後述の「表示制御部１１５」）と、前記表示部の表示に基づく書込対象の制御プログラムの選択を、入力部（例えば、後述の「入力部１４０」）を介して受け付ける受付手段（例えば、後述の「受付部１１６」）と、を備え、前記プログラム書込手段は、前記受付手段が受け付けた選択に対応する制御プログラムを、前記装置の前記記憶部に書き込んでもよい。
【００１０】
（５）  （４）に記載の数値制御装置（例えば、後述の「数値制御装置１００」）において、複数の装置（例えば、後述の「モータ駆動装置２００−１〜２００−ｎ」）に対して通信可能に接続され、前記表示制御手段は、さらに前記装置の名称を、前記データ取得手段により取得した前記制御プログラム（例えば、後述の「制御プログラム」）の前記版数情報と共に、前記表示部に表示させ、前記受付手段は、前記書込対象の制御プログラムの選択と、選択した書込対象の前記制御プログラムの書込先である装置の選択とを、前記入力部を介して受け付け、前記プログラム書込手段は、前記受付手段により受け付けた前記装置の前記記憶部に、前記受付手段が受け付けた選択に対応する書込対象の制御プログラムを書き込んでもよい。
【００１１】
（６）  （５）に記載の数値制御装置（例えば、後述の「数値制御装置１００」）において、前記プログラム管理記憶部は、前記制御プログラム（例えば、後述の「制御プログラム」）を実行可能な装置の種類情報が対応付けられており、前記表示制御手段は、さらに前記装置の前記種類情報を、前記プログラム管理記憶部に予め記憶された前記制御プログラムの前記版数情報と共に、前記表示部に表示させるものであってもよい。
【００１２】
（７）  （１）から（６）までのいずれかに記載の数値制御装置（例えば、後述の「数値制御装置１００」）に対して通信可能に接続された産業機械に含まれる装置（例えば、後述の「モータ駆動装置２００」）であって、前記数値制御装置から前記制御プログラム（例えば、後述の「制御プログラム」）を受信したことに応じて、前記記憶部に、受信した前記制御プログラムの書き込みを許可する書込許可手段（例えば、後述の「書込許可部２１２」）と、前記数値制御装置からの要求に応じて、前記記憶部に記憶されている前記制御プログラムを送出するデータ送出手段（例えば、後述の「データ送出部２１１」）と、を備える。
【００１３】
（８）  （７）に記載の装置（例えば、後述の「モータ駆動装置２００」）において、前記書込許可手段は、前記記憶部に既に記憶されている制御プログラム（例えば、後述の「制御プログラム」）から、受信した前記制御プログラムへの書き換えを許可するものであってもよい。
【００１４】
（９）  （７）に記載の装置（例えば、後述の「モータ駆動装置２００」）において、前記記憶部は、複数の前記制御プログラム（例えば、後述の「制御プログラム」）を記憶可能な記憶容量を有し、前記書込許可手段は、前記記憶部に既に記憶されている制御プログラムに加えて、受信した前記制御プログラムの書き込みを許可し、前記書込許可手段により書き込みを許可した前記制御プログラムに、実行する制御プログラムを切り替える切替手段（例えば、後述の「切替部２１３」）を備えてもよい。
【発明の効果】
【００１５】
本発明によれば、前述したような工作機械及び産業用ロボット等の機械である産業機械に含まれる装置における制御プログラムを管理して、当該装置に係る制御プログラムの更新における作業負担を軽減できる数値制御装置及び産業機械に含まれる装置を提供することができる。
【図面の簡単な説明】
【００１６】
【図１】本実施形態の数値制御システムにおける基本構成図並びに数値制御装置及びモータ駆動装置の機能ブロック図である。
【図２】本実施形態における数値制御装置での表示画面例を示す図である。
【図３】本実施形態における数値制御装置の制御プログラム更新処理を示すフローチャートである。
【図４】本実施形態における数値制御装置の記憶部の例を示す図である。
【図５】本実施形態における数値制御装置での表示画面例を示す図である。
【図６】本実施形態における数値制御装置での他の表示画面例を示す図である。
【発明を実施するための形態】
【００１７】
（実施形態）
本実施形態に係る数値制御システム１０００の構成について説明する。本実施形態では、「産業機械に含まれる装置」として、工作機械及び産業用ロボット等に搭載されるモータ駆動装置を例示して説明するが、モータ駆動装置に限定されない。本実施形態は、モータ駆動装置以外の、「産業機械に含まれる装置」（すなわち、加工部又は加工部を含む工作機械及び産業用ロボット等（サービス用ロボットや鍛圧機械及び射出成形機といった様々な機械を含む）機械に含まれる装置）に適用できる。
図１は、本実施形態の数値制御システム１０００における基本構成図並びに数値制御装置１００及びモータ駆動装置２００の機能ブロック図である。
図１に示す数値制御システム１０００は、数値制御装置（ＣＮＣ：Ｃｏｍｐｕｔｅｒｉｚｅｄ  Ｎｕｍｅｒｉｃａｌ  Ｃｏｎｔｒｏｌ）１００と、ｎ台のモータ駆動装置２００−１〜２００−ｎとを備えている。ここで、ｎは１以上の整数である。したがって、以下の説明において、特に断らない限り、数値制御システム１０００は、１台のモータ駆動装置を備える場合、及び複数のモータ駆動装置を備える場合について適用される。
【００１８】
この数値制御システム１０００では、数値制御装置１００が、モータ駆動装置２００−１〜２００−ｎを動作させるための制御ソフトウェアを含む各種プログラム（以下「制御プログラム」ともいう。）を管理する。そして、数値制御システム１０００内のモータ駆動装置２００−１〜２００−ｎにおいて、それぞれ異なるバージョン（版数）の制御プログラムがインストールされている状態で、例えば、モータ駆動装置２００−１〜２００−ｎの制御プログラムを最新のバージョンに統一したいときに、数値制御システム１０００は、数値制御装置１００が、モータ駆動装置２００−１〜２００−ｎのうち最新のバージョンでない制御プログラムがインストールされているモータ駆動装置２００の制御プログラムを最新のバージョンのプログラムに更新させる。
以下の説明において、個々のモータ駆動装置２００−１〜２００−ｎを特に指定しない場合には、単にモータ駆動装置２００という。
【００１９】
数値制御装置１００と、複数のモータ駆動装置２００とは、通信可能に接続されている。なお、数値制御装置１００と、複数のモータ駆動装置２００とは、接続インタフェースを介して直接接続されても、また、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等のネットワークを介して接続されてもよい。以下、この通信可能に接続する部分を接続インタフェースともいう。
数値制御装置１００は、各モータ駆動装置２００を制御することにより、各モータ駆動装置２００に所定の動作を行わせるための装置である。
また、本実施形態の数値制御装置１００は、モータ駆動装置２００に対してモータ駆動装置２００の制御プログラムを書き込む。さらに、数値制御装置１００は、モータ駆動装置２００の制御プログラムに係るプログラム本体及び当該制御プログラムのバージョン情報を管理する。
【００２０】
まず、数値制御装置１００について説明する。
図１を参照すると、数値制御装置１００は、制御部１１０と、記憶部１２０と、表示部１３０と、入力部１４０と、通信部１５０とを備える。
制御部１１０は、ＣＰＵ（中央処理装置）であってよく、記憶部１２０に記憶された数値制御装置１００を制御する各種制御プログラムを実行することにより数値制御装置１００を統括制御する。
本実施形態では、制御部１１０は、記憶部１２０に記憶されたプログラムに基づく機能部として、データ取得部１１１と、記憶制御部１１２と、照合部１１４と、表示制御部１１５と、受付部１１６と、プログラム決定部１１７と、プログラム書込部１１８とを備える。なお、数値制御装置１００は、これらの機能部以外に、数値制御装置特有の機能部を含むが、当業者にとって公知であることから、説明は省略する。
制御部１１０の各機能部の説明の前に、まず、記憶部１２０について説明する。
【００２１】
記憶部１２０は、例えば、不揮発性メモリである。記憶部１２０は、制御部１１０により実行される各種制御プログラムの他、プログラム管理記憶部１２１と、装置管理記憶部１２２とを備える。図４に記憶部１２０に記憶される概要を示す。
図４に示すように、プログラム管理記憶部１２１は、制御プログラムのプログラム本体と、当該制御プログラムのバージョン情報とを対応付けて記憶する記憶領域である。プログラム管理記憶部１２１は、バージョン情報に対応付けられた制御プログラムを複数記憶可能である。これにより、プログラム管理記憶部１２１は、制御プログラムの世代管理を行うことができる。なお、プログラム管理記憶部１２１は、後述のデータ取得部１１１により取得される各モータ駆動装置２００に記憶されている制御プログラム、及び外部装置（例えばＰＣ）により書き込まれた制御プログラム等を記憶管理する。
【００２２】
図４に示すように、装置管理記憶部１２２は、モータ駆動装置２００を識別する装置ＩＤ（ＩＤｅｎｔｉｆｉｃａｔｉｏｎ）に対応付けて、各モータ駆動装置２００に記憶されている制御プログラムのバージョン情報を記憶する記憶領域である。装置管理記憶部１２２は、各モータ駆動装置２００ごとに対応付けるバージョン情報として、各モータ駆動装置２００で実行中の制御プログラムに対応するバージョン情報を対応付けて記憶してもよいし、各モータ駆動装置２００の記憶領域に記憶された全ての制御プログラムに対応するバージョン情報を対応付けて記憶してもよい。また、装置管理記憶部１２２は、各モータ駆動装置２００に記憶された制御プログラムの最新のバージョン情報のみを対応付けて記憶してもよい。
【００２３】
次に、制御部１１０の各機能部について説明する。
データ取得部１１１は、各モータ駆動装置２００に既に記憶されている制御プログラムを、各モータ駆動装置２００から取得する。また、データ取得部１１１は、各モータ駆動装置２００に既に記憶されている制御プログラムのバージョン情報を、各モータ駆動装置２００から取得する。
記憶制御部１１２は、データ取得部１１１が各モータ駆動装置２００から取得した制御プログラムを、取得した制御プログラムのバージョン情報に対応付けてプログラム管理記憶部１２１に記憶させる。また、記憶制御部１１２は、データ取得部１１１が各モータ駆動装置２００から取得した制御プログラムのバージョン情報を、各モータ駆動装置２００の装置ＩＤに対応付けて、装置管理記憶部１２２に記憶させる。
照合部１１４は、データ取得部１１１が各モータ駆動装置２００から取得した制御プログラムのバージョン情報と、プログラム管理記憶部１２１に記憶されている各制御プログラムのバージョン情報とを照合する。
【００２４】
表示制御部１１５は、例えば、装置管理記憶部１２２に記憶された各モータ駆動装置２００に記憶されている制御プログラムのバージョン情報と、プログラム管理記憶部１２１に記憶された制御プログラムのうち、最新のバージョン情報とを表示部１３０に表示させる。
また、表示制御部１１５は、例えば、照合部１１４による照合の結果、装置管理記憶部１２２に記憶された、あるモータ駆動装置２００に記憶されている制御プログラムのバージョン情報が、プログラム管理記憶部１２１に記憶された制御プログラムの最新のバージョン情報と一致しない場合に、装置管理記憶部１２２に記憶された、当該モータ駆動装置２００に記憶されている制御プログラムのバージョン情報と、プログラム管理記憶部１２１に記憶された制御プログラムの最新のバージョン情報とを表示部１３０に表示させてもよい。
受付部１１６は、入力部１４０から、ユーザの指示データを受け付ける。例えば、指示データは、表示部１３０に表示された表示画面を介して入力されてもよい。
【００２５】
プログラム決定部１１７は、例えば、受付部１１６が受け付けた指示データに基づいてモータ駆動装置２００を特定し、特定したモータ駆動装置２００に対して、指示データに基づく制御プログラムを書き込むことを決定する。
また、プログラム決定部１１７は、例えば、受付部１１６が受け付けた指示データに基づいて、特定したモータ駆動装置２００に最新のバージョン情報を有する制御プログラムを書き込むことを決定してもよい。
さらに、プログラム決定部１１７は、例えば、受付部１１６が受け付けたバージョン情報を有する制御プログラムを、全てのモータ駆動装置２００に書き込むことを決定してもよい。
さらにまた、プログラム決定部１１７は、例えば、受付部１１６による指示に基づかなくても、プログラム管理記憶部１２１に記憶された最新のバージョン情報を有する制御プログラムを、該当の制御プログラムを有していないモータ駆動装置２００に書き込むことを決定してもよい。
プログラム書込部１１８は、プログラム決定部１１７により決定した制御プログラムを、決定したモータ駆動装置２００に書き込む。
【００２６】
表示部１３０は、例えば、ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）等の表示装置である。
入力部１４０は、例えば、キーボードやマウス等の入力装置である。
通信部１５０は、接続インタフェースを介して、モータ駆動装置２００との間で通信を行う。
【００２７】
次に、モータ駆動装置について説明する。
モータ駆動装置２００は、数値制御装置１００が出力する、例えば位置指令に基づいて、部品等のワークに対して切削加工等の所定の加工を行うために各軸のモータを駆動させる装置である。
【００２８】
モータ駆動装置２００は、制御部２１０と、記憶部２２０と、通信部２５０とを備える。
制御部２１０は、記憶部２２０に記憶された制御プログラムを含む各種プログラムを実行することによりモータ駆動装置２００を統括制御する。
本実施形態では、制御部２１０は、記憶部２２０に記憶されたプログラムに基づく機能部として、データ送出部２１１と、書込許可部２１２と、切替部２１３とを備える。
なお、モータ駆動装置２００は、これらの機能部以外に、モータ駆動装置２００に特有の機能部を含むが、当業者にとって公知であることから、説明は省略する。制御部２１０の各機能部の説明の前に、記憶部２２０について説明する。
【００２９】
記憶部２２０は、例えば、不揮発性メモリである。記憶部２２０は、制御部２１０により実行されるプログラムを含む制御プログラムを記憶するプログラム記憶部２２１を備える。
制御プログラムは、モータ駆動装置２００を制御する制御プログラムである。
プログラム記憶部２２１は、第１領域２２２と、第２領域２２３とを備えてもよい。
【００３０】
第１領域２２２と、第２領域２２３とは、共に制御プログラムを記憶する記憶領域である。一般にモータ駆動装置２００のプログラム記憶部２２１は、記憶領域が小さい。そのため、制御プログラムを、第１領域２２２と、第２領域２２３との少なくとも一方に記憶させる。第１領域２２２と、第２領域２２３とは、同じ大きさであってよい。そして、第１領域２２２と、第２領域２２３とのいずれか一方に制御プログラムを記憶してもよいし、両方に制御プログラムを記憶してもよい。但し、両方に制御プログラムを記憶させる場合には、第１領域２２２と、第２領域２２３とは、異なるバージョン情報の制御プログラムにする。
【００３１】
なお、プログラム記憶部２２１は、２つの記憶領域（第１領域２２２及び第２領域２２３）を備えることに限定されない。２以上の複数の第ｍ領域（２≦ｍ）を備えてもよい。この場合、プログラム記憶部２２１にｍ世代分の制御プログラムを記憶することができる。その際、制御プログラムを書き込む場合、ラウンドロビン方式で、古いバージョン情報の制御プログラムを記憶した記憶領域に、上書きをするようにしてもよい。
より具体的には、現在使用しているバージョンの機械工作プログラムを記憶している現世代の記憶領域、前回使用したバージョンの機械工作プログラムを記憶している１世代前の記憶領域等を判別できるように、例えば世代情報を各記憶領域に記憶する等により管理することができる。
【００３２】
次に、制御部２１０の備える各機能部について説明する。
データ送出部２１１は、数値制御装置１００からの要求に応じて、プログラム記憶部２２１に記憶された制御プログラム本体を送出する。また、データ送出部２１１は、数値制御装置１００からの要求に応じて、プログラム記憶部２２１に記憶された制御プログラム本体及び／又は、当該プログラムのバージョン情報を送出する。プログラム記憶部２２１に複数の制御プログラムが記憶されている場合、データ送出部２１１は、複数の制御プログラムの本体及びバージョン情報を送出してもよいし、最新のバージョン情報の制御プログラム本体及び／又は、バージョン情報を送出してもよい。
書込許可部２１２は、数値制御装置１００から書き込み指示を受け付けた制御プログラムのプログラム記憶部２２１への書き込みを許可する。そうすることで、制御プログラムは、プログラム記憶部２２１に書き込まれる。
切替部２１３は、プログラム記憶部２２１に記憶された複数の制御プログラムのうち、実行する制御プログラムを切り替える。
より具体的には、切替部２１３は、第１領域２２２及び第２領域２２３の世代の切り替えを行う。すなわち、現在実行中の制御プログラムの記憶されている領域を１世代前とし、新たに制御プログラムの書き込まれた領域を現世代とするように世代情報を更新する。この切替のタイミングは、書き込みが終了したタイミングでもよいし、実行中の制御プログラムが待機状態になったときでもよい。
なお、制御プログラムの書き込みに失敗した場合、切替部２１３は、切り替えを行わずに、現在実行中の制御プログラムを現世代として維持する。
通信部２５０は、接続インタフェースを介して、数値制御装置１００との間で通信を行う。
【００３３】
以上、数値制御システム１０００の各装置の概略と、数値制御装置１００及びモータ駆動装置２００に含まれる機能ブロックと、について説明した。
なお、上記の数値制御システム１０００に含まれる各装置のそれぞれは、ハードウェア、ソフトウェア又はこれらの組み合わせにより実現することができる。ここで、ソフトウェアによって実現されるとは、コンピュータがプログラムを読み込んで実行することにより実現されることを意味する。
具体例として、数値制御装置１００は、一般的な数値制御装置に、本実施形態を実現するためのアプリケーションソフトウェアを組み込むことにより実現できる。また、モータ駆動装置２００は、一般的なモータ駆動装置に、本実施形態を実現するためのアプリケーションソフトウェアを組み込むことにより実現できる。
【００３４】
（処理例１）
次に、本実施形態に係る数値制御装置１００を用いてモータ駆動装置２００の制御プログラムを管理する場合の処理の一例を、図２から図５を参照しながら説明する。ここでは、数値制御装置１００に対して２以上のモータ駆動装置２００が、接続インタフェースを介して通信可能に接続されている。
数値制御装置１００とモータ駆動装置２００とが双方向に制御プログラムを書き換えることを利用して、例えば、いずれかのモータ駆動装置２００に最新のバージョン情報の制御プログラムが書き込まれている場合に、他のモータ駆動装置２００に記憶された制御プログラムを、当該最新のバージョン情報の制御プログラムに変更する処理について説明する。
図２及び図５は、本実施形態における数値制御装置１００での表示画面例を示す図である。
図３は、本実施形態における数値制御装置１００の制御プログラム更新処理を示すフローチャートである。
図４は、本実施形態における数値制御装置の記憶部１２０の例を示す図である。
【００３５】
まず、数値制御装置１００は、各モータ駆動装置２００との間で通信が確立されているものとする。そして、数値制御装置１００は、この制御プログラム更新処理を、例えば、数値制御装置１００の入力部１４０を介して入力される作業者の指示によって開始する。
具体的には、数値制御装置１００の作業者が、入力部１４０を操作することで、表示制御部１１５は、例えば、図２に示すような全体メニュー画面４１０を、表示部１３０に表示させる。そして、作業者が「モータ駆動装置の制御ソフトウェア更新」を選択操作することで、数値制御装置１００の制御部１１０は、本処理を開始する。
【００３６】
以下、図３を参照しながら、各ステップにおける処理内容を説明する。ここで、「Ｓｎｎ」は、ステップＳｎｎを意味する。
Ｓ１０において、数値制御装置１００のデータ取得部１１１は、各モータ駆動装置２００に対して制御プログラムのバージョン情報を要求する。
各モータ駆動装置２００は、数値制御装置１００からの要求を受けて、データ送出部２１１が、プログラム記憶部２２１の第１領域２２２及び第２領域２２３に記憶されている制御プログラムのバージョン情報を送出する。ここで、第１領域２２２及び第２領域２２３のいずれか一方にのみ制御プログラムが記憶されている場合には、データ送出部２１１は、記憶されている１つの制御プログラムのバージョン情報を送出する。他方、第１領域２２２及び第２領域２２３の両方に制御プログラムが記憶されている場合には、データ送出部２１１は、両方の制御プログラムのバージョン情報を送出してもよいし、最新のバージョン情報のみを送出してもよい。
【００３７】
Ｓ１１において、データ取得部１１１は、各モータ駆動装置２００が送出したバージョン情報を取得する。そして、記憶制御部１１２は、取得したバージョン情報を、取得元のモータ駆動装置２００の装置ＩＤに対応付けて、装置管理記憶部１２２に記憶させる。
図４に示す装置管理記憶部１２２は、Ｓ１１によって記憶されたものである。図４の例では、数値制御装置１００は、装置ＩＤがＳＩＤ０１〜ＳＩＤ０５に対応するモータ駆動装置２００−１〜２００−５の５台のモータ駆動装置２００に対して通信接続されている。そして、モータ駆動装置２００−５は、例えば、新しく導入した装置であるため、制御プログラムのバージョン情報が、他のモータ駆動装置２００よりも新しい。
【００３８】
Ｓ１２において、照合部１１４は、プログラム管理記憶部１２１に記憶されている各制御プログラムのバージョン情報と、装置管理記憶部１２２に記憶された各モータ駆動装置２００に記憶されている制御プログラムのバージョン情報とを照合する。そして、照合部１１４は、装置管理記憶部１２２に記憶された各モータ駆動装置２００に記憶されている制御プログラムのバージョン情報の制御プログラムを、プログラム管理記憶部１２１が記憶しているか否かを判断する。各モータ駆動装置２００から取得したバージョン情報の制御プログラムがプログラム管理記憶部１２１に記憶されている場合（Ｓ１２：ＹＥＳ）には、照合部１１４は、処理をＳ１５に移し、他方、プログラム管理記憶部１２１に記憶されていない場合（Ｓ１２：ＮＯ）には、照合部１１４は、処理をＳ１３に移す。
例えば、図４に示すプログラム管理記憶部１２１は、制御プログラムのバージョン情報が「１」と「２」とについての制御プログラムを記憶している。しかし、装置管理記憶部１２２に記憶されたバージョン情報が「３」の制御プログラムを記憶していない。そのため、Ｓ１２では、ＮＯと判定され、Ｓ１３に遷移する。
【００３９】
Ｓ１３において、データ取得部１１１は、装置管理記憶部１２２に記憶されているが、プログラム管理記憶部１２１に記憶されていないバージョン情報を、装置管理記憶部１２２から抽出し、抽出したバージョン情報に対応したモータ駆動装置２００に対して、抽出したバージョン情報の制御プログラム本体を要求する。
数値制御装置１００からの要求を受けたモータ駆動装置２００は、データ送出部２１１が、プログラム記憶部２２１に記憶されている該当のバージョン情報が「３」の制御プログラムを送出する。
【００４０】
図４に示す具体例で説明すると、データ取得部１１１は、装置管理記憶部１２２に記憶されているが、プログラム管理記憶部１２１に記憶されていないバージョン情報として「３」を抽出する。そして、データ取得部１１１は、バージョン情報が「３」に対応する装置ＩＤがＳＩＤ０５のモータ駆動装置２００−５に対して、バージョン情報が「３」の制御プログラム本体を要求する。
数値制御装置１００からの要求を受けたモータ駆動装置２００−５は、データ送出部２１１が、プログラム記憶部２２１に記憶されているバージョン情報が「３」の制御プログラムを送出する。
【００４１】
Ｓ１４において、データ取得部１１１は、該当のモータ駆動装置２００が送出した制御プログラムを取得する。そして、記憶制御部１１２は、取得した制御プログラムを、バージョン情報に対応付けてプログラム管理記憶部１２１に記憶させる。
こうして、図４に示すプログラム管理記憶部１２１には、バージョン情報が「３」の制御プログラムが、追加して記憶される。
【００４２】
Ｓ１５において、照合部１１４は、プログラム管理記憶部１２１に記憶されている各制御プログラムのバージョン情報と、装置管理記憶部１２２に記憶された各モータ駆動装置２００に記憶されている制御プログラムのバージョン情報とを照合する。
Ｓ１６において、照合部１１４は、装置管理記憶部１２２に記憶された各モータ駆動装置２００に記憶されている制御プログラムのバージョン情報が、プログラム管理記憶部１２１に記憶されている制御プログラムの最新のバージョン情報に一致するか否かを判断する。一致する場合（Ｓ１６：ＹＥＳ）には、数値制御装置１００は、本処理を終了する。一致する場合とは、各モータ駆動装置２００には、最新のバージョン情報の制御プログラムが記憶されている場合であり、モータ駆動装置２００に制御プログラムを書き込む必要がない。
他方、一致しない場合（Ｓ１６：ＮＯ）には、照合部１１４は、処理をＳ１７に移す。
Ｓ１７において、表示制御部１１５は、作業者が確認するための画面を生成し、表示部１３０に表示させる。
【００４３】
以上のように、例えば、図４に示すように、モータ駆動装置２００−５を除くモータ駆動装置２００−１〜２００−４の制御プログラムのバージョンが、最新のバージョン情報の「３」ではない（Ｓ１６がＮＯ）。そこで、表示制御部１１５は、図２に示す更新メニュー画面４２０を、表示部１３０に表示させる。
作業者は、更新メニュー画面４２０を参照し、制御プログラムの更新方法を決定する。ここで、作業者が更新メニュー画面４２０で「システム内の適切な最新ソフトウェアで統一」を選択することで、表示制御部１１５は、次に、選択指定画面４３０を表示させる。選択指定画面４３０は、最新の制御プログラムのバージョン情報と、それを全てのモータ駆動装置２００に対して転送する旨を問い合わせるものである。作業者が選択指定画面４３０で「はい」を選択することで、バージョン情報が「３」の制御プログラムが、バージョン情報が「３」の制御プログラムを有さないモータ駆動装置２００−１〜２００−４に転送されることになる。
【００４４】
Ｓ１８において、受付部１１６は、作業者による入力部１４０を介した選択操作を受け付ける。そして、プログラム決定部１１７は、受付部１１６が受け付けた選択操作に対応したバージョン情報の制御プログラムを、モータ駆動装置２００に書き込むものとして決定する。
Ｓ１９において、プログラム書込部１１８は、決定したバージョン情報の制御プログラムを、そのバージョン情報の制御プログラムを有さない全てのモータ駆動装置２００に対して書き込む。その後、表示制御部１１５は、例えば、図２に示す処理結果画面４４０を表示部１３０に表示させ、本処理を終了する。
【００４５】
制御プログラムの更新対象となるモータ駆動装置２００（図４の例では、モータ駆動装置２００−１〜２００−４）では、数値制御装置１００からの要求に基づいて、書込許可部２１２が、プログラム記憶部２２１への制御プログラムの書き込みを許可する。そうすることで、モータ駆動装置２００のプログラム記憶部２２１には、制御プログラムが書き込まれる。
ここで、モータ駆動装置２００は、制御プログラムを書き込むための書込プログラムを予め有しており、書込プログラムによって、制御プログラムがプログラム記憶部２２１に書き込まれる。
【００４６】
なお、制御プログラムの書き込みをする領域は、第１領域２２２及び第２領域２２３のうち、制御プログラムが書き込まれていない方の領域である。ここで、第１領域２２２と、第２領域２２３との両方に制御プログラムが書き込まれている場合には、制御部２１０は、制御プログラムの書き込みをする領域を、第１領域２２２及び第２領域２２３のうち、古いバージョン情報の制御プログラムが書き込まれている方の領域に自動的に決定してもよい。また、数値制御装置１００の表示部１３０に、図５に示すような、消去指定画面４３５を表示させ、作業者に消去方法を指定させてもよい。
【００４７】
そして、切替部２１３は、実行中の制御プログラムと、数値制御装置１００によって書き込まれた制御プログラムとを切り替える。つまり、実行中の制御プログラムから、新たにモータ駆動装置２００に書き込みがされた制御プログラムに、実行する制御プログラムを切り替える。
より具体的には、切替部２１３は、第１領域２２２及び第２領域２２３の世代の切り替えを行う。すなわち、現在実行中の制御プログラムの記憶されている領域を１世代前とし、新たに制御プログラムの書き込まれた領域を現世代とするように世代情報を更新する。この切替のタイミングは、書き込みが終了したタイミングでもよいし、実行中の制御プログラムが待機状態になったときでもよい。
なお、制御プログラムの書き込みに失敗した場合、切り替えを行わずに、現在実行中の制御プログラムを現世代として維持する。
【００４８】
（処理例２）
処理例１では、全てのモータ駆動装置２００に書き込む制御プログラムのバージョン情報を指定するケースについて説明したが、これに対して、制御プログラムのバージョン情報の他に、書き込みをするモータ駆動装置２００を個々に指定して、指定に基づく制御プログラムを、指定に基づくモータ駆動装置２００に書き込むこともできる。処理例２では、制御プログラムのバージョン情報と、モータ駆動装置２００とを個々に指定するものについての動作例を説明する。なお、説明に際しては、処理例１と同じ処理内容については、説明を省略し、処理例１と異なる処理について説明する。
【００４９】
図６は、本実施形態における数値制御装置１００での他の表示画面例を示す図である。
処理例２においては、例えば、Ｓ１７において、表示部１３０に、図２に示す更新メニュー画面４２０が表示された際に、作業者が、更新メニュー画面４２０で「対象とソフトウェアを選択して更新」を選択することで、表示制御部１１５は、図６に示す選択指定画面４３０−２を、表示部１３０に表示させる。
そこで、作業者は、表示部１３０を参照し、モータ駆動装置２００の名称と、制御プログラムのバージョン情報とを１つずつ指定することで、Ｓ１８において、プログラム決定部１１７は、受付部１１６が受け付けた選択操作に対応したバージョン情報の制御プログラムを、受付部１１６が受け付けたモータ駆動装置２００に書き込むものとして決定する。
【００５０】
以上のように、作業者が、制御プログラムのバージョン情報とモータ駆動装置２００とを指定することで、数値制御装置１００のプログラム書込部１１８は、指定に基づく制御プログラムを、指定に基づくモータ駆動装置２００に書き込ませることができる。よって、作業者が確認をしながら、モータ駆動装置２００ごとに異なるバージョン情報の制御プログラムを書き込ませることができる。
【００５１】
以上のように、数値制御システム１０００においては、数値制御装置１００と、各モータ駆動装置２００との間で制御プログラムの双方向通信を行うことができるので、モータ駆動装置２００から数値制御装置１００に対して制御プログラムを送信し、数値制御装置１００から他のモータ駆動装置２００に対して制御プログラムを送信することができる。
【００５２】
また、数値制御システム１０００においては、数値制御装置１００が、各モータ駆動装置２００に記憶された制御プログラムを、バージョン情報を含めて記憶するので、数値制御装置１００は、モータ駆動装置２００の制御プログラムについて、世代管理を行うことができる。
これは、モータ駆動装置２００では、制御プログラムを記憶させるプログラム記憶部２２１の記憶容量が小さいのに対し、数値制御装置１００の記憶容量が比較的大きいことを利用するものである。よって、数値制御装置１００が、モータ駆動装置２００の制御プログラムをバックアップする役目を担うことができる。
【００５３】
そして、数値制御システム１０００においては、数値制御システム１０００の内部（数値制御装置１００又はモータ駆動装置２００）で最新のバージョン情報の制御プログラムがあれば、外部装置等を繋ぐことなく、数値制御システム１０００の内部で最新のバージョン情報の制御プログラムに自己更新をすることができる。
【００５４】
モータ駆動装置２００は、プログラム記憶部２２１に少なくとも２つの制御プログラムを記憶する領域を有することで、数値制御装置１００による制御プログラムの書き込みに失敗した場合であっても、予め記憶された制御プログラムを実行させればよく、書込み失敗時に、早期に回復を行うことができる。
【００５５】
本発明で使用する制御プログラムを初めとするプログラムは、様々なタイプの非一時的なコンピュータ可読媒体（ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（ｔａｎｇｉｂｌｅ  ｓｔｏｒａｇｅ  ｍｅｄｉｕｍ）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えば、フレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば、光磁気ディスク）、ＣＤ−ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  ＰＲＯＭ）、フラッシュＲＯＭ、ＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００５６】
また、上述した実施形態は、本発明の好適な実施形態ではあるが、上記実施形態のみに本発明の範囲を限定するものではなく、本発明の要旨を逸脱しない範囲において種々の変更を施した形態での実施が可能である。
【００５７】
（変形例１）
上述した実施形態では、数値制御装置１００が複数台のモータ駆動装置２００に対して通信接続されたものとして説明したが、これに限定されない。数値制御装置１００が１台のモータ駆動装置２００に対して通信接続されたものであってもよい。
【００５８】
（変形例２）
上述した実施形態では、モータ駆動装置２００が新たに設置され、数値制御装置１００に接続された場合を例に説明したが、これに限定されない。既設のモータ駆動装置２００を、新しいモータ駆動装置２００にリプレースした場合等であっても同様である。
【００５９】
（変形例３）
上述した実施形態では、新たに設置されたモータ駆動装置２００に、最新のバージョン情報の制御プログラムが記憶された場合について説明したが、これに限定されない。数値制御装置１００に端子部を設けて外部装置を接続し、外部装置から最新のバージョン情報の制御プログラムを数値制御装置１００にインストールさせてもよい。
同様に、モータ駆動装置２００に端子部を設けて外部装置を接続し、外部装置から最新バージョンの制御プログラムをモータ駆動装置２００にインストールさせてもよい。
【００６０】
（変形例４）
上述した実施形態では、モータ駆動装置２００の型番（種類情報）が同じ（同種類）のものである例を説明したが、これに限定されない。モータ駆動装置２００の型番が異なる場合であってもよい。その場合には、数値制御装置１００は、制御プログラムに、適用可能なモータ駆動装置２００の型番情報を対応付けて記憶する。そして、モータ駆動装置２００の型番に応じて、最新のバージョン情報の制御プログラムを転送するようにすればよい。
【００６１】
（変形例５）
上述した実施形態の具体例では、作業者が指定することで、制御プログラム更新処理を開始するものを説明したが、これに限定されない。制御プログラム更新処理を、例えば、月に１回等の所定のタイミングで開始するものであってもよい。その場合には、例えば、システム内の適切なソフトウェアで統一するものとすれば、作業者による選択操作を行うことなく、自動で最新のバージョン情報の制御プログラムを、数値制御システム１０００の全てのモータ駆動装置２００に適用できる。
【００６２】
（変形例６）
上述した実施形態の具体例では、数値制御装置１００が、まず、各モータ駆動装置２００に記憶された制御プログラムのバージョン情報を取得し、当該バージョン情報の制御プログラムを数値制御装置１００が有していない場合に、そのバージョン情報の制御プログラム本体を当該モータ駆動装置２００に対して要求するケースを説明したが、これに限定されない。数値制御装置１００は、各モータ駆動装置２００に記憶された制御プログラムとバージョン情報とを同時に取得してもよい。
【００６３】
（変形例７）
上述した実施形態及び各変形例は、「産業機械に含まれる装置」としてのモータ駆動装置２００を例に説明したが、これに限定されない。モータ駆動装置以外の他の産業機械（すなわち、工作機械及び産業用ロボット等（サービス用ロボットや鍛圧機械及び射出成形機といった様々な機械を含む）の機械）に含まれる装置、例えば、工作機械等に搭載されるレーザ加工装置に含まれるレーザ発振器等に対しても適用することができる。その場合、モータ駆動装置２００の制御プログラムに換えて、当該装置（例えば、レーザ発振器等）の制御プログラムに適用することができる。
【符号の説明】
【００６４】
１００  数値制御装置
１１０，２１０  制御部
１１１  データ取得部
１１２  記憶制御部
１１４  照合部
１１５  表示制御部
１１６  受付部
１１７  プログラム決定部
１１８  プログラム書込部
１２０，２２０  記憶部
１２１  プログラム管理記憶部
１２２  装置管理記憶部
１３０  表示部
１４０  入力部
２００  モータ駆動装置
２１１  データ送出部
２１２  書込許可部
２１３  切替部
２２１  プログラム記憶部
２２２  第１領域
２２３  第２領域
１０００  数値制御システム
【図１】
2019049917.tif 000003
【図２】
2019049917.tif 000004
【図３】
2019049917.tif 000005
【図４】
2019049917.tif 000006
【図５】
2019049917.tif 000007
【図６】
2019049917.tif 000008