新闻中心

PRESS CENTER 纵横智控
你的位置: 首页 新闻 技术应用
纵横智控

函数计算-条件判断功能节点说明-EG系列网关功能节点

2025-03-10 11:00:49 阅读: 发布人:纵横智控

原文:函数计算-条件判断

函数计算

概述

对接收到的消息进行处理的JavaScript代码,我们称之为函数。

输入消息存储在命名为msg的对象中,供JavaScript代码调用。通常情况下,msg的有效消息存储在msg.payload属性中。函数可以返回一个或多个消息对象(对应一个或多个输出端口),也可以为了停止流程什么都不返回。

输入


msg

#输入消息对象

输出


msg

#输出消息对象

功能

返回一个消息

要将消息传递给下一个节点,请使用:return msg

返回多个消息

要将消息传递给下面多个节点,请使用:return [msg1,null,msg3...],null表示不发送任何消息

日志输出

使用一下功能输出日志信息和输出错误(不需要调试节点):

node.log("Log message")

node.warn("Warning")

node.error("Error")

示例

1. 发送一条消息

1. 发送一条消息

2. 发送多条消息

2. 发送多条消息

3. 异步发送消息

3. 异步发送消息

4. 打印事件信息

4. 打印事件信息

5. 处理错误信息

5. 处理错误信息

6. 存储全局变量

6. 存储全局变量

7. 显示状态信息

7. 显示状态信息

8. 引用第三方库

8. 引用第三方库

条件判断

概述

收到消息后,将消息按照设定的规则,发送到相应的输出端口(“switch......case1...case2...”)。可以设置为只匹配一个规则就停止继续匹配(break)。

输入

msg.payload

#有效消息

输出

msg.payload

#规则匹配后的有效输出

示例

1规则输出

将msg.payload值按照大于0,等于0,小于0的规则分别输出:

将msg.payload值按照大于0,等于0,小于0的规则分别输出:

2. 匹配所有规则

将msg.payload值按照小于10,大于-10匹配所有规则,那么0既满足小于10也满足大于-10会输出两次:

将msg.payload值按照小于10,大于-10匹配所有规则,那么0既满足小于10也满足大于-10会输出两次:

3. 匹配第一条规则后就停止

将msg.payload值按照小于10,大于-10匹配第一条规则后就停止,那么0满足小于10后即停止匹配,只输出一次:

将msg.payload值按照小于10,大于-10匹配第一条规则后就停止,那么0满足小于10后即停止匹配,只输出一次:

4. 根据数据类型选择输出

根据数据类型选择输出

5. 使用JSONata表达式设置规则

使用JSONata表达式设置规则

6. 使用JSONata表达式设置属性

6. 使用JSONata表达式设置属性

7. 根据正负值重构消息序列

7. 根据正负值重构消息序列

8. 根据Topic路由消息

8. 根据Topic路由消息

9. 对象处理单一属性

在EG网关中,大多数节点(如Modbus读取、PLC节点)采集的数据通常以对象形式输出。本示例演示如何从中提取特定点位的数据并进行判断。

对象数据格式如下:data1,data2分别为该对象的一个属性。

取data1的值进行条件判断,小于等于1和大于1分别触发不同的流程。

示例:取data1的值进行条件判断,小于等于1和大于1分别触发不同的流程。

热门产品