(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023000795
(43)【公開日】2023-01-04
(54)【発明の名称】手順を記憶する方法、プログラムおよびシステム
(51)【国際特許分類】
G06F 8/34 20180101AFI20221222BHJP
【FI】
G06F8/34
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2021101809
(22)【出願日】2021-06-18
(71)【出願人】
【識別番号】000003687
【氏名又は名称】東京電力ホールディングス株式会社
(74)【代理人】
【識別番号】100114890
【弁理士】
【氏名又は名称】アインゼル・フェリックス=ラインハルト
(74)【代理人】
【識別番号】100116403
【弁理士】
【氏名又は名称】前川 純一
(74)【代理人】
【識別番号】100162880
【弁理士】
【氏名又は名称】上島 類
(72)【発明者】
【氏名】堀 尚雄
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376BC21
5B376BC41
5B376BC45
5B376BC49
(57)【要約】
【課題】複数の要素を含む手順を、簡便かつ正確にコンピュータに記憶する方法、プログラムおよびシステムを提供する。
【解決手段】複数の要素を含む手順を、コンピュータにより記憶する方法であって、要素に対応するセルが手順にしたがって配置された第1のスプレッドシートと、各要素がシンボルで表された第2のスプレッドシートとを受信するステップと、各要素に対応するオブジェクトを生成するステップであって、各オブジェクトは、連結情報を含み、連結情報は、要素に対応するセルの上流側に隣接するセルに対応する先行オブジェクトの情報と、要素に対応するセルの下流側に隣接するセルに対応する後続オブジェクトの情報とを含む、ステップと、を含む方法等により、解決することができる。
【選択図】
図1
【特許請求の範囲】
【請求項1】
複数の要素を含む手順を、コンピュータにより記憶する方法であって、
前記要素に対応するセルが前記手順にしたがって配置された第1のスプレッドシートと、各要素がシンボルで表された第2のスプレッドシートとを受信するステップと、
各要素に対応するオブジェクトを生成するステップであって、
各オブジェクトは、連結情報を含み、
前記連結情報は、要素に対応する前記セルの上流側に隣接するセルに対応する先行オブジェクトの情報と、要素に対応する前記セルの下流側に隣接するセルに対応する後続オブジェクトの情報とを含む、
ステップと、
を含む、方法。
【請求項2】
前記オブジェクトは、要素状態情報、入力状態情報、および出力状態情報をさらに含み、
前記方法は、前記コンピュータにより、
前記第2のスプレッドシートを表示するステップと、
要素に対する入力を受信するステップと、
前記入力に対応する要素について、該要素に対応するオブジェクトの要素状態情報および出力状態情報、ならびに後続オブジェクトの入力状態情報を更新するステップと、
更新された前記要素状態情報に応じて、前記入力に対応する要素のシンボルの表示を更新するステップと、
をさらに含む、
請求項1に記載の方法。
【請求項3】
前記入力は、前記シンボルに対する入力、前記コンピュータの外部からの信号入力、タイマ入力、および入力状態情報の変化のうちの少なくとも1つである、請求項2に記載の方法。
【請求項4】
前記要素状態情報、前記入力状態情報、および前記出力状態情報のそれぞれは、非遷移状態、遷移するためにユーザの確認を待っている確認待ち状態、および遷移状態の情報を含む、請求項2または3に記載の方法。
【請求項5】
前記第1のスプレッドシートの最上流から最下流まで各列毎に、列内の各セルに対応するオブジェクトの入力状態情報に応じて、該オブジェクトの要素状態情報および出力状態情報、ならびに後続オブジェクトの入力状態情報を更新するステップと、
上流側に位置するセルに対応するオブジェクトの入力状態情報が更新された場合には、更新されたセルのうち最も上流に位置するセルが属する列から第1のスプレッドシートの最下流の列まで各列毎に、列内の各セルに対応するオブジェクトの入力状態情報に応じて、該オブジェクトの要素状態情報および出力状態情報、ならびに後続オブジェクトの入力状態情報の更新を繰り返すステップと、
をさらに含む、請求項2から4のいずれか1項に記載の方法。
【請求項6】
前記第1のスプレッドシートの列ごとに、列内のセル要素のデータ構造および更新フラグを含む列要素のデータ構造を構築するステップと、
前記上流側に位置するセルに対応するオブジェクトの入力状態情報が更新された場合には、前記コンピュータにより、該オブジェクトの更新フラグをたてるステップと、
をさらに含む、請求項5に記載の方法。
【請求項7】
前記コンピュータが、前記要素の状態に基づいて、警報を発するステップをさらに含む、請求項2から6までのいずれか1項に記載の方法。
【請求項8】
前記第1のスプレッドシートのセルと、該セルに対応する、前記第2のスプレッドシートの前記シンボルとは、同一のラベルまたはデータにより関連付けされている、請求項1から7までのいずれか1項に記載の方法。
【請求項9】
コンピュータに、
手順を構成する要素に対応するセルが前記手順にしたがって配置された第1のスプレッドシートと、各要素がシンボルで表された第2のスプレッドシートとを受信する機能と、
各要素に対応するオブジェクトを生成する機能であって、
各オブジェクトは、連結情報を含み、
前記連結情報は、要素に対応する前記セルの上流側に隣接するセルに対応する先行オブジェクトの情報と、要素に対応する前記セルの下流側に隣接するセルに対応する後続オブジェクトの情報とを含む、
機能と、
を実現させるためのプログラム。
【請求項10】
プロセッサと、手順を構成する要素に対応するオブジェクトを記憶するメモリとを備えるシステムであって、
前記プロセッサは、
前記要素に対応するセルが前記手順にしたがって配置された第1のスプレッドシートと、各要素がシンボルで表された第2のスプレッドシートとを受信し、
各要素に対応するオブジェクトを生成する、
ように構成され、
各オブジェクトは、連結情報を含み、
前記連結情報は、要素に対応する前記セルの上流側に隣接するセルに対応する先行オブジェクトの情報と、要素に対応する前記セルの下流側に隣接するセルに対応する後続オブジェクトの情報とを含む、
システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、手順を記憶するための方法およびシステムに関し、特に複数の要素を含む手順を、コンピュータにより記憶する方法、プログラムおよびシステムに関する。
【背景技術】
【0002】
プラントや装置、システムの状態は、センサなどの測定値や、時間経過、それらの論理的な関係に基づいて定義されることが一般的である。例えば、プラントの圧力、温度、水量のいずれかの測定値が、所定の時間以上の間、上限値を上回ったときに、プラントが故障状態にあると判断することができる。このような判断処理をコンピュータで行うためには、コンピュータに判断するための処理手順を記憶させることが必要である。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
コンピュータに手順を記憶させる方法として、手順を図形で示した電子資料から、フローの情報を読み取り、図形の属性情報などから図形同士の繋がりに基づいて手順を記憶する方法が存在する。しかしながら、このような電子資料は人間が視覚的に手順を認識することを目的として作成されていることが多く、図形同士の繋がりが必ずしも正確に描かれているとは限らない。例えば、図形同士がわずかに離れて繋がっていなかったり、複数の重なりで繋ぐべきところがどこなのかが不明確といったことがある。このような不明確な箇所があると、コンピュータで手順を正確に認識して記憶することができない。
【0005】
正確性な処理フローを描くためには、例えば特許文献1に記載されたような専用ソフトウェアを用いればよい。しかしながら、専用ソフトウェアを利用するためには、操作方法に習熟する必要があり、またフローチャート作成の知識や経験も必要となる。また、専用ソフトウェアがない環境では手順を修正して更新することができない。
【0006】
したがって、専用ソフトウェアを用いずに、簡便かつ正確に手順をコンピュータに記憶することができる方法、プログラムおよびシステムが求められていた。
【課題を解決するための手段】
【0007】
上記課題は、複数の要素を含む手順を、コンピュータにより記憶する方法であって、要素に対応するセルが手順にしたがって配置された第1のスプレッドシートと、各要素がシンボルで表された第2のスプレッドシートとを受信するステップと、各要素に対応するオブジェクトを生成するステップであって、各オブジェクトは、連結情報を含み、連結情報は、要素に対応するセルの上流側に隣接するセルに対応する先行オブジェクトの情報と、要素に対応するセルの下流側に隣接するセルに対応する後続オブジェクトの情報とを含む、ステップとを含む、方法により、解決することができる。
【0008】
手順の要素が視覚的に理解が容易なシンボルで表された第2のスプレッドシートとともに、当該要素がセルで表され、セルの配列によって手順を表した第1のスプレッドシートを受信し、第1のスプレッドシートに基づいてコンピュータに手順を記憶させることができるため、専用ソフトウェアの操作方法の習熟やフローチャートの知識や経験が必要とされず、また描画に起因する不正確性を排除することができる。また、スプレッドシートは汎用的なソフトウェアで編集することが可能であるため、様々な環境で手順を修正して更新を行うことが可能となる。
【0009】
なお、本願において、「スプレッドシート」とは、列方向および行方向に配列されたセルを有するシートを意味する。また、「要素」は、入力状態、要素状態および出力状態を有し、これらの状態の関係が予め定められたルールで規定される処理単位を意味する。「要素」には、入力状態をそのまま要素状態および出力状態とする処理単位も含む。また、「上流」および「下流」とは、第1のスプレッドシートでセルを配列する際の処理の流れの方向である。例えば、左から右に向かって処理を行うようにセルが配列されている場合には、「上流側」とは左側を意味し、「下流側」とは右側を意味する。他方、上から下に向かって処理を行うようにセルが配列されている場合には、「上流側」とは上側を意味し、「下流側」とは下側を意味する。
【0010】
これに対して、「先行」および「後続」とは、実際の処理手順の前後関係を意味する。原則として、上流側の要素が「先行」して処理され、下流側の要素が「後続」する処理となるが、反復処理などで上流側に配置された要素の処理に戻る場合には、上流側に配置された当該要素が、「後続」する処理となる。
【0011】
また、上記方法は、オブジェクトは、要素状態情報、入力状態情報、および出力状態情報をさらに含み、方法は、コンピュータにより、第2のスプレッドシートを表示するステップと、要素に対する入力を受信するステップと、入力に対応する要素について、該要素に対応するオブジェクトの要素状態情報および出力状態情報、ならびに後続オブジェクトの入力状態情報を更新するステップと、更新された状態情報に応じて、入力に対応する要素のシンボルの表示を更新するステップと、をさらに含むことが望ましい。
【0012】
かかる構成により、ユーザは、視覚的に容易に認識可能なシンボルで表示された第2のスプレッドシート上で、要素に対する入力を行い、また手順にしたがって処理された各要素の状態を把握することが可能となる。コンピュータは第1のスプレッドシートに基づいて記憶された手順に基づいて処理を行うため、第2のスプレッドシートの描画に不正確な点があっても手順の記憶に影響はない。
【0013】
ここで、要素に対する入力は、シンボルに対する入力、コンピュータの外部からの信号入力、タイマ入力、および入力状態情報の変化のうちの少なくとも1つであることが望ましい。ユーザ入力や外部装置からの測定信号、所定の時間経過、先行する要素の出力状態などの種々の入力状態に応じて、出力状態を決定することが可能となる。
【0014】
また、要素状態情報、入力状態情報、および出力状態情報のそれぞれは、非遷移状態、遷移するためにユーザの確認を待っている確認待ち状態、および遷移状態の情報を含むことが望ましい。これにより、ユーザの管理態様に応じた状態管理が可能となる。
【0015】
さらに、上記方法は、第1のスプレッドシートの最上流から最下流まで各列毎に、列内の各セルに対応するオブジェクトの入力状態情報に応じて、該オブジェクトの要素状態情報および出力状態情報、ならびに後続オブジェクトの入力状態情報を更新するステップと、上流側に位置するセルに対応するオブジェクトの入力状態情報が更新された場合には、更新されたセルのうち最も上流に位置するセルが属する列から第1のスプレッドシートの最下流の列まで各列毎に、列内の各セルに対応するオブジェクトの入力状態情報に応じて、該オブジェクトの要素状態情報および出力状態情報、ならびに後続オブジェクトの入力状態情報の更新を繰り返すステップとをさらに含むことが望ましい。
【0016】
ある要素の状態に遷移があった場合には、後続する要素の状態の更新が必要となる。反復処理などで後続する要素に対応するセルが上流側に配置されている場合には、最下流の要素まで一通りの更新が終わった後に、更新された要素のうち最上流に位置する要素から再び更新処理を実行することを繰り返すことにより、要素の状態遷移を正確に反映することが可能となる。
【0017】
さらに、上記方法は、第1のスプレッドシートの列ごとに、列内のセル要素のデータ構造および更新フラグを含む列要素のデータ構造を構築するステップと、上流側に位置するセルに対応するオブジェクトの入力状態情報が更新された場合には、前記コンピュータにより、該オブジェクトの更新フラグをたてるステップとをさらに含むことが望ましい。更新フラグを参照することにより、上記繰り返しが必要か否かを容易に判断することが可能となり、また繰り返しに起因する無限ループに陥るケースを減らすことが可能となる。
【0018】
さらに、上記方法は、コンピュータが、要素の状態に基づいて、警報を発するステップをさらに含むことが望ましい。これにより、ユーザは、プラントの故障などのような、特定の状態が生じたことを、容易に把握することが可能となる。
【0019】
第1のスプレッドシートのセルと、該セルに対応する、第2のスプレッドシートの対応するシンボルとは、同一のラベルまたはデータにより関連付けされていることが望ましい。かかる関連付けがされることにより、第1のスプレッドシートのセルと第2のスプレッドシートのシンボルを関連付けるためのあらたな対応表を用いることなく、コンピュータにより、第1のスプレッドシートのセルと第2のスプレッドシートのシンボルとを対応づけることが可能となる。
【0020】
さらに、上記課題は、上述した機能を実現されるためのプログラムや、上述した方法を実施するように構成されたシステムによっても解決することができる。
【図面の簡単な説明】
【0021】
【
図2】第1のスプレッドシート(論理シート)の例である。
【
図3】第2のスプレッドシート(フローシート)の例である。
【
図6】本発明に係る方法およびプログラムのフローチャート(メインルーチン)である。
【
図7】本発明に係る方法およびプログラムのフローチャート(サブルーチン)である。
【
図8】本発明に係る方法およびプログラムのフローチャート(サブルーチン)である。
【
図9】本発明に係る方法およびプログラムのフローチャート(サブルーチン)である。
【
図10】本発明に係る方法およびプログラムのフローチャート(サブルーチン)である。
【
図11】本発明に係る方法およびプログラムのフローチャート(サブルーチン)である。
【
図12】第2のスプレッドシート上に各要素の状態を表示する例である。
【
図13】第2のスプレッドシート上に各要素の状態を表示する例である。
【発明を実施するための形態】
【0022】
本願発明の実施態様であるシステム10の概略構成図を
図1に示す。システム10は、プロセッサ12と、プロセッサ12に接続された表示装置11、入力装置13、タイマ14、メモリ15および警報装置16を備える。各接続は、有線で直接接続されていてもよいし、無線伝送による接続や、ネットワークを介した接続であってもよい。例えば、メモリ15は、インターネットを介して接続されたサーバの上のメモリであってもよい。また、表示装置11、プロセッサ12、入力装置13、タイマ14、メモリ15および警報装置16は、いずれも単一部材で構成されている必要は無く、複数の部材から構成されていてもよい。例えば、入力装置13は、マウス、キーボード、ネットワークインタフェースなどの複数のデバイスから構成されていてもよい。
【0023】
表示装置11は、液晶モニタやプロジェクタ、携帯端末などのスプレッドシートを表示する機能を有する装置である。入力装置13は、システム10にスプレットシートのデータの受け取りや、ユーザや外部装置からの入力を受け取る機能を有する装置である。キーボードやマウス、タッチパネルなどの人間が操作するデバイスのみならず、センサ信号やコマンド信号などを受け取る入出力インターフェースやネットワークインタフェースであってもよい。
【0024】
タイマ14は、周期的なクロック信号を発生し、計時機能を有する装置である。タイマ14からの信号やデータは、プロセッサ12のクロック信号や、時間経過をルールに含むタイマ要素の計時信号として使用される。
【0025】
メモリ15は、RAMやHDD、フラッシュメモリなどの、プロセッサ12で処理するプログラムやデータを格納する機能を有する。メモリ15には、Microsoft Excel、Google spreadsheetなどの汎用的なスプレッドシートアプリケーション151と、プロセッサ12により実行され、手順をメモリ15に記憶する機能を実現するためのプログラム152と、論理シート153と、フローシート154と、データ構造155と、オブジェクト156とが格納されている。プログラム152は、スプレッドシートアプリケーション151のマクロ機能で記述されていてもよいし、スプレッドシートアプリケーション151とは独立して実行可能な実行ファイルであってもよい。
【0026】
警報装置16は、ユーザが認識可能な警報を発生するための装置である。例えば、スピーカやブザーなどのような聴覚的な警報(警告音)を発生させるための装置や、ランプやLED、表示装置11への警告表示などのような視覚的な警報を発生する装置、振動などによる警報を発する装置などが該当する。警報装置16は、ユーザに対して直接的に警報を発するものだけでなく、外部装置に警報信号を送信する装置も含まれる。
【0027】
次に、
図3に基づいて、フローシート154(第2のスプレッドシート)の構成について説明する。フローシート154は、手順を構成する要素がシンボルで表されたスプレットシートである。フローシート154は、3つの領域51、52、53に領域分けされており、それぞれ要素501、502、503の状態を判断するための処理手順である。要素501、502、503は、それぞれテキストボックスのシンボルで表示されている。
【0028】
要素501の状態は、要素511~515、2つのタイマ要素521、522、および、3つの論理要素531、532、533を、領域51に示された手順によって処理することにより決定される。要素511~515、タイマ要素521、522、論理要素531、532、533は、矢印のシンボルで表示された連結要素551~560により連結されている。要素511~515、タイマ要素521、522、論理要素531、532、533、連結要素551~560は、予め定められたルールにより要素状態や出力状態が遷移する。
【0029】
要素511~515は、ユーザ入力や外部からの信号入力により遷移する入力状態が、所定の条件を満たすときに、要素状態および出力状態が遷移する要素である。要素511~515は、それぞれテキストボックスのシンボルで表示される。
【0030】
タイマ要素521、522は、所定の時間経過により要素状態および出力状態が遷移する。例えば、タイマ要素521は所定の入力状態が3時間以上継続すると要素状態および出力状態が遷移し、タイマ要素522は所定の入力状態が15分以上継続すると要素状態および出力状態が遷移する。タイマ要素521、522は、時間的条件が表示されたテキストボックスのシンボルで表示される。
【0031】
論理要素531、532、533は、入力状態の論理演算により要素状態および出力状態が遷移する要素である。例えば、論理要素531は、3つの入力状態のうち2つ以上が遷移すると要素状態が遷移する2/3論理積である。論理要素532は2入力論理積、論理要素533は3入力論理和である。論理要素531、532、533は、論理記号のシンボルで表示される。
【0032】
連結要素551~560は、入力状態がそのまま要素状態および出力状態となる要素である。連結要素551~560は、矢印のシンボルで表示される。領域51の最下流の要素である要素501は、本来であれば連結要素560の出力と接続されていなければならないが、視認性の観点から領域上部に表示されている。このように、フローシート154は、ユーザが、手順を視覚的に容易に把握することができるように構成することが可能である。すなわち、システム10は、論理シート153に基づいて手順が記憶されるため、フローシート154の表記は、処理の流れを正確に記述したものでなくともよい。
【0033】
続いて、論理シート153(第1のスプレットシート)の構成について説明する。論理シート153は、手順を構成する要素に対応するセルが手順にしたがって配置されたスプレットシートである。
図2は、フローシート154の領域51に対応する論理シート153の部分を示した図である。論理シート153はスプレッドシートで構成されているため、列番号(1列、2列、3列・・・)と行番号(1行、2行、3行)でセルの位置を示すことができる。例えば、「BOX_A25_01_01」というデータをもつ連結セル411は、1列1~3行に位置し、「BOX_A25_01_02」というデータをもつセル412は、1列4行に位置している。
【0034】
論理シート153は、フローシート154に表示された各要素に対応するセルが、手順にしたがって左から右に配列されている。よって、論理シート153では、左側が上流側に、右側が下流側となる。フローシート154の各要素に対応するラベルを、論理シート153内の対応するセルと一対一に対応付けることで、フローシート154のセルと論理シート153のセルとを関連付けしている。例えば、要素511は、論理シート153ではセル411に対応するため、本実施例では、要素511のラベル「BOX_A25_01_01」をセル411のデータとすることにより、関連付けしている。
【0035】
フローシート154の要素512~515、タイマ要素521、522、論理要素531、532、533は、それぞれ論理シート153のセル412~415、421、422、431、432、433に対応する。これに対して、連結要素では1対1対応とならない場合がある。例えば、フローシート154の連結要素552~555は、それぞれ論理シート153のセル452~455と1対1対応しているが、フローシート154の連結要素551は、論理シート153の2つセル4511、4512と対応している。この点について説明する。
【0036】
論理シート153では、左から右に向かって手順が進行するようにセルが配置されている。したがって、要素513に対応するセル413の下流側(右側)に、連結要素に対応するセル452が隣接して配置され、さらにその下流側に、論理要素531に対応するセル431が隣接して配置されている。同様に、要素514に対応するセル414の下流側には、連結要素に対応するセル453が隣接して配置され、さらにその下流側に、論理要素531に対応するセル431が隣接して配置されている。論理要素531は3入力であるため、3つのセルを上下方向に繋がったセルとなっている。要素515には2つの連結要素554、555が繋がるため、2つのセルを上下方向に結合したセル415の下流側に、それぞれの連結要素に対応するセル454、455が隣接して配置されている。そして、セル454の下流側に隣接するセルには、論理要素531に対応するセル431が配置され、セル455の下流側に隣接するセルには、タイマ要素521に対応するセル421が配置されている。
【0037】
上述した規則に従えば、要素512に対応するセル412の下流側に、連結要素に対応するセルが隣接して配置され、さらにその下流側に、論理要素532に対応するセル432が隣接して配置されなければならない。しかし、論理要素532には論理要素531の出力も入力されることから、論理要素532に対応するセル432は、論理要素532と論理要素531とを繋ぐ連結要素556に対応するセル456の下流側に配置せざるを得ない。すると、要素512に対応するセル412と、論理要素532に対応するセル432と、これらを繋ぐ連結要素のセルの3つのセルを並べて配置することはできない。そこで、同一のデータ「ARW_A25_02_04」をもつ2つのセル4511、4512を、それぞれ要素512に対応するセル412の下流側と、論理要素532に対応するセル432の上流側に隣接して配置することによって、両者が繋がっていることを示している。連結要素に対応するセルは2つあるが同一のデータを有することから、フローシート154の連結要素551のラベルを「ARW_A25_02_04」とすることにより、フローシート154の連結要素551および論理シート153のセル4511、4512の3つのセルを関連付けすることができる。同様の理由により、フローシート154の連結要素557は、論理シート153の2つセル4571、4572と対応し、同一のラベル/データ「ARW_A25_04_03」によって関連付けられている。
【0038】
なお、タイマ要素521、522対応するセル421、422は、タイマ14と繋ぐためのセル491、492が上流側に隣接して配置されている。
【0039】
続いて、
図4を参照しながら、データ構造155について説明する。データ構造155は、プロセッサ12によって論理シート153に基づいてメモリ15上に構築される。データ構造155は、論理シート153の各列に対応する列要素の構造210、220、230、240を含む。各列要素のデータ構造210、220、230、240は、論理シート153の各セルに対応するセル要素のデータ構造211、212、224、241および更新フラグ219、229、249を含む。さらに各セル要素のデータ構造211、212、224、241は、セルのデータ2111、2121、2241、2411、セルの開始行2112、2122、2242、2412、セルの終了行2113、2123、2243、2413、対応するオブジェクト参照情報2114、2124、2244、2414を格納する領域により構成されている。
【0040】
例えば、論理シート153の1列1~3行に位置するセル411は、列要素の構造210の中のセル要素のデータ構造211に対応する。セル要素のデータ構造211のセルのデータ2111には、セル411のデータである「BOX_A25_01_01」が登録されている。また、セルの開始行2112、セルの終了行2113の領域には、それぞれ1、3が登録されている。また、オブジェクト参照情報2114には、セル411に対応する要素511に対応するオブジェクトのオブジェクト名(obj_511)が登録されている。オブジェクト参照情報は、対応するオブジェクトを特定することができる情報であれば、オブジェクト名でなくともよい。
【0041】
同一の要素に対応するセルが複数ある場合には、同一のオブジェクト参照情報がそれぞれのセル要素のデータ構造に登録される。例えば、要素551に対応する2つのセル4511、4512のセル要素の構造224、241では、セルのデータ2241、2411、セルの開始行2242、2412、セルの終了行2243、2413には、対応するセル4511、4512のデータ、開始行、終了行が登録されているが、オブジェクト参照情報2244、2414には、要素551に対応する同一のオブジェクト名「obj_551」が登録されている。
【0042】
続いて、
図5を参照しながら、オブジェクト156について説明する。オブジェクト156は、プロセッサ12によって、フローシート154の各要素に対応して、メモリ15上に生成される。オブジェクト156は、先行オブジェクト情報261および後続オブジェクト情報262を含む連結情報260と、要素状態情報263と、入力状態情報264と、出力状態情報265と、ルール266とを含む。
【0043】
先行オブジェクト情報261は、当該要素の処理の直前に処理されるオブジェクトの参照情報が登録される。一方、後続オブジェクト情報262は、当該要素の処理の直後に処理されるオブジェクトの参照情報が登録される。例えば、論理要素531に対応するオブジェクト(オブジェクト名:obj_531)の先行オブジェクト情報261には、論理要素531の直前に処理される連結要素552、553、554のオブジェクト名(obj_552, obj_553, obj_554)が登録され、後続オブジェクト情報262には、論理要素531の直後に処理される連結要素556のオブジェクト名(obj_556)が登録されている。
【0044】
要素状態情報263には要素状態が、入力状態情報264には要素の入力状態が、出力状態情報265には要素の出力状態が、それぞれ格納されている。ここで、要素状態、入力状態、および出力状態は、要素の機能により適宜設定することができるが、本実施態様における各要素は3つの状態、すなわち、非遷移状態、遷移するためにユーザの確認を待っている確認待ち状態、遷移状態の3つの状態を有する。
【0045】
ルール266には、入力状態、要素状態および出力状態の関係が規定されている。例えば、2/3論理積の論理要素531に対応するオブジェクト(オブジェクト名:obj_531)のルール266には、3つの入力のそれぞれに対応する入力状態のうち2つ以上が遷移すると要素状態と出力状態が遷移するルールが登録されている。
【0046】
続いて、本願発明の実施態様であるシステム10の動作について、
図6~11のフローチャートを参照しながら説明する。システム10は、以下で特段の指定があるものを除き、プロセッサ12が、メモリ15の記憶されたプログラム152の命令を実行することにより実現される。
図6はメインルーチンのフローチャート30であり、
図7~11は、サブルーチンのフローチャート31~35である。
【0047】
はじめに、入力装置13により論理シート153とフローシート154を受信する(ステップ301)。次に、プロセッサ12が、論理シート153に基づいてオブジェクトを生成してデータ構造155を構築する(ステップ302~304)。データ構造155の構築により、各要素に対応するオブジェクト156の連結情報260には、当該要素に対応するセルの上流側に隣接するセルに対応する先行オブジェクト情報261と、当該要素に対応するセルの下流側に隣接するセルに対応する後続オブジェクト情報262が登録される。これにより、論理シート153のセル、フローシート154の要素、要素に対応するオブジェクトが関係付けされる。
【0048】
その後、表示装置11にフローシート154を表示して、各オブジェクト156に登録された入力状態、要素状態および出力状態を非遷移状態に初期化する(ステップ305)。続いて、プロセッサ12は、入力装置13に入力される外部からの信号入力、タイマ14からのタイマ入力、各要素に対応するオブジェクト156の入力状態情報264の変化などを受信するまで待機する(ステップ306)。入力を受信すると、プロセッサ12は、当該入力が動作を終了させる指示であるか否かを判断し(ステップ307)、終了指示である場合には、メインルーチン30の動作を終了する。一方、終了指示でない場合には、入力に対応する要素に応じて、フローシート内の各要素に対応するオブジェクト156の要素状態情報263、入力状態情報264および出力状態情報265を更新する(ステップ308)。
【0049】
次に、データ構造155の構築する動作(ステップ302~304)について、詳細に説明する。
図7は、データ構造構築1(ステップ302)に対応するサブルーチンのフローチャート31である。このサブルーチンでは、論理シート153に基づいて、データ構造155を構成する。
図8は、データ構造構築2(ステップ303)に対応するサブルーチンのフローチャート32である。このサブルーチンでは、各要素のオブジェクト156を生成して、データ構造155の各セル要素のデータ構造211、212、224、241のオブジェクト参照情報2114、2124、2244、2414に、対応するオブジェクト156の情報を登録する。
図9は、データ構造構築3(ステップ304)に対応するサブルーチンのフローチャート33である。このサブルーチンでは、論理シート153のセル配置に基づいて、各要素に対応するオブジェクト156の連結情報260を登録する。これら3つサブルーチンにより、要素に対応するセルの上流側に隣接するセルに対応する先行オブジェクト情報261と、要素に対応するセルの下流側に隣接するセルに対応する後続オブジェクト情報262とを含む連結情報260を有するデータ構造155を構築することができる。以下、データ構造構築1~3の各サブルーチンの動作について、詳細に説明する。
【0050】
図7に示したデータ構造構築1のサブルーチン31では、まず、プロセッサ12は、メモリ15上にデータ構造155の領域を確保して、全体データ構造の起点を作成し、データ構造155に論理シート153の各列に対応する列要素のデータ構造210、220、230、240を作成する(ステップ311)。続いて、プロセッサ12は、論理シート153の1列のセルを、1行から行方向に順次、セルを検索して、要素に対応するセルのセル情報を取得する(ステップ312)。論理シート153の1列1行には、フローシートの要素511に対応するセル411があるため、セル411のデータ「ARW_A25_01_01」、セルの範囲情報(開始行(1行)、終了行(3行))などのセル情報を取得する。次に、プロセッサ12は、1列の列要素のデータ構造210内に、要素511に対応するセル要素のデータ構造211を作成し(ステップ313)、セルのデータ2111、セルの開始行2112、およびセルの終了行2113のそれぞれに、論理シート153から取得したセル情報を登録する(ステップ314)。
【0051】
続いて、プロセッサ12は、列内に未処理のセルが有るか否かを判断する(ステップ315)。現時点では、1列1~3行のセル411の処理のみが終了し、1列4行以降にまだ未処理のセル412~415があることから、ステップ312に戻って次のセル、すなわち1列4行のセル412に対してステップ312~314処理を行って、セル要素のデータ構造212を作成、およびセル412から取得したセル情報(セルのデータ2121、開始行2122、終了行2123)の登録を行う。このようにして、1列5行のセル413、1列6行のセル414、1列7~8行のセル415に対応するセル要素のデータ構造を順次生成・登録して、1列の全てのセルの処理が完了する。
【0052】
次に、プロセッサ12は、論理シート153内に、未処理の列があるか否かを判断する(ステップ316)。現時点では、1列の処理のみが完了して、2列以降の未処理の列があるため、ステップ312に戻って次の列、すなわち第2列のセル441、442、4431・・・に対してステップ312~314処理を行って、2列の列要素のデータ構造220内のセル要素のデータ構造を作成し、セル情報を登録する。このようにして、3列の列要素のデータ構造230、4列の列要素のデータ構造240・・・と順次処理を行って、全ての列の処理が完了すると、メインルーチンに復帰する。
【0053】
なお、論理シート153が複数枚ある場合には、1つのデータ構造155に複数のシートの構造を登録するために、列番号にオフセットを設けて登録を行ってもよい。例えば、2枚目の論理シートには、20のオフセットを付加して、第1列は21列の列要素のデータ構造として、第2列は22列の列要素のデータ構造として、第3列は23列の列要素のデータ構造として登録する。さらに、3枚目の論理シートには、40のオフセットを付加して、第1列は41列の列要素のデータ構造として、第2列は42列の列要素のデータ構造として、第3列は43列の列要素のデータ構造として登録する。オフセットの大きさは、論理シート153のサイズによって適宜設定する。
【0054】
以上のようにデータ構造構築1を実行することにより、論理シート153に基づいたデータ構造155を構築することができる。
【0055】
続いて、
図8に示したデータ構造構築2のサブルーチン32の動作について、説明をする。データ構造構築2では、データ構造155の列要素のデータ構造210、220、230、240毎に順次、ステップ321~324の処理を行う。まず、プロセッサ12は、1列の列要素のデータ構造210の1番目のセル要素のデータ構造211、すなわち要素511(セル411)に対応するセル情報を取得し(ステップ321)、メモリ15上に対応するオブジェクトが存在するか否かを判断する(ステップ322)。現時点では、メモリ15上には要素511に対応するオブジェクトが存在していないので、プロセッサ12は、メモリ15上に要素511に対応するオブジェクト156を生成する(ステップ323、オブジェクト名:obj_511)。そして、プロセッサ12は、データ構造155の要素511に対応するセル要素のデータ構造211のオブジェクト参照情報2114に、オブジェクト名「obj_511」を登録する(ステップ324)。なお、オブジェクト参照情報は、対応するオブジェクトを特定することができる情報であれば、オブジェクト名でなくともよい。
【0056】
その後、ステップ321に戻って1列の2番目のセル要素のデータ構造212についてステップ321~324を実施して、オブジェクト参照情報2124を登録する。このようにして、1列の列要素のデータ構造210に登録された各セル要素のデータ構造について、順次、オブジェクト参照情報を登録する(ステップ325)。1列の列要素のデータ構造210の処理が終了すると、2列の列要素のデータ構造220、3列の列要素のデータ構造230、4列の列要素のデータ構造240・・・と順次処理を行って、全ての列の処理について、ステップ321~325の処理を行い(ステップ326)、その後、メインルーチンに復帰する。
【0057】
ここで、ステップ322において、メモリ15上に対応するオブジェクトが存在すると判断された場合には、新たなオブジェクトを生成せずに、既存のオブジェクトの参照情報をセル要素のデータ構造に登録する。例えば、連結要素551に対応する論理シート153のセルは、2列4行(セル4511)と4列4行(セル4512)の2つあるため、2列のセル要素のデータ構造224の処理の際に、対応するオブジェクト(オブジェクト名:obj_551)が生成され、4列のセル要素のデータ構造241の処理の際には、既に対尾するオブジェクトがメモリ15上に存在する。したがって、4列のセル要素のデータ構造241の処理の際には、オブジェクト生成(ステップ323)を行わずに、既に存在している対応するオブジェクトの参照情報「obj_551」を、セル要素のデータ構造241のオブジェクト参照情報2414に登録する。
【0058】
以上のようにデータ構造構築2を実行することにより、各要素のオブジェクト156を生成して、各セル要素のデータ構造211、212、224、241のオブジェクト参照情報に、対応するオブジェクト156の情報を登録することができる。
【0059】
続いて、
図9に示したデータ構造構築3のサブルーチン33の動作について、説明をする。サブルーチン33では、論理シート153の列毎に順次、ステップ331~334の処理を行う。まず、プロセッサ12は、1列1~3行のセル411のセル情報を取得し(ステップ331)、対応する論理シートのセル411の下流側に隣接するセルが存在するか否かを判断する(ステップ332)。セル411の下流側には、3つの結合要素のセル441、442、4431が隣接しているため、それぞれのセルのデータ「BOX_A25_02_01」、「BOX_A25_02_02」、「BOX_A25_02_03」を取得して(ステップ333)、当該データをセル411に対応するオブジェクト156の後続オブジェクト情報262に格納する。また、結合要素のセル441、442、4431に対応する各オブジェクト156の先行オブジェクト情報261に、セル411のデータ「BOX_A25_01_01」を登録する。これにより、セル411とセル411の下流側に隣接するセル441、442、4431に対応する各オブジェクトに連結情報260を登録することができる(ステップ334)。その後、ステップ331に戻って1列4行のセル412に対応するオブジェクトと、その下流側に隣接するセル4511のオブジェクトに連結情報260を登録する(ステップ334)。このようにして、1列のセル413、414、415について、順次331~334の処理を行う(ステップ335)。1列のセルの処理が終了すると、2列のセル441、442、・・・、3列のセル431、421、・・・と順次処理を行う(ステップ336)。全ての列の処理が完了すると、メインルーチンに復帰する。
【0060】
ここで、ステップ332において、下流側に隣接するセルが存在しないと判断された場合には、特段の処理を行わずに、次のセル要素のデータ構造の処理を行う。例えば、2列4行のセル4511(要素551)は、下流側に隣接するセルで値が入っているものがない(空白セル470)ことから、対応するオブジェクト(オブジェクト名:obj_551)の後続オブジェクト情報(262)には、何も登録しない。なお、要素551に対応するオブジェクト(オブジェクト名:obj_551)は、1列4行のセル412の処理時に先行オブジェクト情報が登録され、4列4行のセル4512の処理時に後続オブジェクト情報が登録される。
【0061】
以上のように、データ構造構築3を実行することにより、論理シート153のセル配置に基づいて、各要素に対応するオブジェクト156の連結情報260を登録することができる。
【0062】
続いて、
図10のフローチャート34を参照しながら、オブジェクト156の要素状態情報263、入力状態情報264および出力状態情報265のぞれぞれの状態を更新するサブルーチン(ステップ308)の動作を説明する。まず、プロセッサ12は、入力に対応するオブジェクトを対象とする更新サブルーチン処理を行う(ステップ341)。これにより、入力による状態遷移を関連するオブジェクトに反映させることができる。例えば、要素511に対して状態を遷移させる外部信号入力を受信した場合や、表示装置11に表示された要素511のシンボルに対してユーザからの状態遷移させる入力を受信した場合には、入力に応じて要素511に対応するオブジェクトの入力状態情報を更新するともに、要素511に対応するオブジェクトを対象とする更新サブルーチン処理を行う。
【0063】
図11に更新サブルーチン処理のフローチャート35を示す。はじめに、プロセッサ12は、対象となるオブジェクト156の情報を取得する(ステップ351)。上述した例では、要素511に対応するオブジェクト156の情報を取得する。次に、プロセッサ12は、オブジェクト156のルール266にしたがって、要素511の入力状態から、要素5111の要素状態および出力状態を決定し、要素511に対応するオブジェクト156の要素状態情報263および出力状態情報265の情報を更新する(ステップ352)。
【0064】
その後、プロセッサ12は、表示装置11に表示されたフローシート154のシンボルを、対応するオブジェクトの更新された要素状態情報263に応じて、更新する(ステップ353)。本実施態様における各要素は、ルールに規定された条件を満たしていない非遷移状態、条件を満たしているがユーザの確認を得ていない確認待ちの状態、ユーザの確認後の遷移状態の3つの状態を有する。
図3、
図12、
図13にそれぞれの状態の表示例を示す。
図3は、全ての要素が非遷移状態にあるときの表示である。各要素は細実線で表示される。
図12は、要素515が確認待ちの状態のときの表示例である。要素515が点線で表示される。また、要素515に後続する連結要素554、555も確認待ちの状態となるため、点線で表示される。その後、ユーザが要素515をクリックすることによって、確認の入力がされると、遷移状態になり、
図13のように太実線で表示される。要素515に後続する連結要素554、555も太実線で表示される。要素の状態は、上述したような線種ではなく、線の色やシンボルの背景色などの違いで表してもよい。
【0065】
次に、プロセッサ12は、要素511に対応するオブジェクト156の後続オブジェクト情報262に基づいて後続オブジェクトを特定してオブジェクト情報を取得し(ステップ354)、後続オブジェクトの入力状態情報264に求めた出力状態を登録して更新する(ステップ355)。上述した例では、更新された要素511の出力状態を、要素511に後続する連結要素541、542、543に対応するオブジェクト156の入力状態情報264に登録する。この際、後続する連結要素541、542、543に対応するオブジェクト156の入力状態に変化がない場合には、更新を行わない。
【0066】
次に、プロセッサ12は、ステップ352で更新を行ったオブジェクト156に対応する論理シート153上のセルの位置と、ステップ355で更新を行った後続オブジェクトに対応する論理シート153上のセルの位置とを比べて、更新された後続オブジェクトに対応するセルが上流側に位置しているか否かを判断する(ステップ356)。より具体的には、後続オブジェクトの同期タイミングが同じ(すなわち、この後続オブジェクトは、既に同じ同期信号を持っている。つまり評価済みなので評価の順番から言うと上流側である)、かつ、出力状態情報を後続オブジェクトへ渡すことで、後続オブジェクトの入力状態情報が変化したかという条件を満たしているか否かを判断する。すなわち、後続オブジェクトが上流側にあり、かつ、後続オブジェクトの入力状態が変化したか否かを判断する。条件を満たしている場合には、後続オブジェクトが属する列要素のデータ構造210、220、230,240の更新フラグ219、229、249のフラグをたてる(ステップ357)。上述した例では、ステップ352で更新を行ったオブジェクト156に対応するセル411は1列のセル、ステップ355で更新を行った後続オブジェクトに対応するセル441、442、4431は、下流側に位置する2列のセルなので、更新フラグはたてない。これに対して、反復処理などで上流側に配置された要素の入力状態情報が更新された場合には、更新されたオブジェクトの列要素のデータ構造の更新フラグがたてられる。
【0067】
その後、更新サブルーチン処理を終了して、状態更新のサブルーチン34に復帰する。このように、オブジェクトの更新サブルーチン35により、オブジェクト156の入力状態情報264に応じて、当該オブジェクトの要素状態情報263および出力状態情報265、ならびに後続オブジェクトの入力状態情報264を更新し、さらに、上流側に位置するセルに対応するオブジェクトの入力状態情報が更新された場合には、更新されたセルの属する列の更新フラグ219、229、249をたてることができる。
【0068】
状態更新のサブルーチン34から復帰すると、次にプロセッサ12は、全てのオブジェクトに対して、順次、更新サブルートン35を呼び出す(ステップ342)。これにより、入力による状態遷移の影響を、全てのオブジェクトに反映させることができる。具体的には、論理シート153の最上流(1列)から最下流(11列)まで各列毎に、列内の各セルを対象とする更新サブルーチン処理を行う。これにより、各セルに対応するオブジェクト156の入力状態情報264に応じて、当該オブジェクトの要素状態情報263および出力状態情報265、ならびに後続オブジェクトの入力状態情報264を更新し、さらに、上流側に位置するセルに対応するオブジェクトの入力状態情報が更新された場合には、更新されたセルの属する列の更新フラグ219、229、249をたてることができる。
【0069】
その後、プロセッサ12は、各列要素のデータ構造210、220、230、240の更新フラグ219、229、249を参照して、ステップ342の実行中に、上流側に位置するセルに対応するオブジェクトの入力状態情報が更新されたか否かを判断する(ステップ343)。上流側に位置するセルに対応するオブジェクトの入力状態情報の更新があった場合には、更新フラグ219、229、249がたっている列のうち最上流の列から、論理シート153の最下流の列まで各列毎に、列内の各セルを対象とする更新サブルーチン処理35を行う(ステップ344)。ステップ344の実行中に、上流側に位置するセルに対応するオブジェクトの入力状態情報が更新された場合には、さらに、更新されたセルのうち最も上流に位置するセルが属する列から、論理シート153の最下流の列まで各列毎に、列内の各セルを対象とする更新サブルーチン処理35を行う(ステップ344)。このように、後続する要素に対応するセルが上流側に配置されている場合には、最下流の要素まで一通りの更新が終わった後に、更新された要素のうち最上流に位置する要素から再び更新処理を実行することを繰り返すことにより、要素の状態遷移を正確に反映することが可能となる。
【0070】
その後、プロセッサ12は、各要素が予め設定された状態(所定の状態)となったか否かを判定し(ステップ345)、所定の状態となった場合には、警報装置16により警報を発する(ステップ346)。警報は、ユーザの五感に直接的に働きかけるものだけでなく、外部装置に信号を送信することにより発してもよい。警報を発する条件となる「所定の状態」は、予め設定し、各オブジェクト156に登録しておいてもよい。警報の処理(ステップ345、346)が完了すると、サブルーチン34の処理を終了し、メインルーチンに復帰する。
【0071】
以上で説明したように、システム10は、手順の要素が視覚的に理解が容易なシンボルで表されたフローシート154とともに、当該要素がセルで表され、セルの配列によって手順を表した論理シート153を受信し、論理シート153に基づいて手順を記憶させることができるため、専用ソフトウェアの操作方法の習熟やフローチャートの知識や経験が必要とされず、また描画に起因する不正確性を排除することができる。また、スプレッドシートは汎用的なソフトウェアで編集することが可能であるため、様々な環境で手順を修正して更新を行うことが可能となる。
【0072】
そして、ユーザは、視覚的に容易に認識可能なシンボルで表示されたフローシート154上で、要素の遷移を入力し、また手順にしたがって処理された各要素の状態を把握することが可能となる。また、警報発令により、ユーザは、プラントの故障などのような、特定の状態が生じたことを、容易に把握することが可能となる。
【0073】
以上、本願発明にかかるシステムおよび方法に関する説明を行ったが、本発明は上記の実施の形態に限定されるものではなく、本発明の概念及び特許請求の範囲に含まれるあらゆる態様を含む。例えば、フローシート(第2のスプレッドシート)における各要素のシンボルや状態の表示方法は、使用状況や使用環境にあわせて、適宜変更可能である。また、後続オブジェクトが複数ある場合に、上述した実施の形態では全ての後続オブジェクトに対して同じ出力状態を出力しているが、どのオブジェクトにどのような情報を送り出すのかを制御するようにルールを設定してもよい。また、上述した実施の形態では、オブジェクトの更新サブルーチン処理35のなかでシンボル表示の更新(ステップ353)を行っているが、これに代えて、全ての更新処理が完了した後、すなわち
図10のステップ345の直前に、シンボル表示の更新を行ってもよい。さらに、上述した実施の形態では、各要素の状態について、非遷移状態、遷移するためにユーザの確認を待っている確認待ち状態、遷移状態の3つの状態を有しているが、真と偽のような2つの状態や、4つ以上の状態を有してもよい。
【符号の説明】
【0074】
10 システム
11 表示装置
12 プロセッサ
13 入力装置
14 タイマ
15 メモリ
16 警報装置
152 プログラム
153 論理シート
154 フローシート
155 データ構造
156 オブジェクト