JP5254149B2 - プラントモデル作成システムおよびプラントモデル作成方法 - Google Patents

プラントモデル作成システムおよびプラントモデル作成方法 Download PDF

Info

Publication number
JP5254149B2
JP5254149B2 JP2009177585A JP2009177585A JP5254149B2 JP 5254149 B2 JP5254149 B2 JP 5254149B2 JP 2009177585 A JP2009177585 A JP 2009177585A JP 2009177585 A JP2009177585 A JP 2009177585A JP 5254149 B2 JP5254149 B2 JP 5254149B2
Authority
JP
Japan
Prior art keywords
program
input
processing unit
output
variable
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2009177585A
Other languages
English (en)
Other versions
JP2011034179A (ja
Inventor
秋雄 荒川
賢也 滝脇
信之 西條
茂人 菊池
秀樹 高橋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2009177585A priority Critical patent/JP5254149B2/ja
Publication of JP2011034179A publication Critical patent/JP2011034179A/ja
Application granted granted Critical
Publication of JP5254149B2 publication Critical patent/JP5254149B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Testing And Monitoring For Control Systems (AREA)
  • Stored Programmes (AREA)
  • Feedback Control In General (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

本発明は、シミュレーションモデルを作成する技術に係り、特に、モデルの再構築を正確かつ効率的に行い得るプラントモデル作成システムおよびプラントモデル作成方法に関する。
原子力プラントにおいては安定運転を確保するために、プラントのプロセス特性や制御装置および操作装置を模擬した運転訓練用シミュレータを用いて、運転訓練が行われている。運転訓練においてはプラントの運転手順に沿った起動停止手順を学習・訓練するとともに、万が一、プラントにおこることが想定される異常事象をシミュレータにより発生させ、これに対する対応操作・措置を訓練する。
訓練においては訓練の条件が実プラントと近いことが訓練の効果を高めるために必要である。模擬している状況が実プラントとプラントの状態、および操作の条件において近いことが臨場感を高めることになる。すなわち、プラントの運転状態の温度、圧力、流量、放射線センサー読み値、スイッチの状態が実プラントの運転状態と近いことの他、運転しているクルーの数、作業の内容が実際の運転の状況とあっていることが望ましい。
このような観点から、プラントの実機と近い環境を作るために多くの機器を模擬するプラントモデル作成システムやプラント模擬装置が提案されている。このような多くの機器を模擬するプラントモデル作成システムやプラント模擬装置では、そのソフトウエアの量は通常膨大なものであり、その開発・製作・保守には多大な労力を要している事情に鑑みて、例えば、特許文献1及び特許文献2に記載されるような労力軽減化を図ったプラントモデル作成システムやプラント模擬装置が提案されている。
特開2006−3600号公報 特開2008−225820号公報
しかしながら、上述した特許文献に記載されるプラントモデル作成システムに代表される従来のプラントモデル作成システムでは、開発・製作・保守に要する労力の軽減化が必ずしも十分なものではなかった。例えば、上述した特許文献に記載されるプラントモデル作成システムでは、既存のソフトウエアを再利用するため、個別に新しく部品化して再製作する方法が採用されているが、個別の部品化は当該プラントモデル作成システムを使って行ってはいるものの、ユーザーの手作業による入力の負担が多く手間がかかる点は否めないものであった。
そこで、上述した課題を考慮して、再構築する際に、従来のソフトウエアのソースコードよりもわかりやすく保守しやすいソフトウエアとして正確かつ効率的にプラントモデルを再構築し得るプラントモデル作成システムおよびプラントモデル作成方法を提供する。
本発明に係るプラントモデル作成システムは、上述した課題を解決するため、既存のソフトウエアからソフトウエア部品を再構築するソフトウエア部品再構築処理手段を具備し、前記ソフトウエア部品再構築処理手段は、前記既存のソフトウエアのソースコードから、入力変数、出力変数、および、入力と出力の両方が存在する変数のうち、何れの変数であるかを判定する入出力抽出処理部と、前記既存のソフトウエアに対して、グローバル変数でのサブプログラム間の参照をローカル変数での参照に置き換えたサブプログラムを生成する引数化処理部と、前記入出力抽出処理部の変数判定結果および引数化処理部の生成したサブプログラムを用いて、前記サブプログラムをモデルオブジェクトとして認識し呼び出し関係を定義したプログラム構成ツリー情報および前記変数の入出力関係情報を生成する接続関係情報抽出処理部と、前記プログラム構成ツリー情報および入出力関係情報に基づいて、予め生成しておいた部品データから所定の部品を呼び出して部品を配置し、配置した部品同士を結線してモデルプログラムを作成する部品群配置結線処理部と、前記モデルプログラムを構成する部品群の配置および結線の状態と入出力関係情報に基づいて前記モデルプログラムのソースコードを生成するプログラムソースコード生成処理部とを備え、前記モデルプログラムを作成する際に、追加・削除されない変数のアドレスは保持されることを特徴とする。
本発明に係るプラントモデル作成方法は、上述した課題を解決するため、既存のソフトウエアからソフトウエア部品を再構築するソフトウエア部品再構築処理手段を具備するプラントモデル作成システムにおけるプラントモデル作成方法であり、前記ソフトウエア部品再構築処理手段が、既存のソフトウエアのソースコードから当該ソースコードの中の変数が入力変数、出力変数または入出力変数の何れであるかを判定するステップと、前記判定ステップでの判定結果を使って前記ソースコードを持つプログラムのプログラム構成ツリーと、当該プログラムのサブプログラム間でやりとりされる変数の入出力関係を規定した入出力関係情報とを抽出するステップと、前記サブプログラム間におけるグローバル変数での参照をローカル変数での参照に置き換えたサブプログラムを生成するステップと、前記プログラム構成ツリー、入出力関係情報、サブプログラムおよび予め生成しておいたソフトウエア部品を格納したデータベースを参照して前記ソフトウエア部品を配置し結線するステップと、前記ソフトウエア部品を結線したモデルプログラムのソースコードを生成するステップとを備え、前記モデルプログラムを作成する際に、追加・削除されない変数のアドレスは保持される処理手順を実行することを特徴とするプラントモデル作成方法。
本発明によれば、プラントモデルを再構築する際に、従来のソフトウエアのソースコードよりもわかりやすく保守しやすいソフトウエアとして正確かつ効率的に行うことができる。
本発明の実施形態に係るプラントモデル作成システムのシステム構成例を示した概略図。 本発明が再利用する既存のプログラムのソースの一例を示した説明図。 本発明に係るプラントモデル作成システムが実行するソースコードソフトウエア部品の再構築処理手順の処理フローを示す説明図。 本発明の実施形態に係るプラントモデル作成システムの引数化処理部が実行する引数化処理ステップの処理手順を示した説明図。 本発明の実施形態に係るプラントモデル作成システムの入出力抽出処理部が実行する入出力抽出処理ステップの処理フローを示した説明図。 本発明の実施形態に係るプラントモデル作成システムにおいて作成される引数定義表の一例を示した説明図。 本発明の実施形態に係るプラントモデル作成システムの接続関係情報抽出処理部が抽出する接続関係情報としてのプログラム構成ツリーの情報を示した説明図。 本発明の実施形態に係るプラントモデル作成システムの接続関係情報抽出処理部が抽出した接続関係情報からプログラムのサブプログラム間における変数の入出力関係についてまとめたテーブル(入出力関係表)の一例を示した説明図。 本発明の実施形態に係るプラントモデル作成システムの引数化処理部が実行する引数化処理ステップ後に得られるソースの一例を示した説明図。 本発明の実施形態に係るプラントモデル作成システムの部品データを作成する際に必要となるアイコンの一例を示した説明図。 本発明の実施形態に係るプラントモデル作成システムの部品化処理部が作成した部品データの一例およびプログラム再構成の概略例を示す説明図。 本発明の実施形態に係るプラントモデル作成システムの部品データに対応する部品の引数定義表であって、(a)は部品名「入口境界」の引数定義表、(b)は部品名「出口境界」の引数定義表、(c)は部品名「ポンプ」の引数定義表、(d)は部品名「タンク」の引数定義表を説明する説明図。 本発明の実施形態に係るプラントモデル作成システムの部品群配置結線処理部が実行する部品群配置結線処理ステップの処理手順を示した説明図。 本発明の実施形態に係るプラントモデル作成システムのプログラムソースコード生成処理部がプログラムの更新・生成の際に作成するメモリーテーブルの一例を示す説明図。 本発明の実施形態に係るプラントモデル作成システムのプログラムソースコード生成処理部が作成したプログラムのソースの一例を示した説明図。 本発明の実施形態に係るプラントモデル作成システムの計算評価部が実行するシミュレーションコード評価ステップの詳細な処理手順を説明する説明図。 本発明の実施形態に係るプラントモデル作成システムにおいて、既存のプログラム構成ツリーを部品追加等によって変更した後のプログラム構成ツリーを示した説明図。 本発明の実施形態に係るプラントモデル作成システムにおいて、プログラム構成ツリーの変更に伴い変更された後の入出力関係表を示した説明図。 本発明の実施形態に係るプラントモデル作成システムの部品群配置結線処理部が実行する部品群配置結線処理ステップによって変更後のプログラム構成ツリーに対応した部品を配置し結線して作成された結線図を示す説明図。 本発明の実施形態に係るプラントモデル作成システムのプログラムの更新・生成の際に作成されるメモリーテーブルの一例であり、プログラムソースコード生成処理部がプログラムを更新した後のメモリーテーブルを示す説明図。 本発明の実施形態に係るプラントモデル作成システムで実行されるプログラムソースコード生成処理ステップのサブステップであるメモリーテーブル更新処理ステップの処理フローを示した説明図。 本発明の実施形態に係るプラントモデル作成システムで再利用するプラントプログラムに含まれるタンクプログラム(サブプログラム)のソース(引数化処理前)を示した説明図。 本発明の実施形態に係るプラントモデル作成システムで再利用するプラントプログラムに含まれるタンクプログラム(サブプログラム)のソースから得られる情報を示す図であって、(a)は引数定義表の例を示した説明図、(b)はプログラム構成ツリー情報を示した説明図、(c)は入出力関係表の一例を示した説明図。 本発明の実施形態に係るプラントモデル作成システムで再利用するプラントプログラムに含まれるタンクプログラム(サブプログラム)に対して引数化処理ステップ後のソースを示した説明図。 タンクプログラム(サブプログラム)を有するプラントプログラムに対して本発明の実施形態に係るプラントモデル作成システムの部品化処理部が作成した部品データの一例およびプログラム再構成の概略例を示す説明図。
以下、本発明の実施形態に係るプラントモデル作成システムの実施形態について、図面を参照して説明する。
図1は、本発明の実施形態に係るプラントモデル作成システムの一実施例であるプラントモデル作成システム10のシステム構成例を示した概略図である。
プラントモデル作成システム10は、ハードウエア資源であるコンピュータとソフトウエア資源であるソフトウエア部品再構築処理プログラム(以下、ソフトウエア部品再構築処理PGと称する。)11とが協働することによって実現されるシステムであり、サブプログラム間の変数の取り合いをローカル変数(FORTRAN言語では引数)で取り合うようにして処理を実行するシステムである。
図1に示されるプラントモデル作成システム10は、操作の入力を受け付ける入力手段12と、処理実行結果等の視覚的な情報をユーザーに提示する表示手段13と、既存のソフトウエアからソフトウエア部品を再構築するソフトウエア部品再構築処理手段14と、プログラム、ファイル、データベース等の電子的な情報を記憶して格納可能な記憶領域を有する記憶手段15と、を具備する。
ソフトウエア部品再構築処理手段14は、入出力抽出処理部21と、接続関係情報抽出処理部22と、引数化処理部23と、部品化処理部24と、部品群配置結線処理部25と、プログラムソースコード生成処理部26と、計算評価部27とを備える。
入出力抽出処理部21は、既存のソフトウエアのソースコードから何れの種類の変数であるか、すなわち、入力変数、出力変数または入力と出力の両方が存在する変数(以下、入出力変数と称する。)の何れであるかを判定する機能を有し、当該機能に基づいて入力変数、出力変数または入出力変数の何れであるかを判定する。
接続関係情報抽出処理部22は、接続関係情報を抽出する機能を有し、当該機能に基づいて接続関係情報を抽出する。ここで、接続関係情報とは、後述する図7に一例として示されるプログラム構成ツリーの情報と、後述する図8(図6)に一例として示される入出力関係の情報とを含む。
また、接続関係情報抽出処理部22は、接続関係情報の抽出のみならず、一度抽出され作成されたプログラム構成ツリーの情報および入出力関係の情報を編集(追加や削除等)する機能を有し、当該機能によって、プログラム構成ツリーや入出力関係表の編集を行うことができる。
引数化処理部23は、ソースコードにおけるコモンラベルの変数をいわゆる引数に追加していく機能を有する。引数化処理部23は、当該機能を用いて、プログラムを引数化する。具体的には後述する図4に示される処理を行い、既存のソースを後述する図9に示されるソースとする処理を実行する。これによって、再構築後のプログラムにおいて、サブプログラム間の変数の取り合いをローカル変数(FORTRAN言語では引数)で取り合うようにすることができる。
部品化処理部24は、予めユーザーが定義したアイコンと、引数化処理部23によって引数化されたサブプログラム29に登場する部品とを対応付ける機能を有する。また、部品化処理部24は、生成したソフトウエア部品のうち不要となったものを削除したり複製したりする機能(ソフトウエア部品編集機能)を有する。
部品化処理部24は、図3に示されるソースコードソフトウエア部品再構築処理手順(ステップS1〜ステップS4)のステップS2の処理(より詳細には図10に示される処理)を実行することで、アイコンとサブプログラムに登場する部品名とを対応付けてソフトウエア部品を生成することができる。
部品群配置結線処理部25は、プログラム構成ツリーおよび入出力関係表(接続関係情報)に基づいて、予め生成しておいた個々の部品から所定の部品を呼び出して部品を配置したり、配置した部品と部品とを結線したりする機能を有し、当該機能に基づいて複数の部品を結線して構成されるモデルプログラム(本実施例ではプラントモデル)の作成をユーザーが容易に行えるようにする。
プログラムソースコード生成処理部26は、部品群の配置および結線の状態と入出力関係情報に基づいてプログラムのソースコードを生成する機能を有し、当該機能に基づいてプログラムのソースコードを生成する。
計算評価部27は、プログラムについて計算し評価する機能を有し、当該機能に基づいて、プログラムソースコード生成処理部26が生成したソースコードに係るプログラムを評価する。
尚、プラントモデル作成システム10の入力手段12、表示手段13、ソフトウエア部品再構築処理手段14および記憶手段15は、必ずしも同一のコンピュータ内に存在することを要しない。ソフトウエア部品再構築処理手段14と入力手段12、表示手段13および記憶手段15がアクセス可能に構成されていれば良く、これらの手段が幾つかのコンピュータに分散して配置されていても構わない。
次に、図1に示されるプラントモデル作成システム10を適用して、既存のシミュレーションソフトを再利用し、保守しやすいモデルプログラムを再構成する処理内容について説明する。
図2は、既存のプログラムのソースの一例を示した説明図である。ここで、符号29はサブプログラムである。
図2に示されるように、一般的な計算プログラムのソースコードは、例えばFORTRAN言語で言うコモン変数(COMMON宣言されたグローバル変数)などグローバルな変数がいたるところに使われている。これは、どこからでもこの宣言を共通にもてば値を参照・定義できるが、対象とするプログラムがどの変数を用いているのか、あるいは再びこのサブプログラムを使ったりグローバル変数を変更しようとしたりする場合に、全てのロジックをチェックする必要が出てきてしまう。このことがソフトウエアの部品を再利用する際の妨げになっている。
図2に示される例は、プラントモデルのソースが、境界条件、タンクおよびポンプのソースから構成されていることを示している。そして、このタンクのソースは質量収支および熱収支のサブプログラムから構成されている。各サブプログラム間の変数のやり取りはいわゆるコモン領域を取ってグローバル変数で渡しているものである。
このとき、機器を追加したりした場合には、このグローバル変数を追加し、全てのソースを修正する必要がある。また、使用される変数が陽に定義されているわけでなく、そのソフトウエアとしての外部との関係や入出力が不明確なものとなっている。例えば、ポンプサブプログラムでは、T3,T4は使われていないにもかかわらず宣言部分におく必要がある。
尚、図2に示されるソースはメインのサブプログラム以下はサブプログラムのみを呼ぶ構成となっているが、シミュレーションにおけるプログラムは一般的にこのような形にできるので、以下この形式を例について説明する。
図3は、プラントモデル作成システム10が実行するソースコードソフトウエア部品の再構築処理の手順を示す説明図である。ここで、図3に示される符号31〜37は電子的な情報であり、処理の実行に先立って、または事後的に図1に示される記憶手段15に格納される。また、必要に応じてデータベース化されている場合もある。
図3に示されるように、ユーザーからの処理実行要求があると、ソースコードソフトウエア部品再構築処理手順(ステップS1〜ステップS4)を開始する。
まず、ステップS1では、ソフトウエア部品再構築処理手段14が、既存のソフトウエアのソースコード31から入出力および接続関係情報を抽出して引数化する処理を実行する。具体的には、入出力抽出処理部21がソースコード31の中の変数が入力変数、出力変数または入出力変数の何れであるかを判定し、当該判定結果を使って接続関係情報抽出処理部22が接続関係情報32を抽出する。また、引数化処理部23はソースコード31から当該ソースコードに含まれるサブプログラム29間におけるグローバル変数での参照をローカル変数(いわゆる引数)での参照に置き換えたサブプログラム29を生成する引数化処理ステップを行う。
続いてステップS2では、ソフトウエア部品再構築処理手段14(具体的には、部品化処理部24)が、ステップS1で抽出された接続関係情報32と、引数化されたサブプログラム群33と、予め作成しておいたアイコンとを用いて部品名とアイコン、その他必要な情報を対応付ける部品化処理、すなわち、ソフトウエア部品を作成する。この結果、色々な部品についての部品データ34が生成される。尚、ソースコードソフトウエア部品再構築処理手順を何度か実施している場合には、ステップS2の処理ステップは省略される場合もある。
続いてステップS3では、ユーザーが処理実行の入力操作することによって、入力手段12からソフトウエア部品再構築処理手段14に与えられた指示に基づいて、ソフトウエア部品再構築処理手段14、具体的には、部品群配置結線処理部25が、ステップS1で作成された接続関係情報32とサブプログラム29の集合であるサブプログラム群33とステップS2で作成された部品データ34を参照して、必要なソフトウエア部品を配置し結線する。そして、ソフトウエア部品再構築処理手段14のプログラムソースコード生成部26が当該結線後の状態(プラントモデル)のプログラムのソースコードを生成する。この結果、プラントモデル35が生成される。
続いて、ステップS4では、ソフトウエア部品再構築処理手段14(具体的には、計算評価部27)が、プラントモデル35に係るプラントの運転手順を示す情報として予め作成しておいた運転手順情報36を読み出し、シミュレーション手順を設定する。そして、計算評価部27は、シミュレーションコードを生成し、生成したシミュレーションコードを評価する。評価結果は、計算評価結果情報37として、例えば、表示手段12に表示されたり、記憶手段15に格納されたりする。
図3に示されるステップS1〜ステップS4の各処理ステップのより詳細な処理内容について図4〜図16を引用して説明する。
図4は、引数化処理部23が実行する引数化処理ステップの処理フローを示した説明図である。
引数化処理部23は、まず、ソーステキストを読み込み(ステップS11)、ブランク、コメントなどを削除、継続行をつなげ、ソーステキストとして有効な部分を抽出する(ステップS12)。そして、使用したプログラミング言語の言語規則に沿って変数を切り出す(ステップS13)。これは、演算記号、括弧などからソース上の変数を切り出し、予約語などを排除することで可能となる。尚、演算記号、括弧などからソース上の変数を切り出し、予約語などを排除する機能は、一般にFORTRAN,C言語などのコンパイラーにも備えられているので、これを利用して実行することもできる。続いて、引数化処理部23は、グローバル変数として使われていたものについては、サブルーチンの引数へ上げ、引数を追加する(ステップS14)。以上のステップS11〜ステップS14が引数化処理部23の行う引数化処理ステップである。
図5は、入出力抽出処理部21が実行する入出力抽出処理ステップの処理フローを示した説明図である。
入出力抽出処理部21は、まず、ソースコード31を読み出してソースの入力を行い(ステップS15)、変数の切り出しを行う(ステップS16)。そして、切り出した変数がはじめに現れない場合、関数・サブプログラムの出力変数である場合または等式の右辺に来ない場合(ステップS17でNOの場合)には、当該変数は出力変数であると判定する(ステップS18)。
一方、入出力抽出処理部21は、切り出した変数がはじめに現れる場合、関数・サブプログラムの入力変数である場合または等式の右辺に来る場合(ステップS17でYESの場合)には、入力変数または出力変数と判断し(ステップS19)、2回目以降、常に関数・サブプログラムの入力変数かまたは等式の右辺に来る場合(ステップS20でYESの場合)には、入力変数であると判断する(ステップS21)。また、そうでない場合(ステップS20でNOの場合)には、入出力抽出処理部21は、入力と出力がある変数であると判断する(ステップS22)。すなわち、入出力抽出処理ステップでは、上記三種類に変数は分けられる。
ここで、図2に示されるプログラムに対して入出力抽出処理ステップおよび接続関係情報抽出処理を実行した場合の例を説明する。
図6は、図2に示されるプログラムに対して入出力抽出処理ステップおよび接続関係情報抽出処理を実行して作成される引数定義表の一例を示した説明図である。尚、図6に示される五つの表は、図2に示される五つのサブプログラム29に対応する。
入出力抽出処理部21は、図6に示されるように、例えば、質量M1については流量の差分(W1−W2)*DTが積算されるため、最初に右辺に来ているということで、入力変数と判断するが、更新されるため出力とも判断する。
ここで、図6に示される表のサブプログラム名および変数の型は、同様にソースリストを構文解析して抽出したものである。例えば、サブプログラム名はSUBROUTINE文の次に来る単語を抽出すればよい。これらの情報は、入出力関係情報に含まれる情報であり、接続関係情報抽出処理部22によって抽出することができる。尚、図6に示される引数定義表の例コメントについては、通常ソースリストからは抽出できないため、必要に応じてユーザーが入力すればよい。すなわち、コメントは、プログラムの理解に役立つ任意の情報であって、プログラム構造に影響を与える情報ではない。
一方、接続関係情報抽出処理部22は、プログラムのソースよりそのプログラムが呼んでいるサブプログラムを、例えばCALL文の次に来る単語ということで抽出することができる。
図7は、接続関係情報抽出処理部22が抽出する接続関係情報としてのプログラム構成ツリーの情報の一例を示した説明図である。
接続関係情報抽出処理部22は、図7に示されるように、実行順序とコールしているサブプログラムを示しているプログラム構成ツリーを生成することができる。このとき、同一名のサブプログラム名でも計算しようとしている対象が異なることがある点に鑑み、出現順にその対象の番号(オブジェクト番号)を付加するようにする。例えば、図7に示される例では、Object_0からObject_4まで番号をつけている。
次に、図8を引用してサブプログラム間における入出力関係の抽出の処理内容について説明する。
図8は、変数のサブプログラム間の入出力関係についてまとめたテーブル(入出力関係表)の一例を示した説明図である。
接続関係情報抽出処理部22は、接続関係情報32に含まれる入出力関係情報(図6)とプログラム構成ツリー情報(図7)とを参照して変数のサブプログラム間における入出力関係(サブプログラム間でやりとりされる変数の入出力関係)を規定したテーブル、すなわち、入出力関係表(図8)を作成することができる。
例えば、図6に示される各サブプログラム29と対応するテーブル(入出力関係情報)をみると、サブプログラムBOUND_Iにおいて、変数W1,T1は出力と定義されている。一方、変数W1,T1は、タンクサブプログラムTankにおいて、入力と定義されている。この結果、図8に示されるように、変数W1,T1は、サブプログラムBOUND_Iにおいて定義され出力される変数であり、タンクサブプログラムTankで入力される変数として関係が規定される。すなわち、出力と入力との対応付けがなされる。他の変数W2等についても同様に出力と入力との対応付けがなされる。
図9は、引数化処理部23が実行する引数化処理ステップの結果、図2に示されるソースから得られる引数化処理ステップ後のソースを示した説明図である。引数化処理ステップにおいては、引数化処理部23が抽出された図6に示されるテーブル(引数定義表)のコモンラベルの変数をいわゆる引数に追加していくことになる。その処理をした結果は例えば図9に示されるようなものとなる。
次に、図3に示されるステップS2の部品化処理ステップのより詳細な処理内容について説明する。
部品化処理ステップでは、ステップS1で引数化されたサブプログラム29(図9)とこれに対応する引数定義情報(図6)およびアイコン40(図10)が必要となる。アイコン40は描画ソフトなどでユーザーが予め定義しておく。
図10は、部品データ34作成の際に必要となるアイコン40の一例を示した説明図である。
図10に示されるように、アイコン40は、サブプログラム29の名称と当該サブプログラム29に登場する部品名とを対応付けて格納しておく。例えば、図10に示されるアイコン40aは、部品番号「No.1」と、部品名「入口境界」と、サブプログラム名「BOUND_I」と関連付けられて部品化処理部24が読み出し可能に格納される。他のアイコン40b,40c,40dについても同様である。また、部品名はユーザーが定義して決定する。尚、図10に示されるアイコン40はモデルを表す図形と結線ができる端点とを有する構成を採用したものであるが、端点は一つの変数または変数の組をまとめたベクトルのようなものでも良い。
部品データ34の作成は、部品化処理部24がソースプログラムから解析して抽出されたプログラム構成ツリーと入出力関係表を含む接続関係情報32と、図6に示されるサブプログラム29のソースと引数定義表の情報とを参照して、部品名(又は機器名)およびアイコン40の情報を対応付けすることでなされる。プログラム構成ツリー、入出力関係表、サブプログラム29のソース、引数定義表の情報およびアイコン40の情報が対応付けられることで、ソースリストに対応させることができる。
次に、図9に示される引数化されたサブプログラム29を用いて結線図を構成することについて説明する。
図11は部品化処理部24が作成した部品データ34の一例およびプログラム再構成の概略例を示す説明図であり、図12は部品データ34に対応する部品の引数定義表であり、図12(a)は部品名「入口境界」の引数定義表、(b)は部品名「出口境界」の引数定義表、(c)は部品名「ポンプ」の引数定義表、(d)は部品名「タンク」の引数定義表を説明する説明図、図13は、部品群配置結線処理部が実行する部品群配置結線処理ステップの処理手順を示した説明図である。
尚、図11において示される部品名欄45に表示される部品名とアイコン欄46に表示されるアイコン40a,40b,40c,40dはユーザーが定義したものである。また、サブプログラム欄47には、図9に示されるサブプログラム29のうち対応するサブプログラム29の内容(例えば、部品名がポンプであればポンプのサブプログラム)が記載され、引数定義欄48には、図12(a)〜図12(d)の内容が記載される。
図11に示されるように、プラントモデル作成システム10は、ソースコード31からプログラム構成ツリーと入出力関係表と部品データ(部品データ群)34とを生成する。これは、上述した図3に示されるステップS1およびステップS2を経てなされる。その後、ユーザーは部品データ群34からモデル再構築に使用する部品を選択することで、図11に示されるような結線図のプラントモデル35が再構築される(図3に示されるステップS3)。
図13に示される部品群配置結線処理ステップは、部品データ34を配置し結線してプラントモデル35を作成する処理ステップであり、ユーザーによるプログラム構成ツリーと入出力関係表が確定した旨の情報を受け付けると、その処理が開始される。まず、ステップS31では、部品群配置結線処理部25が図11に示されるプログラム構成ツリーと入出力関係表と部品データ34の情報(図12に示される引数定義表を含む)に基づいてプログラム構成ツリーに基づき部品を配置する。プログラム構成ツリーには、部品名と対応する機器名が入っているため配置には十分な情報があり、これをすることができる。
続いて、ステップS32では、入出力関係表(図8)に基づき結線する。入出力関係表には変数の入出力の対応関係が記述されており、引数定義表には変数とピンの位置が入っているため両者を参照することで、入出力関係表の出力側から入力側へ結線することで結線図を描くことができる。
図13において、処理フロー(ステップS31、ステップS32)の右側に示された図は、結線した結果を示す説明図である。出力端より入力端へ矢印を向けているため、流量を計算出力しているPump部品からの流量(接続端の1に相当)はPumpからTank、PumpからBOUND_Oの向きとなっている。
次に、プラントモデル作成システム10におけるプログラムの更新・生成について説明する。
図14はプログラムソースコード生成処理部26がプログラムの更新・生成の際に作成するメモリーテーブル50の一例を示す説明図であり、図15はプログラムソースコード生成処理部26が作成したプログラムのソース51の一例を示した説明図である。
プラントモデル作成システム10において、プログラムの更新・生成は、プログラムソースコード生成処理部26が、プログラムソースコード生成処理ステップを実行することによってなされる。プログラムの更新・生成は、結線図を描く場合と同様にして行うことができる。具体的には以下の通りである。
プログラムソースコード生成処理部26は、まず、プログラム構成ツリーの順にサブプログラムを呼ぶよう並べるステップを実行する。そして、その引数は入出力関係表を参照して、ひとつの部品の出力から入力への結線関係が在るものは同一変数を取っていくようにし、残った部品固有の変数については追加していくステップを実行する。このようにして変数を取っていくとプログラムの変数並びは図14に示されるメモリーテーブル50のようになり、サブプログラムの変数を呼ぶ関係も埋めることができる。
プログラムソースコード生成処理部26は、上記二つのステップ(プログラムソースコード生成処理ステップのサブステップ)を実行することによって、メモリーテーブル50が作成される。このメモリーテーブル50は、例えば、記憶手段15等の読み出し可能な記憶領域に格納される。この場合のプログラムのソースコード51は図15に示される。
次に、生成されたプログラムのソースコード51が適切であるかの評価(図3に示されるステップS4)について説明する。
図16は、計算評価部27が実行するシミュレーションコード評価ステップ(図3に示されるステップS4)の詳細な処理手順を説明する説明図である。
実際のシミュレーションにおいては、生成されたプログラムに対して初期値およびパラメータを設定し、また、動作させる変数を設定して計算し、出力される変数をプロットなどして評価するのが一般的である。
シミュレーションコード評価ステップは、図16に示されるように、計算評価部27が初期値およびパラメータを設定し(ステップS41)、時刻timeを初期化し(ステップS42)、時刻time>終了時刻tstopの条件を満たす場合(ステップS43でYESの場合)には、シミュレーションコード評価ステップを終了する。
一方、時刻time>終了時刻tstopの条件を満たさない場合(ステップS43でNOの場合)、変更すべきパラメータは、時刻のある時点において変更するということになるため、時刻を更新するループの内側で変更することになる。すなわち、ステップS43でYESとなるまでステップS43からステップS47の処理ステップを繰り返す。具体的には、運転条件を変更し(ステップS44)、評価対象となるプログラムを呼び出して状態量を計算し(ステップS45)、時々刻々の計算結果を出力し(ステップS46)、時刻を更新(ステップS47)した後、ステップS43に進み、時刻time>終了時刻tstopの条件を満たすかを確認する。
次に、図3に示されるソースコードソフトウエア部品再構築処理手順を経て再構築されたプログラムモデルを部分的に削除したり追加したりして変更する場合の一例について説明する。
図17はプログラム構成ツリーの情報の一例であり、図7に示されるプログラム構成ツリーを部品追加等によって変更した後のプログラム構成ツリーを示した説明図であり、図18はプログラム構成ツリーの変更に伴い変更された後の入出力関係表を示した説明図である。
例えば、図7に示されるような構成ツリーを持つプログラムモデルを、図17に示されるように部分的に削除したり追加したりして変更したい場合には、図7に示されるプログラム構成ツリーおよびこれに対応する入出力関係表(図8)にサブプログラム名、機器名、変数名、入出力関係などを追加していけば良い。
例えば、図17に示されるプログラム構成ツリーでは、図7に示されるプログラム構成ツリーに対して、Object_3(ポンプ)を削除して新たにポンプ(Object_5)、タンク(Object_7)およびポンプ(Object_6)を追加するものとする。尚、上記で追加したポンプ(Object_5)、タンク(Object_7)およびポンプ(Object_6)は既に部品データ34に格納されているポンプ部品およびタンク部品とする。
図18に示される入出力関係表は、図17に示されるプログラム構成ツリーと対応するので、図17の部品の削除および追加に対応して、削除したObject_3(ポンプ)の入出力関係データ(入出力関係表)を削除し、追加したポンプ(Object_5)、タンク(Object_7)およびポンプ(Object_6)の入出力関係データ(入出力関係表)を追加する。入出力関係表は部品データ34の作成時には作成されているため、格納されているデータを参照してデータの削除や追加をすることができる。この結果、プログラム構成ツリーと当該プログラム構成ツリーに対応する入出力関係表が確定するので、その後の部品の配置および結線については、上述の説明の通りである。
図19は、変更後のプログラム構成ツリーに対応した部品、すなわち、入口境界(Object_1)、出口境界(Object_2)、ポンプ(Object_5とObject_6)およびタンク(Object_4とObject_7)を配置し結線して作成された結線図を示す説明図である。
部品群配置結線処理部25が、図17に示されるプログラム構成ツリーと図18に示される入出力関係表を参照して図13に示される部品群配置結線処理ステップ(ステップS31およびステップS32)を実行すると、図19に示される結線図を作成する。プログラム構成ツリー、入出力関係表および部品データ34への部品の追加は、例えば、ワークシートなどで追加していけば良い。
次に、部品を追加した場合(図17および図18に示される例)におけるプログラムの更新について説明する。
図20は、プログラムの更新・生成の際に作成されるメモリーテーブルの一例であり、プログラムソースコード生成処理部26がプログラムソースコードを更新した後のメモリーテーブル50を示す説明図である。
図17および図18に示される例のように、ポンプ等の部品を追加した場合、プログラム(ここではプラントのプログラム)のソースコード51を更新する必要がある。ソースコード51の更新は、ソースコード51を生成する場合と同様にプログラムソースコード生成処理部26が行う。
まず、変更後のプログラム構成ツリー(図17)の順にサブプログラム29を呼ぶように並べていく。その引数は入出力関係表(図18)を参照して、一つの部品の出力から入力への結線関係が在るものは同一変数を取っていくようにする。そして、残った部品固有の変数については追加する。このようにして変数を取っていくと、プログラムの変数並びは図20に示されるようになり、サブプログラム29の変数を呼ぶ関係も埋めることができる。
次に、図20に示されるメモリーテーブル50に更新する際の処理内容(メモリーテーブル更新処理ステップ)について説明する。
図21は、プログラムソースコード生成処理部26が実行するプログラムソースコード生成処理ステップのサブステップであるメモリーテーブル更新処理ステップの処理フローを示した説明図である。
部品の追加や削除等の変更があった場合、変更の無い部分のメモリー配置は変わらない方が、これまでのデータセットが使えるので有効である。メモリーテーブル更新処理ステップは、この既存の部分を変更しないように配慮した処理内容になっている。具体的には、まず、プログラムソースコード生成処理部26がメモリー再利用指令の入力を認識すると(ステップS51)、図20に示されるメモリーテーブル50のメモリー利用状態フラグを参照し、ここが0,1,2の何れであるかを判断する(ステップS52)。ここで、0は記憶領域が未使用である、1は記憶領域が使用中である、2は部品削除に伴い情報が削除されて現在は記憶領域が未使用である、ことを意味する。
メモリーテーブル50のメモリー利用状態フラグに0が存在しない(1又は2のみが存在する)場合(ステップS52でNOの場合)には、プログラムソースコード生成処理部26がフラグの2の記憶領域を探し、当該記憶領域のフラグを2から0に書き換えて(ステップS53)、使用できる記憶領域を確保する。一方、メモリーテーブル50のメモリー利用状態フラグに0が存在する場合(ステップS52でYESの場合)には、何も行わない。
このような処理ステップを実行することによって、削除した領域を再度使うこともでき、部品の追加や削除等の変更があった場合でも変更の無い部分のメモリー配置(メモリー利用状態フラグを1の記憶領域)を変えることなく、これまでのデータセットが使えて有効である。
尚、図1〜図21を引用して説明した上述の例では、プラントプログラムに対してサブプログラムが一層である場合を示していたが、これは一層に限らず階層化されていても良い。そこで、プラントプログラムに対してサブプログラムが階層化されている場合について図22から図25を引用して説明する。
図22は、プラントプログラムに対してタンクプログラム(サブプログラム)が階層化されている場合の一例であり、タンクプログラムのソースを示した説明図である。また、図23は、図22に示されるタンクプログラムから得られる情報を説明する図であり、図23(a)は引数定義表の例を示した説明図(図6に対応)、図23(b)はプログラム構成ツリー情報を示した説明図(図7に対応)、および、図23(c)は入出力関係表の一例を示した説明図(図8に対応)である。さらに、図24は、図22に示されるタンクプログラムに対して引数化処理ステップ後のソースを示した説明図である。
例えば、図22に示されるように、タンクプログラムTankがマスバランスを表すサブプログラムMASSとHEATから構成されている場合、この3つのプログラムに対しても、上述したように、接続関係情報32に含まれる入出力関係情報(図23(a))、プログラム構成ツリー(図23(b))、および、入出力関係表(図23(c))を作成することができる。また、プログラム構成ツリーおよび入出力関係表の情報があれば、引数化処理部23が引数化処理ステップを実行して、図24に示されるようなソースを得ることができる。
図25は、図22に示されるタンクプログラム(サブプログラム)を有するプラントプログラムに対してプラントモデル作成システム10の部品化処理部24が作成した部品データ34の一例およびプログラム再構成の概略例を示す説明図である。
図22に示される引数化処理前のソースから図24に示される引数化処理後のソースを得た後は、それぞれ、部品名、機器名、アイコンを対応させることで図25に示されるように結線図を生成することができる。また、同様にこれら部品のソースから新たにtank部品のソースの再構成および部品を削除等して変更した場合のタンク部品のソースを生成することができる。
以上、プラントモデル作成システム10、プラントモデル作成方法としてのソースコードソフトウエア部品再構築処理手順、およびコンピュータをプラントモデル作成システムとして機能させる若しくはコンピュータにソースコードソフトウエア部品再構築処理手順を実行させるソフトウエア部品再構築処理PG11によれば、プラントモデルを再構築する際に、従来のソフトウエアのソースコードよりもわかりやすく保守しやすいソフトウエアとして正確かつ効率的に行うことができる。
すなわち、既存のプログラム(ソースコード31)に対して、グローバル変数でのサブプログラム間の参照をローカル変数での参照に置き換えたサブプログラム29、サブプログラム29をモデルオブジェクトとして認識し呼び出し関係を定義したプログラム構成ツリーおよび変数の入出力関係表を生成し、アイコン40と対応させた部品を集めた部品データ(データベース)34から必要な部品データ34を読み出して配置し、結線することで、モデルプログラムの結線図を生成して当該結線図に対応するモデルプログラムを再生成することができる。
また、プログラム構成ツリーと入出力関係表を含む接続関係情報32をユーザーが入力手段12を介して容易に編集することができ、編集後は編集後のサブプログラム29、接続関係情報32および必要な部品データ34を読み出して配置し、結線することができるので、モデルプログラムの改修も容易に行うことができる。
尚、本発明は上記の各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化しても良い。また、プラントモデルの作成を例にしているが、これに限定されず、他のシミュレーションモデルのプログラムについて適用できる。
10 プラントモデル作成システム
11 ソフトウエア部品再構築処理PG
12 入力手段
13 表示手段
14 ソフトウエア部品再構築処理手段
15 記憶手段
21 入出力抽出処理部
22 接続関係情報抽出処理部
23 引数化処理部
24 部品化処理部
25 部品群配置結線処理部
26 プログラムソースコード生成処理部
27 計算評価部
29 サブプログラム
31 ソースコード
32 接続関係情報
33 サブプログラム群
34 部品データ
35 プラントモデル
36 運転手順情報
37 計算評価結果情報
40(40a,40b,40c,40d) アイコン
45 部品名欄
46 アイコン欄
47 サブプログラム欄
48 引数定義欄
50 メモリーテーブル
51 プログラムのソースコード

Claims (7)

  1. 既存のソフトウエアからソフトウエア部品を再構築するソフトウエア部品再構築処理手段を具備し、前記ソフトウエア部品再構築処理手段は、
    前記既存のソフトウエアのソースコードから、入力変数、出力変数、および、入力と出力の両方が存在する変数のうち、何れの変数であるかを判定する入出力抽出処理部と、
    前記既存のソフトウエアに対して、グローバル変数でのサブプログラム間の参照をローカル変数での参照に置き換えたサブプログラムを生成する引数化処理部と、
    前記入出力抽出処理部の変数判定結果および引数化処理部の生成したサブプログラムを用いて、前記サブプログラムをモデルオブジェクトとして認識し呼び出し関係を定義したプログラム構成ツリー情報および前記変数の入出力関係情報を生成する接続関係情報抽出処理部と、
    前記プログラム構成ツリー情報および入出力関係情報に基づいて、予め生成しておいた部品データから所定の部品を呼び出して部品を配置し、配置した部品同士を結線してモデルプログラムを作成する部品群配置結線処理部と、
    前記モデルプログラムを構成する部品群の配置および結線の状態と入出力関係情報に基づいて前記モデルプログラムのソースコードを生成するプログラムソースコード生成処理部とを備え、前記モデルプログラムを作成する際に、追加・削除されない変数のアドレスは保持されることを特徴とするプラントモデル作成システム。
  2. 予めユーザーが定義したアイコンと、前記引数化処理部が引数化したサブプログラムに登場する部品名とを対応付けてソフトウエア部品を生成する部品化処理部をさらに備えることを特徴とする請求項1に記載のプラントモデル作成システム。
  3. 前記部品化処理部は、前記ソフトウエア部品を削除可能に構成されたことを特徴とする請求項2に記載のプラントモデル作成システム。
  4. 前記アイコンと対応させた部品は階層構造をもつ構成されたことを特徴とする請求項2又は3記載のプラントモデル作成システム。
  5. 前記接続関係情報抽出処理部は、前記プログラム構成ツリー情報および入出力関係情報を編集可能にことを特徴とする請求項1乃至4の何れか1項に記載のプラントモデル作成システム。
  6. 前記プログラムソースコード生成処理部が生成したプログラムを計算し評価する計算評価部をさらに備えることことを特徴とする請求項1乃至5の何れか1項に記載のプラントモデル作成システム。
  7. 既存のソフトウエアからソフトウエア部品を再構築するソフトウエア部品再構築処理手段を具備するプラントモデル作成システムにおけるプラントモデル作成方法であり、前記ソフトウエア部品再構築処理手段が、
    既存のソフトウエアのソースコードから当該ソースコードの中の変数が入力変数、出力変数または入出力変数の何れであるかを判定するステップと、
    前記判定ステップでの判定結果を使って前記ソースコードを持つプログラムのプログラム構成ツリーと、当該プログラムのサブプログラム間でやりとりされる変数の入出力関係を規定した入出力関係情報とを抽出するステップと、
    前記サブプログラム間におけるグローバル変数での参照をローカル変数での参照に置き換えたサブプログラムを生成するステップと、
    前記プログラム構成ツリー、入出力関係情報、サブプログラムおよび予め生成しておいたソフトウエア部品を格納したデータベースを参照して前記ソフトウエア部品を配置し結線するステップと、
    前記ソフトウエア部品を結線したモデルプログラムのソースコードを生成するステップとを備え、前記モデルプログラムを作成する際に、追加・削除されない変数のアドレスは保持される処理手順を実行することを特徴とするプラントモデル作成方法。
JP2009177585A 2009-07-30 2009-07-30 プラントモデル作成システムおよびプラントモデル作成方法 Active JP5254149B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009177585A JP5254149B2 (ja) 2009-07-30 2009-07-30 プラントモデル作成システムおよびプラントモデル作成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009177585A JP5254149B2 (ja) 2009-07-30 2009-07-30 プラントモデル作成システムおよびプラントモデル作成方法

Publications (2)

Publication Number Publication Date
JP2011034179A JP2011034179A (ja) 2011-02-17
JP5254149B2 true JP5254149B2 (ja) 2013-08-07

Family

ID=43763215

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009177585A Active JP5254149B2 (ja) 2009-07-30 2009-07-30 プラントモデル作成システムおよびプラントモデル作成方法

Country Status (1)

Country Link
JP (1) JP5254149B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6101190B2 (ja) * 2013-10-29 2017-03-22 株式会社東芝 情報処理装置、情報処理方法及びプログラム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04297927A (ja) * 1991-03-26 1992-10-21 Yokogawa Electric Corp ソフトウェア部品化および再利用のためのシステム
JPH07168711A (ja) * 1993-12-16 1995-07-04 Fuji Facom Corp プログラム管理方法
JPH1063492A (ja) * 1996-08-23 1998-03-06 Kawasaki Steel Corp ソフトウェアの仕様書生成装置
JPH10254687A (ja) * 1997-03-11 1998-09-25 Canon Inc プログラム解析装置およびその解析方法
JPH11259282A (ja) * 1998-03-12 1999-09-24 Toshiba Corp プログラム合成装置及びプログラム合成方法
JP2001043078A (ja) * 1999-07-28 2001-02-16 Mitsubishi Electric Corp プログラム改善支援装置
JP2002342079A (ja) * 2001-05-22 2002-11-29 Yamatake Sangyo Systems Co Ltd 制御プログラム作成装置
JP2003223321A (ja) * 2002-01-31 2003-08-08 Toshiba Corp ソフトウェア部品作成方法、ソフトウェア部品作成プログラム及びソフトウェア部品作成装置

Also Published As

Publication number Publication date
JP2011034179A (ja) 2011-02-17

Similar Documents

Publication Publication Date Title
Naujokat et al. CINCO: a simplicity-driven approach to full generation of domain-specific graphical modeling tools
US8150673B1 (en) Partitioning a model in modeling environments
Ziadi et al. Software product line engineering with the UML: Deriving products
US8869103B2 (en) Using intermediate representations to verify computer-executable code generated from a model
Hästbacka et al. Model-driven development of industrial process control applications
JP4482563B2 (ja) ダイアグラミング環境言語のための単純化データ信号サポート
US7503027B1 (en) Hardware description language code generation from a state diagram
CN106648662B (zh) 基于工程造价计算描述语言bcl的报表生成装置及生成方法
US8291372B2 (en) Creating graphical models representing control flow of a program manipulating data resources
US8046202B1 (en) Generation of intermediate representations based on user specified elements in a graphical model that enable simulation, propagation and code generation
CN110262794A (zh) 一种基于规范与描述语言的aadl功能行为拓展方法及工具
JP2005242569A (ja) データ処理装置設計方法、データ処理装置設計装置及びプログラム
JP2009181446A (ja) プログラム生成装置およびブロック線図生成装置
Sangiovanni-Vincentelli et al. Metamodeling: An emerging representation paradigm for system-level design
Ermel et al. Animated simulation of integrated UML behavioral models based on graph transformation
Edwards et al. Automated analysis and code generation for domain-specific models
CN113934429A (zh) 一种设计稿的转换方法、装置、计算机设备和存储介质
US11126408B2 (en) Incremental code generation method
KR100994070B1 (ko) 예약된 컴포넌트 컨테이너 기반 소프트웨어 개발 방법 및장치
JP5254149B2 (ja) プラントモデル作成システムおよびプラントモデル作成方法
Śmiałek et al. From use cases and their relationships to code
CN116909553A (zh) 一种页面在线开发及本地编译运行系统
Wen et al. “Integrare”, a collaborative environment for behavior-oriented design
JP4564255B2 (ja) シミュレーション装置
CN112784417B (zh) 一种基于SysML的航电分布式联合仿真方法及系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110811

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20111218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121204

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121205

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130201

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130226

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130307

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130326

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130417

R151 Written notification of patent or utility model registration

Ref document number: 5254149

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160426

Year of fee payment: 3