一次注入许多有效载荷(node-red)

Injecting many payloads at once (node-red)

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

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 客户端块。所以我的问题是:有没有人知道是否有一种方法可以注入具有不同主题的多个有效载荷,最好是使用函数,而不是用注入块一个一个地注入?

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

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

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

  1. return 要发送的消息对象数组。
  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")}
  ]
]