主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

s函数ターゲットを使用したシミュレーションの高速化,コードの再利用または知的所有権の保護

s函数は,コードジェネレーターがコードを生成できるシステムターゲットファイルの重要なクラスです。サブシステムをs函数内にカプセル化することにより,実行効率を高め,コードの再利用を容易にできます。

以下の節では S函数ターゲットのプロパティについて説明し、その生成方法を示します。S函数の構造の詳細については、C / c++函数の基礎を参照してください。

s函数ターゲットについて

S函数ターゲットを使用して、S函数コンポーネントをビルドし、それを別のモデル内の S函数ブロックとして使用することができます。以下のセクションでは、S函数ターゲットの配布の注意事項について説明します。

s函数ターゲットによって使用されるTLC変数CodeFormatの値を“S-函数”に設定すると,金宝app仿真软件®C墨西哥人s函数アプリケーションプログラミングインターフェイス(API)に対応するコードが生成されます。この形式のアプリケーションには以下のものが含まれます。

  • モデルをコンポーネントに変換。モデルm1用の S函数ブロックを生成できます。次に、生成された S函数ブロックを他のモデル平方米に配置できます。平方米のコードの再生成にはm1のコードの再生成は必要ありません。

  • サブシステムをコンポーネントに変換。サブシステムを別のモデルに抽出し,そのモデルからs函数ブロックを生成することにより,サブシステムから再利用可能なコンポーネントを作成できます。この例の手順については,サブシステムからs函数ブロックを生成を参照してください。

  • シミュレーションの高速化。多くの場合,モデルから生成されたs函数は元のモデルよりも実行が効率的になります。

  • コードの再利用。1.つのモデルの複数のインスタンスを、インスタンスごとにコードを複製することなく、他のモデルに組み込むことができます。各インスタンスは自身のもつ固有のデータを維持し続けます。

生成されたs函数ブロックを他のモデルに配置し,そのモデルから他のs函数を生成することができます。この方法は入れ子にされたs函数のレベルで可能です。入れ子に関する制限については,s函数の入れ子構造を参照してください。

メモ

モデル化されたソフトウェアコンポーネント向けのコードを生成している場合は,サブシステムからs函数ブロックを生成するのではなく,参照モデルを使用します。

メモ

s函数ターゲットを使用して,内部ロジックを検査や修正から保護しながら再利用のためにアプリケーションコンポーネントを配布できますが,配布されるコンポーネントの知的財産を保護するための推奨ソリューションには次のものがあります。

s函数の配布に必要なファイル

シミュレーションとコード生成用に生成されたs函数ブロックを配布するには,さまざまなファイルが必要です。

生成された S函数ブロックを配布して "シミュレーション用" の他のモデルにインクルードするには、その S函数ブロックが生成された時点で作業フォルダーに生成されたバイナリ 墨西哥ファイル オブジェクトだけを提供する必要があります。必要なファイルは以下のとおりです。

  • 潜艇_sf。mexext

ここで,潜艇はサブシステム名で,mexextはプラットフォームに依存する 墨西哥ファイルの拡張子です (mexextを参照)。例:SourceSubsys\u sf.mexw64

生成されたs函数ブロックを配布して”コード生成用“に他のモデルにインクルードするには,そのs函数ブロックが生成された時点で作業フォルダーに生成されたすべてのファイルを提供します。必要なファイルは以下のとおりです。

  • 潜艇_sf.cまたは. cpp,ここで潜艇はサブシステム名(たとえば,SourceSubsys_sf.c

  • 潜艇_sf.h

  • 潜艇_sf。mexext,ここでmexextはプラットフォームに依存する墨西哥人ファイルの拡張子(mexextを参照)

  • サブフォルダー潜艇_sfcn_rtwとその内容

生成されたs函数コードは,関数がビルドされたホストシステムに一致する[コンフィギュレーションパラメーター][ハードウェア実行]パラメーター値を使用します。コード生成用のモデルで S函数を使用する場合、モデルのこれらのパラメーター値が S函数のパラメーター値と一致することを確認してください。

生成されたs函数でのサンプル時間の伝播

一定の基準が満たされている場合,生成されたs函数ブロックはそのモデルからそのサンプル時間を継承することができます。模型ブロックと生成されたs函数ブロックの間でのサンプル時間の伝播を制御する条件は,参照モデルのサンプル時間サンプル時間継承ルールを指定するs函数に説明されています。

サンプル時間の継承の基準を満たすs函数ブロックを生成するには,s函数ブロックを生成するモデルのソルバーを制限しなければなりません。モデルコンフィギュレーションパラメーター[タイプ](固定ステップ]に,(周期的なサンプル時間の制約][サンプル時間に依存しない]に設定します。モデルがサンプル時間を継承できない場合、この設定はモデルのビルド時に 金宝app模拟ソフトウェアがエラー メッセージを出す原因になります。このオプションの詳細については、周期的なサンプル時間の制約を参照してください。

ソルバータイプの選択

以下の表に,最上位モデルソルバータイプで取りうる組み合わせを示します。これらのタイプは,生成されたs函数用の離散サンプル時間または連続サンプル時間とソルバータイプがモデルにあるかどうかに関連します。

最上位モデルソルバーオプションとサンプル時間

モデルコンフィギュレーションパラメーター:最上位モデルコンフィギュレーション
サンプル時間 ソルバーオプション,タイプ:可変ステップ ソルバー オプション、タイプ: 固定ステップ
離散 生成された S函数には可変ステップ ソルバーが必要 生成されたs函数は可変ステップソルバーまたは固定ステップソルバーをもつことが可能
連続 生成された S函数には可変ステップ ソルバーが必要 生成された S函数には固定ステップ ソルバーが必要

サブシステムから生成される S函数には、ブロックにハードコードされるパラメーターがあります。模拟では、シミュ金宝appレーションの実行時ではなく、ブロックの生成時に、サンプル時間などのパラメーターが計算されます。生成された S函数ブロックがデスティネーション モデルで予期したように機能するかどうかを確認することが重要です。

サブシステムからs函数ブロックを生成

この節では,モデルからサブシステムを抽出し,それを使用して再利用可能なs函数コンポーネントを生成する方法を説明します。

次の図に,信号をサブシステムに入力する簡単なモデル,SourceModelを示します。その次の図はサブシステム,SourceSubsysを示します。異なった幅とサンプル時間をもつ信号は,以下のもので構成されています。

  • サンプル時間が1の一步ブロック

  • 0.5サンプル時間がの正弦波ブロック

  • 値がベクトル[2 3]の常数ブロック

    SourceModel

    SourceSubsys

目的はモデルからSourceSubsysを抽出し、それを元に S函数ブロックを作成することで、S函数ターゲットを使用します。S函数ブロックはそれを作成する元になったサブシステムと同じ動作をしなければなりません。

このモデルでは、SourceSubsysは入力信号からサンプル時間と信号の幅を継承します。ただし、S函数ターゲットを使用してモデルから生成された S函数ブロックは、配線で接続されたすべての信号属性 (信号の幅やサンプル時間など) をもちます。(このルールに対する唯一の例外はサンプル時間に関するもので、生成されたs函数でのサンプル時間の伝播に説明されています)。

この例では,s函数ブロックに,SourceModelに存在するSourceSubsysのプロパティをもたせることにします。このため,サブシステムを別のs函数コンポーネントとして作成する前に,入力端子のサンプル時間と幅を明示的に設定しなければなりません。また,s函数コンポーネントのソルバーパラメーターは元のモデルのパラメーターと同じでなければなりません。生成されたs函数コンポーネントは元のサブシステムと同様に動作します(詳細については,ソルバータイプの選択を参照してください)。

s函数コンポーネントとしてSourceSubsysを作成するには,次のようにします。

  1. 新しいモデルを作成し,空のウィンドウにSourceSubsysブロックをコピーして貼り付けます。

  2. SourceSubsys内で、入力端子の信号の幅とサンプル時間が元のモデルの信号のものと一致するように設定します。输入端口1の过滤器の幅は1でサンプル時間は1,尺寸2のXferfcnの幅は1でサンプル時間は0.5です。尺寸3の抵消の幅は2でサンプル時間は0.5です。

  3. 生成されるs函数ブロックには3つの入力端子と1つの出力端子があります。次の図に示すように,入力端子と出力端子をSourceSubsysに接続します。

    これらの端子に信号の幅とサンプル時間が伝播されます。

  4. ソルバーのタイプ、モード、他のソルバー パラメーターをソース モデルと同じ値に設定します。モデル エクスプローラーを使用すると、この設定は簡単にできます。

  5. モデルコンフィギュレーションパラメーター[システムターゲットファイル](rtwsfcn.tlc)に設定します。

  6. [S-函数ターゲット]ペインを選択します。次の図に示したように、(新規モデルの作成)が選択されていることを確認します。

    このオプションを選択すると,ビルドプロセスはs函数コンポーネントの作成後に新しいモデルを作成します。この新しいモデルにはs函数ブロックが含まれ,s函数コンポーネントにリンクされます。

    [適用]をクリックします。

  7. サブシステムを含む新しいモデルを,SourceSubsysのように保存します。

  8. モデルを作成します。

  9. ビルドプロセスは作業フォルダー内にs函数コンポーネントを作成します。作成の後,新しいモデルウィンドウが表示されます。

    生成されたモデルを,オプションでSourceSubsys_Sfunctionのように保存することができます。

  10. これでこの新しいモデルから生成されたs函数ブロックをコピーし,それを他のモデルやライブラリに使用することができます。

    メモ

    シミュレーション用やコード生成用にs函数ブロックを配布するのに必要なファイルのリストは,s函数の配布に必要なファイルを参照してください。

    次の図は元のモデルに接続されたs函数ブロックを示します。同じ入力信号を与えれば,このs函数ブロックは元のサブシステムと同じように動作します。

    SourceModelのように設定され生成されたs函数

s函数ブロックの実行速度は一般に,元のモデルよりも速くなります。この速度の差はモデルが大規模で複雑になるほど顕著になります。生成された系统函数を使用することにより、モデル化プロセスの効率を高めることができます。

生成された S函数での調整可能なパラメーター

2.つの方法で、生成された S函数で調整可能なパラメーターを使用することができます。

ソースモデルで(汽车)ストレージクラスを使用して調整可能と宣言したブロックパラメーターは,生成されたs函数で調整可能なパラメーターになります。これらのパラメーターは他のシステムターゲットファイルから生成されたコードの場合とは違い,生成された模型_P(正式にはrtP)パラメーターデータ構造体の一部にはなりません。代わりに,mxGetPrmxGetDataのような墨西哥人API呼び出しを使用して,生成されたコードはこれらのパラメーターにアクセスします。ユーザーのコードも同じ方法でこれらのパラメーターにアクセスしなければなりません。

墨西哥石油公司APIの呼び出しの詳細については、关于C MEX S-Functionsおよびアプリケーションで使用するMATLAB APIの選択を参照してください。

s函数ターゲットを使用して作成されたs函数ブロックは自動的にマスクされます。マスクは編集フィールドで調整可能なパラメーターごとに表示されます。既定の設定では,次の例のように,編集フィールドはパラメーターを変数名で表示します。

モデルコンフィギュレーションパラメーター[調整可能なパラメーターの値を使用]を選択することで,変数名ではなくパラメーターの値を表示するよう選択できます。

このパラメーターを選択すると,次の例のように,編集フィールドに(コード生成時の)変数の値が表示されます。

システムターゲットファイル

s函数ターゲットで使用するために,rtwsfcn.tlcシステムターゲットファイルが提供されています。

チェックサムとs函数ターゲット

コードジェネレーターはモデル用のチェックサムを作成し,そのビルドプロセスで,コードの再利用機能,モデル参照機能およびエクスターナルモード機能用にチェックサムを使用します。

コード ジェネレーターは次の方法でモデルのチェックサムを計算します。

  1. モデルでサブシステムごとにチェックサムを計算します。サブシステムのチェックサムは,サブシステムのブロックのプロパティ(データ型,実数/複素数,サンプル時間,端子の次元など)の組み合わせになります。

  2. サブシステムのチェックサムと他のモデル レベルの情報を組み合わせます。

S函数は関数ssSetChecksumValを呼び出してチェックサムに付加情報を追加できます。この付加情報はブロックプロパティ解析中に取得されません。系统函数ターゲットの場合、チェックサムに追加される値は S-Function を生成する元のモデルまたはサブシステムのチェックサムです。

コード ジェネレーターはサブシステムとモデルのチェックサムを以下の用途に使用します。

  • コードの再利用——モデル内の2つのサブシステムのチェックサムが同じ場合,コードジェネレーターは1つの関数用だけのコードを生成します。

  • モデル参照——現在のモデルのチェックサムがモデル作成時のチェックサムと同じ場合,ビルドプロセスは参照モデルをリビルドしません。

  • エクスターナルモード——現在のモデルのチェックサムがターゲットハードウェアで実行中のコードのチェックサムと一致しない場合,ビルドプロセスでエラーが発生します。

生成されたs函数の互換性

モデルから墨西哥人s函数をビルドすると,コードジェネレーターはレベル2のインラインでないs函数をビルドします。生成コードとバイナリ墨西哥人ファイル(*.mexw64など) のリリースをまたがる使用には、次のような制限があります。

  • 以前のMATLABリリースソフトウェアからのs函数ターゲット生成コードは,新しいリリースと互換性がありません。以前のリリースの生成コードを新しいMATLABリリースソフトウェアで再コンパイルしないでください。同じMATLABリリースソフトウェアを使用してs函数ターゲットのコードを生成し,そのコードを墨西哥人ファイルにコンパイルしてください。

  • 以前のMATLABリリースソフトウェアから生成されたバイナリs函数墨西哥人ファイルは,手書きのs函数と同じ互換性注意事項の下で同じリリースまたはより新しいリリースと共に使用できます。詳細については,S函数兼容性を参照してください。

  • コード ジェネレーターは、生成された S函数を含むモデルからコードを生成したり実行可能ファイルをビルドしたりできます。このサポートについては、モデルをビルドしたのと同じ MATLABリリース ソフトウェアで S函数をビルドする必要があります。以前の MATLABリリース ソフトウェアで生成された S-函数ファイルをモデルに組み込み、より新しいリリースでモデルをビルドすることはできません。

S函数ターゲットの制限

输入ブロックおよび外埠ブロックの連続サンプル時間での構成

s函数の生成を右クリックでのビルドで行う方法では,输入ブロックおよび外埠ブロックで連続サンプル時間が保持されません。サンプル時間が保持されないため、生成された S-Function ブロックのシミュレーションが影響を受ける可能性があります。

式での調整可能な変数の使用

式で調整可能な変数を使用する場合,一定の制限があります。コードジェネレーターでコードの生成中にサポートされない式が検出されると,警告が表示されて,等価の数値がコードに生成されます。制限の一覧については,調整可能な式の制限を参照してください。

パラメーターの調整

系统函数ブロックは、以下と共に使用する調整可能なパラメーターの調整をサポートしていません。

  • 複素数値

  • 定数に変換される値またはデータ型(モデルコンフィギュレーションパラメーター[最適化](既定のパラメーター動作)[インライン]に設定)。

  • 組み込まれていないデータ型

  • 同等の組み込み型がない浮動小数点データ型。

調整可能なパラメーターを選択する場合 ([子系统に対する S函数を生成] ダイアログ ボックスから)、以下のことが行われます。

  • ビルドプロセス中に警告を生成

  • 生成された系统函数ブロックマスクはこれらのパラメーターを表示しない

ランタイムパラメーターとs函数の互換性診断

モデルコンフィギュレーションパラメーター[アップグレードの必要な功能)[警告]または[エラー]に設定すると、コード ジェネレーターは[S-函数を生成]機能を使用して作成した S函数に対するアップグレードを指示します。これは S函数システム ターゲット ファイルがランタイム パラメーターを登録していないためです。ランタイム パラメーターはインライン化された S函数だけでサポートされており、生成された S函数はインライン化される (たとえば、他のインラインでない S函数を呼び出したり含んだりすることができる) ことを回避する機能をサポートします。

パラメーター[アップグレードの必要な功能)[なし]に設定することにより,この制限を回避することができます。

后藤ブロックと 从…起ブロック

s函数システムターゲットファイルを使用する場合,コードジェネレーターはI / Oの対象をルートモデルの尺寸ブロックと外港ブロック(またはs函数ターゲットを生成する元になった子系统ブロックの尺寸ブロックと外港ブロック)に制限します。コードジェネレーターは,后藤ブロックまたはブロックのコードを生成しません。

この制限を回避するには,后藤从ブブロックとロックを使用してルートモデルとサブシステムの間でデータを渡すのではなく,必要な尺寸ブロックと外港ブロックをもつモデルとサブシステムを作成します。そして,生成されたs函数を組み込んだモデルに,后藤ブロックと 从…起ブロックを追加します。

制限を回避しない例

  • 从…起ブロックとサブシステムをもつルート モデル、Subsystem1

  • グローバル可視性をもち、入力をルート モデルの 从…起ブロックに渡す后藤ブロックをもつSubsystem1

  • s函数ターゲットで生成されたs函数で置き換えられるSubsystem1——生成されたs函数は后藤ブロックを実装していないため、モデルを実行すると警告が出る

制限を回避した例

Subsystem1后藤ブロックを外港ブロックで置き換えます。生成された系统函数をルート モデルに接続すると、その出力は To Workspace ブロックに直接接続されます。

s函数の作成と更新

s函数システムターゲットファイルを使用するs函数の作成と更新については,次の制限があります。

  • s函数システムターゲットファイルを使用する模型ブロックを含むモデルを作成することはできません。これは,サブシステムに模型ブロックが含まれている場合,コンテキストメニューの右クリックを使用してサブシステムを作成できないという意味でもあります。これは系统函数ターゲットを使用して生成された S-Function だけの制限で、ERT S-Function では制限はありません。

  • 以下を使用してモデルをビルドできます。

    • ツールチェーン (ツールチェーンが 墨西哥ファイルの生成をサポートする場合のみ)。

    • テンプレートmakefile(テンプレートmakefileが,墨西哥人ファイルの生成をサポートするツールチェーンに関連付けられている場合のみ)。

  • s函数ブロックを生成したモデルを変更する場合,ビルドプロセスは生成されたs函数ブロックを含むモデルを自動的にリビルドしません。これは模型ブロックで参照されたモデルが (モデル参照の[リビルド]コンフィギュレーション設定により) 変更される場合に自動的にリビルドされることとは対照的です。

  • 対応するTLCファイルのない手書きのs函数は例外のないコードを含まなければなりません。例外のないコードの詳細については,除了免费代码を参照してください。

サポートされていないブロック

S函数形式は以下の組み込みブロックをサポートしません。

  • 解释MATLAB函数ブロック

  • 次のいずれかを含む系统函数ブロック

    • MATLAB®言語s函数(Cコード生成用のTLCファイルがない場合)

    • Fortran S函数(Cコード生成用の 薄层色谱ファイルがない場合)

    • MATLAB環境を呼び出すC / c++墨西哥人功能

  • 范围ブロック

  • 到工作空间ブロック

s函数形式は,embeddedtargetslibブロックライブラリからのブロックをサポートしません。

コード生成でサポートされないSimState

C-MEXとレベル2のMATLAB言語s函数内でSimStateを使用し,シミュレーション状態を保存し復旧することができます。与ModelOperatingPoint的s -函数遵从性を参照してください。ただし,SimStateはs函数システムターゲットファイルを含むコード生成はサポートしません。

サポートされないTLCフック関数によるコードパフォーマンスのプロファイリング

コードの実行速度のプロファイリングに説明されている目标语言编译器(TLC)フック関数インターフェイスを使用した,生成されたコードのパフォーマンスのプロファイリングはs函数ターゲットではサポートされません。

メモ

嵌入式编码器®のライセンスがある場合,ソフトウェアインザループ(SIL)およびプロセッサインザループ(公益诉讼)のシミュレーションに基づくよりシンプルな代替アプローチについては,コード実行のプロファイル(嵌入式编码器)を参照してください。

s函数の入れ子構造

生成された S函数ブロックをモデルやサブシステム内で入れ子構造にして、それから他の S函数を生成する場合には次の制限があります。

  • ソフトウェアは入れ子構造のs函数について非バーチャルなバスの入力信号と出力信号をサポートしません。

  • s函数と同じ名前をもつモデルやサブシステム内で(数レベル離れている場合もあります)功能を入れ子にするのは避けてください。このような状況では,s函数は再帰的に呼び出される可能性があります。ソフトウェアは現状ではこのようなs函数のループを検出しないため,MATLABセッションの中止やハングアップにつながる結果になります。このような事態を防ぐには,MATLABのパス上の既存の墨西哥人ファイル名を複製しないようにするために,s函数ターゲットとして生成される予定のサブシステムやモデルに一意な名前を付けます。

ユーザー定義のデータ型

s函数システムターゲットファイルは,金宝appSimulink.AliasType金宝app仿真软件。公共汽车および金宝appSimulink.NumericTypeオブジェクトに基づくものも含む,ユーザー定義のデータ型で指定される头饰プロパティをサポートしません。モデルでユーザー定義されたデータ型が头饰プロパティを使用して関連するヘッダーファイルを指定する場合,s函数システムターゲットファイルを使用するコード生成はその値を無視し,対応するインクルード文を生成しません。

s函数ターゲットの右クリックによる生成

函数调用子系统ブロックを右クリックしてs函数ターゲットを生成すると,元のサブシステムと生成されたs函数の間の整合性を確保できないことがあります。不整合が発生するのは,函数调用子系统ブロック内の触发端口ブロックの[イネーブル時の状態]パラメーターが[継承]に設定されている場合です。[イネーブル時の状態]パラメーターは,[リセット]または[保持]に設定しなければなりません。それ以外の設定では仿金宝app真软件でエラーが発生します。

バスI / O信号

s函数ターゲットを使用して生成されたs函数にバス入力信号またはバス出力信号がある場合には,生成されたバスデータ構造体にはバス要素に関するフィールドと,シミュレーション中に使用される仿真软件の表現を整合させるためのパディ金宝appングが含まれている可能性があります。ただし,モデルにs函数を挿入して,grt.tlcのようなモデル ターゲットを使用するコードを生成する場合、モデル ビルドのために生成されたバス構造体の配置が S函数に対して生成されたパディングと一致せずに、コード実行の数値結果に影響を与える場合があります。モデル シミュレーションとモデル コードの実行の間で構造体の配置を整合させるには、それぞれの金宝app仿真软件。公共汽车オブジェクトに対して,头饰プロパティを変更して、パディングされていないバス構造体ヘッダー ファイルを削除します。その結果、S函数のために生成されたバスの 类型定义がモデルのコードで再利用されます。

関数呼び出しのI / O信号を使用したサブシステム

s函数ターゲットでは,関数呼び出しのトリガー入力または関数呼び出し出力をもつサブシステムからの系统函数ブロックの作成をサポートしません。

函数调用子系统のモデル化パターン

モデルに次のような函数调用子系统のモデル化パターンが含まれている場合,信号转换ブロックを挿入しなければなりません。

函数调用子系统が外埠ブロックに直接接続され、サブシステムを外埠ブロックに接続する信号線が関数更新をもつブロック (各メジャー タイム ステップで更新される单位延迟内存などのブロック)に分岐しています。分岐はサブシステムの内側にある場合も外側にある場合もあります。このような函数调用子系统を含むモデルでは,次のいずれかの位置に信号转换ブロックを挿入しなければなりません。

  1. サブシステムブロックと分岐の間

  2. 分岐とルートの外埠ブロックの間

  3. 分岐と関数更新をもつブロックの間

サブシステムのs函数ブロックを生成する前に,信号转换ブロックのパラメーターを次のように設定します。

  • [出力]を [信号のコピー] に設定

  • ['ブロック削減' の最適化からこのブロックを排除する]を選択

この回避策を適用しないと,生成されたs函数ブロックをモデルに追加してモデルをシミュレートしたときに,MATLABがクラッシュする可能性があります。

データストアへのアクセス

モデル内の系统函数がシミュレーション中にデータ ストアにアクセスする場合、金宝app模拟はデータ ストアの診断を無効にします。

  • モデルから系统函数を作成した場合、診断はグローバルなデータ ストアに対しても無効となります。

  • サブシステムから系统函数を作成した場合,診断は次のデータストアに対して無効となります。

    • グローバルなデータストア

    • サブシステムの外部に配置され、数据存储读取ブロックまたは 数据存储写入ブロックによってアクセスされるデータ ストア

サブシステムマスクから尺寸または外港ブロックのパラメーターを指定できない

系统函数ブロックをサブシステムから生成する場合,输入または外埠ブロックのパラメーターをサブシステムマスク変数を使用して指定することはできません。系统函数ブロックを使用するシミュレーションを実行しようとすると、たとえば次のようなエラーが生成されます。

在'testSystem/Subsystem/ __outputssforfun__ /Out2'中设置参数'PortDimensions'无效…

関連するトピック