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 ブロックのパス名が含まれます。

名前と値の引数

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

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

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

一般

すべて折りたたむ

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

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

論理値として指定されているレポートを生成するためのオプションです。

レポートを表示するには、保護モデル バッジ アイコンを右クリックして [レポートの表示] をクリックします。または、report オプションを使用して、関数 Simulink.ProtectedModel.open を呼び出します。

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

例: 'Report',true

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

このオプションには HDL Coder™ ライセンスが必要です。このオプションを有効にするときは、[モード] を指定していることを確認します。CodeGeneration に設定された [モード] と共にこのオプションを true に設定し、保護モデルの C コードと HDL コードの両方のサポートを有効にできます。

シミュレーションと HDL コード生成のサポートのみを有効にし、C コード生成をサポートしない場合は、[モード]HDLCodeGeneration に設定します。[hdl] オプションを true に設定する必要はありません。

例: 'hdl',true

論理値として指定されているハーネス モデルを作成するオプションです。

例: 'Harness',true

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

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

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

機能

すべて折りたたむ

モデル保護モード。以下のいずれかの値を指定します。

  • 'Normal': 最上位モデルが 'Normal' モードで実行されている場合、保護モデルは最上位モデルの子として実行されます。

  • 'Accelerator': 最上位モデルは、'Normal''Accelerator' または 'Rapid Accelerator' モードで実行することができます。

  • 'CodeGeneration': 最上位モデルは、'Normal''Accelerator' または 'Rapid Accelerator' モードで実行し、コード生成をサポートすることができます。

  • 'HDLCodeGeneration':最上位モデルは、'Normal''Accelerator' または 'Rapid Accelerator' モードで実行し、HDL コード生成をサポートすることができます。

  • 'ViewOnly': コードのシミュレーションとコード生成の機能モードをオフにします。読み取り専用表示モードをオンにします。

例: 'Mode','Accelerator'

メモ

この引数は、Mode'Accelerator' または 'CodeGeneration として指定した場合のみ出力に影響します。Mode'Normal' として指定した場合、MEX ファイルのみが出力パッケージに含まれます。

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

  • 'CompiledBinaries': バイナリ ファイルおよびヘッダーのみが表示されます。

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

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

例: 'OutputFormat','AllReferencedHeaders'

論理値として指定されている生成されたコードを難読化するためのオプションです。保護モデルのコード生成が有効になっているときのみ適用可能です。難読化は HDL コード生成ではサポートされていません。

例: 'ObfuscateCode',true

論理値として指定される、保護モデルの読み取り専用表示を含めるオプション。

保護モデルの Web ビューを開くには、次のいずれかの方法を使用します。

  • 保護モデル バッジ アイコンを右クリックして、[Web ビューの表示] を選択する。

  • 関数 Simulink.ProtectedModel.open を使用する。たとえば、保護モデル sldemo_mdlref_counter の Web ビューを表示するには、次のように呼び出します。

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

  • 現在のフォルダー ブラウザーで .slxp 保護モデル ファイルをダブルクリックする。

  • 保護モデルの [ブロック パラメーター] ダイアログ ボックスで、[モデルを開く] をクリックする。

例: 'Webview',true

暗号化

すべて折りたたむ

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

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

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

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

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

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

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

例: 'Encrypt',true

出力引数

すべて折りたたむ

ハーネス モデルのハンドルは、Harness の値によって、double または 0 として返されます。

Harnesstrue の場合、この値はハーネス モデルのハンドルとなります。それ以外の場合、値は 0 となります。

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

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

バージョン履歴

R2014b で導入