Node-Red 多个输出到 CSV

Node-Red Multiple outputs into CSV

我尝试将多个 Modbus 变量存储在本地磁盘上。

我的函数脚本如下:

var msgPortBus,msgStbdBus;
if (msg.topic === 'BusVolts') {
    msgPortBus = { payload: msg.payload.Port.Bus.Volts, };
    msgStbdBus = { payload: msg.payload.STBD.Bus.Volts, };
}
msg.payload = [msgPortBus,msgStbdBus]

return msg;

我假设错误出在上面某处的代码中....两个 Modbus 节点的主题是 'BusVolts'。

我对一个输入使用了以下代码,它为我提供了我的时间戳,然后是我希望从一个输入获得的数据,但我不确定如何区分不同的有效负载。

msg.payload = new Date().toString() + 
    "," + msg.payload;
return msg;

提前致谢。

编辑:错误是 "Type Error: Cannot read property 'Bus' of undefined"

问题是您假设当函数节点 运行s 它将看到一个组合的 msg 对象,其中包含来自两个 modbus 节点的信息。事实并非如此。

功能节点将 运行 分别针对来自 modbus 节点的每个输出消息,因此一次只会填充 msg.payload.Port.Bus.Voltsmsg.payload.STBD.Bus.Volts 之一。

如果你想在将多个节点的输出输入到函数节点之前组合它,你将需要查看将数据存储在上下文中或使用 Join 节点将输​​出一起批处理到一个数组中,然后再处理它.