(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024113374
(43)【公開日】2024-08-22
(54)【発明の名称】制御ソフトウェア作成支援方法及び制御ソフトウェア作成支援プログラム
(51)【国際特許分類】
G05B 19/042 20060101AFI20240815BHJP
【FI】
G05B19/042
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2023018308
(22)【出願日】2023-02-09
(71)【出願人】
【識別番号】301078191
【氏名又は名称】株式会社日立ハイテクソリューションズ
(74)【代理人】
【識別番号】110000350
【氏名又は名称】ポレール弁理士法人
(72)【発明者】
【氏名】山口 英俊
【テーマコード(参考)】
5H220
【Fターム(参考)】
5H220AA01
5H220AA02
5H220BB07
5H220BB09
5H220CC07
5H220CX01
5H220GG02
5H220HH01
5H220JJ12
5H220JJ13
5H220JJ14
5H220JJ22
5H220JJ24
5H220JJ26
5H220JJ47
5H220KK08
(57)【要約】
【課題】制御ソフトウェア作成工程の初期段階におけるエラーの抽出自動化を可能とする。
【解決手段】制御ソフトウェアが実施するプロセス制御の内容を、複数の演算機能を、演算機能の入出力である端子を介して結合した結合体として表す制御用定義データ71を記憶しており、制御用定義データから、カテゴリごとに端子を抽出した複数の端子テーブル72を作成し、演算機能の入出力関係または演算機能間の入出力関係として関係づけられている端子同士を特定して接続先または被接続となる端子を登録し、複数の端子テーブルに含まれる端子のうち、接続先または被接続の少なくともいずれかが登録されていない端子を途切れ判定する。
【選択図】
図5
【特許請求の範囲】
【請求項1】
プロセスプラントの監視または制御を行う監視制御システムの制御ソフトウェアの作成支援方法であって、
前記制御ソフトウェアが実施するプロセス制御の内容を、複数の演算機能を、前記演算機能の入出力である端子を介して結合した結合体として表す制御用定義データを記憶しており、
前記制御用定義データから、カテゴリごとに端子を抽出した複数の端子テーブルを作成する第1の手順と、
前記演算機能の入出力関係として関係づけられている端子同士を、前記複数の端子テーブルのうちのいずれかの端子テーブルに含まれる端子と他の端子テーブルに含まれる端子との間で特定し、接続先または被接続となる端子を登録する第2の手順と、
前記演算機能間の入出力関係として関係づけられている端子同士を、前記複数の端子テーブルのうちのいずれかの端子テーブルに含まれる端子と他の端子テーブルに含まれる端子との間で特定し、接続先または被接続となる端子を登録する第3の手順と、
前記複数の端子テーブルに含まれる端子のうち、接続先または被接続の少なくともいずれかが登録されていない端子を途切れ判定する第4の手順と、を有し、
前記複数の端子テーブルは、前記プロセスプラントから前記制御ソフトウェアへの入力となる端子が抽出される入力端子(プロセス)テーブル、前記制御ソフトウェアにおいて入力となる端子が抽出される入力端子(制御)テーブル、前記制御ソフトウェアにおいて出力となる端子が抽出される出力端子(制御)テーブル、及び前記制御ソフトウェアから前記プロセスプラントへの入力となる端子が抽出される出力端子(プロセス)テーブルである制御ソフトウェア作成支援方法。
【請求項2】
請求項1において、
前記第4の手順において、前記複数の端子テーブルに含まれる端子のうち、接続先及び被接続の双方が登録されていても、接続先または被接続が途切れ判定された端子を途切れ判定する制御ソフトウェア作成支援方法。
【請求項3】
請求項1において、
前記第4の手順において、途切れ判定された端子の情報をディスプレイに表示する制御ソフトウェア作成支援方法。
【請求項4】
請求項1において、
前記演算機能として、フィードバック・フィードフォワード制御演算機能、シーケンス制御演算機能、ブール演算機能またはプログラム演算機能を含む制御ソフトウェア作成支援方法。
【請求項5】
プロセスプラントの監視または制御を行う監視制御システムの制御ソフトウェアの作成支援を計算機に実行させる制御ソフトウェア作成支援プログラムであって、
前記計算機には、前記制御ソフトウェアが実施するプロセス制御の内容を、複数の演算機能を、前記演算機能の入出力である端子を介して結合した結合体として表す制御用定義データが記憶されており、
前記制御用定義データから、カテゴリごとに端子を抽出した複数の端子テーブルを作成する第1の手順と、
前記演算機能の入出力関係として関係づけられている端子同士を、前記複数の端子テーブルのうちのいずれかの端子テーブルに含まれる端子と他の端子テーブルに含まれる端子との間で特定し、接続先または被接続となる端子を登録する第2の手順と、
前記演算機能間の入出力関係として関係づけられている端子同士を、前記複数の端子テーブルのうちのいずれかの端子テーブルに含まれる端子と他の端子テーブルに含まれる端子との間で特定し、接続先または被接続となる端子を登録する第3の手順と、
前記複数の端子テーブルに含まれる端子のうち、接続先または被接続の少なくともいずれかが登録されていない端子を途切れ判定する第4の手順と、を実行させ、
前記複数の端子テーブルは、前記プロセスプラントから前記制御ソフトウェアへの入力となる端子が抽出される入力端子(プロセス)テーブル、前記制御ソフトウェアにおいて入力となる端子が抽出される入力端子(制御)テーブル、前記制御ソフトウェアにおいて出力となる端子が抽出される出力端子(制御)テーブル、及び前記制御ソフトウェアから前記プロセスプラントへの入力となる端子が抽出される出力端子(プロセス)テーブルである制御ソフトウェア作成支援プログラム。
【請求項6】
請求項5において、
前記第4の手順において、前記複数の端子テーブルに含まれる端子のうち、接続先及び被接続の双方が登録されていても、接続先または被接続が途切れ判定された端子を途切れ判定する制御ソフトウェア作成支援プログラム。
【請求項7】
請求項5において、
前記第4の手順において、途切れ判定された端子の情報を前記計算機のディスプレイに表示する制御ソフトウェア作成支援プログラム。
【請求項8】
請求項5において、
前記演算機能として、フィードバック・フィードフォワード制御演算機能、シーケンス制御演算機能、ブール演算機能またはプログラム演算機能を含む制御ソフトウェア作成支援プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プロセスプラントの監視または制御を行う監視制御システムの制御ソフトウェアの作成支援方法、作成支援プログラムに関する。
【背景技術】
【0002】
化学、薬品プラント、発電所、あるいは水処理などの環境処理施設など(これらを包括して、プロセスプラントと呼ぶ)には、プロセスプラントを構成する多数の機器が適正に動作するよう、監視し、制御する監視制御システムが設けられている。プロセスプラントを構成する機器(プラント機器ともいう)にはプロセスプラントの運転状態をモニタする多数のセンサが設けられ、プロセスプラントの監視制御システムは、センサからのセンシングデータに基づき、プラント機器を自動制御したり、プラント機器の異常を検知してオペレータに対してアラームを発報させたりする。これらの処理は監視制御システムが制御ソフトウェアを実行することによって実現される。
【0003】
特許文献1には制御用ソフトウェアのテストシナリオ作成やテスト(デバッグ)を自動化する技術が開示されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1では、制御用ソフトウェアの自動テスト方法を提供するものである。したがって、テスト対象となる制御用ソフトウェアは既にコーディングも終えた、ソフトウェア作成工程としては後期の段階において利用可能な技術となる。
【0006】
一般に、プロセスプラントの監視または制御を行う監視制御システムの制御ソフトウェアにおいては、多数のパラメータを監視、制御が必要となるため、複雑な構成のソフトウェアになりがちである。このため、制御ソフトウェアを作成する工程の初期の段階から、エラーを抽出し、修正することで、ソフトウェア作成工程の手戻りを減らすことができる。しかしながら、従来、制御ソフトウェアを作成工程の初期の段階におけるエラーの抽出は、ソフトウェア作成者の目視等によるチェックに頼ることが多く、エラーを見落としたり、ソフトウェア作成者の負担を増大させたりするおそれがあった。
【課題を解決するための手段】
【0007】
本発明の一実施形態である制御ソフトウェア作成支援方法は、プロセスプラントの監視または制御を行う監視制御システムの制御ソフトウェアの作成支援方法であって、制御ソフトウェアが実施するプロセス制御の内容を、複数の演算機能を、演算機能の入出力である端子を介して結合した結合体として表す制御用定義データを記憶しており、制御用定義データから、カテゴリごとに端子を抽出した複数の端子テーブルを作成する第1の手順と、演算機能の入出力関係として関係づけられている端子同士を、複数の端子テーブルのうちのいずれかの端子テーブルに含まれる端子と他の端子テーブルに含まれる端子との間で特定し、接続先または被接続となる端子を登録する第2の手順と、演算機能間の入出力関係として関係づけられている端子同士を、複数の端子テーブルのうちのいずれかの端子テーブルに含まれる端子と他の端子テーブルに含まれる端子との間で特定し、接続先または被接続となる端子を登録する第3の手順と、複数の端子テーブルに含まれる端子のうち、接続先または被接続の少なくともいずれかが登録されていない端子を途切れ判定する第4の手順と、を有し、複数の端子テーブルは、プロセスプラントから制御ソフトウェアへの入力となる端子が抽出される入力端子(プロセス)テーブル、制御ソフトウェアにおいて入力となる端子が抽出される入力端子(制御)テーブル、制御ソフトウェアにおいて出力となる端子が抽出される出力端子(制御)テーブル、及び制御ソフトウェアからプロセスプラントへの入力となる端子が抽出される出力端子(プロセス)テーブルである。
【発明の効果】
【0008】
制御ソフトウェア作成工程の初期段階におけるエラーの抽出自動化が可能になる。上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかになるであろう。
【図面の簡単な説明】
【0009】
【
図1】プロセスプラントと監視制御システムの概要図である。
【
図3】制御ソフトウェアに含まれる制御経路の一つを抽出して示したものである。
【
図4A】制御ソフトウェア作成支援装置のハードウェア構成例である。
【
図4B】制御ソフトウェア作成支援装置のストレージ装置に格納されるプログラム、データの例である。
【
図6A】入力端子(プロセス)テーブルのデータ構造である。
【
図6B】入力端子(制御)テーブルのデータ構造である。
【
図6C】出力端子(制御)テーブルのデータ構造である。
【
図6D】出力端子(プロセス)テーブルのデータ構造である。
【発明を実施するための形態】
【0010】
図1に、プロセスプラント1及びプロセスプラント1を制御する監視制御システム10の概要を示す。プロセスプラント1は複数の設備を含み、その一例である設備2はタンク3を含む。ここで、「設備」の範囲について特に限定はなく、1つの設備が複数のプロセス機器を含んでいてもよいが、例えば、ひとまとまりの機能を果たす単位とする。この例では、タンク3にその水位を測定するセンサ6が設けられ、監視制御システム10は、センサ6からのセンシングデータから、バルブ4,5の開閉を制御してタンク3内の水位を制御したり、タンク内の水位値が異常値を示している場合には、操作卓11に対してアラームを発報したりする。このような制御は、監視制御システム10のコントローラ20に実装される制御ソフトウェアによって実行される。
【0011】
監視制御システム10は、操作卓(オペレータコンソール)11と、操作卓11とネットワーク15によって接続されるコントローラ20とを有する。プロセスプラント1の制御規模に応じて、通常、複数のコントローラ20が設けられる。コントローラ20はそれぞれ回路基板21に接続されている。回路基板21はコントローラ20とプロセスプラント1に含まれる各プラント機器との通信に必要な信号処理を行うために設けられる。例えば、プロセスプラント1に含まれるセンサからのアナログ信号であるセンシングデータをデジタル信号に変換したり、コントローラ20からのプラント機器を制御するためのデジタル信号である制御信号を所定の強度の電圧信号に変換したり、といった処理を行う。各コントローラ20が制御するプロセス機器の運転状況は操作卓11に集約され、操作卓11においてプロセスプラント1全体の運転状況が把握できるようになっている。オペレータは、操作卓11において把握したプロセスプラント1の運転状況に基づき、個々のプロセス機器に対する制御指示を出すことができる。操作卓11からの制御指示を受けると、コントローラ20はオペレータの指示に応じたプロセス機器の制御を実行する。
【0012】
図2、
図3を用いて、コントローラ20で実行される制御ソフトウェアの構成例を示す。制御ソフトウェアは、複数の演算機能を、プラント制御の内容にあわせて組み合わせることによって作成される。演算機能の入出力を端子と呼び、端子を介して演算機能同士が接続される。それぞれの演算機能の実行する演算処理が端子を通じて受け渡されていくことによって、複雑な制御ソフトウェアが実行される。
【0013】
また、演算機能にも複数種類あり、例えば
図2では、フィードバック・フィードフォワード制御演算機能41、シーケンス制御演算機能42、ブール論理演算機能43、プログラム演算機能44といった4種類の演算機能を例示している。例えば、フィードバック・フィードフォワード制御演算機能41aは、端子AAを入力端子とし、端子ABを出力端子とし、入力端子AAに入力された値に基づきPID制御ブロック411により制御値を算出し、演算ブロック412により制御値に所定の演算を施した値を出力端子ABに出力する。シーケンス制御演算機能42aは、端子CDを条件入力端子とし、端子BA~BFを出力端子とし、条件入力端子CDに入力された値に基づき移行したステータス(図ではマトリックスとして表している)に対応する値を出力端子BA~BFに出力する。ブール論理演算機能43aは端子B、端子ADを入力端子とし、端子CDを出力端子とし、入力端子Bに入力された値と入力端子ADに入力された値との論理和を出力端子CDに出力する。プログラム演算機能44aは、端子BF、端子DBを入力端子とし、端子DCを出力端子とし、入力端子BFに入力された値と入力端子DBに入力された値に所定のプログラム演算を実行した値を出力端子DCに出力する。
【0014】
コントローラ20で実行される制御ソフトウェアの入出力は、操作卓11側と回路基板21側からの2通りある(
図1参照)。
図2では、操作卓11側に、表示用スイッチ31と操作用スイッチ32とが例示される。表示用スイッチ31は例えば、アラームなどを表示するスイッチであって、端子Aを入力端子とし、入力端子Aに入力された信号に基づき、表示用スイッチ31をON/OFF表示する。操作用スイッチ32は例えば、オペレータの制御指示を入力するスイッチであって、端子Bを出力端子とし、出力端子Bに入力された信号に基づく指示を制御ソフトウェアに与える。
【0015】
回路基板21側の入出力を
図2では、プロセス制御入力51、プロセス制御出力52として示している。プロセス制御入力51としては、プロセスプラント1からのセンシングデータ、プロセス制御出力52としては、プロセスプラント1への制御信号を例示できる。
【0016】
図3に、
図2に示した制御ソフトウェアにおける制御経路の一例を示す。
図3は端子Bを起点とする制御経路を抽出して明示している。操作用スイッチ32の出力端子である端子Bはブール論理演算機能43aの入力端子であり、端子CDの値を決定する。端子CDの値は、シーケンス制御演算機能42aの条件入力端子であり、端子BA~BFの値を決定する。このうち、端子BA~BDはプロセス制御出力52となっている。このように制御の流れが起点となる端子から終点となる端子までつながっていることから、この場合、オペレータによる操作用スイッチ32の操作によって、プロセスプラント1を制御するルートが確保されているといえる。
【0017】
制御ソフトウェアの作成者は、制御ソフトウェアを作成するため、所望のプロセス制御の内容を上述したような演算機能の組み合わせに落とし込み、端子を介して複数の演算機能を結合した結合体として制御用定義を作成する。制御用定義に基づき、バックエンドでコーディングされ、コントローラ20に実装される制御ソフトウェアが作成されることになる。しかしながら、コントローラ20で実行される制御ソフトウェアには、通常、膨大な数(例えば、1万点規模)の端子が含まれる。このため、作成者が制御用定義において、端子間の接続を失念した、あるいは誤った端子同士を接続したといったヒューマンエラーが発生するおそれがある。このため、コーディング工程、動作確認工程の前に、制御用定義の端子の接続が正しくなされているか、具体的には、作成した制御用定義において、始点から終点まで制御論理がつながっていることを検証することが望ましい。さらに、作成者が容易に修正できるよう、制御用定義において途中で制御論理が途切れているとすれば、どこで途切れているのか特定できることが望ましい。本実施例の制御ソフトウェア作成支援装置では、このような制御用定義の検証を実行する。
【0018】
図4Aに制御ソフトウェア作成支援装置のハードウェア構成を示す。制御ソフトウェア作成支援装置60は、プロセッサ(CPU)61、メモリ62、ストレージ装置63、入出力装置64、通信装置65、バス66を主要な構成として含む情報処理装置(計算機)により実現される。プロセッサ61は、メモリ62にロードされたプログラムに従って処理を実行することによって、所定の機能を提供する機能部として機能する。例えば、プロセッサ61は、制御ソフトウェア作成支援プログラムを実行することで制御ソフトウェア作成支援装置として機能する。ストレージ装置63は、機能部で使用するデータやプログラムを格納する。入出力装置64は、キーボード、ポインティングデバイスなどの入力装置と、ディスプレイなどの出力装置とを含む。通信装置65は、ネットワークを介して他の情報処理装置と通信を可能にする。これらはバス66により互いに通信可能に接続されている。なお、制御ソフトウェア作成支援プログラムをクラウド上のアプリケーションとして実装することも可能である。
【0019】
図4Bにストレージ装置63に格納されるプログラム、データの例を示す。ここでは、制御ソフトウェア作成支援プログラム70、制御用定義データ71、端子テーブル72が格納されている。
【0020】
図5に制御ソフトウェア作成支援プログラム70が実行する制御用定義の検証フローチャートを示す。最初に制御用定義データから端子をカテゴリごとに抽出する(S01)。制御用定義データ71の定義形式に基づき、制御用定義データに定義されている端子を抽出する。
図2の制御ソフトウェア(制御用定義)について、4つのカテゴリに分けて抽出された端子テーブル72を
図6A~Dに示す。なお、
図2では、演算機能間の接続が端子名を同じとすることで表現されており、以下の端子テーブルも
図2に示した制御用定義から作成したものである。しかしながら、制御用定義データ71の定義形式は任意であり、端子は演算機能ごとに定義し、演算機能間の接続の定義を別途備えるような定義形式であっても、同様の処理が可能である。
【0021】
図6Aは入力端子(プロセス)テーブルである。接続関係を示すための略号として「丸付きのA」を用いる。本カテゴリは、プロセスプラント1から制御ソフトウェアへの入力となる端子が含まれ、プロセス制御入力51(
図2参照)の2つの端子が抽出される。ステップS01では、端子名、機能の欄が登録される。以下のテーブルについても同様である。
【0022】
図6Bは入力端子(制御)テーブルである。接続関係を示すための略号として「丸付きのB」を用いる。本カテゴリは、制御ソフトウェアにおいて入力となる端子が含まれる。ここでは11の端子が抽出されている。
【0023】
図6Cは出力端子(制御)テーブルである。接続関係を示すための略号として「丸付きのC」を用いる。本カテゴリは、制御ソフトウェアにおいて出力となる端子が含まれる。ここでは13の端子が抽出されている。
【0024】
図6Dは出力端子(プロセス)テーブルである。接続関係を示すための略号として「丸付きのD」を用いる。本カテゴリは、制御ソフトウェアからプロセスプラント1への出力となる端子が含まれ、プロセス制御出力52(
図2参照)の7つの端子が抽出される。
【0025】
続いて、演算機能によるデータの関連付けを特定する(S02)。ここで、演算機能によるデータの関連付けとは演算機能の入出力として関係づけられている関係であり、例えば
図3において点線により示している関係である。特定された端子は、接続先または被接続の欄に登録される。
図6B,Cに、ステップS02において、
図2の制御ソフトウェア(制御用定義)について登録される接続先または非接続をハッチングして示す。なお、
図6A~Dにおいて、端子の性質上、接続先または非接続があり得ないものについては、そのことを「-」で示している。
【0026】
続いて、端子接続によるデータの関連付けを特定する(S03)。ここで、端子接続によるデータの関連付けとは演算機能間の入出力として関係づけられている関係であり、例えば
図3において実線により示している関係である。特定された端子は、接続先または被接続の欄に登録される。
図6A~Dにおいて、ステップS03において、
図2の制御ソフトウェア(制御用定義)について登録される接続先または非接続をハッチングなしで示す。
【0027】
続いて、端子のカテゴリ、データの関連付けの状況からデータ接続を検証する(S04)。例えば、
図6A~Dの端子テーブルについて、接続先、被接続の少なくもいずれか一方が登録されていない端子を接続が途切れているとして判定を「×」(途切れ)とする。さらに、
図6Bでは、入力端子(制御)のうち、接続先の端子が途切れているものについても判定を「×」(途切れ)とし、それ以外の端子の判定を「○」(接続)とする。同様に、
図6Cでは、出力端子(制御)のうち、被接続の端子が途切れているものについても判定を「×」(途切れ)とし、それ以外の端子の判定を「○」(接続)とする。以上により、制御用定義における端子の接続の途切れ、及びその場所が特定できるため、これらの情報を制御ソフトウェア作成支援装置の例えばディスプレイに表示し、作成者に制御用定義の修正を促すことができる。
【0028】
これにより、制御ソフトウェアの作成の初期の段階において、制御用定義の欠陥を修正することが可能になり、制御ソフトウェアの作成に要する工数を低減することが可能になる。
【符号の説明】
【0029】
1:プロセスプラント、2:設備、3:タンク、4,5:バルブ、6:センサ、10:監視制御システム、11:操作卓、15:ネットワーク、20:コントローラ、21:回路基板、31:表示用スイッチ、32:操作用スイッチ、41:フィードバック・フィードフォワード制御演算機能、411:PID制御ブロック、412:演算ブロック、42:シーケンス制御演算機能、43:ブール論理演算機能、44:プログラム演算機能、51:プロセス制御入力、52:プロセス制御出力、60:制御ソフトウェア作成支援装置、61:プロセッサ(CPU)、62:メモリ、63:ストレージ装置、64:入出力装置、65:通信装置、66:バス、70:制御ソフトウェア作成支援プログラム、71:制御用定義データ、72:端子テーブル。