(57)【特許請求の範囲】
【請求項１】
容量・性能を複数領域に分割して処理を行い、専用の保守ツールにより、前記領域毎に管理され、作成されたアプリケーションプログラムが登録され、このアプリケーションプログラムの内容を領域毎に一定の周期でデータをサンプリングして実行するコントローラの処理能力管理方法であって、
前準備として、保守ツール側では、コントローラ全体の管理に係る処理能力情報を計算し、当該処理能力情報をコントローラ側に転送し、コントローラ側では、転送されてきた処理能力情報を自身の情報格納部の領域（ＣＭ）に格納するとともに、その領域（ＣＭ）の処理能力情報、及び分割単位のアプリケーションプログラムの対応領域（１Ｍ，……，ｎＭ）の処理能力情報を基に全体の処理能力情報を求め、この全体の処理能力情報を領域（ＡＭ）に格納し、
次に、保守ツールからコントローラにアプリケーションプログラムを投入する場合、保守ツール側では、そのアプリケーションプログラムの管理に係る処理能力情報を計算し、この処理能力情報をコントローラに転送し、コントローラ側では、領域（ＡＭ）の全体の処理能力情報と、領域（ＣＭ）の内部処理能力情報、前記保守ツールから転送されてきたアプリケーションプログラムの処理能力情報、及びそのアプリケーションプログラム以外の全てのアプリケーションプログラムの対応領域の処理能力情報から求めた新たな全体の処理能力情報とを比較し、処理能力が有るか否かを判定し、処理能力有りの場合は領域（ＡＭ）の全体の処理能力情報を前記新たに求めた全体の処理能力情報に更新し、投入するアプリケーションプログラムの転送許可を保守ツールに転送し、処理能力無しの場合は投入するアプリケーションプログラムの転送不可を保守ツールに転送するようにしたことを特徴とするコントローラの処理能力管理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、プログラム制御等のコントローラの処理能力管理方法に関する。
【０００２】
【従来の技術】
従来、プロセス制御装置のコントローラは、図１に示すように、アプリケーションプログラムを単一の領域全体とし、メインプログラムにより一定周期毎に起動処理している。つまり、図２に示すように、設定されたサンプリング周期Ｔ毎に、データをサンプリングして取り込み（入力）、内部メモリに登録されたアプリケーションプログラムを一定の演算周期Ｔ以内で処理し、結果を出力する動作を繰り返している。
【０００３】
保守ツールではコントローラのアプリケーションプログラムを作成する際には、定まった計算式に従い、処理時間を計算する。アプリケーションプログラムで決まる処理時間がコントローラの演算周期を越える時、保守ツールがコントローラの能力オーバであると判定し、保守ツールの機能のみでユーザに対してアプリケーションプログラムの投入を禁止している。
【０００４】
【発明が解決しようとする課題】
上記従来のコントローラにおいて、アプリケーションプログラムで決まるコントローラの処理時間がコントローラの演算周期を越える場合、ユーザが所望する演算内容が全て行えず、コントローラとしての機能を果たすことができない。近年では、仮に演算期間中にアプリケーションプログラムが実行しきれない時は、その旨をユーザに通知した上でコントローラを停止（ＣＰＵダウン）させている。コントローラの機能が複雑な場合には、保守ツールの機能のみでコントローラの処理能力を管理することが困難となる場合が起こり得る。
【０００５】
この発明は上記問題点に着目してなされたものであって、保守ツールのみでコントローラの処理能力を管理することが困難であっても、コントローラを処理能力オーバによる機能不全に陥らせないようにすることを目的としている。
【０００６】
【課題を解決するための手段】
この発明に係るコントローラの処理能力管理方法は、容量・性能を複数領域に分割して処理を行い、専用の保守ツールにより、前記領域毎に管理され、作成されたアプリケーションプログラムが登録され、このアプリケーションプログラムの内容を領域毎に一定の周期でデータをサンプリングして実行するコントローラの処理能力管理方法であって、
前準備として、保守ツール側では、コントローラ全体の管理に係る処理能力情報を計算し、当該処理能力情報をコントローラ側に転送し、コントローラ側では、転送されてきた処理能力情報を自身の情報格納部の領域（ＣＭ）に格納するとともに、その領域（ＣＭ）の処理能力情報、及び分割単位のアプリケーションプログラムの対応領域（１Ｍ，……，ｎＭ）の処理能力情報を基に全体の処理能力情報を求め、この全体の処理能力情報を領域（ＡＭ）に格納し、
次に、保守ツールからコントローラにアプリケーションプログラムを投入する場合、保守ツール側では、そのアプリケーションプログラムの管理に係る処理能力情報を計算し、この処理能力情報をコントローラに転送し、コントローラ側では、領域（ＡＭ）の全体の処理能力情報と、領域（ＣＭ）の内部処理能力情報、前記保守ツールから転送されてきたアプリケーションプログラムの処理能力情報、及びそのアプリケーションプログラム以外の全てのアプリケーションプログラムの対応領域の処理能力情報から求めた新たな全体の処理能力情報とを比較し、処理能力が有るか否かを判定し、処理能力有りの場合は領域（ＡＭ）の全体の処理能力情報を前記新たに求めた全体の処理能力情報に更新し、投入するアプリケーションプログラムの転送許可を保守ツールに転送し、処理能力無しの場合は投入するアプリケーションプログラムの転送不可を保守ツールに転送するようにしている。
【０００７】
【発明の実施の形態】
以下、実施の形態により、この発明をさらに詳細に説明する。図３は、この発明の一実施形態であるコントローラの構成を示す図である。
この実施形態コントローラは、演算処理単位、アプリケーションプログラム、格納領域、入出力領域を分割し、１台のコントローラで複数台のコントローラの機能を見かけ上、持たせている。マンマシンインタフェース上、保守ツールによるアプリケーションプログラムの管理は、見かけ上の分割されたコントローラ分毎に行えることが望ましいので、そのようにしている。また、保守ツールからアプリケーションプログラムをコントローラに投入する際には、分割されたコントローラ単位で行う。分割されたコントローラ単位の演算時間は、分割されたアプリケーションプログラム格納領域に投入されるアプリケーションプログラムの分量で決まり、コントローラの処理能力の判定は、分割されたコントローラ毎に設定された演算周期と、アプリケーションプログラムの分量（演算時間）との比較で単純に行えるように見える。
【０００８】
しかし実際には、コントローラは１台であり、各分割単位に割り当てられるＣＰＵの処理能力は限られたものとなる。そのために分割されたコントローラ単位に設定された演算周期を大幅に下回るアプリケーションプログラムを投入しようとした場合でも、他の分割単位でコントローラ全体の処理能力の大半を占めるようなアプリケーションプログラムを実行させている場合には、コントローラ機能不全に陥いる場合がある。図４の左側部分に示すように、アプリケーションプログラムＡ1 、Ａ2 、……、Ａn が時間的に占める部分で、コントローラ全体の処理能力を判定できる。時間的に空がない時、コントローラの処理能力がオーバとなる。ここでは、Ｔ1 はアプリケーションプログラムＡ1 による演算周期を、Ｔ2 はアプリケーションプログラムＡ2 による演算周期を、Ｔn はアプリケーションプログラムＡn による演算周期を、それぞれ示している。図４の左側ではアプリケーションＡ1 、Ａ2 、……、Ａn の順で処理が進み、Ａn の処理中、アプリケーションＡ1 の次の演算周期が到来し、アプリケーションＡ1 を処理し、次に残っているアプリケーションＡn を処理している。優先順位が最も遅く、かつ演算周期の長いアプリケーションＡn の演算周期Ｔn をコントローラの処理能力容量とすれば、図４のＴn に相当する処理では、コントローラの処理能力に余裕がある。
【０００９】
この実施形態では、保守ツールＴでコントローラ全体の管理を行う場合ＣT と、分割単位毎のアプリケーション管理を行う場合１T 、２T 、……、ｎT が別々に設けられているが、分割単位毎の管理を行う部分１T 、２T 、……、ｎT からコントローラ全体の管理を行う部分への干渉をシステムの安全管理上、禁止している。すなわち、分割単位毎の演算時間に基づき、コントローラ全体の処理能力の判定を行い、処理能力を越えたアプリケーションプログラムの転送を禁止する処理を行うことが、保守ツール上のみでは困難な構成となっている（図５参照）。
【００１０】
そこで、コントローラＣ側にコントローラＣ全体の処理能力情報、つまりコントローラＣの内部処理能力情報（分割単位の処理以外に必要とされる部分と、分割単位の処理能力情報）を持たせ、保守ツールからの分割単位のアプリケーションプログラム転送時に、比較、更新を行う機能を持たせている（図６参照）。
次に、この実施形態における処理能力の管理に関する処理手順を図７、図８を参照して説明する。先ず前準備として、保守ツールＴ側でＣT の部分（コントローラ全体の管理）の処理能力情報を計算し、コントローラＣ側に転送する（ステップＳＴ１）。コントローラＣでは、保守ツールＴより転送があると、ＣT の情報を領域ＣM に格納するとともに（ステップＳＴ１１）、ＣM 、１M 、……、ｎM のデータを基に全体の処理能力情報を求め、領域ＡM に格納する（ステップＳＴ１２）。そして、前準備ＯＫのステータスをセットし（ステップＳＴ１３）、前準備の実施結果をステータスとして、保守ツールＴ側に返送する（ステップＳＴ１４）。保守ツールＴ側では、前準備ＯＫのステータスが送られてくると、前準備ＯＫか？の判断ＹＥＳで（ステップＳＴ２）、前準備終了となる。
【００１１】
次に、保守ツールＴからアプリケーションプログラムをコントローラＣに投入する場合、例えばアプリケーションプログラム１（Ａ１）の場合、１Ｔの部分の処理能力を計算し、投入の直前にコントローラＣに転送する（ステップＳＴ３）。コントローラＣでは、ＡＭ部分の情報とＣＭ、２Ｍ、……、ｎＭ、１Ｔから求めた新たな処理能力情報とを比較し（ステップＳＴ１５）、処理能力有か否かを判定し（ステップＳＴ１６）、処理能力有の場合は処理能力情報を更新し（ステップＳＴ１７）、プログラム転送許可のステータスをセットする（ステップＳＴ１８）。ステップＳＴ１６で処理能力無し（新たなプログラムでは処理能力オーバの場合）の場合は、プログラム転送不可のステータスをセットする。転送許可、転送不可の判定結果をステータスとして保守ツール側に転送する（ステップＳＴ２０）。
【００１２】
保守ツールＴでは投入の許可で、そのアプリケーションプログラムがコントローラに転送され、登録される（ステップＳＴ４、ＳＴ５）。コントローラＣで処理能力オーバと判断すると、保守ツールＴからコントローラＣへのアプリケーションプログラムの転送が禁止される（ステップＳＴ４、ＳＴ６）
【００１３】
【発明の効果】
この発明によれば、保守ツール上での判定が困難な複雑な機能を持つコントローラに対するアプリケーションプログラム処理能力の管理が行える。コントローラ側で投入されたアプリケーションの処理時間の計算を、また保守ツール側でコントローラ全体の管理をそれぞれ行えば良いとも考えられるが、コントローラの処理の単純化（コントローラ本来の機能は、あくまでも一定周期内に与えられた制御演算を行うこと）、保守ツール側の安全性確保（分割単位のアプリケーションプログラム作成中に、コントローラ全体の管理に係わる部分を容易に変更させてはならない）の両方の重要な事柄を満たした上で、簡易的ながら確実にコントローラを保護できる。等の効果がある。
【図面の簡単な説明】
【図１】従来のコントローラの処理を説明する図である。
【図２】従来のコントローラの演算周期を説明する図である。
【図３】この発明の一実施形態であるコントローラの構成を示す図である。
【図４】同実施形態コントローラの演算周期を説明する図である。
【図５】この発明の実施形態コントローラの構成を示す図である。
【図６】同実施形態コントローラの処理能力や情報格納部の内部構成を示す図である。
【図７】同実施形態コントローラの処理能力管理の処理手順を示すフロー図である。
【図８】図７とともに、同実施形態コントローラの処理能力管理の処理手順を示すフロー図である。
【符号の説明】
Ｃ                コントローラ
Ｔ                保守ツール
Ｍ                処理能力情報格納部
Ａ1 、……、Ａn   アプリケーションプログラム
【図１】
0004160210.tif 000002
【図２】
0004160210.tif 000003
【図３】
0004160210.tif 000004
【図４】
0004160210.tif 000005
【図５】
0004160210.tif 000006
【図６】
0004160210.tif 000007
【図７】
0004160210.tif 000008
【図８】
0004160210.tif 000009