(57)【要約】      （修正有）【課題】コントローラの演算部の交換によって、プラントのラインの工程やプラント内の各種機器に対する負荷のずれが発生することを防止する。【解決手段】実施形態の制御システムは、コントローラ２ａ〜２ｎと、エンジニアリングツール３と、を備える。コントローラは、入力用メモリ２０２ａと、出力用メモリ２０２ｂと、演算部と、を備える。エンジニアリングツール３は、記憶部と、補正部と、を備える。記憶部は、演算部毎に、制御プログラムの命令語の実行に要する命令語実行時間を示す命令語実行時間データベースを記憶する。補正部は、命令語実行時間データベースに基づいて、交換前の演算部および交換後の演算部のそれぞれによる、直接入出力機能に先立って行われる命令語である対象命令語の命令語実行時間の差分である補正時間を算出し、対象命令語の実行から補正時間待機した後に直接入出力機能が実行されるように、制御プログラムを補正する。【選択図】図１
2020046954.tif 000002
【特許請求の範囲】
【請求項１】
コントローラは、
センサからの入力情報を記憶する入力用メモリと、
制御対象機器への出力情報を記憶する出力用メモリと、
予め設定されたスキャン周期内の任意のタイミングにおいて、前記入力用メモリからの前記入力情報の読み出しまたは前記出力用メモリへの前記出力情報の書き込みを行う直接入出力機能を含む制御プログラムを実行する演算部と、を備え、
エンジニアリングツールは、
前記演算部毎に、前記制御プログラムの命令語の実行に要する命令語実行時間を示す命令語実行時間データベースを記憶する記憶部と、
前記命令語実行時間データベースに基づいて、交換前の前記演算部および交換後の前記演算部のそれぞれによる、前記直接入出力機能に先立って行われる前記命令語である対象命令語の前記命令語実行時間の差分である補正時間を算出し、前記対象命令語の実行から前記補正時間待機した後に前記直接入出力機能が実行されるように、前記制御プログラムを補正する補正部と、
を備える制御システム。
【請求項２】
前記コントローラは、さらに、前記交換前の演算部よび前記交換後の演算部それぞれの前記命令語実行時間の計測結果を記憶する命令語実行時間記録用メモリ、を備え、
前記補正部は、さらに、前記命令語実行時間記録用メモリに記憶される前記命令語実行時間、または前記命令語実行時間データベースに基づいて、前記補正時間を算出する請求項１に記載の制御システム。
【請求項３】
センサからの入力情報を記憶する入力用メモリおよび制御対象機器への出力情報を記憶する出力用メモリを備えるコントローラが有する演算部毎に、予め設定されたスキャン周期内の任意のタイミングにおいて前記入力用メモリからの前記入力情報の読み出しまたは前記出力用メモリへの前記出力情報の書き込みを行う直接入出力機能を含む制御プログラムの命令語の実行に要する命令語実行時間を示す命令語実行時間データベースを記憶する記憶部と、
前記命令語実行時間データベースに基づいて、交換前の前記演算部および交換後の前記演算部のそれぞれによる、前記直接入出力機能に先立って行われる前記命令語である対象命令語の前記命令語実行時間の差分である補正時間を算出し、前記対象命令語の実行から前記補正時間待機した後に前記直接入出力機能が実行されるように、前記制御プログラムを補正する補正部と、
を備えるエンジニアリングツール。
【請求項４】
前記補正部は、コントローラが有する命令語実行時間記録用メモリに記憶される、前記交換前の演算部よび前記交換後の演算部それぞれの前記命令語実行時間の計測結果、または前記命令語実行時間データベースに基づいて、前記補正時間を算出する請求項３に記載のエンジニアリングツール。
【請求項５】
センサからの入力情報を記憶する入力用メモリと、
制御対象機器への出力情報を記憶する出力用メモリと、
予め設定されたスキャン周期内の任意のタイミングにおいて、前記入力用メモリからの前記入力情報の読み出しまたは前記出力用メモリへの前記出力情報の書き込みを行う直接入出力機能を含む制御プログラムを実行する演算部と、を備え、
前記制御プログラムは、当該制御プログラムの命令語のうち前記直接入出力機能に先立って行われる対象命令語の実行から、交換前の前記演算部および交換後の前記演算部のそれぞれによる前記対象命令語の実行に要する命令語実行時間の差分である補正時間待機した後、前記直接入出力機能を実行する、コントローラ。
【請求項６】
前記交換前の演算部よび前記交換後の演算部それぞれの前記命令語実行時間の計測結果を記憶する命令語実行時間記録用メモリをさらに備える請求項５に記載のコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、制御システム、エンジニアリングツール、およびコントローラに関する。
【背景技術】
【０００２】
コントローラは、プラントのセンサ等から入力される入力情報に基づいて、制御対象機器の制御に関わる制御プログラム（以下、ＰＯＵと言う）を実行し、ＰＯＵの実行結果を含む出力情報を制御対象機器に出力する。入力情報の入力方法および出力情報の出力方法には、一括入出力機能および直接入出力機能がある。一括入出力機能は、予め設定されたスキャン周期の先頭または最後に、入力用メモリからの入力情報の読み出しおよび出力用メモリへの出力情報の書き込みを行う。一方、直接入出力機能は、スキャン周期内の任意のタイミングにおいて、入力用メモリから入力情報を読み出しかつ当該読み出した入力情報に基づく演算により得られる出力情報を出力用メモリに書き込む。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−９１１０１号公報
【特許文献２】特開２００４−２６５０２１号公報
【特許文献３】特開平０３−２６９６２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、既設の制御システムにおいて、故障等によって、コントローラのＣＰＵ（Central  Processing  Unit）等の演算部のみが交換される場合がある。この場合、通常は、同じモデルのＣＰＵに交換されるが、部品の改廃等によって同じモデルのＣＰＵに交換することが困難なため、新しいモデルのＣＰＵで交換せざるを得ない場合がある。
【０００５】
しかしながら、新しいモデルのＣＰＵが、既設の制御システム内の他の機器との互換性を維持していたとしても、ＣＰＵの性能の向上によって、直接入出力機能を実行する際に、入力用メモリからの入力情報の読み出しおよび出力用メモリへの出力情報の書き込みのタイミングが微妙にずれてしまうことがある。このずれは、プラントのラインの工程やプラント内の各種機器に対する負荷のずれに繋がり、新しいモデルのＣＰＵへの交換を起因として、既設の制御システムに対して意図しない異常（例えば、プラント内の各種機器の故障）を引き起こす可能性がある。
【課題を解決するための手段】
【０００６】
実施形態の制御システムは、コントローラと、エンジニアリングツールと、を備える。コントローラは、入力用メモリと、出力用メモリと、演算部と、を備える。エンジニアリングツールは、記憶部と、補正部と、を備える。入力用メモリは、センサからの入力情報を記憶する。出力用メモリは、制御対象機器への出力情報を記憶する。演算部は、予め設定されたスキャン周期内の任意のタイミングにおいて、入力用メモリからの入力情報の読み出しまたは出力用メモリへの出力情報の書き込みを行う直接入出力機能を含む制御プログラムを実行する。記憶部は、演算部毎に、制御プログラムの命令語の実行に要する命令語実行時間を示す命令語実行時間データベースを記憶する。補正部は、命令語実行時間データベースに基づいて、交換前の演算部および交換後の演算部のそれぞれによる、直接入出力機能に先立って行われる命令語である対象命令語の命令語実行時間の差分である補正時間を算出し、対象命令語の実行から補正時間待機した後に直接入出力機能が実行されるように、制御プログラムを補正する。
【図面の簡単な説明】
【０００７】
【図１】図１は、第１の実施形態にかかる制御システムの全体構成の一例を示す図である。
【図２】図２は、第１の実施形態にかかるコントローラにより実行されるタスクの構成の一例を示す図である。
【図３】図３は、第１の実施形態にかかるコントローラにおけるタスクの実行するタイミングチャートの一例である。
【図４】図４は、第１の実施形態にかかるコントローラにおいて実行される制御プログラムで用いられる情報の一例を説明するための図である。
【図５】図５は、第１の実施形態にかかるコントローラにおいて実行される制御プログラムの一例を説明するための図である。
【図６】図６は、第１の実施形態にかかるコントローラにおける入力用メモリからの入力情報の読み出しおよび出力用メモリへの出力情報の書き込みのタイミングの一例を説明するための図である。
【図７】図７は、第１の実施形態にかかる制御システムにおける命令語の実行のタイミングの一例を示す図である。
【図８】図８は、第１の実施形態にかかるエンジニアリングツールによる制御プログラムのダウンロード処理の流れの一例を示すフローチャートである。
【図９】図９は、第２の実施形態にかかる制御システムの全体構成の一例を示す図である。
【図１０】図１０は、第２の実施形態にかかる制御システムにおける命令語実行時間の計測処理の一例を説明するための図である。
【図１１】図１１は、第２の実施形態にかかる制御システムにおける補正時間の算出処理に用いる補正時間算出処理画面の一例を示す図である。
【発明を実施するための形態】
【０００８】
以下、添付の図面を用いて、本実施形態にかかる制御システム、エンジニアリングツール、およびコントローラを適用した制御システムについて説明する。
【０００９】
（第１の実施形態）
図１は、第１の実施形態にかかる制御システムの全体構成の一例を示す図である。図１に示すように、本実施形態にかかる制御システムは、コントローラ２ａ〜２ｎと、ＨＭＩ（Human  Machine  Interface）１ａ〜１ｎと、エンジニアリングツール３と、を有する。コントローラ２ａ〜２ｎと、ＨＭＩ１ａ〜１ｎと、エンジニアリングツール３とは、ＬＡＮ（Local  Area  Network）５を介して通信可能に接続されている。
【００１０】
コントローラ２ａ〜２ｎは、制御システム（ＤＣＳ）用のコントローラである。具体的には、コントローラ２ａ〜２ｎは、プラントのセンサ等から入力される各種入力情報に基づいて制御プログラム（ＰＯＵ）を実行し、制御対象であるバルブ等の制御対象機器に対して、制御プログラムの実行結果を含む出力情報を出力することによって、制御対象機器を制御する。
【００１１】
ここで、制御プログラムは、プラントの特性に応じて、エンジニアリングツール３によって生成される。一般に、１つの制御システムには、複数のコントローラ２ａ〜２ｎが含まれる。以下の説明では、コントローラ２ａ〜２ｎを区別する必要がない場合には、単に、コントローラ２と記載する。
【００１２】
コントローラ２は、ＣＰＵ（Central  Processing  Unit）２０１と、ＲＡＭ（Random  Access  Memory）２０２と、ツールインタフェース２０３と、ＦＲＯＭ（Flash  Read  Only  Memory）２０４と、Ｉ／Ｏインタフェース２０５と、バス２０６と、を備えるコンピュータである。
【００１３】
ＲＡＭ２０２は、ＣＰＵ２０１が制御プログラム等の各種プログラムを実行する際に作業領域として用いられる。本実施形態では、ＲＡＭ２０２は、プラントのセンサ等から入力される入力情報を記憶する入力用メモリ２０２ａ、および制御対象機器に対して出力する出力情報を記憶する出力用メモリ２０２ｂを有する。ＦＲＯＭ２０４は、制御プログラム等の各種情報を記憶する記憶媒体である。
【００１４】
ＣＰＵ２０１は、コントローラ２全体を制御する制御部である。本実施形態では、ＣＰＵ２０１は、ＲＡＭ２０２を作業領域として用いて、ＦＲＯＭ２０４に記憶される制御プログラム等の各種プログラムを実行する。具体的には、ＣＰＵ２０１は、予め設定されたスキャン周期内の任意のタイミングにおいて、入力用メモリ２０２ａからの入力情報の読み出し、または出力用メモリ２０３ｂへの出力情報の書き込みを行う直接入出力機能を含む制御プログラムを実行する演算部の一例として機能する。
【００１５】
ツールインタフェース２０３は、他のコントローラ２や、ＨＭＩ１ａ〜１ｎ、エンジニアリングツール３との間で各種情報を送受信するためのインタフェースである。Ｉ／Ｏインタフェース２０５は、制御対象機器や、各種のセンサ等との間で各種情報（例えば、入力用メモリ２０２ａに記憶される入力情報、出力用メモリ２０２ｂに記憶される出力情報）を送受信するためのインタフェースである。バス２０６は、ＣＰＵ２０１、ＲＡＭ２０２、ツールインタフェース２０３、ＦＲＯＭ２０４、およびＩ／Ｏインタフェース２０５を互いに接続する。
【００１６】
ＨＭＩ１ａ〜１ｎは、コントローラ２で実行される処理の状況等を、オペレータが監視するために用いられる装置である。一般に、１つの制御システムには、複数のＨＭＩ１ａ〜１ｎが含まれる。以下の説明では、ＨＭＩ１ａ〜１ｎを区別する必要がない場合には、単に、ＨＭＩ１と記載する。
【００１７】
エンジニアリングツール３は、ＰＣ（Personal  Computer）等であり、コントローラ２において実行される制御プログラムやタスクの生成等を行う。エンジニアリングツール３は、当該エンジニアリングツール３のユーザであるエンジニアによって操作され、制御プログラム等を生成する。そして、エンジニアリングツール３により生成される制御プログラム等がＬＡＮ５を介してコントローラ２にダウンロードされることにより、コントローラ２がプラントを制御するための処理を実行可能となる。
【００１８】
具体的には、エンジニアリングツール３は、ＣＰＵ３０１と、ＲＡＭ３０２と、ＨＤＤ（Hard  Disk  Drive）３０３と、ＦＲＯＭ３０４と、ディスプレイ３０５と、入力装置３０６と、通信インタフェース３０７と、バス３０８と、を備える。通信インタフェース３０７は、コントローラ２、ＨＭＩ１、他のエンジニアリングツール３等の外部装置との間で各種情報を送受信するためのインタフェースである。
【００１９】
ＲＡＭ３０２は、ＣＰＵ３０１が各種のプログラムを実行する際に作業領域として用いられる。ＦＲＯＭ３０４は、ＣＰＵ３０１により実行されるプログラム等の各種情報を記憶する。ＨＤＤ３０３は、ＣＰＵ３０１により生成される制御プログラムやタスク等の各種情報を記憶する。本実施形態では、ＨＤＤ３０３は、命令語実行時間データベースを記憶する記憶部の一例として機能する。ここで、命令語実行時間データベースは、コントローラ２が有するＣＰＵ２０１毎に、制御プログラムが含む命令語の実行に要する時間である命令語実行時間を示すデータベースである。
【００２０】
ＣＰＵ３０１は、エンジニアリングツール３全体を制御する制御部である。本実施形態では、ＣＰＵ３０１は、ＲＡＭ３０２を作業領域として用いて、ＦＲＯＭ３０４に記憶される各種のプログラムを実行することによって、制御プログラムやタスクの生成等を行う。また、本実施形態では、ＣＰＵ３０１は、補正時間算出処理および制御プログラム補正処理を実行する。
【００２１】
補正時間算出処理は、ＨＤＤ３０３に記憶される命令語実行時間データベースに基づいて、コントローラ２の交換前のＣＰＵ２０１および交換後のＣＰＵ２０１のそれぞれによる対象命令語の命令語実行時間の差分を補正時間として算出する処理である。ここで、対象命令語は、制御プログラムが含む命令語のうち、直接入出力機能に先立って行われる命令語である。また、制御プログラム補正処理は、対象命令語の実行から補正時間待機した後に直接入出力機能が実行されるように、制御プログラムを補正する処理である。
【００２２】
ディスプレイ３０５は、ＬＣＤ（Liquid  Crystal  Display）等であり、各種情報を表示可能な表示部である。入力装置３０６は、マウスやキーボード等であり、エンジニアリングツール３のオペレータが各種情報を入力可能とする。通信インタフェース３０７は、ＨＭＩ１、コントローラ２、他のエンジニアリングツール３等との間で各種情報を送受信するためのインタフェースである。バス３０８は、ＣＰＵ３０１、ＲＡＭ３０２、ＨＤＤ３０３、ＦＲＯＭ３０４、ディスプレイ３０５、入力装置３０６、および通信インタフェース３０７を互いに接続する。
【００２３】
図２は、第１の実施形態にかかるコントローラにより実行されるタスクの構成の一例を示す図である。制御プログラムは、コントローラ２のタスクに配置されたタスクエントリにおいて実行される。エンジニアリングツール３のオペレータであるエンジニアは、コントローラ２のタスク毎に、その応答性（制御プログラムが実行されるまでの時間。言い換えると、スキャン周期。）を予め設定する。したがって、エンジニアは、スキャン周期を考慮して制御プログラムを生成する。
【００２４】
例えば、図２に示すように、コントローラ２がメインスキャンタスク（以下、ＭＳタスクと言う）およびハイスピードタスク（以下、ＨＳタスクと言う）を実行する場合、エンジニアは、それぞれのタスクのスキャン周期を考慮して制御プログラムを作成する。ここで、ＭＳタスクは、タスクの実行に許容される最大の時間（例えば、１０００ｍｓ。以下、最大許容実行時間と言う）が長いタスクである。一方、ＨＳタスクは、最大許容実行時間（例えば、１００ｍｓ）が短いタスクである。
【００２５】
そして、図２に示すように、ＭＳタスクのタスクエントリ１〜３では、制御プログラム１〜３を実行し、ＭＳタスクのタスクエントリ４は、空である（言い換えると、制御プログラムを実行しない）。ここで、タスクにおいて制御プログラムが実行される順番は、タスクエントリの昇順である。また、図２に示すように、ＨＳタスクのタスクエントリ１，２では、制御プログラム４，５を実行し、ＭＳタスクのタスクエントリ３，４は、空である。コントローラ２が有するＣＰＵ２０１がシングルコアである場合、タスク間に優先順位を設定し、当該優先順位に従ってタスクを実行する。例えば、ＣＰＵ２０１は、スキャン周期の短いタスク（例えば、ＨＳタスク）を優先的に実行する。
【００２６】
図３は、第１の実施形態にかかるコントローラにおけるタスクの実行するタイミングチャートの一例である。ここでは、ＭＳタスク、ＨＳタスク、Ｉ／Ｏ割込タスクの順に優先順位が高い例について説明する。図３に示すように、ＨＳタスクの実行中に、ＭＳタスクを実行するタイミングｔ１となった場合、ＣＰＵ２０１は、ＨＳタスクの実行を一時中断して、ＭＳタスクを実行する。また、図３に示すように、ＨＳタスクの実行中に、Ｉ／Ｏ割込タスクを実行するタイミングｔ２となった場合、ＣＰＵ２０１は、ＨＳタスクの実行を一時中断して、Ｉ／Ｏ割込タスクを実行する。また、図３に示すように、ＭＳタスクの実行中にＩ／Ｏ割込タスクを実行するタイミングｔ３となった場合、ＣＰＵ２０１は、ＭＳタスクの実行を一時中断して、Ｉ／Ｏ割込タスクを実行する。なお、各タスクのスキャン周期内において、各タスク内の全ての制御プログラムが実行された後は、各タスクは、待機状態となる。
【００２７】
図４は、第１の実施形態にかかるコントローラにおいて実行される制御プログラムで用いられる情報の一例を説明するための図である。制御プログラムで使用される情報（例えば、プラント内のセンサ等から入力される入力情報）は、制御プログラムの変数として扱われる。変数の実体は、コントローラ２内のメモリであり、当該メモリに変数を割り当てて（定義して）、制御プログラムにおいて使用される。そのメモリには、制御プログラムがローカルで使用するローカル変数、制御プログラム間で共有するグローバル変数がある。また、制御プログラムの設計には、ファンクションブロック（ＦＢ）と呼ばれるベンダまたはエンジニアによって予め用意される機能（関数）を用いる。
【００２８】
ファンクションブロックは、図４に示すように、入力情報が入力変数１および入力変数２として与えられると、所定の演算を行い、その演算結果である出力変数１を出力情報として出力する。例えば、ファンクションブロックが積演算である場合、ファンクションブロックは、入力変数１：「５」および入力変数２：「５」が与えられると、出力変数１：「２５」を出力する。ファンクションブロックに与える入力変数の数やファンクションブロックから出力する出力変数の数は任意に設定可能である。また、ファンクションブロックから出力される出力変数を、出力変数以外の変数に格納することも可能である。
【００２９】
図５は、第１の実施形態にかかるコントローラにおいて実行される制御プログラムの一例を説明するための図である。例えば、コントローラ２のタスクにおいて実行される制御プログラム（例えば、ＰＯＵ１）は、図５に示すように、ファンクションブロック２０ａ〜２０ｅを含む。コントローラ２のエンジニアリング（例えば、コントローラ２の登録、制御プログラムの設計、変数の割当）は、専用のツールを使用して、エンジニアリングツール３から制御プログラム（例えば、ＰＯＵ１）をダウンロードすることにより実現する。
【００３０】
図６は、第１の実施形態にかかるコントローラにおける入力用メモリからの入力情報の読み出しおよび出力用メモリへの出力情報の書き込みのタイミングの一例を説明するための図である。例えば、図６に示すように、ＭＳタスクを実行する場合、コントローラ２のＣＰＵ２０１は、ＭＳタスクのスキャン周期内の任意のタイミングにおいて、入力用メモリ２０２ａからの入力情報の読み出し、または読み出した入力情報に基づく演算によって得られる出力情報の出力用メモリ２０２ｂへの書き込みを行う直接入出力機能を含む制御プログラム（ＰＯＵ）を実行する。
【００３１】
ところで、制御プログラム内では、四則演算や各種の命令語が実行されるが、ＣＰＵ２０１の交換によって、当該ＣＰＵ２０１の性能が向上すると、制御プログラム内における四則演算や各種の命令語の実行に要する時間が短縮される場合がある。この場合、図６に示すように、直接入出力機能によって入力用メモリ２０２ａから入力情報を読み出すタイミングｔ４や、直接入出力機能によって出力用メモリ２０２ｂに出力情報を書き込むタイミングｔ５が早くなる。このタイミングｔ４やタイミングｔ５が早くなると、プラントのラインの工程やプラント内の各種機器に対する負荷のずれに繋がり、既設の分散制御システムに対して意図しない異常（例えば、プラント内の各種機器の故障）を引き起こす可能性がある。
【００３２】
そこで、本実施形態では、エンジニアリングツール３のＣＰＵ３０１が、ＨＤＤ３０３に記憶される命令語実行時間データベースに基づいて、コントローラ２の交換前のＣＰＵ２０１および交換後のＣＰＵ２０１のそれぞれによる対象命令語の命令語実行時間の差分を補正時間として算出する補正時間算出処理を実行する。さらに、エンジニアリングツール３のＣＰＵ３０１は、対象命令語の実行から補正時間待機した後に直接入出力機能が実行されるように、制御プログラムを補正する制御プログラム補正処理を実行する。
【００３３】
これにより、コントローラ２のＣＰＵ２０１が交換された場合でも、入力用メモリ２０２ａから入力情報が読み出されるタイミングおよび出力用メモリ２０２ｂに対して出力情報が書き込まれるタイミングが、コントローラ２のＣＰＵ２０１の交換前と変わらない。その結果、コントローラ２のＣＰＵ２０１の交換によって、プラントのラインの工程やプラント内の各種機器に対する負荷のずれが発生することを防止でき、ＣＰＵ２０１の交換を起因として、既設の制御システムに対して意図しない異常が発生することを防止できる。
【００３４】
図７は、第１の実施形態にかかる制御システムにおける命令語の実行のタイミングの一例を示す図である。例えば、コントローラ２のＣＰＵ２０１がＣＰＵ＿ＡＡＡからＣＰＵ＿ＢＢＢに交換された場合に、命令語１および命令語２による出力情報の出力用メモリ２０２ｂへ書き込みを待機する例について説明する。
【００３５】
エンジニアリングツール３のＣＰＵ３０１は、下記の表１に示す命令語実行時間データベースに基づいて、ＣＰＵ＿ＡＡＡ（交換前のＣＰＵ２０１）における命令語１（対象命令語）の命令語実行時間（１０ｍｓ）および命令語２（対象命令語）の命令語実行時間（１００ｍｓ）を特定する。また、ＣＰＵ３０１は、下記の表１に示す命令語実行時間データベースに基づいて、ＣＰＵ＿ＢＢＢ（交換後のＣＰＵ２０１）における命令語１の命令語実行時間（１０ｍｓ）および命令語２の命令語実行時間（５０ｍｓ）を特定する。
【表１】
2020046954.tif 000003
【００３６】
次いで、ＣＰＵ３０１は、ＣＰＵ＿ＡＡＡにおける命令語１の命令語実行時間（１０ｍｓ）と命令語２の命令語実行時間（１００ｍｓ）の合計時間（１１０ｍｓ）と、ＣＰＵ＿ＢＢＢにおける命令語１の命令語実行時間（１０ｍｓ）と命令語２の命令語実行時間（６０ｍｓ）の合計（６０ｍｓ）との差分（５０ｍｓ）を、補正時間として算出する。さらに、ＣＰＵ３０１は、命令語１および命令語２の実行から補正時間（５０ｍｓ）待機した後に直接入出力機能が実行される制御プログラムを作成する。
【００３７】
そして、エンジニアリングツール３のＣＰＵ３０１は、コントローラ２への制御プログラムのダウンロードを実行する。これにより、ＣＰＵ２０１は、図７に示すように、命令語１および命令語２の実行から補正時間（５０ｍｓ）だけ待機する。その後、コントローラ２のＣＰＵ２０１は、命令語１および命令語２による出力情報を出力用メモリ２０２ｂへ書き込む直接入出力機能を実行する。
【００３８】
これにより、コントローラ２のＣＰＵ２０１がＣＰＵ＿ＡＡＡからＣＰＵ＿ＢＢＢに交換された場合でも、出力用メモリ２０２ｂに対して出力情報が書き込まれるタイミングが、コントローラ２のＣＰＵ２０１がＣＰＵ＿ＡＡＡの場合と変わらない。その結果、コントローラ２のＣＰＵ２０１の交換によって、プラントのラインの工程やプラント内の各種機器に対する負荷のずれが発生することを防止でき、ＣＰＵ２０１の交換を起因として、既設の制御システムに対して意図しない異常が発生することを防止できる。
【００３９】
図８は、第１の実施形態にかかるエンジニアリングツールによる制御プログラムのダウンロード処理の流れの一例を示すフローチャートである。エンジニアリングツール３のＣＰＵ３０１は、ＨＤＤ３０３に記憶される命令語実行時間データベースを最新版にアップデートする（ステップＳ８０１）。ここで、最新版の命令語実行時間データベースは、少なくとも、コントローラ２の交換前のＣＰＵ２０１の命令語実行時間、およびコントローラ２の交換後のＣＰＵ２０１の命令語実行時間を含むものとする。
【００４０】
次に、ＣＰＵ３０１は、コントローラ２から、既設システム（コントローラ２に既にダウンロードされている制御プログラム）を読み込む（ステップＳ８０２）。そして、ＣＰＵ３０１は、最新版の命令実行時間データベースに基づいて、コントローラ２の交換前のＣＰＵ２０１による既設システムが含む対象命令語の命令語実行時間と、コントローラ２の交換後のＣＰＵ２０１による既設システムが含む対象命令語実行時間との差分を補正時間として算出する補正時間算出処理を実行する（ステップＳ８０３）。
【００４１】
さらに、ＣＰＵ３０１は、既設システムが含む対象命令語の実行から当該算出した補正時間待機した後に直接入出力機能を実行する新たな制御プログラムを作成する（ステップＳ８０４）。そして、ＣＰＵ３０１は、作成した新たな制御プログラムをコントローラ２に保存するか否かを判断する（ステップＳ８０５）。新たな制御プログラムをコントローラ２に保存する場合（ステップＳ８０５：Ｙｅｓ）、ＣＰＵ３０１は、ＣＰＵ２０１が新たなＣＰＵに交換されたコントローラ２に対して、新たな制御プログラムをダウンロードする（ステップＳ８０６）。
【００４２】
このように、第１の実施形態にかかる分散制御システムによれば、コントローラ２のＣＰＵ２０１の交換によって、プラントのラインの工程やプラント内の各種機器に対する負荷のずれが発生することを防止でき、ＣＰＵ２０１の交換を起因として、既設の制御システムに対して意図しない異常が発生することを防止できる。
【００４３】
（第２の実施形態）
本実施形態は、コントローラが、当該コントローラの交換前のＣＰＵおよび交換後のＣＰＵそれぞれによる命令語実行時間の計測結果を記憶する命令語実行時間記録用メモリを有し、エンジニアリングツールが、命令語実行時間記録用メモリに記憶される命令語実行時間、または命令語実行時間データベースに基づいて、補正時間を算出する例である。以下の説明では、第１の実施形態と同様の構成については説明を省略する。
【００４４】
図９は、第２の実施形態にかかる制御システムの全体構成の一例を示す図である。図９に示すように、本実施形態にかかるコントローラ９００ａ〜９００ｎは、ＣＰＵ９０１と、ＲＡＭ９０２と、ツールインタフェース２０３と、ＦＲＯＭ２０４と、Ｉ／Ｏインタフェース２０５と、バス２０６と、を備えるコンピュータである。以下、コントローラ９００ａ〜９００ｎを区別する必要がない場合には、単に、コントローラ９００と記載する。
【００４５】
ＣＰＵ９０１は、当該ＣＰＵ９０１による命令語実行時間を計測する計測部の一例として機能する。ＲＡＭ９０２は、命令語実行時間記録用メモリ９０２ａを有する。命令語実行時間記録用メモリ９０２ａは、交換前のＣＰＵ９０１および交換後のＣＰＵ９０１それぞれによる命令語実行時間を記憶する。
【００４６】
また、図９に示すように、本実施形態にかかるエンジニアリングツール９１０は、ＣＰＵ９１１と、ＲＡＭ３０２と、ＨＤＤ３０３と、ＦＲＯＭ３０４と、ディスプレイ３０５と、入力装置３０６と、通信インタフェース３０７と、バス３０８と、を有する。
【００４７】
ＣＰＵ９１１は、コントローラ９００の命令語実行時間記録用メモリ９０２ａから、交換前のＣＰＵ９０１および交換後のＣＰＵ９０１それぞれの命令語実行時間の計測結果を取得する。そして、ＣＰＵ９１１は、コントローラ９００から取得した命令語実行時間または命令語実行時間データベースに基づいて、補正時間を算出する補正時間算出処理を実行する。
【００４８】
これにより、交換前のＣＰＵ９０１および交換後のＣＰＵ９０１それぞれの実際の命令語実行時間に基づいて、補正時間を算出することが可能となるので、コントローラ９００のＣＰＵ９０１が交換された場合に、入力用メモリ２０２ａから入力情報が読み出されるタイミングおよび出力用メモリ２０２ｂに対して出力情報が書き込まれるタイミングのずれをより高精度に補正できる。
【００４９】
図１０は、第２の実施形態にかかる制御システムにおける命令語実行時間の計測処理の一例を説明するための図である。例えば、コントローラ９００のＣＰＵ９０１が命令語１および命令語２それぞれの命令語実行時間を計測する例について説明する。
【００５０】
コントローラ９００の命令語実行時間記録用メモリ９０２ａは、交換前のＣＰＵ９０１および交換後のＣＰＵ９０１それぞれについて、下記の表２に示すように、コントローラ９００で実行する制御プログラムの命令語毎に、命令語実行時間の平均、最大の命令語実行時間、最小の命令語実行時間、過去に計測した命令語実行時間の積算値、最新の命令語実行前時刻、および最新の命令語実行後時刻を記憶する。
【表２】
2020046954.tif 000004
【００５１】
コントローラ９００のＣＰＵ９０１は、命令語実行時間を記録する命令語実行時間記録機能がＯＮされている場合、予め設定されたスキャン周期で制御プログラム内の命令語１および命令語２が実行される度に、図１０に示すように、命令語１および命令語２それぞれを実行する前の時刻を最新の命令語実行前時刻として計測し、かつ命令語１および命令語２それぞれを実行した後の時刻を最新の命令語実行後時刻として計測する。
【００５２】
そして、ＣＰＵ９０１は、取得した最新の命令語実行前時刻および最新の命令語実行後時刻を、命令語実行時間記録用メモリ９０２ａに保存する命令語実行時間記録機能を実行する。命令語実行時間記録機能は、エンジニアリングツール９１０のユーザがＯＮまたはＯＦＦを選択し、その選択結果をコントローラ９００にダウンロードする。例えば、命令語実行時間記録機能は、制御システムの設計中や立ち上げ時にＯＮされ、プラントの稼働中はＯＦＦされることが好ましい。
【００５３】
また、ＣＰＵ９０１は、スキャン周期毎に、制御プログラムの実行後、命令語実行時間記録用メモリ９０２ａに記憶される最新の命令語実行前時刻および最新の命令語実行後時刻を用いて、命令語実行時間記録用メモリ９０２ａに記憶される命令語実行時間の平均、最大の命令語実行時間、および最小の命令語実行時間を更新する。
【００５４】
具体的には、ＣＰＵ９０１は、最新の命令語実行前時刻と最新の命令語実行後時刻の差分と、過去に計測した命令後実行時間の積算値とを加算した時間を、命令語実行時間を計測した回数によって除算した値を、命令語実行時間の平均として取得する。本実施形態では、ＣＰＵ９０１は、命令語実行時間記録機能がＯＮしている間のスキャン周期毎にインクリメントした回数を、命令語実行時間を計測した回数として取得する。
【００５５】
また、ＣＰＵ９０１は、最新の命令語実行前時刻と最新の命令語実行後時刻の差分が、命令語実行時間記録用メモリ９０２ａに記憶される最大の命令語実行時間より長い場合には、当該差分によって最大の命令語実行時間を更新する。また、ＣＰＵ９０１は、最新の命令語実行前時刻と最新の命令語実行後時刻の差分が、命令語実行時間記録用メモリ９０２ａに記憶される最小の命令語実行時間より短い場合には、当該差分によって最小の命令語実行時間を更新する。
【００５６】
エンジニアリングツール９１０は、コントローラ９００の命令語実行時間記録用メモリ９０２ａから、交換前のＣＰＵ９０１および交換後のＣＰＵ９０１のそれぞれの命令語実行時間の平均、最大の命令語実行時間、最小の命令語実行時間、過去に計測した命令語実行時間の積算値、最新の命令語実行前時刻、および最新の命令語実行後時刻を読み出すファイルエクスポート機能を有する。そして、ＣＰＵ９１１は、交換前のＣＰＵ９０１および交換後のＣＰＵ９０１それぞれの命令語実行時間の平均、最大の命令語実行時間、および最小の命令語実行時間のいずれかを命令語実行時間の計測結果として取得し、当該取得した命令語実行時間に基づいて補正時間を算出する補正時間算出処理を実行する。
【００５７】
図１１は、第２の実施形態にかかる制御システムにおける補正時間の算出処理に用いる補正時間算出処理画面の一例を示す図である。本実施形態では、エンジニアリングツール９１０のディスプレイ３０５は、補正時間算出処理が実行される場合、図１１に示すように、補正時間算出処理画面Ｇを表示する。
【００５８】
補正時間算出処理画面Ｇは、命令語実行時間データベースおよび命令語実行時間記録用メモリ９０２ａのうち、交換前のＣＰＵ９０１および交換後のＣＰＵ９０１のそれぞれの命令語実行時間の参照先を選択するための画面である。エンジニアリングツール９１０のＣＰＵ９１１は、補正時間算出処理画面Ｇの操作に応じて、命令語実行時間データベース、または命令語実行時間記録用メモリ９０２ａから読み出した命令語実行時間の計測結果の保存先を、交換前のＣＰＵ９０１および交換後のＣＰＵ９０１のそれぞれの命令語実行時間の参照先として選択する。本実施形態では、エンジニアリングツール９１０のＣＰＵ９１１は、コントローラ９００の命令語実行時間記録用メモリ９０２ａから命令語実行時間の計測結果を予め取得してＨＤＤ３０３に保存しておくものとする。そして、ＣＰＵ９１１は、選択した参照先に基づいて補正時間を算出する補正時間算出処理を実行する。
【００５９】
具体的には、補正時間算出処理画面Ｇは、図１１に示すように、交換前データベース選択ボタンＢ１、交換後データベース選択ボタンＢ２、交換前ファイル選択ボタンＢ３、交換後ファイル選択ボタンＢ４、交換前ＣＰＵ入力欄Ｂ５、交換後ＣＰＵ入力欄Ｂ６、更新前ファイル入力欄Ｂ７、更新後ファイル入力欄Ｂ８、ＯＫボタンＢ９、およびキャンセルボタンＢ１０を含む。ＯＫボタンＢ９は、補正時間算出処理の実行を指示するためのボタンである。キャンセルボタンＢ１０は、補正時間算出処理の実行の中止を指示するためのボタンである。
【００６０】
交換前データベース選択ボタンＢ１は、命令語実行時間データベースを、交換前のＣＰＵ９０１の命令語実行時間の参照先として選択するためのボタン（例えば、ラジオボタン）である。交換後データベース選択ボタンＢ２は、命令語実行時間データベースを、交換後のＣＰＵ９０１の命令語実行時間の参照先として選択するためのボタン（例えば、ラジオボタン）である。交換前ＣＰＵ入力欄Ｂ５は、交換前のＣＰＵ９０１を入力可能である。交換後ＣＰＵ入力欄Ｂ６は、交換後のＣＰＵ９０１を入力可能である。
【００６１】
交換前ファイル選択ボタンＢ３は、命令語実行時間記録用メモリ９０２ａを、交換前のＣＰＵ９０１の命令語実行時間の参照先として選択するためのボタン（例えば、ラジオボタン）である。交換後ファイル選択ボタンＢ４は、命令語実行時間記録用メモリ９０２ａを、交換後のＣＰＵ９０１の命令語実行時間の参照先として選択するためのボタン（例えば、ラジオボタン）である。更新前ファイル入力欄Ｂ７は、命令語実行時間記録用メモリ９０２ａに記憶される命令語実行時間のファイルのうち、交換前のＣＰＵ９０１の命令語実行時間のファイルの参照先を入力可能である。更新後ファイル入力欄Ｂ８は、命令語実行時間記録用メモリ９０２ａに記憶される命令語実行時間のファイルのうち、交換後のＣＰＵ９０１の命令語実行時間のファイルの参照先を入力可能である。
【００６２】
ＣＰＵ９１１は、交換前データベース選択ボタンＢ１が選択された場合、命令語実行時間データベースから、交換前ＣＰＵ入力欄Ｂ５に入力されたＣＰＵの命令語実行時間を、交換前のＣＰＵ９０１の命令語実行時間として取得する。一方、ＣＰＵ９１１は、交換前ファイル選択ボタンＢ３が選択された場合、命令語実行時間記録用メモリ９０２ａに記憶される命令語実行時間のファイルのうち、更新前ファイル入力欄Ｂ７に入力された参照先に記憶される命令語実行時間の計測結果を、交換前のＣＰＵ９０１の命令語実行時間として取得する。
【００６３】
また、ＣＰＵ９１１は、交換後データベース選択ボタンＢ２が選択された場合、命令語実行時間データベースから、交換後ＣＰＵ入力欄Ｂ６に入力されたＣＰＵの命令語実行時間を、交換後のＣＰＵ９０１の命令語実行時間として取得する。一方、ＣＰＵ９１１は、交換後ファイル選択ボタンＢ４が選択された場合、命令語実行時間記録用メモリ９０２ａに記憶される命令語実行時間のファイルのうち、更新後ファイル入力欄Ｂ８に入力された参照先に記憶される命令語実行時間の計測結果を、交換後のＣＰＵ９０１の命令語実行時間として取得する。
【００６４】
その後、ＣＰＵ９１１は、交換前のＣＰＵ９０１の命令語実行時間と、交換後のＣＰＵ９０１の命令語実行時間との差分を、補正時間として算出する補正時間算出処理を実行する。
【００６５】
このように、第２の実施形態にかかる制御システムによれば、コントローラ９００のＣＰＵ９０１の交換によって、プラントのラインの工程やプラント内の各種機器に対する負荷のずれの発生をより高精度に防止でき、ＣＰＵ９０１の交換を起因として、既設の制御システムに対して意図しない異常が発生することをより高精度に防止できる。
【００６６】
以上説明したとおり、第１，２の実施形態によれば、コントローラ２のＣＰＵ２０１の交換によって、プラントのラインの工程やプラント内の各種機器に対する負荷のずれが発生することを防止でき、ＣＰＵ２０１の交換を起因として、既設の制御システムに対して意図しない異常が発生することを防止できる。
【００６７】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００６８】
１ａ〜１ｎ  ＨＭＩ
２ａ〜２ｎ，９００ａ〜９００ｎ  コントローラ
３，９１０  エンジニアリングツール
２０１，３０１，９０１，９１１  ＣＰＵ
２０２，３０２，９０２  ＲＡＭ
２０２ａ  入力用メモリ
２０２ｂ  出力用メモリ
２０３  ツールインタフェース
２０４，３０４  ＦＲＯＭ
２０５  Ｉ／Ｏインタフェース
３０３  ＨＤＤ
３０５  ディスプレイ
３０６  入力装置
３０７  通信インタフェース
９０２ａ  命令語実行時間記録用メモリ
【図１】
2020046954.tif 000005
【図２】
2020046954.tif 000006
【図３】
2020046954.tif 000007
【図４】
2020046954.tif 000008
【図５】
2020046954.tif 000009
【図６】
2020046954.tif 000010
【図７】
2020046954.tif 000011
【図８】
2020046954.tif 000012
【図９】
2020046954.tif 000013
【図１０】
2020046954.tif 000014
【図１１】
2020046954.tif 000015