説明

機械の制御装置

【課題】シーケンス制御等の周期的に実行されるプログラムもNCプログラム形式で記述して作成し機械を制御できるようにする。
【解決手段】機械を制御するプログラムをNCプログラム形式で作成する。シーケンス制御等の周期的に実行するプログラム(40)の各指令には特定記号「//」を付加する。この特定記号「//」により、通常のNCプログラムのような実行指令により実行開始し軸動作の制御を行うプログラムと区別して記憶しておく。周期的に実行するシーケンス用NCプログラムは電源投入時又は、プログラム格納時に実行可能な形式のプログラム(42)に変換しておく。そして、機械の電源投入時から電源遮断時まで定周期で実行する(43)。又、通常のNCプログラム(50)は、従来と同様に実行指令により実行開始する。シーケンスプログラムもNCプログラム形式で記述して作成できプログラム作成が容易となる。

【発明の詳細な説明】
【0001】
【発明の属する技術分野】
本発明は、工作機械又は産業機械の軸動作制御及び機械のシーケンス制御を行う制御装置に関する。
【0002】
【従来の技術】
工作機械や産業機械を制御する制御装置として数値制御装置やプログラマブルコントローラが知られている。これらの制御装置は軸の動作を制御するモーション制御と、機械の信号等を制御するシーケンス制御を行うことによって種々の目的に応じて機械を動作させている。
【0003】
これらの機械を制御するためには、モーション制御用のプログラムと、シーケンス制御用のプログラムの両方を作成し、双方のプログラムを実行することによって機械を動作させている。
一般的にモーション制御用のプログラムは、工作機械等を制御する制御装置が数値制御装置の場合はEIAフォーマット、ISOフォーマットなどのコードやマクロ文などNCプログラムが使用される。
【0004】
また、モーションコントローラのように産業機械を制御する制御装置においては、数値制御装置やプログラマブルコントローラ等が用いられ、これらの制御装置ではNCプログラムを用いたり、モーション言語と呼ばれる言語が使用される。モーション言語にはNCプログラムに使用されるGコードをベースとした言語、SFC(ストラクチャーファンクションチャート)をベースとした言語、FBD(機能ブロック図言語)をベースとした言語等がある。
【0005】
一方、シーケンス制御用のプログラムはラダー図言語、インストラクションリスト言語、SFCなどの言語で記述される。
このため、プログラムの作成者はモーション制御とシーケンス制御に関する複数のプログラミングの知識を有する必要があり、プログラムを作成する上では大きな負担となっていた。
そこで、モーション言語で記述したプログラムをラダーダイアグラムなどの定周期で実行される言語に変換することによりプログラマの負担を軽減したプログラミング装置が提案されている(特許文献1参照)。
【0006】
【特許文献1】
特開2002−73120公報
【0007】
【発明が解決しようとする課題】
しかしながら、上記特許文献1に記載の発明では、プログラミング装置を使用してモーション言語で作成したプログラムをラダーダイアグラム等の定周期で実行されるプログラムに変換し、プログラミング装置のメモリに一旦書き込み、書き込まれたプログラムをプログラマブルコントローラへ書き込むようになっている。これは、プログラマブルコントローラがモーション言語で作成したプログラムを実行できないため、一旦プログラミング装置でモーション言語で作成したプログラムをラダーダイアグラム等のプログラムに変換しておかねばならないものであり、ユーザにとってはコンパイル操作の手間が生じ、モーション言語で作成したプログラムをリアルタイムで実行することができなかった。
又、プログラマブルコントローラとは別にモーション言語をラダーダイアグラム等の言語に変換するための特別な装置が必要となり、ユーザにとってはコストが増えてしまうという問題があった。
【0008】
そこで、本発明の目的は、特別な装置を必要とせず、NCプログラム形式で記述されたプログラムによりシーケンス制御のような周期的に実行するようなプログラムも軸動作制御(モーション制御)のような実行指令によって実行するようなプログラムも両方の制御が可能な制御装置を提供することにある。
【0009】
【課題を解決するための手段】
本発明は、工作機械または産業機械の制御を制御プログラムに基づいて実行する制御装置であって、前記制御プログラムはNCプログラム形式で作成され、周期的に実行するプログラムと実行指令により実行するプログラムを区別して記憶する記憶手段と、前記記憶手段に記憶された前記プログラムを解析し制御装置で実行可能な形式プログラムに変換する変換手段と、前記周期的に実行するよう区別されたプログラムを前記変換手段で変換して得られた実行可能な形式のプログラムを機械の電源投入時から電源遮断時まで定周期で実行する実行手段とを備えるものである。
そして、前記周期的に実行するプログラムは、前記工作機械または産業機械をシーケンス制御するもので構成し、該プログラムは機械および制御装置の入出力信号の信号名とそのアドレス及び該入出力信号に対する制御命令が記述するようにする。そして、入出力信号の信号名とアドレスは、アルファベットおよび数字で記述するようにする。又、このシーケンス制御のプログラムは、前記制御命令を実行するための条件が記載されているものである。
【0010】
前記実行指令により実行するプログラムは機械の軸の動作を制御するプログラムとする。さらに、前記記憶手段には前記周期的に実行するプログラムと共に、若しくは該プログラムに代えて前記変換手段により周期的に実行するプログラムを変換して得られた実行可能な形式のプログラムを記憶するようにしてもよい。また、前記変換手段は、機械の電源投入時又はプログラムを前記記憶手段に格納する際に前記周期的に実行するプログラムを実行可能な形式のプログラムに変換するようにする。
前述した、周期的に実行するプログラムと実行指令により実行するプログラムの区別はプログラム名によって、又は周期的に実行するプログラムに記述された各命令に付された特定記号によって行われるようにした。
【0011】
【発明の実施の形態】
図1は本発明の一実施形態における制御装置のブロック図である。
制御装置100はCPU11を有し、CPU11にはROM12、RAM13、不揮発性メモリ14、CRT/MDIユニット30のCRT表示装置30aを制御するCRTコントローラ15、CRT/MDIユニット30のキーボード等の入力装置30bに接続されたインタフェース16、機械の各軸のサーボモータ31を制御するサーボ制御回路17、スピンドルモータ32を制御するスピンドル制御回路19、I/Oユニット21がバス22で接続されている。
【0012】
CPU11はROM12に格納されているシステムプログラムに基づいて、この制御装置100全体を制御する。RAM13はデータの一時記憶等に利用される。不揮発性メモリ(RAM)14には該制御装置100が接続された機械の各軸の動作を制御するNCプログラムやシーケンスプログラム等が格納されているもので、これらのプログラムは、図示しないインタフェースを介して該制御装置100に入力されるか、CRT/MDIユニット30を利用して作成されこの不揮発性メモリ14に格納されるものである。
【0013】
サーボ制御回路17にはサーボアンプ18を介してサーボモータ31が接続され、該サーボ制御回路17により、サーボモータ31の位置、速度等が制御されるものである。又、スピンドル制御回路19にはスピンドルアンプ20を介してスピンドルモータ32が接続され、該スピンドル制御回路19によってスピンドルモータの速度等が制御される。又、I/Oユニット21は機械のセンサやアクチュエータに接続されている。なお、図1では、サーボモータ31は1つしか記載していないが、機械が有する送り軸の数だけ備えるものである。
【0014】
本実施形態では、機械のシーケース制御を行うシーケンスプログラムのように周期的に繰り返し実行するプログラムと、実行指令により実行を開始し各軸のモーション(動作)の制御を行うNCプログラムとによって駆動制御されるものである。
【0015】
従来の制御装置は、実行指令によって実行を開始し軸動作(モーション)を制御するプログラムと、機械のシーケンス制御を周期的に行うプログラムとを有し、前者の軸動作(モーション)を制御するプログラムはNCプログラム又はモーション言語で構成されたプログラムとし、後者のシーケンス制御を行うプログラムはラダー図言語等で構成されたプログラムとされ、それぞれの言語形態が異なるプログラムを必要としていた。しかし、本実施形態では、軸動作を制御するプログラムも、周期的に実行するシーケンスプログラムもNCプログラム形式で記述され、各プログラムを制御装置100のプロセッサが共に実行するようにしたものである。
【0016】
本実施形態においては、シーケンスプログラムのNCプログラム形式での記述は、次のようにして行われるものである。
シーケンスプログラムの記述は、命令ブロックの先頭に特定記号(例えばダブルスラッシュ”//”)を付け、NCプログラム形式の記述、即ちGコードやFコード等のNCプログラムで用いられる言語を用いてシーケンス制御指令の文を作成する。この記述は、左辺に信号名および信号アドレスを書き、右辺を0(OFF)または1(ON)で表しその信号の指令状態を表すようにする。
【0017】
基本的なプログラミングの例をラダープログラムと比較して説明する。
恒真式
常にある信号をONにする場合で、ラダープログラムでは図2(a)に示されるものとなる(例はG22.3を常にONする場合の例である)。これに対応して、本実施形態でのシーケンスプログラムは、図2(b)に示した、
//#IOG[22,3]=1;
となる。「//」と、NCプログラム形式で記述した信号名「IOG」とアドレス「22,3」で左辺を構成し、該信号の状態を右辺に記述しているものである。
【0018】
恒偽式
常にある信号をOFFにする場合(例はG22.3を常にOFFする場合の例である)であり、ラダープログラムでは図3(a)に示されるものとなる。これに対応して、本実施形態のシーケンスプログラムによる指令は、図3(b)に示したように、下記の記述となる。
【0019】
//#IOG[22,3]=0;
条件式
条件が成立した場合にONにする場合(例はF5.4信号がONの場合G22.3信号をONにする例)で、ラダープログラムでは図4(a)に示されるものである。これに対応し、本実施形態のシーケンスプログラムによる指令は、図4(b)に示したように、下記の記述となる。
【0020】
//IF[#IOF[5,4]==1];
//#IOG[22,3]=1;
//ELSE
//#IOG[22,3]=0;
また、非常停止等の場合には、ラダープログラムでは図5(a)となり、本実施形態では、図5(b)に示すように
//#IOG[8,4]=#IOX[0,4];
となる。これは、X0.4信号とG8.4信号を常時つなぐことを意味しており、X0.4信号と共にG8.4信号も変化するものであるから、非常停止等に相当するものである。
【0021】
以上のようにして、シーケンスプログラムもNCプログラム形式で記述し、シーケンス制御するもの、即ち周期的に実行するものには、特定記号「//」を先頭に付けることによって、軸動作(モーション)を制御する従来のNCプログラムような実行指令によって初めて実行を開始するNCプログラムと区別している。
【0022】
そのため、シーケンス制御以外の軸動作を制御するような指令に対しても周期的に実行させる必要がある場合には、NCプログラム形式で記載した指令の先頭に特定記号「//」を付してプログラムすることによって、シーケンス制御と同様に周期的にこの指令を実行させることができるものである。
【0023】
例えば、軸移動の安全装置として、軸がリミットを越えたとき自動的に所定量戻す処理を周期的に実行させるには、次のように記述すればよい。
//IF[#100101 GT 100] X−10;
この指令において、#100101はX軸の位置を読む変数であり、X軸の位置が100mmを越えた場合、10mm戻すことを意味している。
【0024】
こうして作成された周期的に実行するNCプログラム形式のシーケンスプログラム(以下シーケンスNCプログラムという)と軸動作等を制御する通常のNCプログラムを不揮発性メモリ14に格納し実行させることになる。
図6は、本実施形態の動作の流れ図である。
制御装置100に電源を投入した時に、CPU11はシーケンス用NCプログラム(40)を実行可能な形式のプログラムに変換する。すなわち、制御装置100に電源が投入されると、不揮発性メモリ14に格納されたプログラムを読み出し、プログラムの指令に特定記号「//」が記述されており、シーケンス用NCプログラム(40)と判断したときは、該プログラムをコンパイルして(41)、プログラムを簡単な命令列の実行形式に変換して実行形式のプログラムに変換する(42)。
【0025】
例えば#100=1は、
(1)#100のアドレスをスタックに保存する命令(PUSHP#100)
(2)1をスタックに保存する命令(PUSH1)
(3)スタックの先頭の値を、スタックの先頭から2番目の値のアドレスに代入する命令(POPP)の3つの実行形式命令に変換される(カッコ内は実際の命令の例)。
【0026】
こうしておけば、実行時には、#100の意味や1の意味を知らなくとも、機械的にスタック操作を行うだけで、演算が可能となる。
実行時には、#100=1を解釈するのではなく、この3つの実行形式命令が実行される。
【0027】
そして、この実行形式に変換されたプログラムを所定周期毎実行し、I/Oユニット21を介して機械からの信号を受信し、又機械への信号を送信すると共に、システム情報、さらには、図示しないネットワーク制御回路を介して入出力される信号のシーケンス制御を実行する(43)。以下、制御装置100の電源が遮断されるまで、実行形式に変換されたシーケンス用NCプログラムを所定周期毎実行する。
【0028】
一方、電源投入時、読み出したプログラムが通常のNCプログラム(50)であれば、このプログラムは実行指令が入力されるまで待ち(51)、前述した他方のプログラムであるシーケンス用NCプログラムを読み出し前述した動作を実行する。そして実行指令が入力されると、この通常のNCプログラム(50)を1ブロックずつ読み込み実行形式に変換して、そのブロックの指令を実行し(52)、軸動作等を制御する。以下、通常のNCプログラムを1ブロックずつ読み込み実行し、プログラム終了(53)になると、再び実行指令が入力されるまで待つことになる。
【0029】
なお、本実施形態ではシーケンス用NCプログラムの解釈および変換を電源投入時に実行して、実行形式プログラムを得るようにしたが、このシーケンス用NCプログラムを不揮発性メモリ14に保存時に解釈し実行形式に変換して該不揮発性メモリ14に記憶させておいてもよい。また、電源がONの間、定期的にコンパイルさせるようにしてもよい。
さらに、実際に使用するものは実行形式のプログラムであるから、この変換した実行形式のプログラムを記憶し、変換する前の、シーケンス用NCプログラムは記憶しなくてもよい。
【0030】
上述した実施形態では、シーケンス制御等の周期的に繰り返し実行させるプログラム(シーケンス用NCプログラム)と、通常の軸動作を制御する実行指令により1回だけ実行する通常のNCプログラムとの区別を、シーケンス制御等の周期的に繰り返し実行させるプログラム(シーケンス用NCプログラム)の指令の前に特定記号「//」を付加することによって区別した。しかし、この区別をプログラム名によって区別するようにしてもよい。例えば、図6に示すように、周期的に繰り返し実行させるプログラム(シーケンス用NCプログラム)のプログラム名には「Q0001」等の「Q」の記号を用い、通常のNCプログラムは、従来と同様に「O0001」等、「O」の記号を用いたプログラム名を用いて、プログラム名によって区別し、制御装置のCPUはプログラム名を読み込んで、周期的に繰り返し実行させるプログラム(シーケンス用NCプログラム)と、通常の軸動作を制御する実行指令が入力される毎に1回だけ実行する通常のNCプログラムかを判別するようにすればよい。
【0031】
【発明の効果】
本発明は、NCプログラム形式で記述されたプログラムを実行することによりシーケンス制御が可能となるので、プログラムの変換に特別な装置を必要とせず、軸動作制御とシーケンス制御の両方を実行することができる制御装置を安価に提供することができる。
【図面の簡単な説明】
【図1】本発明の一実施形態の制御装置のブロック図である。
【図2】恒真式を表すラダープログラムと本実施形態におけるプログラムの対応を説明する図である。
【図3】恒偽式を表すラダープログラムと本実施形態におけるプログラムの対応を説明する図である。
【図4】条件式を表すラダープログラムと本実施形態におけるプログラムの対応を説明する図である。
【図5】非常停止に相当するラダープログラムと本実施形態におけるプログラムの対応を説明する図である。
【図6】本実施形態における動作の流れ図である。
【符号の説明】
100 制御装置

【特許請求の範囲】
【請求項1】
工作機械または産業機械の制御を制御プログラムに基づいて実行する制御装置であって、
前記制御プログラムはNCプログラム形式で作成され、周期的に実行するプログラムと実行指令により実行するプログラムを区別して記憶する記憶手段と、
前記記憶手段に記憶された前記プログラムを解析し制御装置で実行可能な形式プログラムに変換する変換手段と、
前記周期的に実行するよう区別されたプログラムを前記変換手段で変換して得られた実行可能な形式のプログラムを機械の電源投入時から電源遮断時まで定周期で実行する実行手段と、
を備えたことを特徴とする機械の制御装置。
【請求項2】
前記周期的に実行するプログラムは、前記工作機械または産業機械をシーケンス制御するものである請求項1に記載の機械の制御装置。
【請求項3】
前記シーケンス制御のプログラムは、機械および制御装置の入出力信号の信号名とそのアドレス及び該入出力信号に対する制御命令が記述されていることを特徴とする請求項2記載の機械の制御装置。
【請求項4】
前記入出力信号の信号名とアドレスは、アルファベットおよび数字で記述されたことを特徴とする請求項3記載の機械の制御装置。
【請求項5】
前記シーケンス制御のプログラムは、前記制御命令を実行するための条件が記載されていることを特徴とする請求項2乃至4の内いずれか1項に記載の機械の制御装置。
【請求項6】
前記実行指令により実行するプログラムは機械の軸の動作を制御するプログラムである請求項1乃至5の内いずれか1項に記載の機械の制御装置。
【請求項7】
前記記憶手段は、前記周期的に実行するプログラムと共に、若しくは該プログラムに代えて前記変換手段により周期的に実行するプログラムを変換して得られた実行可能な形式のプログラムを記憶する請求項1乃至6の内いずれか1項に記載の機械の制御装置。
【請求項8】
前記変換手段は、機械の電源投入時又はプログラムを前記記憶手段に格納する際に前記周期的に実行するプログラムを実行可能な形式のプログラムに変換して前記記憶手段に記憶させる請求項1乃至7の内いずれか1項に記載の機械の制御装置。
【請求項9】
周期的に実行するプログラムと実行指令により実行するプログラムの区別はプログラム名によって行われる請求項1乃至8の内いずれか1項に記載の機械の制御装置。
【請求項10】
周期的に実行するプログラムと実行指令により実行するプログラムの区別は、周期的に実行するプログラムに記述された各命令に付された特定記号によって行われる請求項1乃至8の内いずれか1項に記載の機械の制御装置。

【図1】
image rotate



【図2】
image rotate



【図3】
image rotate



【図4】
image rotate



【図5】
image rotate



【図6】
image rotate


【公開番号】特開2004−318264(P2004−318264A)
【公開日】平成16年11月11日(2004.11.11)
【国際特許分類】
【出願番号】特願2003−108073(P2003−108073)
【出願日】平成15年4月11日(2003.4.11)
【出願人】(390008235)ファナック株式会社 (1,110)
【Fターム(参考)】