(57)【特許請求の範囲】
【請求項１】
加工プログラムのコードに対応する複数のモジュールで構成された制御プログラムでＮＣ工作機械を制御している制御器に、その制御器に搭載されている制御プログラムが実行したモジュールを識別するための履歴名を記憶させ、配信サーバ(1)には当該制御プログラムの複数バージョンについての更新プログラムをこれらの更新プログラムで更新されたモジュールを識別するための照合名と共に記憶させ、上記制御器に搭載されている制御プログラムのバージョン情報と記憶した履歴名とを通信ネットワークを介して上記配信サーバに送信させ、この送信を受けた配信サーバに、前記照合名に前記履歴名が含まれている更新プログラム中の最新の更新プログラムを抽出させると共に、前記受信した制御プログラムの次のバージョンへの更新プログラムから前記抽出した更新プログラムまでの更新プログラムを前記送信した制御器へ送信させる、ＮＣ工作機械用制御プログラムの更新方法。
【請求項２】
加工プログラムのコードに対応する複数のモジュールで構成された制御プログラムの更新装置であって、当該制御プログラムの複数バージョンについての更新プログラムをこれらの更新プログラムで更新されたモジュールを識別するための照合名と共に記憶している更新情報記憶手段と、通信ネットワークで接続された制御器から当該制御器に搭載されている制御プログラムのバージョン情報及び当該制御プログラムが実行したモジュールを識別するための履歴名を受信する受信手段と、前記記憶している更新プログラムから受信した制御プログラムのバージョンより新しいバージョンの制御プログラムへの更新プログラムであってその更新プログラムの前記照合名に受信した履歴名が含まれている最新の更新プログラムを抽出する更新プログラム選択手段と、前記受信した制御プログラムの次のバージョンへの更新プログラムから前記抽出された更新プログラムまでの更新プログラムを前記制御器に送信し、当該制御器にその実行を促すプログラム更新手段とを備えている、ＮＣ工作機械用制御プログラムの更新装置。
【請求項３】
ＮＣ工作機械を制御する制御器とこの制御器に通信ネットワークで接続された請求項２記載の更新装置とを備え、上記制御器は、当該ＮＣ工作機械及びこれに付設された機器の動作に対応する複数のモジュールで構成された制御プログラムと、当該制御プログラムが実行したモジュールを識別するための履歴名を記憶する履歴名記録手段と、前記制御プログラムのバージョン情報と記憶した履歴名とを設定された日時に前記更新装置に送信する送信手段とを備えている、ＮＣ工作機械用制御プログラムの更新装置。
【請求項４】
前記送信手段が、前記制御プログラムが実行しようとする加工プログラムから前記履歴名記録手段に記録されていない履歴名に対応するモジュールが検出されたときに当該記録されていない履歴名を前記記憶した履歴名と共に即時送信する、請求項３記載のＮＣ工作機械用制御プログラムの更新装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ＮＣ工作機械及びこれに付設された機器の動作を制御する制御プログラムの更新方法及び装置に関するものである。
【背景技術】
【０００２】
ＮＣ工作機械の制御器（ＮＣ装置ないしＣＮＣ装置）には、機械各部の動作を制御する制御プログラムが搭載されており、当該制御プログラムは、加工プログラム（ＮＣプログラム）に記述されたコードを順次読み込んで当該コードに対応する動作を機械に実行させることにより、ワークの加工を行う。
【０００３】
制御プログラムは、通常、加工プログラムのコードに対応する多数のモジュール（各コードに割当てられた動作ないし機能を実現するように纏められたプログラム又はプログラム群）で構成されており、例えば新たな種類の加工動作、新たな種類のワークハンドリング動作が追加されたときは、制御プログラムにその新たな動作に対応するモジュールが追加される。また、加工時間の短縮などを目的として既存の加工動作やハンドリング動作を修正するときや新たに発見されたプログラムバグを修正するときは、その動作に対応するモジュールを修正することにより行われる。
【０００４】
このような制御プログラムの追加や修正により、制御プログラムには幾種類かのバージョンが生ずることになる。客先工場で稼働している既存の工作機械は、その販売時期や客先の注文に応じて、異なったバージョンの制御プログラムが搭載されている。プログラムバグが修正されたときなどは、新しい制御プログラムを配布して更新インストールしてもらうか、更新プログラムをインストールして実行してもらうことにより、制御プログラムを新しいものに更新するのが一般的である。
【０００５】
インターネットを始めとするコンピュータ通信ネットワークが発達した今日では、バグの修正やセキュリティの改善を目的としたプログラムの更新は、プログラム製造元のサーバからネットワーク経由で配信され、旧バージョンの制御プログラムがインストールされたコンピュータに自動インストール（自動バージョンアップ）されるのが普通であり、制御器にネットワーク接続機能を持たせ、当該ネットワークを介したプログラム更新手順を登録しておくことにより、工作機械の制御プログラムもこのような方法でバージョンアップすることができる。
【特許文献１】特開２００２−３７３０７９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ＮＣ装置やＣＮＣ装置で制御される近時の工作機械は、複雑で多様な形状のワークを同一機台上で連続加工できるように、非常に多くの機能（加工動作やハンドリング動作、緊急停止や自動段取替え動作など）を備えており、客先からの要求に応じて機能の修正や新たな機能の追加が行われ、そのたびに制御プログラムのバージョンアップが行われることになる。
【０００７】
このような機能の追加や修正は、制御プログラムのモジュールの追加や修正により行われるので、ある機能に対応するモジュールの追加や修正があっても、他のモジュールで実現されている機能に影響が出ないのが本来であるが、プログラム言語に適切なコマンドがない、モジュールの独立性を完全に確保しようとすると、モジュールが膨大になるあるいは動作速度が低下する、複数のモジュール間で共通する制御の統一的な処理ができない、などに起因して、モジュールの完全な独立性を実現できないことも往々にして起こる。
【０００８】
そのような場合に、機能の改良や追加のための制御プログラムのバージョンアップが、他の機能の実行を不安定にする等の問題を生じさせることがある。プログラマがこの影響を認識できれば、当然影響を受けるモジュールに対してもプログラムの修正を行うこととなるが、プログラマがその影響を見落とすと、ある機能の改良や追加のためになされたバージョンアップによって他の機能に旧バージョンでは存在しなかった不具合（バグ）が発生することになる。
【０００９】
工作機械には、一般的に広く利用される機能と、特殊なワークの加工を行うときにしか用いられないような機能とがあり、これらを制御するモジュールがすべて制御プログラムに含まれている。一方、工作機械を使用するユーザは、そのユーザ又は工場ごとにワークの形状や加工方法に特徴があり、ある機能がある工場の工作機械ではよく使われるが、他の工場の工作機械では全く使われないということが起こる。
【００１０】
ある機能の追加や修正を行うためのバージョンアップは、そのような機能を全く使わないユーザの工作機械の制御プログラムにとっては不要なバージョンアップであり、もしそのバージョンアップによって当該ユーザが常に使用する機能に予期しないバグが発生していたとしたら、当該バージョンアップは機能低下やトラブル発生の原因となりかねない。
【００１１】
従って、制御プログラムの最新バージョンへのバージョンアップは、旧バージョンの制御プログラムを搭載しているすべての工作機械に対して有益であるとは言えない。この問題は、ユーザに配布するバージョンアップ用の更新プログラムに追加ないし修正された機能の一覧を表示させ、その表示画面で更新を希望する機能をユーザや工作機械のオペレータに選択させるようにすることで回避できると考えられる。
【００１２】
しかし、現実には使用している工作機械がどの機能を使って動作しているかまでユーザやオペレータは認識していないので、更新すべき機能を適切に選択することは殆ど不可能であり、すべてを更新してしまう（最新バージョンにしてしまう）のが普通である。
【００１３】
この発明は、上記のような問題、すなわち不要な、あるいは場合によっては不利益となるバージョンアップを避け、稼動している各工作機械ごとに最適なバージョンの制御プログラムを通信ネットワークを使って配信することが可能な技術手段を提供することを課題としている。
【課題を解決するための手段】
【００１４】
この出願の請求項１の発明は、ＮＣ工作機械を制御している制御器にその制御器に搭載されている制御プログラムが実行した動作ないし当該動作を実現するモジュールの識別名（以下及び特許請求の範囲において「履歴名」と言う。）を記憶させ、配信サーバ１には当該制御プログラムの複数バージョンについての更新プログラムを更新されたモジュールの識別名（以下及び特許請求の範囲において「照合名」と言う。）と共に記憶させ、上記制御器に搭載されている制御プログラムのバージョン情報と記憶した履歴名とを通信ネットワークを介して上記配信サーバに送信させ、この送信を受けた配信サーバに前記照合名のリストに前記履歴名が含まれる最新の更新プログラムで更新されるバージョンの制御プログラムへの更新プログラムを前記送信した制御器に送信させる、ＮＣ工作機械用制御プログラムの更新方法を提供することにより、上記課題を解決したものである。
【００１５】
上記方法の実施に際しては、個々のＮＣ工作機械５を制御する制御器４に、当該工作機械でどのような機能が実行されたかを記録する履歴テーブル１４を持たせる。この履歴テーブル１４には、制御プログラムが実行した機能に対応する動作名やモジュール名などを履歴名として記録する。各機能ごとにそれが実行された回数をカウントするようにすればよいが、実行されたことがあるかどうかを０と１とで記録するものであってもよい。履歴名は、実行された後に記録してもよいが、新しいワークの加工のための加工プログラムがロードされたときに、その加工プログラムで実行されるコードを先読みして記録するようにすれば更によい。
【００１６】
制御プログラムのバージョンアップのための更新プログラムを配信する配信サーバ１は、バージョン毎に、そのバージョンで追加ないし修正されたモジュールを含む更新プログラムとそれらの追加ないし修正モジュールの動作名ないしモジュール名を照合名として記憶している。
【００１７】
配信サーバ１は、インターネットなどの通信ネットワーク２に接続され、制御器４は、それ自体が又はＬＡＮで接続された集中管理装置３を介して、前記通信ネットワーク２接続されている。
【００１８】
個々の工作機械５を制御する制御器４又はこれに接続されている集中管理装置３は、定められた日時ないし期間毎に、あるいは新たにロードされた加工プログラムに履歴テーブルに記録されていない新規動作が検出されたりその動作に対応する履歴名が履歴テーブルに書き込まれたときに、制御プログラムのバージョン情報と記録した履歴名とを通信ネットワーク２を介して配信サーバ１に送信する。
【００１９】
これを受けた配信サーバ１は、受信したバージョン情報より新しいバージョンの制御プログラムへの更新プログラムについて、受信した履歴名が追加ないし修正されたモジュールを示す照合名に含まれている更新プログラムを検索し、受信した制御プログラムの次のバージョンへの更新プログラムから検索した更新プログラムの中で最も新しいバージョンの制御プログラムに更新する更新プログラムまでの更新プログラムを、送信してきた制御器又は集中管理装置に送信する。更新プログラムを受信した制御器４は、ディスプレイ６に更新を実行するかどうかの問い合わせ画面を表示する。実行キーが押されると、制御器４によって更新プログラムが実行され、当該制御器の制御プログラムを配信サーバ１によって最適と判断されたバージョンにバージョンアップし、そのバージョン情報を更新する。
【００２０】
配信サーバ１は、制御器４から受信したバージョン情報が最新バージョンのものであったり、あるいは客先によって制御プログラムの一部が書き換えられていると判断した場合には、制御プログラムの更新を行わない。工作機械の制御プログラムには、シーケンス制御によるオプション動作を登録する部分があり、この部分に客先で独自の機能が登録されていると、バージョンアップしたときに、新たな障害が生ずるおそれがあるからである。
【００２１】
本願の請求項２ないし４の発明は、上記制御プログラムの更新方法を実施するのに用いる装置に関するもので、請求項２の発明に係るＮＣ工作機械用制御プログラムの更新装置は、当該制御プログラムの複数バージョンについての更新プログラムをこれらの更新プログラムで更新されたモジュールを識別するための照合名と共に記憶している更新情報記憶手段と、通信ネットワークで接続された制御器から当該制御器に搭載されている制御プログラムのバージョン情報及び当該制御プログラムが実行したモジュールを識別するための履歴名を受信する受信手段と、前記記憶している更新プログラムから受信した制御プログラムのバージョンより新しいバージョンの制御プログラムへの更新プログラムであってその更新プログラムの前記照合名に受信した履歴名が含まれている最新の更新プログラムを抽出する更新プログラム選択手段と、前記受信した制御プログラムの次のバージョンへの更新プログラムから前記抽出された更新プログラムまでの更新プログラムを前記制御器に送信し、当該制御器にその実行を促すプログラム更新手段とを備えているというものである。
【００２２】
また請求項３の発明に係るＮＣ工作機械用制御プログラムの更新装置は、ＮＣ工作機械を制御する制御器とこの制御器に通信ネットワークで接続された請求項２記載の更新装置とを備え、上記制御器は、当該ＮＣ工作機械及びこれに付設された機器の動作に対応する複数のモジュールで構成された制御プログラムと、当該制御プログラムが実行したモジュールを識別するための履歴名を記憶する履歴名記録手段と、前記制御プログラムのバージョン情報と記憶した履歴名とを設定された日時に前記更新装置に送信する送信手段とを備えているというものである。
【００２３】
本願の請求項４の発明は、上記請求項３記載のＮＣ工作機械用制御プログラムの更新装置において、前記送信手段が、前記制御プログラムが実行しようとする加工プログラムから前記履歴名記録手段に記録されていない履歴名に対応するモジュールが検出されたときに当該記録されていない履歴名を前記記憶した履歴名と共に即時送信することを特徴とするものである。
【発明の効果】
【００２４】
この発明によれば、個々の工作機械の制御器ごとに当該工作機械の稼動状態から判断した最も適切なバージョンの制御プログラムを配信できるという効果がある。そして、ユーザやオペレータは、制御プログラムのバージョンアップ時に、その工作機械にとって必要なバージョンアップかどうかを考慮することなく、必要とする機能が最も的確に動作するバージョンの制御プログラムを各工作機械の制御器ごとに搭載することができるという効果がある。
【発明を実施するための最良の形態】
【００２５】
以下、図面を参照して、この発明の実施形態を説明する。図１は装置構成を示すブロック図、図２は配信サーバにおける最適バージョンの制御プログラムへの更新プログラム抽出手順を示すフローチャート、図３ないし図５は制御器での制御プログラムの更新手順を示すフローチャートである。
【００２６】
図１において、１はプログラム配信サーバ、２はインターネット、３は集中管理装置、４・・・は集中管理装置３にＬＡＮ接続された制御器、５・・・は各制御器４・・・で制御されるＮＣ工作機械である。配信サーバ１及び集中管理装置３は、インターネット２に接続されており、必要な各種の入出力装置や補助記憶装置など（図示せず）が接続されている。制御器４は、タッチパネル型のディスプレイ装置６を持っている。
【００２７】
配信サーバ１は、集中管理装置３からのバージョン情報及びモジュール名の受信手段８を持っている。配信サーバ１は、制御プログラムの各バージョン９・・・毎に、当該バージョンで追加及び修正されたモジュールを含む更新プログラムと、これらの更新プログラムで更新されたモジュール名を記載した照合名リスト１０・・・とを記憶している。配信サーバ１は、受信したバージョン情報と記憶している複数のバージョン情報とを順に比較し、受信したモジュール名が受信バージョンより新しいバージョンの照合名リスト１０・・・に含まれているかどうかを調べ、含まれているときに当該バージョンへの更新プログラムを抽出する更新プログラム抽出手段１１を持っている。
【００２８】
配信サーバ１の受信手段８は、集中管理装置３が管理する各制御器４のバージョン情報と、各制御器４が実行した動作ないし当該動作を実現するモジュール名からなる履歴名リストを受信する。配信サーバ１はこれらの情報を受信したら、更新プログラム抽出手段１１によって、各制御器４に最も適している更新プログラムを抽出する。
【００２９】
図２は更新プログラム抽出手段の処理手順を示すフローチャートである。更新プログラム抽出手段１１は、受信手段８が受信したバージョン情報と履歴名を読込んだ後、配信サーバ１に記憶されている全てのバージョンから最も新しいバージョンを比較バージョンに設定する。
【００３０】
最新バージョンを比較バージョンに設定した後、受信したバージョン情報と比較バージョンを比較する。制御器４の制御プログラムのバージョンが最新バージョンであった場合、バージョンアップが不要の旨のデータを送り、処理を終了する。
【００３１】
比較バージョンが受信バージョンより新しいものであった場合、その比較バージョンの照合名リスト１０を参照して、履歴名が照合名リスト１０にあるかどうかを調べる。照合名リスト１０に履歴名が含まれなかった場合、当該比較バージョンへのバージョンアップ内容は制御器４の使用履歴にない機能についてのバージョンアップであるので、比較バージョンを一つ古いバージョンに設定し、比較を繰り返す。この繰返しの中で照合名リスト１０に履歴名が含まれる最初の比較バージョンが、更新すべきバージョンとなる。
【００３２】
これにより、配信サーバ１に記憶されたバージョンの中で各制御器４に最も適したバージョンが抽出される。上記繰返しの中で照合名リスト１０に履歴名が含まれる比較バージョンが見つからないまま、比較バージョンと受信バージョンが一致するまで繰返しが進んだときは、更新照合した制御器の制御プログラムは更新する必要が無いこととなるので、バージョンアップが不要の旨のデータを送り、処理を終了する。
【００３３】
更新すべきバージョンが見つかった場合、配信サーバ１は、受信バージョンの次のバージョンへの更新プログラムから更新すべきバージョンへの更新プログラムまでの更新プログラムを送信手段１２に渡す。なお、更新プログラムに全ての制御プログラムが含まれており、制御プログラム全体を新しいものに置き換えるような更新方法の場合は、最も適したバージョンへの更新プログラムのみを送信すればよい。
【００３４】
配信サーバ１の送信手段１２は、更新プログラム抽出手段１１からデータが渡されたとき、当該データを、インターネット２を介して集中管理装置３に送信する。集中管理装置３は、更新問い合せをした制御器４に受信した更新プログラムまたはバージョンアップ不要の旨のデータを送信する。
【００３６】
制御器４は、履歴名を記録するための履歴テーブル１４を備えており、更に更新をどの程度の日数で行うかを設定する設定値と前回の更新日付とを記憶している。制御器４が起動したときの初期化中に、図３に示すように、現在日時と前回の更新日付を比較し、予め設定されている日数を経過していれば更新手続１５が呼び出される。
【００３７】
また、図４に示すように、制御器４に新しい加工プログラムがロードされたときに、当該加工プログラムに使用されている機能を先読みし、履歴テーブル１４に記録のないモジュールの実行が検出されたときは、履歴テーブルに当該モジュール名を追加し、更新手続１５を呼び出す。更新手続が終了したらロードされた加工プログラムを実行し、加工を開始する。
【００３８】
更新手続１５は、図５に示すように、呼び出されると履歴名テーブル１４に記録された履歴名と制御器４の制御プログラムのバージョン情報を集中管理装置３を通じて配信サーバ１に送信する。配信サーバ１は、更新プログラム抽出手段１１によって、バージョンアップ不要の旨のデータか最適なバージョンへの更新プログラムかのいずれかを抽出し、これをデータ送信手段１２が集中管理装置３を介して制御器４に送る。
【００３９】
更新手続は、バージョンアップ不要の旨のデータが送られたときは、前回の更新日時を現在日時に書き換えて処理を終了する。最適な更新プログラムが送られてきたときは、制御プログラムの更新があることを制御器４のディスプレイ装置に表示し、更新を行うかどうかをオペレータに問い合わせる。オペレータが更新を指示したときは制御器４は配信サーバ１から送られた更新プログラムを実行してプログラムの更新を行い、オペレータが更新しない事を指示したときは更新プログラムは破棄される。いずれの選択をした場合においても、最適な更新プログラムが無い旨のデータが送られたときと同様に、前回の更新日時を現在日時に書き換えて処理を終了する。
【００４０】
なお以上の例では、制御プログラムの更新手順１５が制御器４に設けられて当該手順を実行するようにしているが、履歴名テーブル１４や更新手順１５を集中管理装置に設けて集中管理装置３が各制御器の制御プログラムを更新するようにしても良い。
【図面の簡単な説明】
【００４１】
【図１】装置構成の一例を示すブロック図
【図２】更新情報の抽出手順を示すフローチャート
【図３】起動時の更新手順の呼び出し動作を示すフローチャート
【図４】加工プログラムロード時の更新手順の呼び出し動作を示すフローチャート
【図５】更新手続を示すフローチャート
【符号の説明】
【００４２】
１  配信サーバ
３  集中管理装置
４  制御器
５  ＮＣ工作機械
10  照合名リスト
11  更新プログラム抽出手段
14  履歴テーブル
【図１】
0004799114.tif 000002
【図２】
0004799114.tif 000003
【図３】
0004799114.tif 000004
【図４】
0004799114.tif 000005
【図５】
0004799114.tif 000006