(57)【要約】【課題】  本発明は、入力処理、制御演算処理、出力処理から構成される一連のループ制御をラダープログラムで記述し、実行する制御コントローラ１０を提供する。【解決手段】  制御コントローラ１０は、シーケンスプロセッサ１、演算プロセッサ２、及びメモリ３を備え、メモリ３には、ラダープログラム４と、ループ制御プログラム６を備え、ラダープログラム４は、命令とオペランドの組合せにより構成され、シーケンスプロセッサ１はラダープログラム４を順次読出して、ラダープログラム４の命令がシーケンス命令の場合は、シーケンスプロセッサ１によってシーケンス命令を実行し、ラダープログラム４の命令がループ命令の場合は、演算プロセッサ２にループ命令情報を出力すると共に実行権を移行し、演算プロセッサ２がループ制御プログラムを実行し、ループ命令は、少なくとも入力処理、制御演算処理および出力処理を定義できるループ命令用オペランドを具備する。【選択図】  図１
2016105330.tif 000002
【特許請求の範囲】
【請求項１】
シーケンスプロセッサと、演算プロセッサと、メモリとを備え、
前記メモリには、ラダープログラムと、ループ制御プログラムを備え、
前記ラダープログラムは、命令とオペランドの組合せにより構成され、
前記シーケンスプロセッサは、前記ラダープログラムの命令がシーケンス命令の場合は、前記シーケンスプロセッサによって前記シーケンス命令を実行し、前記ラダープログラムの命令がループ命令の場合は、前記演算プロセッサにループ命令情報を出力すると共に実行権を移行し、前記演算プロセッサに前記ループ制御プログラムを実行させる処理を備えた、制御コントローラであって、
前記ループ命令は、少なくとも入力処理、制御演算処理、および出力処理を定義するループ命令用オペランドを具備し、
前記ループ命令情報は、少なくとも前記ラダープログラム内のループ命令のアドレスを含み、
少なくとも前記入力処理及び出力処理を定義するオペランドは、１ワードで構成され、上位バイト及び下位バイトのうち、いずれか一方が量子化仕様を定義することを特徴とする制御コントローラ。
【請求項２】
請求項１記載の制御コントローラにおいて、
前記ループ制御プログラムは、前記ループ命令用オペランドを取得する処理を備え、前記ループ命令用オペランドをパラメータとして前記入力処理、前記制御演算処理および前記出力処理を実行することを特徴とする制御コントローラ。
【請求項３】
請求項１記載の制御コントローラにおいて、
前記メモリには、さらにレジスタを備え、前記ループ命令用オペランドは、ループ番号を定義するオペランドを具備し、前記ループ制御プログラムは、前記ループ命令用オペランドの格納アドレスを取得する処理と、前記ループ命令用オペランドから前記ループ番号を取得する処理を備え、前記ループ番号で指定された前記レジスタを前記演算プロセッサが演算用レジスタとして使用することを特徴とする制御コントローラ。
【請求項４】
請求項３記載の制御コントローラにおいて、
前記レジスタは、前記指定される各ループ番号に対応して複数のエリアを有し、前記各エリアは、少なくとも前記入力処理の対象となる計測データを格納する領域及び前記制御演算処理結果である操作データを格納する領域を備えることを特徴とする制御コントローラ。
【請求項５】
請求項４記載の制御コントローラにおいて、
前記入力処理を定義するオペランドは、前記上位バイトが量子化仕様を定義し、前記下位バイトが前記入力処理の対象となる計測データに対するデータ変換機能を定義することを特徴とする制御コントローラ。
【請求項６】
請求項４記載の制御コントローラにおいて、
前記出力処理を定義するオペランドは、前記上位バイトが前記制御演算処理からのデータに対するデータ変換機能を定義し、前記下位バイトが前記量子化仕様を定義することを特徴とする制御コントローラ。
【請求項７】
シーケンスプロセッサと、演算プロセッサと、メモリとを備え、
前記メモリには、ラダープログラムと、ループ制御プログラムを備え、
前記ラダープログラムは、命令とオペランドの組合せにより構成され、
前記シーケンスプロセッサは、前記ラダープログラムの命令がシーケンス命令の場合は、前記シーケンスプロセッサによって前記シーケンス命令を実行し、前記ラダープログラムの命令がループ命令の場合は、前記演算プロセッサにループ命令情報を出力すると共に実行権を移行し、前記演算プロセッサに前記ループ制御プログラムを実行させる処理を備えた、制御コントローラであって、
前記ループ命令は、少なくとも入力処理、制御演算処理、および出力処理を定義するループ命令用オペランドを具備し、
前記ループ命令情報は、少なくとも前記ラダープログラム内のループ命令のアドレスを含み、
少なくとも前記入力処理及び出力処理を定義するオペランドは、１ワードで構成され、上位バイト及び下位バイトのうち、いずれか一方が量子化仕様を定義し、
前記メモリには、さらにレジスタを備え、前記ループ命令用オペランドは、ループ番号を定義するオペランドを具備し、前記ループ制御プログラムは、前記ループ命令用オペランドの格納アドレスを取得する処理と、前記ループ命令用オペランドから前記ループ番号を取得する処理を備え、前記ループ番号で指定された前記レジスタを前記演算プロセッサが演算用レジスタとして使用することを特徴とする制御コントローラ。
【請求項８】
請求項７記載の制御コントローラにおいて、
前記レジスタは、前記指定される各ループ番号に対応して複数のエリアを有し、前記各エリアは、少なくとも前記入力処理の対象となる計測データを格納する領域及び前記制御演算処理結果である操作データを格納する領域を備えることを特徴とする制御コントローラ。
【請求項９】
請求項８記載の制御コントローラにおいて、
前記入力処理を定義するオペランドは、前記上位バイトが量子化仕様を定義し、前記下位バイトが前記入力処理の対象となる計測データに対するデータ変換機能を定義することを特徴とする制御コントローラ。
【請求項１０】
請求項８記載の制御コントローラにおいて、
前記出力処理を定義するオペランドは、前記上位バイトが前記制御演算処理からのデータに対するデータ変換機能を定義し、前記下位バイトが前記量子化仕様を定義することを特徴とする制御コントローラ。
【請求項１１】
シーケンスプロセッサと、演算プロセッサと、メモリとを備えた制御コントローラに接続するプログラミング装置による前記制御コントローラのプログラミング方法であって、
前記メモリには、ラダープログラムと、レジスタと、ループ制御プログラムを備え、
前記ラダープログラムは、命令とオペランドの組合せにより構成され、
前記シーケンスプロセッサは、前記ラダープログラムの命令がシーケンス命令の場合は、前記シーケンスプロセッサによって前記シーケンス命令を実行し、前記ラダープログラムの命令がループ命令の場合は、前記演算プロセッサにループ命令情報を出力すると共に実行権を移行し、前記演算プロセッサに前記ループ制御プログラムを実行させる処理を備え、
前記プログラミング装置は、前記ラダープログラムをラダー図形で表示し、表示した前記ラダー図形の上に、少なくとも入力処理、制御演算処理および出力処理を定義するループ命令用オペランドを定義及び表示するためのループ命令用オペランドエリアを備え、
前記ループ命令情報は、少なくとも前記ラダープログラム内のループ命令のアドレスを含み、少なくとも前記入力処理及び出力処理を定義するオペランドは、１ワードで構成され、上位バイト及び下位バイトのうち、いずれか一方が量子化仕様を定義し、
前記ラダープログラムの命令が前記ループ命令の場合は、前記ループ命令用オペランドエリアに、前記ループ命令用オペランドを、入力処理パラメータ、制御演算処理パラメータ、出力処理パラメータの順に定義及び表示することを特徴とするプログラミング方法。
【請求項１２】
請求項１１記載の制御コントローラのプログラミング方法において、
前記ループ命令用オペランドは、ループ番号を定義するオペランドを具備し、前記ループ制御プログラムは、前記ループ命令用オペランドの格納アドレスを取得すること、前記ループ命令用オペランドから前記ループ番号を取得することを行い、前記ループ番号で指定された前記レジスタを前記演算プロセッサが演算用レジスタとして使用することを特徴とする制御コントローラのプログラミング方法。
【請求項１３】
請求項１２記載の制御コントローラのプログラミング方法において、
前記レジスタは、前記指定される各ループ番号に対応して複数のエリアを有し、前記各エリアは、少なくとも前記入力処理の対象となる計測データを格納する領域及び前記制御演算処理結果である操作データを格納する領域を備えることを特徴とする制御コントローラのプログラミング方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シーケンス制御とループ制御を実行する制御コントローラ及びプログラミング方法に関する。
【背景技術】
【０００２】
上下水道プラントの自動制御はポンプや水処理装置の起動停止、バルブやゲートの開閉、監視操作装置への表示と操作など、ビットデータ演算を主体とするシーケンス制御と、流量や水質のPID制御など数値データ演算を主体とするループ制御から構成される。上下水道プラントの自動制御の大半がシーケンス制御である。
【０００３】
上下水道プラントのシーケンス制御には高速性と信頼性が求められるので、制御コントローラによるシーケンス制御（ソフトシーケンス制御）だけでなく、重要設備については信頼性を高めるためにリレー回路によるハードシーケンス制御も適用される。このようにソフトシーケンス制御とハードシーケンス制御が混在するため、シーケンス制御を実行する制御コントローラには、ハードシーケンス表記と同様のラダー図形式でプログラミングできるラダープログラムを実装することが望ましい。また、ラダープログラムを高速実行できるシーケンス専用プロセッサの実装が必須である。
【０００４】
１つのループ制御は、プラントからの信号入力処理、制御対象プロセスの制御演算処理、プラントへの出力処理から構成される。
【０００５】
上下水道プラントの運用は５０年以上であるのに対して、計測制御装置の製品寿命は１０年程度と短く、さらに腐食性ガスや湿気の影響により数年以下に低下するケースもあり、プラントの運用中に計測制御装置は何度も最新製品に更新される。更新毎に計装制御装置の仕様は変化し、特に、アナログ信号仕様、Ａ／Ｄ変換仕様、Ｄ／Ａ変換仕様は様々で、同一プラント内でも統一されていないという実態がある。これは、更新年代で、情報通信技術、適用規格、部品寿命、プラント運転方法、更新予算などが異なることに起因する。よって、ループ制御の入力処理や出力処理には、多様な信号仕様への対応が求められる。
【０００６】
また、上下水道のプロセスは自然開放系のため、原材料に相当する原水の流量と水質が自然界や生活・経済活動の影響を受けて大きく変動する特徴を有する。よって、流量や水質などのループ制御には、外乱対応などのプラント固有の複雑な制御演算処理が要求される。
【０００７】
よって、ループ制御を実行する制御コントローラには、入力処理、制御演算処理、出力処理に求められる機能をサブプログラムとして備え、サブプログラムを組み合わせてループ制御メインプログラムを構築可能な構成が求められる。そして、ループ制御メインプログラムを高速実行できる演算用プロセッサの実装が必須である。
【０００８】
以上より、シーケンス制御とループ制御を実行する制御コントローラには、ラダープログラムのシーケンス命令にてシーケンス制御を記述し、ループ命令にてループ制御を記述できる構成とし、さらに、ラダープログラムのループ命令を入力処理、制御演算処理、及び出力処理の機能群を備えた多機能命令とし、ラダープログラムで記述したパラメータにより機能を選択実行できる構成が求められる。また、シーケンス用プロセッサと演算用プロセッサを実装し、シーケンス命令をシーケンス用プロセッサで実行し、ループ命令を演算用プロセッサで実行可能な構成が求められる。
【０００９】
従来、このような事情に鑑みて、ラダープログラムで記述したシーケンス制御用命令とループ制御用命令を各々の専用プロセッサで実行する技術が提案されている（例えば、特許文献１）。
【００１０】
特許文献１に開示の技術によれば、ラダープログラムで記述した命令をシーケンス処理プロセッサでフェッチし、シーケンス命令の場合はシーケンス処理プロセッサで実行し、プロセス制御命令の場合はプロセス制御プロセッサが最初にオペランドで定義したデータメモリのアドレスからデータを読出し、その後に命令を実行することができる。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開平７−２４８８０７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
特許文献１によれば、ラダープログラムを構成する命令とオペランドはプログラムメモリに格納され、命令は、オペランドの示すデータメモリのアドレスに格納されているデータを参照可能と記載されている。特許文献１の技術を用いて、ループ制御用の多機能命令とパラメータの組み合わせを具現化するには、ラダープログラムの命令にはループ制御用多機能ループ命令を定義し、オペランドにはパラメータ格納先のデータメモリアドレスを定義することになる。このように、ループ制御を多機能命令で実現するには、オペランドが示すデータメモリアドレスにパラメータを配置せざるを得ない。従って、シーケンス制御はラダープログラムの命令とオペランドのみで完結できるのに対して、ループ制御はラダープログラムの命令とオペランドに加えて、データメモリに定義したパラメータも必要となる。
【００１３】
このように特許文献１の技術によれば、ループ制御製作時には、ラダープログラムで多機能ループ命令とオペランドを定義するだけでなく、データメモリへの定義が必要なため、ラダープログラムの定義とデータメモリの定義という二つの作業を、定義の整合性を確保しながら実施するため、労力を要するという課題がある。
【００１４】
本発明は、このような従来技術の実情に鑑みてなされたものであり、入力処理、制御演算処理、出力処理から構成される一連のループ制御をラダープログラムで記述し、実行する制御コントローラを提供する。
【課題を解決するための手段】
【００１５】
上述の課題を解決するため、制御コントローラは、シーケンスプロセッサ、演算プロセッサ、メモリ、を備え、メモリには、ラダープログラムと、ループ制御プログラムを備え、ラダープログラムは、命令とオペランドの組合せにより構成され、シーケンスプロセッサはラダープログラムを順次読出して、ラダープログラムの命令がシーケンス命令の場合は、シーケンスプロセッサによってシーケンス命令を実行し、ラダープログラムの命令がループ命令の場合は、演算プロセッサにループ命令情報を出力すると共に実行権を移行し、演算プロセッサがループ制御プログラムを実行し、ループ命令は、少なくとも入力処理、制御演算処理および出力処理を定義できるループ命令用オペランドを具備し、ループ命令情報は、少なくとも前記ラダープログラム内のループ命令のアドレスを含み、少なくとも入力処理及び出力処理を定義するオペランドは、１ワードで構成され、上位バイト及び下位バイトのうち、いずれか一方が量子化仕様を定義する。
【００１６】
制御コントローラと対応関係をなす、制御コントローラのラダープログラムをラダー図形で表示するプログラミング装置の態様は、ラダー図形の上にループ命令用オペランドを定義及び表示するためのループ命令用オペランドエリアを備え、ラダープログラムの命令がループ命令の場合は、ループ命令用オペランドエリアにオペランドを定義及び表示する。
【発明の効果】
【００１７】
本発明により、ラダープログラムで記述したループ命令とオペランドのみで、入力処理、制御演算処理、出力処理という一連のループ制御を構築きるので、ラダープログラムの知識を有するエンジニアにより、シーケンス制御とループ制御が混在した多様な制御システムを容易に構築できるという効果がある。
【図面の簡単な説明】
【００１８】
【図１】実施形態に係る制御コントローラの構成図である。
【図２】実施形態に係る制御コントローラのタイムチャート図である。
【図３】実施形態に係る制御コントローラのラダープログラムの一例を示す図である。
【図４】実施形態に係る制御コントローラのラダープログラムの一例を示す図である。
【図５】実施形態に係る制御コントローラのシーケンスプロセッサの処理手順を示す図である。
【図６】実施形態に係る制御コントローラの演算プロセッサの処理手順を示す図である。
【図７】実施形態に係る制御コントローラのループ制御プログラムの処理手順を示すフローチャートである。
【図８】プラントのループ制御の機能の一例を示す図である。
【図９】プログラミング装置で表示されるラダー図の一例を示す図である。
【発明を実施するための形態】
【００１９】
以下、制御コントローラの実施形態を、図面を参照しながら詳細に説明する。
【００２０】
図１は制御コントローラの構成を示す図である。
【００２１】
まず、プラント２０、制御コントローラ１０、プログラミング装置１１について説明する。
【００２２】
本実施形態では、プラント２０を浄水場として説明する。浄水場は、ダムや河川から原水を取水して、薬品沈殿、砂ろ過、塩素注入により水道水を製造するプラントである。原水ポンプ設備、高圧受電設備、非常用の発電機設備、薬品注入設備、沈殿池設備、ろ過池設備、塩素注入設備、送水ポンプ設備、排水設備などから構成される。またプラント２０には各設備が有するポンプやモータの起動停止、バルブやゲートの開閉、変圧器やコンデンサの入切、遮断器の開閉などを操作するための操作接点と、運転や停止、全開や全閉、入や切、正常や故障などの状態を出力するための状態接点を備えている。また、流量、水位、水圧、弁開度、水質などを計測して、１〜５Ｖ、０〜５Ｖ、４〜２０ｍＡなどのアナログ信号を発信するセンサと、外部からのアナログ信号に従い弁開度、回転数、薬品注入量などを操作するアクチュエータなどを備えている。
【００２３】
制御コントローラ１０は、プラント２０の状態接点やアナログ信号を入力し、ラダープログラムで記述されたシーケンス制御及びループ制御を実行し、操作接点やアナログ信号をプラント２０へ出力することで、プラント２０を自動制御する。ここで、シーケンス制御とは、例えば、ポンプの始動や停止の工程制御、ろ過池の通水や洗浄の工程制御、沈殿池排泥弁の開閉制御、ポンプやコンデンサの台数制御などである。またループ制御とは、例えば、流量計測データに基づいた弁開度制御やポンプ回転数制御、水質計測データに基いた薬品注入量制御や薬品注入ポンプストローク制御、水位計測データに基づいた弁開度制御や流量制御などである。
【００２４】
プログラミング装置１１は、例えばパーソナルコンピュータを用いて構成される。プログラミング装置１１は、ラダープログラムをラダー図形式で表示ならびに編集できるラダープログラム開発環境を備え、プラント２０のシーケンス制御やループ制御を実行するためのラダープログラムを製作し、制御コントローラ１０にラダープログラムを登録する。
また、C言語などのプログラム言語によるループ制御プログラムの開発環境を備え、ラダープログラムのループ命令の実行モジュールに該当するループ制御プログラムを作成し、制御コントローラ１０にループ制御プログラムを登録する。
【００２５】
次に、図１によりコントローラ１０の内部構成について説明する。
【００２６】
制御コントローラ１０は、シーケンスプロセッサ１、演算プロセッサ２、メモリ３、プラント入出力８、通信インタフェース９を有し、システムバス７により相互に接続されている。メモリ３は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などであり、ラダープログラム４、レジスタ５、ループ制御プログラム６が配置される。
【００２７】
シーケンスプロセッサ１は、シーケンス制御専用のプロセッサであり、ビット論理演算やデータ四則演算などの比較的単純な演算を高速に実行する。シーケンスプロセッサ１は、ラダープログラム４に記述されたシーケンス命令とループ命令を実行する。シーケンス命令の場合は、シーケンスプロセッサ１が演算処理を実行する。またラダープログラム４にループ命令を検出した場合は、演算プロセッサ２にループ命令の情報を送信し、さらに演算プロセッサ２に実行権を移行して、ループ命令の実行モジュールであるループ制御プログラム６を実行させる。
【００２８】
演算プロセッサ２は、複雑な数値演算を実行するための演算用プロセッサであり、シーケンスプロセッサ１からループ命令の情報と、実行権を取得するとループ制御プログラム６を実行する。
【００２９】
レジスタ５は、シーケンス命令やループ命令が使用するビットデータやワードデータやロングワードデータを格納したエリアであり、入力レジスタは「Ｘ＊＊＊」、出力レジスタは「Ｙ＊＊＊」、演算用レジスタは「Ｒ＊＊＊」や「Ｌ＊＊＊」など、用途毎にアドレスが割り付けられている。
【００３０】
例えば、プラント２０からのアナログ信号や状態接点などのデータは、プラント入出力８でA/D変換された後に、入力レジスタ「Ｘ」に格納される。計測データなどのワードデータは入力レジスタＸＷ０００〜ＸＷＦＦＦに、状態接点などのビットデータは入力レジスタＸ０００〜ＸＦＦＦに格納される。
【００３１】
また、出力レジスタ「Ｙ」に格納したデータは、プラント入出力８を経由してプラント２０へ出力される。ワードデータを出力するには出力レジスタＹＷ０００〜ＹＷＦＦＦを使用し、ビットデータを出力するには出力レジスタＹ０００〜ＹＦＦＦを使用する。
【００３２】
また、シーケンス命令の演算用レジスタとして、ワードデータ用にＲＷ０００〜ＲＷＦＦＦ、ビットデータ用にＲ０００〜ＲＦＦＦなどが割り付けられている。
【００３３】
また、ループ命令の演算用レジスタとして、ワードデータ用にＬＷ０００〜ＬＷＦＦＦ、ビットデータ用にＬ０００〜ＬＦＦＦが割り付けられている。
【００３４】
なお、シーケンス命令は全てのレジスタを演算対象としてアクセスでき、ループ命令は演算用レジスタを演算対象としてアクセスできる。
【００３５】
プラント入出力８は、プラント２０から出力される状態接点やアナログ信号などの電気信号をA/D変換し、バス７経由でレジスタ５の入力レジスタ「Ｘ」にビットデータやワードデータとして格納する。例えば、１〜５Ｖなどのアナログ信号をＡ／Ｄ変換し、入力レジスタＸＷ０００〜ＸＷＦＦＦにワードデータとして格納する。また、例えば、無電圧の接点、有電圧の接点などを取り込み、入力レジスタＸ０００〜ＸＦＦＦにビットデータとして格納する。
【００３６】
また、例えば、レジスタ５の出力レジスタのビットデータやワードデータをＤ／Ａ変換し、プラント２０へ操作接点やアナログ信号として出力する。例えば、ＹＷ０００〜ＹＷＦＦＦのワードデータを１〜５Ｖなどのアナログ信号にＤ／Ａ変換し、プラントに設置されたアクチュエータに出力する。また、ビットデータエリアＹ０００〜ＹＦＦＦのビットデータを電気信号に変換してラント２０に備わっている操作接点に出力する。
【００３７】
プラント入出力８のＡ／Ｄ変換やＤ／Ａ変換の量子化仕様には、例えば、８ビット、１２ビット、１４ビットなどの種類がある。量子化ビット値が大きいほど高い技術水準が要求され、また製造コストも高い。プラント入出力８の量子化仕様は、各機器の導入時期により様々である、これはプラント２０の運用期間中に、情報通信技術レベル、適用規格、信頼性、プラント運用方針、導入予算などの取り巻く環境が大きく変化するためである。
【００３８】
ラダープログラム４は命令とオペランドから成るステップを複数記述した構成である。
命令はシーケンス命令とループ命令に大別される、
シーケンス命令はオペランドと組み合わせてシーケンス制御を記述する。１つのシーケンス命令は1つの演算機能を備えた単機能命令であり、例えば、ビット論理演算、データ四則演算、データ転送などの演算毎に命令が存在する。シーケンス命令の演算対象は、オペランドにて定義されたレジスタ５のデータである。
【００３９】
ループ命令はオペランドと組み合わせてループ制御を記述する。１つのループ命令は１つのループ制御に必要な入力処理、制御演算処理、出力処理などの機能を備えた多機能命令である。各機能はオペランドに定義したパラメータにより決定される。
【００４０】
入力処理の機能として、プラント入出力８を経由して入力した計測データを、制御演算処理で利用可能なスケールに変換する機能がある。プラント２０のアナログ信号は、プラント入出力８のＡ／Ｄ変換を経由して計測データとして取得される。そのため計測データは、アナログ信号仕様とプラント入出力８のＡ／Ｄ変換量子化仕様の組合せにより、スケールが変動する。そこで、オペランドをパラメータとしてアナログ信号仕様と量子化仕様の組合せを取得し、計測データのスケールを制御演算処理で利用可能な正規値と称するスケールに変換する機能を備える。
【００４１】
また入力処理の他の機能として、線形変換、逆線形変換、開平演算、力率変換、積算処理、一次遅れ処理などのデータ変換機能を備え、オペランドに定義したパラメータによりこれら機能の中から実行する機能を指定する。
【００４２】
制御演算処理は、例えば、干渉型ＰＩＤ、非干渉型ＰＩＤ、比率演算などの機能を備え、オペランドに定義したパラメータによりこれら機能の中から実行する機能を指定する。
【００４３】
また、ループ命令はレジスタ５に割り付けられた演算用データエリアをアクセスする。
【００４４】
出力処理の機能としては、制御演算処理から出力された操作データに対して、線形変換、逆線形変換、開平演算、力率変換、積算処理、一次遅れ処理、BCD変換などのデータ変換機能を備える。オペランドに定義したパラメータによりこれら機能の中から実行する機能を指定する。
【００４５】
また、出力処理の機能としては、制御演算処理からの操作データを正規化スケールから、プラント入出力８のＤ／Ａ変換量子化仕様と、プラント２０へのアナログ信号仕様に適合したスケールに変換する機能を備え、オペランドに定義したパラメータによりこれら機能の中から実行する機能を指定する。
【００４６】
ループ制御プログラム６は、ラダープログラム４に記述されたループ命令の実行モジュールである。ループ制御プログラム６は起動すると、ラダープログラム４に記述されたオペランドを取得し、オペランドに従い入力処理、制御演算処理、出力処理の順にという一連のループ制御演算処理を実行し、結果をレジスタ５に格納して処理を終了する。
なお、ループ制御プログラム６は、演算プロセッサ２により実行される。
【００４７】
通信インタフェース９は、プログラミング装置１１とメモリ３との間でデータを送受信するためのインタフェースである。
【００４８】
プラント２０のシーケンス制御及びループ制御用のラダープログラム４は、プログラミング装置１１のラダープログラム開発環境を用いてラダー図形式で製作され、通信インタフェース９とバス７を介してメモリ３に格納される。また、プログラミング装置１１は通信インタフェース９とバス７を介してラダープログラム４を読み出して、命令とオペランドをラダー図形式で表示ならびに編集することもできる。
【００４９】
プラント２０の制御全体の容量は、例えばラダープログラムのステップ数で数千〜数十万ステップ、ループ制御数で数百〜数千ループである。
【００５０】
また、プログラミング装置１１のループ制御プログラムの開発環境を用いて、C言語などのプログラム言語によるループ制御プログラムのソースプログラムを作成し、実行モジュール形式のループ制御プログラム６に変換した後に、通信インタフェース９とバス７を介してメモリ３に格納する。また、
制御コントローラ１０は、プラント入出力８を介してプラント２０の信号を受信し、レジスタ５に格納する。シーケンスプロセッサ１はラダープログラム４に記述されたシーケンス命令を実行して、結果をレジスタ５に格納する。また、シーケンスプロセッサ１はラダープログラム４に記述されたループ命令を検出すると、演算プロセッサ２にループ演算プログラム６を実行させて、結果をレジスタ５に格納する。レジスタ５に格納されたデータは、プラント入出力８を介してプラント２０へ出力される。このように、制御コントローラ１０は、プラント２０のシーケンス制御とループ制御を実行する。
【００５１】
図２は、シーケンスプロセッサ１と演算プロセッサ２の動作例を示すタイムチャートである。図２により、シーケンスプロセッサ１と演算プロセッサ２の動作を説明する。
【００５２】
シーケンスプロセッサ１は、例えば５０ｍｓ、１００ｍｓ、２００ｍｓなどの制御周期でラダープログラム４を実行する。
【００５３】
シーケンスプロセッサ１は、制御周期のタイミングを検知すると、ラダープログラム４の先頭ステップから実行を開始し、ステップ番号順にシーケンス命令を実行する。そしてループ命令を検出した場合は、実行権を演算プロセッサ２に移行して、シーケンスプロセッサ１は実行待ち状態になる。
【００５４】
演算プロセッサ２は、シーケンスプロセッサ１から実行権を取得すると、ループ制御プログラム６の実行を開始し、ループ制御演算処理の実行を終了すると、実行権をシーケンスプロセッサ１に戻して、演算プロセッサ２は実行待ち状態になる。シーケンスプロセッサ１は、実行権を取得すると再びラダープログラム４のステップを順次実行し、最終ステップまで実行を完了すると、次の制御周期まで実行待ち状態となる。
【００５５】
図３は、ラダープログラム４を構成するステップの一例を示す図である。
【００５６】
ステップ４０は、１つの命令と１つのオペランドによりシーケンス命令を記述した例である。ステップ４０は、ステップ番号４００、シーケンス命令４０１、第１オペランド４０２Aから構成される。ステップ番号４００は各ステップにシリーズで付けられる番号であり、先頭ステップは「０」から付番される。
【００５７】
シーケンス命令４０１は、単機能命令であり、ａ接点スタート演算「ＬＤ」、ｂ接点スタート演算「ＬＤＩ」、コイル出力演算「ＯＵＴ」、ａ接点の直列演算「ＡＮＤ」、ａ接点の並列演算「ＯＲ」などのビット演算命令と、データ転送演算「ＭＯＶ」、データ加算演算「ＡＤＤ」などのワード演算命令が定義される。また、第１オペランド４０２Ａには、例えば「Ｘ０００」などシーケンス命令４０１が演算対象とするレジスタ５のアドレスを定義する。
【００５８】
シーケンスプロセッサ１は、ステップ４０からシーケンス命令４０１と第１オペランド４０２Ａを読み出して、第１オペランド４０２Aに定義されたレジスタ５のデータを演算対象に、シーケンス命令４０１に定義された演算を実行する。
【００５９】
図４は、ラダープログラム４を構成するステップの一例を示す図である。
【００６０】
ステップ４１は、１つのループ命令と４つのオペランドにより、１つのループ制御を記述した例である。ステップ４１は、ステップ番号４１０、ループ命令４１０、第１オペランド４１２Ａ、第２オペランド４１２Ｂ、第３オペランド４１２Ｃ、第４オペランド４１２Ｄから構成される。また、例えば、ステップ番号４１０、ループ命令４１１、第１オペランド４１２Ａ、第２オペランド４１２Ｂ、第３オペランド４１２Ｃ、第４オペランド４１２Ｄは、それぞれ１ワードのサイズであり、ステップ４１は６ワードのサイズで構成される。
【００６１】
ステップ番号４１０は、各ステップにシリーズで付けられる番号であり、先頭ステップは「０」から付番される。
【００６２】
ループ命令４１１は、多機能命令であり、第１オペランド４１２Ａ、第２オペランド４１２Ｂ、第３オペランド４１２Ｃ、第４オペランド４１２Ｄをパラメータとして取り込み、パラメータに従い入力処理、制御演算処理、出力処理を実行する。また、ループ命令４１１は、入力処理、制御演算処理、出力処理を実行する際には、レジスタ５内の演算用レジスタ「Ｌ」を演算用レジスタとして使用する。演算用レジスタは、プラント２０からの計測データ、プラント２０に出力する操作データなどを記憶するためのエリアである。
【００６３】
以下、オペランドの定義と、ループ制御機能の対応を詳細に説明する。第１オペランド４１２Ａにはループ番号を定義する。ここで、ループ番号とは、ループ制御毎に付番した番号であり、制御コントローラ１台内ではユニークである。ループ命令は、ループ番号により演算用レジスタのエリアを使い分ける。例えば、演算用レジスタの全エリアがＬＷ０００〜ＬＷＦＦＦで、ループ番号毎に１６ワード使用確保したならば、ループ番号が「１」の場合はＬＷ０００〜ＬＷ００Ｆ、ループ番号が「２」の場合はＬＷ０１０〜ＬＷ０１Ｆを使用する。また、ループ番号で決定した先頭アドレスの相対０ワード目ＬＷ０００にはインデックス、相対１ワード目ＬＷ００１にはプラント２０からの計測データ、２ワード目ＬＷ００２にはループ制御演算結果である操作データ、３ワード目ＬＷ００３には目標データなどを格納する。
【００６４】
第２オペランド４１２Ｂには、入力処理に必要な機能を選定するためのパラメータを定義する。例えば、第２オペランド４１２Ｂの上位バイトには、プラント入出力８を経由して入力した計測データを制御演算処理で利用可能なスケールに変換する機能を選定するために、Ａ／Ｄ変換番号を定義する。ここで、Ａ／Ｄ変換番号は、プラント２０のアナログ信号仕様とプラント入出力８の量子化仕様の組合せで決まる番号である。例えば、１〜５Ｖのアナログ信号を８ビットにＡ／Ｄ変換されていれば「１」、１〜５Ｖのアナログ信号を１２ビットデータに変換する場合は「２」、１〜５Ｖのアナログ信号を１４ビットデータに変換する場合は「３」、０〜５Ｖのアナログ信号を８ビットデータに変換する場合は「４」などである。
【００６５】
第２オペランド４１２Ｂの下位バイトには、計測データへのデータ変換機能を選定するために、入力データ変換番号を定義する。ここで、入力データ変換番号は、データ変換機能毎の番号であり、例えば、線形変換は「１」、逆線形変換は「２」、差圧から流量を演算する開平演算は「３」、一次遅れは「４」、力率変換は「５」などである。
【００６６】
第３オペランド４１２Ｃには、演算処理番号を定義する。ここで、演算処理番号は、例えば、干渉型ＰＩＤ制御は「１」、非干渉型ＰＩＤ制御は「２」、比率演算は「３」などである。
【００６７】
第４オペランド４１２Ｄには、出力処理に必要な機能を選定するためのパラメータを定義する。例えば、第４オペランド４１２Ｄの上位バイトには、制御演算処理からの操作データに対するデータ変換機能を選定するために、出力データ変換番号を定義する、ここで、出力データ変換番号は、データを線形変換や非線形変換する機能の番号であり、例えば、線形変換は「１」、逆線形変換は「２」などである。
【００６８】
また、第４オペランド４１２Dの下位バイトには、操作データを正規化スケールから、プラント入出力８のＤ／Ａ変換量子化仕様と、プラント２０へのアナログ信号仕様に適合したスケールに変換する機能を選定するために、Ｄ／Ａ変換番号を定義する。ここで、Ｄ／Ａ変換番号は、アナログ信号仕様や量子化仕様を定義するための番号であり、例えば８ビットデータを１〜５Ｖのアナログ信号に変換する場合は「１」、１２ビットデータを１〜５Ｖのアナログ信号に変換する場合は「２」、１４ビットデータを１〜５Ｖのアナログ信号に変換する場合は「３」、８ビットデータを０〜５Ｖのアナログ信号に変換する場合は「４」などである。
【００６９】
シーケンスプロセッサ１は、ループ命令を検出するとループ命令情報を取得して、演算プロセッサ２に出力した後に、演算プロセッサ２に実行権を移行する。演算プロセッサ２は、実行権とループ命令情報を取得し、ループ制御プログラム６を起動する。ループ制御プログラム６は、最初に第１オペランド４１２Ａ、第２オペランド４１２Ｂ、第３オペランド４１２Ｃ、第４オペランド４１２Ｄの取得処理を実行して、次に第２オペランド４１２Ｂのパラメータに従い入力処理を実行し、次に第３オペランド４１２Ｃのパラメータに従い制御演算処理を実行し、次に第４オペランド４１２Ｄのパラメータに従い、演算結果をレジスタ５に格納する。このように、ループ命令を１ステップ作成することにより、１つのループ制御に必要な入力処理、制御演算処理、出力処理を定義できるため、オペランドの定義を変更するだけで、多様なループ制御を構築できる。
【００７０】
図５はシーケンスプロセッサ１の処理フロー示す図である。
【００７１】
シーケンスプロセッサ１は、まず、ステップＳ１１０でラダープログラム実行開始タイミングであるかを判定する。例えば、予め設定された制御周期に達した場合は開始と判定してステップＳ１１１に移行し、達していなければ実行不可としてスタートに戻る。
【００７２】
ステップＳ１１１では、ステップ番号ゼロから実行開始できるように、ステップカウンタをゼロクリアする。ステップＳ１１２では、ステップカウンタのステップを対象に命令を読み出す。ステップＳ１１３では、命令がラダープログラム４の最終を示す「ＥＮＤ」であるかを判定し、「ＥＮＤ」以外の命令の場合はステップＳ１１４に移行し、「ＥＮＤ」の場合はスタートに戻る。ステップＳ１１４では、命令がシーケンス命令かループ命令を判定し、シーケンス命令の場合はステップＳ１１５に移行し、ループ命令の場合はＳ１１７に移行する。
【００７３】
ステップＳ１１５では、オペランドを読出す。ステップＳ１１６では、読み出した命令とオペランドを実行する。
【００７４】
ステップＳ１１７では、演算プロセッサ２に対してループ命令情報を出力する。ここでループ命令情報とは、例えば、ループ命令の名称や、ラダープログラム４内のループ命令のアドレス、ラダープログラム４内の第１オペランドのアドレスである。ステップＳ１１８では、実行権を演算プロセッサ２に移行する。ステップＳ１１９では、演算プロセッサ２から実行権を取得するまで待ち状態となり、実行権を取得するとステップＳ１２０に移行する。
【００７５】
ステップＳ１２０では、ステップカウンタに１を加算してステップＳ１１２に戻る。
このように、シーケンスプロセッサ１は、ステップＳ１１２からステップＳ１２０の処理を繰返し実行することで、ラダープログラム４を先頭から最終まで実行する。
【００７６】
図６は、演算プロセッサ２の処理フロー示す図である。
【００７７】
演算プロセッサ２は、まず、ステップＳ２１０でシーケンスプロセッサ１からの実行権を取得したかを判定し、実行権を取得した場合は実行権有と判定してステップＳ２１１に移行し、実行権を取得していなければ実行権無としてスタートに戻る。
【００７８】
ステップＳ２１２では、シーケンスプロセッサ１からのループ命令情報を取得する。ここでループ命令情報とは、例えば、ループ命令の名称、第１オペランドのアドレスなどである。
【００７９】
ステップＳ２１２では、ループ命令の名称から実行すべきループ制御プログラム６の先頭アドレスを決定する。次にループ命令情報から第１オペランドのアドレスを引数として、ループ制御プログラム６を実行する。
【００８０】
ステップＳ２１３では、ループ制御プログラム６を最後まで実行した後に、実行権をシーケンスプロセッサ１に移行し、スタートに戻る。
【００８１】
図７は、ループ制御プログラム６の処理フロー示す図である。以下図４を参照しつつ、図７にてループ制御プログラム６の処理フローを説明する。
【００８２】
ステップＳ６００では、演算プロセッサ２から第１オペランドのアドレスを取得する。
【００８３】
ステップＳ６０１では、第１オペランド４１２Ａを読出し、ループ番号とする。ステップＳ６０２では、第２オペランド４１２Ｂを読出し、４１２Ｂの上位バイトをＡ／Ｄ変換番号、下位バイトを入力データ変換番号とする。ステップＳ６０３では、第３オペランド４１２Ｃを読出し、演算処理番号とする。ステップＳ６０４では第４オペランド４１２Ｄを読出し、４１２Ｄの上位バイトを出力データ変換番号、下位バイトをＤ／Ａ変換番号とする。
【００８４】
ステップＳ６０５では、ステップＳ６０１で取得したループ番号から演算用レジスタを決定し、相対１ワード目に格納されている計測データを読み出す。計測データとは、例えば、プラント２０のアナログ信号をプラント入出力８にてＡ／Ｄ変換したデータである。Ａ／Ｄ変換の量子化仕様には、例えば、８ビット、１２ビット、１４ビットなどの種類があり、計測データはそれぞれ０〜５１１、０〜４０９５、０〜１６３８３などのスケールである。
【００８５】
ステップＳ６０６では、計測データのスケールを正規値と称するスケールに変換（正規化）する。正規値は、例えば０〜１００００のスケールからなる整数型のデータである。
Ａ／Ｄ変換番号が「２」ならば量子化仕様は１２ビットと判定して、計測データを０〜４０９５から０〜１００００に変換する。また、Ａ／Ｄ変換番号が「１」ならば量子化仕様は８ビットと判定して、計測データを０〜５１１から０〜１００００に変換する。
【００８６】
ステップＳ６０７では、正規値に変換された計測データを対象として、入力データ変換番号に従い入力変換処理を実行する。例えば、入力データ変換番号が「１」ならば線形変換、「２」ならば逆線形変換、「３」ならば差圧を流量に変換する開平演算、「４」ならば一次遅れ演算などである。
【００８７】
ステップＳ６０８では、入力変換処理後の計測データを対象として、演算処理番号に従い制御演算処理を実行し、処理結果を操作データをとして出力する。例えば、演算処理番号が「１」ならば干渉型ＰＩＤ制御、「２」ならば非干渉型ＰＩＤ制御、「３」ならば比率演算などである。
【００８８】
ステップＳ６０９では、操作データに対して、出力データ変換番号に従いスケール変換などの出力変換演算処理を実行する。例えば、出力データ変換番号が「１」ならば線形変換、「２」ならば、逆線形変換などである。
【００８９】
ステップＳ６１０では、操作データを対象に、正規値のスケールからＤ／Ａ変換番号に対応したスケールに変換する。例えば、Ｄ／Ａ変換番号が「１」ならば８ビット、「２」ならば１２ビット、「３」ならば１４ビットなどである。
【００９０】
ステップＳ６１１では、演算用レジスタの先頭から相対２ワード目に、操作データを格納して処理を終了する。
【００９１】
ここで、正規値とは、ループ制御演算処理で使用しているデータ型式であり、整数型の０〜１００００スケールとして説明したが、データ型式は固定小数点型、浮動小数点型などとしても良い。
【００９２】
図８は、プラント２０のループ制御の機能の一例を示す図である。図８により、配管を流れる流量をバタフライ弁開度で調節するループ制御の処理構成を説明する。
【００９３】
最初に制御対象プロセスであるプラント２０の構成を説明する。ダムから取水した原水３０は、配管２０Ａ、オリフィス２１、配管２０Ｂ、バタフライ弁２３、配管２０Ｃを経由して沈殿池に送られる。オリフィス２１は、配管内のオリフィス前後の差圧を計測して、差圧計２２に送信する。差圧計２２は、差圧計測データを１〜５Ｖのアナログ信号に変換して、制御コントローラ１０に出力する。開度設定器２４は、０〜５Vのアナログ信号にて制御コントローラ１０から設定された開度に従い、バタフライ弁２３の開度を維持する。
【００９４】
制御コントローラ１０は、プラント入出力８に実装した１２ビットＡ／Ｄ変換８１を介して、差圧計２２から差圧計測データを入力し、１２ビットデータとして入力レジスタＸＷ１００に格納する。また、制御コントローラ１０は、ラダープグラム４により、１２ビットの差圧計測データを取得し、非干渉型ＰＩＤ制御を実行し、実行結果である開度操作データを８ビットデータとして出力レジスタＹＷ１００に格納する。そして、プラント入出力８に実装した８ビットＤ／Ａ変換８２を経由して開度設定器２４に開度操作データを出力する。
【００９５】
次に、ラダープログラム４に記述したステップ４２、４３、４４によるループ制御演算処理の動作を詳細に説明する。
【００９６】
ステップ４２は、ステップ番号４２０、シーケンス命令４２１、第１オペランド４２２Ａ、第２オペランド４２２Ｂから構成され、シーケンス命令４２１に定義された「ＭＯＶ」により、第１オペランド４２２Ａに定義された入力レジスタＸＷ１００のデータを、演算用レジスタＬＷ００１に転送する。図４で説明したように、演算用レジスタＬＷ００１はループ番号「１」の計測データに該当する
ステップ４３は、ステップ番号４３０、ループ命令４３１、第１オペランド４３２Ａ、第２オペランド４３２Ｂ、第３オペランド４３２Ｃ、第４オペランド４３２Ｄから構成される。ループ命令４３１は、第１オペランド４３２Ａをループ番号とし、第２オペランド４３２Ｂを入力処理のパラメータとし、第３オペランド４３２Ｃを制御演算処理のパラメータとし、第４オペランド４３２Ｄを出力処理のパラメータとして、ループ制御演算を実行する。
【００９７】
以下、ループ命令４３１のループ制御演算処理を、実行順に説明する。
【００９８】
まず、第１オペランド４３２Ａを「０００１」と定義することにより、ループ番号は「１」に設定される。これにより、ループ制御演算処理は、ループ番号「１」用の演算用レジスタＬＷ０００〜ＬＷ００Ｆを使用する。そして、演算用レジスタの先頭から相対１ワード目のＬＷ００１から計測データを読み出し、差圧計測データとして使用する。
【００９９】
第２オペランド４３２Ｂの上位バイトを「０２」と定義することにより、Ａ／Ｄ変換番号は「２」に設定される。Ａ／Ｄ変換番号「２」は、１２ビットデータを正規値化する機能に該当するので、演算用レジスタＬＷ００１に格納されている差圧計測データを、１２ビットデータから正規値に変換する処理を実行する。
【０１００】
第２オペランド４３２Ｂの下位バイトを「０３」と定義することにより、入力データ変換番号は「３」に設定される。入力データ変換番号「３」は開平演算機能に該当するので、正規値化された差圧計測データに開平演算を施して流量計測データに変換する処理を実行する。
【０１０１】
第３オペランド４３２Ｃを「０２」と定義することにより、演算制御番号は「２」に設定される。演算制御番号「２」は非干渉型ＰＩＤ制御機能に該当し、流量計測データに対して非干渉型ＰＩＤ制御を実行し、開度操作データを出力する。
【０１０２】
第４オペランド４３２Ｄの上位バイトを「０１」と定義することにより、出力データ変換番号は「１」に設定される。出力データ変換番号「１」は線形変換機能に該当し、開度操作データを線形変換する処理を実行する。
【０１０３】
第４オペランド４３２Ｄの下位バイトを「１」と定義することにより、Ｄ／Ａ変換番号は「１」に設定される。Ｄ／Ａ変換番号「１」は正規値を８ビットデータに変換する機能に該当するので、開度操作データを８ビットに変換して、ループ番号「１」の演算用レジスタの相対２ワード目ＬＷ００２に格納する。
【０１０４】
このように、ステップ４３により、ループ制御の入力処理、制御演算処理、出力処理を構築することができる。
【０１０５】
ステップ４４は、ステップ番号４４０、シーケンス命令４４１、第１オペランド４４２Ａ、第２オペランド４４２Ｂから構成され、シーケンス命令４４１に定義された「ＭＯＶ」により、第１オペランド４４２Ａに定義された演算用レジスタＬＷ００２の開度操作データを、第２オペランド４２２Ｂに定義された演算用レジスタＹＷ１００に転送する。
【０１０６】
ステップ４２により、入力レジスタの計測データをループ命令が使用する演算用レジスタに転送する処理を設けたが、プラント入出力８が演算用レジスタに計測データを直接格納する構成としてもよい。
【０１０７】
ステップ４４により、演算用レジスタの操作データを出力レジスタに転送する処理を設けたが、演算用レジスタの操作データをプラント入出力８が直接転送して、プラント２０に出力する構成としてもよい。
【０１０８】
図９はプログラミング装置１１で表示されるラダー図の一例を示す図である。
【０１０９】
図９（ａ）のラダー図２００は、プログラミング装置１１のラダープログラム開発環境を用いて、図９（ｂ）ラダープログラム４をラダー図形式で表示した例である。
【０１１０】
ラダー図２００のラダー２０１は、入力レジスタＸ００１のビットデータがＯＮし、かつ入力レジスタＸ００２のビットデータがＯＮした場合は、出力レジスタＹ００１のビットデータをＯＮする処理を示す。ラダー２０１は、a接点スタート演算「ＬＤ」、ａ接点の直列演算「ＡＮＤ」コイル出力演算「ＯＵＴ」の３つのシーケンス命令から構成される。
【０１１１】
ラダー２０２は、シーケンス命令「ＭＯＶ」により入力レジスタＸＷ１００のワードデータを、演算用レジスタＬＷ００１に転送する。
【０１１２】
ラダー２０３は、ループ命令２０５と４つのオペランドにより、１つのループ制御を記述している。オペランド表示エリア２０６には、４つのオペランドを一括で、左上からループ番号「０００１」、入力処理パラメータ「０２０３」、制御演算処理パラメータ「０００２」、出力処理パラメータ「０１０１」の順に表示することにより、ラダー図のみでループ制御の構成を容易に把握できる。
【０１１３】
ラダー２０４は、シーケンス命令「ＭＯＶ」により演算用レジスタＬＷ００２のデータを、出力レジスタＹＷ１００に転送する
なお、本発明に係る制御コントローラは、上述した実施形態に限定されるものではなく、本発明の要旨を逸脱しない範囲で、適宜変形することができる。以下に、本発明に係る制御コントローラの他の実施形態を列挙する。
【０１１４】
前述の実施形態では、ループ命令４１１のオペランド４１２をループ番号、入力処理、制御演算処理、出力処理の一連のループ制御演算処理を記述すべく第１から第４までの４つのオペランドを備えたが、１つのオペランドで一連のループ制御の機能を記述しても良いし、入力処理毎、制御演算処理毎、出力処理毎に複数のオペランドを備えても良い。
【０１１５】
前述の実施形態では、シーケンスプロセッサ１から出力されるループ命令情報を、ラダープログラム２内のオペランドが格納されているアドレスとしたが、ラダープログラム２内のループ命令が格納されているアドレスとして、ループ制御プログラム６は、ループ命令が格納されているアドレスを基点に、次ぎに続くオペランドを取得する処理としても良い。
【０１１６】
前述の実施形態では、ラダープログラム４は、ＩＥＣ−６１１３１（プログラマブルコントローラのプログラミング言語の標準規格）の表現としても良い。
【０１１７】
前述の実施形態に係る制御コントローラは、電力、ガス、交通、ダムなどの社会インフラシステムの制御システムや、鉄鋼、化学、食品、物流など産業システムの制御システムにも適用できる。
【０１１８】
各機能を実現するプログラム、データ等の情報は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）に格納すること以外に、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記録装置や、ＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）カード、ＳＤ（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）カード、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）等の記録媒体に格納することができる。
【０１１９】
前述の実施形態に係る各部の構成、機能、プロセッサ、メモリは、それらの全部又は一部を、集積回路で設計されたハードウェアで実現することもできる。
【０１２０】
本実施形態によれば、ラダープログラムで記述したループ命令とオペランドで、入力処理、制御演算処理および出力処理という一連のループ制御を構築きるので、ラダープログラムの知識を有するエンジニアにより、シーケンス制御とループ制御が混在した多様な制御システムを容易に構築できるという効果がある。
【０１２１】
ラダープログラムでループ制御を記述できるので、エンジニアリング効率の向上、プログラミングとデバッグ効率の向上、実際の試運転調整効率の向上が期待できる。
【０１２２】
また、１つのループ制御を最小ステップのラダープログラムにより記述できるので、プログラミング装置に表示したラダー図形式の画面をスクロールしたり、画面を複数展開することなく、プログラミングとデバッグを実施できるので、作業効率が向上するという効果がある。
【０１２３】
また、ラダープログラムにてループ制御が可視化されて記述でき、第三者でもループ制御構成を容易に理解できるので保守性が高く、社会インフラのような長期間保守を要求されるプラントにも適用できるという効果がある。
【０１２４】
また、例えばセンサ信号仕様の変更、制御コントローラのA/D変換仕様の変更などが発生しても、ラダープログラムのオペランドの変更のみで簡易に改修できるので、改修作業時間が短時間となり、更新に伴うプラント停止時間、人間による代替運転時間を最小化できるという効果がある。
【０１２５】
なお、実施形態を説明する図面においては、説明上必要と考えられる制御線や情報線のみを示しており、製品上必ずしもすべての制御線や情報線を示しているとは限らない。実際には、ほとんどすべての構成が相互に接続されていると考えてよい。
【符号の説明】
【０１２６】
１：シーケンスプロセッサ、２：演算プロセッサ、３：メモリ、４：ラダープログラム、５：レジスタ、６：ループ制御プログラム、７：バス、８：プラント入出力、９：通信インタフェース、１０：制御コントローラ、１１：プログラミング装置、２０：プラント
【図１】
2016105330.tif 000003
【図２】
2016105330.tif 000004
【図３】
2016105330.tif 000005
【図４】
2016105330.tif 000006
【図５】
2016105330.tif 000007
【図６】
2016105330.tif 000008
【図７】
2016105330.tif 000009
【図８】
2016105330.tif 000010
【図９】
2016105330.tif 000011