(57)【要約】【課題】シーケンスプログラムの作成、変更が容易な数値制御装置を得る。【解決手段】信号の種類及び／又はアドレスによってグループ分けする。シーケンスプログラム毎に各グループ番号に対応させて先頭物理アドレスを記憶するアドレステーブルＡＴ１−１，ＡＴ２−２を設ける。プログラムのオブジェクトコード３０は、命令コードとグループ番号とオフセットアドレスで構成する。オブジェクトコード３０が読み込まれると、命令グループ番号の先頭物理アドレスをプログラムに対応するテーブルより読み出す。この先頭物理アドレスにオフセットアドレスを加算し、信号の物理アドレス３１を求め命令コードの処理を行う。プログラム毎にアドレステーブルがあり、物理アドレスが異なるから、複数のプログラムにおいて共通する部分は、１つのみプログラムを作成すればよい。ハードウエアが変更されてもアドレステーブルを変更するだけでよい。【選択図】      図５
2004252844.tif 000002
【特許請求の範囲】
【請求項１】
シーケンスプログラムを実行するシーケンス制御部を内蔵した数値制御装置において、
前記シーケンス制御部は、
複数のシーケンスプログラムの中から実行するシーケンスプログラムを順番に切替える手段と、
前記シーケンスプログラムで取扱う信号がグループ分けされ、該グループを特定する情報とそのグループの先頭物理アドレスとを夫々関連付けて記録した前記シーケンスプログラム毎のテーブルと、
前記シーケンスプログラム切替えの際に、次に実行されるシーケンスプログラムに対応した前記テーブルを選択する手段と、
シーケンスプログラムのオブジェクトコード中に指定されたグループ特定情報及びグループの先頭物理アドレスからのオフセットアドレスと前記選択テーブルに基づいて、対象となる信号の物理アドレスを求めてアクセスし命令を実行する手段とを備えたことを特徴とする数値制御装置。
【請求項２】
シーケンスプログラムを実行するシーケンス制御部を内蔵した数値制御装置において、
前記シーケンス制御部は、
複数のシーケンスプログラムの中から実行するシーケンスプログラムを順番に切替える手段と、
前記シーケンスプログラムで取扱う信号が信号の種類毎または信号のアドレス範囲毎にグループ分けされ、該グループ特定情報とそのグループの先頭物理アドレスとを夫々関連付けて記憶した前記シーケンスプログラム毎のテーブルと、
前記シーケンスプログラムのオブジェクトコード中に指定された前記グループ特定情報と前記選択テーブルに基づいてグループの先頭物理アドレスを求める手段と、
該求めた先頭物理アドレスと前記オブジェクトコード中に指定されたグループの先頭物理アドレスからのオフセットアドレスに基づき対象となる信号の物理アドレスを算出する手段と、
該算出した対象となる信号の物理アドレスにアクセスし命令を実行する手段とを備えたことを特徴とする数値制御装置。
【請求項３】
シーケンスプログラムを実行するシーケンス制御部を内蔵した数値制御装置において、
前記シーケンス制御部は、
前記シンボル情報とその物理アドレスとを夫々関連付けて記録したテーブルを備え、
シーケンスプログラムのオブジェクトコード中に指定されたシンボル情報と前記テーブルに基づいて、
対象となる信号の物理アドレスを求めてアクセスし命令を実行することを特徴とする数値制御装置。
【請求項４】
シーケンスプログラムを実行するシーケンス制御部を内蔵した数値制御装置において、
前記シーケンス制御部は、
複数のシーケンスプログラムの中から実行するシーケンスプログラムを順番に切替える手段と、
前記シンボル情報とその物理アドレスとを夫々関連付けて記録した前記シーケンスプログラム毎のテーブルを備え、
前記シーケンスプログラム切替えの際に、次に実行されるシーケンスプログラムに対応した前記テーブルを選択する手段と、
シーケンスプログラムのオブジェクトコード中に指定されたシンボル情報と前記選択テーブルに基づいて、対象となる信号の物理アドレスを求めてアクセスし命令を実行することを特徴とする数値制御装置。
【請求項５】
シーケンスプログラムを実行するシーケンス制御部を内蔵した数値制御装置において、
前記シーケンス制御部は、
複数のシーケンスプログラムの中から実行するシーケンスプログラムを順番に切替える手段と、
前記シーケンスプログラムで取扱う信号の種類毎または信号のアドレス範囲毎にグループ分けされ、該グループ特定情報とそのグループの先頭物理アドレスとを夫々関連付けて記憶した前記シーケンスプログラム毎のテーブル及びシンボル情報とその物理アドレスとを夫々関連付けて記録した前記シーケンスプログラム毎のテーブルを備え、
前記オブジェクトコード中に指定された前記グループ特定情報と前記選択テーブルに基づいてグループの先頭物理アドレスを求める手段と、
該求めた先頭物理アドレスと前記オブジェクトコード中に指定された前記オフセットアドレスに基づき対象となる信号の物理アドレスを求める手段と、
シーケンスプログラムのオブジェクトコード中に指定されたシンボル情報と前記選択テーブルに基づいて、対象となる信号の物理アドレスを求める手段と、
求められた信号の物理アドレスにアクセスし命令を実行する手段とを備えたことを特徴とする数値制御装置。
【請求項６】
シーケンスプログラムを順番に切替える手段は、設定された時間が経過する毎に切替える請求項１、請求項２、請求項４又は請求項５に記載の数値制御装置。
【請求項７】
前記シーケンス制御部は、前記シーケンスプログラムに指定されたテーブル選択命令に従って、前記テーブルを選択する手段とを備える、請求項１、請求項２、請求項４又は請求項５に記載の数値制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、シーケンスプログラムを実行するシーケンス制御部を内蔵した数値制御装置に関する。
【０００２】
【従来の技術】
数値制御装置に内蔵するシーケンス制御部では、シーケンスプログラムを実行することで、数値制御装置の数値制御部による制御のＭ機能（機械の運動の補助機能）、Ｔ機能（工具指定機能）、および機械の周辺機器（ワークローダー、ＡＴＣ（自動工具交換装置）など）の制御を行っている。
【０００３】
近年の機械の高機能化に伴い、シーケンスプログラムの容量はますます増加する傾向にある。シーケンスプログラムに、新たな周辺機器を追加するための制御プログラムや、機械を自動化するための制御プログラムを追加することも多く、シーケンスプログラムが大規模となり、その保守、管理が困難になってきている。これらの問題を解決するために、近年では、機械の基本部分を制御するためのシーケンスプログラムと、追加周辺機器を制御するためのシーケンスプログラムを別々に作成し、これらの複数のシーケンスプログラムを、別々の用意された信号メモリ領域を使用して、並行して実行することで、シーケンスプログラムの保守を容易にする試みがある。それぞれのシーケンスプログラムで使用する信号を別々のメモリ領域に用意し使用することで、一方のシーケンスプログラムの修正の影響が他方のシーケンスプログラムに及んでしまうことを防止することを可能としたので、シーケンスプログラムの保守上、非常にメリットがある。
【０００４】
【発明が解決しようとする課題】
シーケンスプログラムには、信号メモリの値の読み出し、書き込み、論理演算、数値演算等を行う命令などがある。このような命令のオブジェクトコードは、「命令コード」＋「信号メモリアドレス情報」で構成される。「信号メモリアドレス情報」には、シーケンス制御部の信号メモリ中の各信号の物理アドレスと１対１に対応する情報が記録されている。このため、ひとつのシーケンス制御部で、複数のシーケンスプログラムを、それぞれ別々に用意された信号メモリ領域を使用して実行する場合、例えば、信号メモリ領域Ｍ１の信号を使用してシーケンスプログラムＰ１を実行し、信号メモリ領域Ｍ２を使用してシーケンスプログラムＰ２を実行するためには、シーケンスプログラムＰ１のオブジェクトコード中の「信号メモリアドレス情報」には、信号メモリ領域Ｍ１の各信号の物理アドレスと１対１に対応する情報を、シーケンスプログラムＰ２のオブジェクトコード中の「信号メモリアドレス情報」には、信号メモリ領域Ｍ２の各信号の物理アドレスと１対１に対応する情報を記録する必要がある。
【０００５】
信号メモリ領域Ｍ１，Ｍ２内のそれぞれの各信号のアドレス配置は信号メモリ領域Ｍ１とＭ２で異なる場合がある。図１１は、信号メモリ領域Ｍ１，Ｍ２における信号への配置の一例である。信号メモリ領域Ｍ１においては、Ｉ／Ｏデバイスからの入力信号Ｘ０〜Ｘ１２７に対しては、「２０００００００Ｈ〜２０００００７ｆＨ」が割り当てられ、Ｉ／Ｏデバイスからの出力信号Ｙ０〜Ｙ１２７に対しては、「２０００１０００Ｈ〜２０００１０７ｆＨ」が割り当てられ、Ｉ／Ｏデバイスからの入力信号Ｘ２００〜Ｘ４５５に対しては、「２０００２０００Ｈ〜２０００２０ｆｆＨ」が割り当てられている。
【０００６】
一方、信号メモリ領域Ｍ２においては、Ｉ／Ｏデバイスからの入力信号Ｘ０〜Ｘ１２７に対しては、「３０００００００Ｈ〜３０００００７ｆＨ」が割り当てられ、Ｉ／Ｏデバイスからの出力信号Ｙ０〜Ｙ１２７に対しては、「４０００１０００Ｈ〜４０００１０７ｆＨ」が割り当てられ、Ｉ／Ｏデバイスからの入力信号Ｘ２００〜Ｘ４５５に対しては、「５０００１０００Ｈ〜５０００１０ｆｆＨ」が割り当てられている。
【０００７】
このように、信号の種類及び信号のアドレスによって、信号アドレス領域のアドレス配置が異なる場合がある。このため、シーケンスプログラムＰ１と、シーケンスプログラムＰ２のオブジェクトコードを作成する場合には、それぞれの信号メモリ領域Ｍ１とＭ２の各信号の物理アドレス情報に基づいて、別々に「信号メモリアドレス情報」をもつオブジェクトコードを作成する必要があった。
【０００８】
また、シーケンス制御部のハードウェアの変更などにより、各信号メモリ領域内の各信号の物理アドレスを変更するには、変更された物理アドレスマップに基づいたオブジェクトコードを新規に作成する必要があり、物理アドレスの変更前のオブジェクトコードと、変更後のオブジェクトコードのバイナリ互換性が保てなかった。
そこで、本発明の目的は、シーケンスプログラムの作成、変更を容易とする数値制御装置を提供することにある。
【０００９】
【課題を解決するための手段】
本願請求項１に係わる発明は、シーケンスプログラムを実行するシーケンス制御部を内蔵した数値制御装置において、前記シーケンス制御部は、複数のシーケンスプログラムの中から実行するシーケンスプログラムを順番に切替える手段と、前記シーケンスプログラムで取扱う信号がグループ分けされ、該グループを特定する情報とそのグループの先頭物理アドレスとを夫々関連付けて記録した前記シーケンスプログラム毎のテーブルと、前記シーケンスプログラム切替えの際に、次に実行されるシーケンスプログラムに対応した前記テーブルを選択する手段と、シーケンスプログラムのオブジェクトコード中に指定されたグループ特定情報及びグループの先頭物理アドレスからのオフセットアドレスと前記選択テーブルに基づいて、対象となる信号の物理アドレスを求めてアクセスし命令を実行する手段とを備えたことを特徴とするものである。
【００１０】
又、請求項２に係わる発明は、シーケンスプログラムを実行するシーケンス制御部を内蔵した数値制御装置において、前記シーケンス制御部は、複数のシーケンスプログラムの中から実行するシーケンスプログラムを順番に切替える手段と、前記シーケンスプログラムで取扱う信号が信号の種類毎または信号のアドレス範囲毎にグループ分けされ、該グループ特定情報とそのグループの先頭物理アドレスとを夫々関連付けて記憶した前記シーケンスプログラム毎のテーブルと、前記シーケンスプログラムのオブジェクトコード中に指定された前記グループ特定情報と前記選択テーブルに基づいてグループの先頭物理アドレスを求める手段と、該求めた先頭物理アドレスと前記オブジェクトコード中に指定されたグループの先頭物理アドレスからのオフセットアドレスに基づき対象となる信号の物理アドレスを算出する手段と、該算出した対象となる信号の物理アドレスにアクセスし命令を実行する手段とを備えるものである。
【００１１】
請求項３に係わる発明は、シーケンスプログラムを実行するシーケンス制御部を内蔵した数値制御装置において、前記シーケンス制御部は、前記シンボル情報とその物理アドレスとを夫々関連付けて記録したテーブルを備え、シーケンスプログラムのオブジェクトコード中に指定されたシンボル情報と前記テーブルに基づいて、対象となる信号の物理アドレスを求めてアクセスし命令を実行することを特徴とするものである。
請求項４に係わる発明は、シーケンスプログラムを実行するシーケンス制御部を内蔵した数値制御装置において、前記シーケンス制御部は、複数のシーケンスプログラムの中から実行するシーケンスプログラムを順番に切替える手段と、前記シンボル情報とその物理アドレスとを夫々関連付けて記録した前記シーケンスプログラム毎のテーブルを備え、前記シーケンスプログラム切替えの際に、次に実行されるシーケンスプログラムに対応した前記テーブルを選択する手段と、
シーケンスプログラムのオブジェクトコード中に指定されたシンボル情報と前記選択テーブルに基づいて、対象となる信号の物理アドレスを求めてアクセスし命令を実行するようにしたものである。
【００１２】
又、請求項５に係わる発明は、シーケンスプログラムを実行するシーケンス制御部を内蔵した数値制御装置において、前記シーケンス制御部は、複数のシーケンスプログラムの中から実行するシーケンスプログラムを順番に切替える手段と、前記シーケンスプログラムで取扱う信号の種類毎または信号のアドレス範囲毎にグループ分けされ、該グループ特定情報とそのグループの先頭物理アドレスとを夫々関連付けて記憶した前記シーケンスプログラム毎のテーブル及びシンボル情報とその物理アドレスとを夫々関連付けて記録した前記シーケンスプログラム毎のテーブルを備え、前記オブジェクトコード中に指定された前記グループ特定情報と前記選択テーブルに基づいてグループの先頭物理アドレスを求める手段と、該求めた先頭物理アドレスと前記オブジェクトコード中に指定された前記オフセットアドレスに基づき対象となる信号の物理アドレスを求める手段と、
シーケンスプログラムのオブジェクトコード中に指定されたシンボル情報と前記選択テーブルに基づいて、対象となる信号の物理アドレスを求める手段と、
求められた信号の物理アドレスにアクセスし命令を実行する手段とを備えるものである。
【００１３】
そして、請求項６に係わる発明は、前記シーケンスプログラムを順番に切替える手段を、設定された時間が経過する毎に切替えるものとした。さらに、請求項７に係わる発明は、前記シーケンス制御部に、前記シーケンスプログラムに指定されたテーブル選択命令に従って、前記テーブルを選択する手段を備えるものとした。
【００１４】
【発明の実施の形態】
図１は、本発明の一実施形態の数値制御装置の要部ブロック図である。数値制御装置の数値制御部１０のプロセッサ１１には、数値制御部を制御する制御ソフトウェアを格納するＲＡＭ１２、ワークＲＡＭ１３がバス１４で接続されている。なお、制御する機械の軸を駆動するサーボモータを制御する軸制御手段等も接続されているが図１では図示していない。
【００１５】
又、シーケンス制御部２０の、プロセッサ２１には、該シーケンス制御部２０を制御する制御ソフトウェアを格納するＲＡＭ２２、ＲＡＭで構成され各種シーケンスプログラムを格納するプログラムメモリ２３、信号メモリ（ＲＡＭ）２４、ワークＲＡＭ２５、各種タイマ２６，機械や周辺機器に接続される入出力ディバイス２７がバス２８で接続されている。なお、バス１４とバス２８はバス１５で接続されている。
【００１６】
プログラムメモリ２３には、各種シーケンスプログラムが格納されているが、この実施形態では説明を簡単にするために、シーケンスプログラム１とシーケンスプログラム２が格納されているものとして以下説明する。
信号メモリ（ＲＡＭ）２４には、各シーケンスプログラム毎に分けられ、かつ、シーケンスプログラムで取扱う信号及び／又は信号のアドレス範囲毎にグループ分けがされている。図２はこの信号のグループ分けの説明図である。まずシーケンスプログラム１用とシーケンスプログラム２用にまず分けられ、かつ信号の種類Ｘ，Ｙ，Ｆ，Ｇ等に分けられると共に、信号のアドレス範囲毎にもグループ分けされている。図２に示す例では、Ｉ／Ｏデバイスからの入力信号を意味する信号Ｘのアドレス「００００」〜「０１２７」がグループ番号０，信号Ｘでアドレスが「０２００」〜「０３２７」のものをグループ番号１と分けられている。
【００１７】
同様に、グループ番号２はＩ／Ｏデバイスへの出力信号Ｙのアドレス「００００」〜「０１２７」、グループ番号３は「Ｙ０２００」〜「Ｙ０３２７」、グループ番号４は、数値制御部１０からの入力信号の「Ｆ００００」〜「Ｆ０７６７」、グループ番号５は、数値制御部１０からの入力信号の「Ｆ１０００」〜「Ｆ１７６７」、グループ番号６は、数値制御部１０への出力信号の「Ｇ００００」〜「Ｇ０７６７」、グループ番号７は、数値制御部１０への出力信号の「Ｇ１０００」〜「Ｇ１７６７」と、信号の種類毎でかつアドレス範囲毎にグループ分けされている。
【００１８】
以上のように、信号のグループ化は、信号の種類によって信号メモリ領域内でのアドレス配置位置が異なること、及び同一の信号種類でもアドレスの違いによってその配置が異なること（図１１における信号Ｘの場合等）より、信号メモリ領域内で、信号のアドレス配置が異なる単位、及び物理アドレスが変更される可能性がある信号単位毎にグループ化されている。
【００１９】
ワークＲＡＭ２５には、後述する複数のシーケンスプログラムを少しずつ実行させるための実行時間が設定記憶されている。又、後述する利用するアドレステーブル番号も記憶されるようになっている。そして、シーケンスプログラム１用のアドレステーブルＡＴ１、シーケンスプログラム２用のアドレステーブルＡＴ２が記憶されている。このアドレステーブルＡＴ１，ＡＴ２は信号のグループに対するものＡＴ１−１，ＡＴ２−１とシーケンスプログラム中のオブジェクトコード中に指定されるシンボル情報に対するものＡＴ１−２，ＡＴ２−２がある。
【００２０】
図３は、この信号のグループに対するアドレステーブルＡＴ１−１，ＡＴ２−１の一例を示す図である。シーケンスプログラム１に対するアドレステーブルＡＴ１−１では、グループ番号０に対して先頭物理アドレスが「２０００００００ｈ」と設定されており、以下、各グループ番号毎にそれぞれ「１０００ｈ」増加した先頭物理アドレスが図３に示すように設定されている。
【００２１】
又、シーケンスプログラム２に対するアドレステーブルＡＴ２−１では、グループ番号０に対して先頭物理アドレスが「２０００８０００ｈ」と設定されており、各グループ番号毎にそれぞれ「１０００ｈ」増加した先頭物理アドレスが図３に示すように設定されている。このように、シーケンスプログラム１に対するアドレステーブルＡＴ１−１とシーケンスプログラム２に対するアドレステーブルＡＴ２−１では同一のグループ番号に対して異なった先頭物理アドレスが設定されている。
【００２２】
図４は、シンボル情報に対するアドレステーブルＡＴ１−２，ＡＴ２−２の一例である。「非常停止情報」に対しては、シーケンスプログラム１用のアドレステーブルＡＴ１−２には物理アドレス「２０００８００８ｈ」が設定され、シーケンスプログラム２用のアドレステーブルＡＴ２−２には「３０００８００８ｈ」の物理アドレスが設定されている。同様に、同一のシンボル情報に対してシーケンスプログラム１用のアドレステーブルＡＴ１−２と、シーケンスプログラム２用のアドレステーブルＡＴ２−２では、異なった物理アドレスが設定されている。
【００２３】
図５、図６は、本実施形態において信号の物理アドレスを求める処理原理の説明図である。図５は、グループ番号を有する指令の場合であり、図６はシンボル情報による命令の場合の説明図である。まず、図５に示すグループ番号を有する指令に対する処理について説明する。
符号３０は、シーケンスプログラムにおけるグループ番号を伴う指令のオブジェクトコードフォーマットであり、命令コードとグループ番号及びグループの先頭物理アドレスからのオフセットアドレス量を表すオフセットアドレスで構成されている。すなわち、従来の「信号メモリアドレス情報」が、「グループ番号」と「オフセットアドレス」で構成されている。このフォーマットによる命令が読み込まれると、グループ番号と、予めシーケンスプログラムを実行する前に設定されているアドレステーブル番号より、アドレステーブルを指定し、そのアドレステーブルに設定されているグループ番号に対する先頭物理アドレスを読み出し、この先頭物理アドレスに命令されたオフセットアドレスを加算して、信号の物理アドレス３１を求め、命令コードで命令されている処理（読み出し、書き込み、論理演算、数値演算等）を実行する。
【００２４】
命令コード、グループ番号、オフセットアドレスが同一でも、すなわち、命令のオブジェクトコードが同一でも、アドレステーブルが異なると、グループ番号に対して設定されている先頭物理アドレスが異なることから、同一のオフセットアドレスを加算したとしても求められる信号の物理アドレス３１は異なったものとなる。すなわち、シーケンスプログラムによって指定するアドレステーブルを変えることによって、指定される実際の物理アドレスが異なるものとなるから、シーケンスプログラムを変更することなく、複数の周辺機器等をシーケンス制御できることになる。
【００２５】
例えば、命令コードとして「Ｘ００００」をリード、グループ番号が「０」とし、オフセットアドレスが「０」のオブジェクトコードが指令されているとする。なお、グループ番号「０」に属する信号Ｘの先頭のアドレスは「００００」であり、このアドレスが先頭物理アドレスに対応するものであるから、オフセットアドレスは「０」として設定されている。
【００２６】
そして、アドレステーブル番号が「１」が指定されているとすれば、アドレステーブルＡＴ１−１からグループ番号「０」の先頭物理アドレス「２０００００００ｈ」が読み出され、この先頭物理アドレス「２０００００００ｈ」にオフセットアドレス「０」が加算されて信号の物理アドレス「２０００００００ｈ」が求められ、このアドレスの情報が読み出されることになる。
【００２７】
一方、アドレステーブル番号が「２」が指定されているとすれば、アドレステーブルＡＴ２−１からグループ番号「０」の先頭物理アドレス「２０００８０００ｈ」が読み出され、これにオフセットアドレス「０」が加算されて信号の物理アドレス「２０００８０００ｈ」が求められ、このアドレスの情報が読み出されることになる。アドレステーブル番号の指定を変えることによって同一のオブジェクトコードの指令でも異なった物理アドレスに対して処理がなされることになる。
【００２８】
又、図６は、シンボル情報によるオブジェクトコードの命令の場合の動作説明図である。符号３２はシンボル情報によるオブジェクトコードのフォーマットで、命令コードとシンボル情報からなる。すなわち、従来の「信号メモリアドレス情報」が「シンボル情報」で構成されることになる。このようなオブジェクトコードの命令が読み込まれたとき、予め設定されているアドレステーブル番号に基づいてアドレステーブルを決定し、このアドレステーブルに設定されているシンボル情報に対する物理アドレスを読み取り、この読み取った物理アドレスが信号の物理アドレス３１となり、命令コードの処理（読み込み、書き込み、論理演算等）がなされることになる。
【００２９】
例えば、シンボル情報が「ＥＭＥＲＧＥＮＣＹ  ＳＴＯＰ」（非常停止）で、書き込み命令であると、アドレステーブル番号１が設定されていれば、アドレステーブルＡＴ１−２より、物理アドレス「２０００８００８ｈ」が読み出され、この物理アドレスに非常停止の情報が書き込まれることになる。又、アドレステーブル番号２設定されていれば、アドレステーブルＡＴ２−２より、物理アドレス「３０００８００８ｈ」が読み出され、この物理アドレスに非常停止の情報が書き込まれることになる。
【００３０】
アドレステーブルを変えることによって、同一オブジェクトコードの命令に対しても異なった物理アドレスを指定して処理することができるので、２つの周辺機器を制御するような場合、各々周辺機器を制御するシーケンスプログラムに対応させてアドレステーブルを用意しておけば、各シーケンスプログラムに同一のオブジェクトコードの命令があったとしても、物理アドレスは区別されて処理がなされるから、同時に並行してシーケンス制御を行っても混乱は生じない。
【００３１】
図７は、本発明の第１の実施形態のシーケンス制御部のプロセッサ２１が実施する処理のフローチャートである。この第１の実施形態では、シーケンスプログラム１及び２を交互に実行するものである。
処理が開始されると、まず、アドレステーブル番号を「１」に設定する（ステップ１００）。次に、この設定されたアドレステーブル番号を「１」に対応する、図３，図４に示したアドレステーブルＡＴ１−１，ＡＴ１−２が選択され、このテーブルＡＴ１−１，ＡＴ１−２  に基づいて物理アドレスを決定し、シーケンスプログラム１の各命令をプログラム終了まで、順次実行する（ステップ１０１，１０２）。
【００３２】
シーケンスプログラム１をプログラム終了まで実行すると、次にアドレステーブル番号を「２」に設定し（ステップ１０３）、この設定されたアドレステーブル番号を「２」に対応する、図３，図４に示したアドレステーブルＡＴ２−１，ＡＴ２−２を選択し、このテーブルＡＴ２−１，ＡＴ２−２  に基づいて物理アドレスを決定し、シーケンスプログラム２の各命令をプログラム終了まで、順次実行する（ステップ１０４，１０５）。そしてプログラム終了まで実行すると、再びステップ１００に戻り前述した処理を行うことになる。以下、シーケンスプログラム１及び２を交互に実行することになる。交互にシーケンスプログラム１及び２を実行しても、各シーケンスプログラムで用いる信号メモリ領域（信号の物理アドレス）が異なるから、これらシーケンスプログラムで制御される機器の動作制御が誤ることはない。
【００３３】
図８は、本発明の第２の実施形態として、シーケンス制御部２０のプロセッサ２１が実施する処理のフローチャートである。この第２の実施形態では、シーケンスプログラム１及び２を設定された実行時間毎交互に実行し、シーケンスプログラムを少しずつ実行するようにしたものである。
【００３４】
まず、アドレステーブル番号を「１」にセットし（ステップ２００）、予め設定されているプログラム実行時間をタイマにセットして起動させ（ステップ２０１）、設定されたアドレステーブル番号を「１」に対応する、図３，図４に示したアドレステーブルＡＴ１−１，ＡＴ１−２を用いて、シーケンスプログラム１用の実行ポインタで示されるシーケンスプログラム１における１命令を実行する。そして実行ポインタを「１」インクリメントする（ステップ２０２）。なお、この実行ポインタ及び後述するシーケンスプログラム２用の実行ポインタは、電源が投入されたときの初期設定で最初は「０」が設定されている。又、プログラム終了が読み込まれたときにはこの実行ポインタは「０」にリセットされる。
【００３５】
そして、プログラム終了の指令が読み込まれたか判断し（ステップ２０３）、プログラム終了でなければ、タイマが設定時間経過したか判断し（ステップ２０４）、タイムアップしていなければステップ２０２に戻り、前述した処理を実行する。
タイマが設定時間を計時してタイムアップすると、アドレステーブル番号を「２」にセットし（ステップ２０５）、タイマにプログラム実行時間をセットして起動させ（ステップ２０６）、設定されたアドレステーブル番号を「２」に対応する、図３，図４に示したアドレステーブルＡＴ２−１，ＡＴ２−２を用いて、シーケンスプログラム２用の実行ポインタで示されるシーケンスプログラム２における１命令を実行する。そして実行ポインタを「１」インクリメントする（ステップ２０７）。そして、プログラム終了か判断し（ステップ２０８）、終了でなければ、タイマがタイムアップしたか判断し（ステップ２０９）、プログラムが終了するかタイマがタイムアップするまでステップ２０７〜２０９の処理を繰り返し実行し、シーケンスプログラム２の命令を順次実行する。
【００３６】
タイマがタイムアップすると、ステップ２００に戻り、前述した処理ステップ２００以下の処理を実行する。以下、設定されたプログラム実行時間単位でシーケンスプログラム１とシーケンスプログラム２が交互に少しずつ並行して実行されることになる。
この第２の実施形態において、シーケンスプログラム１，２が所定時間間隔で少しずつ実行されたとしても、信号メモリ領域（信号の物理アドレス）は、シーケンスプログラム１と２では異なるから、誤った制御がなされることはない。
【００３７】
図９は、本発明の第３の実施形態である。この第３の実施形態は上述した第２の実施形態と比較して、シーケンスプログラム中にテーブル切替命令を入れておくことにより、テーブルの切替を可能にしたものである。これによって、シーケンスプログラム１とシーケンスプログラム２間の情報の交換等を可能にしたものである。
【００３８】
まず、プログラム１用のテーブル番号記憶メモリに設定されている番号をアドレステーブル番号にセットする（ステップ３００）。なお、プログラム１用のテーブル番号記憶メモリには、電源投入時の初期設定で、自己のテーブル番号が設定されている。すなわちシーケンスプログラム１には番号「１」がシーケンスプログラム２用には番号「２」が設定されている。
【００３９】
次に、予め設定されているプログラム実行時間をタイマにセットして起動させる（ステップ３０１）。そして、設定されたアドレステーブル番号（最初は「１」）に対応する、図３，図４に示したアドレステーブルを用いて、シーケンスプログラム１用の実行ポインタで示されるシーケンスプログラム１における１命令を実行し、実行ポインタを「１」インクリメントする（ステップ３０２）。実行ポインタは前述したように電源が投入されたときの初期設定で最初は「０」が設定され、プログラム命令が実行される毎に「１」インクリメントされ、プログラム終了が読み込まれたときには「０」にリセットされる。
【００４０】
次に、読み出された命令がテーブル切替命令かを判断し（ステップ３０３）、テーブル切替命令でなければ、プログラム終了の指令が読み込まれたか判断し（ステップ３０５）、プログラム終了でなければ、タイマが設定時間経過したか判断し（ステップ３０６）、タイムアップしていなければステップ３０２に戻り、前述した処理を実行する。
【００４１】
又、テーブル切替命令が読み込まれると、このテーブル切替命令で指定されている番号をテーブル番号に設定し、かつ、プログラム１用のテーブル番号記憶メモリにこの指定された番号を記憶する（ステップ３０４）。この実施形態では、２つのアドレステーブルしかなく、現在指定しているテーブル番号は「１」であると、テーブル切替命令によってテーブル番号は「２」に設定されることになる。その結果、プログラム終了になるか（ステップ３０５）、タイマが設定時間を計時してタイムアップするまでは（ステップ３０６）、ステップ３０２での命令の実行は、切替られたアドレステーブルを用いて行われることになる。
【００４２】
タイマが設定時間を計時してタイムアップすると、プログラム２用のテーブル番号記憶メモリに設定されている番号をアドレステーブル番号にセットする（ステップ３０７）。この実施形態の場合、「２」にセットされる。そして、タイマにプログラム実行時間をセットして起動する（ステップ３０８）。次に、設定されたアドレステーブル番号（「２」）に対応する、アドレステーブル（ＡＴ２−１，ＡＴ２−２）を用いて、シーケンスプログラム２用の実行ポインタで示されるシーケンスプログラム２における１命令を実行し、実行ポインタを「１」インクリメントする（ステップ３０９）。次に、読み出された命令がテーブル切替命令かを判断し（ステップ３１０）、テーブル切替命令でなければ、プログラム終了の指令が読み込まれたか（ステップ３１２）、プログラム終了でなければ、タイマが設定時間経過したか判断し（ステップ３１３）、タイムアップしていなければステップ３０９に戻り、前述した処理を実行する。
【００４３】
又、テーブル切替命令が読み込まれると（ステップ３１０）、このテーブル切替命令で指定されている番号をテーブル番号に設定し、かつ、プログラム２用のテーブル番号メモリにこの指定された番号を記憶する。以後は、再びシーケンスプログラム２よりテーブル切替指令が読み込まれない限り、この切替えられたテーブル番号のアドレステーブルを用いて処理されることになる。
【００４４】
タイマがタイムアップすると、ステップ３００に戻り、前述した処理ステップ２００以下の処理を実行するが、この場合、ステップ３０３でテーブル切替指令が読み込まれた後では、プログラム２用のテーブル番号メモリに記憶する番号は切替られているものであるから、その切替えられた番号がテーブル番号に設定されこの切替えられた番号のアドレステーブルに基づいて処理が実行されることになる。
【００４５】
この第３の実施形態では、シーケンスプログラム１はアドレステーブルＡＴ１−１，ＡＴ１−２に基づいて、シーケンスプログラム２はアドレステーブルＡＴ２−１，ＡＴ２−２に基づいて、各プログラムに対する独自の異なる物理アドレスを用いてプログラム命令を実行しているとき、テーブル切替指令によって、シーケンスプログラム１がシーケンスプログラム２の物理アドレスをリードしたりライトしたりすることができる。逆にシーケンスプログラム２がシーケンスプログラム１の物理アドレスをリードしたりライトしたりすることができる。これにより、シーケンスプログラム１，２によって、並行して実行している相手の動作処理を監視したり、待ち合わせ等の動作をさせることができる。
【００４６】
また、数値制御部１０が複数の系統を制御する多系統制御を実行するような場合には、系統毎のアドレステーブルを設けて、テーブル切替をおこなって、同一のシーケンスプログラムを実行させるようにする。例えば、シーケンスプログラム１を系統毎に実施させたい場合、系統ａ，ｂ，ｃ・・毎にアドレステーブルＡＴ１−１ａ，ＡＴ１−１ｂ，ＡＴ１−１ｃ，ＡＴ１−２ａ，ＡＴ１−２ｂ，ＡＴ１−２ｃ・・を設けておき、アドレステーブルＴ１−１ａ，Ｔ１−２ａに切替えて系統ａに対してシーケンスプログラム１を実行した後、テーブル切替指令でアドレステーブルＴ１−１ｂ，Ｔ１−２ｂに切替えて系統ｂに対してシーケンスプログラム１を実行させ、終了後、テーブル切替指令でアドレステーブルＴ１−１ｃ，Ｔ１−２ｃに切替えて系統ｃに対してシーケンスプログラム１を実行させるようにする。このように、アドレステーブルを切り替えるだけで複数の系統に対して同一の動作を実行させることができる。
又、シーケンス制御部のハードウェアの変更などにより、各信号メモリ領域内の各信号の物理アドレスを変更するには、アドレステーブルを変更するだけで、対応でき、システムの変更、拡充が容易となる。
【００４７】
【発明の効果】
本発明により、異なったシーケンスプログラムにおいてオブジェクトコードが同一でも、異なった信号メモリ領域で実行可能なため、各信号の物理アドレス情報をオブジェクトコード中に直接記録する必要がない。オブジェクトコードは信号の物理アドレスに依存しないものとなるため、異なったシーケンスプログラムにおいて共通する部分は、同一のシーケンスプログラムでよく、プログラマの開発工数が軽減できる。また異なった信号メモリの物理アドレスマップを持つハードウェア毎に、シーケンスプログラムのオブジェクトコードを作成する必要がなく、プログラマの開発工数が軽減できる。
【図面の簡単な説明】
【図１】本発明の一実施形態の数値制御装置の要部ブロック図である。
【図２】同実施形態における信号のグループ分けの説明図である。
【図３】同実施形態におけるアドレステーブルの一例を示す図である。
【図４】同実施形態におけるシンボル情報に対するアドレステーブルの一例の説明図である。
【図５】同実施形態におけるグループ番号に基づく信号の物理アドレスを求める処理原理の説明図である。
【図６】同実施形態におけるシンボル情報による命令に対する物理アドレスを求める処理原理の説明図である。
【図７】第１の実施形態におけるシーケンス制御部のプロセッサが実施する処理のフローチャートである。
【図８】第２の実施形態におけるシーケンス制御部のプロセッサが実施する処理のフローチャートである。
【図９】第３の実施形態におけるシーケンス制御部のプロセッサが実施する処理のフローチャートである。
【図１０】第３の実施形態におけるシーケンス制御部のプロセッサが実施する処理のフローチャートの続きである。
【図１１】信号に対して割り当てられた物理アドレス領域の説明図である。
【符号の説明】
１０  数値制御部
２０  シーケンス制御部
１４，１５，２８  バス
ＡＴ１−１，ＡＴ２−１，ＡＴ１−２，ＡＴ２−２，  アドレステーブル
３０  オブジェクトコードフォーマット
【図１】
2004252844.tif 000003
【図２】
2004252844.tif 000004
【図３】
2004252844.tif 000005
【図４】
2004252844.tif 000006
【図５】
2004252844.tif 000007
【図６】
2004252844.tif 000008
【図７】
2004252844.tif 000009
【図８】
2004252844.tif 000010
【図９】
2004252844.tif 000011
【図１０】
2004252844.tif 000012
【図１１】
2004252844.tif 000013