(57)【特許請求の範囲】
【請求項１】
ユーザープログラム領域、ライブラリープログラム領域、データ領域、データ退避領域を有する記憶装置と、データ領域に記憶されているデータに基づいて、ユーザープログラム領域に記憶されているユーザープログラムあるいはライブラリープログラム領域に記憶されているライブラリープログラムを実行する制御装置を備え、
制御装置は、データ領域に記憶されているユーザーデータをデータ退避領域に退避させるとともに、データ退避領域に退避させているライブラリーデータをデータ領域に記憶させた状態でライブラリープログラムを実行し、データ領域に記憶されているライブラリーデータをデータ退避領域に退避させるとともに、データ退避領域に退避させているユーザーデータをデータ領域に記憶させた状態でユーザープログラムを実行するプログラマブルコントローラ。
【請求項２】
ユーザープログラム領域、ライブラリープログラム領域、ライブラリーデータ専用領域を含むデータ領域、データ退避領域を有する記憶装置と、データ領域に記憶されているデータに基づいてユーザープログラム領域に記憶されているユーザープログラムあるいはライブラリープログラム領域に記憶されているライブラリープログラムを実行する制御装置を備え、
制御装置は、ライブラリーデータ専用領域に記憶されているユーザーデータをデータ退避領域に退避させるとともに、データ退避領域に退避させているライブラリーデータをライブラリーデータ専用領域に記憶させた状態でライブラリープログラムを実行し、ライブラリーデータ専用領域に記憶されているライブラリーデータをデータ退避領域に退避させるとともに、データ退避領域に退避させているユーザーデータをライブラリーデータ専用領域に記憶させた状態でユーザープログラムを実行するプログラマブルコントローラ。
【請求項３】
請求項１又は２に記載のプログラマブルコントローラであって、データ退避領域はユーザーデータ退避領域とライブラリーデータ退避領域  を有するプログラマブルコントローラ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、生産設備として使用される産業機械及び工作機械を制御する、プログラマブルコントローラに関する。
【０００２】
【従来の技術】
一般に、産業機械や工作機械は、機械各所に取付けられたリミットスイッチ等に代表される入力要素と、ソレノイドやモータ等に代表される出力要素を備えている。プログラマブルコントローラは、これら入力要素及び出力要素に１対１で入力要素アドレスと出力要素アドレスを対応させ、これら入出力要素アドレス（入出力点と称す。）に入力要素からの入力信号及び出力要素への出力信号を記憶する。これら入出力要素の入出力信号に加え、プログラマブルコントローラ内部で擬似的に使用される内部入力及び内部出力（内部入出力と称す。）を使用してプログラムが作成される。このプログラムに従って、所定の入力要素からの入力信号が予め定められた状態（オン又はオフ）になったときに、所定の出力要素に出力信号を出力して、機械に所定の動作を行わせている。
【０００３】
従来、プログラマブルコントローラには、使用者がユーザープログラムを設計する時に使用可能な汎用サブルーチンプログラムが組み込まれている場合がある。この汎用サブルーチンプログラムをライブラリープログラムと称し、ライブラリープログラムで使用される内部入出力点Ｍのオンもしくはオフを示すデータ等をライブラリーデータと称する。また、ユーザープログラムで使用される内部入出力点Ｍのオンもしくはオフを示すデータ等をユーザーデータと称する。
プログラマブルコントローラは、構成上、制御装置と、記憶装置を有する。制御装置は、マイクロプロセッサであり、記憶装置は、例えばＲＯＭ等の第１の記憶装置や、ＲＡＭ等の第２の記憶装置により構成される。第１の記憶装置には、プログラマブルコントローラ出荷時に、予め、プログラマブルコントローラ用のＯＳが記憶されている。第２の記憶装置には、ユーザープログラムを記憶するユーザープログラム領域、ライブラリープログラムを記憶するライブラリープログラム領域、ユーザーデータを記憶するユーザーデータ領域及びライブラリーデータを記憶するライブラリーデータ専用領域を有するデータ領域が設けられている。このライブラリーデータ専用領域に対応する内部入出力点Ｍは、後述する理由によってユーザープログラムでは使用禁止となっている。
制御装置は、第１の記憶装置に記憶されているＯＳに基づいて、第２の記憶装置に記憶されているユーザープログラムを実行する。制御装置は、ユーザープログラムを実行する時には、適宜、データ領域に記憶されているユーザープログラムで指定された内部入出力点Ｍのデータを読み出し、処理する。ユーザープログラム中で、ライブラリープログラムにジャンプ（移行）する命令があれば、ライブラリープログラムを実行する。ライブラリープログラムを実行する時には、適宜、データ領域に記載されているライブラリープログラムで指定された内部入出力点Ｍのデータを読み出し、処理する。
【０００４】
次に、ユーザープログラム１３１及びライブラリープログラム１３２のラダー図の一例を図６に示す。ここで、第２の記憶装置のライブラリーデータ専用領域には、ライブラリーデータとして使用される内部入出力点Ｍ２００〜Ｍ３５０が記憶される。ユーザーデータとしては、これらのライブラリーデータとして使用される内部入出力点以外の内部入出力点を使用するように指示されている。内部入出力のデータがユーザーデータ領域に記憶されるかライブラリーデータ専用領域に記憶されるかは、例えば、内部入出力点の番号によって定まる。したがって、この場合には、２００〜３５０以外の番号、例えば、内部入出力点Ｍ００〜Ｍ１９９をユーザーデータとして使用する。
ユーザープログラム１３１において、ステップ５０では、内部入力点「Ｍ０１」がオンであれば内部出力点「Ｍ１０」をオンにする。また、ステップ５１では、内部入力点「Ｍ１０」がオンであれば内部出力点「Ｍ２０」をオンにする。次いで、ステップ５２では、内部入力点「Ｍ０２」がオンであれば、ライブラリープログラム１３２にジャンプする。
ライブラリープログラム１３２において、ステップ６０では、内部入力点「Ｍ２５０」がオンであれば、内部出力点「Ｍ３００」をオンする。また、ステップ６１では、ユーザープログラム１３１にリターンする。
ユーザープログラム１３１において、ステップ５３では、ユーザープログラム１３１の処理を終了する。
【０００５】
【発明が解決しようとする課題】
ここで、ユーザープログラム１３１のステップ５１において、誤って、ライブラリーデータの内部出力点として使用されている内部出力点「Ｍ３００」をユーザーデータの内部出力点として使用した場合、ユーザープログラム１３１のステップ５１を実行する際に内部入力点「Ｍ１０」がオンしていれば、内部出力点「Ｍ３００」がオンしてしまう。すなわち、本来は、内部入力点「Ｍ２５０」がオンであれば内部出力点「Ｍ３００」がオンするものが、内部入力点「Ｍ２５０」の状態に関わらず、内部入力点「Ｍ１０」がオンである場合にも内部出力点「Ｍ３００」がオンしてしまう。
このように、ライブラリーデータ専用領域に記憶されるライブラリーデータ用の内部入出力点Ｍを、ユーザーデータ用の内部入出力点Ｍとして使用すると、内部入出力点Ｍのデータが不本意に書きかえられてしまい、プログラマブルコントローラが誤動作する可能性があった。
そこで、ユーザープログラムを設計する際に、ライブラリーデータ専用領域に記憶されるライブラリーデータ用の内部入出力点Ｍをユーザーデータ用の内部入出力点Ｍとして使用しないようにという内容の注意書きが、プログラマブルコントローラの取扱説明書に記載されている。しかしながら取扱説明書の該当する説明を見逃したりすること等により、ライブラリーデータ専用領域に記憶されるライブラリーデータ用の内部入出力点Ｍを、ユーザーデータ用の内部入出力点Ｍとして使用してしまうことがあった。
したがって、本発明は、ユーザープログラムを設計するときに、ライブラリーデータとして使用する内部入出力点Ｍ（内部入出力点名や内部入出力点のアドレス等）をユーザーデータの内部入出力点Ｍとして使用しても、誤動作することがないプログラマブルコントローラを提供することを目的とする。
また、これによって、ユーザープログラムを設計する際にユーザーデータとして使用する内部入出力点Ｍがライブラリーデータの内部入出力点Ｍとして使用されているか等を厳密に判断する必要がないため、容易にユーザープログラムを設計することができる。
【０００６】
【課題を解決するための手段】
上記目的を解決するために、請求項１に記載の発明は、ユーザープログラム領域、ライブラリープログラム領域、データ領域、データ退避領域を有する記憶装置と、データ領域に記憶されているデータに基づいて、ユーザープログラム領域に記憶されているユーザープログラムあるいはライブラリープログラム領域に記憶されているライブラリープログラムを実行する制御装置を備え、制御装置は、データ領域に記憶されているユーザーデータをデータ退避領域に退避させるとともに、データ退避領域に退避させているライブラリーデータをデータ領域に記憶させた状態でライブラリープログラムを実行し、データ領域に記憶されているライブラリーデータをデータ退避領域に退避させるとともに、データ退避領域に退避させているユーザーデータをデータ領域に記憶させた状態でユーザープログラムを実行するプログラマブコントローラである。
請求項１に記載のプログラマブルコントローラによれば、データ領域に記憶されるデータをユーザープログラム実行時とライブラリープログラム実行時で入れ替えるため、ライブラリーデータとして使用する内部入出力点をユーザーデータとして使用しても誤動作することがない。また、ユーザープログラムを設計するときに、ユーザーデータの内部入出力点がライブラリーデータの内部入出力点として使用されているか等を厳密に判断する必要がないため、容易にユーザープログラムを設計することができる。
【０００７】
また、請求項２に記載の発明は、ユーザープログラム領域、ライブラリープログラム領域、ライブラリーデータ専用領域を含むデータ領域、データ退避領域を有する記憶装置と、データ領域に記憶されているデータに基づいてユーザープログラム領域に記憶されているユーザープログラムあるいはライブラリープログラム領域に記憶されているライブラリープログラムを実行する制御装置を備え、制御装置は、ライブラリーデータ専用領域に記憶されているユーザーデータをデータ退避領域に退避させるとともに、データ退避領域に退避させているライブラリーデータをライブラリーデータ専用領域に記憶させた状態でライブラリープログラムを実行し、ライブラリーデータ専用領域に記憶されているライブラリーデータをデータ退避領域に退避させるとともに、データ退避領域に退避させているユーザーデータをライブラリーデータ専用領域に記憶させた状態でユーザープログラムを実行するプログラマブコントローラである。
請求項２に記載のプログラマブルコントローラによれば、請求項１に記載のプログラマブルコントローラの効果に加えて、ライブラリーデータ専用領域に記憶されているデータのみを入れ替えればよいため、容易に、短時間で、小容量のデータ退避領域でデータの入れ替えを行うことができる。
【０００８】
また、請求項３に記載の発明は、請求項１又は２に記載のプログラマブルコントローラであって、データ退避領域はユーザーデータ退避領域とライブラリーデータ退避領域を有するプログラマブルコントローラである。
請求項３に記載のプログラマブルコントローラによれば、ユーザーデータ用及びライブラリーデータ用のデータ退避領域を設けたのでデータを入れ替える作業が一層容易となり、また作業時間を一層短縮することができる。また、それぞれのデータ退避領域を設けることにより、退避させるデータを確実に保存しておくことができる。
【０００９】
【発明の実施の形態】
次に図面を参照しながら本発明の実施の形態を説明する。図１は、本発明のプログラマブルコントローラの概略構成図である。プログラマブルコントローラ１には、マイクロプロセッサである制御装置２と、ＲＯＭ等の第１の記憶装置３と、ＲＡＭ等の第２の記憶装置４が内蔵されている。プログラマブルコントローラ１は、入力点及び出力点に相当する図示していない入力端子及び出力端子等を介して、外部機器である設備５に接続されている。
第２の記憶装置４は、ユーザープログラム１３１が記憶されているユーザープログラム領域、ライブラリープログラム１３２が記憶されているライブラリープログラム領域、データ領域１３３、ユーザーデータ退避領域１３５、ライブラリーデータ退避領域１３６を有する。なお、本明細書中で使用する「領域」は、連続していても、連続していなくてもよく、また、固定でも可変でもよい。
【００１０】
ユーザープログラム１３１やライブラリープログラム１３２を実行する時にアクセス可能なデータは、入力点及び出力点に対応するデータを記憶する図示していないＩ／Ｏデータ領域と、プログラマブルコントローラ内部で使用される内部入出力点データを記憶するデータ領域１３３等である。
データ領域１３３において、内部入出力点Ｍに対応するデータを、どのデータ領域に記憶するか、例えば、データ領域１３３中のライブラリーデータ専用領域１３４に記憶するか、あるいはそれ以外の領域に記憶するかは、ＯＳにおいてあらかじめ設定されている。
本実施の形態においては、例えば、データ領域１３３は、アドレス１００番地から４５０番地までである。データ領域１３３のうち、アドレス１００番地から２９９番地までは、ユーザーデータ用領域１３３ａであり、内部入出力点Ｍ００〜Ｍ１９９に対応するユーザーデータが記憶される。データ領域１３３のうち、アドレス３００番地から４５０番地までは、ライブラリーデータ専用領域１３４であり、実施例では、ライブラリーデータ専用内部入出力点Ｍ２００からＭ３５０に対応するライブラリーデータが記憶される。
【００１１】
ユーザーデータ退避領域１３５は、例えば、アドレス５００番地から６５０番地までである。ユーザーデータ退避領域１３５は、ライブラリープログラム１３２を実行するときに、ライブラリーデータ専用領域１３４内のユーザーデータ（内部入出力点Ｍ２００〜Ｍ３５０のオンもしくはオフを示すデータ）を退避させておく領域である。ライブラリーデータ退避領域１３６は、例えば、アドレス７００番地から８５０番地までである。
ライブラリーデータ退避領域１３６は、ユーザープログラム１３１を実行するときに、ライブラリーデータ専用領域１３４内のライブラリーデータ（内部入出力点Ｍ２００〜Ｍ３５０のオンもしくはオフを示すデータ）を退避させておく領域である。
【００１２】
次に、図５に示すフローチャートに基づいて、本発明のプログラマブルコントローラ１の動作を説明する。まず、ステップ１０では、ユーザープログラム１３１を実行する。
次に、ステップ１１では、ライブラリープログラム１３２を実行するか否かを判定する。ライブラリープログラム１３２を実行する場合には、ステップ１２に進む。
ステップ１２では、ライブラリーデータ専用領域１３４のデータを、ユーザーデータからライブラリーデータに入れ替え、ステップ１３に進む。
ステップ１３では、ライブラリープログラム１３２を実行する。
ステップ１４では、ライブラリープログラム１３２が終了したか否か判定する。終了していなければ、ステップ１３に戻りライブラリープログラムを続行する。
ステップ１４でライブラリープログラム１３２が終了したことを判別したら、ステップ１５に進む。
ステップ１５では、ライブラリーデータ専用領域１３４のデータを、ライブラリーデータからユーザーデータに入れ替え、ステップ１０に戻ってユーザープログラム１３１を続行する。
また、ステップ１１で、ライブラリープログラム１３２を実行しない場合には、ステップ１６に進む。
ステップ１６では、ユーザープログラム１３１を終了するＥＮＤ命令があるか否か判別する。ＥＮＤ命令がないと判別したときには、ステップ１０に戻って、ユーザープログラム１３１を続行する。ステップ１６で、ＥＮＤ命令があると判別したときには、ステップ１７に進む。
ステップ１７では、Ｉ／Ｏリフレッシュ処理を実行し、ユーザープログラム１３１を終了する。
【００１３】
ここで、ユーザープログラム及びライブラリープログラムの各ステップでの処理結果、つまり、内部入出力Ｍのオンもしくはオフを示すデータをバッファ（図示していない）に仮に記憶させておいて、ユーザープログラムが終了する状態において、前記処理結果を第２の記憶装置４に記憶させる処理をＩ／Ｏリフレッシュ処理という。一般的には、エンド命令を実行する時に、制御装置２がＯＳに基づいて自動的に行う。
なお、前記処理結果を第２の記憶装置４に記憶させる処理は、ユーザープログラム及びライブラリープログラムの各ステップでの処理が終了する毎に行ってもよい。この場合は、図５に示すＩ／Ｏリフレッシュ処理は省略してよい。
【００１４】
次に、具体的なシーケンスプログラムに基づいて、本発明のプログラマブルコントローラ１の動作を説明する。図２は、ユーザープログラム１３１及びライブラリープログラム１３２をラダー図に表わした一例を示す。ここでユーザーデータとして使用可能な内部入出力点Ｍは、ライブラリーデータとして使用される内部入出力点Ｍ２００〜Ｍ３５０以外の、内部入出力点Ｍ００〜Ｍ１９９であるものとする。従来技術の説明と同様、前記第２の記憶装置４のライブラリーデータ専用領域１３４に記憶される内部入出力点Ｍは、Ｍ２００〜Ｍ３５０である。
【００１５】
ユーザープログラム１３１がスタートする時には、ライブラリーデータ専用領域１３４には、ユーザーデータとしての内部入出力点Ｍ２００〜Ｍ３５０が記憶されている。
図２において、ユーザープログラム１３１のステップ３０では、内部入力点「Ｍ０１」がオンであれば内部出力点「Ｍ１０」をオンする。また、ステップ３１では、内部入力点「Ｍ１０」がオンであれば内部出力点「Ｍ２０」をオンする。次いで、ステップ３２では、内部入力点「Ｍ０２」がオンであれば、ライブラリープログラム１３２にジャンプする。
ライブラリープログラム１３２において、ステップ４０では、「スワップ」命令が実行される。「スワップ」命令では、ライブラリーデータ専用領域１３４のデータが入れ替えられる。すなわち、図３に示すように、ライブラリーデータ専用領域１３４に記憶されているユーザーデータ（Ａ）としての内部入出力点Ｍ２００〜Ｍ３５０のデータをユーザーデータ退避領域１３５に退避させる。そして、ライブラリーデータ退避領域１３６に退避させているライブラリーデータ（Ｂ）としての内部入出力点Ｍ２００〜Ｍ３５０のデータをライブラリーデータ専用領域１３４に記憶させる。
ステップ４１では、内部入力点「Ｍ２５０」がオンであれば内部出力点「Ｍ３００」をオンする。
ステップ４２では、ライブラリープログラム１３２からユーザープログラム１３１にジャンプする前に「スワップ」命令を実行する。この「スワップ」命令により、図４に示すようにライブラリーデータ専用領域１３４に記憶されているライブラリーデータ（Ｂ'）としての内部入出力点Ｍ２００〜Ｍ３５０のデータをライブラリーデータ退避領域１３６に退避させる。そして、ユーザーデータ退避領域１３５に退避させているユーザーデータ（Ａ）としての内部入出力点Ｍ２００〜Ｍ３５０のデータをライブラリーデータ専用領域１３４に記憶させる。これにより、ライブラリーデータ専用領域１３４のデータは、ライブラリープログラム１３２にジャンプする前のユーザーデータ（Ａ）に戻る。
そして、ステップ４３で、ユーザープログラム１３１にリターンする。
ユーザープログラム１３１において、ステップ３３では、ユーザープログラム１３１の処理を終了する。
【００１６】
ここで、例えば、ユーザープログラム１３１のステップ３１において、誤ってライブラリーデータの内部出力点として使用する内部出力点「Ｍ３００」をユーザーデータの内部出力点として使用した場合を考える。従来技術では、ユーザープログラム１３１のステップ３１を実行する際に内部入力点「Ｍ１０」がオンしていれば、内部出力点「Ｍ３００」がオンしてしまう。
しかしながら、本実施の形態においては、ユーザープログラム１３１からライブラリープログラム１３２にジャンプする時あるいはライブラリープログラム１３２からユーザープログラム１３１に戻る時に、「スワップ」命令を実行する。すなわち、ライブラリーデータ専用領域１３４のデータを、ユーザーデータからライブラリーデータに、あるいはライブラリーデータからユーザーデータに入れ替える。
したがって、ライブラリーデータ専用領域１３４に記憶される内部入出力点Ｍを、誤って、ユーザープログラムで、ユーザーデータの内部入出力点Ｍとして使用しても、内部入出力点Ｍのデータが不本意に書き替えられることがない。これにより、プログラマブルコントローラの誤動作を防止することができる。
【００１７】
なお、シーケンスプログラムは、図５に示したものに限定されず、種々変更可能である。
また、ライブラリーデータ専用領域１３４のデータをユーザープログラム実行時とライブラリープログラム実行時で入れ替えたが、データ領域１３３全体のデータを入れ替えてもよい。
また、記憶装置におけるユーザープログラムを記憶する領域や、ライブラリープログラムを記憶する領域や、データ領域や、データ退避領域の割り付けは、実施例以外の割り付けでもよい。
また、ライブラリーデータ専用領域１３４のデータを入れ替える時期は、ユーザープログラムあるいはライブラリープログラムを実行する時に入れ替わっていればよく、任意の時期に設定することができる。
また、データ退避領域をユーザーデータ用及びライブラリーデータ用に２つ設けたが、データ退避領域の数は、データを入れ替えることができれば、０を含めて種々変更可能である。
【００１８】
【発明の効果】
以上説明したように、請求項１に記載のプログラマブルコントローラによれば、ライブラリーデータとして使用する内部入出力点をユーザーデータとして使用しても誤動作することがない。また、ユーザープログラムを設計するときに、ユーザーデータの内部入出力点がライブラリーデータの内部入出力点として使用されているか等を厳密に判断する必要がないため、容易にユーザープログラムを設計することができる。
また、請求項２に記載のプログラマブルコントローラによれば、請求項１に記載のプログラマブルコントローラの効果に加えて、ライブラリーデータ専用領域に記憶されているデータのみを入れ替えればよいため、容易に、短時間で、小容量のデータ退避領域でデータの入れ替えを行うことができる。
また、請求項３に記載のプログラマブルコントローラによれば、ユーザーデータ用及びライブラリーデータ用のデータ退避領域を設けたのでデータを入れ替える作業が一層容易となり、また作業時間を一層短縮することができる。また、それぞれのデータ退避領域を設けることにより、退避させるデータを確実に保存しておくことができる。
【００１９】
【図面の簡単な説明】
【図１】本発明のプログラマブルコントローラの一実施の形態の概略図である。
【図２】本発明のプログラマブルコントローラの動作の一例を示すラダー図である。
【図３】第２の記憶装置の状態を示す図である。
【図４】第２の記憶装置の状態を示す図である。
【図５】本発明のプログラマブルコントローラの動作の一例を示すフローチャート図である。
【図６】従来のプログラマブルコントローラの動作を示すラダー図である。
【符号の説明】
１        プログラマブルコントローラ
２        制御装置
３        第１の記憶装置
４        第２の記憶装置
５        設備
１３１    ユーザープログラム
１３２    ライブラリープログラム
１３３    データ領域
１３３ａ  ユーザーデータ用領域
１３４    ライブラリーデータ専用領域
１３５    ユーザーデータ退避領域
１３６    ライブラリーデータ退避領域
【図１】
0003666349.tif 000002
【図２】
0003666349.tif 000003
【図３】
0003666349.tif 000004
【図４】
0003666349.tif 000005
【図５】
0003666349.tif 000006
【図６】
0003666349.tif 000007