扩展执行模型:术语定义

可以使用 MicroC 概要文件指定元素动作的序列。对元素部件执行顺序的指定 基于执行方案和以下两个 MicroC 概念:可执行执行管理器

可执行对象

使用 MicroC 概要文件时,如果元素被定义 为执行管理器并且并行度设置为按顺序,那么该元素具有自己的事件 队列。此行为不同于一般行为,在一般行为中模型元素仅在其并行度已设置为活动的情况下才具有 事件队列。

类或对象在其“特征”窗口的常规选项卡上被标记 为可执行。类的可执行标记是实现 doExecute() 方法所必需的。doExecute() 方法自身会完成计算并返回值。

“特征”窗口 - 已启用“执行方案”复选框
“特征”窗口 - “部件”选项卡

执行管理器对象

标记为执行管理器的类 或对象控制其自身及其部件的执行。

每个执行管理器都控制其可执行部件的执行。执行管理器具有自己的事件队列,用于处理在其状态图中定义的事件。 通过修改 C_CG::Class::ExecutionManagerDispatchEventOrder 属性的值,可以指定事件处理将在元素部件的 doExecute 方法之前还是之后进行。执行管理器的事件队列 大小由 C_CG::Class::ExecutionManagerEventQueueSize 属性控制。 执行管理器还处理您为它的部件的部件定义的任何状态图,直到层次结构中的最低层次。可以在模型层次结构中的任何位置定义新的执行管理器。但是,就 doExecute 调用而言,执行管理器将只调用为其直接部件定义的 doExecute 方法。

如果已将一个或多个模型元素指定为可执行,但模型中没有任何活动的元素,那么 所生成的代码包含包级 doExecute 方法。这个包级方法将调用您在包的顶层为各个可执行元素定义的 doExecute 方法。通过修改 C_CG::Configuration::UseMainTask 属性的值,可以关闭这种缺省行为。

活动元素的“特征”对话框

对于活动元素,执行管理器的 doExecute() 方法被定义用于:
  • 遵循已定义的执行顺序,调用其所有不带状态图的“可执行”部件的 doExecute()
  • 在其事件队列中分派所有存在的事件。
可以通过使用激活策略属性来控制以上操作的顺序,而对于 每个活动元素,该属性的值可以为定期异步。在活动元素的“特征”对话框中,缺省情况下执行 方案字段始终定义为“可执行”和“执行管理器”。它还始终包含两个可供选择的值:定期异步
“特征”窗口 - 已启用“执行方案”复选框
  • 定期,选择此值后先在系统启动后的“延迟”时间运行,然后在每个“周期”时间定期运行。对于每次激活,会一直运行到完成为止。
  • 异步,选择此值后“周期”和“延迟字段”变为灰色,并且在其队列中有暂挂信号(事件)时它允许从操作系统 (OS) 获得控制权。

顺序元素的“特征”对话框

可以将顺序元素标记为执行管理器,而这是实现 doExecute () 方法所必需的。要控制顺序 模型及其部件的执行,必须选中执行管理器复选框。作为执行管理器的顺序元素会促成其所有部件的完整执行,包括 其反应部件的事件分派。

注: 对于顺序元素,激活框不可见。

“特征”窗口 - 已启用“执行方案”复选框

执行管理器:执行顺序

可以在模型的同代部件之间定义执行顺序。

在“特征”窗口 的部件选项卡上,您可以定义包含以下列的部件表:
  • 名称 – 部件的名称
  • 执行顺序 - 可以为下列其中一个值:
    • 整数数字:代表标记为可执行的部件。指示执行顺序,此值可以修改。
    • N/A:代表未标记为可执行的部件。无法修改此值。

“特征”窗口 - 已启用“执行方案”复选框

  • 类型:可以为下列其中一个值:
    • 执行管理器:部件被标记为执行管理器。
    • 可执行:部件被标记为可执行。
    • 反应:未被标记为可执行或执行管理器且带有状态图的部件。
    • :未被标记为可执行或执行管理器但不带状态图的部件。
    • 活动:被标记为活动的部件。
    • inNetworkPort:连接到输入信号。
    • outNetworkPort:连接到输出信号。

“特征”窗口 - 已启用“执行方案”复选框


反馈