SIMULINK モデルに、関数内でいくつかの静的変数を使用するレガシー C 関数があります。静的変数はグローバルに使用できます。モデルの複数のインスタンスを参照すると、S-Function がそのように構成されていないため、エラーが発生します。コード生成でこれが許可されていないため、このエラー メッセージが表示されます。
私が得るエラーメッセージは次のとおりです。
S-Function ブロック 'ECDCTRL/PULDESC/S-Function Builder' は、複数の実行インスタンスをサポートすることを宣言していないため、マルチインスタンス ノーマル モードではサポートされていません。S-Function が複数の実行インスタンスの要件を満たす場合、'mdlSetWorkWidths' メソッドで SimStruct 関数 'ssSupportsMultipleExecInstances' を使用してこれを宣言できます。
(MYSFUNC)_Outputs_Wrapper.c
自動生成されたコードでビルドするときにファイルを使用しています。モデルの複数の参照を使用する場合に、レガシー C 関数を確実に使用できるようにするにはどうすればよいですか? SIMULINK の Web サイトではメソッドの使用が提案されていますが、ヘッダー ファイルssSupportsMultipleExecInstances(SimStruct *S, bool flag)
を使用していないため正しくありません。SimStruct
回避策は何ですか?