主要内容

图表架构

HISF_0003:按位操作的使用

ID:标题 HISF_0003:按位操作的使用
描述

在状态流中使用位操作时®块,

一种 避免符号整数数据类型作为按位操作的操作数。
笔记

通常,位于符号整数上不有意义。可能发生不期望的行为。例如,换档操作可能将符号位移动到数字中,或者将数字位或数字位移动到符号位。

理由 一种 促进明确的建模风格。
模型顾问检查 检查状态流图中按位操作的使用情况(金宝appSimulink检查)
参考
  • IEC 61508-3,表A.3(3)'语言子集'
    IEC 61508-3,表A.3(2)'强类型规划语言'

  • IEC 62304,5.5.3 - 软件单元验收标准

  • ISO 26262-6,表1(1B)'使用语言子集'
    ISO 26262-6,表1(1C)'强制打字的执行'

  • EN 50128,表A.4(11)“语言子集”
    EN 50128,表A.3(1)'防守编程'

  • DO-331,MB.6.3.1.B部分'高级要求是准确的,一致的
    DO-331,MB.6.3.1.E'高级要求符合标准'
    DO-331,第6.3.1.g'算法是准确的'
    DO-331,MB.6.3.2.b部分'低级要求是准确的,一致的
    DO-331,MB.6.3.2.E'低级要求符合标准'
    DO-331,部分MB.6.3.2.g'算法是准确的'

  • MISRA C:2012,规则10.1

也可以看看 hisl_0019:按位操作的使用
最后改变了 R2016A

HISF_0004:使用递归行为

ID:标题 HISF_0004:使用递归行为
描述

为了支金宝app持有界函数调用行为,避免使用包括无界递归行为的设计模式。如果执行以下操作,则绑定递归行为:

一种 使用递归调用本地的显式终止条件。
B. 确保达到终止条件。
笔记

如果图表是经典的状态溢图,则此规则仅适用。如果遵循MEALY和MOORE语义,则由于图表语义中的限制,防止递归行为。要检测到图表仿真期间的错误,请打开状态溢图,然后在调试选项卡,选择诊断>检测循环行为

理由 A,B 推广有界函数调用行为。
模型顾问检查 无法使用模型顾问检查验证对该建模指南的遵守。
参考
  • IEC 61508-3,表B.1(6)'有限使用递归'

  • IEC 62304,5.5.3 - 软件单元验收标准

  • ISO 26262-6,表6(1J)'没有递归'

  • EN 50128,表A.12(6)'有限使用递归'

  • DO-331,MB.6.3.1.B部分'高级要求是准确的,一致的
    DO-331,MB.6.3.1.E'高级要求符合标准'
    DO-331,部分MB.6.3.1.g'算法是准确的'
    DO-331,MB.6.3.2.b部分'低级要求是准确的,一致的
    DO-331,MB.6.3.2.E'低级要求符合标准'
    DO-331,部分MB.6.3.2.g'算法是准确的'

  • MISRA C:2012,第17.2条

最后改变了 R2016A
例子

状态溢中有多种模式,可以导致无绑定的递归。

递归函数调用

输入默认状态A时,事件evn.在A的进入动作中广播。evn.导致解释算法的递归调用。由于A处于活动状态,测试A的输出过渡。自目前的事件以来evn.匹配转换事件(并且由于不存在条件),执行条件操作,广播evn.再次。这导致新的呼叫解释算法,其重复相同的步骤序列,直到堆栈溢出。

递归函数调用

HISF_0007:结束条件的使用(维持互斥)

ID:标题

HISF_0007:结束条件的使用(维持互斥)

描述

提高清晰度并防止生成无法访问的代码:

一种 使交界条件相互排斥。
笔记

您可以使用本指南在高完整性项目中维护建模语言子集。

理由 一种 增强清晰度并防止生成无法访问的代码。
参考
  • DO-331,MB.6.3.1.B部分'高级要求是准确的,一致的
    DO-331,MB.6.3.1.D部分'高级要求是可验证的'
    DO-331,MB.6.3.1.E'高级要求符合标准'
    DO-331,MB.6.3.2.b部分'低级要求是准确的,一致的
    DO-331,MB.6.3.2.D部分'低级要求是可验证的
    DO-331,MB.6.3.2.E'低级要求符合标准'

模型顾问检查 无法使用模型顾问检查验证对该建模指南的遵守。
最后改变了 R2012B.
例子

HISF_0013:过渡路径的使用(交叉并行状态边界)

ID:标题

HISF_0013:过渡路径的使用(交叉并行状态边界)

描述

避免创建难以理解的图表,

一种 避免创建从一个并行状态交叉到另一个并行状态的转换。
笔记

您可以使用本指南在高完整性项目中维护建模语言子集。

理由 一种 提高模型可读性。
模型顾问检查

检查跨并行状态边界的转换路径的状态溢图(金宝appSimulink检查)

参考
  • IEC 61508-3,表A.3(3)'语言子集'

  • IEC 62304,5.5.3 - 软件单元验收标准

  • ISO 26262-6,表1(1B)'使用语言子集'

  • EN 50128,表A.4(11)“语言子集”

  • DO-331,MB.6.3.1.B部分'高级要求是准确的,一致的
    DO-331,MB.6.3.1.E'高级要求符合标准'
    DO-331,MB.6.3.2.b部分'低级要求是准确的,一致的
    DO-331,MB.6.3.2.E'低级要求符合标准'

最后改变了 R2017B.
例子

在以下示例中,何时out_a.是4,父母的州(家长B_Parent.)重新进入。重新进入父状态重置值out_a.out_b.零。

hisf_0014:过渡路径的使用(通过状态)

ID:标题

hisf_0014:过渡路径的使用(通过状态)

描述

避免创建令人困惑的图表,并包括没有受益的过渡路径,

一种 避免在不结尾的转换路径,而不结尾地在出位。
笔记

您可以使用本指南在高完整性项目中维护建模语言子集。

理由 一种 提高模型可读性。
模型顾问检查

检查过渡路径不当使用(金宝appSimulink检查)

参考
  • IEC 61508-3,表A.3(3)'语言子集'

  • IEC 62304,5.5.3 - 软件单元验收标准

  • ISO 26262-6,表1(1B)'使用语言子集'

  • EN 50128,表A.4(11)“语言子集”

  • DO-331,MB.6.3.1.B部分'高级要求是准确的,一致的
    DO-331,MB.6.3.1.E'高级要求符合标准'
    DO-331,MB.6.3.2.b部分'低级要求是准确的,一致的
    DO-331,MB.6.3.2.E'低级要求符合标准'

最后改变了 R2018B.
例子

HISF_0015:强大的数据键入(铸造变量和表达式参数)

ID:标题

HISF_0015:强大的数据键入(铸造变量和表达式参数)

描述

为了促进强大的数据输入,

一种

显式键入不同数据类型的展开变量和参数:

  • 过渡评估

  • 过渡任务

  • 各国的作业

笔记

StateFlow软件将不同类型的变量自动投入相同的数据类型。本指南有助于阐明中间变量的数据类型。

理由 一种 应用强大的数据打字。
模型顾问检查

检查StateFlow图表是否有强数据键入(金宝appSimulink检查)

参考
  • IEC 61508-3,表A.3(2)'强类型规划语言'

  • IEC 62304,5.5.3 - 软件单元验收标准

  • ISO 26262-6,表1(1C)'强制打字的执行'

  • EN 50128,表A.4(8)'强类型编程语言'

  • DO-331,MB.6.3.1.B部分'高级要求是准确的,一致的
    DO-331,MB.6.3.1.E'高级要求符合标准'
    DO-331,部分MB.6.3.1.g'算法是准确的'
    DO-331,MB.6.3.2.b部分'低级要求是准确的,一致的
    DO-331,MB.6.3.2.E'低级要求符合标准'
    DO-331,部分MB.6.3.2.g'算法是准确的'

最后改变了 R2017B.
例子

受到推崇的

不建议

HISF_0016:StateFlow端口名称

ID:标题

HISF_0016:StateFlow端口名称

描述 状态流输入或输出的名称必须与相应的信号相同。指南的例外是可重用的状态垃圾块可以具有不同的端口名称。
理由 金宝app支持可追溯代码的生成。
模型顾问检查

检查状态流图中的端口命名(金宝appSimulink检查)

参考
  • DO-331,MB.6.3.2.b部分'低级要求是准确的,一致的

  • IEC 61508-3,表A.3(3)'语言子集'

  • IEC 62304,5.5.3 - 软件单元验收标准

  • ISO 26262-6,表1(1B)'使用语言子集'

  • EN 50128,表A.4(11)“语言子集”

最后改变了 2018A

HISF_0017:StateFlow数据对象范围

ID:标题

HISF_0017:StateFlow数据对象范围

描述 必须在图表级别或下面定义具有本地范围的状态流数据对象。
理由 金宝app支持可追溯代码的生成。
模型顾问检查

检查stateflow数据对象的范围(金宝appSimulink检查)

参考
  • DO-331,MB.6.3.2.b部分'低级要求是准确的,一致的

  • IEC 61508-3,表A.3(3)'语言子集'

  • IEC 62304,5.5.3 - 软件单元验收标准

  • ISO 26262-6,表1(1B)'使用语言子集'

  • EN 50128,表A.4(11)“语言子集”

最后改变了 2018A
例子

受到推崇的

不建议