<実施の形態1>
図1は、この発明の実施の形態1である監視制御アプリケーション設計装置のハードウェア構成を示す説明図である。同図に示すように、監視制御アプリケーション設計装置1は、例えばコンピュータ又は、コンピュータ上で動作するプログラム(例えば、汎用オフィス製品、Webブラウザ、スタンドアローンアプリケーションなど)によって実現される。
この監視制御アプリケーション設計装置1は、CPU(Central Processing Unit)10と、ROM(Read Only Memory)11と、RAM(Random Access Memory)12と、記憶装置13と、入力インタフェース14と、入力装置15と、出力インタフェース16と、出力装置17と、ネットワーク接続インタフェース18と、ネットワーク接続装置19と、バス20とを備える。
データバスであるバス20は、監視制御アプリケーション設計装置1を構成する複数のハードウェア(10〜14,16,18)を互いに電気的に接続する。したがって、これらのハードウェア同士間では、バス20を介して情報の送受信が可能となっている。本実施の形態では、このバス20を介して、CPU10、ROM11、RAM12、記憶装置13、入力インタフェース14、出力インタフェース16及びネットワーク送受信インタフェース18が複数のハードウェアとして互いに電気的に接続されている。
この監視制御アプリケーション設計装置1は、その利用者、管理者または運用者から起動の際に行われる操作を受け付けると、監視制御アプリケーション設計装置1を起動するためのブートプログラム、OS(Operating System)を読出して実行する。以下、監視制御アプリケーション設計装置1の各構成について詳細に説明する。
ROM11には、ブートプログラム等の制御プログラムが記憶されている。RAM12は、CPU10が記憶装置13から読み出したデータがキャッシュデータ等として一時的に記憶される。記憶装置13は、例えば、HDD(Hard Disk Drive)であり、記憶装置13には、OS、監視制御アプリケーション設計支援プログラム及び各種情報が記憶されている。
CPU10は、ROM11に記憶されている制御プログラムを読込んで実行することにより、ROM11、RAM12、記憶装置13、入力インタフェース14及び出力インタフェースを制御する。また、CPU10は、記憶装置13に記憶されているOS、監視制御アプリケーション設計支援プログラムを読出して実行する。
入力装置15は、キーボード及びマウス等を備えており、利用者等からの操作を受け付けると、当該操作に対応する指令を入力インタフェース14に与える。入力インタフェース14は、入力装置15と電気的に接続されており、入力装置15をバス20に接続する。これにより、入力装置15からの指令が、バス20及び入力インタフェース14を介してCPU10に入力される。
出力装置17は、CRT(Cathode Ray Tube)ディスプレイ、液晶表示ディスプレイ等の、外部に情報を出力する装置であり、出力インタフェース16からの情報を表示する。出力インタフェース16は、出力装置17と電気的に接続されており、出力装置17をバス20に接続する。これにより、CPU10からの情報が、バス20及び出力インタフェース16を介して出力装置17に出力される。出力装置17は、例えば、CPU10からの情報を受けるとその情報を表示する。
ネットワーク接続装置19は、イーサネット(登録商標)カード、シリアルポート等の、外部コンピュータや外部デバイスと接続する接続装置であり、外部コンピュータ等と情報を送受信する。ネットワーク接続インタフェース18は、ネットワーク接続装置19と電気的に接続されており、ネットワーク接続装置19をバス20に接続する。これにより、CPU10からの情報及び指令が、バス20及びネットワーク接続インタフェース18を介してネットワーク接続装置19に出力される。ネットワーク接続装置19は、CPU10からの情報及び指令を受けると、その指令に基づいて、CPU10からの情報を外部コンピュータ等に送信する。一方、ネットワーク接続装置19は、外部コンピュータ等からの情報を受信すると、当該情報をバス20及びネットワーク接続インタフェース18を介してCPU10に入力する。
図2は、図1に示されるCPU10が主に記憶装置13に記憶されている監視制御アプリケーション設計支援プログラムを読込んで起動することにより実行可能となる、監視制御アプリケーション設計装置1の構成を機能ブロックとして示す説明図である。同図に示すように、監視制御アプリケーション設計装置1は、定義部2、定義読込手段3、定義解釈手段4、レイアウト定義手段5、ツール出力手段6、及びデータ管理部7を備える。
なお、定義部2及びデータ管理部7は記憶装置13によって実現され、実際に監視制御アプリケーション設計支援プログラムとして動作するのは定義読込手段3、定義解釈手段4、レイアウト定義手段5及びツール出力手段6である。
定義部2は、デバイスの入力点の仕様を構成する入力項目仕様定義D21と、他の入力項目に入力されたデータに応じて入力項目の仕様を変化させる入力支援定義D22と、どのツール順に設計を進めていくかを定めた順序定義D23と、ツールを構成する入力項目の構成定義D24とを含む定義情報D2を記憶装置13内に管理し、ユーザからの入力を入力装置15にて受付け、ユーザへの出力を出力装置17にて行う。以下では、入力項目仕様定義D21、入力支援定義D22、順序定義D23、構成定義D24について説明する。
入力項目仕様定義D21とは、デバイスの入出力点の仕様を構成する入力項目の定義である。
図3は入力項目仕様定義D21の一例を示す説明図である。同図に示すように、入力項目仕様定義D21は、入力項目を一意に識別する識別子200、論理名201、物理名202、型203、ガイダンス204から構成する。
識別子200は、入力項目を一意に識別するものである。論理名201は、入力項目の論理名を定義する。ただし、論理名201は重複してはならない。また、識別子200の代わりとなることも可能である。物理名202は、入力項目の物理名を定義する。ただし、物理名202は重複してはならない。また、識別子200の代わりとなることも可能である。
型203は、入力項目に設定できるデータの型である。例えば、文字列型、整数型、小数点型、日付型、2進数型、16進数型などがある。ガイダンス204は、入力項目にどういうデータが入れられるのか、または入れなくてはならないのかをユーザにガイダンスする文字列である。
膨大な入力項目を定義するケースに対応するため、入力項目を整理できる仕組みを提供する。
図4は入力項目仕様定義の他の一例を示す説明図である。同図(a) 及び(b) に示すように、図3に示す入力項目仕様定義D21を入力項目仕様定義D21a,D21bのように分類しても良い。なお、図4の(a) では、識別子200として、2つの部分識別子200a,200bを用いており、図4の(b) では、識別子200として、3つの部分識別子200c〜200eを用いている。
入力支援定義D22とは、どのようなデータを入力項目に設定できるかを、入力するための条件と、条件が満たされたときに設定可能なデータの候補を提示する定義である。データ入力を可能とするか否かの条件のことを条件式210と呼び、条件が満たされたときに設定可能な値の候補のことを支援値211と呼ぶ。
図23は入力支援定義D22の条件式210及び支援値211の文法をBNF(Backus-Naur Form)記法に記載した一例を示す説明図である。分類項目及び入力項目は、図23の(a) の文法リスト81に示すように定義される。
なお、図23の(b) に示す文法リスト82において、文法中に記載のある10進整数とは整数で例えば"65535"、2進整数は例えば"1111111111111111"、16進整数は例えば"FFFF"のことである。なお、比較OPなどの記述方法は文法リスト82で示した例以外の方法でもよい。また、演算OPなどの記述方法は本文法リスト84で示した例以外の方法でもよい。
入力支援定義D22には、複数の種類が存在する。例えば、無効入力支援、リストボックス入力支援値入力支援、絞込入力支援、一意制約検定、数字サイズ検定、文字列長検定、必須入力支援などがある。
図24及び図25は上述した9個の入力支援定義D22の条件式210と支援値211の仕様を示した一例である。図5は入力支援定義D22の具体例を示す説明図である。なお、図5に示すように「.」で区切る以外の方法でも良い。
以下では、図5、図24及び図25を参照して、9個の入力支援定義D22について説明する。
図24の(a) に示すように、無効入力支援71とは、定義された条件に合致している場合、データを追加、変更することができない定義である。定義の方法は図24(a) の無効入力支援71に示すとおりである。
無効入力支援71の具体例は、図5(a)の表の2行目に示すように、「アナログ.入力フラグ」が“1”でなければ無効となり、図5(a)の表の2行目に示すように、「アナログ.入力フラグ」が“0”の場合は有効となる。
リストボックス入力支援72とは、定義された条件に合致している場合、入力可能な値をリストボックスから選択させる定義である。定義の方法は図24(b) に示すとおりである。
リストボックス入力支援72の具体例は、図5(b)の表の2行目に示すように、「アナログ.入力フラグ」が“1”の時は{0:無効,1:有効}の入力を促すリストボックスが表示される。図5(b) の表の3行目に示すように、無条件に{0:無効,1:有効}の入力を促すリストボックスが表示される。図5(b)の表の4行目に示すように、「アナログ.入力フラグ」が“1”の時は{0:無効,1:有効}の入力を促すリストボックスが表示され、「アナログ.入力フラグ」が“0”の時は{1:無効,0:有効}の入力を促すリストボックスが表示される。
値入力支援73とは、定義された条件に合致している場合、デフォルトで値を設定する定義である。定義の方法は図24(c) に示す通りである。
値入力支援73の具体例は、図5(c)の表の2行目に示すように、「アナログ.入力フラグ」が“1”の時は「アナログ.入出力点番号」に“1”を加えた値が設定される。図5(c) の表の3行目に示すように、無条件に“1”が設定される。
絞込入力支援74とは、ある一意から成る値を段々と絞り込んでいく定義である。定義の方法は図24(d) に示すとおりである。
絞込入力支援74の具体例は、図5(d)が表の2行目に示すように、「アナログ.デバイス番号」を入力することにより、入力した「アナログ.デバイス番号」に関連する入出力番号の候補を提示する。
一意制約検定75とは、ある入力項目の集合が一意の値であることを検定する定義である。すなわち、ある入力項目に入力された値が一意な値であるかを検出する定義である。定義の方法は図24(e) に示すとおりである。
一意制約検定75の具体例は、図5(e)の表の2行目に示すように、無条件に一意であることが示される。
数字サイズ検定76とは、入力された数字(10進、2進、16進)の値の最小値、最大値を検定する定義である。定義の方法は図25(a) に示すとおりである。
数字サイズ検定76の具体例は、図5(f) 上表の2行目に示すように、「アナログ.入力フラグ」が“0”の時は最大値が“1”に設定され、図5(f) 上表の3行目に示すように、無条件に最小値は“0”に設定される。また、図5(f) 下表の2行目に示すように、「アナログ.入力フラグ」が“1”の時は最大値が“10”に設定され、図5(f) 下表の3行目に示すように、無条件に最小値は“9”に設定される。
文字列長検定77とは、入力された文字列の最大文字列長を検定する定義である。定義の方法は図25(b) に示すとおりである。
文字列長検定77の具体例は、図5(g) の表の2行目に示すように、「アナログ.入力フラグ」が“1”の時は最大文字列長が“15”に設定され、図5(g) の表の3行目に示すように、無条件に最大文字列長が“20”に設定される。
必須入力支援78とは、必須入力支援とは、定義された条件に合致している場合、データが入力されていないことを通知する定義である。定義の方法は図25(c) に示すとおりである。
必須入力支援78の具体例は図5(h)の表の2行目に示すように、「アナログ.入力フラグ」が“1”でなければ必須となる。
一括入力支援79とは、定義された条件に合致している場合、データが未入力のところにデータをセットしていく定義である。定義の方法は図25(d) に示すとおりである。
一括入力支援79の具体例は、図5(i)の2行目に示すように、「アナログ.入力フラグ」が“1”の時は初期値“1”のシーケンシャル番号を振り、図5(i) の表の3行目に示すように、無条件に初期値“0”のシーケンシャル番号を振る。
図6は、図4(a) で示した入力項目仕様定義D21aに入力支援定義D22を付加した一例を示す説明図である。同図に示すように、部分識別子200a及び200bと共に、無効入力支援71、リストボックス入力支援72及び必須入力支援78それぞれの条件式210及び支援値211が付加されている。
順序定義D23とは、どの順番でツールを利用してユーザが入出力点の仕様を設計していくのかを定義する。
図7は順序定義D23の一例を表形式で示す説明図である。同図に示すように、順序定義D23は、ツールを一意に識別する識別子220、論理名221、物理名222から構成される。
識別子220は、ツールを一意に識別するものである。すなわち、識別子220が「共通」、「アナログ一覧表」及び「アナログ詳細表」としたツールがそれぞれ存在する。論理名221は、ツールの論理名を定義する。ただし、論理名221は重複してはならない。また、識別子220の代わりとなることも可能である。物理名222は、ツールの物理名を定義する。ただし、物理名222は重複してはならない。また、識別子220の代わりとなることも可能である。
構成定義D24とは、それぞれのツールが構成する入力項目のリストを定義する。
図8は構成定義D24の一例を表形式で示す説明図である。同図に示すように、構成定義D24は、ツールを一意に識別する識別子220、入力項目を一意に識別する識別子210から構成される。
図2に戻って、定義読込手段3は、定義部2に格納されている順序定義D23及び構成定義D24を読込み、順序定義D23及び構成定義D24に基づき、ツールが構成する入力項目の入力項目仕様定義D21及び入力支援定義D22を選択的に読み込む。
例えば、図7の識別子220「共通」のツールに着目した場合、図8の識別子220が「共通」である識別子210「共通.上限パラメータ,共通.下限パラメータ」を認識し、図3の上限パラメータ,下限パラメータ(識別子200)に関する論理名201,物理名202,型203及びガイダンス204及びこれに付随する入力支援定義を読み出す。
以下、定義部2の定義情報D2のうち定義読込手段3が読み込んだ情報を読み込み定義情報D3と呼ぶ。
定義解釈手段4は、定義読込手段3にて読み込んだ読み込み定義情報D3のうち、入力支援定義に含まれる入力項目を抜き出し、入力項目間の依存関係を解釈する定義解釈処理を実行して定義解釈結果D4を得る。
図9は、定義解釈手段4による定義解釈処理の定義解釈結果D4における依存関係をツリー上にプロットした例を示す説明図である。すなわち、定義解釈手段4は、図6〜図8にて定義した入力項目仕様定義D21及び入力支援定義D22、順序定義D23並びに構成定義D24に基づき、定義解釈処理を行い図9に示すような入力項目間の依存関係を規定した定義解釈結果D4を得る。
図9の左側にある入力項目、例えば、「共通.上限パラメータ」や「共通.下限パラメータ」、「アナログ.デバイス番号」、「アナログ.入出力点番号」などの入力項目は、他の入力項目に依存していない独立した入力項目である。その一方、「アナログ.入力フラグ」、「アナログ.名称その1」、「アナログ.名称その2」などは、他の入力項目に入力されるデータに応じて、入力可能であるか又は入力支援する内容が変化する。
また、「アナログ.上限値1」や「アナログ.下限値1」などは、複数の他の入力項目に依存しており、それらの条件が全て揃う(AND)又はどれかだけでも揃えば(OR)、入力項目に入力することが可能になる。
図10は、定義解釈手段4による定義解釈処理の定義解釈結果D4における依存関係をツリー上にプロットした具体例を示す説明図である。図10に示すように、「共通.上限パラメータ」に「1」、「共通.下限パラメータ」に「2」、「アナログ.デバイス番号」に「1231」、「アナログ.入出力項目番号」に「0001」が実際に入力されたときの状態を示している。この場合、「アナログ.上限値2」が無効な状態となり、その他が、「アナログ.入力フラグ」の入力待ち状態になっている。
定義解釈手段4では、入力支援定義D22に含まれる入力項目がループしているか否かについても検証する。
レイアウト定義手段5では、定義読込手段3で読み込んだ読み込み定義情報D3内の構成定義D24に含まれている入力項目の並び順を、定義解釈手段4による定義解釈結果D4による依存関係順に従いレイアウトを行うレイアウト定義処理を実行しレイアウト定義情報D5を得る。
図8及び図9の例で示す依存関係の定義解釈結果D4が得られた場合、例えば「アナログ.名称その1」、「アナログ.名称その2」は、「アナログ.入力フラグ」が設定されたのちに、初めて利用可能となる入力項目である。このことから、「アナログ.名称その1」及び「アナログ.名称その2」は、「アナログ.入力フラグ」の後にレイアウトされることになる。
図11はレイアウト定義手段5によって得られるレイアウト定義情報D5が指示する入力項目がレイアウトされた後の並び順を示す説明図である。
順序定義D23に定義されたツール間で同一入力項目を定義することがある。例えば、「アナログ.デバイス番号」、「アナログ.入出力項目番号」がその一例である。レイアウト定義手段5では、順序定義D23に定義されているツールの中で、最初に「アナログ.デバイス番号」、「アナログ.入出力項目番号」を構成に含めるツールに編集権を与え、その他のツールは該当する入力項目の入力支援定義D22の設定をすべて無効にし、編集権のあるツールの入力項目から値入力支援の機能を利用し、値参照するように動的に変更する。例えば、図7で示した順序定義D23の例では、「アナログ.デバイス番号」、「アナログ.入出力項目番号」は識別子220が「アナログ一覧表」のツールに編集権が与えられる。なお、上記したルールに編集権を与える方法は一例であり、同一入力項目を定義する双方のルーツ間で反映し合うことも可能である。
レイアウト定義手段5では、それぞれのツールを構成する入力項目の並び順を決定したのちに、それぞれの入力項目に埋め込む入力支援プログラム用のパラメータを生成する。入力支援プログラムのパラメータは、条件式210と支援値211から構成される。
レイアウト定義手段5は、条件式210や支援値211に含まれる入力項目が、どのツールの左から何番目の列に配置されたのかといった依存先の入力項目の位置情報を取得し、条件式210や支援値211に含まれる入力項目をその位置情報に置換する。なお、ツールによっては、パラメータ生成は不要な場合もある。
ツール出力手段6では、レイアウト定義情報D5が指示する入力項目の並び順にツールをレイアウトし、入力項目に埋め込む入力支援プログラムが上記パラメータで指示する内容で動作するように設定し、ツール起動後、入力項目へのデータ入力に応じて、入力支援プラグラムが動作することにより、動的に他の入力項目が入力できる仕様が実現可能な出力用ツール情報D6を出力する。
そして、ツール出力手段6より出力された出力用ツール情報D6は、データ管理部7によって管理される。
次に、CPU10が記憶装置13に記憶されている監視制御アプリケーション設計支援プログラムを実行することにより行われる、本実施の形態に係る監視制御アプリケーション設計装置1(監視制御アプリケーション設計支援プログラム)の処理手順を図12〜図17を用いて説明する。
図12では、定義部2が扱うそれぞれの定義を追加・変更・削除を行う動作シーケンスである。なお、入力項目仕様定義D21、入力支援定義D22、順序定義D23、構成定義D24それぞれは、入力できる属性は異なるが、追加、変更、削除、検索等の処理内容は同じであることから、今回は入力支援定義D22の動作シーケンスに限定して説明する。
ステップS1において、起動済みの監視制御アプリケーション設計支援装置1の定義部2を起動する。ステップS2では、入力項目仕様定義D21、入力支援定義D22、順序定義D23、構成定義D24の内、どの定義を追加、変更、削除、検索等するかを選択する。ステップS3では、選択した定義の内、新規で追加するのか、一覧で表示するのかを選択する。
ステップS4〜S6は、ステップS3にて新規追加を選択した時のシーケンスである。ステップS4では、定義を構成する属性が空で表示され、ユーザは空欄で表示されている属性に情報を選択または入力していく。入力支援定義D22の場合は、入力項目に関しては、入力項目仕様から値を取得し、ユーザはその中から選択又は検索等の手段を利用し、該当する入力項目を選ぶ。また、無効入力支援71、リストボックス入力支援72、値入力支援73、絞込入力支援74、一意制約検定75、数字サイズ検定76、文字列長検定77、必須入力支援78、一括入力支援79それぞれの条件式210や支援値211には直接ユーザが情報を入力する。
ステップS5では、ユーザが入力した情報を保存するため、ボタン等を押下する。ステップS6では、入力された入力支援定義D22を記憶装置13に記録し、ステップS3に戻る。ただし、既に入力項目に関する入力支援定義D22が記録装置13に記録されている場合は、エラーとしてユーザに通知する。
ステップS7〜S9はステップS3にて一覧表示を選択した時の動作シーケンスである。ステップS7では、記録装置13、すなわち、定義部2に格納されているすべての入力支援定義D22を取得する。取得した入力支援定義D22が規定する定義数が多い場合は、ステップS8にて、絞り込みたい条件を指定し、検索することで条件に該当する定義情報D2のみ一覧で表示できるようになる。ステップS9にて、該当する定義をクリックし、その詳細を表示する。ステップS10にて、戻るボタンを押下することで、ステップS3に戻る。
ステップS11は、入力支援定義D22を削除する動作シーケンスである。ステップS10にて、ユーザが削除ボタンを押下することで、記録装置13に格納されている該当入力支援定義D22を削除し、ステップS3へ戻る。
ステップS12〜S14は、入力支援定義D22を変更する動作シーケンスである。ステップS12にて、ユーザによってクリックされた入力支援定義D22を編集する画面を表示し、ユーザがその編集画面上で定義の書き換えを行う。ステップS13にて、ユーザが変更ボタンを押下することで、記憶装置13に格納されている該当入力支援定義を変更して、記憶装置13に保存し、ステップS14にて、戻るボタンを押下することで、ステップS10に戻る。
ステップS2にて戻るボタンを押下するとステップS1へと戻り、ステップS1にて終了ボタンを押下すると監視制御アプリケーション設計装置1のプログラムが終了する。
このように、図12で示すフローによって、記憶装置13、すなわち、定義部2内に入力項目仕様定義D21、入力支援定義D22、順序定義D23及び構成定義D24からなる定義情報D2が格納される。
図13は定義読込手段3が定義部2の定義情報D2を読み込む動作シーケンスを示すフローチャートである。図14は定義解釈手段4による定義解釈処理の処理手順を示すフローチャートである。図15はレイアウト定義手段5によるレイアウト定義処理も処理手順を示すフローチャートである。
これらの一連の処理は、ユーザが所定のツール起動ボタンを押下することにより実行される。
図13を参照して、定義読込手段3が定義部2の定義情報D2を読み込む動作シーケンスを説明する。
ステップS30にて、定義部2(記憶装置13)に格納されている順序定義D23を読込む。
ステップS31にて、順序定義D23に定義されているツールを一つずつ取り出し、取りだしたツールを検索キーとして、構成定義D24に含まれる入力項目を検索する。
ステップS32にて、入力項目仕様定義D21及び入力支援定義D22を読込み、ステップS31の検索にて得られた入力項目に関する入力項目仕様定義及び入力支援定義を取得する。以下、ステップS32で取得した入力項目仕様定義及び入力支援定義を入力項目仕様定義D21x,入力支援定義D22xとする。
そして、ステップS33にて、ツール単位に、取得した入力項目、入力項目仕様定義D21x、入力支援定義D22xからなる読み込み定義情報D3をメモリ(RAM12)上のキャッシュデータCD10として蓄積する。なお、入力項目が重複している場合は、キャッシュデータCD10には蓄積しない。
なお、本明細書では説明の都合上、図13で示すフローチャートをシーケンシャルな動作として説明している。しかし、実際にはステップS32,S33の処理は構成定義の入力項目毎に繰り返し行われる処理であり、ステップS31〜S33の処理はツール毎に繰り返し行われる処理である。そこで、実際の処理内容を反映させるべく、図13のステップS30,S31間、ステップS31,S32間それぞれにループ開始図形を挿入し、ステップS33の後工程に2つのループ終了図形を挿入している。同様の理由で、以降で述べる図14〜図16,図18,図21,図22においてもループ開始図形,ループ終了図形を適宜、挿入している。
次に、図14を参照して、定義解釈手段4による定義解釈処理の処理手順を説明する。
同図を参照して、ステップS40にて、キャッシュデータCD10(読み込み定義情報D3)を読み込む。
ステップS41にて、読み込み定義情報D3から入力項目を一つずつ取り出し、入力支援定義D22xにおける条件式、支援値を取得する。
そして、ステップS42にて、入力支援定義D22xにおける全種類の条件式に対して、入力項目が含まれていないかを解析する。
その後、ステップS43にて、解析によって得られた入力項目、条件式、種類をキャッシュデータCD11(定義解釈結果D4)として登録する。なお、条件式で指定された入力項目がキャッシュデータCD10(読み込み定義情報D3)に含まれていない場合や入力項目として認識されたが、キャッシュデータCD11に登録されていない場合は、ユーザにエラーを通知する。
ステップS44にて、入力支援定義D22xの種類すべての支援値に対して、入力項目が含まれていないかを解析し、解析によって入力項目があった場合は、入力項目、支援値、種類をキャッシュデータCD11として登録する。なお、入力項目として認識されたが、キャッシュデータCD11に登録されていない場合は、ユーザにエラーを通知する。
ステップS45にて、キャッシュデータCD11をすべて取得し、キャッシュデータCD11に登録された入力項目から依存関係を生成し、ツールにおける入力項目間の依存関係を条件式及び支援値の内容を含めて規定した定義解釈結果D4をキャッシュデータCD12として登録する。なお、キャッシュデータCD12には読み込み定義情報D3も含まれる。
なお、図14において、ステップS42〜S45の処理はステップS41で選択された入力項目毎に繰り返し行われ、ステップS41〜S45の処理はツール毎に繰り返し行われる。
次に、図15を参照して、レイアウト定義手段5によるレイアウト定義処理の処理手順を説明する。図15で示すレイアウト定義処理は、定義解釈手段4によって得られた定義解釈結果D4が指示する入力項目の依存関係に基づき、レイアウト定義手段5がツールを構成する入力項目の並び順と、入力項目に埋め込む入力支援プログラム用のパラメータを生成する処理である。
まず、ステップS60において、キャッシュデータCD12(読み込み定義情報D3+定義解釈結果D4)を読込む。
ステップS61aにて読み込み定義情報D3内の順序定義D23を読込む。その後、ステップS61bにて、順序定義D23に定義されているツールを一つずつ取り出し、ツール単位に、順序定義D23のツールに関し、識別子をキーとして読み込み定義情報D3から構成定義D24を読み込み、入力項目を取得する。
その後、ステップS62にて、入力項目がどの他の入力項目に依存しているかをキャッシュデータCD12の定義解釈結果D4から取得する。
ステップS63にて、他の入力項目が並び順を格納するキャッシュデータCD13に蓄積されているかをチェックする。蓄積されていなければエラーとする。なぜならば、依存される側の他の入力項目の並び順が先であるため、キャッシュデータCD13に既に蓄積されている必要があるからである。
その後、ステップS64にて、ステップS62で認識した依存関係に基づき入力項目を並び順にしてキャッシュデータCD13として格納する。
ステップS64の処理が完了後、新たな入力項目順に並んだ一つ一つの入力項目毎に、入力項目間の依存関係を示す入力支援プログラム用のパラメータを生成する。
ステップS65にて、キャッシュデータCD13に格納されている入力項目順に、キャッシュデータCD12内の読み込み定義情報D3における入力支援定義を取得する。
ステップS66にて、入力項目が、既に別のツールにて利用されているか否かを検証する。
ステップS67にて、既に別のツールで利用されている場合は、当該入力項目の入力支援定義をすべて破棄し、ステップS68にて、既に利用されているツールの入力項目の番号が配置されている列番号(入力項目位置情報)を取得し、値入力支援用のパラメータを生成する。その後、ステップS69に移行する。
ステップS66にて、入力項目が、既に別のツールにて利用されていないとする判定の場合、ステップS67及びS68を経由することなく、ステップS69において、入力項目支援の条件式や支援値内に含まれる入力項目に対し、新たに並び変えられた列の番号に置き換えを行い、それぞれの種別に応じた入力支援プログラム用のパラメータを生成する。
そして、ステップS70にて、ツールの入力項目間の依存関係に加え、値入力支援用のパラメータ及び入力支援プログラム用のパラメータを規定したレイアウト定義情報D5をキャッシュデータCD14として登録する。なお、キャッシュデータCD14内に読み込み定義情報D3を含ませても良い。
なお、図15において、ステップS62〜S64の処理は入力項目毎に繰り返し行われ、ステップS61b〜S64の処理はツール毎に繰り返し行われる。また、ステップS66〜S70の処理は入力項目単位及びツール毎に繰り返し行われる。
図16及び図17は、ユーザがツール出力手段6を起動し、出力用ツール情報D6を出力し、出力用ツール情報D6で規定される入力項目にユーザがデータを入力する動作を示すシーケンスである。
図16では、定義部2(記録装置13)に格納されている定義情報D2を読込み、出力用ツール情報D6を得るまでの動作シーケンスである。
図16を参照して、ステップS80にて、定義部2に格納されている定義情報D2から順序定義D23を読込む。
ステップS81にて、順序定義D23のツールの識別子を検索キーとして、定義部2に格納されている定義情報D2から構成定義D24を読込む。なお、ステップS80及びS81において、定義情報D2に代えて、キャッシュデータCD14内に読み込み定義情報D3が含まれる場合、キャッシュデータCD14の読み込み定義情報D3からから順序定義D23及び構成定義D24を読み込んでも良い。
ステップS82にて、キャッシュデータCD14内のレイアウト定義情報D5に基づき、順序定義D23のツール一つ一つに対して表示順に並べられた入力項目と入力支援用の種類並びにそのパラメータ(入力支援プログラム用のパラメータ,値入力支援用のパラメータ)を取得する。
ステップS83にて、入力項目の各フィールドにパラメータで示した内容が動的に実現可能な入力支援プログラムを埋め込む。その結果、入力項目を並べ且つ、入力項目におけるパラメータが規定する入力依存関係を動的に実現する入力支援プログラムを埋め込んだ出力用ツール情報D6を得ることができる。
この出力用ツール情報D6はデータ管理部7に保存・管理される。なお、入力支援プログラムとは、パラメータで指示された条件式及び支援値による処理等が自動的に実行されるように制御するプログラムを意味する。
なお、図16において、ステップS82〜S83の処理は入力項目毎に繰り返し行われ、ステップS81〜S83の処理はツール毎に繰り返し行われる。
図17では、ユーザが図16の得られた出力用ツール情報D6で規定される入力項目にデータを入力した時の動作シーケンスである。
図17を参照して、ステップS90にて、出力用ツール情報D6を読み出し、ユーザが所望の入力項目に入力可能な表示形態で出力用ツール情報D6の内容を表示する。この環境下でユーザが表示された出力用ツール情報D6に規定された入力項目に相当する領域にデータを入力する。
その後、ステップS91で、ツール出力手段6は、データが入力されたことを検知する。
そして、ステップS92にて、データが入力されたというイベントを入力支援プログラムがウォッチし、自身が依存する入力項目である場合、そのデータを取込み、そのデータに基づく入力支援プログラムが実行される。
以上のような実施の形態1に係る監視制御アプリケーション設計装置1によれば、定義部2に定義された定義情報D2におけるツールが構成する入力項目の入力支援定義D22から、入力項目が依存する他の入力項目を自動的に得ることができ、入力依存関係に従い、依存性の低い入力項目を左から右の順に並べ且つ、その並びに従った入力支援プログラムを動的に生成することができる。
したがって、利用するツールの順序や、ツールを構成する入力項目を変更した場合でも、ツールを構成する入力項目の入力支援定義D22の依存関係に従い、定義読込手段3、定義解釈手段4及びレイアウト定義手段5を動作させることにより、最終的に変更後のツールの出力用ツール情報D6を自動で決定することができる。また、ユーザが出力用ツール情報D6の表示状態時における入力項目に入力するデータの選択肢や入力できる範囲などの入力支援を他の入力項目に入れたデータに応じて動的に変えることにより、入力精度を向上させることができる。
このように、実施の形態1の監視制御アプリケーション設計装置1は、定義読込手段4による定義解釈処理、レイアウト定義手段5によるレイアウト定義処理を経て、最終的にツール出力手段6により、ツール単位に、入力項目を並べ且つ、入力項目に入力支援プログラムを埋め込んで得られる出力用ツール情報D6を得ることができる。
したがって、実施の形態1の監視制御アプリケーション設計装置1は、利用するツールの順序や、ツールを構成する入力項目を変更した場合でも、ツールを構成する入力項目の入力支援定義D22の依存関係に従い、ツールにおける入力項目を並べ順であるルールのレイアウトを自動で決定した出力用ツール情報D6を得ることができるため、監視制御アプリケーションを使用するユーザに対する負担を軽減することができる。
<実施の形態2>
実施の形態2に係る監視制御アプリケーション設計装置1のハードウェア構成及び機能ブロック構成は、実施の形態1に係る監視制御アプリケーション設計装置1のハードウェア構成及び機能ブロック構成とそれぞれ同じである。以下、本実施の形態に係る監視制御アプリケーション設計装置1のハードウェア構成、及び、機能ブロック構成において、実施の形態1と同一の部分には同一符号を付与し、以下においては実施の形態1と異なる部分を中心に説明する。
本実施の形態に係る監視制御アプリケーション設計装置1においては、定義解釈手段3は、キャッシュデータCD10(読み込み定義情報D3)に含まれていない入力項目があった場合、実施の形態1とは異なり、該当する入力項目を定義部2(記録装置13)に保存されている入力項目仕様定義D21及び入力支援定義D22から取得するようになっている。
図18は実施の形態2における定義解釈手段4による定義解釈処理を示すフローチャートである。本実施の形態に係る監視制御アプリケーション設計装置1の動作について図18を用いて説明する。
図18を参照して、実施の形態1で説明したステップS40,S41(図14)と同様の処理が行われる。
そして、ステップS42Aにて、入力項目支援の種類のすべての条件式に対して、入力項目が含まれていないかを解析し、ステップS43Cにおいて、解析によって得られた入力項目、条件式、種類をキャッシュデータCD11に登録する。
なお、条件式が指示する入力項目がキャッシュデータCD10に含まれておらず入力項目として認識されない場合、あるいは入力項目として認識されたが当該入力項目がキャッシュデータCD11に登録されていない場合の2つの場合のいずれかに該当する入力項目である不存在入力項目の発生時に、エラーを通知することなくステップS43Bに遷移する。ステップS43Bにて、不存在入力項目に該当する入力項目仕様定義D21及び入力支援定義D22を定義部2から検索する。検索した結果、該当する入力項目がない場合は、この時点でユーザにエラーを通知する。該当した場合は、該当した入力項目に対してS41,S42Aの処理を実行する。その後、ステップS43Cにて、ステップS43Bにおいて取得した入力項目がキャッシュデータCD11として登録される。
またステップS44Aにて、入力項目支援の種類すべての支援値に対して、入力項目が含まれていないかを解析し、解析によって入力項目があった場合は、ステップS45Cにおいて、入力項目、支援値、種類をキャッシュデータCD11に登録する。なお、入力項目として認識されたが、キャッシュデータCD11に登録されていない不存在入力項目の場合は、ユーザにエラーを通知することなくステップS44Bに遷移する。
ステップS44Bにて、不存在入力項目に該当する入力項目仕様定義D21及び入力支援定義D22を定義部2から検索する。検索した結果、該当する入力項目がない場合は、ユーザにエラーを通知する。該当した場合は、該当した入力項目に対し、ステップS41,S42A及びS44Aの処理を実行する。その後、ステップS45Cにて、ステップS44Bで取得した入力項目がキャッシュデータCD12に登録される。
なお、図18において、ステップS42A〜S45Cの処理はステップS41で選択された入力項目毎に繰り返し行われ、ステップS41〜S4C5の処理はツール毎に繰り返し行われる。
以上のような実施の形態2に係る監視制御アプリケーション設計装置1によれば、定義部2の構成定義D24として重要な入力項目のみを定義するだけで、定義解釈手段3が、定義部2から入力項目の入力支援定義D22の条件式や支援値に含まれる依存関係にも基づき、ツールを構成するために必要な入力項目を自動で見つけ出すことができる。これにより、ユーザは構成定義D24にツールを構成するすべての入力項目を定義しなくて良く、定義の手間を削減することができる。
このように、実施の形態2の監視制御アプリケーション設計装置1は、構成定義D24にツールを構成するすべての入力項目を定義しなくて良く、重要な入力項目のみを定義するだけで、定義解釈手段4によってツールを構成するために必要な入力項目を自動的に見いだされる結果、最終的に出力用ツール情報D6内の上記ツールのレイアウトを自動で決定することができる。したがって、ユーザによる構成定義D24を作成する手間の軽減を図ることができる。
<実施の形態3>
実施の形態3に係る監視制御アプリケーション設計装置のハードウェア構成及び機能ブロック構成は、実施の形態2に係る監視制御アプリケーション設計装置1のハードウェア構成及び機能ブロック構成とそれぞれ同じである。以下、本実施の形態に係る監視制御アプリケーション設計装置1のハードウェア構成、及び、機能ブロック構成において、実施の形態1、実施の形態2と同一の部分には同一符号を付与し、以下においては実施の形態1、実施の形態2と異なる部分を中心に説明する。
実施の形態3に係る監視制御アプリケーション設計装置1においては、ツール出力手段6は、ツール出力手段6が出力中の全ツールの入力項目以外の項目を新たに追加しようとした場合、実施の形態1とは異なり、新たに追加する入力項目を定義部2に保存されている入力項目仕様定義D21及び入力支援定義D22から取得すると同時に、当該入力項目を配置するツールを要変更ツールとして選択することができる。そして、実施の形態3のツール出力手段6は、当該要変更ツールに関し、新たに追加された状態を反映した入力項目の並び順及び入力支援プログラムの再構築と指定する要変更ツール指定機能を有している。
図19は、ツール出力手段6による要変更ツール指定機能の動作シーケンスを示すフローチャートである。この要変更ツール指定機能は、実施の形態1あるいは実施の形態2の全ステップを実行後、ツール出力手段6による要変更ツール指定機能を起動させることにより実行される。
同図を参照して、ステップS100では、定義部2(記憶装置13)に格納されているすべての入力項目のうち、ツール出力手段6で未使用な入力項目を取得する。
その後、ステップS101で、ユーザは、該当する入力項目を選択する。
ステップS102で、定義部2に格納されている順序定義D23を取得し、ユーザは、新たに選択した入力項目を追加するツールを選択する。
その後、ステップS103で、ユーザはツールの再構築処理を実行させる。すなわち、実施の形態1の図13〜図17(図14に代えて図18でも可)で示した定義読込手段3、定義解釈手段4及びレイアウト定義手段5による定義読み込み処理、定義解釈処理及びレイアウト定義処理を順に再実行させる。
その後、ステップS104にて、新たに得られたレイアウト定義手段5からのキャッシュデータCD14等に基づき、新たに挿入された入力項目の位置を検出し、挿入された位置に前に配置された入力項目に関する情報が格納されていれば、この古い情報を適切な入力項目が配置された列へと移動する入力項目に関する情報の配置転換処理を行い、変更されたツールに適合した新たな出力用ツール情報D6を生成する。
そして、ステップS105において、新たに挿入された入力項目に関する情報を定義情報D2の構成定義D24内に含める書き換え処理を行う。
なお、ステップS100の処理を本処理はツール出力手段6から呼び出すことが可能である。
以上のような実施の形態3に係る監視制御アプリケーション設計装置1によれば、追加した入力項目の仕様に基づき変更の必要のなるツールに対し、入力項目の並び替え且つ、入力支援プログラムの再埋め込みを行えるので、ユーザが表示状態の出力用ツール情報D6における入力項目へのデータの投入最中又は投入後でも、新たに入力項目を追加することが可能となる。
また、この応用例として、入力項目へのデータの投入最中又は投入後でも、ツール出力手段6が既に構成している入力項目の入力項目支援定義の条件式や支援値を変更することもできる。
このように、実施の形態3の監視制御アプリケーション設計装置1は、ツール出力手段6に要変更ツール指定機能を持たせることにより、追加した入力項目の仕様に基づき、要変更ツールに関し、入力項目の並び替え且つ、入力支援プログラムの再埋め込みを行った後の出力用ツール情報D6を得ることができる。このため、ツールを構成する入力項目へのデータの投入最中又は投入後でも、新たに入力項目を追加することが可能となる。
<実施の形態4>
実施の形態4に係る監視制御アプリケーション設計装置のハードウェア構成及び機能ブロック構成は、実施の形態2、実施の形態3に係る監視制御アプリケーション設計装置1のハードウェア構成及び機能ブロック構成とそれぞれ同じである。以下、本実施の形態に係る監視制御アプリケーション設計装置1のハードウェア構成、及び、機能ブロック構成において、実施の形態1〜実施の形態3と同一の部分には同一符号を付与し、以下においては実施の形態1〜実施の形態3と異なる部分を中心に説明する。
実施の形態4のツール出力手段6は、出力用ツール情報D6内に入力項目支援定義に定義された条件値や支援値に従いデータが適切に入力されているかを最終チェックするデータ検証処理が実行可能である。
図20は実施の形態4によるツール出力手段6によるデータ検証処理を示すフローチャートである。
次に、本実施の形態に係る監視制御アプリケーション設計装置1の動作について図20を用いて説明する。
ステップS130にて、ユーザがツール出力手段6にある検証ボタンをクリックし、データ検証処理を開始する。
ステップS131にて、ツール出力手段6で登録された出力用ツール情報D6で規定される全ての入力項目の読み込みを実行する。
ステップS132にて、ステップS131で読み込んだ全ての入力項目について入力支援定義を取得し、ステップS133にて、条件式及び支援値に含まれている他の入力項目の値を取得する。
ステップS134にて、取得した他の入力項目の値を用いて条件式や支援値を実行する。すなわち、データ検証処理は入力支援プログラムの代わりに、他の入力項目の値を用いて条件式や支援値を実行する入力支援実行機能を有している。
その後、ステップS135にて、ステップS131で読み込んだ全ての入力項目に関し、該当結果が入力結果と合致しているかを検証する。合致していない場合は、ステップS136にて、該当箇所をキャッシュデータCD15に記録する。全処理完了後ステップS137にて、キャッシュデータCD15に含まれているエラー結果をユーザに通知する。
以上のような実施の形態4に係る監視制御アプリケーション設計装置1によれば、入力支援プログラムを使用しない又は使用できない環境においても、ツール出力手段6のデータ検証処理を実行させることにより、出力用ツール情報D6で規定される全ての入力項目へのデータ登録が適切になされているかを自動で再チェックすることができる。
<実施の形態5>
実施の形態5に係る監視制御アプリケーション設計装置のハードウェア構成及び機能ブロック構成は、実施の形態2、実施の形態3に係る監視制御アプリケーション設計装置1のハードウェア構成及び機能ブロック構成とそれぞれ同じである。以下、本実施の形態に係る監視制御アプリケーション設計装置1のハードウェア構成、及び、機能ブロック構成において、実施の形態1〜実施の形態3と同一の部分には同一符号を付与し、以下においては実施の形態1〜実施の形態3と異なる部分を中心に説明する。
定義部2において、入力支援定義D22の条件式または支援値に使用している文字列、例えば「連結OP :: '||' | ‘&&’」における「||」を「又は」や「&&」を「且つ」のように、人間が可読できる表現のマッピングテーブルを保持することにより、ツール出力手段6が出力用ツール情報D6を出力している表示形態における入力項目に関する仕様を、ツールを利用するユーザが可読できるドキュメントに変換することができる。
図21は実施の形態5のツール出力手段6による仕様内容表現変換機能を示すフローチャートである。
次に、本実施の形態に係る監視制御アプリケーション設計装置1の動作について図21を用いて説明する。なお、定義部2に、マッピングテーブルを管理させることと、図12のステップS2を改良し、ステップS2Aでは、入力項目仕様定義D21、入力支援定義D22、順序定義D23、構成定義D24、マッピングテーブルの内、どの定義を追加、変更、削除、検索等するかを選択する。
図21を参照して、ステップS110にて、ツール出力手段6が出力中の出力用ツール情報D6におけるツールに関する定義情報D2(順序定義D23、構成定義D24、入力項目仕様定義D21、入力支援定義D22)を取得する。
ステップS111にて、マッピングテーブルを定義部2(記憶装置13)から取得する。
ステップS112にて、入力支援定義D22の条件式や支援値に含まれる当初表示用語に対応するマッピングテーブルに含まれる変換対象用語を検索する。
ステップS113にて、該当する変換対象用語がある場合は、当初表示用語を変換対象用語に置換する。例えば、当初表示用語が‘&&’の場合、変換対象用語の「且つ」に置換する。
ステップS114にて、置換後の条件式及び支援値を規定した出力用ツール情報D6をキャッシュデータCD16として格納する。すべての処理完了後、ステップS115にて、キャッシュデータCD16に格納されている情報を、電子ファイル等に保存する。
なお、図21において、ステップS111〜S114の処理はツール毎に繰り返し行うことができる。
以上のような本実施の形態に係る監視制御アプリケーション設計装置1によれば、出力用ツール情報D6を出力している表示形態の入力項目にデータを入力するユーザが、条件式の内容等、可読できるデータ入力仕様書を自動生成することができる。
すなわち、実施の形態5の監視制御アプリケーション設計装置1のツール出力手段6は仕様内容表現変換機能を有しているため、出力用ツール情報D6で規定される入力項目にデータを入力するユーザが、可読できる仕様書(入力項目の仕様内容)を自動生成することができる。
<実施の形態6>
実施の形態6に係る監視制御アプリケーション設計装置のハードウェア構成及び機能ブロック構成は、実施の形態2、実施の形態3に係る監視制御アプリケーション設計装置1のハードウェア構成及び機能ブロック構成とそれぞれ同じである。以下、本実施の形態に係る監視制御アプリケーション設計装置1のハードウェア構成、及び、機能ブロック構成において、実施の形態1〜実施の形態3と同一の部分には同一符号を付与し、以下においては実施の形態1〜実施の形態3と異なる部分を中心に説明する。
定義部2において、入力仕様定義の属性に変換ロジック205を新たに追加し、出力用ツール情報D6で規定されるツールに入力したデータを外部のファイルやシステムに投入する際、変換ロジック205に定義されたロジックにて入力されたデータを変換することができる。例えば日付フォーマットがその一例であり、「yyyyMMdd」形式で入力されたデータを、「dd/MM/yyyy」という形式に変換する場合に利用する。
図22は実施の形態6のツール出力手段6による表現形式変換機能を示すフローチャートである。
次に、本実施の形態に係る監視制御アプリケーション設計装置1及びプログラムの動作について図22を用いて説明する。
ステップS120にて、ユーザがツール出力手段6にある表示変換ボタンをクリックし、表現形式変換処理を開始する。
ステップS121にて、ツール出力手段6で登録された出力用ツール情報D6で規定される入力項目に入力された全データの読み込みを実行する。
ステップS122にて、入力項目の表示形式仕様に変換ロジックが設定されているものに関しては、変換ロジックに従い、入力項目内のデータを変換する。
ステップS123にて、データ変換後の出力用ツール情報D6をキャッシュデータCD17として格納する。すべての処理が完了後、ステップS124にて、キャッシュデータC17に格納したデータ変換後の出力用ツール情報D6を電子ファイルまたは外部システム等に保存または投入する。
なお、図22において、ステップS122〜S123の処理は入力項目毎に繰り返し行われる。
以上のような本実施の形態6に係る監視制御アプリケーション設計装置1によれば、ツールに入力するデータの表現形式と、他のツールや監視制御アプリケーション設計装置及びプログラムやアプリケーションが読み込むデータの表現形式が異なる場合、その形式適した形に変換したデータを生成することで、変換作業の無駄を削減することができる。
このように、実施の形態6の監視制御アプリケーション設計装置1のツール出力手段6は、出力用ツール情報D6における入力項目の表現形式を他の装置が処理可能な表現形式に変換する表現形式変換機能を有している。このため、出力用ツール情報D6で規定されたツールの入力項目に入力するデータの表現形式と、他のツールや監視制御アプリケーション設計装置及びプログラムやアプリケーションが読み込むデータの表現形式が異なる場合、その形式に適した表現形式に変換したデータ仕様の入力項目を規定した出力用ツール情報D6を生成することにより、変換作業の無駄を削減することができる。
<プログラムへの応用>
実施の形態1〜実施の形態6で示した監視制御アプリケーション設計装置1のうち、定義読込手段3、定義解釈手段4、レイアウト定義手段5及びツール出力手段6による処理をコンピュータ実行可能なプログラム(監視制御アプリケーション設計支援プログラム)として記述することができる。
したがって、上記したプログラムをコンピュータに実行させることにより、実施の形態1〜実施の形態6で示し監視制御アプリケーション設計装置1と同様な効果を得ることができる。
<その他>
以上、本発明の実施の形態を詳細に開示し記述したが、以上の記述は本発明の適用可能な局面を例示したものにすぎず、本発明はこれに限定されるものではない。すなわち、記述した局面に対応する様々な例を、この発明の範囲から逸脱すること無い範囲内で考えることが可能となる。