Main Content

Ports & Subsystems

hisl_0006: While Iterator ブロックの使用方法

ID: タイトルhisl_0006: While Iterator ブロックの使用方法
説明While Iterator ブロックの使用時に、制限のある反復動作を、生成されたコード内でサポートするには、ブロックの [最大反復回数] パラメーターを正の整数値に設定します。
メモ

While Iterator Subsystem を使用する場合、反復の最大回数を設定します。無限数の反復を使用する場合、生成されたコードには無限ループが含まれることがあり、実行時間のオーバーランにつながります。

シミュレーション中に反復値を観察し、ループが反復の最大回数に到達するかどうかを判断するには、While Iterator ブロック パラメーターの [反復回数の端子を表示] を選択します。ループが反復最大回数に達した場合、While Iterator ブロックの出力値を確認してください。

根拠生成コードで制限のある反復をサポートする。
モデル アドバイザー チェックCheck usage of While Iterator blocks (Simulink Check)
参考文献
  • DO-331, Section MB.6.3.2.g – 'Algorithms are accurate'

  • IEC 61508-3, Table A.3 (3) 'Language subset’
    IEC 61508-3, Table A.4 (3) 'Defensive programming’

  • IEC 62304, 5.5.3 - Software Unit acceptance criteria

  • ISO 26262-6, Table 1 (1b) 'Use of language subsets'
    ISO 26262-6, Table 1 (1d) 'Use of defensive implementation techniques'

  • EN 50128, Table A.4 (11) 'Language Subset'
    EN 50128, Table A.3 (1) 'Defensive Programming'

  • MISRA C:2012, Rule 14.2
    MISRA C:2012, Rule 16.4
    MISRA C:2012, Dir 4.1

  • INT32-C. 符号付き整数演算がオーバーフローを引き起こさないことを保証する

最終更新R2021b

hisl_0007: For Iterator Subsystem または While Iterator Subsystem の使用方法

ID: タイトルhisl_0007: For Iterator Subsystem または While Iterator Subsystem の使用方法
説明明確な動作をサポートするには、For Iterator Subsystem または While Iterator Subsystem を使用するときに、積分器、フィルター、伝達関数など、サンプル時間に依存するブロックをサブシステム内で使用しない。
根拠サブシステムのあいまいな動作を避ける。
モデル アドバイザー チェックCheck usage of For and While Iterator subsystems (Simulink Check)
参考文献
  • DO-331, Section MB.6.3.2.g 'Algorithms are accurate

  • IEC 61508-3, Table A.3 (3) 'Language subset’
    IEC 61508-3, Table A.4 (3) 'Defensive programming’

  • IEC 62304, 5.5.3 - Software Unit acceptance criteria

  • ISO 26262-6, Table 1 (1b) 'Use of language subsets'
    ISO 26262-6, Table 1 (1d) 'Use of defensive implementation techniques'

  • EN 50128, Table A.4 (11) 'Language Subset'
    EN 50128, Table A.3 (1) 'Defensive Programming'

  • MISRA C:2012, Rule 14.2
    MISRA C:2012, Rule 16.4
    MISRA C:2012, Dir 4.1

最終更新R2018b

以下の例では、Discrete FIR Filter ブロックは時間依存型で、For Iterator Subsystem または While Iterator Subsystem 内にあることを示す警告が発生する。

hisl_0008: For Iterator ブロックの使用方法

ID: タイトルhisl_0008: For Iterator ブロックの使用方法
説明

For Iterator ブロックの使用時に、生成されたコードの制限のある反復動作をサポートするには、以下のいずれかを行います。

A

ブロック パラメーター [反復制限元][内部] に設定する。

B

[反復制限元][外部] に設定しなければならないときは、定数値をもつブロックを使用する。オプションには、WidthProbe、または Constant があります。

C

ブロック パラメーター [次の i (反復変数) を外部で設定] をクリアする。

D

シミュレーション中の反復値を観察するために、ブロック パラメーター [反復変数の表示] を選択する。

メモ

For Iterator ブロックを使用するときは、固定 (非変数) 値をもつループ コントロール変数を与えて、予測可能なループ反復数を取得します。そうしないと、ループが予期しない実行時間となり、外部反復変数の場合に、実行時間のオーバーランになる無限ループが発生する可能性があります。

根拠A、B、C、D生成コードで制限のある反復動作をサポートする。
モデル アドバイザー チェックCheck usage of For Iterator blocks (Simulink Check)
参考文献
  • DO-331, Section MB.6.3.2.g – 'Algorithms are accurate'

  • IEC 61508-3, Table A.3 (3) 'Language subset’
    IEC 61508-3, Table A.4 (3) 'Defensive programming’

  • IEC 62304, 5.5.3 - Software Unit acceptance criteria

  • ISO 26262-6, Table 1 (1b) 'Use of language subsets'
    ISO 26262-6, Table 1 (1d) 'Use of defensive implementation techniques'

  • EN 50128, Table A.4 (11) 'Language Subset'
    EN 50128, Table A.3 (1) 'Defensive Programming'

  • MISRA C:2012, Rule 14.2
    MISRA C:2012, Rule 16.4
    MISRA C:2012, Dir 4.1

最終更新R2016a

hisl_0010: If ブロックと If Action Subsystem ブロックの使用方法

ID: タイトルhisl_0010: If ブロックと If Action Subsystem ブロックの使用方法
説明

Elseif 式が空でない If ブロックの使用時に、検証可能な生成コードをサポートするには、以下に従ってください。

A

ブロック パラメーター [else 条件の表示] を選択する。

B

If ブロックの出力端子を If Action Subsystem ブロックに接続する。

前提条件

hisl_0016: 関係演算子を計算するブロックの使用方法

メモ

If ブロックと If Action Subsystem ブロックの組み合わせにより、入力条件に基づく条件付き実行が可能になります。if 分岐しかない場合は、else 分岐を含める必要はありません。

根拠A、B検証可能なコードの生成をサポートする。
モデル アドバイザー チェックCheck usage of If blocks and If Action Subsystem blocks (Simulink Check)
参考文献
  • DO-331, Section MB.6.3.2.d – ‘Low-level requirements are verifiable’
    DO-331 Section MB.6.3.2.b – Low-level requirements are accurate and consistent

  • IEC 61508-3, Table A.3 (3) 'Language subset’
    IEC 61508-3, Table A.4 (3) 'Defensive programming’

  • IEC 62304, 5.5.3 - Software Unit acceptance criteria

  • ISO 26262–6, Table 1(b) 'Use of language subsets'
    ISO 26262–6, Table 1(d) 'Use of defensive implementation techniques'

  • EN 50128, Table A.4 (11) 'Language Subset'
    EN 50128, Table A.3 (1) 'Defensive Programming'

  • MISRA C:2012, Rule 14.2
    MISRA C:2012, Rule 16.4
    MISRA C:2012, Dir 4.1

最終更新R2016b

推奨: Else を使用する Elseif

非推奨: Else パスを使用しない

推奨: If のみ、Else は不要

hisl_0011: Switch Case ブロックと Action Subsystem ブロックの使用方法

ID: タイトルhisl_0011: Switch Case ブロックと Action Subsystem ブロックの使用方法
説明

Switch Case ブロックの使用時に、検証可能な生成コードをサポートするには、以下に従ってください。

A

ブロック パラメーター [default ケースを表示] を選択する。

B

Switch Case ブロックの出力端子を Switch Case Action Subsystem ブロックに接続する。

C

Switch Case ブロックへの入力に整数データ型または列挙値を使用する。

前提条件

hisl_0016: 関係演算子を計算するブロックの使用方法

メモ

Switch Case ブロックと If Action Subsystem ブロックの組み合わせにより、入力条件に基づく条件付き実行が可能になります。実行の既定のパスを "Default" ブロックの形式で指定してください。

根拠A、B、C検証可能なコードの生成をサポートする。
モデル アドバイザー チェックCheck usage of Switch Case blocks and Switch Case Action Subsystem blocks (Simulink Check)
参考文献
  • DO-331, Section MB.6.3.2.d – ‘Low-level requirements are verifiable
    DO-331 Section MB.6.3.2.b – Low-level requirements are accurate and consistent

  • IEC 61508-3, Table A.3 (3) 'Language subset’
    IEC 61508-3, Table A.4 (3) 'Defensive programming’

  • IEC 62304, 5.5.3 - Software Unit acceptance criteria

  • ISO 26262–6, Table 1(b) 'Use of language subsets'
    ISO 26262–6, Table 1(d) 'Use of defensive implementation techniques'

  • EN 50128, Table A.4 (11) 'Language Subset'
    EN 50128, Table A.3 (1) 'Defensive Programming'

  • MISRA C:2012, Rule 14.2
    MISRA C:2012, Rule 16.4
    MISRA C:2012, Dir 4.1

最終更新R2016b

次の図は、実行の既定のパスを "既定の" ブロックを使用して指定する例を示しています。

hisl_0012: 条件付き実行サブシステムの使用方法

ID: タイトルhisl_0012: 条件付き実行サブシステムの使用方法
説明

条件付き実行サブシステムの使用時に、明確な動作をサポートするには、以下に従ってください。

A

サブシステム内の Constant を除くすべてのブロックに対して、継承された (-1) サンプル時間を指定する。Constant ブロックでは無限の (inf) サンプル時間を使用できる。

B

サブシステムが非同期に呼び出される場合は、Integrator、Filter、Transfer Function など、サンプル時間に依存するブロックをサブシステム内で使用しない。

根拠A、B明確な動作をサポートする。
モデル アドバイザー チェックCheck usage of conditionally executed subsystems (Simulink Check)
参考文献
  • IEC 61508-3, Table A.3 (3) 'Language subset’
    IEC 61508-3, Table A.4 (3) 'Defensive programming’

  • IEC 62304, 5.5.3 - Software Unit acceptance criteria

  • ISO 26262–6, Table 1(b) 'Use of language subsets'
    ISO 26262–6, Table 1(d) 'Use of defensive implementation techniques'

  • EN 50128, Table A.4 (11) 'Language Subset'
    EN 50128, Table A.3 (1) 'Defensive Programming'

  • DO-331, Sections MB.6.3.2.g 'Algorithms are accurate'

    DO-331, Section MB 6.3.2.b 'Low-level requirements are accurate and consistent'

最終更新R2018b
離散ブロックの使用時の動作は、複数の連続時間ステップの演算に依存します。ブロックを断続的に呼び出すと、結果が期待どおりにならない可能性があります。

hisl_0024: Inport インターフェイス定義

ID: タイトルhisl_0024: Inport インターフェイス定義
説明

モデルと生成されたコードの厳密なデータ型指定と明確な動作をサポートするには、各ルートレベル Inport ブロック、または接続されている信号線に明示的に関連付けられる Simulink® 信号オブジェクトで、次のパラメーターを設定します。

  • データ型

  • 端子の次元

  • サンプル時間

メモ: 完全に定義された次元、サンプル時間またはデータ型なしでルートレベル Inport ブロックを使用すると、あいまいなシミュレーション結果になる可能性があります。これらのパラメーターを明示的に定義しない場合、Simulink は次元、サンプル時間およびデータ型を下流ブロックからさかのぼって伝播します。
根拠
  • 明確な動作を避ける。

  • ソフトウェア インターフェイスの指定を完全にサポートする。

モデル アドバイザー チェックCheck for root Inports with missing properties (Simulink Check)
参考文献
  • DO-331 Section MB.6.3.2.b 'Low-level requirements are accurate and consistent'

  • IEC 61508-3, Table B.9 (6) ‘Fully defined interface’

  • IEC 62304, 5.5.3 - Software Unit acceptance criteria

  • ISO 26262-6, Table 1 (1a) – Enforcement of low complexity
    ISO 26262-6, Table 1 (1c) – Enforcement of strong typing
    ISO 26262-6, Table 1 (1f) – Use of unambiguous graphical representation
    ISO 26262-6, Table 3 (1c) – Restricted size of interfaces
    ISO 26262-6, Table 7 (1k) – Interface test

  • EN 50128, Table A.3 (19) ‘Fully Defined Interface‘

最終更新R2017b

hisl_0025: 入力インターフェイスの設計の最小値/最大値指定

ID: タイトルhisl_0025: 入力インターフェイスの設計の最小値/最大値指定
説明ルートレベル Inport ブロックの設計の最小値/最大値情報を提供して、入力インターフェイスの範囲を指定します。
メモ:

  • ルートレベルの Inport ブロックの範囲を指定すると、追加の機能を有効にできますa例として、以下が挙げられます。

    • シミュレーション範囲のチェックによるオーバーフローの検出。

    • Embedded Coder® を使用したコードの最適化。

    • Simulink Design Verifier™ を使用した設計モデルの検証。

    • Fixed-Point Designer™ を使用した固定小数点のオートスケーリング。

  • 指定した設計範囲を Embedded Coder で使用して、生成コードを最適化します。これらの設計範囲を最適化に使用するには、コンフィギュレーション パラメーター [指定した最小値と最大値を使用した最適化] を選択します。このコンフィギュレーション パラメーターは、[システム ターゲット ファイル] が ERT ベースのターゲットである場合にのみ適用できます。

  • バス型の Inport ブロックの範囲は、定義しているバス オブジェクトのバス要素を使用して指定されます。Simulink は、バス型の Inport ブロックで直接指定される範囲の指定を無視します。

根拠

入力インターフェイスの指定を正確にサポートする。

モデル アドバイザー チェックCheck for root Inports with missing range definitions (Simulink Check)
参考文献
  • DO-331, Section MB.6.3.2.d – ‘Low-level requirements are verifiable’
    DO-331 Section MB.6.3.2.b 'Low-level requirements are accurate and consistent'

  • IEC 61508-3, Table B.9 (6) ‘Fully defined interface’

  • IEC 62304, 5.5.3 - Software Unit acceptance criteria

  • ISO 26262-6, Table 1 (1c) – Enforcement of strong typing
    ISO 26262-6, Table 7 (1e) – Formal verification
    ISO 26262-6, Table 7 (1k) – Interface test
    ISO 26262-6, Table 8 (1c) – Analysis of boundary values

  • EN 50128, Table A.1(11) – Software Interface Specifications
    EN 50128 Table A.3 (19) ‘Fully Defined Interface‘

最終更新R2017b

a These capabilities leverage design range information for different purposes. For more information, refer to the documentation for the tools you intend to use.

hisl_0026: 出力インターフェイスの設計の最小値/最大値指定

ID: タイトルhisl_0026: 出力インターフェイスの設計の最小値/最大値指定
説明ルートレベル Outport ブロックの設計の最小値/最大値情報を提供して、出力インターフェイスの範囲を指定します。
メモ:

  • ルートレベルの Outport ブロックの範囲を指定すると、追加の機能を有効にできますa例として、以下が挙げられます。

    • シミュレーション範囲のチェックによるオーバーフローの検出。

    • Embedded Coder を使用したコードの最適化。

    • Simulink Design Verifier を使用した設計モデルの検証。

    • Fixed-Point Designer を使用した固定小数点のオートスケーリング。

  • 指定した設計範囲を Embedded Coder で使用して、生成コードを最適化します。こうした設計範囲を設定するには、コンフィギュレーション パラメーター [指定した最小値と最大値を使用した最適化] を選択します。このコンフィギュレーション パラメーターは、[システム ターゲット ファイル] が ERT ベースのターゲットである場合にのみ適用できます。

  • バス型の Outport ブロックの範囲は、定義しているバス オブジェクトのバス要素を使用して指定されます。Simulink は、バス型の Outport ブロックで直接指定される範囲の指定を無視します。

根拠

出力インターフェイスの指定を正確にサポートする。

モデル アドバイザー チェックCheck for root Outports with missing range definitions (Simulink Check)
参考文献
  • DO-331, Section MB.6.3.2.d – ‘Low-level requirements are verifiable’
    DO-331 Section MB.6.3.2.b 'Low-level requirements are accurate and consistent'

  • IEC 61508-3, Table B.9 (6) ‘Fully defined interface’

  • IEC 62304, 5.5.3 - Software Unit acceptance criteria

  • ISO 26262-6, Table 1 (1c) – Enforcement of strong typing
    ISO 26262-6, Table 7 (1e) – Formal verification
    ISO 26262-6, Table 7 (1k) – Interface test
    ISO 26262-6, Table 8 (1c) – Analysis of boundary values

  • EN 50128, Table A.1(11) – Software Interface Specifications
    EN 50128 Table A.3 (19) ‘Fully Defined Interface‘

最終更新R2017b

a These capabilities leverage design range information for different purposes. For more information, refer to the documentation for the tools you intend to use.