1 2 3 4 5 6 7 8 9 10 8.5/10 8,30оценок: 10

Мой CCU 825 - 3 часть

Тема в разделе "Охрана дачных поселков. Безопасность", создана пользователем Deep, 30.10.17.

  1. Ян 11
    Регистрация:
    14.06.14
    Сообщения:
    7.889
    Благодарности:
    10.710

    Ян 11

    Живу здесь

    Ян 11

    Живу здесь

    Регистрация:
    14.06.14
    Сообщения:
    7.889
    Благодарности:
    10.710
    Адрес:
    Moscow, Russia
    На самом деле выход 0-5В, 0-2В будут работать без проблем, лишь влияют на точность. В уме пересчитывать ничего не надо.

    PS: подключены несколько аналоговых датчиков, в т. ч. те, где ноль вольт НЕ равны значению 0. Или вообще невозможны.
    И народмон штатно рисует все эти графики без проблем. Только, например ругается, что при пропадании внешнего питания напряжение становится 0 и получаемая цифра -500ppm (содержание СО2) не имеет физического смысла.
     
  2. blacksnakerus
    Регистрация:
    08.08.13
    Сообщения:
    194
    Благодарности:
    44

    blacksnakerus

    Живу здесь

    blacksnakerus

    Живу здесь

    Регистрация:
    08.08.13
    Сообщения:
    194
    Благодарности:
    44
    Адрес:
    Калуга
    Логика не претендует на технологичность, можно было использовать какие-то функции для подсчета оптимальной температуры, но методом подбора значений я сделал ее удобной именно для себя.
    Код:
    const POLL_PERIOD = 5 * 10 * 60; # период опроса (1 единица = 100 мс), первое число - кол-во минут
    const FRACT = 8; # размер дробной части fixed-point в битах
    const INPUT_NUM_OUTDOOR = 4; # номер входа с температурой улицы
    const INPUT_NUM_TEMP_TP_1 = 7; # номер входа с температурой ТП 1
    const INPUT_NUM_TEMP_TP_2 = 8; # номер входа с температурой ТП 2
    const INPUT_NUM_TEMP_HEATER = 5; # номер входа с температурой котла
    const OUTPUT_NUM_TP_1_UP = 3; # номер выхода ТП 1 для увеличения температуры
    const OUTPUT_NUM_TP_1_DOWN = 4; # номер выхода ТП 1 для уменьшения температуры
    const OUTPUT_NUM_TP_2_UP = 5; # номер выхода ТП 2 для увеличения температуры
    const OUTPUT_NUM_TP_2_DOWN = 6; # номер выхода ТП 2 для уменьшения температуры
    const DELTA_T = 2 << FRACT; # допустимая дельта в градусах
    const PULSE_OTPUT_PERIOD = 10; # в одной единице времени 100 миллисекунд
    
    proc main()
    {
        var e = $get_event_id();
        if e == $EVT_INIT {
            init();
        } else if e == $EVT_TIMER1 {
            timer_handler();
        }
    }
    
    # инициализация приложения
    proc init()
    {
        $set_timer(1, POLL_PERIOD);
        timer_handler();
    }
    
    # обработчик события таймера
    proc timer_handler()
    {
        var temp_outdoor = get_temp(INPUT_NUM_OUTDOOR); # температура на улице
       
        adjustment_tp(INPUT_NUM_TEMP_TP_1, OUTPUT_NUM_TP_1_UP, OUTPUT_NUM_TP_1_DOWN, temp_outdoor); # подстройка температура ТП 1
        adjustment_tp(INPUT_NUM_TEMP_TP_2, OUTPUT_NUM_TP_2_UP, OUTPUT_NUM_TP_2_DOWN, temp_outdoor); # подстройка температура ТП 2
    }
    
    # регулировка температуры Теплого Пола
    proc adjustment_tp(input_num, output_up_num, output_down_num, temp_outdoor)
    {
        var temp_tp = get_temp(input_num);
        var target_temp_tp = get_target_temp_tp(temp_outdoor) << FRACT;
       
        if temp_tp > target_temp_tp + DELTA_T {
            $set_output_pulse(output_down_num, $ON, PULSE_OTPUT_PERIOD);
        }
        else if temp_tp < target_temp_tp - DELTA_T {
            $set_output_pulse(output_up_num, $ON, PULSE_OTPUT_PERIOD);
        }
    }
    
    # возвращает целевую температуру ТП на основе текущей температуры улицы
    fun get_target_temp_tp(temp_outdoor)
    {
        if temp_outdoor >= 10 << FRACT {
            return 35;
        }
        else if temp_outdoor >= 0 << FRACT {
            return 38;
        }
        else if temp_outdoor >= -10 << FRACT {
            return 40;
        }
        else if temp_outdoor >= -20 << FRACT {
            return 42;
        }
        else {
            return 43;
        }
    }
    
    # возвращает температуру переданного входа
    fun get_temp(input_num)
    {
        return $get_sensor_value(input_num, FRACT);
    }
     
  3. Col
    Регистрация:
    01.04.09
    Сообщения:
    6
    Благодарности:
    4

    Col

    Участник

    Col

    Участник

    Регистрация:
    01.04.09
    Сообщения:
    6
    Благодарности:
    4
    Адрес:
    Москва
    @blacksnakerus, большое спасибо! Просто не очень в программировании разбираюсь. Из Вашего примера много уяснил для себя.
    Моя задача по ночному тарифу прогревать дом в зависимости от внешней температуры, чтобы хватило до следующей ночи. С конвекторами будет попроще. Единственное добавлю проверку профиля, если профиль "Присутствие", то включаем на постоянку, если "Антипромерзание" то по алгоритму.
     
  4. blacksnakerus
    Регистрация:
    08.08.13
    Сообщения:
    194
    Благодарности:
    44

    blacksnakerus

    Живу здесь

    blacksnakerus

    Живу здесь

    Регистрация:
    08.08.13
    Сообщения:
    194
    Благодарности:
    44
    Адрес:
    Калуга
    Выглядит не сложно
     
  5. blacksnakerus
    Регистрация:
    08.08.13
    Сообщения:
    194
    Благодарности:
    44

    blacksnakerus

    Живу здесь

    blacksnakerus

    Живу здесь

    Регистрация:
    08.08.13
    Сообщения:
    194
    Благодарности:
    44
    Адрес:
    Калуга
    Хочу на ночь ставить датчики движения 1 этажа на контроль. Для этого планирую переводить контроллер в режим Защита.
    Для перевода в Защиту надо подать импульс. Хотелось бы делать это с помощью какой-то дистанционной беспроводной кнопки. Всё, что видел пока - это кнопки, которые работают в режиме вкл\выкл, но никак не импульс, к тому же все они заточены под 220.
    Есть ли какое-то решение под нашу малоточку, в идеале именно импульс, а не вкл\выкл?
     
  6. Maikl8
    Регистрация:
    07.10.11
    Сообщения:
    3.097
    Благодарности:
    1.662

    Maikl8

    Живу здесь

    Maikl8

    Живу здесь

    Регистрация:
    07.10.11
    Сообщения:
    3.097
    Благодарности:
    1.662
    Адрес:
    Санкт-Петербург
    С телефона в чем проблема включить?
     
  7. blacksnakerus
    Регистрация:
    08.08.13
    Сообщения:
    194
    Благодарности:
    44

    blacksnakerus

    Живу здесь

    blacksnakerus

    Живу здесь

    Регистрация:
    08.08.13
    Сообщения:
    194
    Благодарности:
    44
    Адрес:
    Калуга
    Не удобно, долго
     
  8. Wiktar
    Регистрация:
    25.05.07
    Сообщения:
    4.929
    Благодарности:
    4.317

    Wiktar

    Живу здесь

    Wiktar

    Живу здесь

    Регистрация:
    25.05.07
    Сообщения:
    4.929
    Благодарности:
    4.317
    Адрес:
    Москва
    Практически 99,9 процентов охранного оборудования работают с возможностью применения радиобрелоков, в т. ч. и CCU. При этом все приемники работают с возможностью программирования "импульс-переключение" на выходе. Ищите в разделах тревожных сигнализаций, системах радио сигнализаций. Их сотня, или около того, для выбора. На любое кол-во кнопок, на одно-несколько реле на выходе, на абсолютно разные варианты программирования выходов приемника. Не забывайте, что есть сигнализации, которые не требуют отдельного брелока-приемника, а имеют свой "родной" брелок, прописанный в собственных мозгах системы. Вам такой, естественно, не нужен. К удивлению, лично я ни разу не видел на 220в :), всё на 12в. (Правда, никогда такие и не искал) Наверное, есть... :)
     
    Последнее редактирование: 10.03.21
  9. Col
    Регистрация:
    01.04.09
    Сообщения:
    6
    Благодарности:
    4

    Col

    Участник

    Col

    Участник

    Регистрация:
    01.04.09
    Сообщения:
    6
    Благодарности:
    4
    Адрес:
    Москва
    @blacksnakerus, st-ex001rf, ищите подобное (для шлагбаумов и прочих ворот с импульсным управлением), в Китае будет дешевле.

    Телеграмм бот? Или подключение не постоянное?
     
  10. blacksnakerus
    Регистрация:
    08.08.13
    Сообщения:
    194
    Благодарности:
    44

    blacksnakerus

    Живу здесь

    blacksnakerus

    Живу здесь

    Регистрация:
    08.08.13
    Сообщения:
    194
    Благодарности:
    44
    Адрес:
    Калуга
    Спасибо, то, что надо

    Ботом пользуюсь, но для данного случая хочется физической кнопки, чтобы утром сонным не тыкать кнопки в телефоне)
     
  11. Col
    Регистрация:
    01.04.09
    Сообщения:
    6
    Благодарности:
    4

    Col

    Участник

    Col

    Участник

    Регистрация:
    01.04.09
    Сообщения:
    6
    Благодарности:
    4
    Адрес:
    Москва
    @Ocean, подскажите, пожалуйста, такой датчик можно подключить и если можно то как правильно? Я так понимаю у него на 72А тоже два вольта примерно...
    CSLA2CD, Датчик тока линейный AC/DC 0.02% 72A
     
  12. dahn21
    Регистрация:
    04.12.19
    Сообщения:
    8
    Благодарности:
    3

    dahn21

    Участник

    dahn21

    Участник

    Регистрация:
    04.12.19
    Сообщения:
    8
    Благодарности:
    3
    Доброго дня,
    подключаю по инструкции радсела несколько датчиков движения SWAN QUAD. в инструкции указан оконечный резистор 15кОм. Но я подключаю ко входу In9 платы расширения, у которого как известно сопротивление 15кОм, а не 30кОм как у In1-8. Это сопротивление как-то влияет на номинал оконечного резистора?
     
  13. 1234254
    Регистрация:
    08.02.16
    Сообщения:
    557
    Благодарности:
    264

    1234254

    Живу здесь

    1234254

    Живу здесь

    Регистрация:
    08.02.16
    Сообщения:
    557
    Благодарности:
    264
    Новичок в этой теме. Образование не профильное :aga: Подбираю контроллер с датчиками. Про датчики более менее понятно. Не совсем понял про реле встроенные. У одних контроллеров указано 5 А, у других 10А. Если нужна нагрузка больше, то ставят отдельное силовое реле на нужный ампераж. Выходит, что встроенное реле должно управлять силовым? Где почитать про схему подключения силового реле к контроллеру? Какие реле брать. Подключать планируется тепловой насос и конвекторы электрические. Последние можно и по встроенным раскидать, распределив. А вот на ТН лучше с запасом. кВт на 5. Реле нужно для возможности перезапуска по питанию ТН. Сам ТН имеет встроенный wifi модуль. И управление им возможно через роутер с модемом GSM. Но были случаи выброса ТНом ошибки и перезагрузка получалась только по питанию. Если датчик температуры контролера пришлет аларм по снижению температуры ниже выставленной, то остается попробовать перезагрузить ТН по питанию и ждать изменения температуры вверх. Или я намудрил и можно реализовать по другому? Мне нужно именно отключить ТН и потом включить.
     
    Последнее редактирование: 24.03.21
  14. svlabm
    Регистрация:
    28.11.15
    Сообщения:
    5.995
    Благодарности:
    7.046

    svlabm

    Живу здесь

    svlabm

    Живу здесь

    Регистрация:
    28.11.15
    Сообщения:
    5.995
    Благодарности:
    7.046
    Адрес:
    Москва
    Использовать встроенные реле не желательно.
    ССU->Промежуточное реле (катушка на 12 вольт/контакты на 220V)-> силовой контактор на 220V или управляемое твердотельное реле нужной мощности.
     
  15. Maikl8
    Регистрация:
    07.10.11
    Сообщения:
    3.097
    Благодарности:
    1.662

    Maikl8

    Живу здесь

    Maikl8

    Живу здесь

    Регистрация:
    07.10.11
    Сообщения:
    3.097
    Благодарности:
    1.662
    Адрес:
    Санкт-Петербург
    Поищите в моих сообщениях, я выкладывал блок из 4х реле на 30А с оптической развязкой.
    У меня уже второй год работает, все норм. На остальные выводы, еще пару закупил, но поменьше, на 10А.