JP7436192B2 - 制御装置及び産業機械 - Google Patents

制御装置及び産業機械 Download PDF

Info

Publication number
JP7436192B2
JP7436192B2 JP2019220079A JP2019220079A JP7436192B2 JP 7436192 B2 JP7436192 B2 JP 7436192B2 JP 2019220079 A JP2019220079 A JP 2019220079A JP 2019220079 A JP2019220079 A JP 2019220079A JP 7436192 B2 JP7436192 B2 JP 7436192B2
Authority
JP
Japan
Prior art keywords
cache
command
unit
subprogram
cache memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019220079A
Other languages
English (en)
Other versions
JP2021089620A (ja
Inventor
和幸 三上
秀雄 荻野
武徳 小野
学 斉藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fanuc Corp
Original Assignee
Fanuc Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fanuc Corp filed Critical Fanuc Corp
Priority to JP2019220079A priority Critical patent/JP7436192B2/ja
Priority to US17/101,466 priority patent/US11366755B2/en
Priority to DE102020131816.2A priority patent/DE102020131816A1/de
Priority to CN202011403536.XA priority patent/CN112925262A/zh
Publication of JP2021089620A publication Critical patent/JP2021089620A/ja
Application granted granted Critical
Publication of JP7436192B2 publication Critical patent/JP7436192B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/31From computer integrated manufacturing till monitoring
    • G05B2219/31124Interface between communication network and process control, store, exchange data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/45Caching of specific data in cache memory
    • G06F2212/452Instruction code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Automation & Control Theory (AREA)
  • Numerical Control (AREA)

Description

本発明は、制御装置及び産業機械に関する。
工作機械や産業用ロボット等を含む産業機械は、数値制御装置(CNC:Computerized Numerical Control)及びロボットコントローラ等の制御装置からの信号に基づいて稼働する。制御装置は、例えば、産業機械に組み込まれて産業機械と共に提供される。
産業機械を制御する制御装置には、産業機械の動作に係る動作プログラムを記憶している。動作プログラムは、例えば、数値制御装置の場合には、加工プログラムであり、ロボットコントローラの場合には、ロボットを制御するためのロボットプログラムである。加工プログラムの場合には、軸を動作させる指令や、数値計算が含まれており、加工プログラムを実行することにより、ワークを加工する。そして、加工プログラムは、例えば、記憶媒体等の記憶領域に格納されており、加工処理時には、加工プログラムをキャッシュメモリに展開して実行することが行われている。ロボットプログラムの場合は、例えば、関節軸に係る指令が含まれており、ロボットプログラムを実行することによりロボットを動作させる。ロボットプログラムも加工プログラムと同様に、例えば、記憶媒体等の記憶領域に格納されており、ロボット制御時には、ロボットプログラムをキャッシュメモリに展開して実行することが行われる。
プログラムをキャッシュメモリに展開する一例として、中央処理装置が実行するプログラムの命令データを、予め主記憶プログラムメモリから命令キャッシュに取り込み、該命令キャッシュから命令データを中央処理装置に転送する命令キャッシュシステムにおいて、前記命令キャッシュを2面構成とし、一方の面の命令キャッシュから中央処理装置が命令データをフェッチして実行する動作と並行して、他方の面の命令キャッシュへ次のプログラムの命令データを前記主記憶プログラムメモリから転送し、前記一方の面の命令キャッシュからフェッチした命令データの実行が終了した後に、前記一方の面の命令キャッシュと前記他方の面の命令キャッシュの接続を切り替え、前記他方の面の命令キャッシュから中央処理装置が命令データをフェッチして実行する動作と並行して、前記一方の面の命令キャッシュへ次のプログラムの命令データを前記主記憶プログラムメモリから転送する動作を、前記命令キャッシュの一方及び他方の面を交互に切り替えながら繰り返す手段を備え、前記プログラムを前記命令キャッシュの1つの面の容量以内に収まるプログラム片に分割し、かつ、各プログラム片内においてプログラムの実行が他のプログラム片に跨ることなく完結するプログラム構造とし、該プログラム片を単位として前記命令キャッシュに転送することを特徴とする命令キャッシュシステムが知られている(特許文献1参照)。
特開2005-266997号公報
キャッシュメモリにプログラムを展開したり、キャッシュメモリからプログラムを消去したりする処理は、時間を要する処理である。そのため、キャッシュメモリの使用を効率的に行える仕組みが求められている。
特に、数値制御装置等の産業機械を制御する制御装置においては、加工プログラム内の指令により別のプログラムを呼び出す処理が数多く存在する。一例として、自動盤では、頻繁にサブプログラムの呼び出しが行われる。そのため、現状のハードウェア構成のままで加工プログラム等を効率的にキャッシュメモリに展開する仕組みが求められている。
本開示の一態様は、産業機械を制御する制御装置が、前記産業機械の動作に係る動作プログラムを格納する記憶領域と、前記記憶領域から読み取った前記動作プログラムを記憶するキャッシュメモリと、前記キャッシュメモリへの書込及び破棄の制御を行うキャッシュ制御部と、前記キャッシュメモリに展開された前記動作プログラムを解析する解析部と、を備え、前記解析部は、前記動作プログラムに含まれる指令の、CPUに関する運転負荷が規定値を下回るか否かを判断する運転負荷判断部と、前記運転負荷判断部により運転負荷が規定値を下回ったと判断された場合に、前記キャッシュメモリに展開された前記動作プログラムに含まれる前記指令より後の指令を先読みし、サブプログラムの呼び出し指令の有無を確認する呼び出し確認部と、前記呼び出し確認部により、前記サブプログラムの呼び出し指令が確認された場合に、所定条件に従って前記サブプログラムの前記キャッシュメモリへの展開に係るキャッシュ制御指令を前記指令に追加するキャッシュ制御指令追加部と、前記キャッシュ制御部に対して、前記キャッシュ制御指令追加部により追加された前記キャッシュ制御指令に応じた、前記キャッシュメモリに対するキャッシュ制御要求を行うキャッシュ制御要求部と、を備え、前記キャッシュ制御部は、前記キャッシュ制御要求部による前記キャッシュ制御要求に基づいて、前記サブプログラムを前記キャッシュメモリに展開するキャッシュ制御要求処理部を備える。
一態様によれば、キャッシュメモリを使用して処理を効率的に行うことができる制御装置及び産業機械を提供することができる。
本実施形態における生産システムの全体構成図及び数値制御装置の機能ブロック図である。 本実施形態における数値制御装置での制御処理を示すフローチャートである。 本実施形態における数値制御装置でのサブプログラム呼び出し指令の探索処理を示すフローチャートである。 本実施形態における加工プログラムの例を示す図である。 本実施形態における加工プログラムの例を示す図である。 本実施形態におけるキャッシュメモリへの展開処理の例を示す図である。 本実施形態におけるキャッシュメモリへの展開処理の他の例を示す図である。
(実施形態)
まず、一態様の実施形態の概略を説明する。本実施形態では、産業機械として工作機械を例示する。また、本実施形態では、制御装置として数値制御装置を例示し、動作プログラムとして加工プログラムを例示する。
本実施形態は、数値制御装置において加工プログラムを実行し、加工プログラムにサブプログラムの呼び出しがある場合に、運転負荷が低い指令にサブプログラムをキャッシュメモリに展開する指令を自動で追加するものに関する。
次に、本実施形態である生産システム100の構成について、図1を参照して説明をする。
図1に示す生産システム100は、数値制御装置1と、工作機械4とを備える。数値制御装置1は、工作機械4が行う、例えば、ワークを加工するための各種動作の制御を行う制御装置である。そして、数値制御装置1と工作機械4とは、通信回線Nにより通信可能に接続されている。通信回線Nは、信号の送受信が行えるものであればよい。
ここで、本実施形態では、数値制御装置1と工作機械4とは別体であるものを例示する。しかし、これに限定されるものではなく、数値制御装置1と工作機械4とが一体であって、数値制御装置1が工作機械4に含まれる構成のものであってもよい。
数値制御装置1は、工作機械4に対する制御を行う制御装置である。
数値制御装置1は、CPU10と、記憶装置20と、通信IF(インタフェース)29とを備える。また、数値制御装置1は、入力装置31及び表示装置32に対して通信可能に接続されている。
CPU10は、数値制御装置1を全体的に制御するプロセッサである。CPU10は、記憶装置20のプログラム記憶部22に格納された加工プログラムを、キャッシュメモリ26に展開した上で、キャッシュメモリ26の加工プログラムを実行して数値制御装置1の全体を制御する。
記憶装置20は、ROM(Read Only Memory)21と、RAM(Random Access Memory)25とを備える。
ROM21は、プログラム記憶部22と、負荷情報記憶部23とを備える。
プログラム記憶部22は、加工プログラムや、加工プログラムが呼び出すサブプログラム等の各種のプログラム、その他各種システムプログラムを記憶する記憶領域である。なお、CPU10は、外部機器(図示せず)を介して、記憶媒体からプログラム記憶部22に、加工プログラム等を予め記憶させてもよい。
負荷情報記憶部23は、加工プログラムの指令ごとに、CPU10に関する運転負荷を記憶する。指令ごとのCPU10に関する運転負荷については、後述の運転負荷判断部14の機能説明において詳述する。
RAM25は、キャッシュメモリ26を備える。
キャッシュメモリ26は、高速な記憶装置であり、プログラム記憶部22から読み取った加工プログラム等を記憶する。キャッシュメモリ26は、プログラム等を予め展開(キャッシュ)しておくことにより、相対的に低速なROM21へのアクセスを減らして、処理を高速化することができるものである。
キャッシュメモリ26は、後述するが複数の分割領域によって構成される。
CPU10は、キャッシュ制御部11と、解析部13と、運転部18とを備える。キャッシュ制御部11と、解析部13と、運転部18とは、CPU10における機能部である。
キャッシュ制御部11は、加工プログラムをキャッシュメモリ26に展開する。キャッシュ制御部11は、キャッシュ制御要求処理部12を備える。
キャッシュ制御要求処理部12は、後述するキャッシュ制御要求に基づいて加工プログラムから呼び出されるサブプログラムを、キャッシュメモリ26に展開する。また、キャッシュ制御要求処理部12は、不要になったサブプログラムを、キャッシュメモリ26から消去する。
解析部13は、キャッシュメモリ26に展開された加工プログラムを解析する。解析部13は、運転負荷判断部14と、呼び出し確認部15と、制御指令追加部16(キャッシュ制御指令追加部)と、キャッシュ制御要求部17とを備える。
運転負荷判断部14は、加工プログラムに含まれる指令の、CPU10に関する運転負荷が規定値を下回るか否かを判断する。ここで、規定値は、予め設定されたものであり、例えば、オペレータによって設定してもよい。より具体的には、運転負荷判断部14は、負荷情報記憶部23を参照して、加工プログラムに含まれる指令の、CPU10に関する運転負荷が規定値を下回るか否かを判断してもよい。
運転負荷判断部14が行うCPU10に関する運転負荷の判断は、例えば、CPU10の使用率を用いるものがある。例えば、負荷情報記憶部23に、指令ごとに開始から終了までにかかる時間や、CPU使用率情報等の実測値を蓄積しておき、運転負荷判断部14は、CPU使用率がa%以下の指令、又は、CPU使用率がb%以下であり、かつ、処理時間がcミリ秒以上の場合に、運転負荷が低いと判断してもよい。なお、a,b,cは、いずれも規定値であり、予め設定した値である。
その他、運転負荷判断部14が行うCPU10に関する運転負荷の判断は、加工プログラムに含まれる、例えば、軸移動指令の送り速度等を用いるものであってもよい。軸移動指令の送り速度であれば、送り速度が小さい値であれば、運転負荷は低くなる。具体的には、解析部13により解析中の指令が、「G01X100.0F1000」の場合、X軸は直線軸で移動量の単位が「mm」であり、1000は移動速度「mm/min」を表すが、移動速度がd(dは、規定値)以下であれば、運転負荷が低いと判断してもよい。なお、指令が回転軸に関する場合には、移動量の単位が「deg」になり、速度は「deg/min」になる。
また、CPU10に関する運転負荷の判断は、待ち指令(dwell)の有無や、待ち指令の待ち時間(ミリ秒)を用いてもよい。待ち指令があれば、運転負荷は当然に低くなる。
なお、一般的に、加工プログラムが小さいブロックの連続であれば、CPU10を使用した計算処理が多く行われるため、運転負荷が高くなる傾向にある。
呼び出し確認部15は、運転負荷判断部14により、キャッシュメモリ26に展開された加工プログラムに含まれる指令の運転負荷が規定値を下回ったと判断された場合に、キャッシュメモリ26に展開された加工プログラムに含まれる当該指令より後に、サブプログラムの呼び出し指令の存在の有無を確認する。
制御指令追加部16は、呼び出し確認部15により、サブプログラムの呼び出し指令が確認された場合に、所定条件に従ってサブプログラムのキャッシュメモリ26への展開に係るキャッシュ制御指令を当該指令に追加する。
ここで、制御指令追加部16は、呼び出し確認部15により、サブプログラムの呼び出し指令が確認された場合に、必ずサブプログラムのキャッシュメモリ26への展開に係るキャッシュ制御指令を当該指令に追加するわけではない。例えば、サブプログラムの呼び出し指令より前に解析抑制指令(マスクバッファ)が存在する場合には、キャッシュ制御指令を追加しない。
また、制御指令追加部16は、キャッシュメモリ26に指定のサブプログラムが既に展開されているか否かを判断し、サブプログラムが展開されていない場合には、先頭データからのサブプログラムのキャッシュメモリ26への展開に係るキャッシュ制御指令を当該指令に追加する。さらに、制御指令追加部16は、キャッシュメモリ26に指定のサブプログラムが既に展開されているか否かを判断し、サブプログラムが展開されている場合には、サブプログラムの呼び出し指令の内容に基づいて、呼び出し位置(指定位置)からのサブプログラムのキャッシュメモリ26への展開に係るキャッシュ制御指令を当該指令に追加する。ここで、制御指令追加部16は、通常は、先頭データを展開する。しかし、呼び出し位置が指定されている場合には、呼び出し位置以降のサブプログラムをキャッシュメモリ26に展開すれば足りる。
キャッシュ制御要求部17は、キャッシュ制御部11に対して、制御指令追加部16により追加されたキャッシュ制御指令に応じた、キャッシュメモリ26に対するキャッシュ制御要求(確保要求)を行う。具体的には、キャッシュ制御要求部17は、サブプログラムのキャッシュメモリ26への展開のため、キャッシュメモリ26の確保要求をキャッシュ制御部11に対して行う。なお、キャッシュ制御要求部17は、キャッシュ制御指令が、キャッシュ削除要求の場合、キャッシュメモリ26からの当該キャッシュの削除要求をキャッシュ制御部11に対して行う。
運転部18は、解析部13から渡される解析された指令に基づき、軸制御を行うことで、工作機械4を動作させる。
通信IF29は、例えば、RS232C用コネクタ等の所定のコネクタによって構成され、工作機械4との間で直接接続するための通信制御デバイスである。
入力装置31及び表示装置32は、例えば、表示器/MDIユニットである。表示器/MDIユニットは、ディスプレイやキーボード等を備えた手動データ入力装置である。
[制御処理]
次に、本実施形態の数値制御装置1における制御処理を説明する。
図2及び図3は、数値制御装置1での制御処理に係るフローチャートである。
オペレータが、例えば、数値制御装置1の図示しない電源を投入し、数値制御装置1を起動させることで、図2のステップS(以下、「ステップS」を、単に「S」という。)11において、数値制御装置1のCPU10(キャッシュ制御部11)は、プログラム記憶部22に記憶されている加工プログラムを、キャッシュメモリ26に展開する。
S12において、CPU10(解析部13)は、S11でキャッシュメモリ26に展開された加工プログラムを解析する。
なお、CPU10(解析部13)は、S12において解析された指令を運転部18に渡す。
また、CPU10(運転負荷判断部14)は、運転部18に渡された指令が実行されたときにおけるCPU10に関する運転負荷を、当該指令に対応付けて負荷情報記憶部23に記憶させるようにしてもよい。この処理により、負荷情報記憶部23には、指令ごとの運転負荷の実測値が蓄積される。
S13において、CPU10(運転負荷判断部14)は、キャッシュメモリ26に展開された加工プログラムに含まれる指令のCPU10に関する運転負荷が規定値以下であるか否かを判断する。規定値以下である場合(S13:YES)には、CPU10は、処理をS14に移す。他方、規定値以下ではない場合(S13:NO)には、CPU10は、処理をS15に移す。
S14において、CPU10は、当該指令以降を先読みし、サブプログラム呼び出し指令の探索をするサブプログラム呼び出し指令の探索処理を行う。
ここで、サブプログラム呼び出し指令の探索処理について、図3に基づき説明する。
図3のS21において、CPU10(解析部13)は、当該指令以降を先読みする。なお、何ブロック先まで先読みするかは、数値制御装置1において予め設定されているものとする。
S22において、CPU10(呼び出し確認部15)は、サブプログラムの呼び出し指令があるか否かを判断する。サブプログラムの呼び出し指令がある場合(S22:YES)には、CPU10は、処理をS23に移す。他方、サブプログラムの呼び出し指令がない場合(S22:NO)には、CPU10は、処理を図2のS15に移す。
S23において、CPU10(制御指令追加部16)は、当該サブプログラムの呼び出し指令より前に解析抑制指令があるか否かを判断する。解析抑制指令がある場合(S23:YES)には、CPU10は、処理を図2のS15に移す。他方、解析抑制指令がない場合(S23:NO)には、CPU10は、処理をS24に移す。
S24において、CPU10(制御指令追加部16)は、当該サブプログラムが、キャッシュメモリ26に既に展開済であるか否かを判断する。既にキャッシュメモリ26に展開済である場合(S24:YES)には、CPU10は、処理をS25に移す。他方、キャッシュメモリ26に展開されていない場合(S24:NO)には、CPU10は、処理をS26に移す。
S25において、CPU10(制御指令追加部16)は、指定位置からのサブプログラムのキャッシュメモリ26への展開に係るキャッシュ制御指令(確保要求)を、当該指令に追加する。ここで、指定位置の指定がされている場合には、指定位置からのサブプログラムであり、指定位置の指定がされていない場合には、先頭位置からのサブプログラムである。その後、CPU10は、処理をS27に移す。
S26において、CPU10(制御指令追加部16)は、先頭位置からのサブプログラムのキャッシュメモリ26への展開に係るキャッシュ制御指令(確保要求)を、当該指令に追加する。
S27において、CPU10(キャッシュ制御要求部17)は、キャッシュ制御部11に対して、追加されたキャッシュ制御指令(確保要求)に応じた、キャッシュメモリ26に対するキャッシュ制御要求を行う。そして、CPU10(キャッシュ制御要求処理部12)は、キャッシュ制御要求に基づいて、サブプログラムをキャッシュメモリ26に展開するキャッシュ処理を行う。その後、CPU10は、処理を図2のS15に移す。
図2のS15において、CPU10は、加工プログラムを終了するか否かを判断する。オペレータが、例えば、数値制御装置1の図示しないリセット操作をすることで、CPU10は、加工プログラムを終了すると判断する。加工プログラムを終了する場合(S15:YES)には、CPU10は、本処理を終了する。他方、加工プログラムを終了しない場合(S15:NO)には、CPU10は、処理をS12に移す。
(具体例1)
次に、具体例に基づき、キャッシュ制御指令の追加処理について説明する。
図4Aは、「O0001」である加工プログラムPG01の例を示す。
加工プログラムPG01は、1つの指令を1行にしてブロック単位で処理を行うプログラムである。ここで、ブロックB03は、CPU10に関する運転負荷が規定値以下である、運転負荷の低い指令を示す。なお、「M08」は、クーラント(冷却水)ONを示す指令である。その場合、CPU10は、加工プログラムPG01を、図4Aの矢印の方向(下方向)に先読みしていく。そうすると、CPU10は、「O0002」であるサブプログラムの呼び出し指令であるブロックB06を確認する。そして、CPU10は、図4Bに示す加工プログラムPG01-Aに示すように、元のブロックB03(図4A)の「M08」に、「O0002」であるサブプログラムのキャッシュメモリ26への展開に係るキャッシュ制御指令(確保要求)「CACHE O2」を追加することで、ブロックB03をブロックB03-Aにする。
このようにすることで、CPU10は、当該指令に追加されたキャッシュ制御指令(確保要求)に応じた、キャッシュメモリ26に対するキャッシュ制御要求を行い、キャッシュ制御要求に基づいてサブプログラムをキャッシュメモリ26に展開するキャッシュ処理を行う。そのため、指令がブロックB06に到達した際には、既にキャッシュメモリ26にサブプログラムが展開されているため、処理を効率的に行うことができる。
(具体例2)
次に、キャッシュメモリ26への展開処理について説明する。
図5は、キャッシュメモリ26には、サブプログラムが何もキャッシュ(展開)されていない場合の例である。
この場合、解析部13は、キャッシュメモリ26を確認して(S1)キャッシュ制御指令(確保要求)に応じたキャッシュ制御要求を、キャッシュ制御部11に対して行う(S2)。キャッシュ制御部11は、キャッシュ制御要求を受信すると、プログラム記憶部22に対して該当のサブプログラムの読み取りを行う(S3)。また、キャッシュ制御部11は、読み取ったサブプログラムを、キャッシュメモリ26に展開する(S4)。キャッシュメモリ26には、当該処理前にはサブプログラムが何もキャッシュされていないため、読み取ったサブプログラムは、先頭の分割領域27-1に展開される。なお、サブプログラムが一定サイズ以上の場合には、データを一定サイズに分割した上で、複数の分割領域27-n(nは、自然数)に分けて展開する。
他方、キャッシュメモリ26に既にキャッシュ済である場合について、図6に基づき説明する。
この場合、解析部13は、キャッシュメモリ26を確認し(S5)、キャッシュ制御指令(確保要求)に応じたキャッシュ制御要求を、キャッシュ制御部11に対して行う(S6)。ここで、サブプログラムは、分割領域27-11~27-16に展開済であるが、先頭データがない。そのため、キャッシュ制御指令(確保要求)に応じたキャッシュ制御要求は、先頭データからのサブプログラムの展開に係る要求になる。キャッシュ制御部11は、キャッシュ制御要求を受信すると、プログラム記憶部22に対して該当の加工プログラムの読み取りを行う(S7)。また、キャッシュ制御部11は、読み取った加工プログラムを、キャッシュメモリ26に展開する(S8)。その際、キャッシュメモリ26の先頭の分割領域27-1には、何もキャッシュされていないため、読み取った加工プログラムは、先頭の分割領域27-1に展開される。なお、既に展開されているサブプログラムについては、展開前に消去をするようにしてもよい。
各実施形態で使用するプログラムは、様々なタイプの非一時的なコンピュータ可読媒体(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(random access memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
また、上述した実施形態は、本発明の好適な実施形態の1つではあるが、上記実施形態のみに本発明の範囲を限定するものではなく、本発明の要旨を逸脱しない範囲において種々の変更を施した形態での実施が可能である。
(変形例1)
上述した実施形態では、産業機械として工作機械を例示すると共に、工作機械と制御装置とが別の装置であるものを例に説明したが、これに限定されない。上述したように、工作機械と制御装置とが一体になった装置であってもよい。
また、制御装置として数値制御装置に代えて、例えば、産業用ロボットを制御するロボットコントローラ等であってもよい。さらに、産業機械として工作機械に代えて、例えば、産業用ロボット等であってもよい。
(変形例2)
上述した実施形態では、系統(運転単位)については、特に触れていないが、例えば、工作機械に複数の系統を有する場合であっても用いることができる。複数の系統がある場合には、加工プログラムは、各々異なるプログラムを用いる。このような場合であっても、各系統で独立して処理を行うことができる。
具体的には、工作機械が、例えば、2系統存在していて、各系統で異なる加工プログラムを実行している場合を考える。この場合、各系統で独立して加工プログラムを実行でき、例えば、待ち指令や運転負荷も個別に有する。例えば、1系統目に待ち指令があって、キャッシュ制御をしている間に、2系統目は、1系統目のキャッシュ制御とは独立して運転を続けることができる。また、1系統目がキャッシュ制御をしている間に、2系統目にも待ち指令が見つかった場合には、2系統目でも、キャッシュ制御をすることができる。
(変形例3)
上述した実施形態では、運転負荷の低い指令に、サブプログラムのキャッシュ制御指令を追加するものを例に説明した(図4B参照)が、これに限定されない。例えば、運転負荷の低い指令の直前に、サブプログラムのキャッシュ制御指令を追加してもよい。その場合であっても、運転負荷の低い指令の際にサブプログラムのキャッシュを行うので、加工処理の影響を抑えることができる。
以上のように、本実施形態によれば、例えば以下の作用効果が得られる。
(1) 工作機械4を制御する数値制御装置1が、工作機械4の動作に係る加工プログラムを格納するプログラム記憶部22と、プログラム記憶部22から読み取った加工プログラムを記憶するキャッシュメモリ26と、キャッシュメモリ26への書込及び破棄の制御を行うキャッシュ制御部11と、キャッシュメモリ26に展開された加工プログラムを解析する解析部13と、を備え、解析部13は、加工プログラムに含まれる指令の、CPU10に関する運転負荷が規定値を下回るか否かを判断する運転負荷判断部14と、運転負荷判断部14により運転負荷が規定値を下回ったと判断された場合に、キャッシュメモリ26に展開された加工プログラムに含まれる当該指令より後の指令を先読みし、サブプログラムの呼び出し指令の有無を確認する呼び出し確認部15と、呼び出し確認部15により、サブプログラムの呼び出し指令が確認された場合に、所定条件に従ってサブプログラムのキャッシュメモリ26への展開に係るキャッシュ制御指令を当該指令に追加する制御指令追加部16と、キャッシュ制御部11に対して、制御指令追加部16により追加されたキャッシュ制御指令に応じた、キャッシュメモリ26に対するキャッシュ制御要求を行うキャッシュ制御要求部17と、を備え、キャッシュ制御部11は、キャッシュ制御要求部17によるキャッシュ制御要求に基づいて、サブプログラムをキャッシュメモリ26に展開するキャッシュ制御要求処理部を備える。
これにより、数値制御装置1は、サブプログラムの呼び出し指令の前に、サブプログラムをキャッシュメモリ26に展開できる。その結果、呼び出し時の応答時間を短縮することができる。
また、数値制御装置1は、キャッシュ制御のタイミングを、運転負荷が低い指令時にすることで、加工処理への影響を軽減できる。
さらに、例えば、起動時にキャッシュメモリ26に全てをキャッシュすると起動時間に影響するが、加工プログラムの処理中に行うことで、起動時間に影響を及ぼさずに済み、かつ、不要なキャッシュを抑制できる。
(2) (1)に記載の数値制御装置1において、指令ごとのCPU10に関する運転負荷を記憶する負荷情報記憶部23を備え、運転負荷判断部14は、負荷情報記憶部23を参照して、CPU10に関する運転負荷が規定値を下回るか否かを判断してもよい。
これにより、過去の運転履歴から得られる実測値に基づいて、運転負荷が低い指令を判断できる。
(3) (1)又は(2)に記載の数値制御装置1において、制御指令追加部16は、呼び出し確認部15によりサブプログラムの呼び出し指令が確認された場合に、サブプログラムの呼び出し指令より前に解析抑制指令が存在しない場合に限りキャッシュ制御指令を当該指令に追加してもよい。
これにより、解析抑制指令が存在する場合には、先読みが禁止されているため、その場合を除外できる。また、解析抑制指令が存在しなければ、サブプログラムをキャッシュメモリ26に展開できる。
(4) (1)から(3)までのいずれかに記載の数値制御装置1において、制御指令追加部16は、キャッシュメモリ26に指定のサブプログラムが既に展開されているか否かを判断し、サブプログラムが展開されていない場合には、先頭データからのサブプログラムのキャッシュメモリ26への展開に係るキャッシュ制御指令を当該指令に追加し、サブプログラムが展開されている場合には、サブプログラムの呼び出し指令の内容に基づいて、指定位置からのサブプログラムのキャッシュメモリ26への展開に係るキャッシュ制御指令を当該指令に追加してもよい。
これにより、サブプログラムがキャッシュメモリ26に展開されていない場合には、キャッシュメモリ26にサブプログラムを展開させることができる。
また、サブプログラムがキャッシュメモリ26に展開されている場合であっても、指定位置からのプログラムをキャッシュメモリ26に展開させることができる。サブプログラムがキャッシュメモリ26に展開されている場合であっても、例えば、指定位置(先頭を含む)からのサブプログラムがキャッシュメモリ26にない場合や、途中で編集等がされて、展開された情報が最新でない場合がある。その場合であっても、指定位置からのプログラムをキャッシュメモリ26に展開させるので、正確に処理を行うことができる。
(5) (1)から(4)までのいずれかに記載の数値制御装置1において、加工プログラムは、各系統でそれぞれ実行されるものであり、キャッシュ制御部11及び解析部13による処理は、系統ごとに行われるものであってもよい。
これにより、各系統で独立して処理を行うことができる。
1 数値制御装置
4 工作機械
10 CPU
11 キャッシュ制御部
12 キャッシュ制御要求処理部
13 解析部
14 運転負荷判断部
15 呼び出し確認部
16 制御指令追加部(キャッシュ制御指令追加部)
17 キャッシュ制御要求部
18 運転部
20 記憶装置
21 ROM
22 プログラム記憶部
23 負荷情報記憶部
25 RAM
26 キャッシュメモリ
100 生産システム

Claims (6)

  1. 産業機械を制御する制御装置であって、
    前記産業機械の動作に係る動作プログラムを格納する記憶領域と、
    前記記憶領域から読み取った前記動作プログラムを記憶するキャッシュメモリと、
    前記キャッシュメモリへの書込及び破棄の制御を行うキャッシュ制御部と、
    前記キャッシュメモリに展開された前記動作プログラムを解析する解析部と、
    を備え、
    前記解析部は、
    前記動作プログラムに含まれる指令の、CPUに関する運転負荷が規定値を下回るか否かを判断する運転負荷判断部と、
    前記運転負荷判断部により運転負荷が規定値を下回ったと判断された場合に、前記キャッシュメモリに展開された前記動作プログラムに含まれる前記指令より後の指令を先読みし、サブプログラムの呼び出し指令の有無を確認する呼び出し確認部と、
    前記呼び出し確認部により、前記サブプログラムの呼び出し指令が確認された場合に、所定条件に従って前記サブプログラムの前記キャッシュメモリへの展開に係るキャッシュ制御指令を前記指令に追加するキャッシュ制御指令追加部と、
    前記キャッシュ制御部に対して、前記キャッシュ制御指令追加部により追加された前記キャッシュ制御指令に応じた、前記キャッシュメモリに対するキャッシュ制御要求を行うキャッシュ制御要求部と、
    を備え、
    前記キャッシュ制御部は、前記キャッシュ制御要求部による前記キャッシュ制御要求に基づいて、前記サブプログラムを前記キャッシュメモリに展開するキャッシュ制御要求処理部を備える、制御装置。
  2. 請求項1に記載の制御装置において、
    指令ごとのCPUに関する運転負荷を記憶する負荷情報記憶部を備え、
    前記運転負荷判断部は、前記負荷情報記憶部を参照して、前記CPUに関する運転負荷が規定値を下回るか否かを判断する、制御装置。
  3. 請求項1又は請求項2に記載の制御装置において、
    前記キャッシュ制御指令追加部は、前記呼び出し確認部により前記サブプログラムの呼び出し指令が確認された場合に、前記サブプログラムの呼び出し指令より前に解析抑制指令が存在しない場合に限り前記キャッシュ制御指令を前記指令に追加する、制御装置。
  4. 請求項1から請求項3までのいずれかに記載の制御装置において、
    前記キャッシュ制御指令追加部は、前記キャッシュメモリに指定の前記サブプログラムが既に展開されているか否かを判断し、前記サブプログラムが展開されていない場合には、先頭データからの前記サブプログラムの前記キャッシュメモリへの展開に係る前記キャッシュ制御指令を前記指令に追加し、前記サブプログラムが展開されている場合には、前記サブプログラムの呼び出し指令の内容に基づいて、指定位置からの前記サブプログラムの前記キャッシュメモリへの展開に係る前記キャッシュ制御指令を前記指令に追加する、制御装置。
  5. 請求項1から請求項4までのいずれかに記載の制御装置において、
    前記動作プログラムは、前記産業機械の系統ごとにそれぞれ実行されるものであり、
    前記キャッシュ制御部及び前記解析部による処理は、前記系統ごとに行われるものである、制御装置。
  6. 請求項1から請求項5までのいずれかに記載の制御装置を含む産業機械。
JP2019220079A 2019-12-05 2019-12-05 制御装置及び産業機械 Active JP7436192B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2019220079A JP7436192B2 (ja) 2019-12-05 2019-12-05 制御装置及び産業機械
US17/101,466 US11366755B2 (en) 2019-12-05 2020-11-23 Controller and industrial machine
DE102020131816.2A DE102020131816A1 (de) 2019-12-05 2020-12-01 Steuerung und industriemaschine
CN202011403536.XA CN112925262A (zh) 2019-12-05 2020-12-02 控制装置以及工业机械

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019220079A JP7436192B2 (ja) 2019-12-05 2019-12-05 制御装置及び産業機械

Publications (2)

Publication Number Publication Date
JP2021089620A JP2021089620A (ja) 2021-06-10
JP7436192B2 true JP7436192B2 (ja) 2024-02-21

Family

ID=76162637

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019220079A Active JP7436192B2 (ja) 2019-12-05 2019-12-05 制御装置及び産業機械

Country Status (4)

Country Link
US (1) US11366755B2 (ja)
JP (1) JP7436192B2 (ja)
CN (1) CN112925262A (ja)
DE (1) DE102020131816A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020184179A (ja) * 2019-05-08 2020-11-12 ファナック株式会社 加工制御システム及び加工システム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008040734A (ja) 2006-08-04 2008-02-21 Hitachi Ltd 実行コードの生成方法及びプログラム
JP2011107995A (ja) 2009-11-18 2011-06-02 Fujitsu Ltd メモリデータ転送装置およびメモリデータ転送方法
JP2017120587A (ja) 2015-12-28 2017-07-06 ファナック株式会社 キャッシュロックを学習する機械学習器,産業機械システム,製造システム,機械学習方法および機械学習プログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4413663B2 (ja) 2004-03-17 2010-02-10 富士通株式会社 命令キャッシュシステム
US8037285B1 (en) * 2005-09-28 2011-10-11 Oracle America, Inc. Trace unit
US10296343B2 (en) * 2017-03-30 2019-05-21 Intel Corporation Hybrid atomicity support for a binary translation based microprocessor

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008040734A (ja) 2006-08-04 2008-02-21 Hitachi Ltd 実行コードの生成方法及びプログラム
JP2011107995A (ja) 2009-11-18 2011-06-02 Fujitsu Ltd メモリデータ転送装置およびメモリデータ転送方法
JP2017120587A (ja) 2015-12-28 2017-07-06 ファナック株式会社 キャッシュロックを学習する機械学習器,産業機械システム,製造システム,機械学習方法および機械学習プログラム

Also Published As

Publication number Publication date
CN112925262A (zh) 2021-06-08
JP2021089620A (ja) 2021-06-10
US11366755B2 (en) 2022-06-21
DE102020131816A1 (de) 2021-07-01
US20210173775A1 (en) 2021-06-10

Similar Documents

Publication Publication Date Title
US20140364989A1 (en) Controller for controlling machine tool and robot
US9494928B2 (en) Numerical control apparatus
JP7436192B2 (ja) 制御装置及び産業機械
JP6472227B2 (ja) 数値制御装置
JP2017134505A (ja) 加工シミュレーションで解析したデータを実加工に使用する数値制御システム
JP3451594B2 (ja) 数値制御装置における記憶手段アクセス制御方法および数値制御装置
JP2010033150A (ja) 数値制御工作機械
US11320800B2 (en) Optimization device
JP6538754B2 (ja) 数値制御装置
CN112147953B (zh) 数值控制装置
JP7464386B2 (ja) 制御装置、及び制御方法
JP2007213241A (ja) 割り込み加工可能な数値制御工作機械
JP4867876B2 (ja) 数値制御装置、数値制御プログラム及び数値制御プログラムを記憶した記憶媒体
JP7401244B2 (ja) 制御装置、及び制御方法
JP7343340B2 (ja) 工作機械の加工制御装置及び加工制御方法
JP7137042B1 (ja) 産業機械の制御装置
US11454950B2 (en) Machining control system and machining system
JP7303014B2 (ja) 制御装置
JP7294891B2 (ja) 加工制御システム及び加工システム
JP6046099B2 (ja) 高速応答制御を備えた数値制御装置
JP7498276B2 (ja) 工作機械システム
JPH056213A (ja) 産業用ロボツト制御方法およびその装置
WO2023073835A1 (ja) 選択装置、シミュレーション装置、及び通信制御装置
JP6568152B2 (ja) 数値制御装置
CN117280287A (zh) 数值控制装置以及计算机可读取的存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221021

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20231011

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231017

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231031

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240109

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240208

R150 Certificate of patent or registration of utility model

Ref document number: 7436192

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150