以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
<1.システム構成例>
まず、図1を参照して、信頼性の検証対象であるオープン系プロセス制御システムの構成について説明する。なお、図1は、本実施形態に係るオープン系プロセス制御システム1の構成を示す説明図である。図1では、プロセス制御システム1稼働前の、テストプログラム実行時の状態を示している。
24時間操業で高い信頼性が要求される製鉄業等におけるプロセス制御システム1は、これまで重電メーカ専用のコンピュータやネットワークで構成されてきた。近年では、仕様が公開された汎用品のコンピュータ等の機器を利用したオープン系システムであるプロセス制御システムの導入が進んでいる。オープン系システムは、オープン標準に準拠したソフトウェアや、それを使用しているコンピュータで構成されるオープン系コンピュータシステムであって、コンピュータの基本的な制御を行うオペレーティングシステム(OS)と、各業務・制御処理を行うアプリケーションソフトウェア(APソフトウェア)と、これらの間に位置する共通的なソフトウェアであるミドルウェアとを具備する。オープン系システムをプロセス制御分野に応用したオープン系プロセス制御システムは、例えば制御用サーバと外部機器とを汎用のネットワークを介して接続することで構成することができる。ここで、外部機器としては、電気計装制御装置(Programmable Logic Controller、以下「PLC」とする。)、データベースサーバ、他工程の制御サーバなどが対象となる。
本実施形態に係るプロセス制御システム1の一例を図1に示すと、プロセス制御システム1は、制御サーバ100およびディスク200と、情報処理端末300と、PLC400とがネットワーク10を介して接続されて構成されている。
制御サーバ100は、プロセス制御を行うためのアプリケーションプログラム(APソフトウェア)を実行するための機器である。制御サーバ100は、図1に示すように、アプリケーションソフトウェア110と、ミドルウェア120と、OS130と、CPU140と、ネットワーク部150とから構成される。
アプリケーションソフトウェア110は、APソフトウェアを実行する階層であり、各行程における業務処理や制御処理を行う。APソフトウェアは、制御サーバ100と接続された記憶装置であるディスク200に格納されており、実行指示を受けた機能に対応するAPソフトウェアをディスク200から取得して、アプリケーションソフトウェア110にインストールして実行する。
また、本実施形態に係るプロセス制御システム1の信頼性評価においては、実際に稼動するAPソフトウェアの代わりに、当該APソフトウェアを実行したときと同様の負荷を当該システム1に掛ける耐久テストプログラム112を実行する。耐久テストプログラム112は、システム稼働前のテスト時にアプリケーションソフトウェア110にインストールして使用される。また、アプリケーションソフトウェア110には、耐久テストプログラム112の実行開始および終了指示を行うテスト開始/終了指示部114が設けられる。テスト開始/終了指示部114は、ユーザが制御サーバ100を操作するための情報処理端末300から入力したテスト開始指示に基づいて耐久テストプログラム112を実行し、情報処理端末300から入力されたテスト終了指示に基づいて耐久テストプログラム112の実行を終了する。
ミドルウェア120は、アプリケーションソフトウェア110とOS130との間に位置する共通的なソフトウェアを実行する階層であり、OS130はコンピュータの基本的な制御を行う階層である。また、CPU140は、制御サーバ100で実行されるソフトウェアの演算処理を行う演算処理装置として機能し、また制御サーバ100の制御処理を行う制御装置として機能する。ネットワーク150は、ネットワーク10を接続されたインタフェースであり、制御サーバ100と情報処理端末300、PLC400とを通信可能に接続する。
ディスク200は、情報を記憶する記憶部であり、例えば上述したようにAPソフトウェアであるAPファイル210や、耐久テストプログラム112の実行結果であるテストファイル220等を記憶する。ディスク200は、制御サーバ100と通信可能に接続されている。これにより、制御サーバ100は、必要に応じて、ディスク200に格納された情報を取得できるとともに、生成した情報をディスク200に格納することができる。なお、図1に示すように、耐久テストプログラム112の実行結果を確認するテスト確認端末500を、ディスク200のテストファイル220を読み取り可能に接続することもできる。これにより、ユーザは、テスト確認端末500により耐久テストプログラム112の実行結果を確認することが可能となる。
情報処理端末300は、制御サーバ100で実行される処理を操作、確認するための端末であり、例えば汎用のパーソナルコンピュータ等を用いることができる。情報処理端末300の具体的構成例については後述する(図9)。情報処理端末300は、ネットワーク10を介して、ユーザから入力された情報を制御サーバ100へ出力したり制御サーバ100から出力された情報を受信してユーザに通知したりする。
PLC400は、制御対象である機械や装置のシーケンス制御を行うための電気計装制御装置である。PLC400を用いることで、制御回路の簡略化や自動化、高速処理を実現することができ、さらにはリアルタイムで制御対象のデータを取得することができる。PLC400で得られたデータは、ネットワーク10を介して例えばサーバ100へ出力され、サーバ100にて解析されたりディスク200に保存されたりすることで、制御対象の稼動状況の確認やトラブルの検知等に活用することができる。
<2.耐久テスト>
本実施形態では、プロセス制御システム1を構成する制御サーバ100に、当該システム1の信頼性を評価する耐久テストプログラム112をインストールして実行する。このとき、稼動前のプロセス制御システム1は、図1に示すようにネットワーク10を介して各機器100〜400が接続された状態であり、プロセス制御のためのAPソフトウェアがインストールされていない状態とする。本実施形態に係る耐久テストプログラム112を実行することで、下記機器100〜400の性能と、これらの間で伝送される情報の通信性能とが評価される。
すなわち、図1の破線で囲む制御サーバ100、ディスク200、情報処理端末300およびネットワーク10をテスト対象として、耐久テストプログラム112の実行により実稼動と同様の負荷が掛かるように各機器100〜300での処理、およびネットワーク10を介した通信処理が行われる。そして、耐久テストプログラム112の実行結果が正しいか否かに基づいて、ユーザはプロセス制御システム1の信頼性を判定することができる。
[2−1.耐久テストプログラム構成]
図2〜図5に本実施形態に係る耐久テストプログラム112により行われる耐久テストの内容を詳細に説明する。なお、図2は、本実施形態に係る耐久テストプログラム112のプログラム構成を示す説明図である。図3は、本実施形態に係るファイル非同期耐久テストのシナリオ構成を示す説明図である。図4は、本実施形態に係る下位伝送非同期耐久テストのシナリオ構成を示す説明図である。図5は、本実施形態に係る定周期起動非同期耐久テストのシナリオ構成を示す説明図である。
本実施形態に係る耐久テストプログラム112は、制御サーバ100のテスト開始/終了指示部114により実行される。テスト開始/終了指示部114は、例えば図1に示すテスト確認端末500のテスト指示画面から送信されるテスト開始指示に基づいて耐久テストプログラムの実行を開始する。図2のテスト制御タスク(TASK00)は、テスト開始/終了指示部114により実行されるタスクである。テスト開始/終了指示部114は、テスト開始指示を受信すると、テストシナリオをディスク200より読み込み、耐久テストプログラムを実行する。
本実施形態に係る耐久テストプログラムは、図2に示すように、ファイル非同期耐久テストプログラム、下位伝送非同期耐久テストプログラムおよび定周期起動非同期耐久テストプログラムの3つのテストプログラムからなる。
ファイル非同期耐久テストプログラムは、1つのファイルに対して複数のテスト実行タスクからの読み書き要求がある状況を想定して構成されたテストプログラムである。これは、例えば、高炉の番締め処理等のようにAPソフトウェアを多重走行させるときに生じるファイルの多重排他処理を想定している。複数のAPソフトウェアが多重走行しているとき、これらは必ずしも同期して走行していない。このため、例えばあるファイルへの書き込みに処理が集中して、排他解除待ち状態が続いてしまうことがある。すなわち、ファイル非同期耐久テストプログラムの実行により、APソフトウェアの多重走行時に生じるファイルの多重排他処理がタイムアウトすることなく実行できるか否かを評価することができる。
下位伝送非同期耐久テストプログラムは、テスト実行タスクによりプロセス制御システムを構成する機器間でのデータの送受信処理を想定して構成されたテストプログラムである。これは、例えば、連続鋳造や精整ライン等での複数論理回線での通信のゆらぎを想定している。複数のセンサや機器間での通信処理があるとき、データの送信から受信までに要する時間が所定時間を超えると、リアルタイム性の要求されるプロセス制御システム1の稼動に影響し、システムダウンにつながることもある。下位伝送非同期耐久テストプログラムの実行により、ネットワーク10を含めた機器間の通信性能を評価することができる。
定周期起動非同期耐久テストプログラムは、耐久テストプログラムを実行する制御サーバ100において実行されるテスト実行タスクにより所定のファイルを定周期で起動するタイマー処理を想定して構成されたテストプログラムである。これは、例えば熱間圧延ラインにおけるDDC(Direct Digital Control)等での複数ライマー周期処理のゆらぎを想定している。定周期起動非同期耐久テストプログラムを実行することにより、起動周期の異なる複数のテスト実行タスクが実行されたときに、正しく各処理を実行できているか否かを評価することができる。
なお、本実施形態では耐久テストプログラムを上記3つのシステム要件モデルを反映したテストプログラムから構成したが、本発明はかかる例に限定されない。耐久テストプログラムは、例えば上記3つのテストプログラムのうち少なくとも1つから構成してもよく、さらにプロセス制御システム1の実稼動時に実行されるAPソフトウェアの構成に基づいて設定された新たなテストプログラムを含めて構成してもよい。
(ファイル非同期耐久テストプログラム)
ファイル非同期耐久テストプログラムについて詳細に説明すると、本実施形態に係るファイル非同期耐久テストプログラムは、第1のテスト実行タスク群(TSK001〜TSK15A、TSK995、TSK998)からなる。
テスト実行タスク(TAK001〜TSK15A)は、複数のファイルに対する読み書きを行う処理である。各テスト実行タスク(TAK001〜TSK15A)には、図3に示すように、起動周期およびファイル更新レコードNoが設定されている。起動周期は、当該テスト実行タスクを起動する周期を表し、ファイル更新レコードNoは、当該テスト実行タスクが読み出すファイルの特定レコードを表している。
まず、各テスト実行タスク(TAK001〜TSK15A)は、各タスクのローカルファイル(fil001〜fil15A)に含まれる全レコードの全データをインクリメントする。また、共有メモリグローバル割り付けにて割り付けられた各実行タスク(TAK001〜TSK15A)のグローバルファイル(fil001〜fil15A)の全レコードの全データをインクリメントする。
次いで、各テスト実行タスク(TAK001〜TSK15A)は、相対編成ファイル(fil991)のファイル更新レコードNOで示されるレコードの全データをインクリメントする。相対編成ファイルは、ディスク200に記憶されているデータであり、1〜n(nは整数)個のレコードから構成されるファイルである。相対編成ファイル(fil991)は共用オープン状態であり、レコード単位排他ロックされる。同様に、各テスト実行タスク(TAK001〜TSK15A)は、相対編成ファイル(fil992)のファイル更新レコードNOで示されるレコードの全データをインクリメントする。
さらに、各テスト実行タスク(TAK001〜TSK15A)は、インデックスファイル(fil993)のキー「ABCDxxxx」(xxxxは起動回数を100で割った余り)のレコードの全データをインクリメントする。インデックスファイルは、ディスク200に記憶されているデータであり、所定のキーと、当該キーに対応するレコードとから構成される。インデックスファイルは、全排他状態でオープンされる。
その後、各テスト実行タスク(TAK001〜TSK15A)は、サイクリックファイル(fil994)に1レコードをインクリメントしてサイクリックファイル(fil994)を更新する。サイクリックファイルは、ディスク200に記憶されているデータであり、データ開始レコードおよびデータ終了レコードを指定する情報を保持している。
テスト実行タスク(TAK995)は、サイクリックファイル(fil994)から1レコードをデクリメントする処理を行う。テスト実行タスク(TAK995)は、サイクリックファイル(fil994)から1レコードをデクリメントする処理を実行すると、相対編成ファイル(fil995)のカウント値を1増加する。
テスト実行タスク(TAK998)は、バックグラウンドで実行されている支援機能を想定して設定される処理であり、相対編成ファイル(f99801〜f99864)を全てオープンし、オープンした相対編成ファイル(f99801〜f99864)の全レコードの全データをインクリメントする。
ファイル非同期耐久テストプログラムでは、上記のテスト実行タスク(TSK001〜TSK15A、TSK995、TSK998)の起動周期を異なるように設定して多重走行させる。これにより、テスト実行タスク(TSK001〜TSK15A、TSK995、TSK998)が非同期に実行されるようになり、ファイルへのアクセスが集中するピーク負荷が掛かる状況を生成することができる。
(下位伝送非同期耐久テストプログラム)
次に、下位伝送非同期耐久テストプログラムについて詳細に説明すると、本実施形態に係る下位伝送非同期耐久テストプログラムは、第2のテスト実行タスク群(TSKA01〜TSKA5A、TSKB01〜TSKB5A)からなる。
第2のテスト実行タスク群において、テスト実行タスク(TSKA01〜TSKA5A)は制御サーバ100にて実行される処理である。テスト実行タスク(TSKA01〜TSKA5A)は、図4に示すように、起動周期と、論理回線NOと、メッセージNOとが設定されている。起動周期は、当該テスト実行タスクを起動する周期を表す。論理回線NOは、データを送信する相手機器を特定するための情報であり、制御サーバ100がネットワーク10を介して通信する1つの情報処理端末300あるいはPLC400を特定している。メッセージNOは、相手機器に送信するメッセージ内容を特定するための情報である。一方、テスト実行タスク(TSKB01〜TSKB5A)は、情報処理端末300にて実行される処理である。
まず、各テスト実行タスク(TSKA01〜TSKA5A)は、各タスクのローカルファイル(fila01〜fila5a)に含まれる全レコードの全データをインクリメントする。そして、相対編成ファイル(fil992)の全データを読み出す。このとき、相対編成ファイル(fil992)は共有オープン状態である。その後、各テスト実行タスク(TSKA01〜TSKA5A)は、ネットワークを介して所定のデータ量のデータを相手機器へ送信する。
一方、テスト実行タスク(TSKB01〜TSKB5A)は、ネットワーク10を介して制御サーバ100から送信されたデータを受信する。そして、各タスクのローカルファイル(fila01〜fila5a)に含まれる全レコードの全データをインクリメントする。
下位伝送非同期耐久テストプログラムでは、上記のテスト実行タスク(TSKA01〜TSKA5A、TSKB01〜TSKB5A)の起動周期を異なるように設定して多重走行させる。これにより、制御サーバ100と情報処理端末300あるいはPLC400との通信処理が非同期に複数実行されるようになり、通信処理が集中するピーク負荷が掛かる状況を生成することができる。
(定周期起動非同期耐久テストプログラム)
次に、定周期起動非同期耐久テストプログラムについて詳細に説明すると、本実施形態に係る定周期起動非同期耐久テストプログラムは、第3のテスト実行タスク群(TSKE01〜TSKE5A)からなる。
第3のテスト実行タスク群を構成するテスト実行タスク(TSKE01〜TSKE5A)は、図5に示すように、初回起動時間および起動周期が設定されている。初回起動時間は、当該テスト実行タスクを最初に起動する時間を設定する。起動周期は、当該テスト実行タスクを起動する周期を表す。
各テスト実行タスク(TSKE01〜TSKE5A)は、初回起動時間になると各タスクのローカルファイル(file01〜file5a)に含まれる全レコードの全データをインクリメントする処理を開始し、起動周期でカウントアップする。
すなわち、定周期起動非同期耐久テストプログラムでは、上記のテスト実行タスク(TSKE01〜TSKE5A)の初回起動時間あるいは起動周期を異なるように設定して多重走行させる。これにより、複数のタイマー周期処理が非同期に実行される状況を生成することができる。
[2−2.耐久テストプログラムの実行によるシステム評価]
図6は、本実施形態に係る耐久テストプログラム112の実行によるシステム評価処理を示すフローチャートである。プロセス制御システム1のシステム評価処理は、図6に示すように、耐久テストプログラム112を実行する実行ステップと、耐久テストプログラム112の実行結果に基づいてプロセス制御システム1の信頼性を評価する評価ステップとからなる。
実行ステップは、ファイル非同期耐久テスト実行処理(S10)と、下位伝送非同期耐久テスト実行処理(S12)と、定周期起動非同期耐久テスト実行処理(S14)と、テストファイル出力処理(S16)とからなる。テスト開始/終了指示部114により耐久テストプログラム112の実行開始が指示されると、制御サーバ100は、まず、ファイル非同期耐久テスト実行処理(S10)を実行する。
図7および図8に、ファイル非同期耐久テスト実行処理の一例を示す。図7および図8では、図2に示す第1のテスト実行タスク群のうちテスト実行タスク1(TSK001)とテスト実行タスク2(TSK002)との処理についてのみ示している。
まず、テスト実行タスク1(TSK001)の処理について説明する。図7に示すように、テスト実行タスク1(TSK001)は、テスト開始/終了指示部114からの起動メッセージを受けるまで待機している(S100)。そして、起動メッセージを受信すると、テスト実行タスク1(TSK001)では、起動メッセージに含まれるリンゲージデータの内容を判定する(S102)。ここで、リンゲージデータとは、起動メッセージに付加された情報であり、本実施形態ではテスト実行タスク1(TSK001)が実行する機能を指定している。
ステップS102にて、リンゲージデータの内容が終了指示である場合には、当該テスト実行タスク1(TSK001)の処理を終了する。また、ステップS102にて、リンゲージデータの内容が開始指示である場合には、テスト実行タスク1(TSK001)では、当該指示を受けたときのパラメータをタスク(TSK001)内に記憶する。そして、テスト実行タスク1(TSK001)の各ファイル(fil001、fil991、fil992、fil993、fil994)およびグローバル(fil001)のデータをクリアする(S104)。その後、開始指示時に指定されたタイマーをセットして(S106)、ステップS100の処理に戻る。
また、ステップS102にて、リンゲージデータの内容がタイマー起動である場合には、当該テスト実行タスク1(TSK001)はステップS108〜S128の処理を実行する。ステップS108〜S128の処理は所定のファイルに対する読み書きを実行する処理である。まず、テスト実行タスク1(TSK001)では、相対編成ファイル(fil001)に含まれる全レコードの全データをインクリメントする(S108)。次いで、共有メモリグローバル割り付けにて割り付けられたテスト実行タスク1(TAK001)のグローバルファイル(fil001)の全レコードの全データをインクリメントする(S110)。その後、繰り返し計算処理が実行される(S112)。この繰り返し計算処理の繰り返し回数は、例えば乱数にて決定することができる。
次いで、テスト実行タスク1(TAK001)は、相対編成ファイル(fil991)で指定された、ファイル更新レコードNOで示されるレコードの全データをインクリメントする(S114)。このとき、相対編成ファイル(fil991)は共用オープン状態であり、レコード単位排他ロックされている。その後、繰り返し計算処理が実行される(S116)。この繰り返し計算処理の繰り返し回数も、ステップS112と同様、例えば乱数にて決定することができる。
さらに、テスト実行タスク1(TAK001)は、図8に示すように、相対編成ファイル(fil992)のファイル更新レコードNOで示されるレコードの全データをインクリメントする(S118)。このとき、相対編成ファイル(fil992)は共用オープン状態であり、資源ロックされている。また、テスト実行タスク1(TAK001)は、グローバルファイル(fil992)で指定されたファイル更新レコードNOで示されるレコードの全データをインクリメントする(S120)。このとき、グローバルファイル(fil992)も相対編成ファイル(fil992)と同様、共用オープン状態であり、資源ロックされている。その後、繰り返し計算処理が実行される(S122)。この繰り返し計算処理の繰り返し回数も、ステップS112と同様、例えば乱数にて決定することができる。
次いで、テスト実行タスク1(TAK001)は、インデックスファイル(fil993)のキーのレコードの全データをインクリメントする(S124)。このとき、インデックスファイルは、全排他状態でオープンされる。その後、繰り返し計算処理が実行される(S126)。この繰り返し計算処理の繰り返し回数も、ステップS112と同様、例えば乱数にて決定することができる。
さらに、テスト実行タスク1(TAK001)は、サイクリックファイル(fil994)に1レコードを追加してサイクリックファイル(fil994)を更新する(S128)。このときサイクリックファイル(fil994)は全排他状態でオープンされる。ステップS108〜S128の処理を終えると、図7のステップS100の処理に戻る。
一方、テスト実行タスク2(TSK002)の処理について説明すると、図7に示すように、テスト実行タスク2(TSK002)は、テスト実行タスク1(TAK001)と同様、テスト開始/終了指示部114からの起動メッセージを受けるまで待機している(S200)。そして、起動メッセージを受信すると、テスト実行タスク2(TSK002)では、起動メッセージに含まれるリンゲージデータの内容を判定する(S202)。
ステップS202にて、リンゲージデータの内容が終了指示である場合には、当該テスト実行タスク2(TSK002)の処理を終了する。また、ステップS202にて、リンゲージデータの内容が開始指示である場合には、テスト実行タスク2(TSK002)では、当該指示を受けたときのパラメータをタスク(TSK002)内に記憶する。そして、テスト実行タスク2(TSK002)の各ファイル(fil002、fil991、fil992、fil993、fil994)およびグローバル(fil002)のデータをクリアする(S204)。その後、開始指示時に指定されたタイマーをセットして(S206)、ステップS200の処理に戻る。
また、ステップS202にて、リンゲージデータの内容がタイマー起動である場合には、当該テスト実行タスク2(TSK002)はステップS208〜S228の処理を実行する。ステップS208〜S228の処理は、ステップS108〜S128の処理と同様、所定のファイルに対する読み書きを実行する処理である。まず、テスト実行タスク2(TSK002)では、相対編成ファイル(fil002)に含まれる全レコードの全データをインクリメントする(S208)。次いで、共有メモリグローバル割り付けにて割り付けられたテスト実行タスク2(TAK002)のグローバルファイル(fil002)の全レコードの全データをインクリメントする(S210)。その後、繰り返し計算処理が実行される(S212)。この繰り返し計算処理の繰り返し回数は、例えば乱数にて決定することができる。
次いで、テスト実行タスク2(TAK002)は、相対編成ファイル(fil991)で指定された、ファイル更新レコードNOで示されるレコードの全データをインクリメントする(S214)。このとき、相対編成ファイル(fil991)は共用オープン状態であり、レコード単位排他ロックされている。その後、繰り返し計算処理が実行される(S216)。この繰り返し計算処理の繰り返し回数も、ステップS112と同様、例えば乱数にて決定することができる。
さらに、テスト実行タスク2(TAK002)は、図8に示すように、相対編成ファイル(fil992)のファイル更新レコードNOで示されるレコードの全データをインクリメントする(S218)。このとき、相対編成ファイル(fil992)は共用オープン状態であり、資源ロックされている。また、テスト実行タスク2(TAK002)は、グローバルファイル(fil992)で指定されたファイル更新レコードNOで示されるレコードの全データをインクリメントする(S220)。このとき、グローバルファイル(fil992)も相対編成ファイル(fil992)と同様、共用オープン状態であり、資源ロックされている。その後、繰り返し計算処理が実行される(S222)。この繰り返し計算処理の繰り返し回数も、ステップS112と同様、例えば乱数にて決定することができる。
次いで、テスト実行タスク2(TAK002)は、インデックスファイル(fil993)のキーのレコードの全データをインクリメントする(S224)。このとき、インデックスファイルは、全排他状態でオープンされる。その後、繰り返し計算処理が実行される(S226)。この繰り返し計算処理の繰り返し回数も、ステップS112と同様、例えば乱数にて決定することができる。
さらに、テスト実行タスク2(TAK002)は、サイクリックファイル(fil994)に1レコードを追加してサイクリックファイル(fil994)を更新する(S228)。このときサイクリックファイル(fil994)は全排他状態でオープンされる。ステップS208〜S228の処理を終えると、図7のステップS200の処理に戻る。
ファイル非同期耐久テスト実行処理では、1つのテスト実行タスクのみに読み書きされるファイルだけでなく、図8に示すように複数のテスト実行タスクにより読み書きされるファイルがある。複数のテスト実行タスクにより実行される可能性のあるファイルは、あるテスト実行タスクが読み書きしている間は他のテスト実行タスクにより操作されないように排他状態となっている。このため、テスト実行タスクが正常に処理されなければ当該ファイルの読み書き処理に遅延が生じる。
また、テスト実行タスク1(TAK001)とテスト実行タスク2(TAK002)との起動周期を相違させることによって非同期の処理が多重走行するようになる。このようにタスクを非同期に実行することによってファイル読み書き処理時にさらに予期しない負荷が掛かる可能性もある。すなわち、本実施形態に係るプロセス制御システム1の信頼性の評価は、実稼動時には通常に起こり得る非同期の処理の多重走行時の負荷に対しても行うことができる。
図6の説明に戻り、ステップS10の処理を終えると、次いで、下位伝送非同期耐耐久テストが実行される(S12)。ステップS12の処理は、上述したように、まず、各テスト実行タスク(TSKA01〜TSKA5A)は、各タスクのローカルファイル(fila01〜fila5a)に含まれる全レコードの全データをインクリメントする。そして、相対編成ファイル(fil992)の全データを読み出す。このとき、相対編成ファイル(fil992)は共有オープン状態である。その後、各テスト実行タスク(TSKA01〜TSKA5A)は、ネットワークを介して所定のデータ量のデータを相手機器へ送信する。一方、テスト実行タスク(TSKB01〜TSKB5A)は、ネットワーク10を介して制御サーバ100から送信されたデータを受信する。そして、各タスクのローカルファイル(fila01〜fila5a)に含まれる全レコードの全データをインクリメントする。
この際、下位伝送非同期耐久テストプログラムでは、上記のテスト実行タスク(TSKA01〜TSKA5A、TSKB01〜TSKB5A)の起動周期を異なるように設定して多重走行させる。これにより、制御サーバ100と情報処理端末300あるいはPLC400との通信処理が非同期に複数実行されるようになる。
さらに、定周期起動非同期耐久テストプログラムが実行される(S14)。ステップS14では、上述したように、各テスト実行タスク(TSKE01〜TSKE5A)は、初回起動時間になると各タスクのローカルファイル(file01〜file5a)に含まれる全レコードの全データをインクリメントする処理を開始し、起動周期でカウントアップする処理が行われる。この際、ステップS14では、テスト実行タスク(TSKE01〜TSKE5A)の初回起動時間あるいは起動周期を異なるように設定して多重走行させることにより、複数のタイマー周期処理が非同期に実行される状況を生成することができる。
なお、ステップS10〜S14の処理は、この順序で実行しなくともよく、さらには複数の処理を並行して実行してもよい。ステップS10〜S14の処理を終えると、実行結果として、各処理が実行された回数を示すカウント値をテストファイル220として制御サーバ100からディスク200へ出力する(S16)。
その後、耐久テストプログラム112の実行結果と結果予定値とを比較して、プロセス制御システム1の信頼性を評価する評価処理が行われる(S18)。ステップS18の処理は、制御サーバ100にて行ってもよく、テスト確認端末500にて行ってもよい。ステップS16にて出力された耐久テストプログラム112の実行結果を表すテストファイル220には、耐久テストプログラム112の3つのプログラムについてそれぞれの処理回数(実績値、カウント値)が記録されている。この処理回数と正常に稼動したときの結果予定値との差分が所定値以内であるとき、当該プロセス制御システム1の信頼性に対して肯定的な評価がなされる。結果予測値は、テスト開始日時からテスト終了日時までの時間(すなわち、耐久テストプログラム112の実行時間と当該プログラム112のループ回数とから算出することができる。
図9に、耐久テストプログラム112の実行結果および当該実行結果と結果予定値との比較による信頼性評価の結果のレポート例を示す。図9に示すレポートには、例えば、テスト開始日時およびテスト終了日時、耐久テストプログラム112のループ回数についての実績値および結果予定値、そして、耐久テストプログラム112の3つのプログラムについての実績値および結果予定値が示されている。なお、「ファイル」および「メモリファイル」はファイル非同期耐久テストプログラムについて、「下位伝送」は下位伝送非同期耐久テストプログラムについて、「定周期」は定周期起動非同期耐久テストプログラムについての評価結果をそれぞれ示している。「サイクル秒」は、各テストプログラムを実行した周期を示しており、周期を変化させて各プログラムを実行することで、起動周期によるシステム信頼性への影響も検証している。
システムの信頼性評価は、実績値と結果予定値との回数が一致、あるいは誤差が所定値内に収まっているか否かによって行われる。実績値と結果予定値との回数の差分が所定値内であるとき、処理が非同期に多重走行しても正常に稼動すると判断できる。一方、実績値と結果予定値との回数の差分が所定値よりも大きくなった場合には、システムに異常が発生する可能性があると判断できる。このとき、実績値と結果予定値との回数の差分が所定値よりも大きくなったケース(実行した耐久テストプログラムの内容およびその起動周期)に基づき、異常が発生する原因を特定し易くなる。
[2−3.実施例]
以下に、本実施形態に係るプロセス制御システム1の信頼性に関するシステム診断方法の適用例を説明する。上記システム診断方法を適切に行うには、テスト実行タスクのパラメータを適切に設定する必要がある。以下では、テスト実行タスクのパラメータの設定(すなわち、テストシナリオの設定)の具体例を示す。
(1)熱間圧延ラインにおける通信異常発生有無の診断
熱間圧延ラインにおいて、品質プロコン稼動後に稀に通信異常(タイムアウト)が発生することがある。APソフトウェアは、データ収集装置から1秒周期で約30KBのデータを下位伝送で受信し、受信したデータ(約17MB)のファイルを10分に1回ディスク200に書き込む処理を行っている。通信異常が発生する原因として、データをディスク200へ書き込む処理内のある特定処理に、APソフトウェアの走行が長時間に及ぶと、OS130の不具合により不良が生じることが特定された。ディスク200へのデータ書き込み中は操作対象のファイルは排他オープンしてロックされているので、その間他のAPソフトウェアにおいて排他解除待ちの状態が継続し、通信にタイムアウトが発生してしまう。
このような通信異常が新たに稼動するプロセス制御システム1に発生しないようにするため、上記APソフトウェアの機能を、図2に示すファイル非同期耐久テストプログラムの「テスト実行タスク1」、「テスト実行タスク998」、および下位伝送非同期耐久テストプログラムの「テスト実行タスクA1」のパラメータを設定することで再現する。このように、耐久テストプロフラム112の各テスト実行タスクを、プロセス制御システム1の実稼動時に実行されるAPソフトウェアの構成に基づいて設定することで、より実際の稼動状況に近い形でシステムの信頼性を評価することが可能となる。
(2)高炉の操業状況に関する日報帳票の不正発生有無の診断
高炉の操業状況を日報帳票として出力する処理において、日報帳票の値が不正となることがある。APソフトウェアは、定周期でm個のタスクによってそれぞれ温度、ガス流等のプロセス値を収集するとともに、n個のタスクがそれぞれ収集されたプロセス値について上下限チェックや移動平均値演算処理等を行い、サイクリックファイルに格納している。さらに、APソフトウェアは、上記処理と同時に、ビジコンからの情報や数式モデルの演算結果(インデックスファイル)を参照しながら、帳票出力用の相対編成ファイルの各レコード内のデータを更新している。
日報帳票の値に不正が発生する原因として、ディスク200の不良により所定時間(例えば3秒)以上のファイル排他待ち状態が継続することが特定された。このファイル排他待ち状態が継続することで、サイクリックファイル、インデックスファイル等のファイル参照タイミングが遅れてしまい、古いデータで処理をしてしまう。また、帳票出力用の相対編成ファイルの書き込みタイミングも遅れてしまうため、日報帳票のデータに古いデータと最新のデータとが混在してしまう。
このように日報帳票の不正が新たに稼動するプロセス制御システム1に発生することがないように、上記APソフトウェアの機能を、図2に示すファイル非同期耐久テストプログラムの「テスト実行タスク1〜15A」、および定周期起動非同期耐久テストプログラムの「テスト実行タスクE1〜EA」のパラメータを設定することで再現する。このように、耐久テストプロフラム112の各テスト実行タスクを、プロセス制御システム1の実稼動時に実行されるAPソフトウェアの構成に基づいて設定することで、より実際の稼動状況に近い形でシステムの信頼性を評価することが可能となる。
<3.ハードウェア構成>
次に、図10に基づいて、上記実施形態に係る制御サーバ100のハードウェア構成について、詳細に説明する。図10は、上記実施形態に係る制御サーバ100のハードウェア構成を示すブロック図である。なお、図10に示すハードウェア構成は制御サーバ100の構成として説明するが、情報処理端末300、PLC400、テスト確認端末500も同様のハードウェア構成をとることができる。
制御サーバ100は、主に、CPU901と、ROM903と、RAM905と、を備える。また、制御サーバ100は、更に、バス907と、入力装置909と、出力装置911と、ストレージ装置913と、ドライブ915と、接続ポート917と、通信装置919とを備える。
CPU901は、演算処理装置および制御装置として機能し、ROM903、RAM905、ストレージ装置913、またはリムーバブル記録媒体921に記録された各種プログラムに従って、制御サーバ100内の動作全般またはその一部を制御する。ROM903は、CPU901が使用するプログラムや演算パラメータ等を記憶する。RAM905は、CPU901が使用するプログラムや、プログラムの実行において適宜変化するパラメータ等を一次記憶する。これらはCPUバス等の内部バスにより構成されるバス907により相互に接続されている。
バス907は、ブリッジを介して、PCI(Peripheral Component Interconnect/Interface)バスなどの外部バスに接続されている。
入力装置909は、例えば、マウス、キーボード、タッチパネル、ボタン、スイッチおよびレバーなどユーザが操作する操作手段である。また、入力装置909は、例えば、赤外線やその他の電波を利用したリモートコントロール手段(いわゆる、リモコン)であってもよいし、制御サーバ100の操作に対応したPDA等の外部接続機器923であってもよい。さらに、入力装置909は、例えば、上記の操作手段を用いてユーザにより入力された情報に基づいて入力信号を生成し、CPU901に出力する入力制御回路などから構成されている。制御サーバ100のユーザは、この入力装置909を操作することにより、制御サーバ100に対して各種のデータを入力したり処理動作を指示したりすることができる。
出力装置911は、取得した情報をユーザに対して視覚的または聴覚的に通知することが可能な装置で構成される。このような装置として、CRTディスプレイ装置、液晶ディスプレイ装置、プラズマディスプレイ装置、ELディスプレイ装置およびランプなどの表示装置や、スピーカおよびヘッドホンなどの音声出力装置や、プリンタ装置、携帯電話、ファクシミリなどがある。出力装置911は、例えば、制御サーバ100が行った各種処理により得られた結果を出力する。具体的には、表示装置は、制御サーバ100が行った各種処理により得られた結果を、テキストまたはイメージで表示する。他方、音声出力装置は、再生された音声データや音響データ等からなるオーディオ信号をアナログ信号に変換して出力する。
ストレージ装置913は、制御サーバ100の記憶部の一例として構成されたデータ格納用の装置である。ストレージ装置913は、例えば、HDD(Hard Disk Drive)等の磁気記憶部デバイス、半導体記憶デバイス、光記憶デバイス、または光磁気記憶デバイス等により構成される。このストレージ装置913は、CPU901が実行するプログラムや各種データ、および外部から取得した各種のデータなどを格納する。
ドライブ915は、記録媒体用リーダライタであり、制御サーバ100に内蔵、あるいは外付けされる。ドライブ915は、装着されている磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリ等のリムーバブル記録媒体921に記録されている情報を読み出して、RAM905に出力する。また、ドライブ915は、装着されている磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリ等のリムーバブル記録媒体921に記録を書き込むことも可能である。リムーバブル記録媒体921は、例えば、CDメディア、DVDメディア、Blu−rayメディア等である。また、リムーバブル記録媒体921は、コンパクトフラッシュ(登録商標)(CompactFlash:CF)、フラッシュメモリ、または、SDメモリカード(Secure Digital memory card)等であってもよい。また、リムーバブル記録媒体921は、例えば、非接触型ICチップを搭載したICカード(Integrated Circuit card)または電子機器等であってもよい。
接続ポート917は、機器を制御サーバ100に直接接続するためのポートである。接続ポート917の一例として、USB(Universal Serial Bus)ポート、IEEE1394ポート、SCSI(Small Computer System Interface)ポート、RS−232Cポート等がある。この接続ポート917に外部接続機器923を接続することで、制御サーバ100は、外部接続機器923から直接各種のデータを取得したり、外部接続機器923に各種のデータを提供したりする。
通信装置919は、例えば、通信網925に接続するための通信デバイス等で構成された通信インタフェースである。通信装置919は、例えば、有線または無線LAN(Local Area Network)、Bluetooth(登録商標)、またはWUSB(Wireless USB)用の通信カード等である。また、通信装置919は、光通信用のルータ、ADSL(Asymmetric Digital Subscriber Line)用のルータ、または、各種通信用のモデム等であってもよい。この通信装置919は、例えば、インターネットや他の通信機器との間で、例えばTCP/IP等の所定のプロトコルに則して信号等を送受信することができる。また、通信装置919に接続される通信網925は、有線または無線によって接続されたネットワーク等により構成され、例えば、インターネット、家庭内LAN、赤外線通信、ラジオ波通信または衛星通信等であってもよい。
以上、上記の本発明の実施形態に係る制御サーバ100の機能を実現可能なハードウェア構成の一例を示した。上記の各構成要素は、汎用的な部材を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用するハードウェア構成を変更することが可能である。
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。