Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

213
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!