(57)【要約】【課題】シーケンス制御等の周期的に実行されるプログラムもＮＣプログラム形式で記述して作成し機械を制御できるようにする。【解決手段】機械を制御するプログラムをＮＣプログラム形式で作成する。シーケンス制御等の周期的に実行するプログラム（４０）の各指令には特定記号「／／」を付加する。この特定記号「／／」により、通常のＮＣプログラムのような実行指令により実行開始し軸動作の制御を行うプログラムと区別して記憶しておく。周期的に実行するシーケンス用ＮＣプログラムは電源投入時又は、プログラム格納時に実行可能な形式のプログラム（４２）に変換しておく。そして、機械の電源投入時から電源遮断時まで定周期で実行する（４３）。又、通常のＮＣプログラム（５０）は、従来と同様に実行指令により実行開始する。シーケンスプログラムもＮＣプログラム形式で記述して作成できプログラム作成が容易となる。【選択図】      図６
2004318264.tif 000002
【特許請求の範囲】
【請求項１】
工作機械または産業機械の制御を制御プログラムに基づいて実行する制御装置であって、
前記制御プログラムはＮＣプログラム形式で作成され、周期的に実行するプログラムと実行指令により実行するプログラムを区別して記憶する記憶手段と、
前記記憶手段に記憶された前記プログラムを解析し制御装置で実行可能な形式プログラムに変換する変換手段と、
前記周期的に実行するよう区別されたプログラムを前記変換手段で変換して得られた実行可能な形式のプログラムを機械の電源投入時から電源遮断時まで定周期で実行する実行手段と、
を備えたことを特徴とする機械の制御装置。
【請求項２】
前記周期的に実行するプログラムは、前記工作機械または産業機械をシーケンス制御するものである請求項１に記載の機械の制御装置。
【請求項３】
前記シーケンス制御のプログラムは、機械および制御装置の入出力信号の信号名とそのアドレス及び該入出力信号に対する制御命令が記述されていることを特徴とする請求項２記載の機械の制御装置。
【請求項４】
前記入出力信号の信号名とアドレスは、アルファベットおよび数字で記述されたことを特徴とする請求項３記載の機械の制御装置。
【請求項５】
前記シーケンス制御のプログラムは、前記制御命令を実行するための条件が記載されていることを特徴とする請求項２乃至４の内いずれか１項に記載の機械の制御装置。
【請求項６】
前記実行指令により実行するプログラムは機械の軸の動作を制御するプログラムである請求項１乃至５の内いずれか１項に記載の機械の制御装置。
【請求項７】
前記記憶手段は、前記周期的に実行するプログラムと共に、若しくは該プログラムに代えて前記変換手段により周期的に実行するプログラムを変換して得られた実行可能な形式のプログラムを記憶する請求項１乃至６の内いずれか１項に記載の機械の制御装置。
【請求項８】
前記変換手段は、機械の電源投入時又はプログラムを前記記憶手段に格納する際に前記周期的に実行するプログラムを実行可能な形式のプログラムに変換して前記記憶手段に記憶させる請求項１乃至７の内いずれか１項に記載の機械の制御装置。
【請求項９】
周期的に実行するプログラムと実行指令により実行するプログラムの区別はプログラム名によって行われる請求項１乃至８の内いずれか１項に記載の機械の制御装置。
【請求項１０】
周期的に実行するプログラムと実行指令により実行するプログラムの区別は、周期的に実行するプログラムに記述された各命令に付された特定記号によって行われる請求項１乃至８の内いずれか１項に記載の機械の制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、工作機械又は産業機械の軸動作制御及び機械のシーケンス制御を行う制御装置に関する。
【０００２】
【従来の技術】
工作機械や産業機械を制御する制御装置として数値制御装置やプログラマブルコントローラが知られている。これらの制御装置は軸の動作を制御するモーション制御と、機械の信号等を制御するシーケンス制御を行うことによって種々の目的に応じて機械を動作させている。
【０００３】
これらの機械を制御するためには、モーション制御用のプログラムと、シーケンス制御用のプログラムの両方を作成し、双方のプログラムを実行することによって機械を動作させている。
一般的にモーション制御用のプログラムは、工作機械等を制御する制御装置が数値制御装置の場合はＥＩＡフォーマット、ＩＳＯフォーマットなどのコードやマクロ文などＮＣプログラムが使用される。
【０００４】
また、モーションコントローラのように産業機械を制御する制御装置においては、数値制御装置やプログラマブルコントローラ等が用いられ、これらの制御装置ではＮＣプログラムを用いたり、モーション言語と呼ばれる言語が使用される。モーション言語にはＮＣプログラムに使用されるＧコードをベースとした言語、ＳＦＣ（ストラクチャーファンクションチャート）をベースとした言語、ＦＢＤ（機能ブロック図言語）をベースとした言語等がある。
【０００５】
一方、シーケンス制御用のプログラムはラダー図言語、インストラクションリスト言語、ＳＦＣなどの言語で記述される。
このため、プログラムの作成者はモーション制御とシーケンス制御に関する複数のプログラミングの知識を有する必要があり、プログラムを作成する上では大きな負担となっていた。
そこで、モーション言語で記述したプログラムをラダーダイアグラムなどの定周期で実行される言語に変換することによりプログラマの負担を軽減したプログラミング装置が提案されている（特許文献１参照）。
【０００６】
【特許文献１】
特開２００２−７３１２０公報
【０００７】
【発明が解決しようとする課題】
しかしながら、上記特許文献１に記載の発明では、プログラミング装置を使用してモーション言語で作成したプログラムをラダーダイアグラム等の定周期で実行されるプログラムに変換し、プログラミング装置のメモリに一旦書き込み、書き込まれたプログラムをプログラマブルコントローラへ書き込むようになっている。これは、プログラマブルコントローラがモーション言語で作成したプログラムを実行できないため、一旦プログラミング装置でモーション言語で作成したプログラムをラダーダイアグラム等のプログラムに変換しておかねばならないものであり、ユーザにとってはコンパイル操作の手間が生じ、モーション言語で作成したプログラムをリアルタイムで実行することができなかった。
又、プログラマブルコントローラとは別にモーション言語をラダーダイアグラム等の言語に変換するための特別な装置が必要となり、ユーザにとってはコストが増えてしまうという問題があった。
【０００８】
そこで、本発明の目的は、特別な装置を必要とせず、ＮＣプログラム形式で記述されたプログラムによりシーケンス制御のような周期的に実行するようなプログラムも軸動作制御（モーション制御）のような実行指令によって実行するようなプログラムも両方の制御が可能な制御装置を提供することにある。
【０００９】
【課題を解決するための手段】
本発明は、工作機械または産業機械の制御を制御プログラムに基づいて実行する制御装置であって、前記制御プログラムはＮＣプログラム形式で作成され、周期的に実行するプログラムと実行指令により実行するプログラムを区別して記憶する記憶手段と、前記記憶手段に記憶された前記プログラムを解析し制御装置で実行可能な形式プログラムに変換する変換手段と、前記周期的に実行するよう区別されたプログラムを前記変換手段で変換して得られた実行可能な形式のプログラムを機械の電源投入時から電源遮断時まで定周期で実行する実行手段とを備えるものである。
そして、前記周期的に実行するプログラムは、前記工作機械または産業機械をシーケンス制御するもので構成し、該プログラムは機械および制御装置の入出力信号の信号名とそのアドレス及び該入出力信号に対する制御命令が記述するようにする。そして、入出力信号の信号名とアドレスは、アルファベットおよび数字で記述するようにする。又、このシーケンス制御のプログラムは、前記制御命令を実行するための条件が記載されているものである。
【００１０】
前記実行指令により実行するプログラムは機械の軸の動作を制御するプログラムとする。さらに、前記記憶手段には前記周期的に実行するプログラムと共に、若しくは該プログラムに代えて前記変換手段により周期的に実行するプログラムを変換して得られた実行可能な形式のプログラムを記憶するようにしてもよい。また、前記変換手段は、機械の電源投入時又はプログラムを前記記憶手段に格納する際に前記周期的に実行するプログラムを実行可能な形式のプログラムに変換するようにする。
前述した、周期的に実行するプログラムと実行指令により実行するプログラムの区別はプログラム名によって、又は周期的に実行するプログラムに記述された各命令に付された特定記号によって行われるようにした。
【００１１】
【発明の実施の形態】
図１は本発明の一実施形態における制御装置のブロック図である。
制御装置１００はＣＰＵ１１を有し、ＣＰＵ１１にはＲＯＭ１２、ＲＡＭ１３、不揮発性メモリ１４、ＣＲＴ／ＭＤＩユニット３０のＣＲＴ表示装置３０ａを制御するＣＲＴコントローラ１５、ＣＲＴ／ＭＤＩユニット３０のキーボード等の入力装置３０ｂに接続されたインタフェース１６、機械の各軸のサーボモータ３１を制御するサーボ制御回路１７、スピンドルモータ３２を制御するスピンドル制御回路１９、Ｉ／Ｏユニット２１がバス２２で接続されている。
【００１２】
ＣＰＵ１１はＲＯＭ１２に格納されているシステムプログラムに基づいて、この制御装置１００全体を制御する。ＲＡＭ１３はデータの一時記憶等に利用される。不揮発性メモリ（ＲＡＭ）１４には該制御装置１００が接続された機械の各軸の動作を制御するＮＣプログラムやシーケンスプログラム等が格納されているもので、これらのプログラムは、図示しないインタフェースを介して該制御装置１００に入力されるか、ＣＲＴ／ＭＤＩユニット３０を利用して作成されこの不揮発性メモリ１４に格納されるものである。
【００１３】
サーボ制御回路１７にはサーボアンプ１８を介してサーボモータ３１が接続され、該サーボ制御回路１７により、サーボモータ３１の位置、速度等が制御されるものである。又、スピンドル制御回路１９にはスピンドルアンプ２０を介してスピンドルモータ３２が接続され、該スピンドル制御回路１９によってスピンドルモータの速度等が制御される。又、Ｉ／Ｏユニット２１は機械のセンサやアクチュエータに接続されている。なお、図１では、サーボモータ３１は１つしか記載していないが、機械が有する送り軸の数だけ備えるものである。
【００１４】
本実施形態では、機械のシーケース制御を行うシーケンスプログラムのように周期的に繰り返し実行するプログラムと、実行指令により実行を開始し各軸のモーション（動作）の制御を行うＮＣプログラムとによって駆動制御されるものである。
【００１５】
従来の制御装置は、実行指令によって実行を開始し軸動作（モーション）を制御するプログラムと、機械のシーケンス制御を周期的に行うプログラムとを有し、前者の軸動作（モーション）を制御するプログラムはＮＣプログラム又はモーション言語で構成されたプログラムとし、後者のシーケンス制御を行うプログラムはラダー図言語等で構成されたプログラムとされ、それぞれの言語形態が異なるプログラムを必要としていた。しかし、本実施形態では、軸動作を制御するプログラムも、周期的に実行するシーケンスプログラムもＮＣプログラム形式で記述され、各プログラムを制御装置１００のプロセッサが共に実行するようにしたものである。
【００１６】
本実施形態においては、シーケンスプログラムのＮＣプログラム形式での記述は、次のようにして行われるものである。
シーケンスプログラムの記述は、命令ブロックの先頭に特定記号（例えばダブルスラッシュ”／／”）を付け、ＮＣプログラム形式の記述、即ちＧコードやＦコード等のＮＣプログラムで用いられる言語を用いてシーケンス制御指令の文を作成する。この記述は、左辺に信号名および信号アドレスを書き、右辺を０（ＯＦＦ）または１（ＯＮ）で表しその信号の指令状態を表すようにする。
【００１７】
基本的なプログラミングの例をラダープログラムと比較して説明する。
恒真式
常にある信号をＯＮにする場合で、ラダープログラムでは図２（ａ）に示されるものとなる（例はＧ２２．３を常にＯＮする場合の例である）。これに対応して、本実施形態でのシーケンスプログラムは、図２（ｂ）に示した、
／／＃ＩＯＧ［２２，３］＝１；
となる。「／／」と、ＮＣプログラム形式で記述した信号名「ＩＯＧ」とアドレス「２２，３」で左辺を構成し、該信号の状態を右辺に記述しているものである。
【００１８】
恒偽式
常にある信号をＯＦＦにする場合（例はＧ２２．３を常にＯＦＦする場合の例である）であり、ラダープログラムでは図３（ａ）に示されるものとなる。これに対応して、本実施形態のシーケンスプログラムによる指令は、図３（ｂ）に示したように、下記の記述となる。
【００１９】
／／＃ＩＯＧ［２２，３］＝０；
条件式
条件が成立した場合にＯＮにする場合（例はＦ５．４信号がＯＮの場合Ｇ２２．３信号をＯＮにする例）で、ラダープログラムでは図４（ａ）に示されるものである。これに対応し、本実施形態のシーケンスプログラムによる指令は、図４（ｂ）に示したように、下記の記述となる。
【００２０】
／／ＩＦ［＃ＩＯＦ［５，４］＝＝１］；
／／＃ＩＯＧ［２２，３］＝１；
／／ＥＬＳＥ
／／＃ＩＯＧ［２２，３］＝０；
また、非常停止等の場合には、ラダープログラムでは図５（ａ）となり、本実施形態では、図５（ｂ）に示すように
／／＃ＩＯＧ［８，４］＝＃ＩＯＸ［０，４］；
となる。これは、Ｘ０．４信号とＧ８．４信号を常時つなぐことを意味しており、Ｘ０．４信号と共にＧ８．４信号も変化するものであるから、非常停止等に相当するものである。
【００２１】
以上のようにして、シーケンスプログラムもＮＣプログラム形式で記述し、シーケンス制御するもの、即ち周期的に実行するものには、特定記号「／／」を先頭に付けることによって、軸動作（モーション）を制御する従来のＮＣプログラムような実行指令によって初めて実行を開始するＮＣプログラムと区別している。
【００２２】
そのため、シーケンス制御以外の軸動作を制御するような指令に対しても周期的に実行させる必要がある場合には、ＮＣプログラム形式で記載した指令の先頭に特定記号「／／」を付してプログラムすることによって、シーケンス制御と同様に周期的にこの指令を実行させることができるものである。
【００２３】
例えば、軸移動の安全装置として、軸がリミットを越えたとき自動的に所定量戻す処理を周期的に実行させるには、次のように記述すればよい。
／／ＩＦ［＃１００１０１  ＧＴ  １００］  Ｘ−１０；
この指令において、＃１００１０１はＸ軸の位置を読む変数であり、Ｘ軸の位置が１００ｍｍを越えた場合、１０ｍｍ戻すことを意味している。
【００２４】
こうして作成された周期的に実行するＮＣプログラム形式のシーケンスプログラム（以下シーケンスＮＣプログラムという）と軸動作等を制御する通常のＮＣプログラムを不揮発性メモリ１４に格納し実行させることになる。
図６は、本実施形態の動作の流れ図である。
制御装置１００に電源を投入した時に、ＣＰＵ１１はシーケンス用ＮＣプログラム（４０）を実行可能な形式のプログラムに変換する。すなわち、制御装置１００に電源が投入されると、不揮発性メモリ１４に格納されたプログラムを読み出し、プログラムの指令に特定記号「／／」が記述されており、シーケンス用ＮＣプログラム（４０）と判断したときは、該プログラムをコンパイルして（４１）、プログラムを簡単な命令列の実行形式に変換して実行形式のプログラムに変換する（４２）。
【００２５】
例えば＃１００＝１は、
（１）＃１００のアドレスをスタックに保存する命令（ＰＵＳＨＰ＃１００）
（２）１をスタックに保存する命令（ＰＵＳＨ１）
（３）スタックの先頭の値を、スタックの先頭から２番目の値のアドレスに代入する命令（ＰＯＰＰ）の３つの実行形式命令に変換される（カッコ内は実際の命令の例）。
【００２６】
こうしておけば、実行時には、＃１００の意味や１の意味を知らなくとも、機械的にスタック操作を行うだけで、演算が可能となる。
実行時には、＃１００＝１を解釈するのではなく、この３つの実行形式命令が実行される。
【００２７】
そして、この実行形式に変換されたプログラムを所定周期毎実行し、Ｉ／Ｏユニット２１を介して機械からの信号を受信し、又機械への信号を送信すると共に、システム情報、さらには、図示しないネットワーク制御回路を介して入出力される信号のシーケンス制御を実行する（４３）。以下、制御装置１００の電源が遮断されるまで、実行形式に変換されたシーケンス用ＮＣプログラムを所定周期毎実行する。
【００２８】
一方、電源投入時、読み出したプログラムが通常のＮＣプログラム（５０）であれば、このプログラムは実行指令が入力されるまで待ち（５１）、前述した他方のプログラムであるシーケンス用ＮＣプログラムを読み出し前述した動作を実行する。そして実行指令が入力されると、この通常のＮＣプログラム（５０）を１ブロックずつ読み込み実行形式に変換して、そのブロックの指令を実行し（５２）、軸動作等を制御する。以下、通常のＮＣプログラムを１ブロックずつ読み込み実行し、プログラム終了（５３）になると、再び実行指令が入力されるまで待つことになる。
【００２９】
なお、本実施形態ではシーケンス用ＮＣプログラムの解釈および変換を電源投入時に実行して、実行形式プログラムを得るようにしたが、このシーケンス用ＮＣプログラムを不揮発性メモリ１４に保存時に解釈し実行形式に変換して該不揮発性メモリ１４に記憶させておいてもよい。また、電源がＯＮの間、定期的にコンパイルさせるようにしてもよい。
さらに、実際に使用するものは実行形式のプログラムであるから、この変換した実行形式のプログラムを記憶し、変換する前の、シーケンス用ＮＣプログラムは記憶しなくてもよい。
【００３０】
上述した実施形態では、シーケンス制御等の周期的に繰り返し実行させるプログラム（シーケンス用ＮＣプログラム）と、通常の軸動作を制御する実行指令により１回だけ実行する通常のＮＣプログラムとの区別を、シーケンス制御等の周期的に繰り返し実行させるプログラム（シーケンス用ＮＣプログラム）の指令の前に特定記号「／／」を付加することによって区別した。しかし、この区別をプログラム名によって区別するようにしてもよい。例えば、図６に示すように、周期的に繰り返し実行させるプログラム（シーケンス用ＮＣプログラム）のプログラム名には「Ｑ０００１」等の「Ｑ」の記号を用い、通常のＮＣプログラムは、従来と同様に「Ｏ０００１」等、「Ｏ」の記号を用いたプログラム名を用いて、プログラム名によって区別し、制御装置のＣＰＵはプログラム名を読み込んで、周期的に繰り返し実行させるプログラム（シーケンス用ＮＣプログラム）と、通常の軸動作を制御する実行指令が入力される毎に１回だけ実行する通常のＮＣプログラムかを判別するようにすればよい。
【００３１】
【発明の効果】
本発明は、ＮＣプログラム形式で記述されたプログラムを実行することによりシーケンス制御が可能となるので、プログラムの変換に特別な装置を必要とせず、軸動作制御とシーケンス制御の両方を実行することができる制御装置を安価に提供することができる。
【図面の簡単な説明】
【図１】本発明の一実施形態の制御装置のブロック図である。
【図２】恒真式を表すラダープログラムと本実施形態におけるプログラムの対応を説明する図である。
【図３】恒偽式を表すラダープログラムと本実施形態におけるプログラムの対応を説明する図である。
【図４】条件式を表すラダープログラムと本実施形態におけるプログラムの対応を説明する図である。
【図５】非常停止に相当するラダープログラムと本実施形態におけるプログラムの対応を説明する図である。
【図６】本実施形態における動作の流れ図である。
【符号の説明】
１００  制御装置
【図１】
2004318264.tif 000003
【図２】
2004318264.tif 000004
【図３】
2004318264.tif 000005
【図４】
2004318264.tif 000006
【図５】
2004318264.tif 000007
【図６】
2004318264.tif 000008