Управление электромагнитным клапаном на PIC16F873A
Управление электромагнитным клапаном на PIC16F873A
Девайс предназначен для управления электромагнитным клапаном.
Т.е. регулировка расхода жидкости через клапан по определенному алгоритму в зависимости от температуры.
Все материалы по техническому заданию во вложении.
Тема будет развиваться с помощью Soir.
Т.е. регулировка расхода жидкости через клапан по определенному алгоритму в зависимости от температуры.
Все материалы по техническому заданию во вложении.
Тема будет развиваться с помощью Soir.
- Вложения
-
- ТУ.rar
- (160.93 КБ) 314 скачиваний
-
E71
Re: Управление электромагнитным клапаном на PIC16F873A
Что ж это за прецизионный такой регулятор, с управлением клапаном с разрешением 0,1% (от 0 до 1024)? Куда такое точное?
Re: Управление электромагнитным клапаном на PIC16F873A
Это отбор готового продукта из ректификационной колонны.
Для получения чистой фракции необходимо снижать отбор с ростом температуры.
А все коэффициенты подбираются экспериментально.
Подробно http://labspirt.com/forum/index.php/topic,2224.0.html
Для получения чистой фракции необходимо снижать отбор с ростом температуры.
А все коэффициенты подбираются экспериментально.
Подробно http://labspirt.com/forum/index.php/topic,2224.0.html
Re: Управление электромагнитным клапаном на PIC16F873A
variaevg писал(а):Девайс предназначен для управления электромагнитным клапаном.
Поскольку таким МК не располагаю и проверять работу сам не смогу, то за Вами проверка в железе на разных этапах разработки.
Пока только индикация и измерение температуры, проверьте.
- Вложения
-
- Valve_control_PIC16F873A.zip
- Прошивка, проект в Proteus.
- (17.15 КБ) 257 скачиваний
Re: Управление электромагнитным клапаном на PIC16F873A
Проверил работу на плате, измерение температуры отлично.
Re: Управление электромагнитным клапаном на PIC16F873A
Хорошо, тогда следующий этап - установка параметров.
Здесь обратите внимание на работу кнопок, правильность диапазонов, удобность меню. В меню сначала объявляется имя параметра, затем сам параметр. Можете дать свое видение этого процесса, пока еще в стадии разработки. Никакой логики я пока не прописывал.
Здесь обратите внимание на работу кнопок, правильность диапазонов, удобность меню. В меню сначала объявляется имя параметра, затем сам параметр. Можете дать свое видение этого процесса, пока еще в стадии разработки. Никакой логики я пока не прописывал.
- Вложения
-
- Valve_control_PIC16F873A.zip
- Прошивка.
- (3.14 КБ) 240 скачиваний
Re: Управление электромагнитным клапаном на PIC16F873A
Погонял на плате.
Настройки работают только при A/R=1 и BLOC=1.
Надо: При A/R=0 настраивается только n0.
При A/R=1 все остальные
Сигнал BLOC влиять не должен
Параметр p настраивается от 1 до 100
Надо от 0,5 до 10 через 0,5
Размерность в сек.
Надо:
Прокрутку значений t0, t1, t2 ускорить в 4 раза
Прокрутку значений n0, n1, n2, k ускорить в 2 раза
Остальное все хорошо.
Настройки работают только при A/R=1 и BLOC=1.
Надо: При A/R=0 настраивается только n0.
При A/R=1 все остальные
Сигнал BLOC влиять не должен
Параметр p настраивается от 1 до 100
Надо от 0,5 до 10 через 0,5
Размерность в сек.
Надо:
Прокрутку значений t0, t1, t2 ускорить в 4 раза
Прокрутку значений n0, n1, n2, k ускорить в 2 раза
Остальное все хорошо.
Re: Управление электромагнитным клапаном на PIC16F873A
variaevg писал(а):Настройки работают только при A/R=1 и BLOC=1.
На схеме они обозначены как тактовые кнопки, поэтому и в программе обрабатываются как кнопки. Если это переключатели то будут обрабатываться отдельно. Логику я пока не делал.
variaevg писал(а):Параметр p настраивается от 1 до 100
Надо от 0,5 до 10 через 0,5
Будет от 0,5 до 10,0, это я отображением запятой ошибся.
variaevg писал(а): Прокрутку значений t0, t1, t2 ускорить в 4 раза
Прокрутку значений n0, n1, n2, k ускорить в 2 раза
Прокрутка одна для всех, если надо ускорить, то будут ускоряться все. Пока ускорил раза в два.
- Вложения
-
- Valve_control_PIC16F873A.zip
- (3.2 КБ) 228 скачиваний
Re: Управление электромагнитным клапаном на PIC16F873A
Пропала индикация.
Предыдущая прошивка нормально.
Предыдущая прошивка нормально.
Re: Управление электромагнитным клапаном на PIC16F873A
variaevg писал(а):Пропала индикация.
Странно, ладно, по ходу посмотрим.
Начал смотреть алгоритм, кое-что пришлось поменять. Посмотрите, может наладилось.
Сделал управление выходом OUT в ручном режиме. Просто формирование импульсов.
- Вложения
-
- Valve_control_PIC16F873A.zip
- (19.81 КБ) 242 скачивания
Re: Управление электромагнитным клапаном на PIC16F873A
Индикация восстановилась.
Посмотрел осцилографом, есть короткие импульсы.
У меня на макетке на всех выходах по светодиоду, OUT мигает. Частота мигания изменяется согласно изменению параметра 'p'.
Посмотрел осцилографом, есть короткие импульсы.
У меня на макетке на всех выходах по светодиоду, OUT мигает. Частота мигания изменяется согласно изменению параметра 'p'.
Re: Управление электромагнитным клапаном на PIC16F873A
variaevg писал(а):Индикация восстановилась.

variaevg писал(а):Частота мигания изменяется согласно изменению параметра '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?
Re: Управление электромагнитным клапаном на PIC16F873A
Возможны ситуации, когда результатом этого вычисления будет отрицательное чило, 0 или даже бесконечность.
В пределах реальных температур и значений "n" формула корректна, а ближе к 100 град. то и процессу конец.
Не понял, что нужно делать в программе? Только O = k*n ?
Да, только умножение и вывод на индикатор результата.
3). Ведется ли суммирование О за весь процесс или это мгновенный расход?
4). Предполагается ли измерение отрицательных температур?
Нет.
5). Какие возможны нештатные ситуации и как должна вести себя программа при их возникновении? Например, перегрев, отказ датчика...
Отказ датчика - на индикатор при индикации температуры "err".
На выходе "OUT" ноль.
На выход "BUZ" единицу на 30 сек.
А что происходит с HOT?
"HOT" - это выход управляющий нагревом и зависит только от измеряемой температуры.
Если 0 то полный нагрев, если 1 от стабилизация (кстати по Вашему девайсу "ПИД стабилизатор переменного тока").
Достижении с какой стороны? Надо ли что-то делать с OUT и/или HOT?
С ростом температуры. На другие выходы не влияет.
Это для контроля оператором, посмотреть другие вещи.
Re: Управление электромагнитным клапаном на PIC16F873A
variaevg писал(а):В пределах реальных температур и значений "n" формула корректна, а ближе к 100 град. то и процессу конец.
Что в пределах "реальных", то понятно. Но будут и не реальные. Например, по ошибке оператора или даже просто в процессе настройки окажется что (n1 - n2), (t2 - t) или (t2 - t1) отрицательное число, а то и вообще (t2 - t1) равно 0. Последствия в первом случае, если специально не продуманы в программе, будут непредсказуемы, во втором возможно зависание контроллера.
Re: Управление электромагнитным клапаном на PIC16F873A
n1 и n2 задаваемые нами числа, причем всегда n1 больше n2.
t1 и t2 задаваемые нами температуры, аналогично t2 больше t1.
Эти разности используются для определения наклона линии функции, подбираются один раз экспериментально и все.
А вот разница (t2-t) при текущей температуре t больше t2 будет отрицательной.
В формуле будет производиться процесс вычитания.
Вы правы, учитывая, что датчик может и приврать следует ограничить вычисление "n" значением 0.
Это будет равносильно OUT=0.
t1 и t2 задаваемые нами температуры, аналогично t2 больше t1.
Эти разности используются для определения наклона линии функции, подбираются один раз экспериментально и все.
А вот разница (t2-t) при текущей температуре t больше t2 будет отрицательной.
В формуле будет производиться процесс вычитания.
Вы правы, учитывая, что датчик может и приврать следует ограничить вычисление "n" значением 0.
Это будет равносильно OUT=0.
Re: Управление электромагнитным клапаном на PIC16F873A
variaevg писал(а):n1 и n2 задаваемые нами числа, причем всегда n1 больше n2.
t1 и t2 задаваемые нами температуры, аналогично t2 больше t1.
Я все это понимаю. Но, во время самой установки этих параметров может возникнуть ситуация, что и не всегда t2>t1. Контроллер в этот момент зависнет, ну или еще что-нибудь "выкинет", я прогнозировать не берусь. Считаете, что будете очень аккуратно настраивать и никогда не забудете при установке t2 какое значение t1 и наоборот, чтобы не оказалось t2=t1? Никогда не ошибетесь?.. Аналогично и для n1 и n2? Это дело Ваше, но я не могу, зная о вполне вероятных проблемах, осознанно закладывать в свою программу подводные камни. Еще раз предлагаю установить программный запрет на ввод некорректных значений.
Re: Управление электромагнитным клапаном на PIC16F873A
Если есть возможность избежать подводных камней, надо избежать.
Отдельное спасибо за скрупулезный подход к разработке.
Отдельное спасибо за скрупулезный подход к разработке.
Re: Управление электромагнитным клапаном на PIC16F873A
Ладно, идем дальше. Прописал расчет, что-то уже должно работать, можете проверять.
В настройках сделал ограничения.
Пока нет HOT и BUZ. Может еще чего...
Возник вопрос.
Это означает, что в системе гистерезис определен разрешающей способностью измерения 0,1 град. То есть возможно многократное частое (до 1Гц) включение и выключение нагревателя на пороге температуры. Оставить так?
В настройках сделал ограничения.
Пока нет HOT и BUZ. Может еще чего...
Возник вопрос.
variaevg писал(а):При t < t0 → HOT = 0
t ≥ t0 → HOT = 1
Это означает, что в системе гистерезис определен разрешающей способностью измерения 0,1 град. То есть возможно многократное частое (до 1Гц) включение и выключение нагревателя на пороге температуры. Оставить так?
- Вложения
-
- Valve_control_PIC16F873A.zip
- (4.19 КБ) 217 скачиваний
Re: Управление электромагнитным клапаном на PIC16F873A
Это означает, что в системе гистерезис определен разрешающей способностью измерения 0,1 град. То есть возможно многократное частое (до 1Гц) включение и выключение нагревателя на пороге температуры. Оставить так?
Оставим так.
На температуре t0 нагрев не выключается, а переключается с max на стабилизированный.
Сейчас погоняю на макетке.
Re: Управление электромагнитным клапаном на PIC16F873A
variaevg писал(а):Сейчас погоняю на макетке.
Доработал. Нагреватель, расчет расхода, звуковой сигнал.
- Вложения
-
- Valve_control_PIC16F873A.zip
- (20.81 КБ) 234 скачивания