(57)【要約】【課題】監視制御システムにおける試験テーブルを効率的に生成することを目的とする。【解決手段】ロジック図面格納装置１に格納されたロジック図面ＬＧ１を解析するロジック図面解析部２０と、ロジック図面解析部２０が導出したロジック図面ＬＧ１の入力点１１と、入力仕様格納装置２に格納されたロジック図面ＬＧ１の入力仕様ＩＴＢ１とに基づいて、アナログ値を区分した入力値種別毎に入力値を生成する入力値生成部８と、ロジック図面解析部２０が導出した演算素子の種別に対応する出力点１５、１８毎に、入力値生成部８で生成した入力値に対する期待値を生成する出力値生成部６と、入力値生成部８が生成した入力値と出力値生成部６が生成した期待値に基づいて、試験テーブルＴＴＢ１を生成するテーブル生成部９とを備えた。【選択図】図１
2011128951.tif 000002
【特許請求の範囲】
【請求項１】
演算を行う演算素子と前記演算素子を接続する信号線により構成されたロジック図面を用いて記述された処理の試験を行う際に、アナログ値である入力値と前記処理の出力の期待値を含む試験テーブルを生成する試験テーブル生成装置であって、
ロジック図面格納装置に格納された前記ロジック図面を解析するロジック図面解析部と、前記ロジック図面解析部が導出した前記ロジック図面の入力点と、入力仕様格納装置に格納された前記ロジック図面の入力仕様とに基づいて、前記アナログ値を区分した入力値種別毎に前記入力値を生成する入力値生成部と、
前記ロジック図面解析部が導出した演算素子の種別に対応する出力点毎に、前記入力値生成部で生成した前記入力値に対する前記期待値を生成する出力値生成部と、
前記入力値生成部が生成した前記入力値と前記出力値生成部が生成した前記期待値に基づいて、試験テーブルを生成するテーブル生成部と、を備えた試験テーブル生成装置。
【請求項２】
前記ロジック図面は、前記アナログ値が入力され離散値を出力し、前記アナログ値と比較し前記離散値を決定する閾値を有する特徴的な演算素子を含み、
前記出力値生成部は、前記ロジック図面解析部が前記特徴的な演算素子の前記閾値と前記特徴的な演算素子から下流の出力点とに基づき導出した出力点の種別を当該出力点に対応させて期待値を生成することを特徴とした請求項１記載の試験テーブル生成装置。
【請求項３】
前記ロジック図面解析部は、前記ロジック図面の前記入力点を起点とした信号線を追跡する信号線追跡部と、前記信号線追跡部が追跡した前記信号線に接続された演算素子を検出する演算素子検出部とを有することを特徴とした請求項１または２に記載の試験テーブル生成装置。
【請求項４】
前記ロジック図面解析部は、前記ロジック図面の入力点と前記入力仕様に記載された入力点を照合し、前記入力仕様に記載された入力点に該当する前記ロジック図面の入力点を検出する入力点照合部を有することを特徴とした請求項１乃至３のいずれか１項に記載の試験テーブル生成装置。
【請求項５】
前記ロジック図面解析部は、前記信号線の追跡中に検出された前記演算素子が２入力以上の演算素子である場合に、当該追跡中の信号線が接続させた入力と異なる他の入力から、信号の向きとは逆方向に信号線を辿り、前記他の入力につながる入力点を検出し、所定の制約条件に基づいて決定された前記入力点の値を含む入力条件情報を生成し、
前記テーブル生成部は、前記入力条件情報と前記入力値生成部が生成した前記入力値と前記出力値生成部が生成した期待値に基づいて、試験テーブルを生成することを特徴とした請求項１または２に記載の試験テーブル生成装置。
【請求項６】
前記ロジック図面解析部は、前記逆向きに信号線を辿る過程で検出した演算素子に対して、当該演算素子に直接的または間接的に入力となる全ての入力点の集合を求め、前記集合の入力点に組み合わせ可能な値を代入して論理シミュレーションを行い、
前記制約条件を満たす前記入力点の値を含む入力条件情報を生成することを特徴とした請求項５に記載の試験テーブル生成装置。
【請求項７】
前記制約条件は、前記２入力以上の演算素子における前記追跡中の信号線の値と当該２入力以上の演算素子の出力の値が等しくなるように、前記他の入力の値が選ばれることである請求項５または６に記載の試験テーブル生成装置。
【請求項８】
演算を行う演算素子と前記演算素子を接続する信号線により構成されたロジック図面を用いて記述された処理の試験を行う際に、アナログ値である入力値と前記処理の出力の期
待値を含む試験テーブルを生成する試験テーブル生成方法であって、
前記ロジック図面を解析して導出した前記ロジック図面の入力点と、前記ロジック図面の入力仕様とに基づいて、前記アナログ値を区分した入力値種別毎に前記入力値を生成する入力値生成手順と、
前記ロジック図面を解析して導出した演算素子の種別に対応する出力点毎に、前記入力値生成手順で生成した前記入力値に対する前記期待値を生成する出力値生成手順と、
前記入力値生成手順で生成した前記入力値と前記出力値生成手順で生成した前記期待値に基づいて、試験テーブルを生成するテーブル生成手順と、を含む試験テーブル生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は監視制御システムにおける試験テーブルの自動生成に関するものである。
【背景技術】
【０００２】
監視制御システムは、温度、圧力、位置、その他各種センサー等、監視の対象となる装置からの情報を運転・監視員に提示するとともに、運転・監視員の操作によりモーター、弁、開閉器、油圧装置など各種装置を制御するシステムであり、発電プラント、化学プラント、受配電設備、上下水道など、幅広い分野で用いられている。
【０００３】
典型的な監視制御システムは、図２のような構成をしている。監視の対象となる装置と信号の送受信を行うモジュール、運転・監視員との情報のやり取りを行うモジュール、それらの情報をもとに計算等を行うモジュール等から構成され、それらのモジュールは通信経路によって結合されている。
【０００４】
監視制御システムの各モジュールの処理内容は、回路図のように有向グラフで表されることが広く行われている。信号の処理はノードで表現され、信号の流れはノードをつなぐリンクで表現される。以下では信号処理を行うノードを演算素子と呼び、演算素子をつなぐリンクを信号線と呼ぶ。モジュールの処理内容は、古くはハードウェアの回路で実現されて来たが、柔軟性やコストパフォーマンスの観点から、近年はデジタル計算機上で動作を模擬して処理を実現する、つまりデジタル計算機上のプログラムとして実装することが多い。
【０００５】
処理内容を演算素子と信号線で表現するプログラミング言語の規格としては、国際規格ＩＥＣ６１１３１−３が挙げられる。演算素子は前記国際規格のＦＢＤ（Function Block
Diagram）で記述され、例えば図４のように表現される。演算素子と信号線で表現した処理内容は、例えば図３のように表現される。本発明では以降、信号線とそれらを処理する演算素子から構成される図面をロジック図面と呼ぶ。
【０００６】
近年、プログラムの大規模化に伴い、プログラムの試験項目を適切に抽出することが困難になりつつある。従来、ロジック図面に対しては、試験項目を効率的に抽出する方法がなく、設計者の経験等に頼っていた。また、実際に試験を行うためには試験項目だけでなく、具体的に入力する値やそのとき出力される望ましい値（期待値）などを記載し、試験テーブルを作成する必要があった。
【０００７】
プログラムの試験項目を抽出する例は、特許文献１に開示されている。特許文献１に記載のプログラムテスト仕様書生成装置は、プログラムを解析し、重要度に応じてテスト項目を抽出してプログラムテスト仕様書を生成する装置である。プログラムの中から変数・関数を抽出するプログラム解析部と、抽出された変数・関数を表示する表示部と、変数・関数を特定する情報を入力するための入力部と、入力された情報によって特定された変数・関数を含む記述を抽出するテスト項目抽出部と、抽出された記述をテスト項目とするプログラムテストを生成する仕様書生成部とを備えていた。また、出現頻度または制御構造の段数（ネストレベル）により変数・関数を選択し、それらに対して同様の手順により仕様書を生成する機構を備えていた。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００１−２７３１６９号公報（図１、図５）
【発明の概要】
【発明が解決しようとする課題】
【０００９】
監視制御システムの典型的なテストは、監視の対象となっているアナログ値に対して、適切なデジタル信号が出るかどうかのテストである。例えば、温度センサーのアナログ値を監視の対象とすれば、それを監視しているモジュールに対していくつかの値を入力し、異常高温・異常低温などのデジタル信号が通信経路に正しく出るかどうかを試験する。これを本発明では静的試験と呼ぶ。
【００１０】
監視制御システムにおける静的試験は、監視の対象となるアナログ値ごとに行うため数が多く、その試験テーブルも膨大なものとなりがちである。これらの作成を効率的に行うことが従来から課題となっていた。
【００１１】
文献１に記載のプログラムテスト仕様書生成装置は、Ｃ言語等の高級言語で記述されたプログラムからの試験項目の抽出を可能としている。ユーザとの対話により、また出現頻度やネストレベルにより、変数・関数から試験項目を抽出し、それらをもとに試験仕様書を生成する。ロジック図面においては、プログラム中の変数は信号線、関数は演算素子に相当する。このことを利用して、文献１に記載のプログラムテスト仕様書生成装置をロジック図面に適用して試験項目を抽出することは不可能ではないものの、多数ある変数・関数から、対話操作により試験項目を適切に抽出するのは大変な作業であり、効率的に行うことができない問題がある。
【００１２】
また、出現頻度やネストレベルは変数・関数の重要度のヒントにはなり、これらの尺度を用いて重点的に試験項目を決定することで、限られた試験項目で効率よく不具合の発生が抑えられることが期待できるものの、これらの尺度は実装に依存する尺度であって、システムに対する要求を表したものではなく、要求を満たすかどうかを検証する試験項目としては不適切である。さらに、実際に試験を行うためには試験項目ごとに試験テーブルを作成する必要があるが、それらについては記載がない。
【００１３】
本発明は、監視制御システムにおける試験テーブルを効率的に生成することを目的とする。
【課題を解決するための手段】
【００１４】
ロジック図面格納装置に格納されたロジック図面を解析するロジック図面解析部と、ロジック図面解析部が導出したロジック図面の入力点と、入力仕様格納装置に格納されたロジック図面の入力仕様とに基づいて、アナログ値を区分した入力値種別毎に入力値を生成する入力値生成部と、ロジック図面解析部が導出した演算素子の種別に対応する出力点毎に、入力値生成部で生成した入力値に対する期待値を生成する出力値生成部と、入力値生成部が生成した入力値と出力値生成部が生成した期待値に基づいて、試験テーブルを生成するテーブル生成部とを備えた。
【発明の効果】
【００１５】
本発明に係る試験テーブル生成装置は、ロジック図面の入力仕様とロジック図面解析部が解析した結果に基づいて、アナログ値である入力値と処理の出力の期待値を含む試験テーブルを生成するので、試験テーブルを効率的に生成することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施の形態１による試験テーブル生成装置の構成を示す図である。
【図２】典型的な監視制御システムの構成を示す図である。
【図３】図２のモジュールの処理内容をロジック図面で表わした例を示す図である。
【図４】代表的な演算素子を示す図である。
【図５】代表的な演算素子を説明する図である。
【図６】図１の信号線追跡部４及び演算素子検出部５の動作を示すフローチャートである。
【図７】図１のテーブル生成部９の動作を示すフローチャートである。
【図８】図１の入力仕様格納装置２に格納される入力仕様の例である。
【図９】図１の出力点記憶部７に記憶される出力点情報の例である。
【図１０】図１の入力値生成部８が生成する入力値情報の例である。
【図１１】図１の出力値生成部６が生成する出力値情報の例である。
【図１２】図１のテーブル生成部９が生成する試験テーブルの例である。
【図１３】本発明の実施の形態２によるモジュールのロジック図面の例を示す図である。
【図１４】実施の形態２による信号線追跡部４及び演算素子検出部５の動作を示すフローチャートである。
【図１５】図１４のステップＳ３２３の処理を示すフローチャートである。
【図１６】実施の形態２によるテーブル生成部９の動作を示すフローチャートである。
【図１７】実施の形態２による出力点記憶部７に記憶される出力点情報の例である。
【図１８】図１４のステップＳ３２３で求めた入力条件情報の例である。
【図１９】実施の形態２によるテーブル生成部９が生成する試験テーブル例である。
【図２０】本発明の実施の形態３によるモジュールのロジック図面の例を示す図である。
【図２１】実施の形態３による入力条件取得処理の動作を示すフローチャートである。
【図２２】実施の形態３によるテーブル生成部９が生成する試験テーブル例である。
【発明を実施するための形態】
【００１７】
実施の形態１．
図１は本発明の実施の形態１による試験テーブル生成装置の構成を示す図である。図１の試験テーブル生成装置は、ロジック図面格納装置１、入力仕様格納装置２、入力点照合部３、信号線追跡部４、演算素子検出部５、出力値生成部６、出力点記憶部７、入力値生成部８、テーブル生成部９、試験テーブル格納装置１０を備える。入力点照合部３は、ロジック図面格納装置１からロジック図面を取得し、入力仕様格納装置２から入力仕様を取得して、両者に記載されている入力点の照合を行い、図面上に記載されている入力点を発見する。
【００１８】
信号線追跡部４及び演算素子検出部５は、ロジック図面及び入力点照合部３からの情報をもとに、出力点記憶部７に出力点の情報を渡す。入力点照合部３と信号線追跡部４及び演算素子検出部５は、ロジック図面解析部２０である。ロジック図面解析部はロジック図面を解析する。一方、入力値生成部８は、入力点照合部３及び入力仕様格納装置２から照合点の下限値、上限値を取得し、試験に用いる入力値を生成する。出力値生成部６は、各入力値に対して正しい出力値を算出する。テーブル生成部９は、出力値生成部６、入力値生成部８の結果を受け、試験テーブルを生成する。試験テーブル格納装置１０は、テーブル生成部９が生成した試験テーブルを格納する。
【００１９】
図２は典型的な監視制御システムの構成を示す図である。監視制御システム５４は通信経路５３によって結合された４つのモジュール５０ａ、５０ｂ、５０ｃ、５０ｄを有する。モジュール５０ａ、５０ｂは、それぞれ監視の対象となる装置５１ａ、５１ｂと信号の送受信を行う。モジュール５０ｂは、運転・監視員５２との情報のやり取りを行う。モジュール５０ａは、モジュール５０ｂ、５０ｃ、５０ｄからの情報をもとに計算等を行う。
【００２０】
図３は図２のモジュール５０ａの処理内容をロジック図面で表わした例を示す図であり、図４は代表的な演算素子を示す図である。図３に示した処理は、装置５１ａの所定箇所の温度が異常の場合に警報信号を生成する処理である。図３のロジック図面ＬＧ１では、図４に示す演算素子を５つ使用した例である。演算素子１１は入力点であり、モジュール５０ｃからモジュール５０ａへの入力を表わす。演算素子１３は下限モニターであり、演算素子１３の入力が下限値を下回っていれば出力を１に、そうでない場合は出力を０にする。演算素子１６は上限モニターであり、演算素子１６の入力が上限値を上回っていれば出力を１に、そうでない場合は出力を０にする。演算素子１５、１８は出力点であり、他のモジュールへの出力を表わす。下限モニター１３はパラメータとして０℃の下限値を有し、上限モニター１６はパラメータとして１００℃の上限値を有する。
【００２１】
信号線１２は入力点１１から下限モニター１３、上限モニター１６へ信号が伝送される。信号線１２には分岐点ＣＰ１があり、信号線１２ａは入力点１１から下限モニター１３への信号線であり、信号線１２ｂは入力点１１から上限モニター１６への信号線である。信号線１４は下限モニター１３から出力点１５へ信号が伝送され、信号線１７は上限モニター１６から出力点１８へ信号が伝送される。破線は信号が連続値（アナログ値）であることを示し、実線は信号が離散値（デジタル値）であることを示す。ここで、連続値は浮動小数点で表わされる数値である。
【００２２】
図５は、図４の代表的な演算素子を説明する図である。代表的な演算素子としては、図４に示すように、論理積１０１、論理和１０２、否定１０３、ＲＳフリップフロップ１０４、入力点１０５（１０５ａ、１０５ｂ）、出力点１０６（１０６ａ、１０６ｂ）、上限モニター１０７、下限モニター１０８、アナログセレクタ１０７がある。論理積１０１は、入力が全て１のときのみ１を出力し、その他の場合は０を出力する。論理和１０２は、入力が全て０のときのみ０を出力し、その他の場合は１を出力する。否定１０３は、入力が０のとき１を出力し、入力が１のとき０を出力する。ＲＳフリップフロップ１０４は、入力Ｒ、Ｓの状態に応じた出力をする。（Ｒ、Ｓ）＝（０、０）の場合は、前回の出力を保持する。（Ｒ、Ｓ）＝（０、１）の場合は、１を出力する。（Ｒ、Ｓ）＝（１、０）の場合は、０を出力する。（Ｒ、Ｓ）＝（１、１）の場合は、出力が不定となる。
【００２３】
入力点１０５は他のモジュールからの入力であり、出力点１０６は他のモジュールへの出力である。上限モニター１０７は、入力が上限値を上回っていれば１を出力し、そうでない場合は０を出力する。下限モニター１０８は、入力が下限値を下回っていれば１を出力し、そうでない場合は０を出力する。アナログセレクタ１０７は、入力ＳＥＬが１なら入力１からの入力を出力し、入力ＳＥＬが０なら入力０からの入力を出力する。演算素子の一部は図５に示したパラメータを有す。図３ではパラメータをロジック図面上に示した。
【００２４】
演算素子の一部は、本発明で用いる特徴的な演算素子となる。特徴的な演算素子は、入力値として連続値、出力値として離散値を取り、比較対象となる連続値をパラメータとして持ち、入力された連続値とパラメータの大小関係によって、出力値が離散的に変化するような演算素子である。具体的には、上限モニター１０７、下限モニター１０８またはこれらの組み合わせである。
【００２５】
監視制御システムにおける静的試験の対象となる処理は、ロジック図面では一定の形式で書かれる場合が多い。例えば、図３に示したロジック図面ＬＧ１のように、演算素子として上限値モニター１６、下限値モニター１３を用意し、監視対象となる温度センサー（入力点１１）のアナログ値を入力としてそれらに接続し、処理ノードのパラメータとして閾値（上限値や下限値）を与え、異常高温・異常低温を示すデジタル信号をそれらの出力（出力点１５、１６）から取るなどである。
【００２６】
また、監視対象となるアナログ値は各種センサーなどハードウェアと密接に関係することから、その入力仕様は上位仕様書やハードウェア仕様書などで決定されていることが多く、これらの仕様書から取得可能なことが期待できる。したがって、本発明は、これら監視制御システムの静的試験の特徴、並びにロジック図面の記述方法の特徴に着目し、試験テーブルを自動的に生成する。
【００２７】
試験テーブル生成装置の動作を、フローチャートを用いて説明する。図６は試験テーブル生成装置の信号線追跡部４及び演算素子検出部５の動作を示すフローチャートであり、図７は試験テーブル生成装置のテーブル生成部９の動作を示すフローチャートである。図６を用いて、試験テーブル生成装置の信号線追跡部４及び演算素子検出部５の動作を説明する。
【００２８】
ステップＳ１０１で照合した入力点を追跡開始点にセットする。次に、ステップＳ１０２で追跡開始点から信号線を辿る。ステップＳ１０３で分岐点を発見すればステップＳ１０４、そうでなければステップＳ１０５に飛ぶ。ステップＳ１０４で分岐点を追跡開始点に加え、分岐しているうちの一本の信号線の追跡を続行し、ステップＳ１０３に飛ぶ。ステップＳ１０５で特徴的な演算素子を発見すればステップＳ１０６、そうでなければステップＳ１０７に飛ぶ。ステップＳ１０６で演算素子の種別を記憶し、信号線の追跡を続行し、ステップＳ１０３に飛ぶ。ステップＳ１０７で出力点を発見すればステップＳ１０８、そうでなければステップＳ１０９に飛ぶ。ステップＳ１０８で出力点と追跡中に現れた特徴的な演算素子の種別を出力点記憶部７に渡す。次に、ステップＳ１０９で全ての追跡開始点から信号線を追跡したかどうかを調べ、そうであれば処理を終了し、そうでなければステップＳ１０２に飛ぶ。
【００２９】
図７を用いて、試験テーブル生成装置のテーブル生成部９の動作を説明する。テーブル生成部９は以下に説明する手順により、図１２に示すような試験テーブルを生成する。図７において、ステップＳ２０１で入力点及び出力点の名称から、試験テーブルの点名称の行を生成する。次に、ステップＳ２０２で値の行に生成した入力値の一つを追加する。次に、ステップＳ２０３で入力値の種別と、各出力点の種別の組み合わせから、出力値を求める。次に、ステップＳ２０４で値の行に出力値を追加する。次に、ステップＳ２０５で全ての出力点に対して値を追加したか判断し、そうであればステップＳ２０６に、そうでなければステップＳ２０３に飛ぶ。ステップＳ２０６で全ての入力値に対して値の行を生成したか判断し、そうでなければステップＳ２０２に飛び、そうであれば処理を終了する。
【００３０】
次に、図３に示したロジック図面ＬＧ１を用いて、試験テーブル生成装置の動作を説明する。ロジック図面格納装置１にはロジック図面ＬＧ１が格納され、入力仕様格納装置２には図８に示す入力仕様ＩＴＢ１が格納されている。図８は入力仕様格納装置２に格納される入力仕様の例である。入力仕様ＩＴＢ１は、入力点１１に対応する温度計Ａの温度の判定基準となる上限値及び下限値が記載されたものである。
【００３１】
入力点照合部３は、ロジック図面格納装置１からロジック図面ＬＧ１を取得し、また入力仕様格納装置２から入力仕様ＩＴＢ１を取得して入力点を照合し、ロジック図面ＬＧ１上の入力点１１を発見する。信号線追跡部４及び演算素子検出部５は、ロジック図面ＬＧ１及び入力点照合部３からの情報をもとに、出力点記憶部７に出力点の情報である出力点情報ＯＴＢ１（図９参照）を渡す。このときの信号線追跡部４及び演算素子検出部５の動作を、フローチャート図６を用いて説明する。
【００３２】
まず、ステップＳ１０１で照合した入力点１１を追跡開始点にセットする。ステップＳ１０２で入力点１１から信号線１２を追跡し、ステップＳ１０３で分岐点ＣＰ１を発見する。ステップＳ１０４で分岐点ＣＰ１を記憶するとともに、分岐する信号線のいずれか（ここでは左側の信号線１２ａとする）の追跡を続行し、ステップＳ１０５で特徴的な演算素子である下限モニター１３を発見する。ステップＳ１０６で下限モニター１３のパラメータを種別「下限」として記憶する。さらに信号線１４の追跡を続行し、信号線１４を辿る。次にステップＳ１０７において出力点１５を発見し、ステップＳ１０８で出力点１５のパラメータである出力点名「Ａ異常低温警報信号」と下限モニター１３の種別「下限」を出力点記憶部７に渡す。
【００３３】
ステップＳ１０９の条件判断は、分岐点ＣＰ１から右側の信号線１２ｂの追跡が残っているので、ＮＯ（図面ではＮと表記）となり、ステップＳ１０２において追跡開始点から未追跡の信号線（ここでは信号線１２ｂ）の追跡を再開する。上述と同様に、ステップＳ１０３、Ｓ１０５、Ｓ１０７の処理により特徴的な演算素子である上限モニター１６と出力点１８を発見する。ステップＳ１０８で出力点１８のパラメータである出力点名「Ａ異常高温警報信号」と上限モニター１６の種別「上限」を出力点記憶部７に渡す。その後ステップＳ１０９の条件判断がＹＥＳ（図面ではＹと表記）となり処理を終了する。出力点記憶部７に渡される出力点情報ＯＴＢ１をまとめたものを図９に示す。図９は出力点記憶部７に記憶される出力点情報の例である。
【００３４】
入力値生成部８は、入力点照合部３から入力点照合部３が照合した入力点１１の入力点名を取得し、入力仕様格納装置２に格納された入力点１１の入力仕様ＩＴＢ１から下限値、上限値を取得し、試験に用いる入力値を生成し、入力であるアナログ値を区分した入力値種別毎の入力値を含む入力値情報ＯＴＢ２を生成する（入力値生成手順）。本実施例では、入力値の例として、図１０のように５つの値、すなわち下限未満値、下限値、中間値、上限値、上限超過値を生成する。このとき生成する値とその種別を図１０に示す。図１０は入力値生成部８が生成する入力値情報の例である。
【００３５】
出力値生成部６は、出力点記憶部７に記憶された出力点情報ＯＴＢ１と入力値生成部８で生成された入力値情報ＯＴＢ２をつき合わせ、各入力値の種別に対して正しい出力値を出力点の種別ごと（出力点１５、１８ごと）に算出する（出力値生成手順）。算出した出力点の値の表である出力値情報ＯＴＢ３を図１１に示す。図１１は出力値生成部６が生成する出力値情報の例である。
【００３６】
テーブル生成部９は、出力値生成部６及び入力値生成部８の結果を受け、試験テーブルＴＴＢ１を生成する。このときのテーブル生成部９の動作を、フローチャート図７を用いて説明する。ステップＳ２０１において点名称の行に、入力点１１の入力点名「温度計Ａ」と、出力点１５の出力点名「Ａ異常低温警報信号」と、出力点１８の出力点名「Ａ異常高温警報信号」が生成される。ステップＳ２０２において入力値の一つである「−１」が値の行に追加される。ステップＳ２０３において入力値の種別「下限未満値」と、出力点１５（「Ａ異常低温警報信号」）の種別「下限」、及び図１１の出力値情報ＯＴＢ３から、出力値「１」が得られる。ステップＳ２０４において出力値「１」を値の行に追加する。以下、ステップＳ２０５、Ｓ２０６により全ての入力値、全ての出力点に対して値の行が求められ、試験テーブルＴＴＢ１が生成される。本実施例で生成される試験テーブルＴＴＢ１を図１２に示す。図１２はテーブル生成部９が生成する試験テーブルの例である。試験テーブル格納装置１０はテーブル生成部９が生成した試験テーブルＴＴＢ１を格納する。
【００３７】
試験テーブルＴＴＢ１は、入力点１１と出力点１５、１８の点名称を列とし、入力点１１の入力値と、入力点１１の入力値に対応する出力点１５、１８の出力値を行とした表形式なので、入力点１１と出力点１５、１８の点名称を見て識別することができる。
【００３８】
実施の形態１の試験テーブル生成装置は、ロジック図面ＬＧ１の入力点１１とその仕様ＩＴＢ１（上限値、下限値など）を入力仕様格納装置２から取得し、入力点１１からロジック図面ＬＧ１を追跡して特徴的な演算素子（下限モニター１３、上限モニター１６）を検出する。特徴的な演算素子の下流の出力点１５、１８を特定し、入力点１１における値とそのときの出力点１５、１８における期待値を自動生成し、試験テーブルＴＴＢ１に記録する。このことにより、人手による試験テーブルＴＴＢ１の作成、管理が不要となり、試験に関する手作業が大幅に減少する。
【００３９】
ロジック図面解析部２０は信号線追跡部４を有するので、ロジック図面ＬＧ１に記述された信号線を、信号の流れる方向（下流方向）や信号の流れる方向と逆方向（上流方向）に追跡することができる。ロジック図面解析部２０は演算素子検出部５を有するので、演算素子の種類や演算素子のパラメータを検出でき、信号線の追跡順序の選択や出力点情報ＯＴＢ1の生成を適切に行うことができる。ロジック図面解析部２０は入力点照合部３を
有するので、入力仕様ＩＴＢ１の入力点をロジック図面ＬＧ１から正確に検出し、照合することができる。
【００４０】
実施の形態１の試験テーブル生成装置は、ロジック図面ＬＧ１と仕様ＩＴＢ１の双方から情報を抽出して、静的試験の試験テーブルＴＴＢ１を生成するので、監視の対象となるアナログ値が多数あっても、適切な入力値とこれに対する期待値を効率的に作成することができる。適切な入力値は、入力点１１とその仕様ＩＴＢ１に記載された閾値（上限値や下限値）から、この閾値とこの閾値の上下の値が選択されるので、試験テーブル生成装置は、必要十分な数の入力値を生成することができる。必要十分な数の入力値に対する出力点１５、１８の期待値も生成するので、試験テーブル生成装置は、適切な静的試験の試験テーブルＴＴＢ１を生成することができる。
【００４１】
以上のように実施の形態１の試験テーブル生成装置によれば、ロジック図面格納装置１に格納されたロジック図面ＬＧ１を解析するロジック図面解析部２０と、ロジック図面解析部２０が導出したロジック図面ＬＧ１の入力点１１と、入力仕様格納装置２に格納されたロジック図面ＬＧ１の入力仕様ＩＴＢ１とに基づいて、アナログ値を区分した入力値種別毎に入力値を生成する入力値生成部８と、ロジック図面解析部２０が導出した演算素子の種別に対応する出力点１５、１８毎に、入力値生成部８で生成した入力値に対する期待値を生成する出力値生成部６と、入力値生成部８が生成した入力値と出力値生成部６が生成した期待値に基づいて、試験テーブルＴＴＢ１を生成するテーブル生成部９とを備え、ロジック図面の入力仕様とロジック図面解析部が解析した結果に基づいて、アナログ値である入力値と処理の出力の期待値を含む試験テーブルを生成するので、静的試験の試験テーブルＴＴＢ１を効率的に生成することができる。
【００４２】
実施の形態１の試験テーブル生成方法によれば、ロジック図面ＬＧ１を解析して導出したロジック図面ＬＧ１の入力点１１と、ロジック図面ＬＧ１の入力仕様ＩＴＢ１とに基づいて、アナログ値を区分した入力値種別毎に入力値を生成する入力値生成手順と、ロジック図面を解析して導出した演算素子の種別に対応する出力点１５、１８毎に、入力値生成手順で生成した入力値に対する期待値を生成する出力値生成手順と、入力値生成手順で生成した入力値と出力値生成手順で生成した期待値に基づいて試験テーブルを生成するテーブル生成手順とを含み、ロジック図面の入力仕様とロジック図面解析部２０が解析した結果に基づいて、アナログ値である入力値と処理の出力の期待値を含む試験テーブルを生成するので、静的試験の試験テーブルＴＴＢ１を効率的に生成することができる。
【００４３】
なお、本実施例においては、図３のようなごく簡単なロジック図面について試験テーブ
ル生成の説明を行ったが、このような単純なケースに限定されるものではない。信号線追跡部４は各々分岐を追跡して演算素子検出部５が演算素子を検出する。例えば、モジュール内での動作が大規模になると、一枚の図面に挙動を記述することが困難になり、複数の図面によって表現することが多い。そのとき、各図面中においては、他の図面からの信号、他の図面への信号をシンボルで表す。信号線追跡部４は信号線の追跡中にそれらのシンボルが現れた場合、複数の図面にまたがって信号線の追跡を行う。
【００４４】
また、演算素子検出部５が出力点、特徴的な演算素子以外の演算素子を見つけた場合、否定１０３など出力値から入力値に変換できるものは、その変換ルールを記憶し、試験テーブル生成の各値の生成のときにそれに応じて変換した値を記入することが考えられる。この仕組みを適用すると、例えば、図３の下限モニター１３と出力点１５の間に否定１０３が挿入されている場合、試験テーブルは図１２において、出力点名「Ａ異常低温警報信号」の値をそれぞれ０と１を反転したものが得られる。
【００４５】
実施の形態２．
実施の形態２では、２入力以上の演算素子を有する複雑なロジック図面で記述されたモジュールに対する試験テーブル生成方法を説明する。図１３は、実施の形態２によるモジュール５０ａ（図２参照）のロジック図面の例を示す図である。図１３に示した処理は、装置５１ａの所定箇所の温度が異常の場合に、設定条件に合わせた警報信号を生成する処理である。図１３のロジック図面ＬＧ２では、演算素子を１４個使用した例である。ロジック図面ＬＧ２は、５つの入力点２１、３１、４３、４０、４２と、２つの出力点２５、２８を有する。
【００４６】
入力点２１から信号線２２、下限モニター２３、信号線２４、論理和２９、信号線３０、出力点２５の系統１は、温度計Ａの異常低温警報信号を生成する。入力点２１または入力点３１からアナログセレクタ３３、信号線３４、上限モニター２６、信号線３５、論理和３６、信号線２７、出力点２８の系統２は、温度計Ａまたは温度計Ｂの異常高温警報信号を生成する。温度計Ｂは、副次的な温度計であり、温度計Ａの故障時に選択信号（入力点４３）で切替えられるものである。アナログセレクタ３３は選択信号（入力点４３）に応じて、信号線２２に接続された入力点２１（温度計Ａ）と、信号線３２に接続された入力点３１（温度計Ｂ）とを切替える。
【００４７】
入力点４０、信号線３９、入力点４２、信号線４１、ＲＳフリップフロップ３８、信号線３７、否定４６、信号線４５を有する極性指定系統は、出力点２５及び出力点２８の信号の極性を変更する信号を伝送する。入力点４０の設定１と入力点４２の設定２によりＲＳフリップフロップ３８の信号（信号線３７）を変更し、信号線３７に接続された論理和２９と、否定４６で反転した信号（信号線４５）が入力される論理和３６により、出力点２５及び出力点２８の信号の極性を変更する。論理和２９、３６と、アナログセレクタ３３と、ＲＳフリップフロップ３８は２入力以上の演算素子である。
【００４８】
実施の形態２による試験テーブル生成装置の動作を、フローチャートを用いて説明する。図１４は、実施の形態２による試験テーブル生成装置の信号線追跡部４及び演算素子検出部５の動作を示すフローチャートであり、図１５は、図１４のステップＳ３２３の処理を示すフローチャートである。図１６は、実施の形態２による試験テーブル生成装置のテーブル生成部９の動作を示すフローチャートである。図１４を用いて、試験テーブル生成装置の信号線追跡部４及び演算素子検出部５の動作を説明する。図６に示した実施の形態１による信号線追跡部４及び演算素子検出部５の動作を示すフローチャートとは、図６のステップＳ１０８に変えて、ステップＳ３２３、Ｓ３２４を有し、さらにステップＳ３２０、Ｓ３２１、Ｓ３２２が追加された点で異なる。
【００４９】
ステップＳ１０１で照合した入力点を追跡開始点にセットする。次に、ステップＳ１０２で追跡開始点から信号線を辿る。ステップＳ１０３で分岐点を発見すればステップＳ１０４、そうでなければステップＳ１０５に飛ぶ。ステップＳ１０４で分岐点を追跡開始点に加え、分岐しているうちの一本の信号線の追跡を続行し、ステップＳ１０３に飛ぶ。ステップＳ１０５で特徴的な演算素子を発見すればステップＳ１０６、そうでなければステップＳ３２０に飛ぶ。ステップＳ１０６で演算素子の種別を記憶し、信号線の追跡を続行し、ステップＳ１０３に飛ぶ。ステップＳ３２０で、２入力以上の演算素子を発見したかどうかの判断を行い、そうであればステップＳ３２１に、そうでなければステップＳ１０７に飛ぶ。
【００５０】
ステップＳ３２１で、追跡中の入力の値が演算素子の出力と等しくなるように、他方の演算素子の入力値を求める。次に、ステップＳ３２２で、演算素子の入力につながる信号線と、上記入力値を制約条件として記憶し出力側の信号線の追跡を続行し、ステップＳ１０３に飛ぶ。ステップＳ１０７で、出力点を発見したかどうかの判断を行い、そうであればステップＳ３２３へ、そうでなければステップＳ１０９に飛ぶ。ステップＳ３２３で、追跡中に現れた制約条件を満たすための入力点とその入力値を求める。次に、ステップＳ３２４で、出力点、追跡中に現れた特徴的な演算素子の種別、上で求めた入力点とその入力値を出力点記憶部７に渡す。次に、ステップＳ１０９で、全ての追跡開始点から信号線を追跡したかしたかどうかの判断を行い、そうであれば処理を終了し、そうでなければステップＳ１０２に飛ぶ。
【００５１】
ステップＳ３２３の処理を、図１５を用いて、詳しく説明する。まず、ステップＳ４０２で、制約条件で与えられた信号線を逆向きに追跡する。次に、ステップＳ４０３で、入力点を発見したかどうか判断を行い、そうであればステップＳ４０４へ、そうでなければステップＳ４０５へ飛ぶ。ステップＳ４０４で、入力条件として、その入力点と制約条件の値を設定し、処理を終了する。ステップＳ４０５で、演算素子を発見したかどうか判断を行い、そうであればステップＳ４０６へ、そうでなければステップＳ４０９へ飛ぶ。ステップＳ４０６で、信号線を制約条件の値とするための演算素子の各入力を求める。次に、ステップＳ４０７で、演算素子の入力点に接続する信号線と、上で求めた入力を制約条件として、入力条件取得（このフローチャート）を呼び出す。ステップＳ４０８で、演算素子の各入力に対して、入力条件を全て求めたかどうか判断を行い、そうであれば処理を終了し、そうでなければステップＳ４０７へ飛ぶ。ステップＳ４０９で、信号線の逆向きの追跡を続行し、ステップＳ４０３に飛ぶ。
【００５２】
図１６を用いて、実施の形態２による試験テーブル生成装置のテーブル生成部９の動作を説明する。テーブル生成部９は以下に説明する手順により、図１９に示すような試験テーブルを生成する。図７に示した実施の形態１のテーブル生成部９の動作を示すフローチャートとは、図７のステップＳ２０６に変えて、ステップＳ５０８を有し、さらにステップＳ５０２、Ｓ５０４が追加された点で異なる。
【００５３】
図１６において、ステップＳ２０１で、入力点及び出力点の名称から、試験テーブルの点名称の行を生成する。次に、ステップＳ５０２で、同じ入力条件を持つ出力点一つ以上を取り出す。次に、ステップＳ２０２で、値の行に生成した入力値の一つを追加する。次に、ステップＳ５０４で、値の行に出力点を有効にする入力条件を追加する。次に、ステップＳ２０３で、入力値の種別と、各出力点の種別の組み合わせから、出力値を求める。次に、ステップＳ２０４で、値の行に出力値を追加する。次に、ステップＳ２０５で、全ての出力点に対して値を追加したか判断し（全ての入力値に対して値の行を生成したか判断を行い）、そうであればステップＳ５０８に、そうでなければステップＳ２０２に飛ぶ。ステップＳ５０８で、全ての出力点に対して処理したか判断を行い、そうであれば処理を終了し、そうでなければステップＳ５０２に飛ぶ。
【００５４】
次に、図１３に示したロジック図面ＬＧ２を用いて、試験テーブル生成装置の動作を説明する。ロジック図面格納装置１にはロジック図面ＬＧ２が格納され、入力仕様格納装置２には実施の形態１と同じ図８に示す入力仕様ＩＴＢ１が格納されている。
【００５５】
入力点照合部３は、ロジック図面格納装置１からロジック図面ＬＧ２を取得し、また入力仕様格納装置２から入力仕様ＩＴＢ１を取得して入力点を照合し、ロジック図面ＬＧ２上の入力点２１を発見する。信号線追跡部４及び演算素子検出部５は、ロジック図面ＬＧ２及び入力点照合部３からの情報をもとに、出力点記憶部７に出力点の情報である出力点情報ＯＴＢ４（図１７参照）を渡す。このときの信号線追跡部４及び演算素子検出部５の動作を、フローチャート図１４を用いて説明する。
【００５６】
まず、ステップＳ１０１で照合した入力点２１を追跡開始点にセットする。ステップＳ１０２で入力点２１から信号線２２を追跡し、ステップＳ１０３で分岐点ＣＰ２を発見する。ステップＳ１０４で分岐点ＣＰ２を記憶するとともに、分岐する信号線のいずれか（ここでは左側の信号線２２ａとする）の追跡を続行し、ステップＳ１０５で特徴的な演算素子である下限モニター２３を発見する。ステップＳ１０６で下限モニター２３のパラメータを種別「下限」として記憶する。さらに信号線２４の追跡を続行し、信号線２４を辿る。次にステップＳ３２０において演算素子である論理和２９を発見し、ステップＳ３２１において論理和２９の出力が追跡中の入力と等しくなるためには論理和２９の他方の入力が「１」となる必要があることを算出し、ステップＳ３２２で制約条件「信号線３７が１となる」を得て記憶し、信号線３０を追跡する。次にステップＳ１０７において出力点２５を発見し、ステップＳ３２３で制約条件「信号線３７が１となる」を満たすための入力点とその入力値を求める。
【００５７】
ロジック図面ＬＧ２において制約条件「信号線３７が１となる」が与えられたときのステップＳ３２３の処理内容を、フローチャート図１５を用いて説明する。まず、ステップＳ４０２にて制約条件で与えられた信号線３７を逆向きに追跡し、ステップＳ４０５で演算素子３８を発見する。これは図４よりＲＳフリップフロップ１０４であり、図５よりステップＳ４０６で出力値１を得るための入力条件Ｒ＝０，Ｓ＝１を得る。
【００５８】
ステップＳ４０７でＲＳフリップフロップ３８の入力点Ｒに接続する信号線３９と、その時の値０が制約条件として得られ、図１５の処理が再帰的に呼び出される。ステップＳ４０２にて制約条件で与えられた信号線３９を逆向きに追跡し、ステップＳ４０３で入力点４０を発見する。入力条件として入力点４０の入力点名「設定１」、その値０を得て、呼び出しを終了する。呼出元に戻り、ステップＳ４０８はＮＯとなり、ステップＳ４０７においてＳ側の信号線についても同様に図１５の処理が再帰的に呼び出され、入力点４２の入力点名「設定２」、その値１を得て、呼び出しを終了する。呼出元に戻り、最後にステップＳ４０８はＹＥＳとなって処理を終了する。このとき得られた各入力点の値の組は入力条件となる。各入力点の値を含む入力条件情報ＯＴＢ５を図１８に示す。図１８はステップＳ３２３で求めた入力条件情報の例である。
【００５９】
次に、図１４のステップＳ３２４において、出力点１５のパラメータである出力点名「Ａ異常低温警報信号」、下限モニター２３の種別「下限」、入力点４０の入力点名「設定１」に対する入力値「０」、入力点４２の入力点名「設定２」に対する入力値「１」を出力点記憶部７に渡す。ステップＳ１０９の条件判断は、分岐点ＣＰ２から右側の信号線２２ｂの追跡が残っているので、ＮＯとなり、ステップＳ１０２において追跡開始点から未追跡の信号線（ここでは信号線２２ｂ）の追跡が行われる。
【００６０】
ステップＳ１０３、Ｓ１０５は共にＮＯとなり、ステップＳ３２０で演算素子３３（図
４におけるアナログセレクタ）を発見する。ステップＳ３２１において、信号線３４が信号線２２ｂと等しくなる条件は「ＳＥＬ＝１」なので、ステップＳ３２２で「信号線４４＝１」を制約条件として記録し、出力側の信号線３４の追跡を続行する。ステップＳ１０５で特徴的な演算素子である上限モニター２６を発見し、ステップＳ１０６で上限モニター２６の種別「上限」を記録して信号線３５の追跡を続行する。ステップＳ３２０で演算素子である論理和３６を発見し、信号線３５が信号線２７と等しくなる条件は論理和３６の他方の入力が１となることなので、ステップＳ３２２で「信号線４５＝１」を制約条件として記録し、論理和３６の出力側の信号線２７の追跡を続行する。ステップＳ１０７で出力点２８を発見し、ステップＳ３２３で制約条件を満たすための入力点と入力値を求める。
【００６１】
ステップＳ３２３の処理を詳述した図１５のフローチャートで説明する。アナログセレクタ３３に関数する制約条件「信号線４４＝１」については、ステップＳ４０２で信号線４４を逆向きに追跡し、ステップＳ４０３で入力点４３を発見する。ステップＳ４０４で入力条件「選択信号＝１」を得て、処理を終了する。
【００６２】
論理和３６に関する制約条件「信号線４５＝１」については、ステップＳ４０２で信号線４５を逆向きに追跡し、ステップＳ４０５で演算素子４６を発見する。ステップＳ４０６で信号線４５を１とするための否定４６の入力値は０なので、「信号線３７＝０」制約条件として再度図１５を呼び出す。ステップＳ４０２は信号線３７を逆向きに追跡し、ステップＳ４０５で演算素子３８を発見する。これは図４よりＲＳフリップフロップであり、出力を０とするための条件はＲ＝１、Ｓ＝０なので、制約条件「信号線３９＝１」及び「信号線４１＝０」を得る。これらのうちのいずれか（ここでは「信号線３９＝１」）に対して、図１５を再度呼び出し、ステップＳ４０２で信号線３９を逆向きに追跡し、ステップＳ４０３で入力点４０を発見し、ステップＳ４０４で入力条件「設定１＝１」を得て処理を終了する。ステップＳ４０８はＮＯとなり、ステップＳ４０７でもう一方（ここでは「信号線４１＝０」）の制約条件に関して図１５を呼び出し、ステップＳ４０２で信号線４１を逆向きに追跡し、ステップＳ４０３で入力点４２を発見する。ステップＳ４０４で入力条件「設定２=０」を得て処理を終了する。
【００６３】
これらの結果、出力点記憶部７に渡される情報である出力点情報ＯＴＢ４をまとめると図１７となる。図１７は本発明の実施の形態２による出力点記憶部７に記憶される出力点情報の例である。以下、出力値生成部６、入力値生成部８においては実施の形態１と同様の処理となり、図１０の入力値情報ＯＴＢ２、図１１の出力値情報ＯＴＢ３を得る。テーブル生成部９においては図１０、図１１を用いて入力条件を併記した試験テーブルＴＴＢ２を生成する。以下、テーブル生成部９の動作を示すフローチャート図１６を用いて説明する。
【００６４】
ステップＳ２０１で点名称の行に、入力点２１の入力点名「温度計Ａ」と、入力点４３の入力点名「選択信号」と、入力点４０の入力点名「設定１」と、入力点４２の入力点名「設定２」と、出力点２５の出力点名「Ａ異常低温警報信号」と、出力点２８の出力点名「Ａ（Ｂ）異常高温警報信号」が生成される。なお、温度計Ｂは副次的な温度計であり、温度計Ａの故障時に選択信号（入力点４３）で切替えられるものであるから、入力点３１の入力点名「温度計Ｂ」は省略している。
【００６５】
ステップＳ５０２で入力条件および一つ以上の出力点（選択信号＝条件なし、設定値１＝０、設定値２＝１、出力点＝｛Ａ異常低温警報信号｝）が得られ、ステップＳ２０２で入力値情報ＯＴＢ２から入力値の一つである「−１」が値の行に追加される。ステップＳ５０４で入力条件（選択信号＝条件なし、設定値１＝０、設定値２＝１）が追加される。ステップＳ２０３で入力値の種別「下限未満値」と、出力点２５（「Ａ異常低温警報信号
」）の種別「下限」、及び図１１の出力値情報ＯＴＢ３から、出力値「１」が得られる。ステップＳ２０４において出力値「１」を値の行に追加する。以下、ステップＳ２０５、Ｓ５０８により全ての入力値、全ての出力点に対して値の行が求められ、試験テーブルＴＴＢ２が生成される。本実施例で生成される試験テーブルＴＴＢ２を図１９に示す。図１９は、実施の形態２によるテーブル生成部９が生成する試験テーブルの例である。試験テーブル格納装置１０はテーブル生成部９が生成した試験テーブルＴＴＢ２を格納する。
【００６６】
実施の形態２の試験テーブル生成装置は、２入力以上の演算素子を有し、入力点と出力点の間に様々な演算素子が関係する複雑なロジック図面で記述されたモジュールに対しても、試験の条件となる入力点とその設定値を求めて、試験テーブルを生成することができる。このことによって、複雑なロジック図面を持つモジュールに対しても、人手による試験テーブルの作成、管理が不要となり、試験に関する手作業がさらに減少する。
【００６７】
実施の形態３．
実施の形態２のロジック図面ＬＧ２では設定条件の入力点が２つの場合で説明したが、多くの設定条件の入力点がある等の複雑なロジック図面で記述されたモジュールに対する試験テーブル生成方法を説明する。演算素子に直接的または間接的に入力となる全ての入力点の集合を一つ求めることで、試験を行うのに十分な試験テーブルを生成する。図２０は、実施の形態３によるモジュール５０ａ（図２参照）のロジック図面の例を示す図である。図２０に示した処理は、装置５１ａの所定箇所の温度が異常の場合に、設定条件に合わせた警報信号を生成する処理である。図２０のロジック図面ＬＧ３では、設定条件部分の演算素子を１２個使用した例である。ロジック図面ＬＧ３は、７つの入力点２１、３１、４３、８０２、８０３、８０４、８０５と、２つの出力点２５、２８を有する。実施の形態２のロジック図面ＬＧ２（図１３）とは、信号線３７へ設定条件信号を生成する論理が複雑になっている点で異なる。
【００６８】
実施の形態３による試験テーブル生成装置の動作を、フローチャートを用いて説明する。試験テーブル生成装置の信号線追跡部４及び演算素子検出部５の動作を示すフローチャートは実施の形態２の図１４と同様であり、テーブル生成部９の動作を示すフローチャートは実施の形態２の図１６と同様である。図１４のステップＳ３２３で制約条件から入力条件を得るための処理が実施の形態２とは異なる。図２１は実施の形態３による入力条件取得処理の動作を示すフローチャートである。
【００６９】
図２１において、ステップＳ４０２で、制約条件で与えられた信号線を逆向きに追跡する。次に、ステップＳ４０３で、入力点を発見したかどうかの判断を行い、そうであればステップＳ６０６に、そうでなければステップＳ４０５に飛ぶ。ステップＳ４０５で、演算素子を発見したかどうかの判断を行い、そうであればステップＳ６０５に、そうでなければステップＳ４０９に飛ぶ。ステップＳ４０９で、信号線の逆向きの追跡を続行し、ステップＳ４０３に飛ぶ。ステップＳ６０５で、入力となっている信号線のうち一本の追跡を続行し、残りの信号線を未追跡信号線として記録し、ステップＳ４０３に飛ぶ。ステップＳ６０６で、入力点を記憶する。次に、ステップＳ６０７で、未追跡信号線が残っているかどうかの判断を行い、そうであればステップＳ６０８に、そうでなければステップＳ６０９に飛ぶ。ステップＳ６０８で、未追跡信号線を取り出し逆向きに追跡し、ステップＳ４０３に飛ぶ。ステップＳ６０９で、入力点の組み合わせパターンを生成する。次に、ステップＳ６１０で、論理シミュレーションを行い、制約条件で与えられた信号線の値を計算する。次に、ステップＳ６１１で、信号線の値が制約条件の値と等しいかどうかの判断を行い、そうであればステップＳ６１３に、そうでなければステップＳ６１２に飛ぶ。ステップＳ６１２で、全ての入力パターンを試したかどうかの判断を行い、そうであればステップＳ６１４に、そうでなければステップＳ６０９に飛ぶ。ステップＳ６１３で、入力点の組み合わせパターンを入力条件とし、処理を終了する。ステップＳ６１４で、制約
条件を満たす入力条件を生成できない旨を通知し、処理を終了する。
【００７０】
次に、図２０に示したロジック図面ＬＧ３を用いて、試験テーブル生成装置の動作を説明する。ロジック図面格納装置１にはロジック図面ＬＧ３が格納され、入力仕様格納装置２には実施の形態１及び２と同じ図８に示す入力仕様ＩＴＢ１が格納されている。
【００７１】
図２０のロジック図面ＬＧ３と図１３のロジック図面ＬＧ２との違いは、図１３における信号３７から上流側が図２０における信号３７から上流側とは異なっていることである。従って、実施の形態２の図１４のステップＳ３２３までは全く同様に処理される。試験テーブル生成装置の信号線追跡部４及び演算素子検出部５の動作のおけるステップＳ３２３までの説明は繰り返さない。ロジック図面図ＬＧ３、制約条件「信号線３７が１となる」が与えられたときのステップＳ３２３の処理内容を、フローチャート図２１を用いて説明する。
【００７２】
ステップＳ４０２にて制約条件で与えられた信号線３７を逆向きに追跡し、ステップＳ４０５で演算素子である論理和８０６を検出する。ステップＳ６０５で信号線８０７の追跡を続行するとともに、信号線８０８を未追跡信号線として記録する。以下左側に現れる入力信号線を逆向きに追跡すると、ステップＳ４０３で入力点８０２を発見する。ステップＳ６０６でその入力点を記録する。ステップＳ６０７の判断は、論理和８０６の他の入力である信号線８０８等の追跡が残っているので、ＹＥＳとなり、ステップＳ６０８で未追跡信号線の一つ（例えば信号線８０８）を取り出して逆向きに追跡する。これらを繰り返して、ステップＳ６０７がＮＯとなったとき、ステップＳ６０６で記憶さえた入力点は４つとなり、入力点８０２（設定１）、入力点８０３（設定２）、入力点８０４（設定３）、入力点８０５（設定４）が図示しない入力点記憶部に記録されている。
【００７３】
ステップＳ６０９は上記入力点の取り得る値を組み合わせて入力パターンを生成する。ロジック図面ＬＧ３には設定１〜４の入力点が４つあるので、１６通りの入力パターンからフローチャート図２１の終了条件になるまで順次生成し、ステップＳ６１０以降の処理を行う。例えば、「設定１＝０、設定２＝０、設定３＝０、設定４＝０」を生成する。ステップＳ６１０でこのパターンを用いて論理シミュレーションを行い、信号線３７の値（この例では０となる）を得る。ステップＳ６１１の判断は、制約条件「信号線３７が１となる」とは異なり０を得たので、ＮＯとなり、ステップＳ６１２の判断は、まだ制約条件「信号線３７が１となる」入力パターンを試していないので、ＮＯとなり、ステップＳ６０９で再度パターンの生成が行われる。以上の処理により、一例として「設定１＝０、設定２＝０、設定３＝０、設定４＝１」の論理シミュレーションで信号線３７の値が１となるので、この入力パターンを入力条件として処理を終了する。
【００７４】
なお、全ての入力パターンを生成しても制約条件が満たされない場合、図２０の例では設定１〜４の０または１全ての組み合わせ（１６通り）で信号線３７が値１とならない場合は、何らかの不具合があると考えられるので、ステップＳ６１２でそれを検出し、ステップＳ６１４でその旨を通知する。
【００７５】
試験テーブル生成装置の信号線追跡部４及び演算素子検出部５の動作（図１４）のおけるステップＳ３２３が終了したので、図１４のステップＳ３２４に移り、ステップＳ３２４以降は実施の形態２と同様に処理される。テーブル生成部９が、実施の形態２の図１６のフローチャートに示した動作を行い、最終的には入力条件を併記した試験テーブルＴＴＢ３を生成する。本実施例で生成される試験テーブルＴＴＢ３を図２２に示す。図２２は、実施の形態３によるテーブル生成部９が生成する試験テーブルの例である。試験テーブル格納装置１０はテーブル生成部９が生成した試験テーブルＴＴＢ３を格納する。実施の形態３の試験テーブルＴＴＢ３は、実施の形態２の試験テーブルＴＴＢ２における設定１〜２が、ロジック図面ＬＧ３に対応した設定１〜４に拡張されたものとなる。
【００７６】
ロジック図面ＬＧ３の処理内容の試験は、信号線３７が値０と値１のそれぞれに設定されれば十分に試験ができるので、試験テーブルＴＴＢ３には、信号線３７が値０と値１になる設定１〜４の組の２つのみを記述している。
【００７７】
実施の形態３の試験テーブル生成装置は、多くの設定条件の入力点がある複雑なロジック図面で記述されたモジュールに対しても、論理シミュレーションを行うことにより試験の条件となる入力点とその設定値を求めることができる。このことによって、より複雑なロジック図面を持つモジュールに対しても、人手による試験テーブルの作成、管理が不要となり、試験に関する手作業がさらに減少する。
【産業上の利用可能性】
【００７８】
本発明に係る試験テーブル生成装置は、発電プラント、化学プラント、受配電設備、上下水道など、幅広い分野で用いられる監視制御システムの試験に好適に利用できる。
【符号の説明】
【００７９】
１…ロジック図面格納装置、２…入力仕様格納装置、３…入力点照合部、４…信号線追跡部、５…演算素子検出部、６…出力値生成部、８…入力値生成部、９…テーブル生成部、２０…ロジック図面解析部、ＬＧ１…ロジック図面、ＬＧ２…ロジック図面、ＬＧ３…ロジック図面、ＴＴＢ１…試験テーブル、ＴＴＢ２…試験テーブル、ＴＴＢ３…試験テーブル、ＩＴＢ１…入力仕様、ＯＴＢ５…入力条件情報、１１、２１、３１、４０、４２、４３、８０２乃至８０５…入力点、１２、１２ａ、１２ｂ、１４、１７、２２、２２ａ、２２ｂ、２４、２７、３０、３２、３４、３５、３７、３９、４１、４４、４５、８０７、８０８、８４０、８４１、８４２、８４３、８４４、８４５、８４６、８４７、８４８、８４９、８５０、８５１、８５２…信号線、１３、１６、２３、２６、２９、３３、３６、３８、４６、８０６、８０９、８２１、８２２、８２３、８２４、８２５、８２６、８２７、８２８、８２９、８３０、１０１乃至１０９…演算素子、１５、１８、２５、２８…出力点。
【図１】
2011128951.tif 000003
【図２】
2011128951.tif 000004
【図３】
2011128951.tif 000005
【図４】
2011128951.tif 000006
【図５】
2011128951.tif 000007
【図６】
2011128951.tif 000008
【図７】
2011128951.tif 000009
【図８】
2011128951.tif 000010
【図９】
2011128951.tif 000011
【図１０】
2011128951.tif 000012
【図１１】
2011128951.tif 000013
【図１２】
2011128951.tif 000014
【図１３】
2011128951.tif 000015
【図１４】
2011128951.tif 000016
【図１５】
2011128951.tif 000017
【図１６】
2011128951.tif 000018
【図１７】
2011128951.tif 000019
【図１８】
2011128951.tif 000020
【図１９】
2011128951.tif 000021
【図２０】
2011128951.tif 000022
【図２１】
2011128951.tif 000023
【図２２】
2011128951.tif 000024
【手続補正書】
【提出日】平成23年2月2日(2011.2.2)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００２２
【補正方法】変更
【補正の内容】
【００２２】
図５は、図４の代表的な演算素子を説明する図である。代表的な演算素子としては、図４に示すように、論理積１０１、論理和１０２、否定１０３、ＲＳフリップフロップ１０４、入力点１０５（１０５ａ、１０５ｂ）、出力点１０６（１０６ａ、１０６ｂ）、上限モニター１０７、下限モニター１０８、アナログセレクタ１０９がある。論理積１０１は、入力が全て１のときのみ１を出力し、その他の場合は０を出力する。論理和１０２は、入力が全て０のときのみ０を出力し、その他の場合は１を出力する。否定１０３は、入力が０のとき１を出力し、入力が１のとき０を出力する。ＲＳフリップフロップ１０４は、入力Ｒ、Ｓの状態に応じた出力をする。（Ｒ、Ｓ）＝（０、０）の場合は、前回の出力を保持する。（Ｒ、Ｓ）＝（０、１）の場合は、１を出力する。（Ｒ、Ｓ）＝（１、０）の場合は、０を出力する。（Ｒ、Ｓ）＝（１、１）の場合は、出力が不定となる。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００２３
【補正方法】変更
【補正の内容】
【００２３】
入力点１０５は他のモジュールからの入力であり、出力点１０６は他のモジュールへの出力である。上限モニター１０７は、入力が上限値を上回っていれば１を出力し、そうでない場合は０を出力する。下限モニター１０８は、入力が下限値を下回っていれば１を出力し、そうでない場合は０を出力する。アナログセレクタ１０９は、入力ＳＥＬが１なら入力１からの入力を出力し、入力ＳＥＬが０なら入力０からの入力を出力する。演算素子の一部は図５に示したパラメータを有す。図３ではパラメータをロジック図面上に示した。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００２５
【補正方法】変更
【補正の内容】
【００２５】
監視制御システムにおける静的試験の対象となる処理は、ロジック図面では一定の形式で書かれる場合が多い。例えば、図３に示したロジック図面ＬＧ１のように、演算素子として上限モニター１６、下限モニター１３を用意し、監視対象となる温度センサー（入力点１１）のアナログ値を入力としてそれらに接続し、処理ノードのパラメータとして閾値（上限値や下限値）を与え、異常高温・異常低温を示すデジタル信号をそれらの出力（出力点１５、１６）から取るなどである。