WBIO-DO-R10R-4 и рестарт контроллера

Есть несколько WBIO-DO-R10R-4 подключенных к WB 7.3 версия прошивки последняя testing. Если раз 10 переключать ON и DIR на канале то контроллер теряет связь и уходит на перегрузку. С чем может быть связано и как починить?

Здравствуйте. А что и как подключено к каналам реле?

Да подключено по стандартной схеме, вентилятор 2 скорости (45 и 60Вт), каждая скорость на свое реле.

Что значит на своем реле? Например, Одна скорость на L1, другая на L2? или одна скорость на NO, другая на NC канала L1?

Также опишите пожалуйста детальнее алгоритм управления и состояние каналов и поведение вентилятора на каждом этапе алгоритма.

Добрый день!

Нарисуйте, пожалуйста, схемку хоть на бумажке. Эти подключения словами обсуждать - всегда ничего хорошего.

вентилятор имеет N, PE, L1 и L2.

L1 и L2 - это два силовых провода при подключении каждого включается одна или другая катушка которые заставляют крутиться венрилятор быстрее или медленнее.

Те включая программно ON2 - включается NO вход (L1), включая DIR2 - включается NC (L2). Чтобы менять скорости приходит щелкать туда сюда чтобы менять их, и в какой-то момент контроллер перестает отвечать, и перезагружается.

Добрый день.
Данный модуль предназначен для управление электроприводом штор, роллет, запорных кранов. Логику переключения и задержку нужно задавать правилами на контроллере.

Для схемы что вы планируете управлять двумя скоростями вентилятора подходит
Модуль реле 3-канальный WB-MR3LV

Указать в правилах задержку не проблема, вопрос немного в другом. Почему выключается контроллер, даже если каким-то образом реле дугой замкнулось что это дает контроллеру ? Аварийное состояние и выключение ?

При образовании в реле дуги происходят помехи, влияющие на работу соседних устройств. При коммутации индуктивной нагрузки переключение контактов производит высокочастотный выброс, который может достигать нескольких киловатт и наводиться на цепи других устройств.

Т.к. модуль подключен по i2C это достаточно критично для контроллера WB и он уходит в перезагрузку.

Для подавления выбросов используются снабберные цепочки, это уменьшает уровень помех и улучшает стабильность работы оборудования.
Подробнее в статье Помехи при коммутации индуктивной нагрузки.

Уточните пробовали описать задержку правилом?
Сможете прислать мануал на ваш двигатель?

Правилом еще не делал, пока только вручную переключал для теста.

DOSPEL.pdf (3,0 МБ)

Конкретно у меня стоит WD II 150

Надо пробовать сделать и протестировать.
Иначе мы получаем ситуацию описанную в документации.
В момент переключения на второй обмотке может быть на 180 развернутое напряжение за счет трансформаторного эффекта, что тоже очень плохо для работы данного модуля.

Правило подготовил такое, но здесь добавлена еще 3-корость которая находится на MDM3, но уже сомневаюсь что стоит ее туда вставлять, ведь если произойдет глюк какой-то (например грязные значения после перегрузки контроллера у меня сейчас иногда такое бывает и открывается гаражные ворота), то мы получим две встречные катушки. Подумываю 3 скорость на mdm3 убрать, и оставить только реле, но может есть у вас какие-то предложения чтобы оставить?

(function() {

  var virt = 'speed-fan', data = {};

  // Инициализируем виртуальное устройство со служебными полями

  defineVirtualDevice(virt, {
    title: {
      en: 'Fan · wb-rules',
      ru: 'Вентилятор · wb-rules'
    },
    cells: {
      enable: {title: {en: 'Enabled', ru: 'Включен'}, type: 'switch', value: false, forceDefault: true, order: 1},
      speed: {title: {en: 'Fan speed', ru: 'Скорость'}, type: 'range', value: 0, min: 0, max: 3, order: 2}
    }
  });

  // Работа с топиками напрямую через объект

  getDevice(virt).controlsList().forEach(function(ctrl) {
    var topic = ctrl.getId();

    Object.defineProperty(data, topic, {
      get: function() { return dev['{}/{}'.format(virt, topic)] },
      set: function(value) { dev['{}/{}'.format(virt, topic)] = value }
    });
  });

  // Правило переключения нагрузочных реле

  defineRule('{} ~ change'.format(virt), {
    whenChanged: [virt + '/enable', virt + '/speed'],
    then: function () {
      defineAlias('speed1', 'wb-mdm3_010/K2');
      defineAlias('speed23', 'wb-gpio/EXT5_ON2');
      defineAlias('speed3', 'wb-gpio/EXT5_DIR2');

      speed1 = speed3 = speed23 = false;

      if (!data.enable || !data.speed) return;

      setTimeout(function() {
        speed1 = (data.speed == 1);
        speed3 = (data.speed == 3);

        setTimeout(function() {
          speed23 = (data.speed >= 2);
        }, 100);
      }, 250);
    }
  });

  // Переключение скоростей по кругу 0 → 1 → 2 → 3 → 0

  defineRule('{} ~ cycle'.format(virt), {
    whenChanged: 'wb-mdm3_010/Input 3 counter',
    then: function (click) {
      if (!click || isNaN(click)) return;
      data.speed = (data.speed + 1) % 4;      
    }
  });

})();

К сожалению нет опыта таких экспериментов, но делал бы для каждого модуля отдельное вирт. устройство. Да и для чистоты эксперимента с WBIO-DO-R10R-4 будет полезнее.

вырежу 3 скорость, и попробую на WBIO-DO-R10R-4.