JP2020046954A - 制御システム、エンジニアリングツール、およびコントローラ - Google Patents
制御システム、エンジニアリングツール、およびコントローラ Download PDFInfo
- Publication number
- JP2020046954A JP2020046954A JP2018175001A JP2018175001A JP2020046954A JP 2020046954 A JP2020046954 A JP 2020046954A JP 2018175001 A JP2018175001 A JP 2018175001A JP 2018175001 A JP2018175001 A JP 2018175001A JP 2020046954 A JP2020046954 A JP 2020046954A
- Authority
- JP
- Japan
- Prior art keywords
- execution time
- command
- input
- memory
- cpu
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Programmable Controllers (AREA)
Abstract
【課題】コントローラの演算部の交換によって、プラントのラインの工程やプラント内の各種機器に対する負荷のずれが発生することを防止する。【解決手段】実施形態の制御システムは、コントローラ2a〜2nと、エンジニアリングツール3と、を備える。コントローラは、入力用メモリ202aと、出力用メモリ202bと、演算部と、を備える。エンジニアリングツール3は、記憶部と、補正部と、を備える。記憶部は、演算部毎に、制御プログラムの命令語の実行に要する命令語実行時間を示す命令語実行時間データベースを記憶する。補正部は、命令語実行時間データベースに基づいて、交換前の演算部および交換後の演算部のそれぞれによる、直接入出力機能に先立って行われる命令語である対象命令語の命令語実行時間の差分である補正時間を算出し、対象命令語の実行から補正時間待機した後に直接入出力機能が実行されるように、制御プログラムを補正する。【選択図】図1
Description
本発明の実施形態は、制御システム、エンジニアリングツール、およびコントローラに関する。
コントローラは、プラントのセンサ等から入力される入力情報に基づいて、制御対象機器の制御に関わる制御プログラム(以下、POUと言う)を実行し、POUの実行結果を含む出力情報を制御対象機器に出力する。入力情報の入力方法および出力情報の出力方法には、一括入出力機能および直接入出力機能がある。一括入出力機能は、予め設定されたスキャン周期の先頭または最後に、入力用メモリからの入力情報の読み出しおよび出力用メモリへの出力情報の書き込みを行う。一方、直接入出力機能は、スキャン周期内の任意のタイミングにおいて、入力用メモリから入力情報を読み出しかつ当該読み出した入力情報に基づく演算により得られる出力情報を出力用メモリに書き込む。
ところで、既設の制御システムにおいて、故障等によって、コントローラのCPU(Central Processing Unit)等の演算部のみが交換される場合がある。この場合、通常は、同じモデルのCPUに交換されるが、部品の改廃等によって同じモデルのCPUに交換することが困難なため、新しいモデルのCPUで交換せざるを得ない場合がある。
しかしながら、新しいモデルのCPUが、既設の制御システム内の他の機器との互換性を維持していたとしても、CPUの性能の向上によって、直接入出力機能を実行する際に、入力用メモリからの入力情報の読み出しおよび出力用メモリへの出力情報の書き込みのタイミングが微妙にずれてしまうことがある。このずれは、プラントのラインの工程やプラント内の各種機器に対する負荷のずれに繋がり、新しいモデルのCPUへの交換を起因として、既設の制御システムに対して意図しない異常(例えば、プラント内の各種機器の故障)を引き起こす可能性がある。
実施形態の制御システムは、コントローラと、エンジニアリングツールと、を備える。コントローラは、入力用メモリと、出力用メモリと、演算部と、を備える。エンジニアリングツールは、記憶部と、補正部と、を備える。入力用メモリは、センサからの入力情報を記憶する。出力用メモリは、制御対象機器への出力情報を記憶する。演算部は、予め設定されたスキャン周期内の任意のタイミングにおいて、入力用メモリからの入力情報の読み出しまたは出力用メモリへの出力情報の書き込みを行う直接入出力機能を含む制御プログラムを実行する。記憶部は、演算部毎に、制御プログラムの命令語の実行に要する命令語実行時間を示す命令語実行時間データベースを記憶する。補正部は、命令語実行時間データベースに基づいて、交換前の演算部および交換後の演算部のそれぞれによる、直接入出力機能に先立って行われる命令語である対象命令語の命令語実行時間の差分である補正時間を算出し、対象命令語の実行から補正時間待機した後に直接入出力機能が実行されるように、制御プログラムを補正する。
以下、添付の図面を用いて、本実施形態にかかる制御システム、エンジニアリングツール、およびコントローラを適用した制御システムについて説明する。
(第1の実施形態)
図1は、第1の実施形態にかかる制御システムの全体構成の一例を示す図である。図1に示すように、本実施形態にかかる制御システムは、コントローラ2a〜2nと、HMI(Human Machine Interface)1a〜1nと、エンジニアリングツール3と、を有する。コントローラ2a〜2nと、HMI1a〜1nと、エンジニアリングツール3とは、LAN(Local Area Network)5を介して通信可能に接続されている。
図1は、第1の実施形態にかかる制御システムの全体構成の一例を示す図である。図1に示すように、本実施形態にかかる制御システムは、コントローラ2a〜2nと、HMI(Human Machine Interface)1a〜1nと、エンジニアリングツール3と、を有する。コントローラ2a〜2nと、HMI1a〜1nと、エンジニアリングツール3とは、LAN(Local Area Network)5を介して通信可能に接続されている。
コントローラ2a〜2nは、制御システム(DCS)用のコントローラである。具体的には、コントローラ2a〜2nは、プラントのセンサ等から入力される各種入力情報に基づいて制御プログラム(POU)を実行し、制御対象であるバルブ等の制御対象機器に対して、制御プログラムの実行結果を含む出力情報を出力することによって、制御対象機器を制御する。
ここで、制御プログラムは、プラントの特性に応じて、エンジニアリングツール3によって生成される。一般に、1つの制御システムには、複数のコントローラ2a〜2nが含まれる。以下の説明では、コントローラ2a〜2nを区別する必要がない場合には、単に、コントローラ2と記載する。
コントローラ2は、CPU(Central Processing Unit)201と、RAM(Random Access Memory)202と、ツールインタフェース203と、FROM(Flash Read Only Memory)204と、I/Oインタフェース205と、バス206と、を備えるコンピュータである。
RAM202は、CPU201が制御プログラム等の各種プログラムを実行する際に作業領域として用いられる。本実施形態では、RAM202は、プラントのセンサ等から入力される入力情報を記憶する入力用メモリ202a、および制御対象機器に対して出力する出力情報を記憶する出力用メモリ202bを有する。FROM204は、制御プログラム等の各種情報を記憶する記憶媒体である。
CPU201は、コントローラ2全体を制御する制御部である。本実施形態では、CPU201は、RAM202を作業領域として用いて、FROM204に記憶される制御プログラム等の各種プログラムを実行する。具体的には、CPU201は、予め設定されたスキャン周期内の任意のタイミングにおいて、入力用メモリ202aからの入力情報の読み出し、または出力用メモリ203bへの出力情報の書き込みを行う直接入出力機能を含む制御プログラムを実行する演算部の一例として機能する。
ツールインタフェース203は、他のコントローラ2や、HMI1a〜1n、エンジニアリングツール3との間で各種情報を送受信するためのインタフェースである。I/Oインタフェース205は、制御対象機器や、各種のセンサ等との間で各種情報(例えば、入力用メモリ202aに記憶される入力情報、出力用メモリ202bに記憶される出力情報)を送受信するためのインタフェースである。バス206は、CPU201、RAM202、ツールインタフェース203、FROM204、およびI/Oインタフェース205を互いに接続する。
HMI1a〜1nは、コントローラ2で実行される処理の状況等を、オペレータが監視するために用いられる装置である。一般に、1つの制御システムには、複数のHMI1a〜1nが含まれる。以下の説明では、HMI1a〜1nを区別する必要がない場合には、単に、HMI1と記載する。
エンジニアリングツール3は、PC(Personal Computer)等であり、コントローラ2において実行される制御プログラムやタスクの生成等を行う。エンジニアリングツール3は、当該エンジニアリングツール3のユーザであるエンジニアによって操作され、制御プログラム等を生成する。そして、エンジニアリングツール3により生成される制御プログラム等がLAN5を介してコントローラ2にダウンロードされることにより、コントローラ2がプラントを制御するための処理を実行可能となる。
具体的には、エンジニアリングツール3は、CPU301と、RAM302と、HDD(Hard Disk Drive)303と、FROM304と、ディスプレイ305と、入力装置306と、通信インタフェース307と、バス308と、を備える。通信インタフェース307は、コントローラ2、HMI1、他のエンジニアリングツール3等の外部装置との間で各種情報を送受信するためのインタフェースである。
RAM302は、CPU301が各種のプログラムを実行する際に作業領域として用いられる。FROM304は、CPU301により実行されるプログラム等の各種情報を記憶する。HDD303は、CPU301により生成される制御プログラムやタスク等の各種情報を記憶する。本実施形態では、HDD303は、命令語実行時間データベースを記憶する記憶部の一例として機能する。ここで、命令語実行時間データベースは、コントローラ2が有するCPU201毎に、制御プログラムが含む命令語の実行に要する時間である命令語実行時間を示すデータベースである。
CPU301は、エンジニアリングツール3全体を制御する制御部である。本実施形態では、CPU301は、RAM302を作業領域として用いて、FROM304に記憶される各種のプログラムを実行することによって、制御プログラムやタスクの生成等を行う。また、本実施形態では、CPU301は、補正時間算出処理および制御プログラム補正処理を実行する。
補正時間算出処理は、HDD303に記憶される命令語実行時間データベースに基づいて、コントローラ2の交換前のCPU201および交換後のCPU201のそれぞれによる対象命令語の命令語実行時間の差分を補正時間として算出する処理である。ここで、対象命令語は、制御プログラムが含む命令語のうち、直接入出力機能に先立って行われる命令語である。また、制御プログラム補正処理は、対象命令語の実行から補正時間待機した後に直接入出力機能が実行されるように、制御プログラムを補正する処理である。
ディスプレイ305は、LCD(Liquid Crystal Display)等であり、各種情報を表示可能な表示部である。入力装置306は、マウスやキーボード等であり、エンジニアリングツール3のオペレータが各種情報を入力可能とする。通信インタフェース307は、HMI1、コントローラ2、他のエンジニアリングツール3等との間で各種情報を送受信するためのインタフェースである。バス308は、CPU301、RAM302、HDD303、FROM304、ディスプレイ305、入力装置306、および通信インタフェース307を互いに接続する。
図2は、第1の実施形態にかかるコントローラにより実行されるタスクの構成の一例を示す図である。制御プログラムは、コントローラ2のタスクに配置されたタスクエントリにおいて実行される。エンジニアリングツール3のオペレータであるエンジニアは、コントローラ2のタスク毎に、その応答性(制御プログラムが実行されるまでの時間。言い換えると、スキャン周期。)を予め設定する。したがって、エンジニアは、スキャン周期を考慮して制御プログラムを生成する。
例えば、図2に示すように、コントローラ2がメインスキャンタスク(以下、MSタスクと言う)およびハイスピードタスク(以下、HSタスクと言う)を実行する場合、エンジニアは、それぞれのタスクのスキャン周期を考慮して制御プログラムを作成する。ここで、MSタスクは、タスクの実行に許容される最大の時間(例えば、1000ms。以下、最大許容実行時間と言う)が長いタスクである。一方、HSタスクは、最大許容実行時間(例えば、100ms)が短いタスクである。
そして、図2に示すように、MSタスクのタスクエントリ1〜3では、制御プログラム1〜3を実行し、MSタスクのタスクエントリ4は、空である(言い換えると、制御プログラムを実行しない)。ここで、タスクにおいて制御プログラムが実行される順番は、タスクエントリの昇順である。また、図2に示すように、HSタスクのタスクエントリ1,2では、制御プログラム4,5を実行し、MSタスクのタスクエントリ3,4は、空である。コントローラ2が有するCPU201がシングルコアである場合、タスク間に優先順位を設定し、当該優先順位に従ってタスクを実行する。例えば、CPU201は、スキャン周期の短いタスク(例えば、HSタスク)を優先的に実行する。
図3は、第1の実施形態にかかるコントローラにおけるタスクの実行するタイミングチャートの一例である。ここでは、MSタスク、HSタスク、I/O割込タスクの順に優先順位が高い例について説明する。図3に示すように、HSタスクの実行中に、MSタスクを実行するタイミングt1となった場合、CPU201は、HSタスクの実行を一時中断して、MSタスクを実行する。また、図3に示すように、HSタスクの実行中に、I/O割込タスクを実行するタイミングt2となった場合、CPU201は、HSタスクの実行を一時中断して、I/O割込タスクを実行する。また、図3に示すように、MSタスクの実行中にI/O割込タスクを実行するタイミングt3となった場合、CPU201は、MSタスクの実行を一時中断して、I/O割込タスクを実行する。なお、各タスクのスキャン周期内において、各タスク内の全ての制御プログラムが実行された後は、各タスクは、待機状態となる。
図4は、第1の実施形態にかかるコントローラにおいて実行される制御プログラムで用いられる情報の一例を説明するための図である。制御プログラムで使用される情報(例えば、プラント内のセンサ等から入力される入力情報)は、制御プログラムの変数として扱われる。変数の実体は、コントローラ2内のメモリであり、当該メモリに変数を割り当てて(定義して)、制御プログラムにおいて使用される。そのメモリには、制御プログラムがローカルで使用するローカル変数、制御プログラム間で共有するグローバル変数がある。また、制御プログラムの設計には、ファンクションブロック(FB)と呼ばれるベンダまたはエンジニアによって予め用意される機能(関数)を用いる。
ファンクションブロックは、図4に示すように、入力情報が入力変数1および入力変数2として与えられると、所定の演算を行い、その演算結果である出力変数1を出力情報として出力する。例えば、ファンクションブロックが積演算である場合、ファンクションブロックは、入力変数1:「5」および入力変数2:「5」が与えられると、出力変数1:「25」を出力する。ファンクションブロックに与える入力変数の数やファンクションブロックから出力する出力変数の数は任意に設定可能である。また、ファンクションブロックから出力される出力変数を、出力変数以外の変数に格納することも可能である。
図5は、第1の実施形態にかかるコントローラにおいて実行される制御プログラムの一例を説明するための図である。例えば、コントローラ2のタスクにおいて実行される制御プログラム(例えば、POU1)は、図5に示すように、ファンクションブロック20a〜20eを含む。コントローラ2のエンジニアリング(例えば、コントローラ2の登録、制御プログラムの設計、変数の割当)は、専用のツールを使用して、エンジニアリングツール3から制御プログラム(例えば、POU1)をダウンロードすることにより実現する。
図6は、第1の実施形態にかかるコントローラにおける入力用メモリからの入力情報の読み出しおよび出力用メモリへの出力情報の書き込みのタイミングの一例を説明するための図である。例えば、図6に示すように、MSタスクを実行する場合、コントローラ2のCPU201は、MSタスクのスキャン周期内の任意のタイミングにおいて、入力用メモリ202aからの入力情報の読み出し、または読み出した入力情報に基づく演算によって得られる出力情報の出力用メモリ202bへの書き込みを行う直接入出力機能を含む制御プログラム(POU)を実行する。
ところで、制御プログラム内では、四則演算や各種の命令語が実行されるが、CPU201の交換によって、当該CPU201の性能が向上すると、制御プログラム内における四則演算や各種の命令語の実行に要する時間が短縮される場合がある。この場合、図6に示すように、直接入出力機能によって入力用メモリ202aから入力情報を読み出すタイミングt4や、直接入出力機能によって出力用メモリ202bに出力情報を書き込むタイミングt5が早くなる。このタイミングt4やタイミングt5が早くなると、プラントのラインの工程やプラント内の各種機器に対する負荷のずれに繋がり、既設の分散制御システムに対して意図しない異常(例えば、プラント内の各種機器の故障)を引き起こす可能性がある。
そこで、本実施形態では、エンジニアリングツール3のCPU301が、HDD303に記憶される命令語実行時間データベースに基づいて、コントローラ2の交換前のCPU201および交換後のCPU201のそれぞれによる対象命令語の命令語実行時間の差分を補正時間として算出する補正時間算出処理を実行する。さらに、エンジニアリングツール3のCPU301は、対象命令語の実行から補正時間待機した後に直接入出力機能が実行されるように、制御プログラムを補正する制御プログラム補正処理を実行する。
これにより、コントローラ2のCPU201が交換された場合でも、入力用メモリ202aから入力情報が読み出されるタイミングおよび出力用メモリ202bに対して出力情報が書き込まれるタイミングが、コントローラ2のCPU201の交換前と変わらない。その結果、コントローラ2のCPU201の交換によって、プラントのラインの工程やプラント内の各種機器に対する負荷のずれが発生することを防止でき、CPU201の交換を起因として、既設の制御システムに対して意図しない異常が発生することを防止できる。
図7は、第1の実施形態にかかる制御システムにおける命令語の実行のタイミングの一例を示す図である。例えば、コントローラ2のCPU201がCPU_AAAからCPU_BBBに交換された場合に、命令語1および命令語2による出力情報の出力用メモリ202bへ書き込みを待機する例について説明する。
エンジニアリングツール3のCPU301は、下記の表1に示す命令語実行時間データベースに基づいて、CPU_AAA(交換前のCPU201)における命令語1(対象命令語)の命令語実行時間(10ms)および命令語2(対象命令語)の命令語実行時間(100ms)を特定する。また、CPU301は、下記の表1に示す命令語実行時間データベースに基づいて、CPU_BBB(交換後のCPU201)における命令語1の命令語実行時間(10ms)および命令語2の命令語実行時間(50ms)を特定する。
次いで、CPU301は、CPU_AAAにおける命令語1の命令語実行時間(10ms)と命令語2の命令語実行時間(100ms)の合計時間(110ms)と、CPU_BBBにおける命令語1の命令語実行時間(10ms)と命令語2の命令語実行時間(60ms)の合計(60ms)との差分(50ms)を、補正時間として算出する。さらに、CPU301は、命令語1および命令語2の実行から補正時間(50ms)待機した後に直接入出力機能が実行される制御プログラムを作成する。
そして、エンジニアリングツール3のCPU301は、コントローラ2への制御プログラムのダウンロードを実行する。これにより、CPU201は、図7に示すように、命令語1および命令語2の実行から補正時間(50ms)だけ待機する。その後、コントローラ2のCPU201は、命令語1および命令語2による出力情報を出力用メモリ202bへ書き込む直接入出力機能を実行する。
これにより、コントローラ2のCPU201がCPU_AAAからCPU_BBBに交換された場合でも、出力用メモリ202bに対して出力情報が書き込まれるタイミングが、コントローラ2のCPU201がCPU_AAAの場合と変わらない。その結果、コントローラ2のCPU201の交換によって、プラントのラインの工程やプラント内の各種機器に対する負荷のずれが発生することを防止でき、CPU201の交換を起因として、既設の制御システムに対して意図しない異常が発生することを防止できる。
図8は、第1の実施形態にかかるエンジニアリングツールによる制御プログラムのダウンロード処理の流れの一例を示すフローチャートである。エンジニアリングツール3のCPU301は、HDD303に記憶される命令語実行時間データベースを最新版にアップデートする(ステップS801)。ここで、最新版の命令語実行時間データベースは、少なくとも、コントローラ2の交換前のCPU201の命令語実行時間、およびコントローラ2の交換後のCPU201の命令語実行時間を含むものとする。
次に、CPU301は、コントローラ2から、既設システム(コントローラ2に既にダウンロードされている制御プログラム)を読み込む(ステップS802)。そして、CPU301は、最新版の命令実行時間データベースに基づいて、コントローラ2の交換前のCPU201による既設システムが含む対象命令語の命令語実行時間と、コントローラ2の交換後のCPU201による既設システムが含む対象命令語実行時間との差分を補正時間として算出する補正時間算出処理を実行する(ステップS803)。
さらに、CPU301は、既設システムが含む対象命令語の実行から当該算出した補正時間待機した後に直接入出力機能を実行する新たな制御プログラムを作成する(ステップS804)。そして、CPU301は、作成した新たな制御プログラムをコントローラ2に保存するか否かを判断する(ステップS805)。新たな制御プログラムをコントローラ2に保存する場合(ステップS805:Yes)、CPU301は、CPU201が新たなCPUに交換されたコントローラ2に対して、新たな制御プログラムをダウンロードする(ステップS806)。
このように、第1の実施形態にかかる分散制御システムによれば、コントローラ2のCPU201の交換によって、プラントのラインの工程やプラント内の各種機器に対する負荷のずれが発生することを防止でき、CPU201の交換を起因として、既設の制御システムに対して意図しない異常が発生することを防止できる。
(第2の実施形態)
本実施形態は、コントローラが、当該コントローラの交換前のCPUおよび交換後のCPUそれぞれによる命令語実行時間の計測結果を記憶する命令語実行時間記録用メモリを有し、エンジニアリングツールが、命令語実行時間記録用メモリに記憶される命令語実行時間、または命令語実行時間データベースに基づいて、補正時間を算出する例である。以下の説明では、第1の実施形態と同様の構成については説明を省略する。
本実施形態は、コントローラが、当該コントローラの交換前のCPUおよび交換後のCPUそれぞれによる命令語実行時間の計測結果を記憶する命令語実行時間記録用メモリを有し、エンジニアリングツールが、命令語実行時間記録用メモリに記憶される命令語実行時間、または命令語実行時間データベースに基づいて、補正時間を算出する例である。以下の説明では、第1の実施形態と同様の構成については説明を省略する。
図9は、第2の実施形態にかかる制御システムの全体構成の一例を示す図である。図9に示すように、本実施形態にかかるコントローラ900a〜900nは、CPU901と、RAM902と、ツールインタフェース203と、FROM204と、I/Oインタフェース205と、バス206と、を備えるコンピュータである。以下、コントローラ900a〜900nを区別する必要がない場合には、単に、コントローラ900と記載する。
CPU901は、当該CPU901による命令語実行時間を計測する計測部の一例として機能する。RAM902は、命令語実行時間記録用メモリ902aを有する。命令語実行時間記録用メモリ902aは、交換前のCPU901および交換後のCPU901それぞれによる命令語実行時間を記憶する。
また、図9に示すように、本実施形態にかかるエンジニアリングツール910は、CPU911と、RAM302と、HDD303と、FROM304と、ディスプレイ305と、入力装置306と、通信インタフェース307と、バス308と、を有する。
CPU911は、コントローラ900の命令語実行時間記録用メモリ902aから、交換前のCPU901および交換後のCPU901それぞれの命令語実行時間の計測結果を取得する。そして、CPU911は、コントローラ900から取得した命令語実行時間または命令語実行時間データベースに基づいて、補正時間を算出する補正時間算出処理を実行する。
これにより、交換前のCPU901および交換後のCPU901それぞれの実際の命令語実行時間に基づいて、補正時間を算出することが可能となるので、コントローラ900のCPU901が交換された場合に、入力用メモリ202aから入力情報が読み出されるタイミングおよび出力用メモリ202bに対して出力情報が書き込まれるタイミングのずれをより高精度に補正できる。
図10は、第2の実施形態にかかる制御システムにおける命令語実行時間の計測処理の一例を説明するための図である。例えば、コントローラ900のCPU901が命令語1および命令語2それぞれの命令語実行時間を計測する例について説明する。
コントローラ900の命令語実行時間記録用メモリ902aは、交換前のCPU901および交換後のCPU901それぞれについて、下記の表2に示すように、コントローラ900で実行する制御プログラムの命令語毎に、命令語実行時間の平均、最大の命令語実行時間、最小の命令語実行時間、過去に計測した命令語実行時間の積算値、最新の命令語実行前時刻、および最新の命令語実行後時刻を記憶する。
コントローラ900のCPU901は、命令語実行時間を記録する命令語実行時間記録機能がONされている場合、予め設定されたスキャン周期で制御プログラム内の命令語1および命令語2が実行される度に、図10に示すように、命令語1および命令語2それぞれを実行する前の時刻を最新の命令語実行前時刻として計測し、かつ命令語1および命令語2それぞれを実行した後の時刻を最新の命令語実行後時刻として計測する。
そして、CPU901は、取得した最新の命令語実行前時刻および最新の命令語実行後時刻を、命令語実行時間記録用メモリ902aに保存する命令語実行時間記録機能を実行する。命令語実行時間記録機能は、エンジニアリングツール910のユーザがONまたはOFFを選択し、その選択結果をコントローラ900にダウンロードする。例えば、命令語実行時間記録機能は、制御システムの設計中や立ち上げ時にONされ、プラントの稼働中はOFFされることが好ましい。
また、CPU901は、スキャン周期毎に、制御プログラムの実行後、命令語実行時間記録用メモリ902aに記憶される最新の命令語実行前時刻および最新の命令語実行後時刻を用いて、命令語実行時間記録用メモリ902aに記憶される命令語実行時間の平均、最大の命令語実行時間、および最小の命令語実行時間を更新する。
具体的には、CPU901は、最新の命令語実行前時刻と最新の命令語実行後時刻の差分と、過去に計測した命令後実行時間の積算値とを加算した時間を、命令語実行時間を計測した回数によって除算した値を、命令語実行時間の平均として取得する。本実施形態では、CPU901は、命令語実行時間記録機能がONしている間のスキャン周期毎にインクリメントした回数を、命令語実行時間を計測した回数として取得する。
また、CPU901は、最新の命令語実行前時刻と最新の命令語実行後時刻の差分が、命令語実行時間記録用メモリ902aに記憶される最大の命令語実行時間より長い場合には、当該差分によって最大の命令語実行時間を更新する。また、CPU901は、最新の命令語実行前時刻と最新の命令語実行後時刻の差分が、命令語実行時間記録用メモリ902aに記憶される最小の命令語実行時間より短い場合には、当該差分によって最小の命令語実行時間を更新する。
エンジニアリングツール910は、コントローラ900の命令語実行時間記録用メモリ902aから、交換前のCPU901および交換後のCPU901のそれぞれの命令語実行時間の平均、最大の命令語実行時間、最小の命令語実行時間、過去に計測した命令語実行時間の積算値、最新の命令語実行前時刻、および最新の命令語実行後時刻を読み出すファイルエクスポート機能を有する。そして、CPU911は、交換前のCPU901および交換後のCPU901それぞれの命令語実行時間の平均、最大の命令語実行時間、および最小の命令語実行時間のいずれかを命令語実行時間の計測結果として取得し、当該取得した命令語実行時間に基づいて補正時間を算出する補正時間算出処理を実行する。
図11は、第2の実施形態にかかる制御システムにおける補正時間の算出処理に用いる補正時間算出処理画面の一例を示す図である。本実施形態では、エンジニアリングツール910のディスプレイ305は、補正時間算出処理が実行される場合、図11に示すように、補正時間算出処理画面Gを表示する。
補正時間算出処理画面Gは、命令語実行時間データベースおよび命令語実行時間記録用メモリ902aのうち、交換前のCPU901および交換後のCPU901のそれぞれの命令語実行時間の参照先を選択するための画面である。エンジニアリングツール910のCPU911は、補正時間算出処理画面Gの操作に応じて、命令語実行時間データベース、または命令語実行時間記録用メモリ902aから読み出した命令語実行時間の計測結果の保存先を、交換前のCPU901および交換後のCPU901のそれぞれの命令語実行時間の参照先として選択する。本実施形態では、エンジニアリングツール910のCPU911は、コントローラ900の命令語実行時間記録用メモリ902aから命令語実行時間の計測結果を予め取得してHDD303に保存しておくものとする。そして、CPU911は、選択した参照先に基づいて補正時間を算出する補正時間算出処理を実行する。
具体的には、補正時間算出処理画面Gは、図11に示すように、交換前データベース選択ボタンB1、交換後データベース選択ボタンB2、交換前ファイル選択ボタンB3、交換後ファイル選択ボタンB4、交換前CPU入力欄B5、交換後CPU入力欄B6、更新前ファイル入力欄B7、更新後ファイル入力欄B8、OKボタンB9、およびキャンセルボタンB10を含む。OKボタンB9は、補正時間算出処理の実行を指示するためのボタンである。キャンセルボタンB10は、補正時間算出処理の実行の中止を指示するためのボタンである。
交換前データベース選択ボタンB1は、命令語実行時間データベースを、交換前のCPU901の命令語実行時間の参照先として選択するためのボタン(例えば、ラジオボタン)である。交換後データベース選択ボタンB2は、命令語実行時間データベースを、交換後のCPU901の命令語実行時間の参照先として選択するためのボタン(例えば、ラジオボタン)である。交換前CPU入力欄B5は、交換前のCPU901を入力可能である。交換後CPU入力欄B6は、交換後のCPU901を入力可能である。
交換前ファイル選択ボタンB3は、命令語実行時間記録用メモリ902aを、交換前のCPU901の命令語実行時間の参照先として選択するためのボタン(例えば、ラジオボタン)である。交換後ファイル選択ボタンB4は、命令語実行時間記録用メモリ902aを、交換後のCPU901の命令語実行時間の参照先として選択するためのボタン(例えば、ラジオボタン)である。更新前ファイル入力欄B7は、命令語実行時間記録用メモリ902aに記憶される命令語実行時間のファイルのうち、交換前のCPU901の命令語実行時間のファイルの参照先を入力可能である。更新後ファイル入力欄B8は、命令語実行時間記録用メモリ902aに記憶される命令語実行時間のファイルのうち、交換後のCPU901の命令語実行時間のファイルの参照先を入力可能である。
CPU911は、交換前データベース選択ボタンB1が選択された場合、命令語実行時間データベースから、交換前CPU入力欄B5に入力されたCPUの命令語実行時間を、交換前のCPU901の命令語実行時間として取得する。一方、CPU911は、交換前ファイル選択ボタンB3が選択された場合、命令語実行時間記録用メモリ902aに記憶される命令語実行時間のファイルのうち、更新前ファイル入力欄B7に入力された参照先に記憶される命令語実行時間の計測結果を、交換前のCPU901の命令語実行時間として取得する。
また、CPU911は、交換後データベース選択ボタンB2が選択された場合、命令語実行時間データベースから、交換後CPU入力欄B6に入力されたCPUの命令語実行時間を、交換後のCPU901の命令語実行時間として取得する。一方、CPU911は、交換後ファイル選択ボタンB4が選択された場合、命令語実行時間記録用メモリ902aに記憶される命令語実行時間のファイルのうち、更新後ファイル入力欄B8に入力された参照先に記憶される命令語実行時間の計測結果を、交換後のCPU901の命令語実行時間として取得する。
その後、CPU911は、交換前のCPU901の命令語実行時間と、交換後のCPU901の命令語実行時間との差分を、補正時間として算出する補正時間算出処理を実行する。
このように、第2の実施形態にかかる制御システムによれば、コントローラ900のCPU901の交換によって、プラントのラインの工程やプラント内の各種機器に対する負荷のずれの発生をより高精度に防止でき、CPU901の交換を起因として、既設の制御システムに対して意図しない異常が発生することをより高精度に防止できる。
以上説明したとおり、第1,2の実施形態によれば、コントローラ2のCPU201の交換によって、プラントのラインの工程やプラント内の各種機器に対する負荷のずれが発生することを防止でき、CPU201の交換を起因として、既設の制御システムに対して意図しない異常が発生することを防止できる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1a〜1n HMI
2a〜2n,900a〜900n コントローラ
3,910 エンジニアリングツール
201,301,901,911 CPU
202,302,902 RAM
202a 入力用メモリ
202b 出力用メモリ
203 ツールインタフェース
204,304 FROM
205 I/Oインタフェース
303 HDD
305 ディスプレイ
306 入力装置
307 通信インタフェース
902a 命令語実行時間記録用メモリ
2a〜2n,900a〜900n コントローラ
3,910 エンジニアリングツール
201,301,901,911 CPU
202,302,902 RAM
202a 入力用メモリ
202b 出力用メモリ
203 ツールインタフェース
204,304 FROM
205 I/Oインタフェース
303 HDD
305 ディスプレイ
306 入力装置
307 通信インタフェース
902a 命令語実行時間記録用メモリ
Claims (6)
- コントローラは、
センサからの入力情報を記憶する入力用メモリと、
制御対象機器への出力情報を記憶する出力用メモリと、
予め設定されたスキャン周期内の任意のタイミングにおいて、前記入力用メモリからの前記入力情報の読み出しまたは前記出力用メモリへの前記出力情報の書き込みを行う直接入出力機能を含む制御プログラムを実行する演算部と、を備え、
エンジニアリングツールは、
前記演算部毎に、前記制御プログラムの命令語の実行に要する命令語実行時間を示す命令語実行時間データベースを記憶する記憶部と、
前記命令語実行時間データベースに基づいて、交換前の前記演算部および交換後の前記演算部のそれぞれによる、前記直接入出力機能に先立って行われる前記命令語である対象命令語の前記命令語実行時間の差分である補正時間を算出し、前記対象命令語の実行から前記補正時間待機した後に前記直接入出力機能が実行されるように、前記制御プログラムを補正する補正部と、
を備える制御システム。 - 前記コントローラは、さらに、前記交換前の演算部よび前記交換後の演算部それぞれの前記命令語実行時間の計測結果を記憶する命令語実行時間記録用メモリ、を備え、
前記補正部は、さらに、前記命令語実行時間記録用メモリに記憶される前記命令語実行時間、または前記命令語実行時間データベースに基づいて、前記補正時間を算出する請求項1に記載の制御システム。 - センサからの入力情報を記憶する入力用メモリおよび制御対象機器への出力情報を記憶する出力用メモリを備えるコントローラが有する演算部毎に、予め設定されたスキャン周期内の任意のタイミングにおいて前記入力用メモリからの前記入力情報の読み出しまたは前記出力用メモリへの前記出力情報の書き込みを行う直接入出力機能を含む制御プログラムの命令語の実行に要する命令語実行時間を示す命令語実行時間データベースを記憶する記憶部と、
前記命令語実行時間データベースに基づいて、交換前の前記演算部および交換後の前記演算部のそれぞれによる、前記直接入出力機能に先立って行われる前記命令語である対象命令語の前記命令語実行時間の差分である補正時間を算出し、前記対象命令語の実行から前記補正時間待機した後に前記直接入出力機能が実行されるように、前記制御プログラムを補正する補正部と、
を備えるエンジニアリングツール。 - 前記補正部は、コントローラが有する命令語実行時間記録用メモリに記憶される、前記交換前の演算部よび前記交換後の演算部それぞれの前記命令語実行時間の計測結果、または前記命令語実行時間データベースに基づいて、前記補正時間を算出する請求項3に記載のエンジニアリングツール。
- センサからの入力情報を記憶する入力用メモリと、
制御対象機器への出力情報を記憶する出力用メモリと、
予め設定されたスキャン周期内の任意のタイミングにおいて、前記入力用メモリからの前記入力情報の読み出しまたは前記出力用メモリへの前記出力情報の書き込みを行う直接入出力機能を含む制御プログラムを実行する演算部と、を備え、
前記制御プログラムは、当該制御プログラムの命令語のうち前記直接入出力機能に先立って行われる対象命令語の実行から、交換前の前記演算部および交換後の前記演算部のそれぞれによる前記対象命令語の実行に要する命令語実行時間の差分である補正時間待機した後、前記直接入出力機能を実行する、コントローラ。 - 前記交換前の演算部よび前記交換後の演算部それぞれの前記命令語実行時間の計測結果を記憶する命令語実行時間記録用メモリをさらに備える請求項5に記載のコントローラ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018175001A JP2020046954A (ja) | 2018-09-19 | 2018-09-19 | 制御システム、エンジニアリングツール、およびコントローラ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018175001A JP2020046954A (ja) | 2018-09-19 | 2018-09-19 | 制御システム、エンジニアリングツール、およびコントローラ |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2020046954A true JP2020046954A (ja) | 2020-03-26 |
Family
ID=69901522
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018175001A Pending JP2020046954A (ja) | 2018-09-19 | 2018-09-19 | 制御システム、エンジニアリングツール、およびコントローラ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2020046954A (ja) |
-
2018
- 2018-09-19 JP JP2018175001A patent/JP2020046954A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9618922B2 (en) | CPU of PLC, system program for PLC, and recording medium storing system program for PLC | |
US8977534B2 (en) | Controller support apparatus, controller support program executed on the apparatus, storage medium storing the program, and method of estimating execution time of control program | |
JP5218585B2 (ja) | 制御装置およびシステムプログラム | |
JP6406466B1 (ja) | 制御装置、制御方法および制御プログラム | |
WO2018186358A1 (ja) | 制御装置、制御方法および制御プログラム | |
KR102294177B1 (ko) | 컨트롤 장치 | |
EP2533114B1 (en) | Controller support device, controller support program to be executed in said device, recording medium storing said program, and method for estimating execution duration of control program | |
TWI534569B (zh) | 控制裝置、開發裝置,及開發程式 | |
CN111919182B (zh) | Nc程序变换处理方法以及加工处理系统 | |
JP5785501B2 (ja) | ラダープログラム作成装置 | |
CN110114732B (zh) | 可编程控制器、管理装置和控制系统 | |
JP2018132829A (ja) | 制御装置 | |
CN111095138B (zh) | 控制装置、控制装置的控制方法、信息处理程序及记录介质 | |
JP7085305B2 (ja) | コントロールシステム及びコントロール方法 | |
JP6874706B2 (ja) | アプリケーションプログラムを生成する方法、装置、プログラム | |
JP2017142794A (ja) | プログラマブルコントローラシステム、そのコントローラ、支援装置、hci装置、二重化コントローラシステム | |
US10126726B2 (en) | Apparatus and method for generating program | |
WO2020075351A1 (ja) | コントロール装置 | |
JP2020046954A (ja) | 制御システム、エンジニアリングツール、およびコントローラ | |
JP4786164B2 (ja) | プラント監視制御システム | |
JP6396084B2 (ja) | エンジニアリング装置、エンジニアリングシステム、およびダウンロード処理方法 | |
CN111919181B (zh) | 控制装置 | |
JP2018022288A (ja) | 制御装置、制御システム及び制御方法 | |
JP2020198674A (ja) | スレーブユニット、及びサーボ駆動システム | |
WO2019207679A1 (ja) | モニタ支援装置、プログラマブルロジックコントローラ、モニタ支援方法およびモニタ支援プログラム |