一次注入许多有效负载(节点红色)

时间:2019-03-25 21:26:49

标签: node.js 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

enter image description here

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

1 个答案:

答案 0 :(得分:2)

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

使用当前的代码,一旦到达第一个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")}
  ]
]