执行子触发器


Execute SubTrigger(执行子触发器)将执行本地节点上定义的子触发器。作为此动作目标的触发器必须为 SubTrigger(子触发器)事件类型触发器。Fire Trigger(激发触发器)动作用于执行 On-Demand(按需)事件类型触发器。On-Demand(按需)和 SubTrigger(子触发器)事件类型触发器都可以使用节点上的所有可用动作。

  • 子触发器可以定义调用 Execute SubTrigger(执行子触发器)动作和子触发器之间的输入和输出变量传递数据。有关定义子触发器事件类型触发器的信息,请参见子触发器
  • 按需触发器可以通过调用激发触发器动作以及通过触发器项目窗口中的工作台来执行。有关定义按需事件类型触发器的更多信息,请参见按需
  • 两种触发器在执行时都可以使用等待其完成的选项。

子触发器可以定义输入和输出参数,因此对于定义需要从多个触发器执行的共用应用逻辑非常有用。调用触发器和子触发器之间传递的数据用于提供从调用触发器上下文到共用子触发器的动态运行时信息。
这是将共用应用逻辑合并到子例程或共用函数中的共用应用程序模式。

参数描述

参数 描述
Project Name(项目名称) 子触发器驻留所在的本地节点上的项目。
SubTrigger Name(子触发器名称) 要执行的子触发器。
Wait for Completion(等待完成) 选项包括:
  • True - 发起子触发器执行,并等待子触发器完成其执行,称为同步处理。
  • False - 发起子触发器执行,但不等待子触发器完成其执行,称为异步处理。不能保证并发执行调用触发器及其动作以及被调用的子触发器及其动作。可以先执行或先完成其一。应用程序开发人员必须了解对设备变量等共用资源的任何访问。
Dynamic Project(动态项目) 如果设置为True,您需要在 input(输入)选项卡中提供 Project name(项目名称)。子触发器执行的同时,将在提供的项目中执行。

输入选项卡


Input(输入)选项卡将显示由子触发器定义的输入变量。这些参数从调用 Execute SubTrigger(执行子触发器)动作传递至子触发器。每个输入变量都具有由子触发器定义的数据类型。如果输入变量的数据类型与子触发器定义的数据类型不匹配,子触发器将失败。

输出选项卡


Output(输出)选项卡将显示由子触发器定义的输出变量。这些参数从子触发器传递回调用 Execute SubTrigger(执行子触发器)动作。仅当 Wait for Completion(等待完成)参数为 True 时,才能从子触发器传回输出参数。

每个输出变量都具有由子触发器定义的数据类型

执行子触发器动作用法示例

在此场景中,需要在生产周期的各个阶段选择数据库中的行。选定数据在各类计算中用作输入,结果将馈送至一系列设备变量,这些变量因产品当前驻留所在生产周期中的位置而异。系统定义了在各种设备变量激活时启动的多个不同触发器,其中每个触发器都可以包含一个动作,将从数据库表中选择数据,并针对数据执行计算。这会带来维护问题,因为拼写错误可能从一个触发器引入至下一个触发器的计算定义。同样,可能需要能够通过每个触发器进行复制的错误或异常处理程序。

更理想的解决方案是将所有触发器共用的这些例程移入子触发器。此时每个触发器都将引用 Execute SubTrigger(执行子触发器)动作中的子触发器,并且该子触发器的调用方可以确保无论在何处调用数据,都将以相似的方式进行处理。

Related Topics Link IconRelated Topics