触发器动作
触发器动作定义了触发器的应用逻辑(触发器的作用)。触发器动作是在触发器应用逻辑中提供单个步骤的单独功能块。触发器动作的执行流程或路径可以基于动作结果和变量运行时间值来控制。
触发器编辑器中可用的触发器动作取决于节点上安装的产品类型(例如企业网关或资产网关),以及节点上安装的软件包和扩展(例如设备驱动程序)。
触发器动作记录在触发器动作参考中。
工作台支持两个触发器编辑器:列表编辑器和画布编辑器。可以先使用其中一个编辑器定义触发器,然后使用另一个编辑器进行编辑和保存。为使基础触发器定义的动作位置(画布编辑器)和动作编号(列表编辑器)保持一致,针对一个触发器通常最好始终使用同一个编辑器。
指定使用列表编辑器时的动作
使用触发器列表编辑器定义新触发器时,触发器窗口如下所示:
通过选择该窗口 Actions(动作)部分的 Add(添加)按钮,然后选择要添加的特定动作,可以将动作添加到触发器。
将动作添加到触发器后,左侧窗格将显示该动作的参数。
将多个动作添加到列表中后,可以使用 Up(向上)和 Down(向下)按钮对动作进行重新排序。
可以使用 Remove(移除)按钮来移除动作。
右键单击动作将显示一个弹出菜单,其中包含用于对动作进行 Duplicate(复制)或将列表中的动作 Renumber(重新编号)为当前顺序的选项。
指定使用画布编辑器时的动作
使用触发器画布编辑器定义新触发器时,触发器窗口如下所示:
通过从左侧窗格中选择(单击)特定动作,然后在右侧窗格画布中选择(单击)位置来放置动作块,可以将动作添加到触发器。
此外还支持拖放样式,可以选择(单击并按住)一个动作,通过将光标拖动到右侧窗格画布中的位置再放下(释放鼠标按钮)来放置动作块。
将动作添加到左侧窗格中的画布后,双击该动作将显示该动作的参数。
通过拖放已添加到左侧窗格画布中的动作可对其进行重新定位。
选择动作(单击),然后使用删除键,可以删除动作。其他导航功能在画布下方列出,也可通过画布上方工具栏中的图标使用这些功能。
有关使用画布编辑器的更多信息,请参阅使用画布编辑器。
输入动作属性
每个动作都具有提供其功能所需的特定属性。这些属性可在动作的以下位置提供:
- 参数
- 输入选项卡
- 输出选项卡
动作可能具有或不具有参数、输入选项卡或输出选项卡,具体取决于动作提供的功能。
以 Array Average(数组平均)动作为例:
主窗格包含两个参数:
- Data Type(数据类型)- 下拉选择列表参数
- Maximum number of elements(最大元素数)- 数字输入参数。
此动作同时具有 Input(输入)选项卡和 Output(输出)选项卡。每个选项卡都包含各参数对应的行。
如果可以由设备变量、触发器宏、常量、触发器局部变量、触发器静态变量或触发器事件变量指定某参数,通过单击该参数的 Value(值)单元格,然后选择向下箭头图标,即可显示可用选项。
仅会显示适用的选项。例如:
- 宏和常量不适用于输出参数
- 仅当设备处于已启动状态时,设备变量才可用。
参数
参数字段可以是输入值的输入字段、用于更复杂参数的弹出编辑器或选项列表。
列表可能引用一组不会更改的预定义选项,或者 deviceWISE 中可能为动态的其他条目定义,例如传输映射、其他触发器等。
这些列表在编辑器会话中首次访问时存储。 对于动态列表,如果在触发器编辑器处于活动状态时定义或导入新条目,则可能需要对其进行刷新。
以 Fire Trigger(激发触发器)动作为例:
可以刷新 Project Name(项目名称)列表。列表右侧的按钮(由绿色箭头指示)会显示从网关检索到的该列表的内容。
On-Demand Trigger(按需激发)列表依赖于项目字段,将在项目字段刷新时进行刷新。只要选项列表包含依赖于另一字段值的内容,即适用这一原则。
对于引用触发器列表的参数,可以使用编辑按钮(如下图红色箭头所示)。选择此按钮将打开触发器对应的触发器编辑器窗口,如果已存在正在编辑的触发器,则切换至该触发器对应的现有窗口。
输入/输出上下文菜单
右键单击输入或输出表格中的行,将打开一个包含以下选项的上下文菜单:
选项 | 结果 |
---|---|
Map Selected(映射选定对象)> To Local Variables(至局部变量) | 使用行名称(或引用现有变量)创建局部变量 |
Map Selected(映射选定对象)> To Static Variables(至静态变量) | 使用行名称(或引用现有变量)创建静态变量 |
填充数组 | 用数组元素填充表格。 此增强功能在版本 16.1.0 中添加。详细信息请参阅下文。 |
Clear(清除) | 清除选定行中的值。 |
Clear All(全部清除) | 清除所有行中的值。 |
填充数组
填充数组允许快速填充大型表格。选择包含数组元素的行,然后选择 Populate Array(填充数组)。
如果下方的行并非全部为空,您可以选择覆盖现有值或是在包含值的第一行停止,否则该命令将立即执行。
不支持使用二进制值或带有双字节前缀的 Siemens 字符串数据进行填充。
此函数将确定每一行的类型以及如何将其映射到数组元素中。举例来说,如果 INT2 类型的数组可以读取/写入为 INT4,则会将其类型更改为 INT4,当逻辑类型为 INT4 时,下一行的索引将递增 2 而不是 1。更详细的示例请参阅下文:
指定动作的路径
每个动作都有一条路径,可确定下一步要执行的动作。可用于动作的具体路径取决于该动作可能导致的不同结果。
大多数动作都具有 Success(成功)路径。大多数动作都具有 Failure(失败)路径。根据动作可能导致的结果,动作还具有其他路径,例如 Transaction(事务)动作具有 Store and Forward(存储和转发)路径,If(如果)动作具有 True 和 False 路径。
使用列表编辑器时,可使用左侧窗格中的 Routing(路径)选项卡并选择下一步动作,以此选择动作的路径。
使用画布编辑器时,可在动作的输出端口到另一个动作的输入端口之间绘制连接线,以此指定动作的路径。
由于触发器动作路径将指定动作的触发器执行路径,因此了解执行触发器时的路径以及如何定向应用逻辑非常重要。必须考虑动态运行时间条件,例如:
- 设备未启动,并且其变量不可访问。
- 无法访问外部数据库服务器。