Красный узел Несколько выходов в CSV - PullRequest
0 голосов
/ 25 июня 2018

У меня есть несколько переменных Modbus, которые я пытаюсь сохранить на локальном диске.

enter image description here

Мой функциональный скрипт выглядит следующим образом:

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;

Заранее спасибо.

РЕДАКТИРОВАТЬ: ошибка «Ошибка типа: невозможно прочитать свойство« Bus »из неопределенного» * ​​1018 *

1 Ответ

0 голосов
/ 25 июня 2018

Проблема заключается в том, что вы предполагаете, что при запуске узла функции он увидит объединенный объект msg, который содержит информацию от обоих узлов Modbus.Это не так.

Функциональный узел будет запускаться отдельно для каждого выходного сообщения от узлов Modbus, поэтому одновременно будет заполняться только один из msg.payload.Port.Bus.Volts или msg.payload.STBD.Bus.Volts.

Если вы хотите объединить выходные данные нескольких узлов перед передачей их в функциональный узел, вам нужно будет либо сохранить данные в контексте, либо использовать узел соединения для объединения выходных данных в массив перед обработкой.

...