Внедрение множества полезных нагрузок одновременно (красный узел) - PullRequest
0 голосов
/ 26 марта 2019

У меня проблема. Я новичок в узле 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

Однако это не работает. 2-й узел работает, но в целом я хотел бы подключить более 150 блоков к клиентскому блоку OPC UA. Поэтому мой вопрос: кто-нибудь знает, есть ли способ внедрить несколько полезных нагрузок с разными темами, предпочтительно с помощью функции, вместо того, чтобы делать это один за другим с помощью блоков ввода?

1 Ответ

2 голосов
/ 26 марта 2019

Документация объясняет, как отправлять несколько сообщений из узла состояния.

С имеющимся у вас кодом, как только он достигает первого оператора 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")}
  ]
]
...