(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6193923
(24)【登録日】2017年8月18日
(45)【発行日】2017年9月6日
(54)【発明の名称】高負荷時でも画面更新が可能な数値制御装置
(51)【国際特許分類】
G05B 19/18 20060101AFI20170828BHJP
【FI】
G05B19/18 W
【請求項の数】3
【全頁数】10
(21)【出願番号】特願2015-142613(P2015-142613)
(22)【出願日】2015年7月17日
(65)【公開番号】特開2017-27178(P2017-27178A)
(43)【公開日】2017年2月2日
【審査請求日】2016年10月20日
(73)【特許権者】
【識別番号】390008235
【氏名又は名称】ファナック株式会社
(74)【代理人】
【識別番号】110001151
【氏名又は名称】あいわ特許業務法人
(72)【発明者】
【氏名】加藤 朋和
(72)【発明者】
【氏名】佐藤 和生
(72)【発明者】
【氏名】前田 英朗
【審査官】
貞光 大樹
(56)【参考文献】
【文献】
特開2009−217713(JP,A)
【文献】
特開平7−191718(JP,A)
【文献】
特開2001−14013(JP,A)
【文献】
特開2006−24185(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 19/18 − 19/416
G05B 19/42 − 19/46
(57)【特許請求の範囲】
【請求項1】
HMIに係る処理で用いられるデータを取得するためのAPIを備えた数値制御装置において、
前記APIが提供するAPI関数毎に、該API関数による処理が予め設定された所定時間内に完了することを保証する前記数値制御装置のCPU負荷の上限値が定義された負荷定義テーブルと、
前記APIが提供するAPI関数の呼出しを受け付けるAPIインタフェース部と、
前記API関数の呼出しに基づいて前記API関数の処理を実行するAPI制御部と、
前記数値制御装置のCPUの負荷を監視する負荷監視手段と、
前記API関数の呼出しに係る情報と、前記負荷監視手段により監視される現在のCPU負荷値とに基づいて前記負荷定義テーブルを参照し、前記API関数の実行が前記所定時間内に完了するかを予測する処理時間予測手段と、
を備え、
前記API制御部は、前記処理時間予測手段が前記API関数の実行が前記所定時間内に完了しないと予測した場合、前記API関数の処理を実行せずに終了する、
ことを特徴とする数値制御装置。
【請求項2】
前記APIを介して取得したデータに基づいて画面の表示を制御するHMI制御部を更に備え、
前記API制御部は、前記処理時間予測手段が前記API関数の実行が前記所定時間内に完了しないと予測した場合、高負荷であることを示すエラーコードを前記APIインタフェース部を介して呼び出し元へと返し、
前記HMI制御部は、画面に表示されている表示項目のデータを取得するために前記APIが提供するAPI関数を呼び出した際に高負荷であることを示すエラーコードが返された場合、表示画面上の前記表示項目の前記データを更新せずに表示属性を変更する、
ことを特徴とする請求項1に記載された数値制御装置。
【請求項3】
前記HMI制御部は、画面に表示されている表示項目のデータを取得するために前記APIが提供するAPI関数を呼び出した際に高負荷であることを示すエラーコードが返された場合、前記数値制御装置のCPUが高負荷で表示が更新できない状態であることを示す警告を出力する、
ことを特徴とする請求項2に記載された数値制御装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、数値制御装置に関し、特に高負荷時でも画面更新が可能な数値制御装置に関する。
【背景技術】
【0002】
数値制御装置の使命は、モータのモーションコントロールを行い、所望の形状を高精度、高速に加工することである。モーションコントロールには大きくは加工プログラムを解析するタスクと、その結果に基づいてモータを動かすための補間データを作成するタスクがあり、複数のタスクがある中でこれらには高い優先度が設定されている。3次元曲面形状の5軸加工など、微小ブロックが連続するCPU負荷の重い運転を行う場合、プログラムの解析と補間データを作成するタスクが非常に忙しくなり、多くの時間が割り当てられるようになる。必然的にそれ以外の優先度の低いタスクに割り当てられる時間は減少する。
【0003】
数値制御装置にはモーションコントロールを行う制御装置本体と、オペレータと数値制御装置が情報をやり取りするための手段であるHMI(Human Machine Interface)がそれぞれ別CPUで動作する形態のものがある。この形態では通常HMIは汎用OS上のアプリケーションとして動作する。制御装置本体は外部とデータのやり取りを行うためのアプリケーションインタフェース装置を有しており、これは一般にAPIと呼ばれる。HMIはAPIを通して制御装置本体とデータのやり取りを行う。APIは公開されているため、機械メーカが自社の機械に合わせた独自のHMIを汎用OS上のアプリケーションとして作成することが可能である。
【0004】
HMIは制御装置本体と別のCPUで動作するので、CPU負荷の重い運転を行う場合でもHMIのタスクに割り当てられる時間が減少することはない。しかし、HMIが呼んだAPIからの要求に基づいて制御装置本体はHMIの画面に表示するデータを用意するなどの処理を行うが、これを行うタスクは前記のモーションコントロールのタスクよりも優先度が低く、CPU負荷が重い運転を行うと、その影響を受け、タスクに割り当てられる時間が減少する。この結果、APIが応答を返すまでの時間が長くなる。
【0005】
数値制御装置に限らず、PCや各種制御装置においてCPUの負荷が重くなると、画面の更新や操作に対する応答に時間がかかることがある。このような状態はオペレータに対してストレスを与えるだけでなく、PCや装置が正しく動作しているのか、ハングアップしたのではないか、数値制御装置の場合だと、加工が正常に行われていないのではないかと不安を抱かせることにもなる。
【0006】
このような状態を回避するため、CPU負荷が重い時、画面に表示するデータ量を減らして、画面の更新頻度を低下させないようにする技術が提案されている。
例えば、特許文献1では、カーナビゲーション装置において、CPU負荷が重い時には画面に表示する情報を簡素化して、少ない処理時間で画面の更新ができ、その頻度を下げないようにする技術が提案されている。また特許文献2では、制御装置本体とHMIである可搬式操作部からなるロボット制御システムにおいて、可搬式操作部のCPU負荷が重い場合に、制御装置本体から転送される画像データ量を減らすことで、可搬式操作部の負担を減らし画面更新や操作性の悪化を防ぐ技術が提案されている。これら従来技術では、いずれも処理するデータ量を減らすことによりHMIの負担を減らして、画面表示、操作性の悪化を防いでいる。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2009−204477号公報
【特許文献2】特開2009−217713号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
前記制御装置本体とHMIが別CPUで動作する数値制御装置の場合、運転に伴うCPU負荷はAPIの処理時間に影響を及ぼす。CPU負荷がAPIに及ぼす影響の程度はAPIによって異なり、影響を大きく受けるものと、ほとんど受けないものがあるが、CPU負荷の重い運転を行っている時に影響を大きく受けるAPIをHMIが呼ぶと終了するまでに時間がかかってしまう。通常、APIは要求された処理が完了するまで応答を返さないので、その間HMIは次の処理を行うことができない。あるいは所定の時間内に処理を終了できない場合にAPIはタイムアウトエラーを返して終了するが、やはりタイムアウトエラーが返るまで次の処理を行うことができない。その間画面の更新が滞り、オペレータが操作をしようとしても待たされることになる。またAPIがタイムアウトエラーで終了しても、その原因は通知されないので、運転の負荷が重いためかどうかをHMIは判断することができない。
【0009】
図4は画面表示のフローの例を示したものである。画面表示処理はループ構造になっており、イベントの監視(ステップSA01)、画面に表示するデータの取得とそのデータの表示更新(ステップSA05〜ステップSA08)を順番に行う。画面更新イベント(ステップSA04)が来ると画面を更新、画面切替えイベント(ステップSA02)が来ると現在表示している画面のループから抜けて画面切替え処理(ステップSA03)が実行される。
【0010】
図4に示したフローで示した表示処理ではデータ1〜Nを画面に表示する。ここでデータ1〜N取得用のAPIの一つでも運転の負荷の影響を受けるものである場合、APIの呼出しに時間がかかると、それが正常終了であってもタイムアウトエラーであってもその間画面の更新が止まってしまう。また、その間イベントの監視もできないため、画面切替え要求があっても切替えができない。
【0011】
これに対して、特許文献1、2は、いずれも扱うデータ量を減らすことによりHMIのCPU負荷を軽減して画面更新を継続させる技術であって、データを用意する側のCPU負荷は考慮しておらず、上記問題を解決する手段とはならない。
【0012】
そこで本発明の目的は、データを用意する側である制御装置本体のCPU負荷を考慮し、CPU負荷が重い場合でもHMIにおいて画面の更新を可能にする数値制御装置を提供することである。
【課題を解決するための手段】
【0013】
本発明では、CPU負荷に基づいて所定の時間内に処理を終えられるかを予測可能なAPI(Application Programming Interface)を有し、またそのAPIを通してデータを取得することにより、CPU負荷の重い運転を行っている時も画面更新が可能な数値制御装置を提供する。
【0014】
そして、本願の請求項1に係る発明は、HMIに係る処理で用いられるデータを取得するためのAPIを備えた数値制御装置において、前記APIが提供するAPI関数毎に、該API関数による処理が予め設定された所定時間内に完了することを保証する前記数値制御装置のCPU負荷の上限値が定義された負荷定義テーブルと、前記APIが提供するAPI関数の呼出しを受け付けるAPIインタフェース部と、前記API関数の呼出しに基づいて前記API関数の処理を実行するAPI制御部と、前記数値制御装置のCPUの負荷を監視する負荷監視手段と、前記API関数の呼出しに係る情報と、前記負荷監視手段により監視される現在のCPU負荷値とに基づいて前記負荷定義テーブルを参照し、前記API関数の実行が前記所定時間内に完了するかを予測する処理時間予測手段と、を備え、前記API制御部は、前記処理時間予測手段が前記API関数の実行が前記所定時間内に完了しないと予測した場合、前記API関数の処理を実行せずに終了する、ことを特徴とする数値制御装置である。
【0015】
本願の請求項2に係る発明は、前記APIを介して取得したデータに基づいて画面の表示を制御するHMI制御部を更に備え、前記API制御部は、前記処理時間予測手段が前記API関数の実行が前記所定時間内に完了しないと予測した場合、高負荷であることを示すエラーコードを前記APIインタフェース部を介して呼び出し元へと返し、前記HMI制御部は、画面に表示されている表示項目のデータを取得するために前記APIが提供するAPI関数を呼び出した際に高負荷であることを示すエラーコードが返された場合、表示画面上の前記表示項目の前記データを更新せずに表示属性を変更する、ことを特徴とする請求項1に記載された数値制御装置である。
【0016】
本願の請求項3に係る発明は、前記HMI制御部は、画面に表示されている表示項目のデータを取得するために前記APIが提供するAPI関数を呼び出した際に高負荷であることを示すエラーコードが返された場合、前記数値制御装置のCPUが高負荷で表示が更新できない状態であることを示す警告を出力する、ことを特徴とする請求項2に記載された数値制御装置である。
【発明の効果】
【0017】
本発明により、HMIにおいて、APIを通してデータを取得するのに時間がかかるために更新できない項目について、そのことが把握できるように画面表示がされる為、数値制御装置に問題が発生したのではないことがオペレータに伝わり、加工や機械に問題が発生したのではないかという不安を払拭することが期待できる。
【図面の簡単な説明】
【0018】
【
図1】本発明の実施形態における数値制御装置の概略構成図である。
【
図2】本発明の実施形態における負荷定義テーブルの例を示す図である。
【
図3】本発明の実施形態におけるHMI部で実行される処理のフローチャートである。
【
図4】従来技術におけるHMI部で実行される処理のフローチャートである。
【0019】
以下、本発明の実施形態を図面と共に説明する。
本発明では、それぞれ別CPUで動作する制御装置本体とHMIによって構成される数値制御装置において、制御装置本体でCPU負荷が重い運転を行っている場合でも所定の時間内に正常終了、エラー終了を問わず終了することができ、かつ高負荷であることを通知できるAPIを提供し、該APIを通して制御装置本体とやり取りを行うHMIにおいて、制御装置本体のCPU負荷が重い場合でも画面の更新や切替えが行われるようにする。
【0020】
より具体的には、制御装置本体のCPU負荷を監視しておき、HMIもしくは外部アプリケーションとデータのやり取りを行うためのインタフェースであるAPIが呼び出された際に、現在のCPU負荷の高さで該APIの呼出しにより要求されているデータを所定時間以内に応答することができるかを予測し、応答できないと予測された時にAPIは処理を行うことなく直ちに高負荷である旨のエラーを返して終了するようにする。このような構成とすることで、制御装置本体が高負荷である場合にはAPI呼出しに対してすぐに高付加エラー応答が返ってくるため、HMIや外部アプリケーション側では応答内容に応じた表示画面の更新処理を行うことができるようになる。
【0021】
図1は、本発明の一実施形態における数値制御装置の概略構成を示した図である。本発明の数値制御装置1は、モーションコントロールを司る制御装置本体部10と、オペレータと情報をやり取りするための手段であるHMI部20とを有する。
【0022】
制御装置本体部10は、モータのモーションコントロールを行うモーションコントロール部11と、HMI部20や外部PC30上で動作するアプリケーション31とデータのやり取りを行うためのインタフェースであるAPI12、モーションコントロール部から現在のCPU負荷を取得する負荷監視手段15、処理時間を予測する処理時間予測手段16、および図示しないメモリ上に設けられた負荷定義テーブル17を備える。
【0023】
モーションコントロール部11は、数値制御装置1の主たる機能である機械の制御を行なう部分であり、入力された、または図示しないメモリから読み出した加工プログラムを解析し、その結果に基づいてモータなどを動かすための補間データを作成し、該補間データを用いて制御対象となる機械を制御する。モーションコントロール部11は、外部からの呼出しに応じて、機械の制御に係る各種データを返す機能を備える。
【0024】
API12は、HMI部20や外部PC上で動作するアプリケーション31とデータのやり取りを行うためのインタフェースであり、API呼出しの処理状況を制御するAPI制御部13と、外部とのインタフェースであるAPIインタフェース部14を備える。
API制御部13は、外部からのAPI関数の呼出しをAPIインタフェース部14を介して受けると、後述する処理時間予測手段16に対して該API関数の処理が所定の時間内に完了するか予測するように指令し、処理時間予測手段16が該API関数の処理が所定の時間内に完了すると予測した場合には、モーションコントロール部11などの制御装置本体10各部に指令して呼び出されたAPI関数の処理を実行し、実行結果と正常終了のコードをAPIインタフェース部14を介して呼び出し側へと返す。一方で、処理時間予測手段16が該API関数の処理が所定の時間内に完了しないと予測した場合には、該API関数の実行を行わずに高負荷であるエラーコードをAPIインタフェース部14を介して呼び出し側へと返す。
【0025】
負荷監視手段15は、モーションコントロール部11の処理を実行しているCPUの現在のCPU負荷を監視しており、処理時間予測手段16からの指令により現在のCPU負荷を出力する。
処理時間予測手段16は、API制御部13からAPI関数呼出しに係る情報と共に該API関数の処理時間を予測する指令を受けると、負荷監視手段15から現在のCPU負荷を受け取り、該API関数呼出しに係る情報と現在のCPU負荷、および負荷定義テーブル17に基づいて、該API関数の処理が所定の時間内に完了するか否かを予測する。
【0026】
図2は、本実施形態の負荷定義テーブル17の例を示している。図に示すように、負荷定義テーブル17には、API関数毎に、所定の時間内に単位データを処理可能な上限のCPU負荷が定義されている。
図2の例では、工具座標データを取得するAPI関数の処理を実行する場合、CPU負荷が70%以下であれば所定の時間(例えば500ms)以内に工具座標データを返すことができることを示している。この所定の時間については、API関数呼出しのタイムアウトよりも短い時間であって、HMI部20における表示更新処理に間に合う適切な時間を設定すればよい。また、API関数毎の所定の時間内に単位データを処理可能な上限のCPU負荷の値については、予め実験などにより算出して負荷定義テーブル17に登録しておく。
【0027】
処理時間予測手段16は、現在のCPU負荷と、負荷定義テーブル17に定義されているAPI関数処理の上限のCPU負荷とを比較し、現在のCPU負荷がAPI関数処理の上限のCPU負荷を超えている場合には、該API関数におけるデータの処理を所定の時間内に完了できないと予測し、超えていなければ処理が所定の時間内に完了すると予測する。そして、その予測結果をAPI制御部13に通知する。
なお、API関数の呼出しにおいて複数データの取得が要求された場合には、例えば負荷定義テーブル17に定義されている上限のCPU負荷を1.1^(データの個数分−1)倍するなど、適宜補正を加えてから現在のCPU負荷と比較するようにすれば良い。
【0028】
HMI部20は、オペレータと情報をやり取りするための手段であり、HMI制御部21、LCD等の表示部22、キーボード、タッチパネルなどの入力部23,24を備える。
HMI制御部21は、数値制御装置1の動作状況や機械制御に係る情報などを示す表示画面を生成して表示部22に表示する制御を行なう。HMI部20は、表示画面を生成するために必要となる各項目のデータを、API12を介して制御装置本体部10から取得する。
【0029】
HMI制御部21は、画面に表示する項目のデータをAPI12を通して取得する際に、API12より高負荷であるエラーコードが返った場合には、表示画面上のその項目の表示更新は行わずに更新できなかった項目の表示色を変更する。また、HMI制御部21は、API12より高負荷であるエラーコードが返った場合に、表示画面上に高負荷であるため画面の更新が一時的に制限された状態である旨メッセージを表示する。
【0030】
図3はHMI制御部21により実行される画面表示処理のフローチャートである。
●[ステップSB01]HMI制御部21は、外部からの信号などによるイベントや、入力部23,24から入力されるイベントを監視する。
●[ステップSB02]ステップSB01で画面切替えイベントが発生したか否かを判定する。画面切替えイベントが発生した場合にはステップSB03へ進み、発生していない場合にはステップSB04へ進む。
●[ステップSB03]現在の画面表示を終了し、画面切替えイベントにより指定された画面表示へと切り換える。
●[ステップSB04]ステップSB01で画面更新イベントが発生したか否かを判定する。画面更新イベントが発生した場合にはステップSB05−1へ進み、発生していない場合にはステップSB01へ戻る。
【0031】
●[ステップSB05−1]HMI制御部21は、画面に表示する項目データの内、データ1を取得するためのAPI12が提供するAPI関数を呼び出す。
●[ステップSB06−1]ステップSB05−1で呼び出したAPI関数が正常に終了したか否かを判定する。正常に終了した場合にはステップSB07−1へ進み、正常に終了していない場合にはステップSB08−1へ進む。
●[ステップSB07−1]ステップSB05−1のAPI関数呼び出しにより得られたデータ1について表示画面の更新を行う。
【0032】
●[ステップSB08−1]ステップSB05−1のAPI関数呼び出しから帰ってきたエラーコードが高負荷エラーのエラーコードであるか否かを判定する。高付加エラーのエラーコードである場合にはステップSB09−1へ進み、そうでない場合にはステップSB05−2(図示せず)へ進む。
●[ステップSB09−1]HMI制御部21は、表示画面上のデータ1の表示を、グレー表示するなどして、CPUの高負荷が原因でデータ1が更新できなかったことを示す表示に切り替える。
以下、データ2からデータNに対して、ステップSB05−2〜ステップSB09−Nまで処理を実行する。
【0033】
●[ステップSB10]ステップSB05−1からステップSB09−Nの実行において、API関数呼び出しに対して高負荷エラーが返されたものが存在するか否かを判定する。高負荷エラーが返されたものが存在する場合にはステップSB12へ進み、存在しない場合にはステップSB11へ進む。
●[ステップSB11]HMI制御部21は、表示画面上の高負荷であるため画面の更新が一時的に制限されていることを示すメッセージを消去し、ステップSB01へ戻る。
●[ステップSB12]HMI制御部21は、表示画面上に高負荷であるため画面の更新が一時的に制限されていることを示すメッセージを表示し、ステップSB01へ戻る。
【0034】
外部PC30は、数値制御装置1に対して数値制御装置1が備えた通信インタフェースを介して接続された汎用または専用コンピュータである。外部PC30上では、機械メーカが作成したHMIアプリケーション31を実行することが可能であり、HMIアプリケーション31を実行することにより、図示しない表示部に対して数値制御装置1の状態表示などをすることができる。HMIアプリケーション31の動作については、HMI部20と略同様なので説明を省略する。
【0035】
本実施形態の数値制御装置1は、上記で説明した構成を備えることにより、CPU負荷が高い場合であってもAPI12における処理が所定の時間内に終了することが保証されるため、HMI部20または外部PC30において、API12を通してデータを取得するのに時間がかかる項目以外は更新される。また更新できない項目については色を変えて表示し、画面上には更新が制限された状態であることのメッセージを表示することができるので、数値制御装置1が意図して画面の更新を制限していること、数値制御装置1に問題が発生したのではないことがオペレータに伝わり、加工や機械に問題が発生したのではないかという不安を払拭することが期待できる。
【0036】
以上、本発明の実施の形態について説明したが、本発明は上述した実施の形態の例のみに限定されることなく、適宜の変更を加えることにより様々な態様で実施することができる。
【0037】
例えば、高負荷で更新できない項目の表示について、上記ではグレー表示する例を示しているが、他の色で表示するようにしてもよく、また、反転や点滅などの表示属性を変更するようにしてもよい。また、表示画面上に高負荷であるため画面の更新が一時的に制限されていることを示すメッセージについても、メッセージに限られるものではなく、警告音やアラートランプなどで知らせるようにしてもよい。
【符号の説明】
【0038】
1 数値制御装置
10 制御装置本体部
11 モーションコントロール部
12 API
13 API制御部
14 APIインタフェース部
15 負荷監視手段
16 処理時間予測手段
17 負荷定義テーブル
20 HMI部
21 HMI制御部
22 表示部
23,24 入力部
30 外部PC
31 HMIアプリケーション