0
Answered

Битовая маска ModBUS TCP

Кирилл 3 years ago updated by Aleksandr Romanov (CTO) 3 years ago 4

Добрый день. Имеется Холдинг регистр. Необходимо обратится к 2 биту. Заменить значение, и записать его обратно в регистр. Как можно прописать эту команду в JS? Может есть пример кода? Спасибо.

Помогите  пожалуйста Люди!!!!!

+1
function prss() {
  var dev=IR.GetDevice("Modbus TCP");
  var n=dev.GetFeedback("Channel_Feedback 16406");
  var mask = 1 << 1; // gets the 2th bit
  if ((n & mask) != 0) {
    // bit is set
    n &= ~mask; //clear a bit: 0
  } else {
    // bit is not set
    n |= mask; //set a bit: 1
  }
  dev.Set("Channel_Command 16406", n);
}
IR.AddListener(IR.EVENT_TAG_CHANGE, IR.GetDevice("Modbus TCP")), function(name, value) 
{  
  if (name=="Channel_Feedback 16406") {
    var mask = 1 << 1; // gets the 2th bit
    value ^= mask; //toggle a bit: 0|1
    dev.Set("Channel_Command 16406", value );
  }
});