IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ファナック株式会社の特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-01
(45)【発行日】2024-04-09
(54)【発明の名称】制御装置、及び制御方法
(51)【国際特許分類】
   G05B 19/414 20060101AFI20240402BHJP
   G05B 19/4155 20060101ALI20240402BHJP
【FI】
G05B19/414 R
G05B19/4155 N
【請求項の数】 7
(21)【出願番号】P 2019230097
(22)【出願日】2019-12-20
(65)【公開番号】P2021099575
(43)【公開日】2021-07-01
【審査請求日】2022-10-21
(73)【特許権者】
【識別番号】390008235
【氏名又は名称】ファナック株式会社
(74)【代理人】
【識別番号】100106002
【弁理士】
【氏名又は名称】正林 真之
(74)【代理人】
【識別番号】100165157
【弁理士】
【氏名又は名称】芝 哲央
(74)【代理人】
【識別番号】100160794
【弁理士】
【氏名又は名称】星野 寛明
(72)【発明者】
【氏名】尾関 真一
【審査官】亀田 貴志
(56)【参考文献】
【文献】特開2002-318780(JP,A)
【文献】特開2017-007824(JP,A)
【文献】特開2000-035807(JP,A)
【文献】特開昭49-018544(JP,A)
【文献】特開昭49-041041(JP,A)
【文献】特開2003-295921(JP,A)
【文献】特開昭52-072131(JP,A)
【文献】特開平01-226033(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 19/18 - 19/46
G05B 15/00
G06F 9/48
(57)【特許請求の範囲】
【請求項1】
複数のクライアントからの産業機械に対する処理要求の処理を実行する制御装置であって、
前記複数のクライアントから複数の前記処理要求を受信した場合、前記産業機械の処理状態に応じて前記複数のクライアントの各々の優先度を判定する優先度判定部と、
前記優先度判定部により判定された前記複数のクライアントの各々の優先度に基づいて、複数の前記処理要求の各々の処理の順番を切り替える処理切替部と、
前記産業機械の処理状態毎に、所定期間内において予め設定された処理要求の依頼回数に応じてクライアントの優先度を示す端末優先度情報を格納した端末優先度テーブルと、を備え、
前記優先度判定部は、前記産業機械の処理状態に応じた前記端末優先度情報に基づいて、前記複数のクライアントの各々の優先度を判定する
制御装置。
【請求項2】
前記優先度判定部は、前記産業機械の処理状態に応じて前記複数のクライアントの各々で実行されるアプリケーションの優先度を判定し、
前記処理切替部は、前記複数のクライアントの各々の優先度及び前記アプリケーションの優先度に基づいて、複数の前記処理要求の各々の処理の順番を切り替える、請求項に記載の制御装置。
【請求項3】
前記産業機械の処理状態毎に、所定期間内において予め設定された処理要求の依頼回数、又は所定のアプリケーションに応じてアプリケーションの優先度を示すアプリ優先度情報を格納したアプリ優先度テーブルをさらに備え、
前記優先度判定部は、前記産業機械の処理状態に応じた前記アプリ優先度情報に基づいて、前記アプリケーションの優先度を判定する、請求項に記載の制御装置。
【請求項4】
前記複数のクライアントの各々との間で通信を行うサーバと、
前記制御装置における処理負荷、前記複数のクライアントの各々との間の通信負荷、及び前記サーバにおける処理負荷の少なくとも1つの負荷を監視する負荷監視部と、をさらに備え、
前記優先度判定部は、前記負荷監視部により監視された前記負荷が所定値より大きい場合、少なくとも前記産業機械の処理状態に応じた前記複数のクライアントの各々の優先度を判定する、請求項1から請求項のいずれか1項に記載の制御装置。
【請求項5】
前記産業機械は工作機械であり、前記制御装置は数値制御装置である、請求項1から請求項のいずれか1項に記載の制御装置。
【請求項6】
前記産業機械は産業用ロボットであり、前記制御装置はロボット制御装置である、請求項1から請求項のいずれか1項に記載の制御装置。
【請求項7】
複数のクライアントからの産業機械に対する処理要求の処理を実行する制御方法であって、
前記複数のクライアントから複数の前記処理要求を受信した場合、前記産業機械の処理状態に応じて前記複数のクライアントの各々の優先度を判定する優先度判定ステップと、
前記複数のクライアントの各々の優先度に基づいて、複数の前記処理要求の各々の処理の順番を切り替える処理切替ステップと、
前記産業機械の処理状態毎に、所定期間内において予め設定された処理要求の依頼回数に応じてクライアントの優先度を示す端末優先度情報を格納した端末優先度テーブルと、を備え、
前記優先度判定ステップは、前記産業機械の処理状態に応じた前記端末優先度情報に基づいて、前記複数のクライアントの各々の優先度を判定する
制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、制御装置、及び制御方法に関する。
【背景技術】
【0002】
産業機械を制御する制御装置には、表示器やタブレット等の複数のクライアントとの間で通信を行うサーバを有し、制御装置に対する複数のクライアントそれぞれからの処理要求に対して産業機械に係る当該処理を行うものがある。この場合、従来においては、制御装置は、複数のクライアントそれぞれから受信した処理要求の順番で産業機械に係る処理を実行する。
この点、複数の一般的なクライアントと1つのサーバとの間の通信において、通信を行うクライアント毎に予め優先度を設定し、設定された優先度に基づいて通信を行う技術が知られている。例えば、特許文献1参照。
【先行技術文献】
【特許文献】
【0003】
【文献】特開平7-143147号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、仮に、産業機械を制御する制御装置において、クライアント毎に一律に優先度を設定した場合、産業機械としての工作機械を例にあげると、工作機械の処理状態(例えば加工実行中(MEMモード)やEDITモード等の処理状態)によって優先したいクライアント又はアプリケーションが異なるため、制御装置は、工作機械の処理状態によっては、必ずしも即行うべき処理を行うことができないことがある。
【0005】
そこで、産業機械の処理状態毎の処理内容によって、優先すべきクライアント又はアプリケーションの処理を確実に実行することが望まれている。
【課題を解決するための手段】
【0006】
(1)本開示の制御装置の一態様は、複数のクライアントからの産業機械に対する処理要求の処理を実行する制御装置であって、前記複数のクライアントから複数の前記処理要求を受信した場合、前記産業機械の処理状態に応じて前記複数のクライアントの各々の優先度を判定する優先度判定部と、前記優先度判定部により判定された前記複数のクライアントの各々の優先度に基づいて、複数の前記処理要求の各々の処理の順番を切り替える処理切替部と、を備える。
【0007】
(2)本開示の制御方法の一態様は、複数のクライアントからの産業機械に対する処理要求の処理を実行する制御方法であって、前記複数のクライアントから複数の前記処理要求を受信した場合、前記産業機械の処理状態に応じて前記複数のクライアントの各々の優先度を判定する優先度判定ステップと、前記複数のクライアントの各々の優先度に基づいて、複数の前記処理要求の各々の処理の順番を切り替える処理切替ステップと、を備える。
【発明の効果】
【0008】
一態様によれば、産業機械の処理状態毎の処理内容によって、優先すべきクライアント又はアプリケーションの処理を確実に実行することができる。
【図面の簡単な説明】
【0009】
図1】一実施形態に係る制御システムの機能的構成例を示す機能ブロック図である。
図2A】工作機械の処理状態がMEMモード(機械動作中)又はMDIモード(機械動作中)の場合の端末優先度テーブルの一例を示す図である。
図2B】工作機械の処理状態がJOGモード(機械動作中)又はHNDモード(機械動作中)の場合の端末優先度テーブルの一例を示す図である。
図2C】工作機械の処理状態がMEMモード(機械非動作中)、MDIモード(機械非動作中)、JOGモード(機械非動作中)、又はHNDモード(機械非動作中)の場合の端末優先度テーブルの一例を示す図である。
図2D】工作機械の処理状態がEDITモード(機械非動作中)の場合の端末優先度テーブルの一例を示す図である。
図3A】工作機械の処理状態がMEMモード(機械動作中)又はMDIモード(機械動作中)の場合のアプリ優先度テーブルの一例を示す図である。
図3B】工作機械の処理状態がJOGモード(機械動作中)又はHNDモード(機械動作中)の場合のアプリ優先度テーブルの一例を示す図である。
図3C】工作機械の処理状態がMEMモード(機械非動作中)、MDIモード(機械非動作中)、JOGモード(機械非動作中)、又はHNDモード(機械非動作中)の場合のアプリ優先度テーブルの一例を示す図である。
図3D】工作機械の処理状態がEDITモード(機械非動作中)の場合のアプリ優先度テーブルの一例を示す図である。
図4A】、2つのクライアントが1つのアプリを実行し、数値制御装置のサーバとの間で処理要求をやり取りする場合の一例を示す図である。
図4B】1つのクライアントが2つのアプリを実行し、数値制御装置のサーバとの間で処理要求をやり取りする場合の一例を示す図である。
図4C】2つのクライアントが2つのアプリを実行し、数値制御装置のサーバとの間で処理要求をやり取りする場合の一例を示す図である。
図5】2つのクライアントが配置される一例を示す図である。
図6図4Cの場合におけるクライアントの優先度及びアプリの優先度に基づく複数の処理要求のNC処理の順番の切り替えの一例を示す図である。
図7】数値制御装置の制御処理について説明するフローチャートである。
図8】制御システムの機能的構成例を示す機能ブロック図である。
図9A】ロボットの処理状態が自動運転(MEM)モード(ロボット動作中)の場合の端末優先度テーブルの一例を示す図である。
図9B】ロボットの処理状態が自動運転(MEM)モード(ロボット非動作中)の場合の端末優先度テーブルの一例を示す図である。
図10A】ロボットの処理状態が自動運転(MEM)モード(ロボット動作中)の場合のアプリ優先度テーブルの一例を示す図である。
図10B】ロボットの処理状態が自動運転(MEM)モード(ロボット非動作中)の場合のアプリ優先度テーブルの一例を示す図である。
【発明を実施するための形態】
【0010】
以下、本開示の一実施形態について、図面を用いて説明する。ここでは、産業機械として工作機械を、また制御装置として数値制御装置を例示する。なお、本発明は、工作機械に限定されず、例えば産業用ロボット、サービス用ロボット等にも適用可能である。
<一実施形態>
図1は、一実施形態に係る制御システムの機能的構成例を示す機能ブロック図である。図1に示すように、制御システム1は、数値制御装置10、クライアント20(1)-20(N)、及び工作機械30を有する(Nは2以上の整数)。
【0011】
数値制御装置10、クライアント20(1)-20(N)、及び工作機械30は、図示しない接続インタフェースを介して互いに直接接続されてもよい。また、数値制御装置10、クライアント20(1)-20(N)、及び工作機械30は、LAN(Local Area Network)やインターネット等の図示しないネットワークを介して相互に接続されていてもよい。この場合、数値制御装置10、クライアント20(1)-20(N)、及び工作機械30は、かかる接続によって相互に通信を行うための図示しない通信部を備えている。
以下、クライアント20(1)-20(N)のそれぞれを個々に区別する必要がない場合、これらをまとめて「クライアント20」ともいう。
【0012】
クライアント20は、例えば、表示器やタブレット等である。クライアント20は、例えば、後述する数値制御装置10を操作する「CNC操作アプリ」等の少なくとも1つのアプリケーション(以下、「アプリ」ともいう)を有する。クライアント20は、クライアント20に含まれるキーボードやタッチパネル等の入力装置(図示しない)を介して、ユーザからアプリ実行の指令を受け付けることで、少なくとも1つのアプリを実行する。クライアント20は、実行したアプリが要求する処理要求を後述する数値制御装置10に送信する。また、クライアント20は、数値制御装置10からの出力を受信し、受信した出力をクライアント20に含まれる液晶ディスプレイ等の出力装置(図示しない)に表示する。
クライアント20には、少なくとも工作機械30を操作する「CNC操作アプリ」がインストールされる。また、クライアント20には、工作機械30の動作状況を管理する「データロギングアプリ」、加工スケジュールを管理する「スケジュール管理アプリ」、メモ帳として動作する「メモアプリ」等がインストールされてもよい。
【0013】
工作機械30は、当業者にとって公知の工作機械であり、制御装置としての数値制御装置10の動作指令に基づいて動作する。
【0014】
<数値制御装置10>
数値制御装置10は、当業者にとって公知の数値制御装置であり、クライアント20からの処理要求や、CAD/CAM装置等の外部装置(図示しない)から取得した加工プログラムに基づいて動作指令を生成し、生成した動作指令を工作機械30に送信する。これにより、数値制御装置10は、工作機械30の動作を制御する。なお、工作機械30がロボット等の場合、数値制御装置10は、ロボット制御装置等でもよい。
【0015】
図1に示すように、数値制御装置10は、サーバ110、制御部120、及び記憶部130を有する。さらに、制御部120は、優先度判定部121、及び処理切替部122を有する。
【0016】
<サーバ110>
サーバ110は、例えば、Webサーバであり、クライアント20との間で通信を行う。サーバ110は、数値制御装置10に対する処理要求をクライアント20から受信した場合、後述する制御部120に出力する。また、サーバ110は、クライアント20からの処理要求に対する応答を制御部120から受信し、受信した応答をクライアント20に送信する。
【0017】
<記憶部130>
記憶部130は、RAM(Random Access Memory)やHDD(Hard Disk Drive)等である。記憶部130は、NCデータ131、端末優先度テーブル132(1)-132(4)、及びアプリ優先度テーブル133(1)-133(4)を記憶する。
【0018】
NCデータ131は、例えば、例えば、CAD/CAM装置等の外部装置(図示しない)により生成された加工プログラムや、工具補正量及びワーク座標等の設定値が格納される。
【0019】
端末優先度テーブル132(1)-132(4)は、例えば、産業機械の処理状態(以下、「工作機械30の処理状態」ともいう)毎に、所定期間内において予め設定された処理要求の依頼回数に応じてクライアント20の各々の優先度を示す端末優先度情報を格納する。
【0020】
なお、工作機械30の処理状態には、例えば、「MEMモード(機械動作中)」、「MEMモード(機械非動作中)」、「MDIモード(機械動作中)」、MDIモード(機械非動作中)」、「JOGモード(機械動作中)」、「HNDモード(機械動作中)」、「JOGモード(機械非動作中)」、「HNDモード(機械非動作中)」、及び「EDITモード」等がある。
ここで、MEMモードとは、メモリモードであり、加工プログラムに基づいて自動運転するモードである。また、MDIモードとは、工作機械30を操作するための加工プログラムを1行ずつ入力し、工作機械30を操作するモードである。また、EDITモードとは、加工プログラムや加工サイクルの編集を行うモードである。また、JOGモードとは、数値制御装置10に含まれる工作機械30の各軸を移動させる軸移動ボタン(図示しない)をユーザが押し続けることで、工作機械30の図示しない主軸やテーブルを移動させるモードである。また、HNDモードとは、数値制御装置10に含まれるハンドル(図示しない)をユーザが手動で回転操作することで、工作機械30の図示しない主軸やテーブルを移動させるモードである。
【0021】
図2Aは、工作機械30の処理状態がMEMモード(機械動作中)又はMDIモード(機械動作中)の場合の端末優先度テーブル132(1)の一例を示す図である。
図2Aに示すように、MEMモード(機械動作中)又はMDIモード(機械動作中)の端末優先度テーブル132(1)では、所定期間としての直近の時間範囲内(例えば、現在時刻から1分前までの時間)にサーバ110へ「座標値取得」、「主軸情報取得」、「送り軸情報取得」の依頼数が多いアプリが存在する端末(クライアント20)に対して、高い優先度「1」が設定される。これは、加工実行中では、座標値を用いて衝突の監視、主軸情報を用いてモータ負荷や焼損の監視、及び送り軸情報を用いてモータ負荷や焼損の監視が行われるため、上記情報取得を最も多く行っているクライアント20を優先する。
一方、端末優先度テーブル132(1)では、優先度「1」のクライアント20以外の端末については、「その他」として優先度「2」を設定してもよい。
【0022】
図2Bは、工作機械30の処理状態がJOGモード(機械動作中)又はHNDモード(機械動作中)の場合の端末優先度テーブル132(2)の一例を示す図である。
図2Bに示すように、JOGモード(機械動作中)又はHNDモード(機械動作中)の端末優先度テーブル132(2)では、所定期間としての直近の時間範囲内(例えば、現在時刻から1分前までの時間)にサーバ110へ「座標値取得」、「送り軸情報取得」の要求数が多いアプリが存在する端末(クライアント20)に対して、高い優先度「1」が設定される。これは、加工実行中では、座標値を用いて衝突の監視、及び送り軸情報を用いてモータ負荷や焼損の監視が行われるため、上記情報取得を最も多く行っているクライアント20を優先することが好ましい。
一方、端末優先度テーブル132(2)では、優先度「1」のクライアント20以外の端末については、「その他」として優先度「2」を設定してもよい。
【0023】
図2Cは、工作機械30の処理状態がMEMモード(機械非動作中)、MDIモード(機械非動作中)、JOGモード(機械非動作中)、又はHNDモード(機械非動作中)の場合の端末優先度テーブル132(3)の一例を示す図である。
図2Cに示すように、MEMモード(機械非動作中)、MDIモード(機械非動作中)、JOGモード(機械非動作中)、又はHNDモード(機械非動作中)の端末優先度テーブル132(3)では、所定期間としての直近の時間範囲内(例えば、現在時刻から1分前までの時間)にサーバ110へ「プログラム編集依頼」、「ワーク座標設定依頼」、「工具情報設定依頼」の依頼数が多いアプリが存在する端末(クライアント20)に対して、高い優先度「1」が設定される。これは、機械非動作中(アイドル状態)では、次の加工のための段取り等を行っていることから、数値制御装置10への設定を多く行っているクライアント20を優先することが好ましい。
一方、端末優先度テーブル132(3)では、優先度「1」のクライアント20以外の端末については、「その他」として優先度「2」を設定してもよい。
【0024】
図2Dは、工作機械30の処理状態がEDITモード(機械非動作中)の場合の端末優先度テーブル132(4)の一例を示す図である。
図2Dに示すように、EDITモード(機械非動作中)の端末優先度テーブル132(4)では、所定期間としての直近の時間範囲内(例えば、現在時刻から1分前までの時間)にサーバ110へ「プログラム編集依頼」、「カスタムマクロ変数設定依頼」の依頼数が多いアプリが存在する端末(クライアント20)に対して、高い優先度「1」が設定される。これは、EDITモードでは、プログラム編集を行うため、プログラム編集を行うクライアント20を優先するためである。なお、EDITモードでプログラム編集を行いながら、カスタムマクロ変数を設定する場合があるため、端末優先度テーブル132(4)は、カスタムマクロ変数の設定依頼も考慮する。
一方、端末優先度テーブル132(4)では、優先度「1」のクライアント20以外の端末については、「その他」として優先度「2」を設定してもよい。
【0025】
アプリ優先度テーブル133(1)-133(4)は、例えば、工作機械30の処理状態毎に、所定期間内において予め設定された処理要求を行った端末(クライアント20)に対して当該処理要求の依頼回数、又は予め設定された所定のアプリに対してアプリの優先度を示すアプリ優先度情報を格納するようにしてもよい。例えば、「CNC操作アプリ」を最優先(優先度1)とし、その他のアプリの優先度を「2」に設定してもよい。
【0026】
図3Aは、工作機械30の処理状態がMEMモード(機械動作中)又はMDIモード(機械動作中)の場合のアプリ優先度テーブル133(1)の一例を示す図である。
図3Aに示すように、MEMモード(機械動作中)又はMDIモード(機械動作中)のアプリ優先度テーブル133(1)では、所定のアプリケーションとしての「CNC操作アプリ」に対して、最も高い優先度「1」が設定される。これは、加工実行中では、座標値を用いて衝突の監視、主軸情報を用いてモータ負荷や焼損の監視、及び送り軸情報を用いてモータ負荷や焼損の監視が行われるため、「CNC操作アプリ」が優先される。
一方、アプリ優先度テーブル133(1)では、「CNC操作アプリ」以外のアプリについては、「その他」として優先度「2」を設定してもよい。
【0027】
図3Bは、工作機械30の処理状態がJOGモード(機械動作中)又はHNDモード(機械動作中)の場合のアプリ優先度テーブル133(2)の一例を示す図である。
図3Bに示すように、JOGモード(機械動作中)又はHNDモード(機械動作中)のアプリ優先度テーブル133(2)では、「CNC操作アプリ」に対して、最も高い優先度「1」が設定される。これは、加工実行中では、座標値を用いて衝突の監視、及び送り軸情報を用いてモータ負荷や焼損の監視を行う必要があるため、「CNC操作アプリ」に対して、最も高い優先度「1」が設定される。
一方、アプリ優先度テーブル133(2)では、「CNC操作アプリ」以外のアプリについては、「その他」として優先度「2」を設定してもよい。
【0028】
図3Cは、工作機械30の処理状態がMEMモード(機械非動作中)、MDIモード(機械非動作中)、JOGモード(機械非動作中)、又はHNDモード(機械非動作中)の場合のアプリ優先度テーブル133(3)の一例を示す図である。
図3Cに示すように、MEMモード(機械非動作中)、MDIモード(機械非動作中)、JOGモード(機械非動作中)、又はHNDモード(機械非動作中)のアプリ優先度テーブル133(3)では、所定期間としての直近の時間範囲内(例えば、現在時刻から1分前までの時間)にサーバ110へ「プログラム編集依頼」、「ワーク座標設定依頼」、「工具情報設定依頼」の依頼数が多いアプリに対して、最も高い優先度「1」が設定される。これは、機械非動作中(アイドル状態)では、次の加工のための段取り等を行う必要があるため、数値制御装置10への設定を多く行っているアプリに対して、最も高い優先度「1」が設定される。
一方、アプリ優先度テーブル133(3)では、優先度「1」のアプリ以外のアプリについては、「その他」として優先度「2」を設定してもよい。
【0029】
図3Dは、工作機械30の処理状態がEDITモード(機械非動作中)の場合のアプリ優先度テーブル133(4)の一例を示す図である。
図3Dに示すように、EDITモード(機械非動作中)のアプリ優先度テーブル133(4)では、「CNC操作アプリ」に対して、最も高い優先度「1」が設定される。これは、EDITモードでは、「CNC操作アプリ」でプログラム編集を行う必要があるため、「CNC操作アプリ」に対して、最も高い優先度「1」が設定される。
一方、アプリ優先度テーブル133(4)では、「CNC操作アプリ」以外のアプリについては、「その他」として優先度「2」を設定してもよい。
以上、工作機械30の処理状態に応じて、端末優先度テーブル132(1)-132(4)、及びアプリ優先度テーブル133(1)-133(4)を例示したが、これらは一例であって、本発明はこれらに限られるものではない。ユーザにより、適宜端末優先度テーブル132(1)-132(4)、及びアプリ優先度テーブル133(1)-133(4)が設定されてもよい。
以下、端末優先度テーブル132(1)-132(4)のそれぞれを個々に区別する必要がない場合、これらをまとめて「端末優先度テーブル132」ともいう。また、アプリ優先度テーブル133(1)-133(4)のそれぞれを個々に区別する必要がない場合、これらをまとめて「アプリ優先度テーブル133」ともいう。
【0030】
<制御部120>
制御部120は、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM、CMOS(Complementary Metal-Oxide-Semiconductor)メモリ等を有し、これらはバスを介して相互に通信可能に構成される、当業者にとって公知のものである。
CPUは数値制御装置10を全体的に制御するプロセッサである。CPUは、ROMに格納されたシステムプログラム及びアプリケーションプログラムを、バスを介して読み出し、前記システムプログラム及びアプリケーションプログラムに従って数値制御装置10全体を制御する。これにより、図1に示すように、制御部120が、優先度判定部121、及び処理切替部122の機能を実現するように構成される。RAMには一時的な計算データや表示データ等の各種データが格納される。また、CMOSメモリは図示しないバッテリでバックアップされ、数値制御装置10の電源がオフされても記憶状態が保持される不揮発性メモリとして構成される。
【0031】
また、制御部120は、クライアント20から受信した処理要求に対するNC処理を実行し、工作機械30に対して動作指令を出力する。
具体的には、制御部120は、クライアント20から受信済で未処理の複数の処理要求が存在する場合、工作機械30の処理状態に応じた端末優先度テーブル132及びアプリ優先度テーブル133に基づいて、後述する優先度判定部121にクライアント20の優先度及びアプリの優先度を判定させる。制御部120は、優先度判定部121により判定されたクライアント20の優先度及びアプリの優先度に基づいて、後述する処理切替部122により複数の処理要求の順番を切り替えさせる。そして、制御部120は、切り替えられた順番で複数の処理要求の各々のNC処理を実行する。
また、制御部120は、NCデータ131の加工プログラムを読み込み、読み込んだ加工プログラムに基づいてNC処理を実行し、工作機械30に対して動作指令を出力してもよい。
【0032】
優先度判定部121は、工作機械30の処理状態に応じた端末優先度テーブル132及びアプリ優先度テーブル133に基づいて、クライアント20の優先度及びアプリの優先度を判定する。
以下、(A)クライアント20が複数で、各クライアント20が1つのアプリを実行する場合、(B)1つのクライアント20が複数のアプリを実行する場合、(C)クライアント20が複数で、各クライアント20が複数のアプリを実行する場合の各々における、工作機械30の処理状態毎のクライアント20の優先度及びアプリの優先度の判定処理について説明する。
【0033】
(A)クライアント20が複数で、各クライアント20が1つのアプリを実行する場合について
最初に、クライアント20が複数で、各クライアント20が1つのアプリを実行する場合における、優先度判定部121による工作機械30の処理状態毎のクライアント20の優先度及びアプリの優先度の判定処理について説明する。
図4Aは、2つのクライアント20が1つのアプリを実行し、数値制御装置10のサーバ110との間で処理要求をやり取りする場合の一例を示す図である。図4Aでは、クライアント20(1)及びクライアント20(2)は、数値制御装置10を操作する「CNC操作アプリ」を実行する。なお、数値制御装置10のサーバ110との間で処理要求をやり取りするクライアント20は3以上の複数でもよく、図4Aの2つのクライアント20の場合と同様である。
また、図4Aの状況は、例えば、図5に示すように、工作機械30が大型の場合で、工作機械30に2つの表示器のクライアント20(1)、20(2)が配置される場合に対応する。この場合、ワークの見え方が方向により異なるため、作業者Aは適宜位置を変えてクライアント20(1)又はクライアント20(2)を操作することがある。
以下、図4Aの状況において、優先度判定部121による工作機械30の処理状態毎のクライアント20の優先度及びアプリの優先度の判定処理について説明する。
なお、図4Aの状況の場合、クライアント20(1)、20(2)は1つのアプリ「CNC操作アプリ」しか実行しないので、優先度判定部121は、アプリ優先度テーブル133に基づくアプリの優先度の判定処理を省略する。
【0034】
<工作機械30の処理状態がMEMモード(機械動作中)又はMDIモード(機械動作中)の場合>
工作機械30の処理状態がMEMモード(機械動作中)又はMDIモード(機械動作中)の場合に、図4Aの状況において、クライアント20(1)の「CNC操作アプリ」は、例えば、現在時刻10:01から1分前までの直近の時間範囲内に座標値取得の依頼を120回、主軸情報取得の依頼を60回、及び送り軸情報取得の依頼を60回それぞれ行ったとする。一方、クライアント20(2)の「CNC操作アプリ」は、例えば、同じ現在時刻10:01から1分前までの直近の時間範囲内に座標値取得の依頼を0回、主軸情報取得の依頼を60回、及び送り軸情報取得の依頼を60回それぞれ行ったとする。この場合、クライアント20(1)の「CNC操作アプリ」の座標値取得、主軸情報取得、及び送り軸情報取得の依頼数の合計が240回であり、クライアント20(2)の「CNC操作アプリ」の座標値取得、主軸情報取得、及び送り軸情報取得の依頼数の合計が120回である。
上述したように、加工実行中は、座標値を用いて衝突の監視、主軸情報を用いてモータ負荷や焼損の監視、及び/又は送り軸情報を用いてモータ負荷や焼損の監視を行う必要があるため、優先度判定部121は、図2Aの端末優先度テーブル132(1)に基づいて、上記情報取得を最も多く行うクライアント20(1)を優先度「1」と判定する。一方、優先度判定部121は、図2Aの端末優先度テーブル132(1)に基づいて、クライアント20(2)を優先度「2」と判定する。
【0035】
<工作機械30の処理状態がJOGモード(機械動作中)又はHNDモード(機械動作中)の場合>
工作機械30の処理状態がJOGモード(機械動作中)又はHNDモード(機械動作中)の場合に、図4Aの状況において、クライアント20(1)の「CNC操作アプリ」は、例えば、現在時刻10:01から1分前までの直近の時間範囲内に座標値取得の依頼を120回、及び送り軸情報取得の依頼を60回それぞれ行ったとする。一方、クライアント20(2)の「CNC操作アプリ」は、例えば、同じ直近の時間範囲内に座標値取得の依頼を0回、及び送り軸情報取得の依頼を60回それぞれ行ったとする。この場合、クライアント20(1)の「CNC操作アプリ」の座標値取得、及び送り軸情報取得の依頼数の合計が180回であり、クライアント20(2)の「CNC操作アプリ」の座標値取得、及び送り軸情報取得の依頼数の合計が60回である。
上述したように、加工実行中は、座標値を用いて衝突の監視、及び/又は送り軸情報を用いてモータ負荷や焼損の監視を行うことから、優先度判定部121は、図2Bの端末優先度テーブル132(2)に基づいて、上記情報取得を最も多く行うクライアント20(1)を優先度「1」と判定する。一方、優先度判定部121は、図2Bの端末優先度テーブル132(2)に基づいて、クライアント20(2)を優先度「2」と判定する。
【0036】
<工作機械30の処理状態がMEMモード(機械非動作中)、MDIモード(機械非動作中)、JOGモード(機械非動作中)、又はHNDモード(機械非動作中)の場合>
工作機械30の処理状態がMEMモード(機械非動作中)、MDIモード(機械非動作中)、JOGモード(機械非動作中)、又はHNDモード(機械非動作中)の場合に、図4Aの状況において、クライアント20(1)の「CNC操作アプリ」は、例えば、現在時刻10:01から1分前までの直近の時間範囲内にプログラム編集依頼を3回、ワーク座標設定依頼を2回、及び工具情報設定依頼を1回それぞれ行ったとする。また、クライアント20(1)の「工具設定アプリ」は、同じ直近の時間範囲内に工具情報設定依頼を1回行ったとする。一方、クライアント20(2)の「CNC操作アプリ」は、同じ直近の時間範囲内にプログラム編集依頼を2回、ワーク座標設定依頼を0回、及び工具情報設定依頼を0回それぞれ行ったとする。この場合、クライアント20(1)の「CNC操作アプリ」及び「工具設定アプリ」のプログラム編集依頼、ワーク座標設定依頼、及び工具情報設定依頼の依頼数の合計が7回であり、クライアント20(2)の「CNC操作アプリ」のプログラム編集依頼、ワーク座標設定依頼、及び工具情報設定依頼の依頼数の合計が2回である。
上述したように、機械非動作中は、次の加工等のための段取りを行っていることから、優先度判定部121は、図2Cの端末優先度テーブル132(3)に基づいて、数値制御装置10への設定を多く行っているクライアント20(1)を優先度「1」と判定する。一方、優先度判定部121は、図2Cの端末優先度テーブル132(3)に基づいて、クライアント20(2)を優先度「2」と判定する。
【0037】
<工作機械30の処理状態がEDITモード(機械非動作中)の場合>
工作機械30の処理状態がEDITモード(機械非動作中)の場合に、図4Aの状況において、例えば、クライアント20(1)の「CNC操作アプリ」は、現在時刻10:01から1分前までの直近の時間範囲内にプログラム編集依頼を3回、及びカスタムマクロ変数設定依頼を1回それぞれ行ったとする。一方、クライアント20(2)の「CNC操作アプリ」は、同じ直近の時間範囲内にプログラム編集依頼を2回、及びカスタムマクロ変数設定依頼を0回それぞれ行ったとする。この場合、クライアント20(1)の「CNC操作アプリ」のプログラム編集依頼、及びカスタムマクロ変数設定依頼の依頼数の合計が4回であり、クライアント20(2)の「CNC操作アプリ」のプログラム編集依頼、及びカスタムマクロ変数設定依頼の依頼数の合計が2回である。
上述したように、EDITモードは、プログラム編集を行いながら、カスタムマクロ変数を設定する場合があることから、優先度判定部121は、図2Dの端末優先度テーブル132(4)に基づいて、クライアント20(1)を優先度「1」と判定する。一方、優先度判定部121は、図2Dの端末優先度テーブル132(4)に基づいて、クライアント20(2)を優先度「2」と判定する。
【0038】
(B)1つのクライアント20が複数のアプリを実行する場合について
次に、クライアント20が1つで複数のアプリを実行する場合における、優先度判定部121による工作機械30の処理状態毎のクライアント20の優先度及びアプリの優先度の判定処理について説明する。
図4Bは、1つのクライアント20が2つのアプリを実行し、数値制御装置10のサーバ110との間で処理要求をやり取りする場合の一例を示す図である。図4Bでは、クライアント20(1)は、「CNC操作アプリ」及び「工具設定アプリ」を実行する。なお、数値制御装置10のサーバ110との間で処理要求をやり取りするクライアント20はクライアント20(2)-20(N)でもよく、図4Bのクライアント20(1)の場合と同様である。
また、クライアント20(1)は、「CNC操作アプリ」及び「工具設定アプリ」の2つを実行したが、3以上の複数のアプリを実行してもよい。なお、この場合、実行する複数のアプリには、数値制御装置10を操作する「CNC操作アプリ」が含まれる。
以下、図4Bの状況において、優先度判定部121による工作機械30の処理状態毎のクライアント20の優先度及びアプリの優先度の判定処理について説明する。
なお、図4Bの状況の場合、数値制御装置10のサーバ110とやり取りする端末がクライアント20(1)のみであることから、優先度判定部121は、端末優先度テーブル132に基づくクライアントの優先度の判定処理を省略する。
【0039】
<工作機械30の処理状態がMEMモード(機械動作中)又はMDIモード(機械動作中)の場合>
工作機械30の処理状態がMEMモード(機械動作中)又はMDIモード(機械動作中)の場合に、図4Bの状況において、優先度判定部121は、図3Aのアプリ優先度テーブル133(1)に基づいて、クライアント20(1)の「CNC操作アプリ」を優先度「1」と判定し、「工具設定アプリ」を優先度「2」と判定する。
【0040】
<工作機械30の処理状態がJOGモード(機械動作中)又はHNDモード(機械動作中)の場合>
工作機械30の処理状態がJOGモード(機械動作中)又はHNDモード(機械動作中)の場合に、図4Bの状況において、優先度判定部121は、図3Bのアプリ優先度テーブル133(2)に基づいて、クライアント20(1)の「CNC操作アプリ」を優先度「1」と判定し、「工具設定アプリ」を優先度「2」と判定する。
【0041】
<工作機械30の処理状態がMEMモード(機械非動作中)、MDIモード(機械非動作中)、JOGモード(機械非動作中)、又はHNDモード(機械非動作中)の場合>
工作機械30の処理状態がMEMモード(機械非動作中)、MDIモード(機械非動作中)、JOGモード(機械非動作中)、又はHNDモード(機械非動作中)の場合に、図4Bの状況において、クライアント20(1)の「CNC操作アプリ」は、例えば、現在時刻10:01から1分前までの直近の時間範囲内にプログラム編集依頼を3回、ワーク座標設定依頼を2回、及び工具情報設定依頼を1回それぞれ行ったとする。一方、クライアント20(1)の「工具設定アプリ」は、同じ直近の時間範囲内に工具情報設定依頼を2回行ったとする。この場合、クライアント20(1)の「CNC操作アプリ」のプログラム編集依頼、ワーク座標設定依頼、及び工具情報設定依頼の依頼数の合計が6回であり、クライアント20(1)の「工具設定アプリ」のプログラム編集依頼、ワーク座標設定依頼、及び工具情報設定依頼の依頼数の合計が2回である。
上述したように、機械非動作中は、次の加工等のための段取りを行う必要があるため、優先度判定部121は、図3Cのアプリ優先度テーブル133(3)に基づいて、数値制御装置10への設定を多く行っている「CNC操作アプリ」を優先度「1」と判定する。一方、優先度判定部121は、図3Cのアプリ優先度テーブル133(3)に基づいて、「工具設定アプリ」を優先度「2」と判定する。
【0042】
<工作機械30の処理状態がEDITモード(機械非動作中)の場合>
工作機械30の処理状態がEDITモード(機械非動作中)の場合に、図4Bの状況において、優先度判定部121は、図3Dのアプリ優先度テーブル133(4)に基づいて、クライアント20(1)の「CNC操作アプリ」を優先度「1」と判定し、「工具設定アプリ」を優先度「2」と判定する。
【0043】
(C)クライアント20が複数で、各クライアント20が複数のアプリを実行する場合について
次に、クライアント20が複数で、各クライアント20が複数のアプリを実行する場合における、優先度判定部121による工作機械30の処理状態毎のクライアント20の優先度及びアプリの優先度の判定処理について説明する。
図4Cは、2つのクライアント20が2つのアプリを実行し、数値制御装置10のサーバ110との間で処理要求をやり取りする場合の一例を示す図である。図4Cでは、クライアント20(1)は、「CNC操作アプリ」及び「工具設定アプリ」を実行し、クライアント20(2)は、「CNC操作アプリ」及び「データロギングアプリ」を実行する。なお、数値制御装置10のサーバ110との間で処理要求をやり取りするクライアント20は3以上の複数でもよく、各クライアント20は3以上のアプリを実行してもよい。なお、この場合、実行する複数のアプリには、数値制御装置10を操作する「CNC操作アプリ」が含まれる。
以下、図4Cの状況において、優先度判定部121による工作機械30の処理状態毎のクライアント20の優先度及びアプリの優先度の判定処理について説明する。
【0044】
<工作機械30の処理状態がMEMモード(機械動作中)又はMDIモード(機械動作中)の場合>
工作機械30の処理状態がMEMモード(機械動作中)又はMDIモード(機械動作中)の場合に、図4Cの状況において、クライアント20(1)の「CNC操作アプリ」は、例えば、現在時刻10:01から1分前までの直近の時間範囲内に座標値取得の依頼を120回、主軸情報取得の依頼を60回、及び送り軸情報取得の依頼を60回それぞれ行ったとする。一方、クライアント20(2)の「CNC操作アプリ」は、例えば、同じ現在時刻10:01から1分前までの直近の時間範囲内に座標値取得の依頼を0回、主軸情報取得の依頼を60回、及び送り軸情報取得の依頼を60回それぞれ行ったとする。この場合、クライアント20(1)の「CNC操作アプリ」の座標値取得、主軸情報取得、及び送り軸情報取得の依頼数の合計が240回であり、クライアント20(2)の「CNC操作アプリ」の座標値取得、主軸情報取得、及び送り軸情報取得の依頼数の合計が120回である。
上述したように、加工実行中は、座標値を用いて衝突の監視、主軸情報を用いてモータ負荷や焼損の監視、及び/又は送り軸情報を用いてモータ負荷や焼損の監視を行う必要があるため、優先度判定部121は、図2Aの端末優先度テーブル132(1)に基づいて、上記情報取得を最も多く行うクライアント20(1)を優先度「1」と判定する。一方、優先度判定部121は、図2Aの端末優先度テーブル132(1)に基づいて、クライアント20(2)を優先度「2」と判定する。
【0045】
次に、優先度判定部121は、図3Aのアプリ優先度テーブル133(1)に基づいて、クライアント20(1)、20(2)の各々で実行されるアプリの優先度を判定する。
具体的には、優先度判定部121は、図3Aのアプリ優先度テーブル133(1)に基づいて、優先度「1」と判定されたクライアント20(1)の「CNC操作アプリ」を優先度「1」と判定し、「工具設定アプリ」を優先度「2」と判定する。また、優先度判定部121は、図3Aのアプリ優先度テーブル133(1)に基づいて、優先度「2」と判定されたクライアント20(2)の「CNC操作アプリ」を優先度「1」と判定し、「データロギングアプリ」を優先度「2」と判定する。
【0046】
<工作機械30の処理状態がJOGモード(機械動作中)又はHNDモード(機械動作中)の場合>
工作機械30の処理状態がJOGモード(機械動作中)又はHNDモード(機械動作中)の場合に、図4Cの状況において、クライアント20(1)の「CNC操作アプリ」は、例えば、現在時刻10:01から1分前までの直近の時間範囲内に座標値取得の依頼を120回、及び送り軸情報取得の依頼を60回それぞれ行ったとする。一方、クライアント20(2)の「CNC操作アプリ」は、例えば、同じ直近の時間範囲内に座標値取得の依頼を0回、及び送り軸情報取得の依頼を60回それぞれ行ったとする。この場合、クライアント20(1)の「CNC操作アプリ」の座標値取得、及び送り軸情報取得の依頼数の合計が180回であり、クライアント20(2)の「CNC操作アプリ」の座標値取得、及び送り軸情報取得の依頼数の合計が60回である。
上述したように、加工実行中は、座標値を用いて衝突の監視、及び/又は送り軸情報を用いてモータ負荷や焼損の監視を行う必要があるため、優先度判定部121は、図2Bの端末優先度テーブル132(2)に基づいて、上記情報取得を最も多く行うクライアント20(1)を優先度「1」と判定する。一方、優先度判定部121は、図2Bの端末優先度テーブル132(2)に基づいて、クライアント20(2)を優先度「2」と判定する。
【0047】
次に、優先度判定部121は、図3Bのアプリ優先度テーブル133(2)に基づいて、クライアント20(1)、20(2)の各々で実行されるアプリの優先度を判定する。
具体的には、優先度判定部121は、図3Bのアプリ優先度テーブル133(2)に基づいて、優先度「1」と判定されたクライアント20(1)の「CNC操作アプリ」を優先度「1」と判定し、「工具設定アプリ」を優先度「2」と判定する。また、優先度判定部121は、図3Bのアプリ優先度テーブル133(2)に基づいて、優先度「2」と判定されたクライアント20(2)の「CNC操作アプリ」を優先度「1」と判定し、「データロギングアプリ」を優先度「2」と判定する。
【0048】
<工作機械30の処理状態がMEMモード(機械非動作中)、MDIモード(機械非動作中)、JOGモード(機械非動作中)、又はHNDモード(機械非動作中)の場合>
工作機械30の処理状態がMEMモード(機械非動作中)、MDIモード(機械非動作中)、JOGモード(機械非動作中)、又はHNDモード(機械非動作中)の場合に、図4Cの状況において、クライアント20(1)の「CNC操作アプリ」は、例えば、現在時刻10:01から1分前までの直近の時間範囲内にプログラム編集依頼を3回、ワーク座標設定依頼を2回、及び工具情報設定依頼を1回それぞれ行ったとする。また、クライアント20(1)の「工具設定アプリ」は、同じ直近の時間範囲内に工具情報設定依頼を1回行ったとする。一方、クライアント20(2)の「CNC操作アプリ」は、同じ直近の時間範囲内にプログラム編集依頼を2回、ワーク座標設定依頼を0回、及び工具情報設定依頼を0回それぞれ行ったとする。この場合、クライアント20(1)の「CNC操作アプリ」及び「工具設定アプリ」のプログラム編集依頼、ワーク座標設定依頼、及び工具情報設定依頼の依頼数の合計が7回であり、クライアント20(2)の「CNC操作アプリ」のプログラム編集依頼、ワーク座標設定依頼、及び工具情報設定依頼の依頼数の合計が2回である。
上述したように、機械非動作中は、次の加工等のための段取りを行う必要があるため、優先度判定部121は、図2Cの端末優先度テーブル132(3)に基づいて、数値制御装置10への設定を多く行っているクライアント20(1)を優先度「1」と判定する。一方、優先度判定部121は、図2Cの端末優先度テーブル132(3)に基づいて、クライアント20(2)を優先度「2」と判定する。
【0049】
次に、優先度判定部121は、図3Cのアプリ優先度テーブル133(3)に基づいて、クライアント20(1)、20(2)の各々で実行されるアプリの優先度を判定する。
具体的には、上述したように、優先度「1」と判定されたクライアント20(1)の「CNC操作アプリ」は前記直近の時間範囲内にプログラム編集依頼、ワーク座標設定依頼、及び工具情報設定依頼を合計6回行い、「工具設定アプリ」」は前記直近の時間範囲内に工具情報設定要求を合計1回行った。このことから、優先度判定部121は、図3Cのアプリ優先度テーブル133(3)に基づいて、優先度「1」と判定されたクライアント20(1)の「CNC操作アプリ」を優先度「1」と判定し、「工具設定アプリ」を優先度「2」と判定する。
一方、優先度「2」と判定されたクライアント20(2)の「CNC操作アプリ」は前記直近の時間範囲内にプログラム編集依頼、ワーク座標設定依頼、及び工具情報設定依頼を合計2回行った。このことから、優先度判定部121は、図3Cのアプリ優先度テーブル133(3)に基づいて、優先度「2」と判定されたクライアント20(2)の「CNC操作アプリ」を優先度「1」と判定し、「データロギングアプリ」を優先度「2」と判定する。
【0050】
<工作機械30の処理状態がEDITモード(機械非動作中)の場合>
工作機械30の処理状態がEDITモード(機械非動作中)の場合に、図4Cの状況において、例えば、クライアント20(1)の「CNC操作アプリ」は、現在時刻10:01から1分前までの直近の時間範囲内にプログラム編集依頼を3回、及びカスタムマクロ変数設定依頼を1回それぞれ行ったとする。一方、クライアント20(2)の「CNC操作アプリ」は、同じ直近の時間範囲内にプログラム編集依頼を2回、及びカスタムマクロ変数設定依頼を0回それぞれ行ったとする。この場合、クライアント20(1)の「CNC操作アプリ」のプログラム編集依頼、及びカスタムマクロ変数設定依頼の依頼数の合計が4回であり、クライアント20(2)の「CNC操作アプリ」のプログラム編集依頼、及びカスタムマクロ変数設定依頼の依頼数の合計が2回である。
上述したように、EDITモードは、プログラム編集を行いながら、カスタムマクロ変数を設定する場合があることから、優先度判定部121は、図2Dの端末優先度テーブル132(4)に基づいて、クライアント20(1)を優先度「1」と判定する。一方、優先度判定部121は、図2Dの端末優先度テーブル132(4)に基づいて、クライアント20(2)を優先度「2」と判定する。
【0051】
次に、優先度判定部121は、図3Dのアプリ優先度テーブル133(4)に基づいて、クライアント20(1)、20(2)の各々で実行されるアプリの優先度を判定する。
具体的には、優先度判定部121は、図3Dのアプリ優先度テーブル133(4)に基づいて、優先度「1」と判定されたクライアント20(1)の「CNC操作アプリ」を優先度「1」と判定し、「工具設定アプリ」を優先度「2」と判定する。また、優先度判定部121は、図3Dのアプリ優先度テーブル133(4)に基づいて、優先度「2」と判定されたクライアント20(2)の「CNC操作アプリ」を優先度「1」と判定し、「データロギングアプリ」を優先度「2」と判定する。
【0052】
処理切替部122は、優先度判定部121により判定されたクライアント20の優先度及びアプリの優先度に基づいて、クライアント20から受信した未処理の複数の処理要求の各々のNC処理の順番を切り替える。
具体的には、処理切替部122は、例えば、優先度判定部121により判定されたクライアント20の優先度及びアプリの優先度に基づいて、最も高い優先度「1」と判定されたクライアント20から受信した未処理の処理要求、又は優先度「1」と判定されたクライアント20のうち優先度「1」と判定されたアプリの未処理の処理要求のNC処理から順に処理するようにその処理順番を切り替える。
【0053】
図6は、図4Cの場合におけるクライアント20の優先度及びアプリの優先度に基づく複数の処理要求のNC処理の順番の切り替えの一例を示す図である。すなわち、図6は、図4Cにしめすように、クライアント20が2つの場合で、各クライアント20が2以上のアプリを実行する場合である。
図6の1段目は、クライアント20(1)及びクライアント20(2)から受信した順番に未処理の複数の処理要求を示す。図6の2段目は、優先度判定部121により判定されたクライアント20の優先度に基づいて、優先度の高いクライアント20の順に切り替えられた未処理の処理要求の順番を示す。図6の3段目は、図6の2段目のクライアント20の処理要求のうち、クライアント20(1)からの処理要求を示す。図6の4段目は、優先度判定部121により判定されたアプリの優先度に基づいて、クライアント20(1)の未処理の処理要求のうち、優先度の高いアプリの順に切り替えられた未処理の処理要求の順番を示す。
【0054】
そうすることで、数値制御装置10は、工作機械30の処理状態毎の処理内容によって、優先すべきクライアント20又はアプリの処理を確実に実行することができ、即行うべき処理の遅延を抑制することができる。
なお、複数の処理要求は、クライアント20から一度に受信されたものでもよく、順次にクライアント20から受信され数値制御装置10に含まれるRAM等のメモリ(図示しない)に保持されたものでもよい。
また、図6は、図4Cの場合を示したが、図4A及び図4Bの場合についても同様である。
【0055】
<数値制御装置10の制御処理>
次に、本実施形態に係る数値制御装置10の制御処理に係る動作について説明する。
図7は、数値制御装置10の制御処理について説明するフローチャートである。
【0056】
ステップS11において、優先度判定部121は、工作機械30の処理状態に応じて、端末優先度テーブル132及びアプリ優先度テーブル133を読み込む。
【0057】
ステップS12において、優先度判定部121は、ステップS11で読み込まれた端末優先度テーブル132に基づいて、クライアント20の優先度を判定する。
【0058】
ステップS13において、優先度判定部121は、ステップS11で読み込まれたアプリ優先度テーブル133に基づいて、ステップS12で優先度が判定されたクライアント20毎にアプリの優先度を判定する。
【0059】
ステップS14において、処理切替部122は、ステップS12及びステップS13で判定されたクライアント20の優先度及びアプリの優先度に基づいて、未処理の複数の処理要求の各々のNC処理の順番を優先度が高い順番に切り替える。
【0060】
ステップS15において、制御部120は、ステップS14で切り替えられた優先度が高い処理要求の順番でNC処理を実行する。
【0061】
以上により、一実施形態の数値制御装置10は、クライアント20から受信した未処理の複数の処理要求がある場合、工作機械30の処理状態に応じた端末優先度テーブル132及びアプリ優先度テーブル133に基づいて、クライアント20の優先度及びアプリの優先度を判定する。数値制御装置10は、判定したクライアント20の優先度及びアプリの優先度に基づいて、未処理の複数の処理要求の各々のNC処理を優先度が高い順番に切り替えて、優先度が高い処理要求のNC処理から実行する。
これにより、数値制御装置10は、工作機械30の処理状態毎の処理内容によって、優先すべきクライアント20又はアプリの処理を確実に実行することができ、即行うべき処理の遅延を抑制することができる。
【0062】
以上、一実施形態について説明したが、数値制御装置10は、上述の実施形態に限定されるものではなく、目的を達成できる範囲での変形、改良等を含む。
【0063】
<変形例1>
上述の実施形態では、数値制御装置10は、工作機械30の処理状態に応じた端末優先度テーブル132及びアプリ優先度テーブル133を用いて判定したクライアント20の優先度及びアプリの優先度に基づいて、各クライアント20から受信した未処理の複数の処理要求の各々のNC処理の順番を切り替えたが、これに限定されない。例えば、数値制御装置10は、数値制御装置10の処理負荷、クライアント20との間の通信負荷、及びサーバ110の処理負荷を監視してもよい。そして、数値制御装置10は、いずれかの負荷が所定値より高い場合に、端末優先度テーブル132及びアプリ優先度テーブル133に基づいてクライアント20の優先度及びアプリの優先度を判定し、各クライアント20から受信した未処理の複数の処理要求の各々のNC処理の順番を切り替えるようにしてもよい。
図8は、制御システムの機能的構成例を示す機能ブロック図である。
図8に示すように、数値制御装置10の制御部120は、数値制御装置10の処理負荷、クライアント20との間の通信負荷、及びサーバ110の処理負荷を監視する負荷監視部123の機能を有する。そして、負荷監視部123は、監視結果を優先度判定部121に出力する。優先度判定部121は、負荷監視部123からの監視結果に基づいて、数値制御装置10の処理負荷、クライアント20とサーバ110との間の通信負荷、及びサーバ110の処理負荷のいずれかの負荷が所定値より高い場合、工作機械30の処理状態に応じた端末優先度テーブル132及びアプリ優先度テーブル133を読み込む。優先度判定部121は、工作機械30の処理状態に応じた端末優先度テーブル132及びアプリ優先度テーブル133に基づいて、クライアント20の優先度及びアプリの優先度を判定する。処理切替部122は、判定されたクライアント20の優先度及びアプリの優先度に基づいて、クライアント20から受信した未処理の複数の処理要求の各々のNC処理の順番を切り替える。
そうすることで、数値制御装置10は、数値制御装置10の処理負荷、クライアント20とサーバ110との間の通信負荷、及びサーバ110の処理負荷のいずれかの負荷が高くなった場合でも、工作機械30の処理状態毎の処理内容によって、優先すべきクライアント20又はアプリの処理を確実に実行することができ、即行うべき処理の遅延を抑制することができる。
なお、所定値は、数値制御装置10の処理能力やクライアント20からの処理要求の受信頻度等に応じて適宜設定されてもよい。
【0064】
<変形例2>
また例えば、上述の実施形態では、数値制御装置10は、工作機械30の処理状態に応じた端末優先度テーブル132及びアプリ優先度テーブル133に基づいて、クライアント20の優先度及びアプリの優先度を判定したが、これに限定されない。例えば、切り替えた後に、工作機械30の処理状態が変化した場合、数値制御装置10は、変化後のクライアント20の優先度及びアプリの優先度の判定に基づいて、クライアント20の優先度及びアプリの優先度を再判定してもよい。そして、数値制御装置10は、再判定したクライアント20の優先度及びアプリの優先度に基づいて、クライアント20からの未処理の複数の処理要求の各々のNC処理の順番を再度切り替えてもよい。
【0065】
<変形例3>
また例えば、上述の実施形態では、数値制御装置10は、工作機械30の処理状態に応じた端末優先度テーブル132(1)-132(4)及びアプリ優先度テーブル133(1)-133(4)を有したが、これに限定されない。例えば、産業機械がロボットの場合、制御装置としてのロボット制御装置(図示しない)は、ロボット(図示しない)の処理状態に応じた端末優先度テーブル及びアプリ優先度テーブルを有してもよい。
【0066】
図9Aは、ロボットの処理状態が自動運転(MEM)モード(ロボット動作中)の場合の端末優先度テーブルの一例を示す図である。
図9Aに示すように、自動運転(MEM)モード(ロボット動作中)の端末優先度テーブルでは、所定期間としての直近の時間範囲内(例えば、現在時刻から1分前までの間)にサーバ110へ「ロボット各部の座標値取得」、「ロボット各部のモータ情報取得」の依頼数が多いアプリが存在する端末(クライアント20)に対して、最も高い優先度「1」が設定される。また、自動運転(MEM)モード(ロボット動作中)の端末優先度テーブルでは、優先度「1」のクライアント20以外の端末については、「その他」として優先度「2」を設定してもよい。
ここで、「ロボット各部の座標値取得」は、例えば、ロボットのアーム等が周辺機材と干渉が発生しないように監視するための依頼である。また、「ロボット各部のモータ情報」は、例えば、負荷が高くなりすぎてないかを監視しモータ故障を防ぐための依頼である。
すなわち、直近の時間範囲内(例えば、現在時刻から1分前までの間)に、ロボット動作中に意識すべき「ロボット各部の座標値取得」、及び「ロボット各部のモータ情報取得」の依頼数が最も多いクライアント20が、高い優先度「1」に設定される。
【0067】
図9Bは、ロボットの処理状態が自動運転(MEM)モード(ロボット非動作中)の場合の端末優先度テーブルの一例を示す図である。
図9Bに示すように、自動運転(MEM)モード(ロボット非動作中)の端末優先度テーブルでは、所定期間としての直近の時間範囲内(例えば、現在時刻から1分前までの間)にサーバ110へ「ロボット各部の最大稼動範囲の設定」、「ロボット各部の最大稼動速度の設定」、「ロボット動作プログラムの編集」、「ロボット動作プログラムの選択と設定」の依頼数が多いアプリが存在する端末(クライアント20)に対して、最も高い優先度「1」が設定される。また、自動運転(MEM)モード(ロボット非動作中)の端末優先度テーブルでは、優先度「1」のクライアント20以外の端末については、「その他」として優先度「2」を設定してもよい。
ここで、「ロボット各部の最大稼動範囲の設定」は、例えば、事故防止に繋がる設定のための依頼である。また、「ロボット各部の最大稼動速度の設定」は、衝突が発生しても被害を最小にする設定のための依頼である。また、「ロボット動作プログラムの編集」は、ロボット動作を指定設定するための依頼である。また、「ロボット動作プログラムの選択と設定」は、ロボットに何の動作をさせるかのプログラムの選択と設定をするための依頼である。
すなわち、ロボット非動作中の場合はロボットに各種設定を行っていることから、直近の時間範囲内(例えば、現在時刻から1分前までの間)に、「ロボット各部の最大稼動範囲の設定」、「ロボット各部の最大稼動速度の設定」、「ロボット動作プログラムの編集」、「ロボット動作プログラムの選択と設定」の依頼数が多いクライアント20が、高い優先度「1」に設定される。
【0068】
図10Aは、ロボットの処理状態が自動運転(MEM)モード(ロボット動作中)の場合のアプリ優先度テーブルの一例を示す図である。
図10Aに示すように、自動運転(MEM)モード(ロボット動作中)のアプリ優先度テーブルでは、所定のアプリケーションとしてロボット制御装置(図示しない)を操作する「ロボット操作アプリ」に対して、最も高い優先度「1」が設定される。そして、自動運転(MEM)モード(ロボット動作中)のアプリ優先度テーブルでは、「ロボット操作アプリ」以外のアプリ(例えば、データロギングアプリ等)については、「その他」として優先度「2」を設定してもよい。
【0069】
図10Bは、ロボットの処理状態が自動運転(MEM)モード(ロボット非動作中)の場合のアプリ優先度テーブルの一例を示す図である。
図10Bに示すように、自動運転(MEM)モード(ロボット非動作中)のアプリ優先度テーブルでは、所定期間としての直近の時間範囲内(例えば、現在時刻から1分前までの間)にサーバ110へ「ロボット各部の最大稼動範囲の設定」、「ロボット各部の最大稼動速度の設定」、「ロボット動作プログラムの編集」、「ロボット動作プログラムの選択と設定」の依頼数が多いアプリに対して、高い優先度「1」が設定される。また、自動運転(MEM)モード(ロボット非動作中)の端末優先度テーブルでは、優先度「1」の「ロボット操作アプリ」以外のアプリについては、「その他」として優先度「2」を設定してもよい。
以上、ロボットの処理状態に応じて、複数の端末優先度テーブル及びアプリ優先度テーブルを例示したが、これらは一例であって、これらに限られるものではない。ユーザにより、適宜端末優先度テーブル及びアプリ優先度テーブルを設定してもよい。
なお、図9A及び図9Bの端末優先度テーブルと、図10A及び図10Bのアプリ優先度テーブルとを用いたロボット制御装置(図示しない)の判定処理は、数値制御装置10の場合と同様であり、説明は省略する。
【0070】
なお、一実施形態に係る数値制御装置10に含まれる各機能は、ハードウェア、ソフトウェア又はこれらの組み合わせによりそれぞれ実現することができる。ここで、ソフトウェアによって実現されるとは、コンピュータがプログラムを読み込んで実行することにより実現されることを意味する。なお、電子回路により実現してもよい。
【0071】
プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(Non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(Tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えば、フレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば、光磁気ディスク)、CD-ROM(Read Only Memory)、CD-R、CD-R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAMを含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(Transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は、無線通信路を介して、プログラムをコンピュータに供給できる。
【0072】
なお、記録媒体に記録されるプログラムを記述するステップは、その順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【0073】
以上を換言すると、本開示の制御装置、及び制御方法は、次のような構成を有する各種各様の実施形態を取ることができる。
【0074】
(1)本開示の数値制御装置10は、複数のクライアント20からの工作機械30に対する処理要求の処理を実行する制御装置であって、複数のクライアント20から複数の処理要求を受信した場合、工作機械30の処理状態に応じて複数のクライアント20の各々の優先度を判定する優先度判定部121と、優先度判定部121により判定された複数のクライアント20の各々の優先度に基づいて、複数の処理要求の各々の処理の順番を切り替える処理切替部122と、を備える。
この数値制御装置10によれば、工作機械30の処理状態毎の処理内容によって、優先すべきクライアント20の処理を確実に実行することができ、即行うべき処理の遅延を抑制することができる。
【0075】
(2) (1)に記載の数値制御装置10において、工作機械30の処理状態毎に、所定期間内において予め設定された処理要求の依頼回数に応じてクライアントの優先度を示す端末優先度情報を格納した端末優先度テーブル132をさらに備え、優先度判定部121は、工作機械30の処理状態に応じた端末優先度情報に基づいて、複数のクライアント20の各々の優先度を判定してもよい。
そうすることで、工作機械30の処理状態毎に優先すべきクライアント20の処理を確実にすることができ、即行うべき処理の遅延を抑制することができる。
【0076】
(3) (1)又は(2)に記載の数値制御装置10において、優先度判定部121は、工作機械30の処理状態に応じて複数のクライアント20の各々で実行されるアプリケーションの優先度を判定し、処理切替部122は、複数のクライアント20の各々の優先度及びアプリケーションの優先度に基づいて、複数の処理要求の各々の処理の順番を切り替えてもよい。
そうすることで、工作機械30の処理状態毎の処理内容によって、優先すべきクライアント20又はアプリの処理を確実に実行することができ、即行うべき処理の遅延を抑制することができる。
【0077】
(4) (3)に記載の数値制御装置10において、工作機械30の処理状態毎に、所定期間内において予め設定された処理要求の依頼回数、又は所定のアプリケーションに応じてアプリケーションの優先度を示すアプリ優先度情報を格納したアプリ優先度テーブル133をさらに備え、優先度判定部121は、工作機械30の処理状態に応じたアプリ優先度情報に基づいて、アプリケーションの優先度を判定してもよい。
そうすることで、工作機械30の処理状態毎に優先すべきクライアント20又はアプリの処理を確実にすることができ、即行うべき処理の遅延を抑制することができる。
【0078】
(5) (1)から(4)のいずれかに記載の数値制御装置10において、複数のクライアント20の各々との間で通信を行うサーバ110と、数値制御装置10における処理負荷、複数のクライアント20の各々との間の通信負荷、及びサーバ110における処理負荷の少なくとも1つの負荷を監視する負荷監視部123と、をさらに備え、優先度判定部121は、負荷監視部123により監視された負荷が所定値より大きい場合、少なくとも工作機械30の処理状態に応じた複数のクライアント20の各々の優先度を判定してもよい。
そうすることで、数値制御装置10の処理負荷、クライアント20とサーバ110との間の通信負荷、及びサーバ110の処理負荷のいずれかの負荷が高くなった場合でも、工作機械30の処理状態毎に優先すべきクライアント20又はアプリの処理を確実にすることができ、即行うべき処理の遅延を抑制することができる。
【0079】
(6) (1)から(5)のいずれかに記載の数値制御装置10において、産業機械は工作機械30であり、制御装置は数値制御装置10であってもよい。
そうすることで、産業機械が工作機械30の場合に、(1)から(5)の効果を奏することができる。
【0080】
(7) (1)から(5)のいずれかに記載の数値制御装置10において、産業機械は産業用ロボットであり、制御装置はロボット制御装置であってもよい。
そうすることで、産業機械が産業用ロボットの場合に、(1)から(5)の効果を奏することができる。
【0081】
(8)本開示の制御方法は、複数のクライアント20からの工作機械30に対する処理要求の処理を実行する制御方法であって、複数のクライアント20から複数の処理要求を受信した場合、工作機械30の処理状態に応じて複数のクライアント20の各々の優先度を判定する優先度判定ステップと、複数のクライアント20の各々の優先度に基づいて、複数の処理要求の各々の処理の順番を切り替える処理切替ステップと、を備える。
この制御方法によれば、(1)と同様の効果を奏することができる。
【符号の説明】
【0082】
1 制御システム
10 数値制御装置
20(1)-20(N) クライアント
30 工作機械
110 サーバ
120 制御部
121 優先度判定部
122 処理切替部
130 記憶部
131 NCデータ
132(1)-132(4) 端末優先度テーブル
133(1)-133(4) アプリ優先度テーブル
図1
図2A
図2B
図2C
図2D
図3A
図3B
図3C
図3D
図4A
図4B
図4C
図5
図6
図7
図8
図9A
図9B
図10A
図10B