В
Size: a a a
В
MZ
В
MZ
В
AA
MZ
AD
createState("javascript.0.States.PID_Status.D0", 0,{name: "Ошибка на входе 1"});
createState("javascript.0.States.PID_Status.D3", 0,{name: "Прочая ошибка несовместимая c работой прибора"});
createState("javascript.0.States.PID_Status.D4", 0,{name: "Срабатывание реле 1"});
createState("javascript.0.States.PID_Status.D5", 0,{name: "Срабатывание реле 2"});
createState("javascript.0.States.PID_Status.D6", 0,{name: "Дистанционное управление регулятором"});
createState("javascript.0.States.PID_Status.D8", 0,{name: "Ручной режим управления"});
createState("javascript.0.States.PID_Status.D9", 0,{name: "Регулятор"});
createState("javascript.0.States.PID_Status.D10", 0,{name: "Автонастройка"});
createState("javascript.0.States.PID_Status.D11", 0,{name: "LBA"});
on({id: 'modbus.2.holdingRegisters.49.0_STAT', change: "any"}, function (obj) {
setState("javascript.0.States.PID_Status.D0", (obj.state.val & 1), true);
setState("javascript.0.States.PID_Status.D3", ((obj.state.val & 8) >> 3), true);
setState("javascript.0.States.PID_Status.D4", ((obj.state.val & 16) >> 4), true);
setState("javascript.0.States.PID_Status.D5", ((obj.state.val & 32) >> 5), true);
setState("javascript.0.States.PID_Status.D8", ((obj.state.val & 256) >> 8), true);
setState("javascript.0.States.PID_Status.D9", ((obj.state.val & 512) >> 9), true);
setState("javascript.0.States.PID_Status.D10", ((obj.state.val & 1024) >> 10), true);
setState("javascript.0.States.PID_Status.D11", ((obj.state.val & 2048) >> 11), true);
});
MZ
AS
A
A
B
A
AS
AS
A
B
EA
B
(obj.state.val & 32) >> 5
лучше сначала сдвинуть а потом только "и" с единицей. Тогда не надо каждый раз вычислять правильную маску: (obj.state.val >> 5) & 1