(57)【要約】【課題】安全にメモリマップを再構築する機能を有する数値制御装置を提供する。【解決手段】数値制御装置１は、数値制御装置１の電源投入時に、設定に従ってメモリマップを構築する起動部１０１と、前記メモリマップの再構築を必要とする操作を検出する変更検出部１０３と、前記操作が検出されたとき、動作中のタスクの停止処理を行うタスク制御部１０２と、前記タスクが停止した後、前記メモリマップのバックアップを取得し、前記設定にしたがってメモリマップを再構築し、前記再構築したメモリマップと前記バックアップされたメモリマップとを比較してプログラムカウンタなど再度タスクを動作させるために必要な情報を再設定するメモリマップ制御部１０５と、を含む。【選択図】図２
2020046874.tif 000002
【特許請求の範囲】
【請求項１】
数値制御装置の電源投入時に、設定に従ってメモリマップを構築する起動部と、
前記メモリマップの再構築を必要とする操作を検出する変更検出部と、
前記操作が検出されたとき、動作中のタスクの停止処理を行うタスク制御部と、
前記タスクが停止した後、前記メモリマップのバックアップを取得し、前記設定にしたがってメモリマップを再構築し、前記再構築したメモリマップと前記バックアップされたメモリマップとを比較してプログラムカウンタなど再度タスクを動作させるために必要な情報を再設定するメモリマップ制御部と、を含む
数値制御装置。
【請求項２】
前記タスク制御部は、前記メモリマップ制御部による処理が完了した後、停止した前記タスクを再度起動する
請求項１記載の数値制御装置。
【請求項３】
前記メモリマップ制御部が前記メモリマップを再構築している間、周辺機器との通信を実行する周辺機器通信部をさらに含み、前記再構築中のメモリマップのメモリ領域とは別のメモリ領域に、前記バックアップされたメモリマップを配置し、さらに前記通信を実行するためのプログラムを展開することにより、前記通信を実行する
請求項１記載の数値制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、数値制御装置に関し、特に安全にメモリマップを再構築する機能を有する数値制御装置に関する。
【背景技術】
【０００２】
組み込みソフトウェアが搭載された情報処理装置の多くは、電源投入時に、予め設定されたパラメータやオプションにしたがって、ソフトウェア構成、コード領域、ワーク領域のサイズ及びアドレスなどを決定している。これらのメモリ上の配置をメモリマップと呼ぶ。メモリマップを固定化することで信頼性や安定性を高めるよう設計されている。
【０００３】
工作機械を含む産業用機械（以下、単に機械という）を制御する数値制御装置も、上記情報処理装置と同様に、コード領域やワーク領域といったメモリマップを固定化することで信頼性や安定性の向上を図っている（例えば特許文献１）。メモリマップを固定せず、動的にメモリを取得する方法では、例えばある機能で多くのメモリを確保しており、別の機能でメモリを取得しようとしてもメモリの取得に失敗するなどし、数値制御装置の状態によっては意図しない挙動をする可能性がある。また、動作が不安定になると、同一の加工プログラムを運転しても同じ結果が得られず、再現性が低下することがある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平０８−１３７５１３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、メモリマップを固定化すると、数値制御装置の動作中にパラメータやオプションの設定を変更する度に、メモリマップを再構築するために数値制御装置を再起動することが必要となる。例えば、工作機械の立上げ時には頻繁に設定を変更する必要が生じるため、何度も数値制御装置の再起動を繰り返すことになり、オペレータに負担がかかる。さらに、数値制御装置を再起動する際には、数値制御装置または工作機械に接続されている周辺機器も同時に再起動する必要がある。この際、全ての周辺機器が起動するまでに多くの時間を要することが少なくない。
【０００６】
現在は数値制御装置の電源投入時にメモリマップを決定することが一般的であるが、上述の問題を回避するためには、数値制御装置を再起動せずにパラメータやオプションの変更を反映できれば良い。数値制御装置の運転中にメモリマップの再構築を行うためには、ＣＰＵのメモリアクセスを停止させる必要がある。ＣＰＵによるメモリアクセスを停止させずにメモリマップの再構築を行うと、再構築の直前までＣＰＵが指していたプログラムカウンタ（図４（ａ））が次の瞬間に異常値となってしまう（図４（ｂ））などの危険性があり、不具合の原因となりうるためである。
【０００７】
ＣＰＵのメモリアクセスを停止させて、数値制御装置の運転中に電源投入時と同じ処理をするには、相当な時間を必要とする。その間は、リアルタイムに応答が必要な処理や、接続されている周辺機器に対する応答なども全くできなくなってしまう（図５）。数値制御装置からの応答がなければ、例えば周辺機器は数値制御装置に何らかの異常が発生したとみなし動作を停止するなどの問題を起こす可能性がある（図６）。
【０００８】
本発明はこのような課題を解決するためのものであり、安全にメモリマップを再構築する機能を有する数値制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の一実施形態にかかる数値制御装置は、数値制御装置の電源投入時に、設定に従ってメモリマップを構築する起動部と、前記メモリマップの再構築を必要とする操作を検出する変更検出部と、前記操作が検出されたとき、動作中のタスクの停止処理を行うタスク制御部と、前記タスクが停止した後、前記メモリマップのバックアップを取得し、前記設定にしたがってメモリマップを再構築し、前記再構築したメモリマップと前記バックアップされたメモリマップとを比較してプログラムカウンタなど再度タスクを動作させるために必要な情報を再設定するメモリマップ制御部と、を含む。
本発明の一実施形態にかかる数値制御装置は、前記タスク制御部は、前記メモリマップ制御部による処理が完了した後、停止した前記タスクを再度起動する。
本発明の一実施形態にかかる数値制御装置は、前記メモリマップ制御部が前記メモリマップを再構築している間、周辺機器との通信を実行する周辺機器通信部をさらに含み、前記再構築中のメモリマップのメモリ領域とは別のメモリ領域に、前記バックアップされたメモリマップを配置し、さらに前記通信を実行するためのプログラムを展開することにより、前記通信を実行する。
【発明の効果】
【００１０】
本発明により、安全にメモリマップを再構築する機能を有する数値制御装置を提供することができる。
【図面の簡単な説明】
【００１１】
【図１】数値制御装置１のハードウェア構成例を示す図である。
【図２】数値制御装置１の機能構成例を示す図である。
【図３】数値制御装置１の動作例を示すフローチャートである。
【図４】従来の課題を示す図である。
【図５】従来の課題を示す図である。
【図６】従来の課題を示す図である。
【発明を実施するための形態】
【００１２】
図１は、実施の形態１にかかる数値制御装置１の要部を示す概略的なハードウェア構成図である。数値制御装置１は、工作機械を含む産業用機械の制御を行う装置である。数値制御装置１は、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、不揮発性メモリ１４、バス１０、軸制御回路１６、サーボアンプ１７、インタフェース１８、インタフェース１９を有する。数値制御装置１には、サーボモータ５０、入出力装置６０、１以上の周辺機器７０が接続される。
【００１３】
ＣＰＵ１１は、数値制御装置１を全体的に制御するプロセッサである。ＣＰＵ１１は、ＲＯＭ１２に格納されたシステム・プログラムをバス１０を介して読み出し、システム・プログラムに従って数値制御装置１全体を制御する。
【００１４】
ＲＯＭ１２は、例えば機械の各種制御を実行するためのシステム・プログラムを予め格納している。
【００１５】
ＲＡＭ１３は、一時的な計算データや表示データ、入出力装置６０を介してオペレータが入力したデータやプログラム等を一時的に格納する。
【００１６】
不揮発性メモリ１４は、例えば図示しないバッテリでバックアップされており、数値制御装置１の電源が遮断されても記憶状態を保持する。不揮発性メモリ１４は、入出力装置６０から入力されるデータやプログラム等を格納する。不揮発性メモリ１４に記憶されたプログラムやデータは、実行時及び利用時にはＲＡＭ１３に展開されても良い。
【００１７】
軸制御回路１６は、機械の動作軸を制御する。軸制御回路１６は、ＣＰＵ１１が出力する軸の移動指令量を受けて、動作軸の移動指令をサーボアンプ１７に出力する。
【００１８】
サーボアンプ１７は、軸制御回路１６が出力する軸の移動指令を受けて、サーボモータ５０を駆動する。
【００１９】
サーボモータ５０は、サーボアンプ１７により駆動されて機械の動作軸を動かす。サーボモータ５０は、典型的には位置・速度検出器を内蔵する。位置・速度検出器は位置・速度フィードバック信号を出力し、この信号が軸制御回路１６にフィードバックされることで、位置・速度のフィードバック制御が行われる。
【００２０】
なお、図１では軸制御回路１６、サーボアンプ１７、サーボモータ５０は１つずつしか示されていないが、実際には制御対象となる機械に備えられた軸の数だけ用意される。
【００２１】
入出力装置６０は、ディスプレイやハードウェアキー等を備えたデータ入出力装置であり、典型的にはＭＤＩ又は操作盤である。入出力装置６０は、インタフェース１８を介してＣＰＵ１１から受けた情報をディスプレイに表示する。入出力装置６０は、ハードウェアキー等から入力された指令やデータ等をインタフェース１８を介してＣＰＵ１１に渡す。
【００２２】
周辺機器７０は、数値制御装置または工作機械に接続される１以上の周辺機器であり、例えば各種センサ、タイマ、ロボット等が含まれる。周辺機器７０は、インタフェース１９を介してＣＰＵ１１からの情報を受信する。周辺機器７０が出力する情報は、インタフェース１９を介してＣＰＵ１１に渡される。
【００２３】
図２は、数値制御装置１の特徴的な機能構成を示すブロック図である。典型的な数値制御装置１は、起動部１０１、タスク制御部１０２、変更検出部１０３、周辺機器通信部１０４、メモリマップ制御部１０５を有する。これらの組み合わせは、本願発明独自の技術により可能になる構成要素である。
【００２４】
図３のフローチャートを参照しつつ、数値制御装置１の各処理部の動作について順を追って説明する。なお図３のフローチャートは、一点鎖線で囲まれた左側の矩形内の処理と、同じく一点鎖線で囲まれた右側の矩形内の処理と、に大きく分類できる。このうち特に右側の矩形内の処理は、本願発明独自の新規な処理を含んでいる。
【００２５】
起動部１０１は、数値制御装置１の電源投入時に必要な処理を行う（Ｓ１０１）。例えば、不揮発性メモリ１４に予め格納されたパラメータやオプションを読み込み、それらの設定に応じてソフトウェアをロードし、コード領域やワーク領域のメモリマップを作成する。さらに、タスクの初期化、ＣＰＵ１１と周辺機器７０との通信の初期化を行う。その後、起動部１０１は、タスク制御部１０２に電源投入時の処理が終わったことを通知する。
【００２６】
タスク制御部１０２は、電源投入時の処理が終わった後、タスクの周期や優先度に応じてタスクを起動（Ｓ１０２）させたり、タスクを停止させる処理を行う。タスクを停止する場合は、動作中のタスクがクリティカルな処理を行っていないことを確認してから停止させる。クリティカルな処理を行っているタスクがあれば、当該タスクの処理が終わるまで待ってから停止させる（Ｓ１０４乃至Ｓ１０５）。オペレータが、再起動が必要な操作を行った場合（後述の変更検出部１０３により検知及び通知される）、タスク制御部１０２は、全てのタスクが停止したことをメモリマップ制御部１０５に通知し、メモリマップの再構築を依頼する。
【００２７】
変更検出部１０３は、再起動が必要なオペレータによる操作を検出する（Ｓ１０３）。再起動が必要な操作とは、メモリマップの再構築が必要となる操作をいい、例えばソフトウェアのインストールなどが含まれる。再起動が必要な操作を検出した場合、変更検出部１０３は、タスク制御部１０２に動作中の全てのタスクを停止させるよう依頼する。動作中の全てのタスクが停止すると、ＣＰＵ１１による再構築対象のメモリ領域へのアクセスは停止された状態となり、安全にメモリマップの再構築が可能となる。
【００２８】
周辺機器通信部１０４は、メモリマップ制御部１０５がメモリマップを再構築している間、すなわちＣＰＵ１１が再構築中のメモリ領域へのメモリアクセスを停止している間、周辺機器７０と数値制御装置１との間で通信（ハンドシェイク）を代行する（Ｓ１０６）。例えば、数値制御装置１の状態を監視しているウォッチドッグタイマを無効にしたり、サーボモータから数値制御装置１に要求やフィードバックが送信されたときにレスポンスを返す処理などがある。これにより、周辺機器７０は、数値制御装置１が動作を停止しているなどと誤認することなく、数値制御装置１がメモリマップの再構築している間も稼働し続けることができる。
【００２９】
周辺機器通信部１０４は、再構築中のメモリ領域以外のメモリ領域を使用してこの処理を実行できる。すなわち、周辺機器通信部１０４は、周辺機器７０とのハンドシェイク処理を行うためのプログラムやワーク領域を含む一時的なメモリマップを、再構築対象のメモリマップとは別の領域に確保する。メモリマップ制御部１０５がメモリマップの再構築を行っている間、周辺機器通信部１０４は上記一時的なメモリマップを使用して周辺機器７０とのハンドシェイク処理を行う。
【００３０】
メモリマップ制御部１０５は、メモリマップの制御を行う。メモリマップ制御部１０５は、タスク制御部１０２からメモリマップの再構築を依頼されると、メモリマップの再構築を開始する前に、メモリマップのバックアップを取得する（Ｓ１０７）。その後、メモリマップ制御部１０５は、再びパラメータやオプションを読み込み、公知の事前チェック処理（再構築後のメモリマップが使用可能なメモリサイズを超えないかなど）を実行した後、パラメータやオプションの設定に応じてソフトウェアをロードし、コード領域やワーク領域のメモリマップを再構築する（Ｓ１０８）。
【００３１】
メモリマップ制御部１０５は、メモリマップの再構築終了後、バックアップしたメモリマップと再構築したメモリマップとを比較して、タスクやＣＰＵ１１に適切なプログラムカウンタなど再度タスクを動作させるために必要な情報を再設定する（Ｓ１０９）。これにより、安全にタスクを動作させることができる。その後、メモリマップ制御部１０５は、タスク制御部１０２部にタスクの起動を依頼する（Ｓ１０２）。
【００３２】
本実施の形態によれば、従来は数値制御装置１の再起動が必要であったような操作、すなわちメモリマップの再構築を要する操作が行われた場合であっても、再起動を要せずに、かつ周辺機器７０との接続を維持したまま、メモリマップを再構築することができる。これにより、数値制御装置１の再起動に要していた時間（周辺機器の再起動に要する時間などを含む）を削減できるため、オペレータの負担を軽減することができる。また、再起動に伴う消費電力等を削減できる。
【００３３】
さらに、本実施の形態によれば、ソフトウェアや機能の着脱（ダイナミックダウンロードなど）が容易になる。また、不具合対応やデバッグなどを行う際や、ソフトウェアをアップデートする際に数値制御装置１を再起動する必要がないので、従来より柔軟な利用形態を実現できる。
【符号の説明】
【００３４】
１  数値制御装置
１１  ＣＰＵ
１２  ＲＯＭ
１３  ＲＡＭ
１４  不揮発性メモリ
１８  インタフェース
１９  インタフェース
１０  バス
１６  軸制御回路
１７  サーボアンプ
５０  サーボモータ
６０  入出力装置
７０  周辺機器
１０１  起動部
１０２  タスク制御部
１０３  変更検出部
１０４  周辺機器通信部
１０５  メモリマップ制御部
【図１】
2020046874.tif 000003
【図２】
2020046874.tif 000004
【図３】
2020046874.tif 000005
【図４】
2020046874.tif 000006
【図５】
2020046874.tif 000007
【図６】
2020046874.tif 000008