Main Content

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

Signal Routing

hisl_0013: Data Store ブロックの使用方法

ID: タイトルhisl_0013: Data Store ブロックの使用方法
説明Data Store MemoryData Store ReadData Store Write などの Data Store ブロックの使用時に、異なるサンプル時間や異なるモデルを通じて確定的な動作をサポートするには、以下に従ってください。

[コンフィギュレーション パラメーター] ダイアログの [診断][データ有効性] ペインで、次の Data Store Memory パラメーターを error に設定します。

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

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

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

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

  • データ ストア名の重複

メモ:

Data Store Memory ブロックを使用すると、ソフトウェアの検証作業に大きな影響を与えることがあります。入力端子と出力端子のみを使用してデータを渡すモデルおよびサブシステムは、検証プロセスを単純化することにより直接追跡可能なインターフェイスを提供します。

異なるレートおよびタスク間で確定的なデータ転送を行うには、Data Store Write ブロックの前または Data Store Read ブロックの後に、Rate Transition ブロックを使用します。

診断に加えて、Simulink® Design Verifier™ を使用すると、モデル内のデータ ストア メモリ アクセス違反をより正確に検出できます。これを行うには、[Design Verifier] タブの [設定] を選択します。[コンフィギュレーション パラメーター] ダイアログ ボックスの [Design Verifier][設計エラー検出] ペインで、[データ ストアのアクセス違反] を選択します。詳細については、モデルでのデータ ストアのアクセス違反の検出 (Simulink Design Verifier)を参照してください。Simulink Design Verifier のライセンスが必要です。

根拠

異なるサンプル時間またはモデルで一貫性のあるデータ値をサポートする。

意図しないデータの破損を防止します。

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

最終更新R2020b

次の例では、Rate Transition ブロックを使用して、異なるレートおよびタスク間で確定的なデータ転送を提供します。

高速から低速への遷移:

低速サンプル時間の速度を Rate Transition ブロックまたは Data Store Write ブロックで設定します。

Data Store Read ブロックの後に Rate Transition にブロックを配置しないでください。

低速から高速への遷移:

Rate Transition ブロックが Data Store Read ブロックの後にある場合は、Data Store Read ブロックで低速を指定します。

Rate Transition ブロックが Data Store Write ブロックの前にある場合は、ブロックに継承サンプル時間を使用します。

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 アクション言語を使用する真理値表関数

根拠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

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

非推奨

推奨