I am currently working on a project where I have connected a Brainbox ED-008 to receive pulses from an engine with regards to RPM counting.
Using a Modbus Read, Modbus Response and a Gauge node here.
The engine sends out a pulse two times for every revolution, and is from there converted from a Hz signal to a 24V signal.
My issue is that even thou the Modbus Response node receives counts, it only shows up a total amount of counts received, and not displaying current values as counts per minute:
Does anyone know how I can change it from displaying as total counts over to counts / minute?
You will need to filter a specific value that you want to use, currently you inject an object.
What does the output of a debug node show ?
The debug node receives a msg payload with constantly increasing values due to registering the ticks. So it is able to receive the information, I'm just uncertain on how I am supposed to specify which values I want to get up on the gauge display.
The engine on which I am working on is counting two pulses per revolution, so I also have to scale it down by 2 to get the actual reading. Say for instance that the engine has a max capacity of 4500 RPM, I would receive 9000 pulses. Also stuck on how to get the true readings instead of the pulses received.
You payload is array where value (2 pulses per revolution) is at first position.
Feed this payload to change node to grab the value from array and divide it by 2
Then feed it to the gauge node.
Tried adding a change node with a JSON expression as suggested, but receive this message in debug:
Tried changing the payload to , then i receive this:
I think you can even use
in the value field of the gauge node
Values undefined. Any suggestions for what nodes to use to be able to define the value of the input?
Sorry, my bad. I didn't read the first post carefully. You are working with modbus so these are buffers, not the numbers.
I think you'll need to start with get some knowledge from here : https://github.com/BiancoRoyal/node-red-contrib-modbus/wiki