Hello everyone,
I am working on a remote monitoring solution using a Teltonika RUT200 and a DEIF generator controller communicating through Modbus TCP.
The DEIF controller provides several generator status signals packed into a single 16-bit holding register. For example, register 91 contains information such as:
-
Generator running
-
Generator available
-
Fail to start
-
Stopped with fault
-
Common warning
-
Common shutdown
-
And other status bits
The register is structured as a bit field, where each bit represents a different status.
I configured the RUT200 Modbus TCP Client and discovered that when the data type is set to Bool, the router returns the register as an array of bits, for example:
[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0]
This suggests that the device can internally unpack the 16-bit register.
However, my challenge is the following:
I need to trigger SMS alarms based on individual bits, such as:
-
Bit 9 = Generator Running
-
Bit 7 = Generator Stopped with Fault
-
Bit 6 = Generator Fail to Start
The problem is that multiple bits may be active at the same time. For example:
Generator Running = 1
Generator Available = 1
which results in multiple active bits within the same register.
So my questions are:
-
Is there any way in the RUT200 to monitor or compare a single bit from a Modbus register?
-
Does the Modbus Alarm service support bit masking, bit extraction, or wildcard comparisons?
-
Can Event Juggler be used to access individual bits from a Modbus Bool array?
-
Has anyone implemented a similar solution without using an external PLC or SCADA system?
At the moment I am considering using dedicated frequency and voltage registers instead of the packed status word, but I would like to know whether bit-level processing is possible directly inside the RUT200.
Any advice or examples would be greatly appreciated.
Thank you.