メインコンテンツ

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

Simulink.ModelReference.modifyProtectedModel

既存の保護モデルの変更

説明

harnessHandle = Simulink.ModelReference.modifyProtectedModel(mdl)mdl で指定された既存の保護モデルのためのオプションを変更します。名前と値の引数を指定しなかった場合、変更された保護モデルは既定値で更新され、シミュレーションのみをサポートします。

モデル保護でハーネス モデルが作成されて開かれると、ハーネス モデルのハンドルが harnessHandle によって返されます。既定では、harnessHandle0 を返します。

harnessHandle = Simulink.ModelReference.modifyProtectedModel(mdl,Name=Value) では、前の構文の入力引数に加えて、1 つ以上の名前と値の引数を使用してオプションを指定します。たとえば、読み取り専用ビュー、シミュレーション、およびコード生成用の暗号化パスワードを変更します。保護モデルに機能を追加するか、暗号化パスワードを変更する場合、保護されていないモデルを利用できなければなりません。MATLAB® パス上でモデルの検索が行われます。

[harnessHandle,neededVars] = Simulink.ModelReference.modifyProtectedModel(___) は、neededVars で、保護モデルによって使用されるベース ワークスペース変数の名前を返します。前述の構文における入力引数の組み合わせを指定します。

すべて折りたたむ

コード生成をサポートする変更可能な保護モデルを作成してから、既定値を使用するように保護モデルをリセットします。

sldemo_mdlref_counter という名前の参照モデルを含む例を開きます。

mdl = "sldemo_mdlref_counter";
openExample(mdl)

保護モデルの変更時のパスワードを追加します。この手順を省略すると、変更可能な保護モデルを作成したときにパスワードを設定するよう求められます。

Simulink.ModelReference.ProtectedModel.setPasswordForModify(...
mdl, "password");

変更可能であり、コード生成をサポートする保護モデルを作成します。

Simulink.ModelReference.protect(mdl, Mode="CodeGeneration", ...
Modifiable=true, Report=true);

保護モデルを変更するためのパスワードを指定します。

Simulink.ModelReference.ProtectedModel.setPasswordForModify(...
mdl, "password");

既定値を使用するようにモデルを変更します。

Simulink.ModelReference.modifyProtectedModel(mdl);

結果の保護モデルは既定値で更新され、シミュレーションのみをサポートします。

コード生成と Web ビューをサポートする変更可能な保護モデルを作成してから、保護モデルを変更して Web ビュー サポートを削除します。

sldemo_mdlref_counter という名前の参照モデルを含む例を開きます。

mdl = "sldemo_mdlref_counter";
openExample(mdl)

保護モデルの変更時のパスワードを追加します。この手順を省略すると、変更可能な保護モデルを作成したときにパスワードを設定するよう求められます。

Simulink.ModelReference.ProtectedModel.setPasswordForModify(...
mdl, "password");

コード生成と Web ビューをサポートする、変更可能な保護モデルを作成します。

Simulink.ModelReference.protect(mdl, Mode="CodeGeneration", ...
Webview=true, Modifiable=true, Report=true);

保護モデルを変更するためのパスワードを指定します。

Simulink.ModelReference.ProtectedModel.setPasswordForModify(...
mdl, "password");

作成した保護モデルから Web ビューのサポートを削除します。

Simulink.ModelReference.modifyProtectedModel(mdl, ...
Mode="CodeGeneration", Report=true);

変更可能な保護モデル用の暗号化パスワードを変更します。

sldemo_mdlref_counter という名前の参照モデルを含む例を開きます。

mdl = "sldemo_mdlref_counter";
openExample(mdl)

保護モデルの変更時のパスワードを追加します。この手順を省略すると、変更可能な保護モデルを作成したときにパスワードを設定するよう求められます。

Simulink.ModelReference.ProtectedModel.setPasswordForModify(...
mdl, "password");

保護モデルのユーザーが、コードを生成するために指定しなくてはならないパスワードを追加します。

Simulink.ModelReference.ProtectedModel.setPasswordForSimulation(...
mdl, "simpassword");

暗号化を行うコード生成をサポートし、レポートを作成する変更可能な保護モデルを作成します。

Simulink.ModelReference.protect(mdl, Mode="CodeGeneration", ...
Encrypt=true, Modifiable=true, Report=true);

保護モデルを変更するためのパスワードを指定します。

Simulink.ModelReference.ProtectedModel.setPasswordForModify(...
mdl, "password");

シミュレーション用の暗号化パスワードを変更します。

Simulink.ModelReference.modifyProtectedModel(mdl, ...
Mode="CodeGeneration", Encrypt=true, Report=true, ...
ChangeSimulationPassword={'simpassword','new_password'});

既存の保護モデル用のハーネス モデルを作成します。

CounterAlgorithm という名前の参照モデルを含む例を開きます。

openExample('simulink/ComponentInterfaceSpecificationUsingBusesExample')

保護モデルの変更時のパスワードを追加します。この手順を省略すると、変更可能な保護モデルを作成したときにパスワードを設定するよう求められます。

mdl = "CounterAlgorithm";
Simulink.ModelReference.ProtectedModel.setPasswordForModify(...
mdl, "password");

暗号化を行うコード生成をサポートし、レポートを作成する変更可能な保護モデルを作成します。

Simulink.ModelReference.protect(mdl, Mode="CodeGeneration", ...
Modifiable=true, Report=true);

保護モデルを変更するためのパスワードを指定します。

Simulink.ModelReference.ProtectedModel.setPasswordForModify(...
mdl, "password");

保護モデルに必要な変数を判別します。

[harness,neededVars] = Simulink.ModelReference.modifyProtectedModel(...
mdl, Mode="CodeGeneration", Report=true);

受信者に送信する必要がある変数は、neededVars で渡されます。neededVars の値は、保護モデルに必要な変数の名前を含む cell 配列です。ただし、この cell 配列には、モデルには必要がない変数の名前も含めることができます。

ヒント

必要な変数の定義を保護モデルとともに自動的にプロジェクトにパッケージ化するには、Projecttrue に設定します。

保護モデルを共有する前に、neededVars を編集して、モデルに必要がない変数を削除します。必要な変数をデータ ディクショナリに保存します。

入力引数

すべて折りたたむ

モデル名。string または文字ベクトルとして指定します。変更する保護モデルの名前、または保護モデルを参照する Model ブロックのパスを指定します。

データ型: char | string

名前と値の引数

すべて展開する

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。

例: Simulink.ModelReference.modifyProtectedModel(mdl,Mode="CodeGeneration",OutputFormat="Binaries",ObfuscateCode=true) は、保護モデルに対して難読化されたコードを生成し、バイナリ ファイルと生成されたコード内のヘッダーのみが保護モデルのユーザーに表示されるように指定します。

ファイル オプション

すべて展開する

R2023b 以降

プロジェクト内の依存関係を収集するためのオプション。false または true として指定します。

保護モデルとともにハーネス モデルを含むサポート ファイルをプロジェクト アーカイブにパッケージ化するかどうかを指定します。サポート ファイルのタイプと数は保護されるモデルによって異なります。ベース ワークスペース定義を含む MAT ファイルや、関連する定義に間引きされたデータ ディクショナリはサポート ファイルの例です。サポート ファイルは保護されません。

  • false — 保護モデルのみを作成します。保護モデルに依存関係がある場合は、それらを個別に共有しなければなりません。同様に、保護モデルのハーネス モデルを作成する場合は、ハーネス モデルを個別に共有しなければなりません。

  • true — 保護モデル、その依存関係、およびハーネス モデルが含まれるプロジェクト アーカイブ (.mlproj) を作成します。サポート ファイルは保護されません。プロジェクト アーカイブは簡単に共有できる単一ファイルです。対話型のプロジェクトを作成するには、プロジェクト アーカイブを開きます。

例: Simulink.ModelReference.modifyProtectedModel(mdl,Project=true)

ヒント

プロジェクトを共有する前に、プロジェクトに必要なサポート ファイルが含まれているかどうか確認してください。サポート ファイルが不足している場合は、関連するハーネス モデルのコードをシミュレーションまたは生成することで、それらを特定できます。不足している依存関係をプロジェクトに追加し、必要に応じてハーネス モデルを更新します。詳細については、プロジェクト ファイルの管理を参照してください。

依存関係

Projecttrue に設定するには、Mode を、シミュレーションをサポートする値に設定します。たとえば、Mode"Simulation" (既定) に設定します。

データ型: logical

R2023b 以降

カスタムのプロジェクト名。文字ベクトルまたは string スカラーとして指定します。

生成されたファイルが含まれるプロジェクト アーカイブの名前を指定します。アーカイブ内のプロジェクトは同じ名前を使用します。

カスタム プロジェクト名を指定しない場合、保護モデル名の後に _protected が付いたものがプロジェクトの既定の名前になります。

例: Simulink.ModelReference.modifyProtectedModel(mdl,Project=true,ProjectName="MyProject")

依存関係

この引数を有効にするには、Projecttrue に設定します。

データ型: char | string

ハーネス モデルを作成するためのオプション。ブール値として指定します。

保護モデルのハーネス モデルを作成するかどうかを指定します。ハーネス モデルは保護モデルのために Model ブロックで参照される分離された環境を提供します。

  • false — 保護モデルのハーネス モデルを作成しません。

  • true — 保護モデルのハーネス モデルを作成します。

ベース ワークスペース定義に依存する保護モデル用のハーネス モデルを作成するときに、ソフトウェアはベース ワークスペース定義を含む MAT ファイルを作成します。

ハーネス モデルは、ベース ワークスペース定義を含む MAT ファイルやデータ ディクショナリといったサポート ファイルにアクセスできなければなりません。

例: Simulink.ModelReference.modifyProtectedModel(mdl,Harness=true)

依存関係

  • Harnesstrue に設定するには、Mode を、シミュレーションをサポートする値に設定します。たとえば、Mode"Simulation" (既定) に設定します。

  • Projecttrue に設定すると、Harnesstrue に設定されます。

データ型: logical

保護モデルのフォルダー。文字ベクトルまたは string スカラーとして指定します。

例: Simulink.ModelReference.modifyProtectedModel(mdl,Path="C:\Work")

依存関係

保護対象のモデルは、MATLAB パス上になければなりません。

データ型: char | string

R2024b 以降

追加情報のカスタム テキスト文字列。文字ベクトルまたは string スカラーとして指定します。

保護モデルを設計ファイルの対応するバージョンまでトレースできると、デバッグに役立ちます。ファイルの来歴情報を保護モデルに保存するには、保護モデルの作成に関連するジョブ番号、Git™ コミット、継続的インテグレーション システム タグなどの情報を含むカスタム テキスト タグを指定します。

タグの長さは 256 文字を超えてはなりません。

環境変数に基づいてタグを生成するには、getenv 関数を使用します。

例: Simulink.ModelReference.modifyProtectedModel(mdl,Tag=myTag)

データ型: char | string

R2024b 以降

ビルド プロセス情報の詳細出力。数値または logical 1 (true) または logical 0 (false) として指定します。

既定では、モデル保護プロセスには限られたビルド プロセス情報のみが表示されます。モデル保護中に詳細なビルド プロセス情報を表示するには、Verbosetrue に設定します。

ビルド プロセス情報の表示を制御するために、モデル保護プロセスは、[詳細なアクセラレータのビルド] および [詳細なビルド] コンフィギュレーション パラメーターの値を一時的にオーバーライドします。

例: Simulink.ModelReference.modifyProtectedModel(mdl,Verbose=true)

データ型: logical

機能オプション

すべて展開する

レポートを生成するためのオプション。ブール値として指定します。

レポートを表示するには、次のいずれかのアクションを実行します。

  • Simulink® エディター:Model ブロックで、保護モデル バッジ アイコン を右クリックします。次に、[レポートの表示] を選択します。

  • MATLAB コマンド ウィンドウ:関数 Simulink.ProtectedModel.open を使用します。たとえば、sldemo_mdlref_counter という名前の保護モデルのレポートを表示するには、次のコマンドを入力します。

    Simulink.ProtectedModel.open("sldemo_mdlref_counter","report");

レポートはHTML 形式で生成されます。保護モデルの環境、機能、およびインターフェイスに関する情報が含まれています。

例: Simulink.ModelReference.modifyProtectedModel(mdl,Report=true)

依存関係

Reporttrue に設定するには、Mode を、シミュレーションをサポートする値に設定します。たとえば、Mode"Simulation" (既定) に設定します。

データ型: logical

読み取り専用 Web ビューを含めるためのオプション。ブール値として指定します。

受信者が Web ブラウザーで表示できる Simulink モデルの対話的な表現を共有するかどうかを指定します。モデルのこの読み取り専用 Web ビューには、モデルのコンテンツおよびブロック パラメーターが含まれます。

  • false — 保護するモデルの Web ビューを共有しません。

  • true — 保護するモデルの Web ビューを共有します。

保護モデルの Web ビューを開くには、次のいずれかのアクションを実行します。

  • [ファイル] パネル: 保護モデル ファイル (.slxp) をダブルクリックします。

  • MATLAB コマンド ウィンドウ:関数 Simulink.ProtectedModel.open を使用します。たとえば、sldemo_mdlref_counter という名前の保護モデルの Web ビューを表示するには、次のコマンドを入力します。

    Simulink.ProtectedModel.open("sldemo_mdlref_counter","webview");

例: Simulink.ModelReference.modifyProtectedModel(mdl,Webview=true)

依存関係

モデルの読み取り専用 Web ビューを作成するには、Simulink Report Generator™ ライセンスが必要です。

データ型: logical

モデル保護モード。次のいずれかの値として指定します。

  • "Simulation" (R2023b 以降) — 保護モデルを参照するモデルをノーマル、アクセラレータまたはラピッド アクセラレータのモードで実行できます。

    R2023b より前: "Simulation" の代わりに "Accelerator" を使用します。

  • "CodeGeneration" — 保護モデルを参照するモデルをノーマル、アクセラレータ、ラピッド アクセラレータ、またはエクスターナル モードで実行でき、そのモデルは C および C++ コード生成をサポートできます。このオプションには Simulink Coder™ ライセンスが必要です。

  • "HDLCodeGeneration" — 保護モデルを参照するモデルをノーマル、アクセラレータまたはラピッド アクセラレータのモードで実行でき、そのモデルは HDL コード生成をサポートできます。このオプションには HDL Coder™ のライセンスが必要です。

  • "ViewOnly" — 保護モデルは読み取り専用 Web ビューのみをサポートします。保護モデルはシミュレーションまたはコード生成はサポートしません。このオプションには Simulink Report Generator ライセンスが必要です。

モデルの階層構造におけるシミュレーション モードについては、モデルの階層構造内のシミュレーション モードの選択を参照してください。

例: Simulink.ModelReference.modifyProtectedModel(mdl,Mode="Simulation")

生成コードのインターフェイス。次のいずれかの値として指定します。

  • "Model reference" — 保護モデルを参照する Model ブロックは、アクセラレータ モード、ソフトウェアインザループ (SIL) モード、またはプロセッサインザループ (PIL) モードでの C および C++ コードの生成とシミュレーションをサポートできます。SIL および PIL シミュレーションでは、ソフトウェアは、参照モデルを使用するより大きなアプリケーションの一部として、生成コードを展開します。生成されたアーティファクトは、"ModelReferenceCoderTarget" ビルド仕様を指定して slbuild 関数によって生成されたアーティファクトと一致します。

  • "Top model" — 保護モデルを参照する Model ブロックは、アクセラレータ モード、ソフトウェアインザループ (SIL) モード、またはプロセッサインザループ (PIL) モードでのシミュレーションをサポートできます。SIL および PIL シミュレーションでは、ソフトウェアは、スタンドアロン アプリケーションとして、生成コードを展開します。生成されたアーティファクトは、"StandaloneCoderTarget" ビルド仕様を指定して slbuild 関数によって生成されたアーティファクトと一致します。

SIL および PIL シミュレーションにより、保護モデルのコードを検証できます。

例: Simulink.ModelReference.modifyProtectedModel(mdl,CodeInterface="Top model")

依存関係

[システム ターゲット ファイル] コンフィギュレーション パラメーターは、ERT ベースのシステム ターゲット ファイル (たとえば、ert.tlc) に設定されなければなりません。このオプションには Embedded Coder® のライセンスが必要です。

HDL コードを生成するためのオプション。ブール値として指定します。

保護モデルでシミュレーション、C および C++ コード生成、HDL コード生成をサポートするために、Mode"CodeGeneration" に、hdltrue に設定します。

例: Simulink.ModelReference.modifyProtectedModel(mdl,Mode="CodeGeneration",hdl=true)

ヒント

保護モデルでシミュレーションおよび HDL コード生成をサポートし、C および C++ コード生成はサポートしないようにするには、Mode"HDLCodeGeneration" に設定します。hdltrue に設定する必要はありません。

依存関係

  • HDL コードを生成するには、HDL Coder ライセンスが必要です。

  • この引数は、Mode"CodeGeneration" に設定した場合のみ出力に影響します。

データ型: logical

保護モデルのコールバックを指定するためのオプション。Simulink.ProtectedModel.Callback オブジェクトの cell 配列として指定します。

例: Simulink.ModelReference.modifyProtectedModel(mdl,Callbacks={pmcallback_sim,pmcallback_cg})

データ型: cell

保護オプション

すべて展開する

論理値として指定されている生成されたコードを難読化するためのオプションです。

例: Simulink.ModelReference.modifyProtectedModel(mdl,Mode="CodeGeneration",ObfuscateCode=true)

依存関係

このオプションは、Mode"CodeGeneration" に設定した場合のみ適用されます。難読化は HDL コード生成ではサポートされていません。

データ型: logical

保護されたコードの可視性。次のいずれかの値として指定します。

  • "CompiledBinaries" — 生成されたコードのコンパイル済みバイナリのみを含めます。バイナリ ファイルおよびヘッダーが表示されます。

  • "MinimalCode" — 選択したビルド設定でコードをビルドするために必要な最小限のヘッダー ファイルのみを含めます。ビルド フォルダーのコードが表示されます。受信者は、保護モデルのレポート内のコードを検証し、目的に応じてそれを再コンパイルできます。

  • "AllReferencedHeaders" — インクルード パスにあるヘッダー ファイルを含めます。ビルド フォルダーのコードが表示されます。また、このコードによって参照されるヘッダーも表示されます。

この引数は、保護モデル用に生成されたコードのどの部分がユーザーに表示されるかを決定します。

例: Simulink.ModelReference.modifyProtectedModel(mdl,Mode="CodeGeneration",OutputFormat="AllReferencedHeaders")

依存関係

この引数は、Mode"Simulation""Accelerator"、または "CodeGeneration" に設定した場合のみ出力に影響します。

保護モデルを暗号化するためのオプション。ブール値として指定します。

このオプションは、保護に際してパスワードを指定した場合に、または以下の関数を使用することにより適用されます。

指定したパスワードを保護モデルに適用するには、Encrypttrue に設定します。

例: Simulink.ModelReference.modifyProtectedModel(mdl,Encrypt=true)

データ型: logical

シミュレーション用の暗号化パスワードを変更するためのオプション。2 つの文字ベクトルの cell 配列として指定します。最初のベクトルは古いパスワードです。2 番目のベクトルは新しいパスワードです。

例: Simulink.ModelReference.modifyProtectedModel(mdl,Encrypt=true,ChangeSimulationPassword={'old_password','new_password'})

依存関係

この引数を有効にするには、Encrypttrue に設定します。

データ型: cell

読み取り専用ビュー用の暗号化パスワードを変更するためのオプション。2 つの文字ベクトルの cell 配列として指定します。最初のベクトルは古いパスワードです。2 番目のベクトルは新しいパスワードです。

例: Simulink.ModelReference.modifyProtectedModel(mdl,Encrypt=true,ChangeViewPassword={'old_password','new_password'})

依存関係

この引数を有効にするには、Encrypttrue に設定します。

データ型: cell

コード生成用の暗号化パスワードを変更するためのオプション。2 つの文字ベクトルの cell 配列として指定します。最初のベクトルは古いパスワードです。2 番目のベクトルは新しいパスワードです。

例: Simulink.ModelReference.modifyProtectedModel(mdl,Encrypt=true,ChangeCodeGenerationPassword={'old_password','new_password'})

依存関係

この引数を有効にするには、Encrypttrue に設定します。

データ型: cell

関数ハンドルとして指定された保護モデル ファイル用に後処理関数を追加するオプションです。

この関数は Simulink.ModelReference.ProtectedModel.HookInfo オブジェクトを入力変数として受け入れます。このオブジェクトはソース コード ファイルおよび保護モデルの作成中に生成されるその他のファイルについて情報を提供します。オブジェクトは、変更してはいけないエクスポート済みシンボルについても情報を提供します。保護モデルをパッケージ化する前に、ソフトウェアは後処理関数を呼び出します。

最上位モデル インターフェイスをもつ保護モデルの場合、Simulink.ModelReference.ProtectedModel.HookInfo オブジェクトはエクスポート済みシンボルについての情報を提供できません。

例: Simulink.ModelReference.modifyProtectedModel(mdl,Mode="CodeGeneration",CustomPostProcessingHook=@(protectedMdlInf)myHook(protectedMdlInf))

依存関係

この引数を有効にするには、Mode"CodeGeneration" に設定します。

出力引数

すべて折りたたむ

ハーネス モデルのハンドル。double として返されます。モデルの保護でハーネス モデルが作成されない場合、またはハーネス モデルがプロジェクト アーカイブにパッケージ化される場合、戻り値は 0 になります。

モデルの保護の後に開いているハーネス モデルを作成するには、Harnesstrue に、Projectfalse (既定値) に設定します。

保護モデルで使用されるベース ワークスペース変数の名前。cell 配列として返されます。

cell 配列には以下が含まれます。

  • モデル インターフェイスで使用されるパラメーター

  • バス オブジェクト、列挙型、値の型など、データ型の一部を指定するパラメーター

  • データ ストア メモリで使用されるパラメーター

cell 配列には保護モデルが使用しない変数も含めることができます。

バージョン履歴

R2014b で導入

すべて展開する