Снятие показаний с WB-MWAC

Здравствуйте.
Прошу объяснить как получить показания с прибора WB-MWAC со счетных входов?

Такой код выдает нули. Я понимаю что это из-за пробела у контрола “P1 Counter”.

Цитата
defineVirtualDevice(“water_meter”,
{
title: “Water Meter”,
cells: {
Cold: {
type: “value (ro)”,
value: dev[“/devices/Fluid/controls/P1 Counter”],
},
Hot: {
type: “value (ro)”,
value: dev[“/devices/Fluid/controls/P2 Counter”],
}
}
});
Цитата

Как тогда нужно действовать, запросом в регистр? Или есть более простое решение?
Спасибо.

Добрый день.
Параметр “value” при создании виртуального устройства - он не предназначен для вывода изменяющихся значений, он просто определяет то, что будет в контроле (в поле) при его создании.
Доступ к значениям счетчиков получать так:

dev["Fluid"]["P2 Counter"]

И немного неверная идеология, ваша задача решается двумя этапами, создаем виртуальное устройство, которое будет отображать требуемые значения и правило которое подписывается на источник данных (счетчик) и при изменении его значения - обновляет поле виртуального.

Например:

//21_11_test_4.js
defineVirtualDevice("water_meter",
{
title: "Water Meter",
	cells: {
      Cold: {
      type: "value",
      value: 0,
      },
      Hot: {
      type: "value",
      value: 0,
      }
	}
});

defineRule("ruleForCold", { //Правило начинаем создавать 
      whenChanged: "Fluid/P2 Counter", //При изменении dev["Fluid"]["P2 Counter"], тут можно упростить запись
      then: function(newValue, devName, cellName) { //в переменной newValue передается изменившее ся значение, можно использовать ее вместо dev["Fluid"]["P2 Counter"]
              dev["water_meter"]["Cold"] = newValue; //установим значение в поле виртуального устройства
            }
  });
}

defineRule("ruleForHot", { //Правило начинаем создавать 
      whenChanged: "Fluid/P1 Counter", //При изменении dev["Fluid"]["P1 Counter"]
      then: function(newValue, devName, cellName) { //в переменной newValue передается изменившее ся значение, можно использовать ее вместо dev["Fluid"]["P1 Counter"]
              dev["water_meter"]["Hot"] = newValue; //установим значение в поле виртуального устройства
            }
  });
}

Не стал использовать создание правил из функций и сделал “в лоб” для понятности.
имена устройств и названия контролров - можно смотреть прямо в веб-интерфейсе:


В правилах используются только имя устройства (первый столбец) и имя контрола (второй). “devices” и “controls” опускаются.
Если что-то непонятно - спрашивайте, с удовольствием объясню, как раз наброски делаю для раздела про виртуальные устройства в wb-rules.
мне очень нужны типичные вопросы. :wink: чтобы понимать что обычно непонятно и о чем писать.

Здравствуйте.
Большое спасибо за ответ.
Я же правильно понимаю что WB-MWAC подсчитывает только количество импульсов, дальше надо еще приводить эту цифру к литрам?

По виртуальным устройствам отдельно есть типичный вопрос. Пробовал писать шаблон для создания виртуального устройства через вызов функции. Не работает. Код сюда или отдельную тему создать?

Да, только количество. В скрипте что я привел можно использовать инкремент текщего значения поля виртуального устройства на (количество импульсов*цена импульса). Ну или как удобнее.

Отдельную лучше.Постараюсь объяснить - как правильно.

Вот тема уже давно создана.

Ну, там собственно ничего сложного-то нету.