Девайс предназначен для управления электромагнитным клапаном. Т.е. регулировка расхода жидкости через клапан по определенному алгоритму в зависимости от температуры. Все материалы по техническому заданию во вложении. Тема будет развиваться с помощью Soir.
Это отбор готового продукта из ректификационной колонны. Для получения чистой фракции необходимо снижать отбор с ростом температуры. А все коэффициенты подбираются экспериментально. Подробно http://labspirt.com/forum/index.php/topic,2224.0.html
Девайс предназначен для управления электромагнитным клапаном.
Поскольку таким МК не располагаю и проверять работу сам не смогу, то за Вами проверка в железе на разных этапах разработки. Пока только индикация и измерение температуры, проверьте.
Открыта удобная площадка с выгодными ценами, поставляющая весь ассортимент продукции, производимой компанией MEAN WELL – от завоевавших популярность и известных на рынке изделий до новинок. MEAN WELL.Market предоставляет гарантийную и сервисную поддержку, удобный подбор продукции, оперативную доставку по России.
На сайте интернет-магазина посетители смогут найти обзоры, интересные статьи о применении, максимальный объем технических сведений.
Продукция MOSO предназначена в основном для индустриальных приложений, использует инновационные решения на основе более 200 собственных патентов для силовой электроники и соответствует международным стандартам. LED-драйверы MOSO применяются в системах наружного освещения разных отраслей, включая промышленность, сельское хозяйство, транспорт и железную дорогу. В ряде серий реализована возможность дистанционного контроля и программирования работы по заданному сценарию. Разберем решения MOSO
подробнее>>
Soir
Заголовок сообщения: Re: Управление электромагнитным клапаном на PIC16F873A
Хорошо, тогда следующий этап - установка параметров. Здесь обратите внимание на работу кнопок, правильность диапазонов, удобность меню. В меню сначала объявляется имя параметра, затем сам параметр. Можете дать свое видение этого процесса, пока еще в стадии разработки. Никакой логики я пока не прописывал.
На схеме они обозначены как тактовые кнопки, поэтому и в программе обрабатываются как кнопки. Если это переключатели то будут обрабатываться отдельно. Логику я пока не делал.
variaevg писал(а):
Параметр p настраивается от 1 до 100 Надо от 0,5 до 10 через 0,5
Будет от 0,5 до 10,0, это я отображением запятой ошибся.
variaevg писал(а):
Прокрутку значений t0, t1, t2 ускорить в 4 раза Прокрутку значений n0, n1, n2, k ускорить в 2 раза
Прокрутка одна для всех, если надо ускорить, то будут ускоряться все. Пока ускорил раза в два.
Странно, ладно, по ходу посмотрим. Начал смотреть алгоритм, кое-что пришлось поменять. Посмотрите, может наладилось. Сделал управление выходом OUT в ручном режиме. Просто формирование импульсов.
Индикация восстановилась. Посмотрел осцилографом, есть короткие импульсы. У меня на макетке на всех выходах по светодиоду, OUT мигает. Частота мигания изменяется согласно изменению параметра 'p'.
Частота мигания изменяется согласно изменению параметра 'p'
А длительность импульсов должна определяться параметром n0. ---- Теперь вопросы. 1).
variaevg писал(а):
n = n2 + (n1 - n2)*(t2 - t) / (t2 - t1)
Возможны ситуации, когда результатом этого вычисления будет отрицательное число, 0 или даже бесконечность. Поэтому или распишите, как должна вести себя программа в этих случаях, или в установках параметров нужно сделать запрет ввода некорректных значений. 2).
variaevg писал(а):
Отбор (количество пропущенной через клапан жидкости) O = k*n [ml/час]. O1 измеряем при подборе n1. k = O1 / n1
Не понял, что нужно делать в программе? Только O = k*n ? 3). Ведется ли суммирование О за весь процесс или это мгновенный расход? 4). Предполагается ли измерение отрицательных температур? 5). Какие возможны нештатные ситуации и как должна вести себя программа при их возникновении? Например, перегрев, отказ датчика... 6).
variaevg писал(а):
...BLOC = 0 → OUT = 0 клапан закрыт, на индикатор выводится «bloc».
А что происходит с HOT? 7).
variaevg писал(а):
При достижении температуры t2 на выходе BUZ формируется 1 длительностью 30 сек.
Достижении с какой стороны? Надо ли что-то делать с OUT и/или HOT?
Возможны ситуации, когда результатом этого вычисления будет отрицательное чило, 0 или даже бесконечность.
В пределах реальных температур и значений "n" формула корректна, а ближе к 100 град. то и процессу конец.
Цитата:
Не понял, что нужно делать в программе? Только O = k*n ?
Да, только умножение и вывод на индикатор результата.
Цитата:
3). Ведется ли суммирование О за весь процесс или это мгновенный расход? 4). Предполагается ли измерение отрицательных температур?
Нет.
Цитата:
5). Какие возможны нештатные ситуации и как должна вести себя программа при их возникновении? Например, перегрев, отказ датчика...
Отказ датчика - на индикатор при индикации температуры "err". На выходе "OUT" ноль. На выход "BUZ" единицу на 30 сек.
Цитата:
А что происходит с HOT?
"HOT" - это выход управляющий нагревом и зависит только от измеряемой температуры. Если 0 то полный нагрев, если 1 от стабилизация (кстати по Вашему девайсу "ПИД стабилизатор переменного тока").
Цитата:
Достижении с какой стороны? Надо ли что-то делать с OUT и/или HOT?
С ростом температуры. На другие выходы не влияет. Это для контроля оператором, посмотреть другие вещи.
В пределах реальных температур и значений "n" формула корректна, а ближе к 100 град. то и процессу конец.
Что в пределах "реальных", то понятно. Но будут и не реальные. Например, по ошибке оператора или даже просто в процессе настройки окажется что (n1 - n2), (t2 - t) или (t2 - t1) отрицательное число, а то и вообще (t2 - t1) равно 0. Последствия в первом случае, если специально не продуманы в программе, будут непредсказуемы, во втором возможно зависание контроллера.
n1 и n2 задаваемые нами числа, причем всегда n1 больше n2. t1 и t2 задаваемые нами температуры, аналогично t2 больше t1. Эти разности используются для определения наклона линии функции, подбираются один раз экспериментально и все. А вот разница (t2-t) при текущей температуре t больше t2 будет отрицательной. В формуле будет производиться процесс вычитания. Вы правы, учитывая, что датчик может и приврать следует ограничить вычисление "n" значением 0. Это будет равносильно OUT=0.
n1 и n2 задаваемые нами числа, причем всегда n1 больше n2. t1 и t2 задаваемые нами температуры, аналогично t2 больше t1.
Я все это понимаю. Но, во время самой установки этих параметров может возникнуть ситуация, что и не всегда t2>t1. Контроллер в этот момент зависнет, ну или еще что-нибудь "выкинет", я прогнозировать не берусь. Считаете, что будете очень аккуратно настраивать и никогда не забудете при установке t2 какое значение t1 и наоборот, чтобы не оказалось t2=t1? Никогда не ошибетесь?.. Аналогично и для n1 и n2? Это дело Ваше, но я не могу, зная о вполне вероятных проблемах, осознанно закладывать в свою программу подводные камни. Еще раз предлагаю установить программный запрет на ввод некорректных значений.
Ладно, идем дальше. Прописал расчет, что-то уже должно работать, можете проверять. В настройках сделал ограничения. Пока нет HOT и BUZ. Может еще чего... Возник вопрос.
variaevg писал(а):
При t < t0 → HOT = 0 t ≥ t0 → HOT = 1
Это означает, что в системе гистерезис определен разрешающей способностью измерения 0,1 град. То есть возможно многократное частое (до 1Гц) включение и выключение нагревателя на пороге температуры. Оставить так?
Это означает, что в системе гистерезис определен разрешающей способностью измерения 0,1 град. То есть возможно многократное частое (до 1Гц) включение и выключение нагревателя на пороге температуры. Оставить так?
Оставим так. На температуре t0 нагрев не выключается, а переключается с max на стабилизированный.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения