(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024104381
(43)【公開日】2024-08-05
(54)【発明の名称】モデル情報確認システム及びモデル情報確認方法
(51)【国際特許分類】
G06F 8/35 20180101AFI20240729BHJP
【FI】
G06F8/35
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2023008543
(22)【出願日】2023-01-24
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.MATLAB
(71)【出願人】
【識別番号】509186579
【氏名又は名称】日立Astemo株式会社
(74)【代理人】
【識別番号】110001678
【氏名又は名称】藤央弁理士法人
(72)【発明者】
【氏名】小笠原 麻希
(72)【発明者】
【氏名】高田 浩行
(72)【発明者】
【氏名】塚原 健太
(72)【発明者】
【氏名】伊藤 慎悟
(72)【発明者】
【氏名】北田 英俊
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376BC08
5B376BC32
5B376BC38
(57)【要約】
【課題】関数名や変数名及び定数名の重複を制御モデル上で確認する。
【解決手段】モデル情報確認システムであって、演算処理を実行する演算部と、前記演算部がアクセス可能な記憶部とを有する計算機によって構成され、前記演算部が、制御モデルから取得した設定値がデータベースに登録された設定値と一致するかを比較する設定値比較部と、前記演算部が、比較した結果を出力する比較結果出力部と、前記演算部が、データベースに未登録の設定値を前記データベースに登録する設定値登録部とを有する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
モデル情報確認システムであって、
演算処理を実行する演算部と、前記演算部がアクセス可能な記憶部とを有する計算機によって構成され、
前記演算部が、制御モデルから取得した設定値がデータベースに登録された設定値と一致するかを比較する設定値比較部と、
前記演算部が、比較した結果を出力する比較結果出力部と、
前記演算部が、前記データベースに未登録の設定値を前記データベースに登録する設定値登録部とを有することを特徴とするモデル情報確認システム。
【請求項2】
請求項1に記載のモデル情報確認システムであって、
前記演算部が、前記設定値を取得する設定値取得部を有し、
前記設定値取得部は、
入力された制御モデルを解析し、
前記制御モデルに、データを送受信するデータ送受信ブロック、データを演算するデータ演算ブロック、及び複数の前記データ演算ブロックで構成される制御機能ブロックが使用されているかを判定し、
前記データ送受信ブロックに設定された変数名、前記データ演算ブロックに設定された定数名、及び前記制御機能ブロックに設定された関数名を前記設定値として取得することを特徴とするモデル情報確認システム。
【請求項3】
請求項2に記載のモデル情報確認システムであって、
前記設定値比較部は、
前記データ送受信ブロックに設定された変数名が前記データベースに登録されている変数名と一致する場合、当該変数名及び当該変数名に関連付けられたデータ型、サイズ、係数情報及び初期値を出力し、
前記データ演算ブロックに設定された定数名が前記データベースに登録されている定数名と一致する場合、当該定数名及び当該定数名に関連付けられたデータ型、サイズ及び係数情報を出力し、
前記制御機能ブロックに設定された関数名が前記データベースに登録されている関数名と一致する場合、当該関数名を出力することを特徴とするモデル情報確認システム。
【請求項4】
請求項2に記載のモデル情報確認システムであって、
前記演算部が、前記制御モデルを修正する修正実行部を有し、
前記設定値比較部は、前記制御モデルから取得した設定値と前記データベースに登録された設定値が一致するかを判定し、
前記修正実行部は、前記制御モデルから取得した設定値と前記データベースに登録された設定値が一致している場合、当該設定値を修正した制御モデルを出力することを特徴とするモデル情報確認システム。
【請求項5】
請求項4に記載のモデル情報確認システムであって、
前記修正実行部は、前記データ送受信ブロックに設定された変数名が前記データベースに登録された変数名と一致する、前記データ演算ブロックに設定された定数名が前記データベースに登録された変数名と一致する、又は前記制御機能ブロックに設定された関数名が前記データベースに登録された関数名と一致する場合、当該変数名、当該定数名及び当該関数名をユーザが指定した設定値に修正した制御モデルを出力することを特徴とするモデル情報確認システム。
【請求項6】
モデル情報確認システムが実行するモデル情報確認方法であって、
前記モデル情報確認システムは、演算処理を実行する演算部と、前記演算部がアクセス可能な記憶部とを有する計算機によって構成され、
前記モデル情報確認方法は、
前記演算部が、制御モデルから取得した設定値がデータベースに登録された設定値と一致するかを比較する設定値比較手順と、
前記演算部が、比較した結果を出力する比較結果出力手順と、
前記演算部が、前記データベースに未登録の設定値を前記データベースに登録する設定値登録手順とを有することを特徴とするモデル情報確認方法。
【発明の詳細な説明】
【技術分野】
【0001】
技術分野は、モデル情報確認システムに関する。
【背景技術】
【0002】
モデルベース開発プロセスでは、制御ロジックや制御対象をブロック線図で視覚的に表現した制御モデルから自動ソースコード生成ツールなどを用いてソースコードを生成する。生成されるソースコードのFunction(関数)は、制御モデルの中でブロック線図を一つの制御機能毎にまとめたブロックに設定された名前で表される。
【0003】
また、他制御機能とのデータ送受信に用いられるブロック(Import、Outportブロック等)に設定された名称はソースコードでは、値の読み書きが可能な変数として定義され、データを演算するために用いられるブロック(Gain、Look-up Tableブロック等)に設定された名称はデータに固有の名前を付与した定数として定義され、定数に設定された値は変更が不可となる。
【0004】
本技術分野の背景技術として、以下の先行技術がある。特許文献1(特開2022-011264号公報)には、第1のプロセッサを有するソフトウェア開発支援装置は、制御モデルの実行順序を含んでソフトウェアの制御仕様を含む特徴モデルを入力し、特徴モデル内の制御モデルを解析して演算周期と実行順序を解析して実行順序情報を出力する特徴モデル解析部と、制御モデルを入力して、演算周期を含んでファイル名が制御モデルと同一のモデルソースを生成するモデルソース生成部と、制御モデルと同名のモデルソースを収集するモデルソース収集部と、複数コアを有する第2のプロセッサの情報を入力して、前記収集されたモデルソースに対して、ソフトウェアを複数のコアの処理へ最適化するために演算周期と実行順序情報に基づいてコア毎の処理の割り当て情報を生成する並列処理生成部と、を有するソフトウェア開発支援装置が記載されている。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
前述した特許文献1に記載された技術では、制御モデルに対してデータ型やビットレートなど情報の追加を実施してソースコード生成までを自動化している。しかし、複数の制御モデルから生成したソースコードを結合した場合、同じ関数名、変数名及び定数名を含むソースコードが結合される可能性がある。
【0007】
複数の制御モデルにおいて同じ関数名、変数名及び定数名が異なるブロックで意図せずに使用されている場合、各制御モデルから生成したソースコードで関数名、変数名及び定数名の重複が発生する。関数名の重複によって意図しない処理が実行される可能性があり、変数名や定数名の重複によって意図しない参照や更新も発生する可能性がある。また、異なる設定値情報(例えば、配列の要素数などのデータ型、サイズ、浮動小数点で表現される物理値を固定小数点で表現する為に整数に対して付与する勾配やバイアスなどの係数情報、初期値、意味、単位など)において同じ名称の変数や定数を定義できない。
【0008】
前述のような複数の制御モデルで関数名、変数名及び定数名の意図しない使用を確認するタイミングとして、制御モデル作成時、ソースコード作成時、ソースコードの実装時がある。しかし、制御モデルから関数情報、変数情報及び定数情報を取得し、別の制御モデルでの使用有無を確認する仕組みが無く、制御モデル作成時の確認は困難である。また、ソースコードは制御モデル単位で生成するため、ソースコード作成時での確認は困難である。そのため、関数情報、変数情報及び定数情報の重複や不一致がソースコードを結合する段階で発見されることになる。
【0009】
ソースコードを結合する段階で名称や設定値情報の意図しない重複が発見されると、制御モデルを作成し直す必要があり、修正の為の手戻り工数が増加する問題がある。
【0010】
本発明は、制御モデルを修正する際の手戻り工数の削減を目的とする。
【課題を解決するための手段】
【0011】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、モデル情報確認システムであって、演算処理を実行する演算部と、前記演算部がアクセス可能な記憶部とを有する計算機によって構成され、前記演算部が、制御モデルから取得した設定値がデータベースに登録された設定値と一致するかを比較する設定値比較部と、前記演算部が、比較した結果を出力する比較結果出力部と、前記演算部が、データベースに未登録の設定値を前記データベースに登録する設定値登録部とを有することを特徴とする。
【発明の効果】
【0012】
本発明の一態様によれば、設定値の重複を制御モデル段階で確認でき、制御モデルを修正する際の手戻り工数を削減できる。前述した以外の課題、構成及び効果は、以下の実施例の説明によって明らかにされる。
【図面の簡単な説明】
【0013】
【
図1】本実施例のモデル情報確認システムの概要を示す図である。
【
図2】本実施例の制御モデルの詳細な構成を示す図である。
【
図3】本実施例の設定値取得部が実行する設定値取得処理のフローチャートである。
【
図4A】本実施例の設定値比較部が実行する関数及び変数に対する設定値比較処理のフローチャートである。
【
図4B】本実施例の設定値比較部が実行する定数に対する設定値比較処理のフローチャートである。
【
図5】本実施例の比較結果出力部が実行する比較結果出力処理のフローチャートである。
【
図6】本実施例の設定値登録部が実行する設定値登録処理のフローチャートである。
【
図7】本実施例の修正実行部が実行する修正実行処理のフローチャートである。
【
図8】本実施例のモデル設定値格納データベースの構成を示す図である。
【発明を実施するための形態】
【0014】
まず、本発明の実施例の概要を説明する。本発明の実施例で採用される一つ目の技術は制御モデルを作成するためのルールを定めることである。例えば、一つの制御を表現するブロックの配置場所及び命名ルールや、変数を設定可能なブロックの指定及び命名ルール、定数を設定可能なブロックの指定及び命名ルールを設けることにより、制御モデルから必要な設定値を抽出可能とする。
【0015】
二つ目の技術は、制御モデルの設定値を集約するデータベースを構築することである。データベースには、制御モデルの名前や制御モデル内に配置された特定のブロックに設定された情報が格納される。データベースに格納される設定値の一例として、制御モデル名やソースコード上で関数名、変数、定数となるブロックに設定された名前や情報がある。制御モデルの設定値が格納されたデータベースを構築することにより、別の制御モデルで設定した設定値と重複する設定値の有無を比較可能となる。
【0016】
三つ目の技術は、前述したルールに則って作成された制御モデルから設定値の確認及び修正が可能にする。これにより、設定値の重複を制御モデルで確認し、設定値が重複する場合は制御モデルを修正できる。
【0017】
図1は、本実施例のモデル情報確認システム101の概要を示す図である。
【0018】
本実施例のモデル情報確認システム101は、モデルベース開発に利用される計算機システムであり、モデル情報確認システム101で実行されるプログラムによって各機能が実現される。
【0019】
モデル情報確認システム101には、制御モデル113が入力される。制御モデル113は、制御ロジックや制御対象をブロック線図で視覚的に表現したモデルであり、内部のブロックには設定値114が定義されている。設定値114には、ソースコードに設定される制御機能ブロックの関数名122、設定される変数の変数名115、設定される定数の定数名116が含まれる。
【0020】
モデル設定値格納データベース117は、制御モデル113に設定された設定値114のリスト118を格納する。
【0021】
モデル情報確認システム101は、設定値取得部102と、設定値比較部103と、比較結果出力部104と、設定値登録部105と、修正実行部106を有する。
【0022】
設定値取得部102は、モデル解析部107と、結果出力部108を有する。モデル解析部107は、入力された制御モデル113を解析し、制御モデル113内に定義された設定値114を取得する。結果出力部108は、制御モデル113内に定義された設定値114を出力する。
【0023】
設定値比較部103は、データベース解析部109と結果出力部110を有する。データベース解析部109は、モデル設定値格納データベース117を検索して、設定値取得部102から出力された制御モデル113の設定値114とモデル設定値格納データベース117に格納された設定値を比較する。結果出力部110は、データベース解析部109による設定値の比較結果を出力する。例えば、設定値比較部103は、制御モデル113の設定値(関数、変数、定数)が重複しているかを判定し、重複している関数名、変数名、定数名を出力する。
【0024】
比較結果出力部104は、設定値比較部103の出力に基づいて比較結果ファイル120を出力する。
【0025】
設定値登録部105は、設定値取得部102の出力をモデル設定値格納データベース117に登録する。
【0026】
修正実行部106は、モデル解析部111と、設定修正部112を有する。モデル解析部111は、設定値比較部103による設定値の比較結果に基づいて制御モデル113の修正が必要かを判定する。設定修正部112は、モデル解析部111によって修正が必要であると判定された場合に、制御モデル113をモデル作成支援ツール123(例えばMatlab/Simulink(登録商標)等の専用ソフトウェア)を用いて読み込ませる。読み込んだ制御モデル113の設定値(関数、変数、定数)を任意の設定値に修正し、設定値修正済制御モデル121を出力する。修正実行部106によって、意図しない参照や更新の可能性がある関数、変数、及び定数を修正できる。
【0027】
モデル情報確認システム101は、これらの機能によって制御システム内の設定値が重複により意図しない参照や更新の恐れがある関数、変数、及び定数を検査し、設定値の重複が発見された場合は、制御モデル113を任意の設定値に修正し、成果物119を出力するシステムである。
【0028】
本実施例のモデル情報確認システム101は、プロセッサ(CPU)、メモリ、補助記憶装置、及び通信インターフェースを有する計算機によって構成される。モデル情報確認システム101は、入力インターフェース及び出力インターフェースを有してもよい。
【0029】
プロセッサは、メモリに格納されたプログラムを実行する演算装置である。プロセッサが、各種プログラムを実行することによって、モデル情報確認システム101の各機能部(例えば、設定値取得部102、設定値比較部103、比較結果出力部104、設定値登録部105、修正実行部106など)による機能が実現される。なお、プロセッサがプログラムを実行して行う処理の一部を、他の演算装置(例えば、ASIC、FPGA等のハードウェア)で実行してもよい。
【0030】
メモリは、不揮発性の記憶素子であるROM及び揮発性の記憶素子であるRAMを含む。ROMは、不変のプログラム(例えば、BIOS)などを格納する。RAMは、DRAM(Dynamic Random Access Memory)のような高速かつ揮発性の記憶素子であり、プロセッサが実行するプログラム及びプログラムの実行時に使用されるデータを一時的に格納する。
【0031】
補助記憶装置は、例えば、磁気記憶装置(HDD)、フラッシュメモリ(SSD)等の大容量かつ不揮発性の記憶装置である。また、補助記憶装置は、プロセッサがプログラムの実行時に使用するデータ、及びプロセッサが実行するプログラムを格納する。すなわち、プログラムは、補助記憶装置から読み出されて、メモリにロードされて、プロセッサによって実行されることによって、モデル情報確認システム101の各機能を実現する。
【0032】
通信インターフェースは、所定のプロトコルに従って、他の装置との通信を制御するネットワークインターフェース装置である。
【0033】
入力インターフェースは、キーボードやマウスなどの、ユーザからの入力を受けるインターフェースである。例えば、入力インターフェースは、コストデータが記録され、補助記憶装置に格納されるファイルの入力を受け付ける。また、入力インターフェースは、GUIを提供し、ユーザからコストデータの入力を受け付けてもよい。
【0034】
出力インターフェースは、ディスプレイ装置やプリンタなどの、プログラムの実行結果をユーザが視認可能な形式で出力するインターフェースである。例えば、本実施例のモデル情報確認システム101では、出力インターフェースは、成果物119を出力する。また、出力インターフェースは、プログラムの実行結果をユーザが視認可能な形式で出力するデータ出力ポートでもよい。
【0035】
なお、モデル情報確認システム101にネットワークを介して接続された端末が入力インターフェース及び出力インターフェースを提供してもよい。
【0036】
プロセッサが実行するプログラムは、リムーバブルメディア(CD-ROM、フラッシュメモリなど)又はネットワークを介してモデル情報確認システム101に提供され、非一時的記憶媒体である不揮発性の補助記憶装置に格納される。このため、モデル情報確認システム101は、リムーバブルメディアからデータを読み込むインターフェースを有するとよい。
【0037】
モデル情報確認システム101は、物理的に一つの計算機上で、又は、論理的又は物理的に構成された複数の計算機上で構成される計算機システムであり、複数の物理的計算機資源上に構築された仮想計算機上で動作してもよい。例えば、設定値取得部102、設定値比較部103、比較結果出力部104、設定値登録部105、及び修正実行部106は、各々別個の物理的又は論理的計算機上で動作するものでも、複数が組み合わされて一つの物理的又は論理的計算機上で動作するものでもよい。
【0038】
図2は、制御モデル113の詳細な構成を示す図である。
【0039】
制御モデル113は、データを送受信するデータ送受信ブロック201、205と、データを演算する少なくとも一つのデータ演算ブロック207を用いて一つの制御機能を表現する制御機能ブロック203を有する。制御機能ブロック203が提供する関数の構成は前述した以外のものでもよい。また、制御モデル113の確認対象となる設定値を、データ送受信ブロック201、205に設定された変数、データ演算ブロック207に設定された定数名、及び制御機能ブロック203に設定された関数名として以下説明するが、他の項目を確認対象となる設定値としてもよい。
【0040】
制御機能ブロック203には様々な設定値を定義でき、制御モデル113からソースコードを生成する際に、定義された設定値が使用される。例えば、制御機能ブロック203に設定された関数名122は、ソースコード上では関数名として定義され、データ送受信ブロック201、205に設定された変数名115はソースコード上で変数名として定義される。データ演算ブロック207に設定された定数名116はソースコード上で定数名として定義される。
【0041】
図3は、設定値取得部102が実行する設定値取得処理のフローチャートである。
【0042】
設定値取得部102のモデル解析部107は、制御モデル113を読み込み(S301)、以下のブロックが制御モデル113内で使用されているかを検索する(S302)。
・制御機能ブロック203
・データ送受信ブロック201、205
・データ演算ブロック207
【0043】
モデル解析部107は、制御モデル113でこれらのブロック203、201、205、207が使用されているか否かを判定する(S303)。モデル解析部107は、制御モデル113で制御機能ブロック203が使用されている場合(S303:YES)、制御機能ブロック203に設定された関数名122を取得する(S304)。また、モデル解析部107は、制御モデル113でデータ送受信ブロック201、205が使用されている場合(S303:YES)、データ送受信ブロック201、205に設定された変数名115及び各種パラメータ(データ型、サイズ、係数情報、初期値等)を取得する(S304)。また、モデル解析部107は、制御モデル113でデータ演算ブロック207が使用されている場合(S303:YES)、データ演算ブロック207に設定された定数名116及び各種パラメータ(データ型、サイズ、係数情報等)を取得する(S304)。
【0044】
結果出力部108は、制御モデル113から取得した設定値122、115、116を、設定値比較部103に出力する出力値に追加する(S305)。結果出力部108は、制御機能ブロック203、データ送受信ブロック201、205及びデータ演算ブロック207の何れも制御モデル113で使用されていない場合(S303:NO)、該当する設定値は無いため、設定値比較部103に出力する出力値への追加はない。
【0045】
結果出力部108は、出力値を設定値比較部103に出力する(306)。なお、設定値306は、繰り返し終了後に纏めて設定値比較部103に出力してもよい。
【0046】
設定値取得部102は、確認対象の設定値の分だけステップS303~S305の処理を繰り返し、繰り返し処理が終了した後、設定値取得処理を終了する。
【0047】
図4Aは、本実施例の設定値比較部103が実行する関数及び変数に対する設定値比較処理のフローチャートであり、
図4Bは、設定値比較部103が実行する定数に対する設定値比較処理のフローチャートである。
【0048】
設定値比較部103のデータベース解析部109は、制御モデル113から取得した設定値306を設定値取得部102から受領すると(S401)、モデル設定値格納データベース117を参照して(S402)、受信した設定値306が、モデル設定値格納データベース117に登録された設定値と一致するか否かを比較する(S403)。
【0049】
結果出力部110は、比較した結果、受信した設定値306と一致する設定値がモデル設定値格納データベース117に既に登録されている場合に、一致する設定値を修正実行部106に出力する(S404)。また、結果出力部110は、一致する設定値を、比較結果出力部104に出力する出力値に追加する(S405)。結果出力部110は、出力値を比較結果出力部104に出力する(406)。なお、設定値406は、繰り返し終了後に纏めて比較結果出力部104に出力してもよい。
【0050】
設定値比較部103は、制御モデル113から取得した設定値の分、及びデータベースに登録された設定値の分だけステップS403~S405の処理を繰り返し、繰り返し処理が終了した後、設定値比較処理を終了する。
【0051】
図8は、モデル設定値格納データベース117の構成を示す図である。
【0052】
モデル設定値格納データベース117には、制御モデル113のモデル名801と、制御モデル113から取得した制御機能ブロック203に設定された関数名802と、データ送受信ブロック201、205に設定された変数名803と、データ送受信ブロック201、205に設定された各種パラメータ(データ型804、サイズ805、係数情報806、初期値807)と、データ演算ブロック207に設定された定数名808と、データ送受信ブロック201、205に設定された各種パラメータ(データ型809、サイズ810、係数情報811)が制御モデル113毎に登録される。
【0053】
以下、設定値を比較する手順について説明する。
【0054】
(1)関数の比較
設定値比較処理を開始すると、制御モデル113から取得した制御機能ブロック203に設定された関数名122と、モデル設定値格納データベース117に登録された全ての関数名802を比較し、一致するか否かを判定する。
【0055】
そして、制御機能ブロック203に設定された関数名122がモデル設定値格納データベース117に登録されているいずれかの関数名802と一致する場合(S403:YES)、当該関数名802が使用されている制御モデル113のモデル名801及び関数名802を比較結果出力部104に出力する設定値406に定義する。
【0056】
制御機能ブロック203に設定された関数名122がモデル設定値格納データベース117に登録されているいずれの関数名802とも一致しない場合(S403:NO)、部分的に一致する関数名802がモデル設定値格納データベース117に登録されているか否かを判定する。
【0057】
制御機能ブロック203に設定された関数名122と部分的に一致する関数名802がモデル設定値格納データベース117に登録されている場合(S403:YES)、当該関数名802が使用されている制御モデル113のモデル名801及び関数名802を比較結果出力部104に出力する設定値406に定義する。
【0058】
制御機能ブロック203に設定された関数名122と部分的に一致する関数名802がモデル設定値格納データベース117に登録されていない場合(S403:NO)、当該関数名802を比較結果出力部104に出力する設定値406に定義しない。
【0059】
(2)変数の比較
制御モデル113から取得したデータ送受信ブロック201、205に設定された変数名115及び各種パラメータ(データ型、サイズ、係数情報、初期値等)と、モデル設定値格納データベース117に登録された全ての設定値803~807を比較し、一致するか否かを判定する。
【0060】
そして、データ送受信ブロック201、205に設定された変数名115がモデル設定値格納データベース117に登録されているいずれかの変数名803と一致する場合(S403:YES)、当該変数名803が使用されている制御モデル113のモデル名801及び変数名803を比較結果出力部104に出力する設定値406に定義する。さらに、以下のモデル設定値格納データベース117に登録されている変数名115と一致した変数名803に関連付けられた設定値を取得する。
・モデル設定値格納データベース117に登録されている変数名のデータ型804
・モデル設定値格納データベース117に登録されている変数名のサイズ805
・モデル設定値格納データベース117に登録されている変数名の係数情報806
・モデル設定値格納データベース117に登録されている変数名の初期値807
【0061】
データ送受信ブロック201、205に設定された変数名115がモデル設定値格納データベース117に登録されているいずれの変数名803とも一致しない場合(S403:NO)、部分的に一致する変数名803がモデル設定値格納データベース117に登録されているか否かを判定する。
【0062】
データ送受信ブロック201、205に設定された変数名115とモデル設定値格納データベース117に登録されているいずれかの変数名803と部分的に一致する場合(S403:YES)、当該変数名803が使用されている制御モデル113のモデル名801及び変数名803を比較結果出力部104に出力する設定値406に定義する。さらに、以下のモデル設定値格納データベース117に登録されている変数名115と一致した変数名803に関連付けられた設定値を取得する。
・モデル設定値格納データベース117に登録されている変数名のデータ型804
・モデル設定値格納データベース117に登録されている変数名のサイズ805
・モデル設定値格納データベース117に登録されている変数名の係数情報806
・モデル設定値格納データベース117に登録されている変数名の初期値807
【0063】
データ送受信ブロック201、205に設定された変数名115がモデル設定値格納データベース117に登録されているいずれの変数名803とも部分一致しない場合(S403:NO)、当該変数名803を比較結果出力部104に出力する設定値406に定義しない。
【0064】
(3)定数の比較
制御モデル113から取得したデータ演算ブロック207に設定された定数名116及び各種パラメータ(データ型、サイズ、係数情報等)と、モデル設定値格納データベース117に登録された全ての設定値808~811を比較し、一致するか否かを判定する。
【0065】
そして、データ演算ブロック207に設定された定数名116がモデル設定値格納データベース117に登録されているいずれかの定数名808と一致する場合(S409:YES)、当該定数名808が使用されている制御モデル113のモデル名801及び定数名808を比較結果出力部104に出力する設定値406に定義する。さらに、データ演算ブロック207に設定された各種パラメータ(データ型、サイズ、係数情報)について、モデル設定値格納データベース117に登録されている定数名116と一致した定数名808に関連付けられる設定値(データ型809、サイズ810、係数情報811)と比較する。
【0066】
データ演算ブロック207に設定されたパラメータ(データ型)がモデル設定値格納データベース117に登録されている定数名のデータ型809と一致しない場合(S410:NO)、当該データ型809が使用されている制御モデル113のモデル名801及びデータ型809を比較結果出力部104に出力する設定値406に定義する。一方、データ演算ブロック207に設定されたパラメータ(データ型)がモデル設定値格納データベース117に登録されている定数名のデータ型809と一致する場合(S410:YES)、定数名808を比較結果出力部104に出力する設定値406に定義しない。
【0067】
データ演算ブロック207に設定されたパラメータ(サイズ)がモデル設定値格納データベース117に登録されている定数名のサイズ810と一致しない場合(S410:NO)、当該データ型809が使用されている制御モデル113のモデル名801及びデータ型809を比較結果出力部104に出力する設定値406に定義する。一方、データ演算ブロック207に設定されたパラメータ(サイズ)がモデル設定値格納データベース117に登録されている定数名のサイズ810と一致する場合(S410:YES)、定数名808を比較結果出力部104に出力する設定値406に定義しない。
【0068】
データ演算ブロック207に設定されたパラメータ(係数情報)がモデル設定値格納データベース117に登録されている定数名の係数情報811と一致しない場合(S410:NO)、当該係数情報811が使用されている制御モデル113のモデル名801及び係数情報811を比較結果出力部104に出力する設定値406に定義する。一方、データ演算ブロック207に設定されたパラメータ(係数情報)がモデル設定値格納データベース117に登録されている定数名の係数情報811と一致する場合(S410:YES)、定数名808を比較結果出力部104に出力する設定値406に定義しない。
【0069】
データ演算ブロック207に設定された定数名116がモデル設定値格納データベース117に登録されているいずれの定数名808とも一致しない場合(S409:NO)、部分的に一致する定数名808がモデル設定値格納データベース117に登録されているか否かを判定する。
【0070】
データ演算ブロック207に設定された定数名116がモデル設定値格納データベース117に登録されているいずれかの定数名808と部分的に一致する場合(S409:YES)、当該定数名808が使用されている制御モデル113のモデル名801及び定数名808を比較結果出力部104に出力する設定値406に定義する。さらに、データ演算ブロック207に設定された各種パラメータ(データ型、サイズ、係数情報)について、モデル設定値格納データベース117に登録されている定数名116と一致した定数名808に関連付けられる設定値(データ型809、サイズ810、係数情報811)と比較する。
【0071】
データ演算ブロック207に設定されたパラメータ(データ型)がモデル設定値格納データベース117に登録されている定数名のデータ型809と一致しない場合(S410:NO)、当該データ型809が使用されている制御モデル113のモデル名801及びデータ型809を比較結果出力部104に出力する設定値406に定義する。一方、データ演算ブロック207に設定されたパラメータ(データ型)がモデル設定値格納データベース117に登録されている定数名のデータ型809と一致する場合(S410:YES)、定数名808を比較結果出力部104に出力する設定値406に定義しない。
【0072】
データ演算ブロック207に設定されたパラメータ(サイズ)がモデル設定値格納データベース117に登録されている定数名のサイズ810と一致しない場合(S410:NO)、当該データ型809が使用されている制御モデル113のモデル名801及びデータ型809を比較結果出力部104に出力する設定値406に定義する。一方、データ演算ブロック207に設定されたパラメータ(サイズ)がモデル設定値格納データベース117に登録されている定数名のサイズ810と一致する場合(S410:YES)、定数名808を比較結果出力部104に出力する設定値406に定義しない。
【0073】
データ演算ブロック207に設定されたパラメータ(係数情報)がモデル設定値格納データベース117に登録されている定数名の係数情報811と一致しない場合(S410:NO)、当該係数情報811が使用されている制御モデル113のモデル名801及び係数情報811を比較結果出力部104に出力する設定値406に定義する。一方、データ演算ブロック207に設定されたパラメータ(係数情報)がモデル設定値格納データベース117に登録されている定数名の係数情報811と一致する場合(S410:YES)、定数名808を比較結果出力部104に出力する設定値406に定義しない。
【0074】
データ演算ブロック207に設定された定数名116がモデル設定値格納データベース117に登録されているいずれの定数名808とも部分的に一致しない場合(S409:NO)、定数名808を比較結果出力部104に出力する設定値406に定義しない。
【0075】
図5は、比較結果出力部104が実行する比較結果出力処理のフローチャートである。
【0076】
比較結果出力部104は、設定値比較部103からの設定値406が入力されると(S501)、結果の内容を比較結果ファイル120に出力(S502)する。比較結果ファイル120の出力はドキュメント生成ツールを用いて実施する。ドキュメント生成ツールは例えばMicrosoft(商標登録)のExcel(商標登録)等の文章を作成するソフトウェアで構成されているものとする。
【0077】
具体的には、比較結果出力の処理を開始すると、ドキュメント作成ツールから新規ドキュメントを開く。
【0078】
(1)関数の場合
制御モデル113内の制御機能ブロック203に設定された関数名122と、モデル設定値格納データベース117に登録されている設定値802との比較結果によって、ドキュメントに出力する文言を以下の通りとする。
一致する場合:モデル設定値格納データベース117に登録されている設定値801及び802を出力する。
一致しない場合:該当する設定値は無いため、”該当なし”と出力する。
【0079】
(2)変数の場合
制御モデル113内のデータ送受信ブロック201、205に設定された変数名115や各種パラメータ(データ型、サイズ、係数情報、初期値等)と、モデル設定値格納データベース117に登録されている設定値803~807との比較結果によって、ドキュメントに出力する文言を以下の通りとする。
一致する場合:モデル設定値格納データベース117に登録されている設定値801及び803~807を出力する。
一致しない場合:該当する設定値は無いため、”該当なし”と出力する。
【0080】
(3)定数の場合
制御モデル113内のデータ演算ブロック207に設定された定数名116や各種パラメータ(データ型、サイズ、係数情報等)と、モデル設定値格納データベース117に登録されている設定値808~811との比較結果によって、ドキュメントに出力する文言を以下の通りとする。
一致する場合:モデル設定値格納データベース117に登録されている設定値801及び808~811を出力する。
一致しない場合:該当する設定値は無いため、”該当なし”と出力する。
【0081】
結果の出力が完了した後、ファイルに任意の名前を付けて保存し、比較結果ファイル120として出力する。
【0082】
図6は、設定値登録部105が実行する設定値登録処理のフローチャートである。
【0083】
設定値登録部105は、制御モデル113から取得した設定値306が入力されると、入力された設定値をモデル設定値格納データベース117に登録する。
【0084】
具体的には、設定値登録の処理を開始すると、制御モデル113から取得した設定値306を読み込んで(S601)、モデル設定値格納データベース117を参照する。そして、モデル設定値格納データベース117に登録されている各設定値801~811に、制御モデル113から取得した設定値306を追加登録する(S602)。
【0085】
図7は、修正実行部106が実行する修正実行処理のフローチャートである。
【0086】
修正実行部106は、制御モデル113とモデル設定値格納データベース117で重複する設定値について、ユーザが入力した任意の設定値706を用いて制御モデル113を修正した設定値修正済み制御モデル121を生成し、設定値比較部103に出力する。
【0087】
以下、制御モデル113を修正する手順について説明する。
【0088】
修正実行の処理を開始すると、制御モデル113をモデル作成支援ツール123で読み込む(S702)。
【0089】
(1)関数の場合
モデル解析部111は、モデル設定値格納データベース117に登録された関数名802と一致する制御機能ブロック203に設定された関数名122を制御モデル113内で検索する。該当する制御機能ブロック203が見つかった場合(S703:YES)、設定修正部112は、ユーザが任意に指定した設定値706の入力を受け付け(S704)、制御機能ブロック203に設定された設定値122をユーザが任意に指定した設定値706に修正した設定値修正済制御モデル121を出力する(S705)。
【0090】
(2)変数の場合
モデル解析部111は、モデル設定値格納データベース117に登録された変数名803と一致するデータ送受信ブロック201、205に設定された変数名115を制御モデル113内で検索する。該当するデータ送受信ブロック201、205が見つかった場合(S703:YES)、設定修正部112は、ユーザが任意に指定した設定値706の入力を受け付け(S704)、データ送受信ブロック201、205に設定された変数名115や各種パラメータ(データ型、サイズ、係数情報、初期値等)をユーザが任意に指定した設定値706に修正した設定値修正済制御モデル121を出力する(S705)。
【0091】
(3)定数の場合
モデル解析部111は、モデル設定値格納データベース117に登録された定数名808と一致するデータ演算ブロック207に設定された定数名116を制御モデル113内で検索する。該当するデータ演算ブロック207が見つかった場合(S703:YES)、設定修正部112は、ユーザが任意に指定した設定値706の入力を受け付け(S704)、データ演算ブロック207に設定された116や各種パラメータ(データ型、サイズ、係数情報等)をユーザが任意に指定した設定値706に修正した設定値修正済制御モデル121を出力する(S705)。
【0092】
修正実行部106は、制御モデル113から取得した設定値の分だけステップS703~S705の処理を繰り返し、繰り返し処理が終了した後、修正実行処理を終了する。なお、設定値修正済制御モデル121は、繰り返し終了後に纏めて出力してもよい。
【0093】
以上に説明したように、本発明の実施例によると、設定値の重複を制御モデル段階で確認でき、制御モデルを修正する際の手戻り工数を削減できる。すなわち、複数の制御モデルにおいて関数名、変数名、定数名に同じ名前が設定されていても、ソースコードで関数、変数、定数として定義される設定値を制御モデルから取得し、さらに他の制御モデルで使用している設定値を参照できるように、制御モデルから取得した設定値を集約したモデル設定値格納データベース117を構築し、従来ソースコード生成後に確認される関数名、変数名、定数名の重複を制御モデル段階で確認できる。
【0094】
なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加・削除・置換をしてもよい。
【0095】
また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
【0096】
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、SSD(Solid State Drive)等の記憶装置、又は、ICカード、SDカード、DVD等の記録媒体に格納することができる。
【0097】
また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。
【符号の説明】
【0098】
101 モデル情報確認システム
102 設定値取得部
103 設定値比較部
104 比較結果出力部
105 設定値登録部
106 修正実行部
107 モデル解析部
108 結果出力部
109 データベース解析部
110 結果出力部
111 モデル解析部
112 設定修正部
113 制御モデル
114 設定値
115 変数名
116 定数名
117 モデル設定値格納データベース
118 リスト
119 成果物
120 比較結果ファイル
121 設定値修正済制御モデル
122 関数名
201 データ送受信ブロック
203 制御機能ブロック
205 データ送受信ブロック
207 データ演算ブロック
306、406、706 設定値