Modbus, getting bits in a register - Printable Version +- Logic Machine Forum (https://forum.logicmachine.net) +-- Forum: LogicMachine eco-system (https://forum.logicmachine.net/forumdisplay.php?fid=1) +--- Forum: Gateway (https://forum.logicmachine.net/forumdisplay.php?fid=10) +--- Thread: Modbus, getting bits in a register (/showthread.php?tid=522) |
Modbus, getting bits in a register - espen.sorensen@jmhansen.no - 21.12.2016 Hi, How can I read out single bits from a 16-bit register? And write the bit to a group address? The modbus addresses in the readcoils function are not the same as for the readinputs addresses. I also want a tip how I can read signed 16-bit register? (out side air temperature) Espen RE: Modbus, getting bits in a register - Erwin van der Zwart - 22.12.2016 Hi, If you read a 16 bits integer register you can get back value 0 to 65535, but when this register is used as single bit (not coil) you probably get back only value 0 or 1 out of this register. To use that value for a 1 bit KNX value you can simply transfer it to boolean by using this: Code: value = mb:readregisters(123) Code: r1 = mb:readregisters(124) BR, Erwin RE: Modbus, getting bits in a register - admin - 22.12.2016 If your register is not a bitmask but a single bit you can write it directly to a boolean object, any numeric value other than 0 will be treated as true. As for reading int16, you can use this: Code: value = mb:readregistervalue(123, 'int16') RE: Modbus, getting bits in a register - espen.sorensen@jmhansen.no - 22.12.2016 My 16-bit register is a bitmask, e.g.: Input register 3x0006 consists of: Bit 0 = Dampers open Bit 1 = Fire dampers open Bit 2 = Fire dampers closed Bit 3 = Status feedback pump Etc. I'm interested in getting out the status of a single bit within a register. Not the whole register acting as a bit, 0 or 1. Is it possible? RE: Modbus, getting bits in a register - admin - 22.12.2016 You can use this helper function: Code: function getbit(value, nr) RE: Modbus, getting bits in a register - espen.sorensen@jmhansen.no - 22.12.2016 Thanks! |