(57)【要約】【課題】工作機械のプログラム編集における作業者の手間を軽減するとともに、工作機械の作業環境に応じたインタフェイスを実現する。【解決手段】工作機械１は、ワークＷを搬送するローダ装置１０と、ワークＷを加工する加工装置２０とがプログラム３２ａ，３２ｂに基づいて動作する。工作機械１の一部に備えたプログラム編集装置４０は、プログラム３２ａ，３２ｂを表示領域１１０に表示する表示部４１と、表示領域１１０近傍のボタン１９１〜１９３の選択操作に応じて、表示領域１１０に表示されたプログラム３２ａ，３２ｂ内の範囲を指定する指定部４２ａと、表示領域１１０近傍の編集ボタン１８７の選択操作に応じて、指定部４２ａで指定された範囲内の制御コードを非制御コード化し、または範囲内の非制御コードを制御コード化する編集部４２ｂと、を含んでいる。【選択図】図２
2015207134.tif 000002
【特許請求の範囲】
【請求項１】
ワークを搬送するローダ装置と、前記ワークを加工する加工装置とを備え、前記ローダ装置及び前記加工装置がプログラムに基づいて駆動する工作機械であって、
前記工作機械の一部に、前記プログラムを編集可能なプログラム編集装置を備え、
前記プログラム編集装置は、
前記プログラムを表示領域に表示する表示部と、
前記表示領域近傍のボタンの選択操作に応じて、前記表示領域に表示された前記プログラム内の範囲を指定する指定部と、
前記表示領域近傍の編集ボタンの選択操作に応じて、前記指定部で指定された前記範囲内の制御コードを非制御コード化し、または前記範囲内の非制御コードを制御コード化する編集部と、を含む
ことを特徴とする工作機械。
【請求項２】
前記編集部は、前記範囲内の制御コードまたは非制御コードが複数のワードで構成されている場合、前記制御コードを非制御コード化する際に前記複数のワード間のスペースを削除し、または前記非制御コードを制御コード化する際に前記複数のワード間にスペースを挿入することを特徴とする請求項１に記載の工作機械。
【請求項３】
前記指定部は、前記作業者の操作に応じてカーソルを開始位置から終了位置まで移動させることで前記範囲を指定することを特徴とする請求項１または請求項２に記載の工作機械。
【請求項４】
前記指定部は、非制御コードの規約に基づいて非制御コードの開始位置及び終了位置を自動的に認識し、認識した前記開始位置及び前記終了位置に基づいて前記範囲を指定することを特徴とする請求項１〜請求項３のうちいずれか１項に記載の工作機械。
【請求項５】
前記編集部は、制御コードと非制御コードとで表示態様を自動的に変更することを特徴とする請求項１〜請求項４のうちいずれか１項に記載の工作機械。
【請求項６】
ローダ装置によるワークの搬送と、加工装置による前記ワークの加工とを行うためのプログラムを編集する工作機械のプログラム編集方法であって、
前記工作機械に設けられた表示部の表示領域に前記プログラムを表示する表示ステップと、
前記表示領域近傍のボタンの選択操作に応じて、前記表示領域に表示された前記プログラム内の範囲を指定する指定ステップと、
前記表示領域近傍の編集ボタンの選択操作に応じて、前記指定ステップで指定された前記範囲内の制御コードを非制御コード化し、または前記範囲内の非制御コードを制御コード化する編集ステップと、を含む
ことを特徴とするプログラム編集方法。
【請求項７】
ローダ装置によるワークの搬送と、加工装置による前記ワークの加工とをプログラムに基づいて行う工作機械の制御部に、
前記工作機械に設けられた表示部の表示領域に前記プログラムを表示する表示処理と、
前記表示領域近傍のボタンの選択操作に応じて、前記表示領域に表示された前記プログラム内の範囲を指定する指定処理と、
前記表示領域近傍の編集ボタンの選択操作に応じて、前記指定処理で指定された前記範囲内の制御コードを非制御コード化し、または前記範囲内の非制御コードを制御コード化する編集処理と、を実行させることを特徴とする制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ワークの搬送とワークの加工とを行うためのプログラムを編集可能な工作機械、プログラム編集方法、及び制御プログラムに関する。
【背景技術】
【０００２】
工作機械は、ワークを搬送するローダ装置と、ワークを加工する加工装置と、ローダ装置及び加工装置をプログラムに基づいて制御する制御装置とを備える。また、工作機械は、作業者がプログラムの切り替えや制御装置の各種設定などを行うためのコントローラを備える。また、コントローラにはプログラム等を表示する表示部が設けられている。作業者は、コントローラを操作することにより、表示部に表示されたプログラムを編集することも可能である。プログラムの編集としては、プログラム内の制御コードを非制御コード化（コメント化）すること及び非制御コードを制御コード化（コメント解除）することがあげられる。
【０００３】
特許文献１，２には、それぞれ、プログラムを編集する装置が記載されている。特許文献１に記載された装置は、作業者によるボタン操作に応じて、プログラムの指定範囲の制御コードをコメント化する。また、特許文献２に記載された装置は、作業者によるボタン操作に応じて、図形言語で記述されたプログラムの指定範囲の図形要素（非コメント化された図形要素）をコメント化し、また指定範囲の図形要素（コメント化された図形要素）を非コメント化する。このように、特許文献１，２に記載された装置においては、作業者がボタン操作を行うだけで制御コードのコメント化などが行われるので、プログラムの編集における作業者の手間が軽減される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−２５２６３号公報
【特許文献２】特開２００３−１４０７１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、上記の特許文献１，２に記載された装置においては、作業者がマウスなどを操作してプログラムの範囲を指定することとされている。一方において、作業者が工作機械に設けられたコントローラ上でプログラムの編集を行う場合は、作業スペースの制約などの観点から、作業者がマウスなどを操作することは困難である。従って、上記の特許文献１，２に記載された構成をそのまま工作機械に適用することはできない。
【０００６】
本発明は、前述した事情に鑑みてなされたものであり、工作機械のプログラム編集における作業者の手間を軽減するとともに、作業者が工作機械の作業環境に応じたインタフェイスでプログラム編集を実行可能な工作機械、プログラム編集方法、及び制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明では、ワークを搬送するローダ装置と、ワークを加工する加工装置とを備え、ローダ装置及び加工装置がプログラムに基づいて駆動する工作機械であって、工作機械の一部に、プログラムを編集可能なプログラム編集装置を備え、プログラム編集装置は、プログラムを表示領域に表示する表示部と、表示領域近傍のボタンの選択操作に応じて、表示領域に表示されたプログラム内の範囲を指定する指定部と、表示領域近傍の編集ボタンの選択操作に応じて、指定部で指定された範囲内の制御コードを非制御コード化し、または範囲内の非制御コードを制御コード化する編集部と、を含むことを特徴とする。
【０００８】
また、編集部は、範囲内の制御コードまたは非制御コードが複数のワードで構成されている場合、制御コードを非制御コード化する際に複数のワード間のスペースを削除し、または非制御コードを制御コード化する際に複数のワード間にスペースを挿入する構成でもよい。
【０００９】
また、指定部は、作業者の操作に応じてカーソルを開始位置から終了位置まで移動させることで範囲を指定してもよい。また、指定部は、非制御コードの規約に基づいて非制御コードの開始位置及び終了位置を自動的に認識し、認識した開始位置及び終了位置に基づいて範囲を指定してもよい。また、編集部は、制御コードと非制御コードとで表示態様を自動的に変更してもよい。
【００１０】
また、本発明では、ローダ装置によるワークの搬送と、加工装置によるワークの加工とを行うためのプログラムを編集する工作機械のプログラム編集方法であって、工作機械に設けられた表示部の表示領域にプログラムを表示する表示ステップと、表示領域近傍のボタンの選択操作に応じて、表示領域に表示されたプログラム内の範囲を指定する指定ステップと、表示領域近傍の編集ボタンの選択操作に応じて、指定ステップで指定された範囲内の制御コードを非制御コード化し、または範囲内の非制御コードを制御コード化する編集ステップと、を含むことを特徴とする。
【００１１】
また、本発明では、ローダ装置によるワークの搬送と、加工装置によるワークの加工とをプログラムに基づいて行う工作機械の制御部に、工作機械に設けられた表示部の表示領域にプログラムを表示する表示処理と、表示領域近傍のボタンの選択操作に応じて、表示領域に表示されたプログラム内の範囲を指定する指定処理と、表示領域近傍の編集ボタンの選択操作に応じて、指定処理で指定された範囲内の制御コードを非制御コード化し、または範囲内の非制御コードを制御コード化する編集処理と、を実行させることを特徴とする。
【発明の効果】
【００１２】
本発明によれば、表示部がプログラムを表示領域に表示し、指定部が表示領域近傍のボタンの選択操作に応じて、表示領域に表示されたプログラム内の範囲を指定し、編集部が表示領域近傍の編集ボタンの選択操作に応じて、指定部で指定された範囲内の制御コードを非制御コード化し、または範囲内の非制御コードを制御コード化する。このような構成によれば、工作機械のプログラム編集における作業者の手間を軽減するとともに、作業者が工作機械の作業環境に応じたインタフェイスでプログラム編集を実行することができる。
【００１３】
また、編集部は、範囲内の制御コードまたは非制御コードが複数のワードで構成されている場合、制御コードを非制御コード化する際に複数のワード間のスペースを削除し、または非制御コードを制御コード化する際に複数のワード間にスペースを挿入する。このような構成によれば、制御コードの各ワードを作業者に認識させやすくすることができる。また、一まとまりのコメントを作業者に認識させやすくすることができる。
【００１４】
また、指定部は、作業者の操作に応じてカーソルを開始位置から終了位置まで移動させることで範囲を指定するので、作業者はマウスなどを用いることなくプログラム内の範囲を指定することができる。また、指定部は、非制御コードの規約に基づいて非制御コードの開始位置及び終了位置を自動的に認識し、認識した開始位置及び終了位置に基づいて範囲を指定するので、指定部は自動的に非制御コードの範囲を指定することができ、作業者の手間をより一層軽減させることができる。また、編集部は、制御コードと非制御コードとで表示態様を自動的に変更するので、作業者に非制御コードの位置を認識させやすくすることができる。
【図面の簡単な説明】
【００１５】
【図１】実施形態に係る工作機械の一例を示す図である。
【図２】図１に示す制御装置及びコントローラの構成を示すブロック図である。
【図３】図２に示す表示部の表示画面の表示例を示す図である。
【図４】実施形態に係るプログラム編集処理を説明するためのフォローチャートである。
【図５】実施形態に係るプログラム編集処理を説明するためのフォローチャートである。
【図６】作業者によるプログラム編集の作業手順を説明するための表示画面の表示例を示す図である。
【図７】作業者によるプログラム編集の作業手順を説明するための表示画面の表示例を示す図である。
【発明を実施するための形態】
【００１６】
以下、本発明の実施形態について図面を参照しながら説明する。ただし、本発明はこれに限定されるものではない。また、図面においては実施形態を説明するため、一部分を大きくまたは強調して記載するなど適宜縮尺を変更して表現している。以下の各図において、ＸＹＺ座標系を用いて図中の方向を説明する。このＸＹＺ座標系においては、水平面に平行な平面をＸＺ平面とする。このＸＺ平面に平行な主軸（後述する主軸２１，２２）の方向をＺ方向と表記し、Ｚ方向に直交する方向（ワークＷに対する切削量を規定する方向）をＸ方向と表記する。また、ＸＺ平面に垂直な方向はＹ方向と表記する。Ｘ方向、Ｙ方向及びＺ方向のそれぞれは、図中の矢印の方向が＋方向であり、矢印の方向とは反対の方向が−方向であるものとして説明する。
【００１７】
図１（ａ）及び（ｂ）は、実施形態に係る工作機械１の一例を示す図である。図１（ａ）は、工作機械１を＋Ｚ側から見たときの例を示している。図１（ｂ）は、工作機械１を＋Ｙ側から見たときの例を示している。この工作機械１は、例えば平行２軸旋盤である。図１において、工作機械１の＋Ｚ側が正面であり、−Ｚ側が背面である。また、工作機械１の±Ｘ側は側面であり、Ｘ方向は工作機械１の左右方向である。図１（ａ）及び（ｂ）に示すように、工作機械１は、ローダ装置１０と、加工装置２０、制御装置３０と、コントローラ（プログラム編集装置）４０と、を備えている。
【００１８】
ローダ装置１０は、ワーク保持部１１と、ローダ駆動部１３とを備えている。ローダ装置１０は、例えば、後述する主軸２１，２２とワーク搬入部２５との間の搬送経路ＴにおいてワークＷを搬送する。ワーク保持部１１は、ワークＷを複数の把持爪によって把持するローダチャック１２を有している。ローダチャック１２は、例えば、ワークＷを把持して−Ｙ方向に向けた姿勢と、−Ｚ方向に向けた姿勢（後述する主軸２１，２２にワークＷを向けた姿勢）とに移動可能に形成される。なお、ローダ装置１０は、複数のローダチャック１２が形成されてもよい。
【００１９】
ローダ駆動部１３は、Ｘ駆動部１４と、Ｚ駆動部１５と、Ｙ駆動部１６とを有している。Ｘ駆動部１４は、不図示の駆動源により、Ｘ移動体１４ａをガイドレール１４ｂに沿ってＸ方向に移動可能に構成している。Ｚ駆動部１５は、Ｘ移動体１４ａに形成され、不図示の駆動源により、Ｚ移動体１５ａを不図示のガイド部に沿ってＺ方向に移動可能に構成している。Ｙ駆動部１６は、Ｚ移動体１５ａに形成され、不図示の駆動源により、Ｙ移動体１６ａをガイド部１６ｂに沿ってＹ方向に移動可能に構成している。
【００２０】
ワーク保持部１１は、Ｙ移動体１６ａの下部に形成される。ワーク保持部１１のローダチャック１２により把持したワークＷは、Ｘ駆動部１４、Ｚ駆動部１５、及びＹ駆動部１６がそれぞれ駆動することにより、Ｘ〜Ｚ方向またはこれらを合成した方向に搬送される。以上のように構成されるローダ装置１０の駆動は、後述する制御装置３０によって制御される。
【００２１】
加工装置２０は、主軸２１，２２と、タレット２３，２４と、ワーク搬入部２５とを有している。主軸２１，２２は、Ｘ方向に並んで配置され、それぞれ不図示の駆動装置によって中心軸ＡＸ１，ＡＸ２まわりに回転する。主軸２１，２２の＋Ｚ側の端部には、それぞれワークＷを把持可能な複数の把握爪２１ａ，２２ａが設けられている。タレット２３は、主軸２１の−Ｘ側に配置されている。タレット２４は、主軸２２の＋Ｘ側に配置されている。
【００２２】
タレット２３，２４は、それぞれ不図示の駆動装置によって、Ｚ方向に平行な軸まわりに回転する。また、タレット２３，２４の周面には、不図示の複数の切削工具が保持されており、タレット２３，２４を回転させることにより、所望の切削工具が選択される。切削工具としては、ワークＷに対して切削加工を施すバイト等の他、ドリルやエンドミル等の回転工具が用いられてもよい。また、タレット２３，２４は、不図示の駆動装置により、ワークＷに対して例えばＸ方向、Ｙ方向、及びＺ方向、またはこれらを合成した方向に移動可能となっている。ただし、主軸２１，２２やタレット２３，２４は２つであることに限定されず、例えば主軸及びタレットのいずれか一方または双方が１つあってもよい。
【００２３】
ワーク搬入部２５には、加工対象であるワークＷが載置される。ワーク搬入部２５としては、例えば固定台が用いられるが、これに限定されるものではなく、コンベアやロータリー式の載置台などが用いられてもよい。なお、ワーク搬入部２５は、ワークＷの搬出部を兼ねてもよく、この搬出部をワーク搬入部２５と異なる部分に配置してもよい。以上のように構成される加工装置２０の駆動は、後述する制御装置３０によって制御される。
【００２４】
制御装置３０は、所定のプログラムに基づいてローダ装置１０や加工装置２０の動作を統括的に制御する。なお、制御装置３０は、有線または無線を介して上位制御装置５０に接続されてもよい。制御装置３０は、上位制御装置５０の記憶部に記憶されたプログラムに基づいてローダ装置１０や加工装置２０の動作を制御してもよい。
【００２５】
コントローラ４０は、作業者（オペレータ）により操作される工作機械１の操作装置である。コントローラ４０は、制御装置３０に有線または無線を介して接続されている。コントローラ４０は、ローダ装置１０や加工装置２０を囲むように配置されたパネルＰＬに保持される。コントローラ４０は、各種スイッチを備えるとともに、液晶ディスプレイのような表示部（図２参照）を備えている。コントローラ４０は、例えば作業者によるプログラムの切り替えや制御装置３０の各種設定などの操作（入力）に用いられる。また、コントローラ４０は、作業者によるプログラムの編集の操作（入力）にも用いられる。
【００２６】
図２は、図１に示す制御装置３０及びコントローラ４０の構成を示すブロック図である。図２に示すように、制御装置３０は、ＣＰＵ（Central Processing Unit ）などの演算装置３１及び第１記憶部３２を有している。演算装置３１は、第１記憶部３２に記憶されている第１プログラム３２ａ（ローダプログラム）に基づいてローダ装置１０の動作を制御するとともに、第１記憶部３２に記憶されている第２プログラム３２ｂ（ＮＣプログラム；Numerical Controlプログラム）に基づいて加工装置２０の動作を制御する。第１記憶部３２は、第１プログラム３２ａ及び第２プログラム３２ｂを記憶するほかに、ローダ装置１０や加工装置２０の制御に必要な各種情報を記憶する。なお、ローダ装置１０の動作を制御する第１プログラム３２ａと加工装置２０の動作を制御する第２プログラム３２ｂは異なるプログラム言語で作成されている。以下の説明においては、第１プログラム３２ａと第２プログラム３２ｂとを総称する場合は単にプログラムという。
【００２７】
コントローラ４０は、表示部４１、制御部４２、及び第２記憶部４３を備えている。表示部４１は、液晶表示パネルなどで構成された表示画面４１ａと、この表示画面４１ａ上に形成されたタッチパネル４１ｂとを備えている。表示画面４１ａは、プログラムを表示するとともに、作業者によって選択（押下）されるボタンやキーの画像を表示する。タッチパネル４１ｂは、作業者がプログラムの編集などを行う際に、作業者が触れた位置を示す信号を制御部４２に出力する。
【００２８】
制御部４２は、コントローラ４０の制御全般を司る処理部である。図２に示すように、制御部４２は、指定部４２ａ及び編集部４２ｂを有している。指定部４２ａは、作業者によるボタンやキーの画像の選択操作に応じて、表示画面４１ａに表示されたプログラムの範囲を指定する処理を行う。編集部４２ｂは、作業者によるボタンの画像の選択操作に応じて、指定部４２ａで指定された範囲内の制御コードを非制御コード化し、または指定部４２ａで指定された範囲内の非制御コードを制御コード化する処理を行う。なお、制御部４２（指定部４２ａ及び編集部４２ｂ）は、タッチパネル４１ｂからの信号に基づいて作業者が選択（押下）した画像の位置を認識することにより、作業者が選択したボタンを認識する。
【００２９】
ここで、非制御コードは、プログラム内においてローダ装置１０や加工装置２０の制御とは無関係な文字（キャラクタ）または文字列のことをいう。すなわち、非制御コードは、制御装置３０の演算装置３１に読み込まれない文字または文字列である。また、制御コードは、プログラム内において非制御コード以外の文字または文字列のことをいう。すなわち、制御コードは、制御装置３０の演算装置３１に読み込まれる文字または文字列である。
【００３０】
制御コードとしては、プログラム名、変数、シーケンス番号、命令コードなどが含まれる。命令コードは、ローダ装置１０や加工装置２０に対して動作を実行させるための文字または文字列である。例えば第２プログラム３２ｂ（ＮＣプログラム）の場合、命令コードはＭ，Ｓ，Ｇなどのアルファベットと数字との組合せで構成される。具体的には、「Ｍ０３」は主軸を時計回りに回転させる制御を指示する命令コードである。また、「Ｍ０５」は主軸を停止させる制御を指示する命令コードである。
【００３１】
非制御コードのことをコメント（注釈）という。作業者はプログラムの中に非制御コードとしてのコメントを入れることができる。例えば、作業者はプログラムの説明や、プログラム内の処理の説明などをコメントとして書き込む。このコメントは、制御コードと区別するために、制御装置３０固有の規約に基づいて書き込まれる。本実施形態においては、コメントは丸括弧‘（）’で括られる。
【００３２】
また、作業者は制御コードをテスト的に消去し、消去した制御コードを履歴として残したい場合に、既存の制御コードをコメントに変換する。また、作業者は現在使用しない制御コードを無効化する場合にも、既存の制御コードをコメントに変換する。制御コードを非制御コードに変換することを非制御コード化という。本実施形態においては、非制御コード化のことをコメント化と表現する。また、作業者は非制御コードを制御コードに変換することも可能である。非制御コードを制御コードに変換することを制御コード化という。本実施形態においては、制御コード化のことをコメント解除（または非コメント化、コメント復元ともいう。）と表現する。
【００３３】
図２の説明に戻り、第２記憶部４３は、制御部４２に処理または制御を実行させるための制御プログラム４３ａや各種情報を記憶する。なお、制御部４２はＣＰＵなどの演算装置を有し、制御部４２の演算装置が制御プログラム４３ａに基づいて実行する処理または制御が制御部４２の各部の構成（指定部４２ａ及び編集部４２ｂ）に相当する。
【００３４】
図３は、図２に示す表示部４１の表示画面４１ａの表示例を示す図である。図３に示すように、表示画面４１ａの左側には、プログラム（第１プログラム３２ａ、第２プログラム３２ｂ）を表示するプログラム表示領域（表示領域）１１０が設けられている。図３に示す例では、プログラム表示領域１１０には第１プログラム３２ａ（ローダプログラム）の具体例が表示されている。ここで、丸括弧で括られた文字列がコメント（非制御コード）である。例えば、（♯９  ＥＳＣＡＰＥ）は、♯９にエスケープするという覚え書きのためのコメントである。また、プログラム内の行の先頭からセミコロン‘；’までをブロックという。つまり、ブロックは１行分のプログラムである。また、アルファベットと数字との組合せからなる１つの命令コードをワードという。このワードがプログラムの最小単位となる。なお、プログラム表示領域１１０内にはカーソル２００が表示される。
【００３５】
また、表示画面４１ａの右側の上部には、作業者がプログラム表示領域１１０に書き込む文字（アルファベット、数字、記号など）を入力するための入力欄であるキーインバッファ部１２０が設けられている。また、キーインバッファ部１２０の下には、プログラム表示領域１１０の表示範囲（ページ）を上下にスクロール（移動）させるページキー１３１と、プログラム表示領域１１０上に表示されるカーソル２００を上下及び左右に移動させるカーソルキー１３２と、プログラム表示領域１１０やカーソル２００を元の位置に戻すリセットキー１３３とが設けられている。
【００３６】
また、ページキー１３１、カーソルキー１３２、及びリセットキー１３３の下には、アルファベット（ローマ字）を入力するためのアルファベットキー１４１と、数字や演算記号（丸括弧、ドット、スラッシュなど）などを入力するためのテンキー１５１とが設けられている。また、アルファベットキー１４１及びテンキー１５１の下には、シフトキー１６１（ＳＨＩＦＴと表記しているキー）、キャンセルキー１６２（ＣＡＮＣＥＬと表記しているキー）、インプットキー１６３（ＩＮＰＵＴと表記しているキー）、オルトキー１６４（ＡＬＴＥＲと表記しているキー）、インサートキー１６５（ＩＮＳＥＲＴと表記しているキー）、及びデリートキー１６６（ＤＥＬＥＴＥと表記しているキー）が設けられている。なお、シフトキー１６１、キャンセルキー１６２、インプットキー１６３、オルトキー１６４、インサートキー１６５、及びデリートキー１６６を総称して特殊キーという。
【００３７】
また、表示画面４１ａの下部には、第１操作メニューボタン１７０ｍが設けられている。第１操作メニューボタン１７０ｍは、プログラム入力ボタン１７１及びプログラム編集開始ボタン１７２を含んでいる。プログラム入力ボタン１７１は、作業者がアルファベットキー１４１、テンキー１５１、及び特殊キー１６１〜１６６などを選択操作して、直接、命令コードなどの文字をプログラム内に入力する際に選択されるボタンである。プログラム編集開始ボタン１７２は、作業者の簡易な操作でプログラムの編集を実行させる処理を開始させるボタンである。図３に示すように、作業者によってプログラム編集開始ボタン１７２が選択されると、第１操作メニューボタン１７０ｍに代えて第２操作メニューボタン１８０ｍが表示される。
【００３８】
第２操作メニューボタン１８０ｍは、戻るボタン１８１、頭出しボタン１８２、行頭出しボタン１８３、範囲指定ボタン１８４、取消ボタン１８５、複製ボタン１８６、及びコメントＯＮ／ＯＦＦボタン（編集ボタン）１８７を含んでいる。戻るボタン１８１は、１つ前の表示状態すなわち第１操作メニューボタン１７０ｍに戻すためのボタンである。また、頭出しボタン１８２は、カーソル２００の位置をプログラム表示領域１１０の表示範囲の先頭に移動させるボタンである。また、行頭出しボタン１８３は、カーソル２００の位置をプログラム表示領域１１０のプログラムの行の先頭に移動させるボタンである。また、範囲指定ボタン１８４は、プログラム内の範囲をカーソル２００で指定する処理を開始させるボタンである。図３に示すように、作業者によって範囲指定ボタン１８４が選択されると、第２操作メニューボタン１８０ｍに代えて第３操作メニューボタン１９０ｍが表示される。
【００３９】
取消ボタン１８５は、頭出しボタン１８２、行頭出しボタン１８３、範囲指定ボタン１８４、及び複製ボタン１８６の選択操作を取り消すためのボタンである。複製ボタン１８６は、カーソル２００で指定された範囲の文字を複製（コピー）するためのボタンである。コメントＯＮ／ＯＦＦボタン１８７は、カーソル２００で指定された範囲の制御コードをコメント化し、またカーソル２００で指定された範囲の非制御コードをコメント解除するためのボタンである。
【００４０】
第３操作メニューボタン１９０ｍは、戻るボタン１８１、開始ボタン１９１、終了ボタン１９２、取消ボタン１９３、及びコメントＯＮ／ＯＦＦボタン１８７を含んでいる。なお、戻るボタン１８１及びコメントＯＮ／ＯＦＦボタン１８７は、第２操作メニューボタン１８０ｍにおける戻るボタン１８１及びコメントＯＮ／ＯＦＦボタン１８７と同様の機能のボタンであるため、同一符号を付している。開始ボタン１９１は、カーソル２００による範囲指定を開始させるためのボタンである。終了ボタン１９２は、カーソル２００による範囲指定を終了させるためのボタンである。取消ボタン１９３は、カーソル２００による範囲指定を取り消すためのボタンである。
【００４１】
次に、上記の制御部４２が実行する処理について説明する。
【００４２】
図４及び図５は、実施形態に係るプログラム編集処理を説明するためのフォローチャートである。また、図６及び図７は、作業者によるプログラム編集の作業手順を説明するための表示画面４１ａの表示例を示す図である。図４及び図５に示す処理において、制御部４２は、表示部４１の表示画面４１ａに図３に示したキーやボタンの画像を表示するとともに、作業者による所定のボタンの操作に応じて編集対象のプログラムをプログラム表示領域１１０に表示する（ステップＳ１）。次に、制御部４２は、作業者によりプログラム編集開始ボタン１７２が選択されたか否かを判定する（ステップＳ２）。制御部４２は、作業者によりプログラム編集開始ボタン１７２が選択されたと判定した場合は（ステップＳ２のＹＥＳ）、作業者の簡易な操作でプログラムの編集を実行させる処理（ステップＳ３〜Ｓ１９）を実行する。
【００４３】
なお、制御部４２は、作業者によりプログラム入力ボタン１７１が選択されたと判定した場合は、作業者がキーインバッファ部１２０に入力した命令コードなどの文字をプログラム表示領域１１０のプログラム内に直接入力する処理を開始する。例えば、作業者は、「Ｈ９０」というワードをコメント化したい場合は、アルファベットキー１４１やテンキー１５１などを操作してキーインバッファ部１２０に「（Ｈ９０）」を入力する。そして、作業者がオルトキー１６４を選択操作すると、制御部４２によってカーソル２００の位置の「Ｈ９０」が「（Ｈ９０）」に上書きされる。
【００４４】
指定部４２ａは、プログラム編集開始ボタン１７２が選択された場合（ステップＳ２のＹＥＳ）、第１操作メニューボタン１７０ｍを第２操作メニューボタン１８０ｍに切り替えて表示する（ステップＳ３）。指定部４２ａは、作業者により範囲指定ボタン１８４が選択されたか否かを判定する（ステップＳ４）。指定部４２ａは、範囲指定ボタン１８４が選択されていないと判定した場合は（ステップＳ４のＮＯ）、ステップＳ１１の処理に移行する。一方、指定部４２ａは、範囲指定ボタン１８４が選択されたと判定した場合は（ステップＳ４のＹＥＳ）、第２操作メニューボタン１８０ｍに切り替えて第３操作メニューボタン１９０ｍを表示する（ステップＳ５）。
【００４５】
次に、指定部４２ａは、プログラム表示領域１１０内のカーソル２００の位置がコメント（非制御コード）の開始位置つまり丸括弧‘（’、またはコメント（非制御コード）の終了位置つまり丸括弧‘）’であるか否かを判定する（ステップＳ６）。指定部４２ａは、カーソル２００の位置がコメントの開始位置または終了位置であると判定した場合は（ステップＳ６のＹＥＳ）、コメントの開始位置または終了位置に対応するコメントの終了位置または開始位置を認識する（ステップＳ７）。そして、指定部４２ａは、ステップＳ６，Ｓ７で認識したコメントの開始位置及び終了位置に基づいて自動的に範囲を指定する（ステップＳ８）。
【００４６】
例えば、指定部４２ａは、カーソル２００の位置がコメント（♯９  ＥＳＣＡＰＥ）の開始位置‘（’であると判定した場合は、開始位置‘（’に対応する終了位置‘）’を認識する。そして、指定部４２ａは、カーソル２００の範囲を、開始位置‘（’から終了位置‘）’までの範囲に拡大し、カーソル２００の範囲を指定範囲と設定する。このような構成によれば、指定部４２ａは、自動的に非制御コードの範囲を指定することができ、作業者の手間を軽減させることができる。
【００４７】
また、指定部４２ａは、第３操作メニューボタン１９０ｍまたはカーソルキー１３２が選択されたか否かを判定する（ステップＳ９）。指定部４２ａは、第３操作メニューボタン１９０ｍまたはカーソルキー１３２が選択されたと判定した場合は（ステップＳ９のＹＥＳ）、その選択された第３操作メニューボタン１９０ｍまたはカーソルキー１３２の操作に応じて範囲を指定する（ステップＳ１０）。
【００４８】
例えば、作業者は、カーソルキー１３２を操作してカーソル２００の位置を所定の位置に移動させる。そして、作業者は、開始ボタン１９１を選択して範囲指定を開始させる。図６に示す例では、作業者はカーソル２００の位置を「Ｈ９０」の位置に移動させ、開始ボタン１９１を選択している。また、作業者は、カーソルキー１３２を操作してカーソル２００の位置を移動させる。そして、作業者は、終了ボタン１９２を選択して範囲指定を終了させる。図６に示す例では、作業者はカーソル２００の位置を「Ｒ♯１」の位置に移動させ、終了ボタン１９２を選択している。このような作業者の操作により、カーソル２００の範囲が開始ボタン１９１が選択されたときのカーソル２００の位置から終了ボタン１９２が選択されたときのカーソル２００の位置まで拡大し、指定部４２ａによりカーソル２００の範囲が指定範囲として設定される。
【００４９】
次に、編集部４２ｂは、作業者によりコメントＯＮ／ＯＦＦボタン１８７が選択されたか否かを判定する（ステップＳ１１）。編集部４２ｂは、コメントＯＮ／ＯＦＦボタン１８７が選択されていないと判定した場合は（ステップＳ１１のＮＯ）、処理を終了する。一方、編集部４２ｂは、コメントＯＮ／ＯＦＦボタン１８７が選択されたと判定した場合は（ステップＳ１１のＹＥＳ）、指定部４２ａによりステップＳ８またはステップＳ１０で指定された指定範囲内の制御コードをコメント化（非制御コード化）し、また指定範囲内の非制御コードをコメント解除（制御コード化）する（ステップＳ１２）。図７に示す例では、作業者がコメントＯＮ／ＯＦＦボタン１８７を選択したことにより、編集部４２ｂは指定範囲の制御コード「Ｈ９０  Ｐ♯３  Ｑ♯２  Ｒ♯１」をコメント「（Ｈ９０Ｐ♯３Ｑ♯２Ｒ♯１）」に変換している。このように、作業者によるコメントＯＮ／ＯＦＦボタン１８７の選択操作だけで、指定範囲のコメント化やコメント解除を実現することができる。
【００５０】
また、編集部４２ｂは、コメント解除した制御コードまたはコメント化した非制御コードに含まれるワードを認識する（ステップＳ１３）。そして、編集部４２ｂは、コメント解除した制御コードまたはコメント化した非制御コードが複数のワードで構成されているか否かを判定する（ステップＳ１４）。編集部４２ｂは、複数のワードで構成されていると判定した場合において（ステップＳ１４のＹＥＳ）、ステップＳ１２で複数のワードで構成された制御コードをコメント化しているときは、複数のワード間のスペースを削除する（ステップＳ１５）。また、編集部４２ｂは、複数のワードで構成されていると判定した場合において（ステップＳ１４のＹＥＳ）、ステップＳ１２で複数のワードで構成された非制御コードをコメント解除しているときは、複数のワード間にスペースを挿入する（ステップＳ１６）。なお、編集部４２ｂは、複数のワードで構成されていないと判定した場合は（ステップＳ１４のＮＯ）、ステップＳ１７の処理に移行する。
【００５１】
例えば、編集部４２ｂは、複数のワードで構成された「Ｈ９０  Ｐ♯４」をコメント化する場合、ステップＳ１２で「Ｈ９０  Ｐ♯４」に丸括弧を付すとともに、ステップＳ１５で「Ｈ９０」と「Ｐ♯４」の間のスペースを削除して、「（Ｈ９０Ｐ♯４）」に変換する。また、編集部４２ｂは、複数のワードで構成された「（Ｈ９０Ｐ♯４）」をコメント解除する場合、ステップＳ１２で「（Ｈ９０Ｐ♯４）」の丸括弧を削除するとともに、「Ｈ９０」と「Ｐ♯４」の間のスペースを挿入して、「Ｈ９０  Ｐ♯４」に変換する。このように、制御コードのワード間にスペースを挿入することにより、各ワードを作業者に認識させやすくすることができる。また、非制御コードのワード間のスペースを削除することにより、一まとまりのコメントを作業者に認識させやすくすることができる。
【００５２】
次に、編集部４２ｂは、制御コードと非制御コード（コメント）との色分けを実行する（ステップＳ１７）。例えば、編集部４２ｂは、コメント解除した制御コードの文字の色を自動的に黒色とし、コメント化した非制御コードの文字の色を自動的に緑色とする。なお、第１プログラム３２ａにおいて、プログラムの行の先頭に挿入されるブロックデリート（図３に示す例では「／６」）は、黒色とされる命令コードなどとは異なる色（例えば赤色）とされる。このブロックデリートは、ある特定条件下においてはブロック内の制御が実行されるが、特定条件以外の条件下においてはブロック内の制御が実行されないことを示す。なお、制御部４２がブロックデリートの色の濃さを特定条件にあるか否かに応じて変化させることにより、作業者に工作機械の状況を認識させてもよい。
【００５３】
その後、制御部４２は、戻るボタン１８１が選択されたと判定した場合は（ステップＳ１８のＹＥＳ）、第２操作メニューボタン１８０ｍや第１操作メニューボタン１７０ｍの表示に戻し（ステップＳ１９）、また、終了ボタン１９２が選択されたと判定した場合は（ステップＳ１８のＹＥＳ）、第２操作メニューボタン１８０ｍの表示に戻す（ステップＳ１９）。
【００５４】
第２プログラム３２ｂ（ＮＣプログラム）におけるコメント化及びコメント解除の具体例について説明する。なお、以下の説明において下線がカーソル２００で指定された範囲とする。
（１）編集部４２ｂがＧ５０Ｓ１５００をコメント化した場合は、（Ｇ５０）Ｓ１５００となる。
（２）編集部４２ｂがＧ５０Ｓ１５００をコメント化した場合は、（Ｇ５０Ｓ１５００）となる。
（３）編集部４２ｂが（Ｇ５０）Ｓ１５００（ＡＢＣ）をコメント化した場合は、（（Ｇ５０）Ｓ１５００（ＡＢＣ））となる。このように非制御コードと制御コードとを含む複数のワードをまとめてコメント化することもできる。
（４）編集部４２ｂが（Ｇ５０）Ｓ１５００をコメント解除した場合は、Ｇ５０Ｓ１５００となる。
（５）編集部４２ｂが（（Ｇ５０）Ｓ１５００（ＡＢＣ））をコメント解除した場合は、（Ｇ５０）Ｓ１５００（ＡＢＣ）となる。このように非制御コードと制御コードとを含む複数のワードをまとめてコメント化したものをコメント解除することもできる。
【００５５】
以上に説明したように、本実施形態では、工作機械１の一部にプログラム３２ａ，３２ｂを編集可能なプログラム編集装置４０を備え、プログラム編集装置４０は、プログラム３２ａ，３２ｂを表示領域１１０に表示する表示部４１と、表示領域１１０近傍のボタン１９１〜１９３の選択操作に応じて、表示領域１１０に表示されたプログラム３２ａ，３２ｂ内の範囲を指定する指定部４２ａと、表示領域１１０近傍の編集ボタン１８７の選択操作に応じて、指定部４２ａで指定された範囲内の制御コードを非制御コード化し、または範囲内の非制御コードを制御コード化する編集部４２ｂと、を含む。このような構成によれば、工作機械１のプログラム編集における作業者の手間を軽減し、作業者の手入力による非制御コードなどの入力操作が不要となり入力ミスを防止することができる。また、作業者が工作機械１の作業環境に応じたインタフェイスでプログラム編集を実行することができる。
【００５６】
また、本実施形態では、編集部４２ｂは、範囲内の制御コードまたは非制御コードが複数のワードで構成されている場合、制御コードを非制御コード化する際に複数のワード間のスペースを削除し、または非制御コードを制御コード化する際に複数のワード間にスペースを挿入する。このような構成によれば、制御コードの各ワードを作業者に認識させやすくすることができる。また、一まとまりのコメントを作業者に認識させやすくすることができる。
【００５７】
また、本実施形態では、指定部４２ａは、作業者の操作に応じてカーソル２００を開始位置から終了位置まで移動させることで範囲を指定する。このような構成によれば、作業者はマウスなどを用いることなくプログラム内の範囲を指定することができる。また、指定部４２ａは、非制御コードの規約に基づいて非制御コードの開始位置及び終了位置を自動的に認識し、認識した開始位置及び終了位置に基づいて範囲を指定する。このような構成によれば、指定部４２ａは自動的に非制御コードの範囲を指定することができ、作業者の手間をより一層軽減させることができる。また、編集部４２ｂは、制御コードと非制御コードとで表示態様（色）を自動的に変更する。このような構成によれば、作業者に非制御コードの位置を認識させやすくすることができる。
【００５８】
以上の実施形態について説明したが、本発明は図示の構成等に限定されるものではなく、各構成の機能や用途などを逸脱しない範囲で変更は可能である。
【００５９】
例えば、上記した実施形態において、図１に示したローダ装置１０及び加工装置２０の構成は一例であって、このような構成以外のローダ装置及び加工装置に対してもプログラム編集装置を適用することができる。また、上記した実施形態では、制御装置３０とコントローラ４０とが別構成とされていたが、制御装置３０とコントローラ４０とは一体構成とされてもよい。
【００６０】
また、ローダ装置１０と加工装置２０とは別々の第１プログラム３２ａと第２プログラム３２ｂとで制御されていたが、同じプログラムで制御されてもよい。また、第１プログラム３２ａと第２プログラム３２ｂは異なるプログラム言語で作成されていたが、同一のプログラム言語で作成されてもよい。また、上記した実施形態では、編集部４２ｂは制御コードと非制御コードとで色を変えていたが、編集部４２ｂは制御コードと非制御コードとで文字の書体などの表示態様を変更してもよい。
【００６１】
また、上記した実施形態におけるキーやボタンの配置は、図３に示した配置に限定されず、適宜変更可能である。また、操作メニューボタン１７０ｍ，１８０ｍ，１９０ｍもプログラム表示領域１１０の近傍に設けられていればよく、作業環境などに合わせて適宜配置される。また、操作メニューボタン１７０ｍ，１８０ｍ，１９０ｍは、作業者によるタッチパネル４１ｂのタッチ操作によって選択されていたが、これらのボタンを機械的なボタンとし、作業者による押下操作で選択されてもよい。また、カーソル２００も指定位置を指し示すものであれば、どのようなポインディングデバイスであってもよい。
【００６２】
また、指定部４２ａは、カーソルキー１３２や範囲指定を行うためのボタン（開始ボタン１９１、終了ボタン１９２、取消ボタン１９３）の選択操作に応じた範囲指定を行う構成に限定されず、作業者が指でなぞった範囲をタッチパネル４１ｂからの信号に基づいて認識し、認識した範囲を指定範囲としてもよい。また、作業者が制御コードのコメント化や非制御コードのコメント解除を行う手順も図４〜図７に示した手順に限定されない。例えば、作業者はコメントＯＮ／ＯＦＦ１８７を選択した後に範囲指定が行われてもよい。
【符号の説明】
【００６３】
１  工作機械
１０  ローダ装置
２０  加工装置
３０  制御装置
３２  第１記憶部
３２ａ  第１プログラム（プログラム）
３２ｂ  第２プログラム（プログラム）
４０  コントローラ（プログラム編集装置）
４１  表示部
４１ａ  表示画面
４１ｂ  タッチパネル
４２  制御部
４２ａ  指定部
４２ｂ  編集部
４３  第２記憶部
４３ａ  制御プログラム
１１０  プログラム表示領域（表示領域）
１８４  範囲指定ボタン
１８７  コメントＯＮ／ＯＦＦボタン（編集ボタン）
【図１】
2015207134.tif 000003
【図２】
2015207134.tif 000004
【図３】
2015207134.tif 000005
【図４】
2015207134.tif 000006
【図５】
2015207134.tif 000007
【図６】
2015207134.tif 000008
【図７】
2015207134.tif 000009