【手続補正書】
【提出日】令和2年12月16日(2020.12.16)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ブロック図の１つまたは複数のブロックからソースコードを生成するための方法であって、
コンピュータシステムによって、前記ブロック図を生成し、前記ブロック図は、２つのブロックの間に少なくとも１つの信号接続部を有する動的システムのモデルを含み、前記ブロック図は、前記動的システムをシミュレートするために実行することができ、１つまたは複数のブロックが位置する少なくとも１つの領域は、前記ブロック図内に定義されており、前記ブロック図は、第１のブロックおよび第２のブロックを含み、前記第１のブロックは、第１のブロック変数を有し、前記第２のブロックは、第２のブロック変数を有し、前記ブロック図のそれぞれのブロック変数は、１つの識別子を有し、
前記コンピュータシステムによって、前記第１および第２のブロック変数の前記識別子が、一致しているかまたは異なるか、および、前記第１および第２のブロックが同じ領域内に位置しているか否かを決定し、前記第１および第２のブロック変数の前記識別子が一致しているかまたは異なるかを決定することは、前記第１のブロック変数の前記識別子と前記第２のブロック変数の前記識別子とを比較することに基づき、
前記第１および第２のブロック変数の前記識別子が一致しているかまたは異なるか、および、前記第１および第２のブロックが同じ領域内に位置しているか否かの決定に基づいて、前記コンピュータシステムによって、前記第１および第２のブロック変数を単一の変数としてまたは２つの別個の変数としてソースコードにおいて実装し、前記第１および第２のブロック変数の前記識別子が一致していて、かつ、前記第１および第２のブロックが同じ領域内に位置している場合には、前記第１および第２のブロック変数は、単一の変数としてソースコードにおいて実装され、前記第１および第２のブロック変数の前記識別子が異なっており、かつ／または、前記第１および第２のブロックが同じ領域内に位置していない場合には、前記第１および第２のブロック変数は、２つの別個の変数としてソースコードにおいて実装される、
方法。
【請求項２】
前記ブロック図は、階層的に定義されており、
上位のレベルのブロックは、下位のレベルの複数のブロックを含むことができ、この際、下位のレベルの複数のブロックは、上位のレベルの１つのブロックに割り当てられており、
前記ブロック図は、１つまたは複数の定義ブロックを含み、
１つの定義ブロックに基づいて１つの領域が定義され、この際、前記定義ブロックを含む、その次に上位のレベルにあるブロックと、前記ブロックに割り当てられた全てのブロックと、が前記領域内に位置するように定義される、
請求項１記載の方法。
【請求項３】
前記ブロック図は、上位のレベルの１つの共通のブロックに含まれている少なくとも２つの定義ブロックを含み、
第１の定義ブロックは、第１のレベルに配置されており、第２の定義ブロックは、前記第１のレベルよりも下位の第２のレベルに配置されており、
前記第１のブロックは、第１の領域を定義し、
前記第２のブロックは、第２の領域を定義し、この際、前記第２の定義ブロックを含む、前記第２のレベルの次に上位のレベルにあるブロックと、前記ブロックに割り当てられた全てのブロックと、が前記第２の領域内に位置するように定義する、
請求項２記載の方法。
【請求項４】
前記少なくとも２つの定義ブロックは、少なくとも２種類の定義ブロックを含み、
１種類の、特徴付けられた定義ブロックが定義されており、
前記第１の定義ブロックが特徴付けられた定義ブロックである場合には、前記第１の領域と前記第２の領域とが１つの共通の領域に併合され、
そうでない場合には、前記第１の領域と前記第２の領域とが別個の領域として処理される、
請求項３記載の方法。
【請求項５】
ブロック変数の識別子は、少なくとも１つの生成規則の評価に基づいて決定され、
前記生成規則は、前記ブロック変数の前記識別子を、
前記ブロック変数を有するブロックが含まれている上位のレベルのブロックに基づいて決定し、かつ／または、
前記ブロック変数を有するブロックが位置している領域に基づいて決定する、
請求項２記載の方法。
【請求項６】
前記第１および第２のブロックが同じ領域内に位置しているか否かを決定することは、前記第１のブロック変数の前記識別子と前記第２のブロック変数の前記識別子との比較に基づく、
請求項５記載の方法。
【請求項７】
所定の機能を提供する事前定義されたブロックを、ライブラリから前記ブロック図に挿入することができ、
前記ブロック図は、同じ機能を有するブロックの複数のインスタンスを含み、
それぞれのインスタンスに対して１つの独立した領域が定義されるか、または
前記複数のインスタンスに対して１つの共通の関数が定義され、かつ、それぞれのインスタンスに対して前記ブロック変数を有する１つのデータ構造が定義され、
実行されるべきブロックに応じて、対応するデータ構造が前記共通の関数に移行される、
請求項１記載の方法。
【請求項８】
前記第１および第２のブロック変数の各々は、許可フラグを有し、
前記第１および第２のブロック変数を単一の変数としてまたは２つの別個の変数としてソースコードにおいて実装することは、前記第１および第２のブロック変数の前記許可フラグにさらに基づき、
２つのブロック変数に前記許可フラグがセットされている場合にのみ、前記第１および第２のブロック変数が単一の変数として実装される、
請求項１記載の方法。
【請求項９】
それぞれのブロック変数は、少なくとも１つのチェックフラグを有し、
２つのブロック変数に前記チェックフラグがセットされていて、かつ、各チェックフラグに割り当てられた少なくとも１つのチェック条件も満足されている場合にのみ、前記第１および第２のブロック変数が単一の変数として実装され、
前記少なくとも１つのチェック条件は、以下のチェック条件のうちの１つまたは複数、すなわち、
・ブロック内のブロック変数が、変更されることなく読み取られるだけであるか否か、
・前記２つのブロック変数が、重複していないそれぞれ異なる時間でのみ読み取りまたは書き込みされるように、前記ブロック変数のそれぞれ異なるインスタンスの寿命がばらばらであるか否か、
・定義データ収集部において前記ブロック変数に同一の変数定義が割り当てられているか否か、
・前記ブロック変数が、同一方向に指定された有向接続部に配置されているか否か、
を含む、
請求項８記載の方法。
【請求項１０】
前記第１および第２のブロック変数を単一の変数としてまたは２つの別個の変数としてソースコードにおいて実装することは、以下の条件のうちの１つまたは複数、すなわち、
・前記ブロック変数に同一のデータ型が割り当てられていること、
・前記ブロック変数に互換性のある測定単位が割り当てられていること、
・ブロック変数の名前が、同じ生成規則を使用して決定されること、
のうちの１つまたは複数が満足することにさらに基づく、
請求項８記載の方法。
【請求項１１】
少なくとも１つのブロック変数は、各ブロック間の有向接続部に基づいて自動的に生成され、
前記第１のブロックは、前記第２のブロックに接続されており、かつ、前記第２のブロックは、第３のブロックに接続されており、
前記第１のブロックの第１のブロック変数は、前記第１のブロックを起点とした接続のために生成され、前記第２のブロックの第２のブロック変数は、前記第２のブロックを起点とした接続のために生成され、
前記第１のブロックと前記第２のブロックとは、同じ領域内に位置し、
前記第１および第２のブロック変数は、単一の変数としてソースコードにおいて実装される、
請求項１記載の方法。
【請求項１２】
前記ブロック図は、領域を定義する１つまたは複数の定義ブロックを含み、
ある１つの定義ブロックが形成する領域内に位置していないブロックは、追加の領域に割り当てられ、これにより、前記ブロック図のそれぞれのブロックが１つの領域内に位置し、かつ／または、
分離領域が定義され、この際、前記分離領域内に位置するブロックのブロック変数は、常に、別個の変数としてソースコードにおいて実装されている、
請求項１記載の方法。
【請求項１３】
前記生成されたソースコードをコンパイルして、実行可能コードを生成し、
前記実行可能コードを制御装置に伝送し、前記制御装置をコンフィギュレーションする、
請求項１記載の方法。
【請求項１４】
非一時的なコンピュータ可読記憶媒体であって、
前記コンピュータ可読記憶媒体上には、プロセッサ実行可能命令が、ブロック図の１つまたは複数のブロックからソースコードを生成するために格納され、前記プロセッサ実行可能命令は、プロセッサによって実行された場合に、
前記ブロック図を生成し、前記ブロック図は、２つのブロックの間に少なくとも１つの信号接続部を有する動的システムのモデルを含み、前記ブロック図は、前記動的システムをシミュレートするために実行することができ、１つまたは複数のブロックが位置する少なくとも１つの領域が、前記ブロック図内に定義されており、前記ブロック図は、第１のブロックおよび第２のブロックを含み、前記第１のブロックは、第１のブロック変数を有し、前記第２のブロックは、第２のブロック変数を有し、前記ブロック図のそれぞれのブロック変数は、１つの識別子を有し、
前記第１および第２のブロック変数の前記識別子が、一致しているかまたは異なるか、および、前記第１および第２のブロックが同じ領域内に位置しているか否かを決定し、前記第１および第２のブロック変数の前記識別子が一致しているかまたは異なるかを決定することは、前記第１のブロック変数の前記識別子と前記第２のブロック変数の前記識別子とを比較することに基づき、
前記第１および第２のブロック変数の前記識別子が一致していて、かつ、前記第１および第２のブロックが同じ領域内に位置している場合には、前記第１および第２のブロック変数を、単一の変数としてソースコードにおいて実装し、
前記第１および第２のブロック変数の前記識別子が異なっており、かつ／または、前記第１および第２のブロックが同じ領域内に位置していない場合には、前記第１および第２のブロック変数を、２つの別個の変数としてソースコードにおいて実装する、
ことを容易にする、コンピュータプログラム。
【請求項１５】
ブロック図の１つまたは複数のブロックからソースコードを生成するためのコンピュータシステムであって、
前記コンピュータシステムは、ヒューマンマシンインターフェースと、不揮発性メモリと、プロセッサと、を含み、
前記プロセッサは、前記不揮発性メモリに格納されているプロセッサ実行可能命令を実行し、
前記ブロック図を生成し、前記ブロック図は、２つのブロックの間に少なくとも１つの信号接続部を有する動的システムのモデルを含み、前記ブロック図は、前記動的システムをシミュレートするために実行することができ、１つまたは複数のブロックが位置する少なくとも１つの領域が、前記ブロック図内に定義されており、前記ブロック図は、第１のブロックおよび第２のブロックを含み、前記第１のブロックは、第１のブロック変数を有し、前記第２のブロックは、第２のブロック変数を有し、前記ブロック図のそれぞれのブロック変数は、１つの識別子を有し、
前記第１および第２のブロック変数の前記識別子が、一致しているかまたは異なるか、および、前記第１および第２のブロックが同じ領域内に位置しているか否かを決定し、前記第１および第２のブロック変数の前記識別子が一致しているかまたは異なるかを決定することは、前記第１のブロック変数の前記識別子と前記第２のブロック変数の前記識別子とを比較することに基づき、
前記第１および第２のブロック変数の前記識別子が一致していて、かつ、前記第１および第２のブロックが同じ領域内に位置している場合には、前記第１および第２のブロック変数を、単一の変数としてソースコードにおいて実装し、
前記第１および第２のブロック変数の前記識別子が異なっており、かつ／または、前記第１および第２のブロックが同じ領域内に位置していない場合には、前記第１および第２のブロック変数を、２つの別個の変数としてソースコードにおいて実装する、
ことを容易にするように構成されている、
コンピュータシステム。