Dear Community,
I am working with an energy meter Modbus server and need to replicate its specific behavior using the node-red-contrib-modbus
5.43.0 library. Below is an excerpt from the Modbus server specification for reference:
Physical Address | Length (words) | Variable Eng. Unit | Data Format | Notes |
---|---|---|---|---|
000Ah | 2 | V L3-L1 | INT32 | Value weight: Volt*10 |
000Bh | 1 | Carlo Gavazzi identification code | UINT16 | For a valid request, length must be 1; otherwise, the request is forwarded to instantaneous variables. |
Objective:
I would like to understand if the node-red-contrib-modbus
5.43.0 library can be configured to achieve the following behavior:
- Read Registers: Handle a read request for specific registers (e.g.,
000Ah
and000Bh
) and correctly process data with specified data formats (INT32
andUINT16
respectively). - Conditional Behavior: Implement conditional logic such that:
- If a request is made for address
000Bh
with a length other than1
, it forwards the request to a different register range (e.g., instantaneous variables).
- If a request is made for address
Questions:
- Can the
node-red-contrib-modbus
library support this behavior through its built-in nodes and configuration? - If additional logic is needed (e.g., for conditional forwarding), is there an example or guidance on how to implement this using Node-RED function nodes or other mechanisms in conjunction with
node-red-contrib-modbus
? - Are there any specific configurations or node settings that would need to be adjusted to properly parse the data formats (
INT32
for register000Ah
andUINT16
for register000Bh
)?
Any advice, examples, or documentation references would be greatly appreciated.
Thank you for your assistance.