Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

CODESYS. ramp_int изменяет temp2 резко, не в течение некоторого времени, но при смене на любую другую переменную все ок

Август Сентябрь Знаток (359), открыт 18 часов назад
Надеюсь, кто-нибудь здесь разбирается в этом..
Подробнее:
это лабораторная работа - элемент умного дома.
если температура в комнате (temp2) превышает допустимую (ust) с погрешностью (range), то включается кондиционер, если меньше допустимой, то калорифер.

Например: температура 30*, допускаемая 20*+-3,т.е. 20+3=23 (topRange), 30>23, поэтому должен включиться кондиционер. И тут возникает вопрос, как это сделать?
Мне нужно, чтобы temp2 уменьшалась постепенно, а не резко.
Использую ramp_int для этого. Если к выходу out не подключать или подключать новую переменную, то все работает нормально - постепенно увеличивается-уменьшается значение до нужного. Но ставлю temp2 и изменяет сразу резко на ust. В чем может быть проблема?
2 ответа
Vov4ik Мастер (1799) 18 часов назад
Если temp2 - измеряемая температура, очевидно, возникает петля когда соединяете два выхода.
Август СентябрьЗнаток (359) 18 часов назад
как её грамотно оборвать тогда можно? temp2 сейчас устанавливается ползунком в окне визуализации, затем нажимается кнопка, включающая режим охлаждения/нагрева, и мне нужно, чтобы temp2 уменьшалась, ну и логично, чтобы на ползунке уменьшение было тоже, и если увеличивалась, то и на ползунке..
Vov4ikМастер (1799) 18 часов назад
Не знаю, назовите хоть temp2_ramp.
А зачем вам программно ограничивать её скорость изменения? Температура ведь не может быстро меняться. Или вы так фильтрацию делаете?
Август Сентябрь Знаток (359) Vov4ik, я делаю все в режиме эмуляции. То есть пользователь устанавливает допустимую температуру в комнате и текущую температуру в комнате 2 (temp2). И шкала в комнате 2 отображает эту temp2. При нажатии на кнопку должен включиться кондиционер и плавно опустить эту температуру до допустимой. Использую ramp только чтобы плавно на шкале отобразить работоспособность кондиционера, скорость мне в принципе неважна, но и мгновенно тоже не нужно.
/bin/laden Искусственный Интеллект (116843) 17 часов назад
вангую, EN должен быть всегда включен, а IN должна быть отдельная переменная управляемая startCond (0, напр.) и startCalor (40, напр.), если обе выключены, то = temp2. или завести более расширеную логику с медленным уменьшением/увеличением значения в окне гистерезиса в зависимости от зима/лето.
симуляция физических процессов это не так просто как может показаться.
и 10 дискрет в сек. это слишком много, если у тебя 1:1 масштаб значений
Похожие вопросы