Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

215
Visualizações
Incrementar 2 variables en paralelo Node-RED

Estoy tratando de crear un script que cree 2 variables e incremente cada una de ellas según una condición. El peso neto real se recibe en tiempo real con una conexión MQTT a un servidor y los valores se muestran en un gráfico de líneas. Cuando este valor es superior o igual a 0,500, debo contar la entrada de ese elemento como un elemento "aceptable", y si es inferior a 0,500, debo contarlo como un elemento "inferior". El problema es que al inicializar estas variables como tengo en mi código, las restablece a 0 cada vez que se recibe un nuevo valor, haciendo que los contadores pasen solo de 0 a 1 cuando se cumple la condición, y de vuelta a 0 cuando no se cumple la condición. reunió. Entonces, en términos lógicos, este script funciona, pero solo hace la mitad de su trabajo. He intentado muchas formas diferentes de abordar esto, pero parece que no puedo obtener los resultados necesarios. También busqué en los foros de Node-RED, pero prácticamente no hay información útil sobre esta herramienta en línea.

 var ok = 0; var under = 0; var scartoTotale; var actualNetWeight = msg.payload.actualNetWeight.value; var numeroPezziTot = msg.payload.identity; if(actualNetWeight >= 0.500) { ok++; } else { under++; scartoTotale += (0.500 - actualNetWeight); } msg.payload.ok = ok; msg.payload.under = under; msg.payload.scartoTotale = scartoTotale; return msg;

El 'msg' es estándar para Node-RED y la carga útil es la respuesta que recibo del servidor, del cual recibo mis datos.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Lo importante a recordar es que el código en el nodo de función se ejecuta cada vez que llega un nuevo mensaje a la entrada.

Entonces, las primeras 2 líneas siempre establecerán las variables ok y under en 0.

Si desea almacenar el estado entre los mensajes, debe usar lo que se conoce como contexto. Detalles aquí https://nodered.org/docs/user-guide/writing-functions#storing-data

Para arreglar su código, necesita cambiar las cosas de la siguiente manera:

 var ok = context.get('ok')||0;; var under = context.get('under')||0;; var scartoTotale; var actualNetWeight = msg.payload.actualNetWeight.value; var numeroPezziTot = msg.payload.identity; if(actualNetWeight >= 0.500) { ok++; } else { under++; scartoTotale += (0.500 - actualNetWeight); } context.set('ok', ok) context.set('under', under) msg.payload.ok = ok; msg.payload.under = under; msg.payload.scartoTotale = scartoTotale; return msg;
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda