(57)【特許請求の範囲】
【請求項１】
制御対象機器から制御対象データを受け取り、または前記制御対象データに対する制御結果データを前記制御対象機器に出力する通信部と、
前記通信部が受け取った制御対象データに対するラダー制御処理の実行周期と、前記ラダー制御処理の整数倍として定められたループ制御周期とに基づいて、前記ラダー制御処理で使用するレジスタの数を定める前処理部と、
前記レジスタの数に応じて設けられ、前記制御対象データに対する制御処理を実行する制御処理部と、
前記実行周期内の互いに異なるタイミングで、それぞれの制御処理部を前記ループ制御周期で実行させ、その実行結果を前記制御結果データとして出力する演算部と、
を備えることを特徴とする制御コントローラ。
【請求項２】
前記演算部は、前記前処理部と前記制御処理部とを、前記制御結果データが目標値となるまで、順に繰り返し実行させる、
ことを特徴とする請求項１に記載の制御コントローラ。
【請求項３】
前記制御処理部は、前記制御処理をサブルーチンによって実行し、
前記演算部は、前記サブルーチンを互いに異なるタイミングで、前記ループ制御周期で実行させる、
ことを特徴とする請求項１または２に記載の制御コントローラ。
【請求項４】
前記演算部は、前記制御処理部が実行する制御処理の回数を、前記レジスタの数に応じて前記実行周期毎にカウントし、そのカウント値が前記ループ制御周期に達した場合に前記制御処理を実行させる、
ことを特徴とする請求項１〜３のいずれか１項に記載の制御コントローラ。
【請求項５】
前記演算部は、前記制御処理部が前回制御処理を実行した時刻と今回制御処理を実行した時刻との差を求め、求めた差が前記実行周期と同じとなった場合に前記制御処理を実行させる、
ことを特徴とする請求項１〜３のいずれか１項に記載の制御コントローラ。
【請求項６】
制御対象機器から制御対象データを受け取る受信ステップと、
受け取った制御対象データに対するラダー制御処理の実行周期と、前記ラダー制御処理の整数倍として定められたループ制御周期とに基づいて、前記ラダー制御処理で使用するレジスタの数を定める前処理ステップと、
前記レジスタの数に応じて設けられ、前記制御対象データに対する制御処理を実行する制御処理ステップと、を含み、
前記制御処理ステップは、前記実行周期内の互いに異なるタイミングで、それぞれの制御処理ステップを前記ループ制御周期で実行し、その実行結果を前記制御結果データとして出力し、前記制御対象データに対する制御結果データを前記制御対象機器に出力する、
ことを特徴とするデータ制御方法。
【請求項７】
前記前処理ステップと前記制御処理ステップとを、前記制御結果データが目標値となるまで、順に繰り返し実行する、
ことを特徴とする請求項６に記載のデータ制御方法。
【請求項８】
前記制御処理ステップでは、前記制御処理をサブルーチンによって実行し、前記サブルーチンを互いに異なるタイミングで、前記ループ制御周期で実行する、
ことを特徴とする請求項６または７に記載のデータ制御方法。
【請求項９】
前記制御処理ステップが実行する制御処理の回数を、前記レジスタの数に応じて前記実行周期毎にカウントし、そのカウント値が前記ループ制御周期に達した場合に前記制御処理を実行する、
ことを特徴とする請求項６〜８のいずれか１項に記載のデータ制御方法。
【請求項１０】
前記制御処理ステップが前回制御処理を実行した時刻と今回制御処理を実行した時刻との差を求め、求めた差が前記実行周期と同じとなった場合に前記制御処理を実行する、
ことを特徴とする請求項６〜８のいずれか１項に記載のデータ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、上下水道プラント等の監視制御を行うプラント監視制御システムに備わる制御コントローラおよびデータ制御方法に関するものである。
【背景技術】
【０００２】
近年、プラント監視制御システムとして用いられる計算機は、メモリの大容量化が進み、加えてプロセッサの演算性能も向上してきたことから、大容量の演算プログラムを用いた高速演算が実現可能である。
【０００３】
中でも、ＰＬＣ（プログラマブルロジックコントローラ）をはじめとした制御コントローラは、1台で多数の制御機器の監視や操作を実現でき、プラントの維持保守の面から見ても、低コストかつ高効率化が進んできている。
【０００４】
本技術分野の背景技術としては、特開２０１２−１９４６７０号公報（特許文献１）がある。この公報には、制御コントローラに組込んだ制御プログラムにより実行される制御処理に対して、高速周期（第１実行サイクル）で実行しなければならない制御処理と高速周期の整数倍の周期での実行が可能な低速周期（第２実行サイクル）の制御処理の２パターンに分けて処理フローを定義する事で、一定の制御周期間隔で全ての制御処理を実現する手段を提案している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１２−１９４６７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１の手段では、第２実行サイクルで定義した制御処理が第１実行サイクルで定義した制御処理の終了後に実行する点に着目すると、第２実行サイクルで定義した制御処理を第１実行サイクルにて徐々に実行していった時、制御周期を超過する可能性があることや、第1実行サイクルで実行する制御処理に対して異常処理などの一時的な演算処理の増加によりＣＰＵ演算負荷が増加した場合、第２実行サイクルで実行する制御処理の開始が遅れてしまう等、第２実行サイクルで実行する制御処理の実行タイミングが変動し、時間に依存する制御演算においては演算結果に影響を与える可能性が考えられる。
【０００７】
本発明は、上記に鑑みてなされたものであって、実行タイミングの変動を起こす事無く一定の制御周期内で全ての制御処理を実現することが可能な制御コントローラおよびデータ制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するために、本発明にかかる制御コントローラは、制御対象機器から制御対象データを受け取り、または前記制御対象データに対する制御結果データを前記制御対象機器に出力する通信部と、前記通信部が受け取った制御対象データに対するラダー制御処理の実行周期と、前記ラダー制御処理の整数倍として定められたループ制御周期とに基づいて、前記ラダー制御処理で使用するレジスタの数を定める前処理部と、前記レジスタの数に応じて設けられ、前記制御対象データに対する制御処理を実行する制御処理部と、前記実行周期内の互いに異なるタイミングで、それぞれの制御処理部を前記ループ制御周期で実行させ、その実行結果を前記制御結果データとして出力する演算部と、を備えることを特徴とする制御コントローラとして構成される。
【０００９】
また、本発明は、上記制御コントローラで行われるデータ制御方法として把握される。
【発明の効果】
【００１０】
本発明によれば、実行タイミングの変動を起こす事無く一定の制御周期内で全ての制御処理を実現することが可能となる。
【図面の簡単な説明】
【００１１】
【図１】本実施例の制御コントローラを用いた制御システムの構成例を示す図である。
【図２】本実施例の制御コントローラ構成を示す図である。
【図３】タスク実行構成を示す図である。
【図４】ループ制御実行レジスタ生成に係る補助サブルーチンの処理フローを示す図である。
【図５】ループ制御実行レジスタに対して積算値を用いたＯＮタイミング生成の処理フローを示す図である。
【図６】ループ制御実行レジスタに対して時刻差分を用いたＯＮタイミング生成の処理フローを示す図である。
【図７】ループ制御実行レジスタのＯＮタイミングの一例を示す図である。
【図８】ループ制御実行レジスタ及びループ制御サブルーチンをラダープログラムにて記述した一例を示す図である。
【発明を実施するための形態】
【００１２】
以下に添付図面を参照して、本発明にかかる制御コントローラおよびデータ制御方法の実施の形態を、図１から８を参照して詳細に説明する。
【００１３】
図１は、本実施例の制御コントローラを用いた制御システムの構成例を示す図である。図１に示すように、本実施の形態における制御システム１０００は、外部機器９や制御コントローラ１の状態を監視する複数の監視端末１００と、外部機器９を制御する複数の制御コントローラ１と、制御コントローラ１によって制御される外部機器９とを有して構成されている。制御システム１０００は、例えば、上下水道プラントのようなプラントシステムであり、外部機器９である流量計からの測定値を制御コントローラ１であるＰＬＣが受け取って、その測定値（例えば、流量１００ｋｍ３/ｈ）をメモリ２に記憶し、演算装置７による演算結果（例えば、流量８５ｋｍ３/ｈとする制御コマンド）を出力データ５として出力する。以下では、１つの制御コントローラについて説明しているが、他の制御コントローラについても同様である。
【００１４】
図２は、制御コントローラ１における内部構成を示したブロック図である。図２に示すように、制御コントローラ１は、他の制御コントローラ１を含む外部機器９から通信回路８を経由して、外部機器９が測定や検知したデータを取得し、入力データ３としてメモリ２に格納する。また、入力データ３を用いて演算装置７にて演算を行うためのプログラムであるタスクプログラム４をメモリ２に有し、演算結果を出力データ５に格納し、入力データ３と同様に通信回路８を経由して外部機器９にデータを出力する。加えて、複数のタスクプログラム４がメモリ２に格納されていた場合、演算装置７におけるタスクの実行順序を予めタスク管理データ６にて定義しておくことで、タスクプログラム４の実行順序を任意に決定する事が可能である。尚、タスクプログラム４ａ〜４ｎは任意に設定した周期（実行周期）にて毎周期実行される。例えば、外部機器９である流量計が計測した流量に対して、外部機器９に接続されるバルブを制御する指示を送る場合、ユーザが任意に指定した実行周期（例えば、２００ｍｓごとに流量計による計測およびバルブの制御を実行する周期）でタスクプログラム４ａ〜４ｎを実行しなければならないため、演算装置７は、この条件を満たすように、タスクプログラム４を実行する。
【００１５】
図３は、図２に記載したタスクプログラム４とタスク管理データ６の構成を示した図である。ｎ個のタスクプログラム４ａ〜４ｎがメモリ２に格納されている場合、まず演算装置７はタスク管理データ６を参照し、格納されたタスクプログラムの個数と同数の定義をしたタスク管理データ６ａ〜６ｎを取得する。このタスク管理データ６ａ〜６ｎには、タスクプログラム４ａ〜４ｎが個々に有する登録Ｎｏ．１０ａ〜１０ｎが格納される。
【００１６】
演算装置７は、タスク管理データ６ａ〜６ｎに格納された登録Ｎｏ．１０ａ〜１０ｎから実行対象のタスクプログラム４ａ〜４ｎを検索し、実行する。また、演算装置７は、タスク管理データ（１番目）６ａからタスクを順番に実行していく。タスクプログラム４ａ〜４ｎには、実際に制御コントローラ１がプラントを制御するために必要な挙動を記述しており、例えば、外部機器９との通信プロトコルに準拠して送受信を行うための通信プログラムや、ループ制御やシーケンス制御を実行するための、ラダープログラムで記述した制御プログラムを実装する。加えて、前述の制御プログラムを基準とし、制御プログラムより実行順序が早いタスクを前処理プログラムとする。
【００１７】
図３に示したタスクプログラム４ａ〜４ｎでは、制御プログラムを第３タスクプログラム４ｃに実装した例を示す。この場合、前処理プログラムは第１タスクプログラム４ａ及び第２タスクプログラム４ｂとなる。前処理プログラムである第１タスクプログラム４ａ及び第２タスクプログラム４ｂにおけるプログラム実行結果を使用して、制御プログラムである第３タスクプログラム４ｃを記述することが可能である。
【００１８】
本実施例では、前処理プログラムにおいて、ラダープログラムからなる第３タスクプログラム４ｃ内でループ制御のサブルーチンを起動するための接点として使用するレジスタをリザーブし、ラダープログラムの実行周期の整数倍にて実行するループ制御周期をもとに、ＯＮ／ＯＦＦタイミングを実行周期で分散させて起動する補助サブルーチンを記述することで、ループ制御による演算装置７の演算負荷増加による実行周期及び制御周期超過を防ぐ。
【００１９】
具体的には後述するが、例えば、外部機器９である流量計に接続されたバルブを、流量１００ｋｍ３/ｈから流量８５ｋｍ３/ｈとなるように開閉制御する場合、演算装置７は、上述した各タスクプログラムを所定の周期で１ｋｍ３/ｈずつ流量を減らす処理を１５回に分けて繰り返し実行することにより、目標値である流量８５ｋｍ３/ｈとなるように制御する。このように、所定の周期で繰り返し外部機器９に対する制御を行うので、従来技術のように、例えば、先のサイクルでの処理負荷の増加に伴う後のサイクルの処理の遅れが発生する等、制御処理の実行タイミングが変動することによって、時間に依存する制御演算の演算結果に影響を与えてしまうことがなくなる。
【００２０】
図４は、図３に記載した前処理プログラムにて記述する補助サブルーチンであるループ制御を実行するための接点（ループ制御実行レジスタ）の生成方法の処理フローを示した図である。
【００２１】
図４に示すように、ステップ１００では、演算装置７は、ループ制御実行レジスタのリザーブが既に完了したか否かの判定を行う。判定にはレジスタ作成完了情報ビットを使用し、０ならばリザーブ未完了、１ならばリザーブ完了として次のステップに移行する。リザーブ未完了の場合はステップ１０１へ移行し、リザーブ完了の場合はステップ１０７に移行する。
【００２２】
続いて、演算装置７は、ステップ１０１において、入力データ１内に定義された実行周期（ａ）とループ制御周期（ｂ）を取得し、ステップ１０２へ移行する。なお、それぞれのタスクプログラムの実行周期（ａ）（例えば、２００ｍｓ）およびそれぞれのタスクプログラムの実行をループ制御するタイミングを示すループ制御周期（ｂ）（例えば、１．０ｓ）は、ユーザによってあらかじめ指定されている。
【００２３】
演算装置７は、ステップ１０２では、制御プログラムが実際に周期動作する際にはａ＞０となることを考慮し、ステップ１０３における演算でゼロ割が発生しないよう、ａ≠０か否かの判別を行い、ａ≠０の場合、ステップ１０３に移行する。一方、ａ＝０の場合、ステップ１０１に移行し、再度実行周期（ａ）及び制御周期（ｂ）の取得から開始する。
【００２４】
ステップ１０３では、演算装置７は、実行周期（ａ）と制御周期（ｂ）を用いて、ｎ＝ｂ／ａを算出し、ステップ１０４に移行する。ステップ１０４では、制御周期（ｂ）が実行周期（ａ）の整数倍、すなわちｎが自然数であるか否かの判別を行う。ｎが自然数であった場合、ループ制御のサブルーチンを制御プログラムに記述しても設定した制御周期（ｂ）を実現できるので、ステップ１０５に移行する。
【００２５】
一方、ｎが自然数ではない場合、演算装置７は、ループ制御のサブルーチンを制御プログラムに記述しても、設定した制御周期（ｂ）では実行できないため、ステップ１０１に移行し、再度実行周期（ａ）及び制御周期（ｂ）の取得から開始する。
【００２６】
ステップ１０５では、演算装置７は、ステップ１０３で算出したｎの個数に相当するレジスタを、本補助サブルーチンでのみ書込みできるよう、排他処理を行いリザーブする。リザーブするレジスタは、ユーザが任意に選択できる場合は、ステップ１０１にて実行周期（ａ）や制御周期（ｂ）と同様に、任意のアドレス情報を予め取得することも可能とする。本実施例では、排他処理は、他のタスクプログラム４ａ〜４ｎからのメモリプロテクトのみ行うが、これに付随する様々な処理を行ってもよい。
【００２７】
ステップ１０６では、演算装置７は、ステップ１０５にてｎ個のビットレジスタをループ制御実行レジスタとしてリザーブし、他のタスクプログラム４ａ〜４ｎからのメモリプロテクトが完了したら、レジスタ作成完了情報に１のビットを付加してレジスタ作成完了とする。そして、レジスタ作成完了情報に対して１のビットを付加した後、ステップ１０７に移行する。ステップ１０７の詳細は、図５及び図６を用いて説明する。
【００２８】
図５は、図４でリザーブしたｎ個のループ制御実行レジスタに対して、ビットＯＮ／ＯＦＦのタイミングを生成する手段として、積算値（カウント値）を用いた処理フローを示す。
【００２９】
ステップ１５０では、演算装置７は、ＯＮ／ＯＦＦタイミングの算出に用いる積算値の初期化を行い、ステップ１５１に移行する。ステップ１５１では、個々のループ制御実行レジスタに対して０〜ｎ−１の値を定義して格納し、ステップ１５２に移行する。例えば、ビットレジスタＸ００００〜Ｘ０００Ｆの１６個のレジスタをループ制御実行レジスタとした場合、Ｘ００００の積算値には１６、Ｘ０００１の積算値には１５、Ｘ０００Ｆの積算値には０が格納され、それぞれのレジスタが固有の値を有する。
【００３０】
ステップ１５２では、演算装置７は、実行周期毎に制御プログラムが実行されたタイミングでステップ１５１にて記述したそれぞれの積算値に＋１の加算を行い、ステップ１５３に移行する。ステップ１５３では、ステップ１５２にて加算を行っている積算値がｎに達したか否かの判別を行い、積算値がｎに達した場合は、ステップ１５４に移行する。一方、積算値がｎに達していない場合は、ステップ１５２に移行し、再度積算値に加算を行う。
【００３１】
ステップ１５４では、演算装置７は、積算値がｎに達したループ制御実行レジスタに対して、１実行周期のみビットをＯＮする。これにより、個々のループ制御実行レジスタが制御周期（ｂ）の間隔でＯＮする。ビットをＯＮした後は、ステップ１５５に移行する。ステップ１５５では、演算装置７は、積算値を初期化する。初期化後はステップ１５２に移行し、再度積算値に加算を行うことで、実行周期毎にステップ１５２〜１５５を繰り返す。
【００３２】
図６では、図４でリザーブしたｎ個のループ制御実行レジスタに対して、ビットＯＮ／ＯＦＦのタイミングを生成する手段として、時刻差分を用いた処理フローを示す。
【００３３】
ステップ２００では、演算装置７は、前回取得時刻（ｔ）に対して今回取得時刻（Ｔ）を用いて初期化し、更に個々のループ制御実行レジスタに対して０〜ｎ−１倍の実行周期（ａ）を用いて初期化した値から差分をとり、ステップ２０１に移行する。例えば、ビットレジスタＸ１０００〜Ｘ１００４の５個のレジスタをループ制御実行レジスタとした場合、Ｘ１０００には今回取得時刻（Ｔ）、Ｘ１００１には今回取得時刻（Ｔ）から実行周期（ａ）を差分した結果（例えば、２００ｍｓ）、Ｘ１００２には今回取得時刻（Ｔ）から実行周期（ａ）を２倍した値を差分した結果（例えば、４００ｍｓ）、Ｘ１００４には今回取得時刻（Ｔ）から実行周期（ａ）を５倍した値を差分した結果（例えば、１０００ｍｓ）が格納され、それぞれのレジスタが固有の値を有する。
【００３４】
ステップ２０１では、演算装置７は、それぞれのレジスタが有する今回取得時刻（Ｔ）と前回取得時刻（ｔ）を用いて、今回取得時刻（Ｔ）から前回取得時刻（ｔ）の差分をとり、ステップ２０２に移行する。ステップ２０２では、演算装置７は、ステップ２０１の差分結果がループ制御周期（ｂ）と一致しているか否かの判別を行い、差分結果がループ制御周期（ｂ）と一致する場合、ステップ２０３に移行する。一方、演算装置７は、差分結果がループ制御周期（ｂ）と一致していない場合、ステップ２０１に移行し、再度今回取得時刻（Ｔ）と前回取得時刻（ｔ）から差分をとる。
【００３５】
ステップ２０３では、ステップ２０２にて差分結果が制御周期（ｂ）と一致したレジスタに対して、１実行周期のみビットをＯＮする。これにより、個々のループ制御実行レジスタが制御周期（ｂ）の間隔でＯＮする。演算装置７は、ビットをＯＮした後、ステップ２０４に移行する。ステップ２０４では、前回取得時刻（ｔ）を今回取得時刻（Ｔ）で初期化する。初期化後はステップ２０１に移行し、再度差分をとることで、実行周期毎にステップ２０１〜２０４を繰り返す。
【００３６】
図７は、ループ制御実行レジスタのＯＮタイミングの一例を示す。実行周期を０．２秒、ループ制御周期を１．０秒とした場合、ループ制御周期である１秒は実行周期のタイミングに着目すると、５パターンのタイミングで実行可能である。例えば、外部機器９である流量計に接続されたバルブを、流量１００ｋｍ３/ｈから流量８５ｋｍ３/ｈとなるように開閉制御する場合、各タスクプログラムが、実行周期で１ｋｍ３/ｈずつ流量を減らす処理を、レジスタ１〜５によって、１５回に分けて実行周期で順に繰り返し実行することにより、目標値である流量８５ｋｍ３/ｈとなるように制御する。
【００３７】
演算装置７は、制御プログラムにて、図４〜６に示す処理フローから生成したループ制御実行レジスタとループ制御のサブルーチンを結合して実行することで、実行周期毎周期全てのループ制御を実行することなく、必要最低限のループ制御のみ（例えば、図７に示すＴ１のタイミングではレジスタ１のループ制御のみ）実行可能となり、故に制御プログラムに係る処理時間の短縮化が実現可能となるとともに、必要最低限のループ制御のみを行うので、処理負荷を軽減することができるとともに処理遅延を抑えることも可能となる。加えて、実行周期毎周期ループ制御を実行する場合に定義できるループ制御数に比べ、タイミングをずらして起動可能な本実施例の方が、ループ制御の定義数を増やして実行することも可能となる。
【００３８】
図８は、図７にて説明した様に、ループ制御実行レジスタとループ制御サブルーチンを結合させた制御プログラムを、ラダープログラムにて記述した一例を示す。
【００３９】
ラダーステップ３００は、Ａ接点とＢ接点のＯＲ接続に対してコイルを結合する一般的なシーケンスステップである。ラダーステップ３０１〜３０５は、ループ制御実行レジスタとループ制御サブルーチンを結合させたステップであり、ループ制御実行レジスタがＯＮしたタイミングのみ、結合するループ制御サブルーチンが実行される。図８に示すように、例えば、レジスタ１がＯＮしたタイミングの実行周期では、他のレジスタ２〜５はＯＮせず、実行されるループ制御はサブルーチン１のみとなる。次の実行周期のタイミングでは、レジスタ２のみＯＮとなり、実行されるループ制御はサブルーチン２のみとなり、このように実行周期に対して実行タイミングをずらしながらループ制御を記述することが可能となる。
【００４０】
上述した例では、ループ制御実行レジスタとループ制御サブルーチンとが１対１である（例えば、レジスタ１がＯＮした場合には、ループ制御サブルーチン１のみが実行される）前提で説明したが、１つのループ制御サブルーチンが行う制御処理の負荷が低い場合には、例えば、レジスタ１がＯＮした場合に、ループ制御サブルーチン１およびループ制御サブルーチン２を実行させる等、その処理負荷に応じて実行させるループ制御サブルーチンの数を定める（すなわち、レジスタの数とループ制御サブルーチンの数とを１対ｎとする）ことも可能である。
【００４１】
このように、本システムでは、シーケンス制御を記述するとともに、ループ制御を組込みサブルーチンとして記述可能なラダープログラムから制御処理を実行する制御コントローラに対して、ユーザが指定した周期的なタイミングによってループ制御処理を実行する手段を設ける事で、実行タイミングの変動を起こす事無く一定の制御周期内で全ての制御処理を実現することができる。例えば、制御コントローラにおけるラダープログラム内に記述したループ制御のサブルーチンは、コイルと同様に出力側に定義する事で、接続した接点がＯＮしたタイミングで実行し、このラダープログラムの実行周期（シーケンスサイクル）の整数倍の周期（制御周期）で実行可能なループ制御のサブルーチンに対して、ＯＮのタイミングを自サブルーチンの実行周期に合わせた接点を接続することで、自サブルーチンの制御周期を変動させずに実行タイミングのみシーケンスサイクルにより分散させることができる。その結果、シーケンスサイクルの超過を防ぎ、全てのループ制御の実行周期を超過せず実行することができる。すなわち、ラダープログラムにてシーケンスサイクルの整数倍周期で実行するループ制御を記述し、且つ多数のループ制御のサブルーチンを一定の制御周期で実行する際、シーケンスサイクルで実行タイミングを分散する事で、シーケンスサイクルの超過を防止する事が可能となる。また、全てのループ制御を同一タイミングで実行する場合よりも多くのループ制御を記述し、実行する事ができる。
【００４２】
なお、上述した例では、上下水道プラントが有するバルブの開閉によって流量を制御する場合について説明したが、流量に限らず圧力や温度等、その他の制御対象となる機器等についても適用することができる。また、上下水道に限らず、例えば、発電所における冷却水の水温制御や、タービン発電のための電圧制御等、ラダープログラムを用いた様々な技術に適用することができる。
【符号の説明】
【００４３】
１０００・・・制御システム
１００・・・監視端末
１・・・制御コントローラ
２・・・メモリ
３・・・入力データ
４ａ〜４ｎ・・・タスクプログラム
５・・・出力データ
６ａ〜６ｎ・・・タスク管理データ
７・・・演算装置
８・・・通信回路
９・・・外部機器
１０ａ〜１０ｎ・・・登録Ｎｏ．
２５０・・・ループ制御実行レジスタ動作
３００・・・ラダーステップ
３０１・・・ラダーステップ
３０２・・・ラダーステップ
３０３・・・ラダーステップ
３０４・・・ラダーステップ。
【図１】
0005957423.tif 000002
【図２】
0005957423.tif 000003
【図３】
0005957423.tif 000004
【図４】
0005957423.tif 000005
【図５】
0005957423.tif 000006
【図６】
0005957423.tif 000007
【図７】
0005957423.tif 000008
【図８】
0005957423.tif 000009