(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023143293
(43)【公開日】2023-10-06
(54)【発明の名称】自動実行装置、自動実行方法
(51)【国際特許分類】
G06F 11/36 20060101AFI20230928BHJP
G06F 11/22 20060101ALI20230928BHJP
【FI】
G06F11/36 188
G06F11/22 673A
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2022050589
(22)【出願日】2022-03-25
(71)【出願人】
【識別番号】000153443
【氏名又は名称】株式会社 日立産業制御ソリューションズ
(74)【代理人】
【識別番号】110002365
【氏名又は名称】弁理士法人サンネクスト国際特許事務所
(72)【発明者】
【氏名】清水 翔太
(72)【発明者】
【氏名】友常 浩二郎
(72)【発明者】
【氏名】高橋 伸夫
【テーマコード(参考)】
5B042
5B048
【Fターム(参考)】
5B042GB03
5B042HH49
5B048DD01
(57)【要約】
【課題】あらかじめ作成された運用定義データを効率よく検証できる。
【解決手段】自動実行装置は、パラメタおよび予め作成された運用定義データを読み込んで動作するコンポーネントを動作させる自動実行装置であって、コンポーネントに入力するパラメタが定義されたシナリオデータを読み込むシナリオデータ取得部と、シナリオデータに基づきコンポーネントに入力するパラメタを決定するパラメタ決定部と、シナリオデータに基づきパラメタ決定部が決定したパラメタをコンポーネントに入力するシナリオ実行部と、を備える。
【選択図】
図1
【特許請求の範囲】
【請求項1】
パラメタおよび予め作成された運用定義データを読み込んで動作するコンポーネントを動作させる自動実行装置であって、
前記コンポーネントに入力する前記パラメタが定義されたシナリオデータを読み込むシナリオデータ取得部と、
前記シナリオデータに基づき前記コンポーネントに入力する前記パラメタを決定するパラメタ決定部と、
前記シナリオデータに基づき前記パラメタ決定部が決定した前記パラメタを前記コンポーネントに入力するシナリオ実行部と、を備える自動実行装置。
【請求項2】
請求項1に記載の自動実行装置において、
前記シナリオデータには、入力する順序が定められた複数の処理が含まれ、
前記コンポーネントは第1処理の演算結果を第1処理結果としてデータベースに格納し、
前記シナリオデータには、前記第1処理よりも後の第2処理に対する前記パラメタとして、前記データベースに格納された前記第1処理結果を示す情報が含まれる、自動実行装置。
【請求項3】
請求項2に記載の自動実行装置において、
前記シナリオデータには、前記データベースに格納された前記第1処理結果を取得するためのSQL文が含まれ、
前記パラメタ決定部は、前記SQL文を用いて前記データベースから前記第1処理結果を取得する、自動実行装置。
【請求項4】
請求項1に記載の自動実行装置において、
前記シナリオデータには、前記パラメタの値が含まれ、
前記パラメタ決定部は、前記シナリオデータに含まれる前記パラメタの値を用いる、自動実行装置。
【請求項5】
請求項1に記載の自動実行装置において、
前記コンポーネントの出力に基づき前記運用定義データの適正性を評価する評価部をさらに備える、自動実行装置。
【請求項6】
請求項5に記載の自動実行装置において、
前記コンポーネントは、演算結果をデータベースに格納し、
前記評価部は、前記データベースに対する問い合わせであるクエリを含む評価用データを読み込み、前記クエリの実行結果に基づき前記運用定義データの適正性を評価する、自動実行装置。
【請求項7】
パラメタおよび予め作成された運用定義データを読み込んで動作するコンポーネントを動作させる自動実行装置が実行する自動実行方法であって、
前記コンポーネントに入力する前記パラメタが定義されたシナリオデータを読み込むシナリオデータ取得ステップと、
前記シナリオデータに基づき前記コンポーネントに入力する前記パラメタを決定するパラメタ決定ステップと、
前記シナリオデータに基づき前記パラメタ決定ステップにより決定され前記パラメタを前記コンポーネントに入力するシナリオ実行ステップと、を含む自動実行方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、自動実行装置、および自動実行方法に関する。
【背景技術】
【0002】
アプリケーションの動作検証を省力化する試みが広く行われている。特許文献1には、所定機器の動作確認のためのテスト・プログラムを実行させる装置であって、前記所定機器に対するデータ入力操作を検出し、前記テスト・プログラムに設定すべき関数が記録される操作内容ファイルに対して、前記データ入力操作に対応し、前記所定機器への入力データを取得するためのインタフェースを備える関数を記録する操作記録部と、前記操作内容ファイルに記録された関数に応じてプログラムコードを設定することにより、前記所定機器に対して実行された一連の操作を再現するためのテスト・プログラムを生成するプログラム生成部と、前記操作内容ファイルとは異なる入力データファイルから入力データを取得して前記関数に渡すことにより、前記テスト・プログラムを実行させるプログラム実行部と、を備えることを特徴とする動作検証装置が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1に記載されている発明では、あらかじめ作成された運用定義データを効率よく検証できない。
【課題を解決するための手段】
【0005】
本発明の第1の態様による自動実行装置は、パラメタおよび予め作成された運用定義データを読み込んで動作するコンポーネントを動作させる自動実行装置であって、前記コンポーネントに入力する前記パラメタが定義されたシナリオデータを読み込むシナリオデータ取得部と、前記シナリオデータに基づき前記コンポーネントに入力する前記パラメタを決定するパラメタ決定部と、前記シナリオデータに基づき前記パラメタ決定部が決定した前記パラメタを前記コンポーネントに入力するシナリオ実行部と、を備える。
本発明の第2の態様による自動実行方法は、パラメタおよび予め作成された運用定義データを読み込んで動作するコンポーネントを動作させる自動実行装置が実行する自動実行方法であって、前記コンポーネントに入力する前記パラメタが定義されたシナリオデータを読み込むシナリオデータ取得ステップと、前記シナリオデータに基づき前記コンポーネントに入力する前記パラメタを決定するパラメタ決定ステップと、前記シナリオデータに基づき前記パラメタ決定ステップにより決定され前記パラメタを前記コンポーネントに入力するシナリオ実行ステップと、を含む。
【発明の効果】
【0006】
本発明によれば、あらかじめ作成された運用定義データを効率よく検証できる。
【図面の簡単な説明】
【0007】
【
図1】第1の実施の形態における自動実行装置の機能構成図
【
図7】第2の実施の形態における自動実行装置の機能構成図
【発明を実施するための形態】
【0008】
―第1の実施の形態―
以下、
図1~
図6を参照して、自動実行装置の第1の実施の形態を説明する。
【0009】
図1は、第1の実施の形態における自動実行装置100の機能構成図である。自動実行装置100は、入力部101と、シナリオデータ取得部102と、パラメタ決定部103と、シナリオ実行部104と、出力部105と、記憶装置200と、コンポーネント300と、を備える。記憶装置200には、シナリオデータ210と、運用定義データ220と、データベース240とが格納される。本実施の形態では、自動実行装置100に動作を指令する人間を「ユーザ」と呼ぶ。
【0010】
自動実行装置100は、入力装置901および表示装置902と接続される。入力装置901は、たとえばキーボードやマウスなどであり、ユーザが自動実行装置100に指令内容を伝える。表示装置902は、たとえば液晶ディスプレイであり、自動実行装置100がユーザに対して処理結果を伝達する。
【0011】
シナリオデータ210は、コンポーネント300への一連の入力の定義である「シナリオ」を複数まとめたものである。シナリオデータ210のうち、ユーザが指定したシナリオがシナリオ実行部104により実行される。運用定義データ220は、コンポーネント300が読み込むデータである。シナリオデータ210および運用定義データ220は、ユーザにより事前に作成される。データベース240は、コンポーネント300が実行結果を書き込むデータ格納場所である。データベース240は、たとえばリレーショナルデータベースであり、送信されたSQL文に対応するデータを返す。SQL文の解釈等はシナリオ実行部104やコンポーネント300が行い、データベース240は演算機能を有しないデータそのものでもよい。
【0012】
入力部101は、入力装置901に入力されたユーザの指令を読み込む。シナリオデータ取得部102は、ユーザの指令に基づきシナリオデータ210から特定のシナリオを読み込んで、パラメタ決定部103およびシナリオ実行部104に出力する。出力部105は、コンポーネント300の演算結果を表示装置902に出力する。
【0013】
コンポーネント300は、特定の機能を有するプログラムの集合体であり、本実施の形態におけるコンポーネント300は、第1コンポーネント310および第2コンポーネント320を含む。第1コンポーネント310および第2コンポーネント320の少なくとも一方は、処理を実行する際に運用定義データ220を読み込む。またコンポーネント300は、処理結果をデータベース240に書き込む。
【0014】
図2は、自動実行装置100のハードウエア構成図である。自動実行装置100は、中央演算装置であるCPU41、読み出し専用の記憶装置であるROM42、読み書き可能な記憶装置であるRAM43、およびユーザインタフェースと接続される入出力装置44を備える。CPU41がROM42に格納されるプログラムをRAM43に展開して実行することで、シナリオデータ取得部102、パラメタ決定部103、シナリオ実行部104、およびコンポーネント300を実現する。
【0015】
自動実行装置100は、CPU41、ROM42、およびRAM43の組み合わせの代わりに書き換え可能な論理回路であるFPGA(Field Programmable Gate Array)や特定用途向け集積回路であるASIC(Application Specific Integrated Circuit)により実現されてもよい。また自動実行装置100は、CPU41、ROM42、およびRAM43の組み合わせの代わりに、異なる構成の組み合わせ、たとえばCPU41、ROM42、RAM43とFPGAの組み合わせにより実現されてもよい。
【0016】
入出力装置44は、入力装置901および表示装置902とのインタフェースである。入出力装置44はたとえば、入力装置901と接続される入力インタフェース、たとえばユニバーサルシリアルバスに対応するレセプタクルと処理基板、および表示装置902と接続される表示制御装置である。入出力装置44は、入力部101および出力部105を実現する。
【0017】
図3は、シナリオデータ210の一例を示す図である。シナリオデータ210は複数のレコードから構成され、各レコードはシナリオコード211、実行順212、コンポーネント名213、パラメタ名214、パラメタ種別215、および入力情報216のフィールドを有する。シナリオコード211は、シナリオを識別する識別子である。実行順212は、同一のシナリオにおける実行の順序を示している。コンポーネント名213は、パラメタを入力する対象となるコンポーネントの名称である。パラメタ種別215は、コンポーネント300に入力するパラメタの種別である。入力情報216は、コンポーネント300にパラメタとして入力する情報である。
【0018】
図3に示す例ではシナリオコード211が「C123」であるレコードが3つあり、そのうち2つは実行順212が「1」なので最初の実行に利用され、残りの1レコードは次の実行に利用される。実行順「1」では、パラメタ名214が「A-1」の欄には「ABCD」が入力され、パラメタ名214が「A-2」の欄には関数「date(TODAY, “+ 3M”, “yyyy/mm/dd”)」の結果、すなわち実行日から3か月後の日付が所定の記載フォーマットで入力される。たとえば実行日が2022年4月20日の場合には、「2022/07/20」が入力される。実行順「2」では、SQL文「Select AAA From BBB Where CC=X1」がデータベース240に入力されて、データベース240の出力が第2コンポーネント320に入力される。
【0019】
図4は、運用定義データ220の一例を示す図である。運用定義データ220は、コンポーネント300が利用する情報であり、たとえば第2コンポーネント320が演算に用いる。運用定義データ220は複数のレコードから構成され、各レコードは製品名221、使用装置222、パラメタ名224、およびパラメタ値225のフィールドを有する。運用定義データ220はたとえば、製品名221で示される製品の製造において、使用装置222で示される装置を使用することを示している。さらに運用定義データ220は、使用装置222の装置に対して、パラメタ名224で示すパラメタにパラメタ値225の値を設定することを示している。
【0020】
図5は、第1コンポーネント310の動作例を示す図である。ただし
図5は説明の便宜のために図示しているにすぎず、本実施の形態では画面表示は必須の構成ではない。
図5に示す例では、第1コンポーネント310は、製品名および生産する期限を受け付けて演算を行い、計画番号を出力する。
図5の上部に示す第1入力画面951では、「製品名」に「ABCD」が入力され、「期限」に「2022/07/20」が入力されている。そのため、パラメタ名「A-1」と値「ABCD」のセットと、パラメタ名「A-2」と値「2022/07/20」のセットと、が第1コンポーネント310に入力される。
【0021】
第1コンポーネント310は、たとえば既存の計画番号の連番として「P0123」の値を決定し、入力された製品名および期限とともにこの計画番号をデータベース240の新たなレコードに記録する。この際に第1コンポーネント310は、計画番号をパラメタ「X1」の値としてデータベース240に格納する。なお第1コンポーネント310は、
図5の下部に示す第1出力画面952のように、入力された「ABCD」や「2022/07/20」の値とともに、決定した計画番号「P0123」の値を出力部105を介して表示装置902に出力してもよい。
【0022】
シナリオ実行部104は、第1コンポーネント310が
図5に示すように第1入力画面951の表示を行う場合には、画像によるマッチング処理や画面上の座標情報を用いて入力欄にパラメタを入力して右下の「登録」ボタンを押すことで必要な情報を第1コンポーネント310に送信してもよい。またシナリオ実行部104は、第1入力画面951において「登録」ボタンを押した際に生成される情報、たとえばXMLファイルなどを自ら生成して第1コンポーネント310に出力してもよい。
【0023】
図6は、第2コンポーネント320の動作例を示す図である。ただし
図6も説明の便宜のために図示しているにすぎず、本実施の形態では画面表示は必須の構成ではない。
図6に示す例では、第2コンポーネント320は、期限および計画番号を受け付けて演算を行い、実行予定日と機器の使用時間をデータベース240に出力する。
図6の上部に示す第2入力画面953では、「期限」に「2022/07/20」が入力され、「計画番号」に「P0123」が入力されている。そのため、パラメタ名「A-2」と値「2022/07/20」のセットと、パラメタ名「X1」と値「P0123」のセットと、が第2コンポーネント320に入力される。
【0024】
シナリオ実行部104は、第2コンポーネント320が
図6に示すように第2入力画面953の表示を行う場合には、画像によるマッチング処理や画面上の座標情報を用いて入力欄にパラメタを入力して右下の「登録」ボタンを押すことで必要な情報を第2コンポーネント320に送信してもよい。またシナリオ実行部104は、第2入力画面953において「登録」ボタンを押した際に生成される情報、たとえばXMLファイルなどを自ら生成して第2コンポーネント320に出力してもよい。
【0025】
第2コンポーネント320は、運用定義データ220およびデータベース240を参照して計画番号「P0123」が期限である「2022/07/20」までに製造できるように、製造装置の利用計画、すなわち各装置を占有する時間帯を算出してデータベース240に出力する。第2コンポーネント320は、
図6の下部に示す第2出力画面954のように、入力された計画番号とともに、決定した実行予定日「2022/07/15」および各装置の使用時間について出力部105を介して表示装置902に出力してもよい。
【0026】
ユーザは、表示装置902に表示される第2コンポーネント320の出力を目視確認することでコンポーネント300による処理が適切に行われたことを確認してもよい。またユーザは、不図示の手段を用いてデータベース240に格納されたデータを確認することで、コンポーネント300による処理が適切に行われたことを確認してもよい。
【0027】
上述した第1の実施の形態によれば、次の作用効果が得られる。
(1)自動実行装置100は、パラメタおよび予め作成された運用定義データ220を読み込んで動作するコンポーネント300を動作させる。自動実行装置100は、コンポーネントに入力するパラメタが定義されたシナリオデータ210を読み込むシナリオデータ取得部102と、シナリオデータ210に基づきコンポーネント300に入力するパラメタを決定するパラメタ決定部103と、シナリオデータ210に基づきパラメタ決定部103が決定したパラメタをコンポーネント300に入力するシナリオ実行部104と、を備える。そのため、自動実行装置100は、運用定義データ220を読み込んで動作するコンポーネント300をあらかじめ作成されたシナリオデータ210に基づき動作させることができるので、あらかじめ作成された運用定義データ220を効率よく検証できる。
【0028】
仮に自動実行装置100を用いない場合には、ユーザがコンポーネント300に対して逐一入力を行う必要があり、コンポーネント300を動作させることが煩雑であった。しかし自動実行装置100を用いることでコンポーネント300を容易に動作させることができるので、ユーザはコンポーネント300の処理結果の適正性を判断すればよい。そのため自動実行装置100を用いることで、運用定義データ220を検証する効率が向上する。
【0029】
(2)シナリオデータ210には、入力する順序が定められた複数の処理が含まれる。具体的には
図3に示すように、同一のシナリオコード211に対して実行順212の値が異なる複数の処理が含まれる。コンポーネント300は実行順212が「1」の演算結果をデータベース240に格納する。シナリオデータ210には、実行順212が「2」の処理に対する入力情報216として、データベース240に格納された実行順212が「1」の演算結果、具体的にはクエリ「Select X1 From BBB Where 製品名=ABCD」の実行結果が含まれる。そのため自動実行装置100は、あらかじめ定めた固定値だけでなく、コンポーネント300が出力した値をコンポーネント300に入力できる。
【0030】
(3)シナリオデータ210には、データベース240に格納された第1処理の演算結果を取得するためのSQL文、たとえば「Select X1 From BBB Where 製品名=ABCD」が含まれる。パラメタ決定部103は、SQL文を用いてデータベース240から演算結果を取得する。
【0031】
(4)シナリオデータ210には、
図3の1レコード目のように固定値であるパラメタの値が含まれる。パラメタ決定部103は、シナリオデータ210に含まれるパラメタの値をコンポーネント300への入力に用いる。
【0032】
(変形例1)
上述した自動実行装置100が有する機能および構成は、複数のハードウエア装置により実現されてもよい。たとえば、記憶装置200およびコンポーネント300は、入力部101、シナリオデータ取得部102、パラメタ決定部103、シナリオ実行部104、および出力部105とは異なるハードウエア装置により実現されてもよい。
【0033】
(変形例2)
データベース240の種類は、リレーショナルデータベースに限定されない。データベース240には公知の様々なデータベース形式を適用可能であり、階層型、ネットワーク型、およびNoSQLのいずれを用いてもよい。さらにデータベース240は複数の種類のデータベースを組み合わせてもよい。
【0034】
(変形例3)
上述した第1の実施の形態では、コンポーネント300は第1コンポーネント310および第2コンポーネント320の2つの構成を含んだ。しかしコンポーネント300は、3以上の構成を含んでもよいし、1つのみから構成されてもよい。
【0035】
―第2の実施の形態―
図7~
図9を参照して、自動実行装置の第2の実施の形態を説明する。以下の説明では、第1の実施の形態と同じ構成要素には同じ符号を付して相違点を主に説明する。特に説明しない点については、第1の実施の形態と同じである。本実施の形態では、主に、自動実行装置が自らコンポーネント300の出力を検証する点で、第1の実施の形態と異なる。
【0036】
図7は、第2の実施の形態における自動実行装置100Aの機能構成図である。自動実行装置100Aは、第1の実施の形態における自動実行装置100の構成をすべて含み、評価部106および評価用データ250をさらに含む。評価部106は、パラメタ決定部103やシナリオ実行部104と同様に、CPU41がROM42に格納されるプログラムをRAM43に展開して実行することで実現される。評価用データ250はユーザによりあらかじめ作成され、記憶装置200に格納される。
【0037】
図8は、評価用データ250の一例を示す図である。評価用データ250は複数のレコードから構成され、各レコードはシナリオコード251、評価順252、および評価用クエリ253のフィールドを有する。シナリオコード251は、シナリオを識別する識別子であり
図3のシナリオコード211と同様である。評価順252は、同一のシナリオにおいて評価を行う順番を示している。評価用クエリ253は、データベース240に対して実行するクエリである。
【0038】
評価部106は、シナリオ実行部104によるシナリオの実行が完了すると、評価用データ250を読み込んでコンポーネント300による処理が意図したとおりに行われたか否かを評価する。ただし、コンポーネント300そのものの動作確認は事前に完了しているので、評価部106による評価はコンポーネント300が読み込む運用定義データ220が適切であったか否かの評価である。
【0039】
図8を参照して評価部106の処理を具体的に説明する。評価部106は、シナリオ実行部104によるシナリオコード251が「C123」である全ての実行が完了すると、評価用データ250においてシナリオコード251が「C123」である1行目~3行目を読み込み、次の処理を行う。すなわち評価部106は、評価順に従って評価用クエリを実行し、データベース240に格納された情報を読み込む。評価部106は、実行したそれぞれの評価用クエリに対して全て1件以上のデータが存在する場合には検証が成功したと評価し、1つでもデータが0件である評価用クエリが存在する場合には検証が失敗したと評価する。評価部106は、この評価結果を出力部105を介して表示装置902に出力する。
【0040】
なお評価部106は、評価用データ250に記載されている文字列そのものを評価用クエリとしてもよいし、別の手段により得られた情報を組み合わせて評価用クエリとしてもよい。たとえば
図8の5つ目のレコードのように、評価用クエリ253に事前クエリが含まれ、その事前クエリの結果をクエリに利用してもよい。この例では、「Select X1 From BBB Where 製品名=ABCD」というクエリを実行して得られる結果を「PlanNum」として、これをクエリで利用する。たとえば「Select X1 From BBB Where 製品名=ABCD」の実行結果が「P765」の場合には、クエリは「Select DDD From EEE Where 計画番号= P765」となる。
【0041】
図9は、表示装置902に出力された評価部106による評価結果の一例を示す図である。
図9の上部に示す成功例画面961は、評価部106により検証が成功したと判断された場合の出力例である。
図9の下部に示す失敗例画面962は、評価部106により検証が成功したと判断された場合の出力例である。
図9に示すように、評価部106は検証が成功した場合にはその旨を明示し、検証が失敗した場合には問題個所を明示する。
図9に示す例では、評価順の「2」と「3」において検証が失敗したことが示されている。
【0042】
上述した第2の実施の形態によれば、次の作用効果が得られる。
(5)自動実行装置100Aは、コンポーネント300の出力に基づき運用定義データ220の適正性を評価する評価部106を備える。そのため、ユーザは自らコンポーネント300の演算結果を評価する必要がなく、容易に運用定義データ220をテストできる。
【0043】
(6)コンポーネント300は、演算結果をデータベース240に格納する。評価部106は、データベース240に対する問い合わせである評価用クエリ253を含む評価用データ250を読み込み、クエリの実行結果に基づき運用定義データ220の適正性を評価する。
【0044】
上述した各実施の形態および変形例において、機能ブロックの構成は一例に過ぎない。別々の機能ブロックとして示したいくつかの機能構成を一体に構成してもよいし、1つの機能ブロック図で表した構成を2以上の機能に分割してもよい。また各機能ブロックが有する機能の一部を他の機能ブロックが備える構成としてもよい。
【0045】
上述した各実施の形態および変形例において、プログラムはROM42に格納されるとしたが、プログラムは不図示の不揮発性記憶装置に格納されていてもよい。また、自動実行装置100が不図示の入出力インタフェースを備え、必要なときに入出力インタフェースと自動実行装置100が利用可能な媒体を介して、他の装置からプログラムが読み込まれてもよい。ここで媒体とは、例えば入出力インタフェースに着脱可能な記憶媒体、または通信媒体、すなわち有線、無線、光などのネットワーク、または当該ネットワークを伝搬する搬送波やディジタル信号、を指す。また、プログラムにより実現される機能の一部または全部がハードウエア回路やFPGAにより実現されてもよい。
【0046】
上述した各実施の形態および変形例は、それぞれ組み合わせてもよい。上記では、種々の実施の形態および変形例を説明したが、本発明はこれらの内容に限定されるものではない。本発明の技術的思想の範囲内で考えられるその他の態様も本発明の範囲内に含まれる。
【符号の説明】
【0047】
100、100A :自動実行装置
102 :シナリオデータ取得部
103 :パラメタ決定部
104 :シナリオ実行部
106 :評価部
210 :シナリオデータ
220 :運用定義データ
240 :データベース
250 :評価用データ
300 :コンポーネント
310 :第1コンポーネント
320 :第2コンポーネント
450 :評価用データ