Автор, вы должны читать регистры так, как того требует документация прибора.
Битовая маска это всего лишь абстракция. Это только значит, что в определенном регистре значение, представляет собой эту самую битовую маску, но это не означает, что надо пытаться прочитать каждый бит какими-то другими средствами протокола.
допилите по необходимостиКод:// Возвращает бит n значения val. public double GetBit(double val, int n) { ulong ulVal = (ulong)val; return (ulVal >> n) & 1ul; }