Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

Signal Routing

hisl_0013: データ ストア メモリの使用方法

ID: タイトルhisl_0013: データ ストア メモリの使用方法
説明

データ ストア メモリを使用するときは、データ ストア メモリの以下のモデル コンフィギュレーション パラメーターを error に設定します。

  • 書き込み前の読み取りを検出

  • 読み取り後の書き込みを検出

  • 書き込み後の書き込みを検出

  • マルチタスク データ ストア

  • データ ストア名の重複

メモ

可能な限り、データの通信にはデータ ストア メモリではなく入力信号と出力信号を使用します。システム境界をまたぐデータの通信にデータ ストア メモリのブロックを使用すると、予期しない結果が生じることがあります。

Simulink® Design Verifier™ ライセンスがある場合は、モデル内のデータ ストア メモリ アクセス違反を静的に検出できます。Design Verifier のモデル コンフィギュレーション パラメーター [データ ストアのアクセス違反] を選択します。詳細については、モデルでのデータ ストアのアクセス違反の検出 (Simulink Design Verifier)を参照してください。

根拠

データ ストア メモリ通信によって Simulink 信号のセマンティクスが無効になる場所の特定にはシミュレーション診断が役立ちます。

モデル アドバイザー チェックCheck safety-related diagnostic settings for data store memory (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 (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'

  • DO-331, Section MB.6.3.3.b 'Software architecture is consistent’

最終更新R2023a

Model showing recommended and not recommended ways to use data store memory

hisl_0015: Merge ブロックの使用方法

ID: タイトルhisl_0015: Merge ブロックの使用方法
説明

Merge ブロックの明確な動作をサポートするには、以下に従ってください。

A

Merge ブロックを条件付き実行サブシステムでのみ使用する。

B

1 つのサブシステムのみがタイム ステップ中に実行されるように、条件付き実行サブシステムの実行を指定する。

C

ブロック パラメーター [異なる端子幅を許可] をクリアする。

Dマージ対象の各条件付き実行サブシステムに対して Outport ブロックの [ディセーブル時の出力] パラメーターを [保持] に設定します。
メモ

Simulink では、Merge ブロックの入力が 1 つの出力に結合されます。どの時点の出力値も、Merge ブロックを駆動するブロックの最新の計算出力と等しくなります。したがって、Merge ブロックの出力は入力計算の実行順序に依存します。

Merge ブロック出力の予測可能な動作を提供するには、Merge ブロックに接続する条件付き実行サブシステム間の相互排他がなければなりません。

Merge ブロック パラメーター [異なる端子幅を許可] はコンフィギュレーション パラメーター [指定不足の初期化の検出]Classic に設定されている場合にのみ利用できます。

前提条件

hisl_0303: [コンフィギュレーション パラメーター]、[診断]、[Merge ブロック]

hisl_0304: [コンフィギュレーション パラメーター]、[診断]、[モデルの初期化]

根拠A、B、C、Dあいまいな動作を避ける。
モデル アドバイザー チェックCheck usage of Merge blocks (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, Section MB.6.3.3.b 'Software architecture is consistent’

参考

Simulink ドキュメンテーションの Merge ブロック

最終更新R2018b

推奨

非推奨

hisl_0021: 一貫したベクトル インデックス方法

ID: タイトルhisl_0021: 一貫したベクトル インデックス方法
説明モデル内で、以下を使用してください。
A

一貫したベクトル インデックス方法

設定可能なインデックスをサポートします。

1 ベースのインデックスのみをサポートします。

0 ベースのインデックスのみをサポートします。

  • C アクション言語を使用する Stateflow チャート

  • C アクション言語を使用する真理値表関数

  • C アクション言語を使用する State Transition Table (Stateflow)

根拠A整合性のないインデックス作成によるエラー発生のリスクを減らす。
モデル アドバイザー チェックCheck for inconsistent vector indexing methods (Simulink Check)
参考文献
  • IEC 61508–3, Table A.3 (3) 'Language subset'
    IEC 61508–3, Table A.4 (5) 'Design and coding standards'

  • IEC 62304, 5.5.3 - Software Unit acceptance criteria

  • ISO 26262-6, Table 1 (1b) 'Use of language subsets'
    ISO 26262-6, Table 1 (1e) 'Use of well-trusted design principles'
    ISO 26262-6, Table 1 (1f) 'Use of unambiguous graphical representation'
    ISO 26262-6, Table 1 (1g) 'Use of style guide'

  • EN 50128, Table A.4 (11) 'Language Subset'
    EN 50128, Table A.12 (1) 'Coding Standard'

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

参考cgsl_0101: 0 ベースのインデックス
最終更新R2019a

hisl_0022: インデックス信号のデータ型の選択

ID: タイトルhisl_0022: インデックス信号のデータ型の選択
説明インデックス信号には、以下のデータ型を使用します。
A整数データ型または列挙データ型
Bインデックス値の範囲をカバーするデータ型。

信号インデックスを使用するブロックは以下のとおりです。

  • Assignment

  • Direct Lookup Table (n-D)

  • Index Vector

  • Interpolation Using Prelookup

  • MATLAB® Function

  • Multiport Switch

  • Selector

  • Stateflow® チャート

根拠A浮動小数点データ型の丸め処理で起こり得る予期しない結果を防ぐ。
Bベクトル内のデータへのアクセスを有効にする。
モデル アドバイザー チェックCheck data types for blocks with index signals (Simulink Check)
参考文献
  • IEC 61508–3, Table A.3 (2) 'Strongly typed programming language'
    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 (1c) 'Enforcement of strong typing'
    ISO 26262-6, Table 1 (1d) 'Use of defensive implementation techniques'

  • EN 50128, Table A.4 (8) 'Strongly Typed Programming Language'
    EN 50128, Table A.3 (1) 'Defensive Programming'

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

  • FLP30-C. Do not use floating-point variables as loop counters

最終更新R2021b

hisl_0023: バリアント ブロックの検証

ID: タイトルhisl_0023: バリアント ブロックの検証
説明モデルと生成コードとの整合性を検証する場合は、以下を行います。
AVariant ブロックごとに、[バリアントのアクティベーションのタイミング][ブロック線図の更新] または [ブロック線図の更新時にすべての選択肢を解析] に設定する。
根拠Aコード ベースを 1 つのバリアントに制限して、モデルと生成コード間の整合性テストを簡略化する。
モデル アドバイザー チェックCheck usage of variant blocks (Simulink Check)
参考文献
  • DO-331, Section MB.6.3.3.b – Software architecture is consistent

  • IEC 61508–3, Table A.4 (7) 'Use of trusted / verified software modules and components'

最終更新R2021b
参考Variant Subsystem, Variant Model, Variant Assembly Subsystem

hisl_0034: Signal Routing ブロックの使用方法

ID: タイトルhisl_0034: Signal Routing ブロックの使用方法
説明

Switch ブロックを使用している場合、浮動小数点データ型に ~= 演算子を使用する比較を避ける。

メモ

浮動小数点の精度に問題があるため、浮動小数点式の不等価 (~=) をテストしないでください。

~= 演算子で関係演算子を計算する Switch ブロックがモデルに含まれている場合は、ブロックへの入力を single、double、または浮動小数点型のカスタム ストレージ クラスにすることはできません。入力信号のデータ型を変更するか、Switch ブロック内で ~= 演算子を使用しないようにモデルを作り直してください。

根拠

モデルのロバスト性を向上させる。

モデル アドバイザー チェックCheck usage of Signal Routing blocks (Simulink Check)
参考文献
  • DO-331, Sections MB.6.3.2.g 'Algorithms are accurate'

  • IEC 61508-3, Table A.3 (3) – 'Language subset'
    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'
    Table 1 (1d) - 'Use of defensive implementation techniques'

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

  • MISRA C:2012, Dir 1.1

最終更新R2021a

非推奨

推奨