首页 > 解决方案 > 一次注入多个有效载荷(节点红色)

问题描述

我有个问题。我是红色节点的新手,我想一次注入许多具有不同主题的有效负载。我想用第一个节点中的功能来做到这一点。它的功能如下所示:

msg.topic="ns=2;s=Target01.Nazwa.Nazwa[0];datatype=String"
msg.payload=global.get("nazwa")
return msg
msg.topic="ns=2;s=Target01.Nazwa.Nazwa[1];datatype=String"
msg.payload=global.get("nazwa2")
return msg
...
msg.topic="ns=2;s=Target01.Nazwa.Nazwa[9];datatype=String"
msg.payload=global.get("nazwa9")
return msg

在此处输入图像描述

但是它不起作用。第二个节点正在工作,但我总共需要 150 多个块连接到 OPC UA 客户端块。所以我的问题是:有谁知道是否有一种方法可以注入具有不同主题的多个有效负载,有利于功能,而不是一个一个地使用注入块?

标签: node.jsnode-red

解决方案


文档解释了如何从状态节点发送多条消息。

使用您当前拥有的代码,一旦到达第一return条语句,Function 节点就会停止进一步处理,因此只发送一条消息。

要从功能节点发送多条消息,您有两种选择。

  1. 返回要发送的消息对象数组。
  2. 呼叫node.send(msg);您要发送的每条消息。

例如:

return [
 [
   { topic: "ns=2;s=Target01.Nazwa.Nazwa[0];datatype=String", payload: global.get("nazwa")},
   { topic: "ns=2;s=Target01.Nazwa.Nazwa[1];datatype=String", payload: global.get("nazwa2")},
   { topic: "ns=2;s=Target01.Nazwa.Nazwa[9];datatype=String", payload: global.get("nazwa9")}
  ]
]

推荐阅读