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_0024: Inport インターフェイス定義

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

モデルと生成されたコードの厳密なデータ型指定と明確な動作をサポートするには、次のそれぞれに対する [データ型][端子の次元]、および [サンプル時間] のパラメーターを設定します。

  • モデルのルートレベルの入力端子

  • 接続されている信号線に明示的に関連付けられる信号オブジェクト

  • アーキテクチャ モデルのルートレベルの Inport 端子

エクスポート関数モデルについては、[サンプル時間]-1 に設定できます。

メモ

次元、サンプル時間、データ型が完全に定義されていないルートレベルの Inport ブロックを使用すると、あいまいなシミュレーション結果になる可能性があります。

これらのパラメーターを明示的に定義しない場合、Simulink は次元、サンプル時間およびデータ型を下流ブロックからさかのぼって伝播します。

このガイドラインに準拠すると、再利用可能な仕様 (構造体の配列など) が Simulink.ValueType オブジェクトとして取得され、In Bus Element ブロックおよび Out Bus Element ブロックのデータ型が指定されます。

根拠
  • あいまいな動作を避ける。

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

モデル アドバイザー チェック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‘

最終更新R2023b

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

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

次のそれぞれに対する設計の最小と最大のインターフェイス範囲を提供します。

  • Simulink® モデルのルートレベルの Inport ブロック

  • アーキテクチャ モデルのルートレベルの Input 端子

メモ

  • ルートレベルの Input 端子の範囲を指定すると、追加の機能を有効にできます。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
    ISO 26262-6, Table 3 (1c) – Restricted size of interfaces

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

最終更新R2022b

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: 出力インターフェイスの設計の最小値/最大値指定
説明

次のそれぞれに対して最小と最大のインターフェイス範囲を提供します。

  • Simulink モデルのルートレベルの Outport ブロック

  • アーキテクチャ モデルのルートレベルの Outport 端子

メモ

  • ルートレベルの Output 端子の範囲を指定すると、追加の機能を有効にできます。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
    ISO 26262-6, Table 3 (1c) – Restricted size of interfaces

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

最終更新R2022b

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_0077: Outport インターフェイス定義

ID: タイトルhisl_0077: Outport インターフェイス定義
説明

モデルと生成されたコードの厳密なデータ型指定と明確な動作をサポートするには、次のそれぞれに対する [データ型][端子の次元]、および [サンプル時間] のパラメーターを設定します。

  • モデルのルートレベルの出力端子

  • 接続されている信号線に明示的に関連付けられる信号オブジェクト

  • アーキテクチャ モデルのルートレベルの Outport 端子

エクスポート関数モデルについては、[サンプル時間]-1 に設定できます。

メモ次元、サンプル時間、データ型が完全に定義されていないルートレベルの Outport ブロックを使用すると、あいまいなシミュレーション結果になる可能性があります。
根拠
  • あいまいな動作を避ける。

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

モデル アドバイザー チェックCheck for root Outports 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‘

最終更新R2023a