JP5956506B2 - プログラム加工再開機能を有する数値制御装置 - Google Patents

プログラム加工再開機能を有する数値制御装置 Download PDF

Info

Publication number
JP5956506B2
JP5956506B2 JP2014107416A JP2014107416A JP5956506B2 JP 5956506 B2 JP5956506 B2 JP 5956506B2 JP 2014107416 A JP2014107416 A JP 2014107416A JP 2014107416 A JP2014107416 A JP 2014107416A JP 5956506 B2 JP5956506 B2 JP 5956506B2
Authority
JP
Japan
Prior art keywords
program
machining
specific code
processing
execution
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
JP2014107416A
Other languages
English (en)
Other versions
JP2015222550A (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 JP2014107416A priority Critical patent/JP5956506B2/ja
Priority to DE102015006443.6A priority patent/DE102015006443B4/de
Priority to US14/717,310 priority patent/US9904279B2/en
Priority to CN201510270753.9A priority patent/CN105094054B/zh
Publication of JP2015222550A publication Critical patent/JP2015222550A/ja
Application granted granted Critical
Publication of JP5956506B2 publication Critical patent/JP5956506B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • G05B19/406Numerical 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 characterised by monitoring or safety
    • 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
    • G05B19/414Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller
    • G05B19/4147Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller characterised by using a programmable interface controller [PIC]
    • 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
    • G05B19/406Numerical 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 characterised by monitoring or safety
    • G05B19/4067Restoring data or position after power failure or other interruption
    • 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/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • 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/20Pc systems
    • G05B2219/24Pc safety
    • G05B2219/24199Recover from fault, malfunction, go to safe state, correct and set new sequence
    • 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/33Director till display
    • G05B2219/33311System code for error recovery
    • 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/36Nc in input of data, input key till input tape
    • G05B2219/36133MMI, HMI: man machine interface, communication

Landscapes

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

Description

本発明は、数値制御装置に関し、特に加工工程ごとに再開可能な数値制御装置に関する。
工作機械を制御する数値制御装置は、加工プログラムに基づいて数値制御処理を実行し、該数値制御処理の処理結果により工作機械を制御してワークに加工を施している。
数値制御装置を用いてワークを加工している途中に加工を中断したときに、中断ブロックまたは実行済みの任意のプログラムブロックからプログラムを再開する先行技術として以下の特許文献に開示されているような技術がある。
特許文献1には、数値制御装置におけるプログラム再開方式において、加工途中に加工を中断してその後再開する場合に、工具を今まで通ってきた通路に沿って戻すリバース機能を用いて、加工再開位置を決定して加工を再開する技術が開示されている。
特許文献2には、プログラム再開機能を備えた数値制御装置において、プログラムを再開してもワークに傷が付かない位置となる非切削ブロックを判別してプログラム再開ブロックデータを取得して、プログラムを再開させる技術が開示されている。
特許文献3には、加工再開機能を有する数値制御装置において、加工プログラムにて加工実行中に、加工を実行しているプログラムブロックを解析して、解析したプログラムブロックを使用して、表示手段において複数のプログラム再開ブロックデータを実行された順番で一覧表示し、一覧表示画面からプログラム再開ブロックデータを選択して、プログラムの再開を行う技術が開示されている。
特許文献4には、工作機械制御装置における、複数の工程からなる加工プログラムにおいて、加工プログラムの実行開始時に、工作機械の状態がいずれの工程プログラムに対応する状態かを判別して、予め決められた条件によって予め決められた工程からプログラムを開始する技術が開示されている。
特許文献5には、加工プログラムを読み込んで実行する数値制御装置において、加工実行とは別に加工プログラムを構成する加工工程単位ごとに識別情報を付加することで工程の区切りを認識し、識別情報を表示および選択することで選択した工程前までの工程をスキップして加工工程の再開を行う技術が開示されている。
特許文献6には、複数の単一作業プログラムが連なる加工プログラムに従って工作機械の運転を制御する数値制御装置において、工程ごとの加工部位を記憶及び認識することにより、オペレータが不在の時に異常が検出された場合に、機械を停止させることなく、異常が検出された加工部位が登録された異常発生加工部位である場合に、自動で工程をスキップすることができる技術が開示されている。
特許第2676512号公報 特許第4374045号公報 特許第4480770号公報 特開平10−143229号公報 特許第2926645号公報 特許第3448418号公報
特許文献1〜3に開示されている技術は、いずれも数値制御装置における加工プログラムの加工実行中にプログラムを解析している。そのため、加工中断まで実行されたブロックから任意の箇所を選択して、その箇所から再開することが可能である。しかしながら、加工実行中にプログラムの解析を行っているため、加工を行っていない箇所から再開させることはできない。
そのため、下記のような場合の要求をすべて満たすことは困難である。
(1)中断箇所の復旧の準備に時間がかかるため、中断理由に関係のない未実施の加工工程から先行して再開した場合
(2)中断理由により実施できない加工工程が断続的にあり、それ以外の加工工程のみを実施したい場合
(3)オペレータの熟練度に関わらず、簡単にかつ間違いなく再開箇所を選択したい場合
(4)再開後、プログラム運転中に前記中断箇所復旧の準備が整ったとき、現在加工中の工程終了後、中断箇所の復旧を行い、かつそのまま中断工程を実施するために未実行の加工工程を含む工程順番を変更したい場合
特許文献4に開示されている技術は、複数の工程プログラムからなる加工プログラムにおいて、予め決められた条件によって予め決められた工程からプログラムを開始することができるが、予め決められた条件に合わせた工程からしかプログラムの再開を行うことができないため、中断の理由によってはプログラムの書き換えが必要となることがあり、オペレータの手間と熟練度が要求されることがある。
特許文献5に開示されている技術は、加工工程ごとに識別情報を付加することで工程の区切りを認識し、識別情報を表示および選択することで、選択した工程の前までの工程をスキップすることができる。しかしながら、加工工程ごとに識別情報を付加しているため、加工工程が終了していない工程については識別情報が付加されておらず、選択した以降の工程をスキップすることができない。そのため、スキップする工程が断続的に存在するような場合に適用することができない。
特許文献6に開示されている技術は、加工するワークごとに、工程ごとの加工部位を事前に記憶させる必要があるため、ワークごとの事前準備が必要となり、オペレータの熟練度も要求されることがある。
そこで本発明は、これらの課題を鑑み、数値制御装置における加工プログラムの加工を中断後、オペレータの熟練度によらずに容易に未実行の加工工程から動作を再開させることができる数値制御装置を提供することを目的とする。
本願の請求項1に係る発明では、加工プログラムをブロックごとに解析し実行することで工作機械を制御しワークの加工を行う数値制御装置において、複数の加工工程が組込まれている前記加工プログラムにおける前記加工工程の区切りをあらわす特定コードを予め設定する設定手段と、前記加工プログラムの実行前及び前記加工プログラムの実行中のあらかじめ設定されたタイミングで、前記加工プログラムの未実行ブロックを解析し前記特定コードのみを検出する解析検出手段と、前記解析検出手段によって検出された前記特定コードのブロックが格納されているメモリ上の位置を取得し保存するデータ取得保存手段と、前記データ取得保存手段により取得保存された複数の前記メモリ上の位置を使用して前記特定コードを一覧表示する第一の表示手段と、前記第一の表示手段により一覧表示された前記特定コードから、選択された前記特定コードを特定する特定手段と、前記解析検出手段による検出が完了し、前記特定手段により特定された前記特定コードの前記メモリ上の位置を使用して、前記特定された前記特定コードを有する前記加工工程から前記加工プログラムを再開動作実行させるプログラム再開手段と、を有することを特徴とするプログラム加工再開機能を有する数値制御装置が提供される。
請求項1に係る発明では、加工プログラム実行開始時及び加工プログラム実行中のあらかじめ設定されたタイミングで、パラメータなどで指定した工程の区切りとする特定コード(例として、$$などのユーザ指定の任意コードや、M6などの工具交換指令など)のみを検出する解析を行い、検出したすべての特定コード及びそのブロックが格納されているメモリ上の位置を取得して保存する。また、保存したデータを一覧表示させてカーソル等で選択可能とし、選択した特定コードのメモリ上の位置を使用して、その特定コードブロックからプログラムを再開することを可能とすることにより、容易に未実行の加工工程からプログラムを再開させることができる。
本願の請求項2に係る発明では、前記特定手段により、前記第一の表示手段により一覧表示された前記特定コードから、選択された前記特定コードの前記メモリ上の位置を使用して、前記特定コードのブロックと、プログラムカウンタ上でその後実行される所定数のブロックを表示する第二の表示手段をさらに備えたことを特徴とする請求項1に記載のプログラム加工再開機能を有する数値制御装置が提供される。
請求項2に係る発明では、選択された特定コードのブロックと、プログラムカウンタ上でその後実行される所定数のブロックを表示させることによって、選択した特定コードが準ずる加工工程が認識できるようになり、オペレータが特定コードの内容を理解しやすくなる。
本願の請求項3に係る発明では、前記タイミングは、前記加工プログラムの実行開始直前から実行中の間、または前記加工プログラムの登録中のいずれかに設定できることを特徴とする請求項1又は2に記載のプログラム加工再開機能を有する数値制御装置が提供される。
本願の請求項4に係る発明では、前記タイミングの設定は、外部入力機器による設定によって設定できることを特徴とする請求項1〜3のいずれかに記載のプログラム加工再開機能を有する数値制御装置が提供される。
本願の請求項に係る発明では、前記加工工程ごとに行われる工具交換指令を前記特定コードとして扱うことを特徴とする請求項1〜のいずれかに記載のプログラム加工再開機能を有する数値制御装置が提供される。
請求項に係る発明では、工具交換指令を特定コードとして扱うことにより、工具交換指令として別途パラメータとして設定して埋め込むことが不要となり、より容易に作業を行うことが可能となる。
本願の請求項に係る発明では、前記第一の表示手段により一覧表示された前記特定コードを有する前記加工工程の、加工順番の変更を設定できる第一の入力設定手段と、前記第一の入力設定手段で設定された加工順番を特定する第一の入力設定特定手段と、を有することを特徴とする請求項1〜のいずれかに記載のプログラム加工再開機能を有する数値制御装置が提供される。
本願の請求項に係る発明では、前記データ取得保存手段により取得保存された前記メモリ上の位置を使用して、前記第一の入力設定特定手段により特定された前記加工工程の加工順番通りに前記加工プログラムを実行させる加工工程順番指定実行手段と、を有すことを特徴とする請求項に記載のプログラム加工再開機能を有する数値制御装置が提供される。
請求項又はに係る発明では、第一の表示手段により一覧表示された特定コードにおいて、入力設定された加工順番を特定する特定手段を有することによって、加工プログラム自体を編集することなく、各特定コードが準ずる加工工程の加工順番を変更することが可能となる。これにより、中断理由により実行できない加工工程がある場合などに、実行できない加工工程をスキップして、その後の未実行の加工工程を実行することが可能となる。
請求項に係る発明では、前記第一の表示手段により一覧表示された前記特定コードを有する前記加工工程のいずれかの前記加工工程の終了時に一時停止の指定を設定できる第二の入力設定手段と、前記第二の入力設定手段で設定された前記加工プログラムの一時停止指定を特定する第二の入力設定特定手段と、前記データ取得保存手段により取得保存された前記メモリ上の位置を使用して、前記加工工程の終了時を検出する加工工程終了検出手段と、前記第二の入力設定特定手段により特定された前記加工工程の終了時に前記加工プログラムの一時停止を実行する一時停止実行手段と、を有することを特徴とする請求項1〜のいずれかに記載のプログラム加工再開機能を有する数値制御装置が提供される。
請求項に係る発明では、特定コードの一覧表示において、入力された一時停止させたい加工工程を特定する特定手段を設けることで、入力設定された加工工程実施後に一時停止させることが可能となる。
また、請求項に係る発明では、加工順番の変更及び一時停止の入力設定をプログラム運転中にも変更することを可能とすることで、プログラム運転中に中断箇所の復旧の準備が整ったとき、現在加工中の工程の終了後に、中断箇所の復旧を行い、かつそのまま中断工程を実施するために未実行の加工工程を含む工程順番を変更することも可能となる。
本発明により、数値制御装置における加工プログラムの加工を中断後、オペレータの熟練度によらずに容易に未実行の加工工程から動作を再開させることができる数値制御装置を提供することができる。
本発明におけるメモリ上の格納番地と、そこに入っているデータの例を示した図である。 第1の実施形態における加工プログラムの一例を示した図である。 第1の実施形態における解析検出手段とデータ取得保存手段の動作を示すフローチャートである。 第1の実施形態における第一の表示手段、特定コードを選択する選択手段、第二の表示手段、プログラム再開手段の動作を示すフローチャートである。 第2の実施形態において、加工プログラムを解析して特定コードを検出するタイミングとして、加工プログラムの実行開始直前とした場合の動作を示すフローチャートである。 第2の実施形態において、加工プログラムを解析して特定コードを検出するタイミングとして、加工プログラムの実行中とした場合の動作を示すフローチャートである。 第2の実施形態における、特定コード解析・検出処理の具体的な処理内容の動作を示すフローチャートである。 第2の実施形態における、プログラム実行とともに特定コード解析・検出処理の具体的な処理内容の動作を示すフローチャートである。 第2の実施形態において、加工プログラムを解析して特定コードを検出するタイミングとして、加工プログラムの登録中とした場合の動作を示すフローチャートである。 第2の実施形態において、加工プログラムを解析して特定コードを検出するタイミングとして、外部入力機器による特定コード検出依頼時とした場合の動作を示すフローチャートである。 第3の実施形態における加工プログラムの一例を示した図である。 第4の実施形態における加工プログラムの一例を示した図である。 第3の実施形態及び第4の実施形態における、工程の順番変更、一時停止予約の動作を示すフローチャートである(その1)。 第3の実施形態及び第4の実施形態における、工程の順番変更、一時停止予約の動作を示すフローチャートである(その2)。 第3の実施形態及び第4の実施形態における、工程の順番変更、一時停止予約の動作を示すフローチャートである(その3)。 第3の実施形態及び第4の実施形態における、加工工程の順番指定実行、加工工程の終了検出、一時停止の実行動作を示すフローチャートである。
以下、本発明の実施形態を図に基づいて説明する。
まず、特定コードのブロックが格納されているメモリ上の位置について説明する。
一般的に、加工プログラムをメモリ上に格納している時、メモリ上の位置はポインタ情報で管理されている。以下、本明細書においては、「メモリ上の位置」はこのポインタ情報とし、「プログラムポインタ」と記述する。
ある加工プログラムの例で示すと、プログラムポインタはプログラムを格納するメモリの先頭から何バイト目であるか、という情報で管理されている場合もある。
このプログラムポインタをプログラム再開ブロックデータに事前に取得して、プログラムを表示するときにプログラムポインタから指し示すブロックを一覧表示することで、再開可能なプログラムポインタを表示させることが可能となる。さらに、プログラムポインタから指し示すブロックと、プログラムカウンタ上でその後実行される所定数のブロックも同時に表示するようにすれば、再開するプログラムカウンタの内容についても、ある程度表示させることが可能となる。
図1は、メモリ上の格納番地と、そこに入っているデータを示している。図1においては、わかりやすく説明するために、メモリ上に格納されているキャラクタで表現し、番地がわかりやすいように16キャラクタごとに区切るようにしている。(通常は英文字や数字は1キャラクタで1バイトの情報になっているので、例えば”1”というデータは”31”と表現されメモリに登録されている)。
図1のようにメモリに登録されているとき、取得保存されているプログラムポインタが「10236DH」の場合、”N1203G41X140Y150D01;”のブロックが保存されていることになる。
(第1の実施形態)
複数の加工工程が組み込まれている加工プログラムにおいて、加工工程の区切りを表す特定コードをパラメータなどで設定して埋め込むようにしている。これにより、加工工程ごとの切れ目を認識することが可能となる。一例として、特定コードを”$$”と設定した場合、”$”が連続して2つ存在した場合に工程の区切りとして認識することが可能となる。
また、加工工程の区切りを表す特定コードとして、別途パラメータなどで設定する代わりに、既存の指令を加工工程の区切りを表す特定コードとして用いることもできる。一例として、一般的に工具交換が行われるのは加工工程の節目のため、M6T○○○○といった工具交換指令で挟まれた一群のプログラムを一つの加工工程として定義して、工具交換指令を特定コードとして用いることもできる。
図2は、加工プログラムの一例を示している。図2(a)は加工プログラムの内容を示しており、先頭行はO0001というプログラムの名称を示している。その後加工の実行順に、STEP0として初期化工程、その後、STEP1として工程1、STEP2として工程2と続き、最後はSTEP6の終了工程とされている。そして、各工程の頭には、工程の区切りを示すための特定コードである”$$”が付加されている。このような加工プログラムにおいて、任意のタイミングで加工プログラムを解析させ、特定コードの検出および特定コードのプログラムポインタを検出順に保存させる。これにより、各工程の区切りを認識させることが可能となる。
この保存したプログラムポインタ(後述するフローチャートにおける”sp_code_inf[PNT]”)を使用することにより、図2(b)のリストのように特定コード一覧を表示することが可能となる。なお、本実施形態においては、特定コード一覧の表示を、プログラムポインタの検出順に表示しているが、必ずしも検出順の表示でなくともよい。
図2(b)のリストにおいては、検出番号(No.),加工プログラム名(PROG.),特定コードブロックの情報(INFO.),加工プログラム上における特定コードの位置(BLOCK NO.)の項目が表示されている。これらはいずれも保存したプログラムポインタにより取得可能なデータである。なお、特定コードブロックの情報(INFO.)は、特定コードと同一ブロックに記述したコメントや指令を数文字分(図2(b)のリストでは、”$$”後のコメントを情報として表示しているが、工具交換指令を特定コードとした場合は工具番号(Tコード)などになる)とし、工程の情報などを表示させることが可能である。
また、図2(b)のリストにおける特定コードをカーソル選択できるようにし、プログラムポインタを使用してカーソルの移動に合わせて特定コード以降数ブロックを表示することも可能である。図2(b)においては、検出番号(No.)005の、特定コードブロックの情報(INFO.)STEP4が選択されており、(PROGRAM)として、右側にSTEP4の特定コード以降のプログラムカウンタ上でその後実行される数ブロックが表示されている状態を示している。なお、本実施形態においては、(PROGRAM)として、右側にSTEP4の特定コード以降のプログラムカウンタ上でその後実行される数ブロックが表示されているが、必ずしも表示しなければならないわけではない。
さらに、プログラムポインタを使用することで、カーソルで選択した特定コードブロックから加工プログラムを再開させることが可能である。図2(a)に示されているように、本実施形態においては、STEP0から加工が実行され、STEP2の工程2において加工が中断されているが、その後STEP4を選択することによって、STEP4からの再実行が行われている。
次に、本実施形態の動作を、図3及び図4のフローチャートに基づいて説明する。図3は解析検出手段とデータ取得保存手段の動作を示すフローチャートである。以下ステップ毎に説明する。
・(ステップSA1)初期化動作を行う。プログラムポインタに開始位置を設定し、特定コード数、取得プログラムポイント、最大特定コード数をいずれもクリアして0とする。
・(ステップSA2)プログラムポインタがプログラム終了(END_PNT)と等しくないかどうかを判定する。等しくなくてプログラム終了ではない場合(YES)はステップSA3に進み、等しくてプログラム終了である場合(NO)は終了する。
・(ステップSA3)解析検出処理を行う。プログラムポインタにおいてブロックデータを取得して、字句解析(英記号と数値記号とに分ける処理)、構文解析(指令された英記号と数値との組み合わせを判定する処理)、意味解析(指令された英記号と数値により機能を判定する処理)を行う。
・(ステップSA4)解析されたブロックデータが特定コードに等しいかどうかを判定する。特定コードに等しい場合(YES)はステップSA5に進み、等しくない場合(NO)はステップSA6に進む。
・(ステップSA5)特定コードである箇所のプログラムポインタをsp_code_inf[PNT]として保存する処理と、max_iにiを保存することで、最大特定コード数の更新処理を行う。
・(ステップSA6)p_pntに1を加えて、プログラムポインタを更新して、ステップSA2に戻る。
図4は、第一の表示手段、特定コードを選択する選択手段、第二の表示手段、プログラム再開手段の動作を示すフローチャートである。以下ステップ毎に説明する。
・(ステップSB1)特定コード一覧表示画面を表示するモードを選択する。
・(ステップSB2)図2(b)におけるNO.,PROG.などの項目などのベース画面の表示を行う。
・(ステップSB3)特定コードの取得を行い、特定コードのデータが存在するかどうかを判定する。特定コードのデータが存在する場合(YES)はステップSB4に進み、特定コードのデータが存在しない場合(NO)は終了する。
・(ステップSB4)初期化処理を行う。特定コード数iのカウント値をクリアして0とする。
・(ステップSB5)特定コード数iが最大特定コード数max_iより小さいかどうかを判定する。最大特定コード数max_iよりも小さい場合(YES)はステップSB6に進み、最大特定コード数以上となる場合(NO)はステップSB7に進む。
・(ステップSB6)特定コード一覧表示への追加処理を行う。プログラムポインタとして、特定コードの位置として保存されているプログラムポインタを設定し、そのプログラムポインタにおける、プログラム番号、プログラム位置、同一ブロックの情報の表示を行う。また、特定コード数iに1を加えて、ステップSB5に戻る。
・(ステップSB7)選択動作によってカーソルで選択された特定コードのプログラム表示がされたかどうかを判定する。まだ表示されていない場合(YES)はステップSB8に進み、すでに表示されている場合(NO)はステップSB9に進む。
・(ステップSB8)プログラム表示を行う。特定コード数iとして、カーソルで選択された項目のカウント値を設定し、プログラムポインタとして、その特定コード数iに対応する、保存された特定コードのプログラムポインタを設定する。そして、上記のプログラムポインタにおいて、特定コードブロックと、プログラムカウンタ上でその後実行される所定数のブロックのプログラム表示を行う。
・(ステップSB9)カーソル移動が行われたかどうかを判定する。カーソル移動が行われていない場合(YES)はステップSB10に進み、カーソル移動が行われた場合(NO)はステップSB7に戻る。
・(ステップSB10)現在のカーソル位置をプログラム再開位置として指定されたかどうかを判定する。プログラム再開位置として指定されていない場合(YES)はステップSB11に進み、プログラム再開位置として指定された場合(NO)はステップSB12に進む。
・(ステップSB11)他の画面に切り換えたかどうかを判定する。他の画面に切り換えた場合(YES)は終了し、切り換えていない場合(NO)はステップSB7に戻る。
・(ステップSB12)プログラム再開位置を設定する。プログラムポインタとして、特定コード数iに対応する、保存された特定コードのプログラムポインタを設定する。そして、プログラム開始位置を、上記のプログラムポインタのブロックに設定して、その位置からプログラムの再開を行う。そして、ステップSB11に進む。
(第2の実施形態)
解析検出手段による、加工プログラムを解析して特定コードを検出するタイミングとして、下記のタイミングが考えられる。
(1)加工プログラムの実行開始直前
(2)加工プログラムの実行中
(3)加工プログラムの登録中
(4)外部入力機器による特定コード検出依頼時
いずれのタイミングにおいて特定コードを検出するかについては、パラメータなどで選択することができる。一例として、タイミング設定のパラメータの設定値が1の場合は、加工プログラムの実行開始直前に加工プログラムを解析して特定コードを検出し、設定値が2の場合は加工プログラム実行中に加工プログラムを解析して特定コードを検出するというように設定することができる。
各タイミングにおける特定コードの検出について、タイミング毎に説明する。
(1)加工プログラムの実行開始直前
加工プログラム実行開始時に、その加工プログラムにおいて特定コードの解析及び検出を行い、特定コード検出完了後から加工プログラムを実行開始させる。図5は、加工プログラムの実行開始直前に特定コードの検出を行う場合の動作を示すフローチャートである。以下、ステップ毎に説明する。
・(ステップSC1)パラメータの設定等により、加工プログラム開始前に特定コードを検出するよう設定されているかどうかを判定する。加工プログラム開始前に特定コードを検出する場合(YES)はステップSC2に進み、加工プログラム開始前に特定コードを検出しない場合(NO)はステップSC3に進む。
・(ステップSC2)特定コード検出処理を行う。具体的には、図3のフローチャートに示されたような方法で検出処理を行うことができる。
・(ステップSC3)通常プログラムの実行処理を開始する。
(2)加工プログラムの実行中
加工プログラムのブロック数が非常に多い場合などは、加工プログラムの実行開始直前のタイミングにおいて特定コードの検出を行っていると、加工プログラム実行開始までに時間がかかる場合がある。そのため、パラメータなどで設定された時間までは(1)の場合と同様に加工プログラム開始前に特定コードの解析及び検出を行い、設定された時間を過ぎた時に加工プログラム実行を開始するようにすることができる。そして、加工プログラム実行中に、特定コードの未解析プログラムブロックを実行する際に、合せて特定コードの解析・検出処理を行う。また、実行処理のアイドルタイム時に特定コードの解析及び検出処理を行う。
図6は、加工プログラムの実行中に特定コードの検出を行う場合の動作を示すフローチャートである。以下、ステップ毎に説明する。
・(ステップSD1)パラメータの設定等により、加工プログラム実行中に特定コードを検出するように設定されているかどうかを判定する。加工プログラム実行中に特定コードを検出する場合(YES)はステップSD2に進み、加工プログラム開始前に特定コードを検出しない場合(NO)はステップSD7に進む。
・(ステップSD2)初期化動作を行う。解析・検出処理のプログラムポインタ、及び実行処理のプログラムポインタに開始位置を設定し、特定コード数、取得プログラムポイント、最大特定コード数、特定コード解析・検出完了フラグ、特定コード解析・検出処理経過時間をいずれもクリアして0とする。
・(ステップSD3)特定コード検出処理を行う。具体的な処理内容については、図7のフローチャートに示されたような方法で行う。
・(ステップSD4)特定コード解析・検出完了フラグ完了フラグが0であるかどうかを判定する。0である場合(YES)はステップSD5に進み、0でない場合(NO)はステップSD7に進む。
・(ステップSD5)特定コード解析・検出処理経過時間更新処理を行う。特定コード解析・検出処理経過時間timerに、特定コード解析・検出処理にかかった処理時間Δを加えて更新する。
・(ステップSD6)特定コード解析・検出処理経過時間timerが設定時間未満であるかどうかを判定する。設定時間未満である場合(YES)はステップSD3に戻り、設定時間以上である場合(NO)はステップSD8に進む。
・(ステップSD7)通常のプログラム実行処理を開始する。
・(ステップSD8)プログラムの実行と並行して、特定コード解析・検出処理を行う。具体的な処理内容については、図8のフローチャートに示されたような方法で行う。
次に、図7のフローチャートに基づいて、図6のステップSD3等における特定コード解析・検出処理の具体的な処理内容についてステップ毎に説明する。
・(ステップSE1)解析検出処理を行う。解析・検出処理のプログラムポインタbk_pntにおけるブロックデータを取得する。
・(ステップSE2)取得したブロックデータが特定コードかどうかを判定する。特定コードの場合(YES)にはステップSE3に進み、特定コードでない場合(NO)はステップSE4に進む。
・(ステップSE3)プログラムポインタ保存処理として、特定コードである箇所のプログラムポインタをsp_code_inf[PNT][i]として保存する処理と、iの値に1を加える処理を行い、最大特定コード数保存処理として、max_iにiを保存する処理を行う。
・(ステップSE4)プログラムポインタbk_pntに1を加えて更新処理を行う。
・(ステップSE5)プログラムポインタbk_pntがEND_PNTと等しくないかどうかを判定する。等しくない場合(YES)は終了して元のフローチャートに戻り、等しい場合(NO)はステップSE6に進む。
・(ステップSE6)特定コード解析・検出完了フラグend_flgに1を設定して終了して元のフローチャートに戻る。
次に、図8のフローチャートに基づいて、図6のステップSD8等におけるプログラム実行とともに特定コード解析・検出処理の具体的な処理内容についてステップ毎に説明する。
・(ステップSF1)プログラムブロック解析処理を行う。実行処理のプログラムポインタfr_pntにおけるブロックデータを取得する。
・(ステップSF2)実行処理のプログラムポインタfr_pntが、解析・検出処理のプログラムポインタbk_pntと等しいかどうかを判定する。等しい場合(YES)はステップSF3に進み、等しくない場合(NO)はステップSF4に進む。
・(ステップSF3)特定コード解析・検出処理を行う。具体的には、図7のフローチャートに記載された手順で処理を行う。
・(ステップSF4)プログラムブロックの実行処理を行う。
・(ステップSF5)特定コード解析・検出完了フラグend_flgが0に等しいかどうかを判定する。0に等しい場合(YES)はステップSF6に進み、0に等しくない場合(NO)はステップSF8に進む。
・(ステップSF6)アイドルタイムがないかどうかを判定する。アイドルタイムなしの場合(YES)はステップSF8に進み、アイドルタイムありの場合(NO)はステップSF7に進む。
・(ステップSF7)特定コード解析・検出処理を行う。具体的には、図7のフローチャートに記載された手順で処理を行う。処理後、ステップSF5に戻る。
・(ステップSF8)実行処理のプログラムポインタfr_pntに1を加えて更新する。
・(ステップSF9)実行処理のプログラムポインタfr_pntがEND_PNTと等しいかどうかを判定する。等しい場合(YES)は終了して元のフローチャートに戻り、等しくない場合(NO)はステップSF1に戻る。
(3)加工プログラムの登録中
加工プログラムを数値制御装置のメモリに登録する時、予め指定した加工プログラムに対して特定コードの解析および検出を行うようにする。一般的にプログラム名の先頭コードは決まっているため(例えば”O”)、保存するプログラムが指定されたプログラムかどうかの判定は可能である。なお、プログラム登録中での解析のため、(1),(2),および後述する(4)の解析・検出とは違い、指定した加工プログラムから呼出される別の加工プログラムについては特定コードの解析・検出は行わない。また、指定した加工プログラムはメイン設定(実行開始予定)にする。
図9は、加工プログラムの登録中に特定コードの検出を行う場合の動作を示すフローチャートである。以下、ステップ毎に説明する。
・(ステップSG1)パラメータの設定等により、加工プログラム登録中に特定コードを検出するように設定されているかどうかを判定する。加工プログラム登録中に特定コードを検出する場合(YES)はステップSG2に進み、加工プログラム開始前に特定コードを検出しない場合(NO)はステップSG14に進む。
・(ステップSG2)初期化動作を行う。解析・検出処理のプログラムポインタ、及びプログラム保存先ポインタをNULLクリアし、特定コード数、取得プログラムポイント、最大特定コード数、特定プログラムフラグ、特定コード解析・検出完了フラグをいずれもクリアして0とする。
・(ステップSG3)登録元に未取得のプログラムデータがあるかどうかを判定する。未取得のプログラムデータがある場合(YES)はステップSG4に進み、未取得のプログラムデータがない場合(NO)は終了する。
・(ステップSG4)登録元からバッファ分のプログラムデータを取得する。
・(ステップSG5)バッファに未登録データがあるかどうかを判定する。未登録データがある場合(YES)はステップSG6に進み、未登録データがない場合(NO)はステップSG3に戻る。
・(ステップSG6)バッファから1ブロック分のプログラムデータを取得・保存する。プログラム保存先ポインタsv_pntにその際のプログラム保存先ポインタを保存する。
・(ステップSG7)解析検出処理を行う。字句解析(英記号と数値記号とに分ける処理)、構文解析(指令された英記号と数値との組み合わせを判定する処理)を行う。
・(ステップSG8)解析検出処理の結果がプログラム名データであるかどうかを判定する。プログラム名データである場合(YES)はステップSG9に進み、プログラム名データでない場合(NO)はステップSG11に進む。
・(ステップSG9)解析検出処理の結果が指定プログラムであるかどうかを判定する。指定プログラムである場合(YES)はステップSG10に進み、指定プログラムでない場合(NO)はステップSG5に戻る。
・(ステップSG10)指定プログラムフラグspcfc_flgに1を設定し、ステップSG5に戻る。
・(ステップSG11)指定プログラムフラグspcfc_flgの値が1かどうかを判定する。1の場合(YES)はステップSG12に進み、1ではない場合(NO)はステップSG5に戻る。
・(ステップSG12)解析検出処理の結果が特定コードであるかどうかを判定する。特定コードである場合(YES)はステップSG13に進み、特定コードでない場合(NO)はステップSG5に戻る。
・(ステップSG13)プログラムポインタの保存処理を行う。sp_code_inf[PNT][i]にプログラム保存先ポインタを保存して、iに1を加えて更新する。また、最大特定コード数max_iにiを入れて更新する。
・(ステップSG14)通常のプログラム登録処理を開始する。
(4)外部入力機器による特定コード検出依頼時
例えば信号入力など外部入力機器による特定コード検出依頼時に、現在メイン設定(実行開始予定)の加工プログラムに対して、特定コードの解析および検出を行うようにする。
図10は、外部入力機器による特定コード検出依頼時に特定コードの検出を行う場合の動作を示すフローチャートである。以下、ステップ毎に説明する。
・(ステップSH1)パラメータの設定等により、外部入力機器による検出依頼時に特定コードを検出するように設定されているかどうかを判定する。外部入力機器による検出依頼時に特定コードを検出する場合(YES)はステップSH2に進み、外部入力機器による検出依頼時に特定コードを検出しない場合(NO)は終了する。
・(ステップSH2)特定コードの検出依頼があったかどうかを判定する。検出依頼があった場合(YES)はステップSH3に進み、検出依頼がない場合(NO)はステップSH2を繰り返し、検出依頼があるまで待機する。
・(ステップSH3)特定コード検出処理を行う。具体的には図3のフローチャートに示されたような手順で処理を行う。
・(ステップSH4)通常のプログラム登録処理を開始する。
(第3の実施形態)
第1の実施形態における特定コードリストの表示に実行順番(SEQ)を入力できる項目を追加することで、実際のプログラムを変更せずに各工程の実行順番を変更することを可能とする。例えば図11に示された例の場合、後述するように工程2と工程3を実行させないために、順番が来る前にプログラム終了指令(M30)が実行されるように順番を変更している。
実行順番変更の処理としては、特定コードに関する情報の保存において、プログラムポインタ以外に実行順番も保持するようにする。(フローチャート中の”sp_code_inf[SEQ]”)
変更時の方式として、自動整理式と手動整理式などが考えられる。前者の場合、例えば選択された工程の順番を2番目から3番目に変更した場合、もともと3番目だった工程は自動的に2番目となるように変更される。後者の場合、同様に選択工程の順番を2番目から3番目に変更した場合、もともと3番目だった工程はそのまま3番目のままである。このとき、プログラム実行時、1番目の工程終了後、2番目に設定されている工程はないため、3番目に設定されている工程を実行するが、設定されている工程が2つ以上あるため、検出順で早い方が実行される。その工程終了後は、4番目に設定されている工程を実行するようにし、実行されなかった3番目に設定されている工程はスキップすることにする。また、検出された特定コード数より大きい順番が設定された場合、0が設定されていた場合と同様にその工程はスキップするようにする。
プログラム実行中の実行順番変更のアルゴリズムについては、特定コードブロックとなったとき、前回の特定コードブロックの実行順番に1を追加した値と同じ実行順番を持つ特定コードのプログラムカウンタを図16に示されたフローチャートのようなアルゴリズムで検索し、そのプログラムポインタを使用して該当のブロックを読出し順次実行していくことで実行順番を変更する。また、上記手動整理式の例のように、前回の特定コードブロックの実行順番に1を追加した値と同じ実行順番を持つ特定コードの工程が無い場合、さらに1を追加した値と同じ実行順番を持つ特定コードの工程を検索するようにする。
図11は、加工プログラムの一例を示している。図11(a)及び図11(b)は加工プログラムのリストを示しており、検出番号(No.),加工プログラム名(PROG.),特定コードブロックの情報(INFO.),加工プログラム上における特定コードの位置(BLOCK NO.)の項目に加えて、実行順番(SEQ)を入力できる項目が表示されている。これらはいずれも保存したプログラムポインタにより取得可能なデータである。また、その右側には、(PROGRAM)として、選択された工程であるSTEP4の特定コード以降の数ブロックが表示されている。
図11(a)においては、当初の実行順番に従って実行順番(SEQ)が配置されているが、これを操作者の指定によって、実行順番(SEQ)を変更することができる。図11(b)は実行順番(SEQ)の変更の様子を示しており、STEP4の工程を選択して、もともと5番目であった実行順番が3番目になるように変更されており、それに伴い他の工程の実行順番(SEQ)についても変更されている。
図11(c)は加工プログラムの実際のプログラムと実行順番を示している。図11(c)の左側には、先頭行としてO0001というプログラムの名称を示されており、その後本来の加工の実行順に、STEP0として初期化工程、その後、STEP1として工程1、STEP2として工程2と続き、最後はSTEP6の終了工程とされている。そして、各工程の頭には、工程の区切りを示すための特定コードである”$$”が付加されている。このような加工プログラムにおいて、任意のタイミングで加工プログラムを解析させ、特定コードの検出および特定コードのプログラムポインタを検出順に保存させる。これにより、各工程の区切りを認識させることが可能となることは、第1の実施形態等と同様である。
図11(b)における実行順番(SEQ)の変更により、実際の実行順番については図11(c)の右側のようになる。図11(b)の実行順番(SEQ)の順番のとおり、STEP1の工程1の後に、STEP4の工程4が実行される。そして、5番目の工程としてSTEP6の終了工程が行われるため、STEP2の工程2と、STEP3の工程3については実行されずに終了する。
本実施形態のさらに具体的な動作の流れについては、次の第4の実施形態の場合と合わせて後述する。
(第4の実施形態)
第1〜第3の実施形態における特定コードリストの表示に一時停止予約(STP)を入力できる項目を追加することで所望の工程が終了したタイミングで加工プログラムを一時停止させることを可能とする。例えば図12に示された例の場合、後述するように工程4が終了した時点で加工プログラムを一時停止させている。
一時停止予約処理として、各特定コードに関する情報においてプログラムポインタや実行順番に合わせて一時停止予約フラグも追加する。(フローチャート中の”Sp_code_inf[STP]”)
ここで、プログラムを実行中に特定コードブロックとなったときに一時停止予約フラグをチェックすることで、一時停止予約フラグがオンとされている工程の終了後に一時停止を行うことができる。
図12は、加工プログラムの一例を示している。図12(a)は加工プログラムのリストを示しており、検出番号(No.),加工プログラム名(PROG.),特定コードブロックの情報(INFO.),加工プログラム上における特定コードの位置(BLOCK NO.),実行順番(SEQ)を入力できる項目に加えて、一次停止予約(STP)を入力できる項目が表示されている。これらはいずれも保存したプログラムポインタにより取得可能なデータである。また、その右側には、(PROGRAM)として、選択された工程であるSTEP4の特定コード以降の数ブロックが表示されている。
図12(b)は加工プログラムの実際のプログラムと実行順番を示している。加工プログラムの実際の実行順番については、実行順番(SEQ)として規定されているとおり、図12(b)の右側のようになる。図11(b)の実行順番(SEQ)の順番のとおり、STEP1の工程1の後に、STEP4の工程4が実行される。ここで、図12(a)に示されているように、STEP4において一次停止予約(STP)が設定されているため、STEP4の工程4の終了後に一次停止がされている。その後、再実行指令があった時に、一時停止時点から動作が再開される。
本実施形態のさらに具体的な動作の流れについては、次の第4の実施形態の場合と合わせて後述する。
次に、図13、図14、図15、図16のフローチャートに基づいて、第3の実施形態、第4の実施形態の動作について説明する。
まず、図13、図14、図15に基づき、工程の順番変更、一時停止予約の動作について説明する。
・(ステップSI1)特定コード一覧表示画面を表示するモードを選択する。
・(ステップSI2)図11(a)、図12(a)等におけるNO.,PROG.などの項目などのベース画面の表示を行う。
・(ステップSI3)特定コードの取得を行い、特定コードのデータが存在するかどうかを判定する。特定コードのデータが存在する場合(YES)はステップSI4に進み、特定コードのデータが存在しない場合(NO)は終了する。
・(ステップSI4)初期化処理を行う。特定コード数iのカウント値をクリアして0とする。
・(ステップSI5)特定コード数iが最大特定コード数max_iより小さいかどうかを判定する。最大特定コード数max_iよりも小さい場合(YES)はステップSI6に進み、最大特定コード数以上となる場合(NO)はステップSI7に進む。
・(ステップSI6)特定コード一覧表示への追加処理を行う。プログラムポインタとして、特定コードの位置として保存されているプログラムポインタを設定し、そのプログラムポインタにおける、プログラム番号、プログラム位置、同一ブロックの情報の表示を行う。また、特定コード数iに1を加えて、ステップSI5に戻る。
・(ステップSI7)選択動作によってカーソルで選択された特定コードのプログラム表示がされたかどうかを判定する。まだ表示されていない場合(YES)はステップSI8に進み、すでに表示されている場合(NO)はステップSI9に進む。
・(ステップSI8)プログラム表示を行う。特定コード数iとして、カーソルで選択された項目のカウント値を設定し、プログラムポインタとして、その特定コード数iに対応する、保存された特定コードのプログラムポインタを設定する。そして、上記のプログラムポインタにおいて、特定コードブロックと、プログラムカウンタ上でその後実行される所定数のブロックのプログラム表示を行う。
・(ステップSI9)カーソル移動が行われたかどうかを判定する。カーソル移動が行われていない場合(YES)はステップSI10に進み、カーソル移動が行われた場合(NO)はステップSI7に戻る。
・(ステップSI10)選択ブロックの実行順番を変更してないかどうかを判定する。変更していない場合(YES)はステップSI11に進み、変更している場合(NO)はステップSI13に進む。
・(ステップSI11)選択ブロックの一次停止予約を変更していないかどうかを判定する。変更していない場合(YES)はステップSI12に進み、変更している場合(NO)はステップSI20に進む。
・(ステップSI12)他の画面に切り換えたかどうかを判定する。他の画面に切り換えた場合(YES)は終了し、切り換えていない場合(NO)はステップSI7に戻る。
・(ステップSI13)実行順番情報の変更を行う。特定コード数iとして、カーソルで選択された項目のカウント値を設定し、旧実行順番として、取得プログラムポインタsp_code_inf[SEQ][i]の値を入れ、取得プログラムポインタsp_code_inf[SEQ][i]に入力された値を入れる。そして、jの値を0に初期化する。
・(ステップSI14)変更時の方式が自動整理方式かどうかを判定する。自動整理方式の場合(YES)はステップSI15に進み、自動整理方式でない場合(NO)はステップSI11に戻る。
・(ステップSI15)jがmax_iより小さいかどうかを判定する。max_iより小さい場合(YES)はステップSI16に進み、max_i以上の場合(NO)はステップSI11に戻る。
・(ステップSI16)jがiと等しくないかどうかを判定する。等しくない場合(YES)はステップSI17に進み、等しい場合(NO)はステップSI19に進む。
・(ステップSI17)sp_code_inf[SEQ][j]がsp_code_inf[SEQ][i]と等しいかどうかを判定する。等しい場合(YES)はステップSI18に進み、等しくない場合(NO)はステップSI19に進む。
・(ステップSI18)sp_code_inf[SEQ][j]に旧実行順番を入れ、実行順番情報の更新を行う。
・(ステップSI19)jの値に1を加えて更新する。
・(ステップSI20)一時停止予約情報の変更を行う。iにカーソルで選択されたカウント値を入れ、sp_code_inf[STP][i]に入力値を入れ、ステップSI12に戻る。
次に、図16のフローチャートに基づいて、加工工程の順番指定実行、加工工程の終了検出、一時停止の実行について説明する。
・(ステップSJ1)初期化処理を行う。今回の実行順番、前回の実行順番を0とし、now_iをNULLとし、p_pntをINT_PNTとしてプログラムポインタを開始位置に設定する。
・(ステップSJ2)プログラムポインタp_pntがEND_PNTと等しくないかどうかを判定する。等しくない場合(YES)はステップSJ3に進み、等しい場合は終了する。
・(ステップSJ3)プログラムポインタp_pntにおけるブロックデータを取得する。
・(ステップSJ4)取得したブロックが特定コードであるかどうかを判定する。特定コードである場合(YES)はステップSJ8に進み、特定コードではない場合(NO)はステップSJ5に進む。
・(ステップSJ5)取得したブロックが終了コードであるかどうかを判定する。終了コードである場合(YES)は終了し、終了コードではない場合(NO)はステップSJ6に進む。
・(ステップSJ6)取得ブロックの実行を行う。
・(ステップSJ7)プログラムポインタp_pntの値に1を加えて更新し、ステップSJ2に戻る。
・(ステップSJ8)now_iの値がNULLと等しくないかどうかを判定する。NULLに等しくない場合(YES)はステップSJ9に進み、NULLに等しい場合(NO)はステップSJ10に進む。
・(ステップSJ9)sp_code_inf[STP][now_i]の値が0に等しいかどうかを判定する。等しい場合(YES)はステップSJ10に進み、等しくない場合(NO)はステップSJ21に進む。
・(ステップSJ10)jの値を0とする。
・(ステップSJ11)jがmax_i未満であるかどうかを判定する。max_i未満の場合(YES)はステップSJ12に進み、max_i以上である場合(NO)は終了する。
・(ステップSJ12)iの値を0とする。
・(ステップSJ13)iの値がmax_i未満であるかどうかを判定する。max_i未満である場合(YES)はステップSJ14に進み、max_i以上である場合(NO)はステップSJ18に進む。
・(ステップSJ14)今回の実行順番に、前回の実行順番の値にj+1を加えて、今回の実行順番を更新する。
・(ステップSJ15)今回の実行順番が、sp_code_inf[SEQ][i]と等しいかどうかを判定する。sp_code_inf[SEQ][i]と等しい場合(YES)はステップSJ16に進み、等しくない場合(NO)はステップSJ19に進む。
・(ステップSJ16)プログラムポインタp_pntにsp_code_inf[PNT][i]の値を入れて、プログラムポインタの更新を行う。
・(ステップSJ17)前回の実行順番に、sp_code_inf[SEQ][i]を入れ、前回の実行順番の更新を行う。
・(ステップSJ18)jの値に1を加えて更新し、ステップSJ11に戻る。
・(ステップSJ19)iの値に1を加えて更新し、ステップSJ13に戻る。
・(ステップSJ20)now_iにiの値を入れ、ステップSJ2に戻る。
・(ステップSJ21)プログラム一時停止を行う。
・(ステップSJ22)一時停止解除がされたかどうかを判定する。一時停止解除がされた場合(YES)はステップSJ10に戻り、一時停止解除がされない場合(NO)は解除されるまでステップSJ22を繰り返す。
なお、図13〜図16のフローチャートにおいては、第3の実施形態の各工程の実行順番を変更することが可能となるものと、第4の実施形態の一時停止予約が入力されたものの両方を備えたものについての動作について説明したが、いずれか一方のみを備えたものとすることも可能である。

Claims (8)

  1. 加工プログラムをブロックごとに解析し実行することで工作機械を制御しワークの加工を行う数値制御装置において、
    複数の加工工程が組込まれている前記加工プログラムにおける前記加工工程の区切りをあらわす特定コードを予め設定する設定手段と、
    前記加工プログラムの実行前及び前記加工プログラムの実行中のあらかじめ設定されたタイミングで、前記加工プログラムの未実行ブロックを解析し前記特定コードのみを検出する解析検出手段と、
    前記解析検出手段によって検出された前記特定コードのブロックが格納されているメモリ上の位置を取得し保存するデータ取得保存手段と、
    前記データ取得保存手段により取得保存された複数の前記メモリ上の位置を使用して前記特定コードを一覧表示する第一の表示手段と、
    前記第一の表示手段により一覧表示された前記特定コードから、選択された前記特定コードを特定する特定手段と、
    前記解析検出手段による検出が完了し、前記特定手段により特定された前記特定コードの前記メモリ上の位置を使用して、前記特定された前記特定コードを有する前記加工工程から前記加工プログラムを再開動作実行させるプログラム再開手段と、
    を有することを特徴とするプログラム加工再開機能を有する数値制御装置。
  2. 前記特定手段により、前記第一の表示手段により一覧表示された前記特定コードから、選択された前記特定コードの前記メモリ上の位置を使用して、前記特定コードのブロックと、プログラムカウンタ上でその後実行される所定数のブロックを表示する第二の表示手段をさらに備えたことを特徴とする請求項1に記載のプログラム加工再開機能を有する数値制御装置。
  3. 前記タイミングは、前記加工プログラムの実行開始直前から実行中の間、または前記加工プログラムの登録中のいずれかに設定できることを特徴とする請求項1又は2に記載のプログラム加工再開機能を有する数値制御装置。
  4. 前記タイミングの設定は、外部入力機器による設定によって設定できることを特徴とする請求項1〜3のいずれかに記載のプログラム加工再開機能を有する数値制御装置。
  5. 前記加工工程ごとに行われる工具交換指令を前記特定コードとして扱うことを特徴とする請求項1〜4のいずれかに記載のプログラム加工再開機能を有する数値制御装置。
  6. 前記第一の表示手段により一覧表示された前記特定コードを有する前記加工工程の、加工順番の変更を設定できる第一の入力設定手段と、前記第一の入力設定手段で設定された加工順番を特定する第一の入力設定特定手段と、
    を有すことを特徴とする請求項1〜のいずれかに記載のプログラム加工再開機能を有する数値制御装置。
  7. 前記データ取得保存手段により取得保存された前記メモリ上の位置を使用して、前記第一の入力設定特定手段により特定された前記加工工程の加工順番通りに前記加工プログラムを実行させる加工工程順番指定実行手段と、
    を有することを特徴とする請求項6に記載のプログラム加工再開機能を有する数値制御装置。
  8. 前記第一の表示手段により一覧表示された前記特定コードを有する前記加工工程のいずれかの前記加工工程の終了時に一時停止の指定を設定できる第二の入力設定手段と、前記第二の入力設定手段で設定された前記加工プログラムの一時停止指定を特定する第二の入力設定特定手段と、
    前記データ取得保存手段により取得保存された前記メモリ上の位置を使用して、前記加工工程の終了時を検出する加工工程終了検出手段と、
    前記第二の入力設定特定手段により特定された前記加工工程の終了時に前記加工プログラムの一時停止を実行する一時停止実行手段と、
    を有することを特徴とする請求項1〜7のいずれかに記載のプログラム加工再開機能を有する数値制御装置。
JP2014107416A 2014-05-23 2014-05-23 プログラム加工再開機能を有する数値制御装置 Active JP5956506B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2014107416A JP5956506B2 (ja) 2014-05-23 2014-05-23 プログラム加工再開機能を有する数値制御装置
DE102015006443.6A DE102015006443B4 (de) 2014-05-23 2015-05-19 Numerische Steuerung mit programmierter Funktion für einen Bearbeitungsneustart
US14/717,310 US9904279B2 (en) 2014-05-23 2015-05-20 Numerical control device provided with programmed machining restart function
CN201510270753.9A CN105094054B (zh) 2014-05-23 2015-05-25 具有程序加工重启功能的数值控制装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014107416A JP5956506B2 (ja) 2014-05-23 2014-05-23 プログラム加工再開機能を有する数値制御装置

Publications (2)

Publication Number Publication Date
JP2015222550A JP2015222550A (ja) 2015-12-10
JP5956506B2 true JP5956506B2 (ja) 2016-07-27

Family

ID=54431877

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014107416A Active JP5956506B2 (ja) 2014-05-23 2014-05-23 プログラム加工再開機能を有する数値制御装置

Country Status (4)

Country Link
US (1) US9904279B2 (ja)
JP (1) JP5956506B2 (ja)
CN (1) CN105094054B (ja)
DE (1) DE102015006443B4 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102017001765A1 (de) * 2016-02-29 2017-09-14 Fanuc Corporation Numerische steuerung für werkzeugmaschine
JP6408040B2 (ja) * 2017-01-17 2018-10-17 ファナック株式会社 数値制御装置
JP6568152B2 (ja) 2017-06-30 2019-08-28 ファナック株式会社 数値制御装置
JP6687575B2 (ja) * 2017-10-05 2020-04-22 ファナック株式会社 数値制御装置
JP6725471B2 (ja) * 2017-10-24 2020-07-22 ファナック株式会社 観測装置、観測方法及び観測プログラム
JP7194965B2 (ja) * 2018-08-01 2022-12-23 中村留精密工業株式会社 工作機械
CN111474913B (zh) * 2019-01-23 2021-07-20 北京新能源汽车股份有限公司 一种程序运行监测方法、装置及电动汽车
CN109902943B (zh) * 2019-02-02 2021-03-19 宁波吉利汽车研究开发有限公司 编码方法、装置及生产执行***
JP7130157B1 (ja) * 2022-01-25 2022-09-02 Dmg森精機株式会社 数値制御装置
WO2023209857A1 (ja) * 2022-04-27 2023-11-02 ファナック株式会社 機械動作指令プログラム検索装置

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5537250A (en) * 1978-09-05 1980-03-15 Nissan Motor Co Ltd Numerical controlled lathe with display device
JPS6232503A (ja) * 1985-08-06 1987-02-12 Mitsubishi Electric Corp 数値制御装置
JP2676512B2 (ja) 1987-04-23 1997-11-17 ファナック 株式会社 プログラム再開方式
JPH0697413B2 (ja) * 1988-05-30 1994-11-30 オ−クマ株式会社 自動プログラム作成装置
JP3048679B2 (ja) * 1991-06-07 2000-06-05 株式会社森精機製作所 対話形nc装置
JP2926645B2 (ja) 1991-12-05 1999-07-28 オークマ株式会社 数値制御装置
JPH09134211A (ja) * 1995-11-13 1997-05-20 Mitsubishi Electric Corp 数値制御装置およびそのデータ処理方法
JP3448418B2 (ja) 1996-03-22 2003-09-22 オークマ株式会社 数値制御装置
JP3232242B2 (ja) 1996-05-24 2001-11-26 オークマ株式会社 数値制御装置
JPH10143229A (ja) 1996-11-08 1998-05-29 Murata Mach Ltd 工作機械制御装置
JP2004306073A (ja) * 2003-04-04 2004-11-04 Fanuc Ltd レーザ加工装置、及びレーザ加工方法
JP3840244B2 (ja) * 2003-11-12 2006-11-01 キヤノン株式会社 印刷装置、ジョブ処理方法、記憶媒体、プログラム
JP4505295B2 (ja) * 2004-09-16 2010-07-21 ヤマザキマザック株式会社 Nc加工シミュレーション方法及びnc加工シミュレーション装置
JP2006293537A (ja) 2005-04-07 2006-10-26 Fanuc Ltd 数値制御装置
JP4494303B2 (ja) * 2005-07-20 2010-06-30 三菱電機株式会社 数値制御装置
CN101174144A (zh) 2006-10-30 2008-05-07 发那科株式会社 具备继续加工功能的数值控制装置
JP4374045B2 (ja) 2007-08-24 2009-12-02 ファナック株式会社 プログラム再開機能を備えた数値制御装置
JP4480770B2 (ja) * 2008-03-17 2010-06-16 ファナック株式会社 加工再開機能を有する数値制御装置
JP5415311B2 (ja) * 2010-01-29 2014-02-12 株式会社森精機製作所 自動運転を再開可能な工作機械の制御方法およびその装置
JP5246186B2 (ja) 2010-03-15 2013-07-24 オムロン株式会社 コントローラサポート装置、制御プログラムのシミュレーション方法、コントローラのサポートプログラムおよびコントローラのサポートプログラムを格納したコンピュータ読み取り可能な記憶媒体
JP2013071203A (ja) * 2011-09-28 2013-04-22 Brother Industries Ltd 数値制御装置及び制御方法
JP5444489B2 (ja) * 2012-06-13 2014-03-19 ファナック株式会社 数値制御装置のシミュレーション装置
JP5543534B2 (ja) * 2012-07-05 2014-07-09 ファナック株式会社 プログラム再開機能を備えた数値制御装置

Also Published As

Publication number Publication date
CN105094054A (zh) 2015-11-25
CN105094054B (zh) 2017-12-12
DE102015006443B4 (de) 2021-05-06
JP2015222550A (ja) 2015-12-10
DE102015006443A1 (de) 2015-11-26
US20150338845A1 (en) 2015-11-26
US9904279B2 (en) 2018-02-27

Similar Documents

Publication Publication Date Title
JP5956506B2 (ja) プログラム加工再開機能を有する数値制御装置
CN101311857B (zh) 具有重新开始程序块先行处理功能的数值控制器
WO2003071368A1 (fr) Dispositif de commande de robot
US10114363B2 (en) Numerical controller capable of partial correction of machining cycle
JP2004326618A (ja) 工作機械の数値制御装置
JP4480770B2 (ja) 加工再開機能を有する数値制御装置
JP4266893B2 (ja) ロボット制御装置及びロボットシステム
JP2006172388A (ja) 数値制御装置
US9581991B2 (en) DNC operation system
JP2002373008A (ja) 数値制御装置
JP2010044489A (ja) 加工再開機能を有する数値制御装置
JP2004306073A (ja) レーザ加工装置、及びレーザ加工方法
US20110184549A1 (en) Machining Tool Control System and Control Method
JP5365875B2 (ja) 産業用コントローラ
JP2007213241A (ja) 割り込み加工可能な数値制御工作機械
JP2007034797A (ja) 画面データ生成装置、並びに、そのプログラムおよび記録媒体
JP4438743B2 (ja) データ記憶装置
JP4387288B2 (ja) 制御用表示装置、エディタ装置、プログラムおよび記録媒体
JPH056213A (ja) 産業用ロボツト制御方法およびその装置
JP4692452B2 (ja) プログラマブルコントローラのプログラム作成方式
JP2618493B2 (ja) シーケンス制御装置
JP2009099068A (ja) モーションコントローラおよびモーションプログラム有効軸判別方法
JPH0830314A (ja) 数値制御装置
JP2751423B2 (ja) プログラムデバッグ処理方式
JP2001242910A (ja) プログラマブルコントローラのジャンプ命令管理方法

Legal Events

Date Code Title Description
A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20151008

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151013

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160301

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160407

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: 20160524

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160616

R150 Certificate of patent or registration of utility model

Ref document number: 5956506

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150