Main Content

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

Simulink.ModelReference.modifyProtectedModel

既存の保護モデルの変更

説明

Simulink.ModelReference.modifyProtectedModel(model) は指定された model から作成された既存の保護モデルのためのオプションを変更します。Name,Value ペア引数が指定されていない場合、変更された保護モデルは既定値で更新され、シミュレーションのみをサポートします。

Simulink.ModelReference.modifyProtectedModel(model,Name,Value) は、1 つ以上の Name,Value 引数のペアによって指定された追加オプションを使用します。これらのオプションは関数 Simulink.ModelReference.protect によって提供されるオプションと同じです。ただし、これらのオプションには読み取り専用ビュー、シミュレーションおよびコード生成用の暗号化パスワードを変更するための追加のオプションがあります。保護モデルに機能を追加するか、暗号化パスワードを変更する場合、保護されていないモデルを利用できなければなりません。MATLAB® パス上でモデルの検索が行われます。モデルが見つからない場合、エラーが報告されます。

[harnessHandle] = Simulink.ModelReference.modifyProtectedModel(model,'Harness',true) は、保護モデルのハーネス モデルを作成します。ハーネス モデルのハンドルを harnessHandle で返します。

[~ ,neededVars] = Simulink.ModelReference.modifyProtectedModel(model) は、保護モデルで使用されるベース ワークスペース変数の名前を含む cell 配列を返します。

すべて折りたたむ

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

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

openExample('sldemo_mdlref_counter');
Simulink.ModelReference.ProtectedModel.setPasswordForModify(...
'sldemo_mdlref_counter','password');

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

Simulink.ModelReference.protect('sldemo_mdlref_counter','Mode',...
'CodeGeneration','Modifiable',true,'Report',true);

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

Simulink.ModelReference.ProtectedModel.setPasswordForModify(...
'sldemo_mdlref_counter','password');

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

Simulink.ModelReference.modifyProtectedModel(...
'sldemo_mdlref_counter');

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

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

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

openExample('sldemo_mdlref_counter');
Simulink.ModelReference.ProtectedModel.setPasswordForModify(...
'sldemo_mdlref_counter','password');

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

Simulink.ModelReference.protect('sldemo_mdlref_counter','Mode',...
'CodeGeneration','Webview',true,'Modifiable',true,'Report',true);

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

Simulink.ModelReference.ProtectedModel.setPasswordForModify(...
'sldemo_mdlref_counter','password');

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

Simulink.ModelReference.modifyProtectedModel(...
'sldemo_mdlref_counter', 'Mode', 'CodeGeneration','Report',true);

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

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

openExample('sldemo_mdlref_counter');
Simulink.ModelReference.ProtectedModel.setPasswordForModify(...
'sldemo_mdlref_counter','password');

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

Simulink.ModelReference.ProtectedModel.setPasswordForSimulation(...
'sldemo_mdlref_counter','cgpassword');

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

Simulink.ModelReference.protect('sldemo_mdlref_counter','Mode',...
'CodeGeneration','Encrypt',true,'Modifiable',true,'Report',true);

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

Simulink.ModelReference.ProtectedModel.setPasswordForModify(...
'sldemo_mdlref_counter','password');

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

Simulink.ModelReference.modifyProtectedModel(...
'sldemo_mdlref_counter','Mode','CodeGeneration','Encrypt',true,...
'Report',true,'ChangeSimulationPassword',...
{'cgpassword','new_password'});

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

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

openExample('sldemo_mdlref_counter');
Simulink.ModelReference.ProtectedModel.setPasswordForModify(...
'sldemo_mdlref_counter','password');

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

Simulink.ModelReference.protect('sldemo_mdlref_counter','Mode',...
'CodeGeneration','Modifiable',true,'Report',true);

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

Simulink.ModelReference.ProtectedModel.setPasswordForModify(...
'sldemo_mdlref_counter','password');

保護モデルのハーネス モデルを追加します。

[harnessHandle] = Simulink.ModelReference.modifyProtectedModel(...
'sldemo_mdlref_counter','Mode','CodeGeneration','Report',true,...
'Harness',true);

入力引数

すべて折りたたむ

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

データ型: char | string

名前と値の引数

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

R2021a より前では、コンマを使用して各名前と値を区切り、Name を引用符で囲みます。

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

ファイル オプション

すべて折りたたむ

R2023b 以降

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

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

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

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

例: 'Project',true

ヒント

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

依存関係

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

データ型: logical

R2023b 以降

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

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

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

例: 'ProjectName','myname'

依存関係

ProjectName を有効にするには、Projecttrue に設定します。

データ型: char | string

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

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

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

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

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

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

例: 'Harness',true

依存関係

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

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

データ型: logical

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

例: 'Path','C:\Work'

依存関係

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

データ型: char | string

機能オプション

すべて折りたたむ

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

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

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

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

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

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

例: 'Report',true

依存関係

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

データ型: logical

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

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

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

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

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

  • 現在のフォルダー ブラウザー:保護モデル ファイル (.slxp) をダブルクリックします。

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

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

例: '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 ライセンスが必要です。

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

例: 'Mode','Simulation'

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

  • モデル参照 — モデル参照 Simulink Coder ターゲットをビルドします。このコードは、モデルの階層構造の一部として参照モデルから生成されます。コード生成では次のコマンドを使用します。

    slbuild('model','ModelReferenceCoderTarget')
  • 最上位モデル — 現在のモデル コンフィギュレーション設定を使用して、指定したモデルのスタンドアロンの Simulink Coder バイナリ実行可能ファイルをビルドします。このインターフェイスでは、参照モデルのモデル参照コーダー ターゲットもビルドします。コードはスタンドアロンのコード インターフェイスを使用して最上位モデルから生成されます。コード生成では次のコマンドを使用します。

    slbuild('model','StandaloneCoderTarget')

指定する値によって、ソフトウェアインザループ (SIL) シミュレーションとプロセッサインザループ (PIL) シミュレーションが保護モデルの生成コードを展開する方法が決まります。

  • モデル参照 — ソフトウェアは、参照モデルを使用するより大きなアプリケーションの一部として、生成コードを展開します。

  • 最上位モデル — ソフトウェアは、スタンドアロン アプリケーションとして、生成コードを展開します。

SIL/PIL シミュレーションでは、保護モデルのコードを検証できます。

保護モデルを参照するモデルのコード生成をサポートするために、[モデル参照] を指定します。

コード インターフェイスにかかわらず、保護モデルのシミュレーションをアクセラレータ モードで実行できます。

例: 'CodeInterface','Top model'

依存関係

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

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

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

例: 'hdl',true

ヒント

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

依存関係

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

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

データ型: logical

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

例: 'Callbacks',{pmcallback_sim, pmcallback_cg}

データ型: cell

保護オプション

すべて折りたたむ

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

例: 'ObfuscateCode',true

依存関係

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

データ型: logical

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

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

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

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

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

例: 'OutputFormat','AllReferencedHeaders'

依存関係

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

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

例: 'Encrypt',true

データ型: logical

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

例: 'ChangeSimulationPassword',{'old_password','new_password'}

データ型: cell

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

例: 'ChangeViewPassword',{'old_password','new_password'}

データ型: cell

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

例: 'ChangeCodeGenerationPassword',{'old_password','new_password'}

データ型: cell

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

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

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

例: 'CustomPostProcessingHook',@(protectedMdlInf)myHook(protectedMdlInf)

出力引数

すべて折りたたむ

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

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

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

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

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

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

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

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

バージョン履歴

R2014b で導入

すべて展開する