|
|
|
|
К сожалению, и своему стыду, я не умею писать программы для микроконтроллеров. Весь мой опыт сводится к написанию программы для "моргания" 4-х светодиодов (и то со "шпаргалкой" ). При виде размера листинга серьезной программы, меня бросает в "озноб" и волосы "подымаются дыбом". По этой причине, моя станция, собрана на "жесткой" логике. На аналоговых элементах, собраны узлы сравнения, усиления и т.д. (что не является оптимальным решением). Реализация термопрофиля на основании моей станции: 1. Угол наклона профиля (скорость предварительного нагрева), осуществляется "подачей нужной мощности" на нагреватель с помощью фиксированного угла отпирания симистора. Реализовано на переключателе с коммутируемыми резисторами в интегрирующей цепи. Различные положения переключателя, имеют разный угол наклона кривой. Настраивалось на реальной плате, подбором резисторов и замером температуры на плате. В принципе ничего, но хотел бы иметь еще от2 до 4 контрольных точек на этом участке, с возможностью их корректировки. 2. Точка излома характеристики на границе первой и второй зоны. Контроль температуры выполняется термопарой на плате и, при достижении заданной, переключается на пониженную мощность нагревателя (увеличение угла отпирания симистора) и переход во вторую зону (активация флюса). У разных флюсов, начальная температура активации разная, поэтому, температура точки излома, для разных профилей разная и зависит от положения переключателя. Положение точки излома контролируется компаратором с изменяющимся опорным напряжением (коммутацией резисторов). Наклон характеристики во второй зоне, осуществляется также, как и в первой. Пожелания: хотел бы иметь еще 2 – 3 контрольных точки на этом участке, с возможностью их корректировки. Возложить на микроконтроллер управление точкой излома и перевод мощности нагревателя во вторую зону. 3. Точка излома на границе 2 и 3 зоны (включение ВИ). Вот здесь я сознательно не стал привязывать время включения ВИ, а осуществляю вручную, т.е. независимое управление ВИ и НИ. Это связано с тем, что активация различных флюсов проходит по-разному. Одни требуют определенной начальной температуры, и повышения ее до начала плавления припоя, за определенное время. Другие, более высокой начальной температуры и поддержание ее (горизонтальная вторая зона), определенное время. На "жесткой" логике я не сумел это реализовать. Пожелания: хочется иметь возможность устанавливать перед выполнением профиля, угол наклона во второй зоне, а также, время второй зоны , вот тогда есть смысл связывать в единый цикл ВИ и НИ. 4. Управление в 3-й зоне ВИ, происходит аналогично, как и в НИ, за исключением того, что в начальный период подается форсированное питание (по времени). Угол наклона характеристики и температура верхней точки (после чего, станция отключается), выбирается с помощью переключателя управления ВИ. Для уменьшения "выбега" температуры, при достижении 195 градусов, происходит излом характеристики (уменьшение мощности). Для свинца это правильно, а для безсвинцовки НЕТ. Для безсвинцовки температура излома должна быть выше. 5. Четвертая зона (охлаждение), осуществляется вручную, путем выезда платы в зону вентилятора (отдельный блок). P.S. Ух!
|
|
|
miron63: Из этих соображений я исходил при разработке. Да здесь у нас разногласий нет. У меня все взоры к технической реализации с помощью микроконтроллера и симисторов. |
|
|
grean2007: но мне такое решение очень нравится. У меня тоже 3-и термопары, но термопары ВИ и НИ выполняют другие функции. Если у нас получится "симбиоз" ("скрестить ежа и ужа"), то, вполне возможно, необходимость термопары в НИ отпадет.
|
|
|
Попытаюсь и я, объяснить алгоритм нагрева. У нас имеется несколько факторов, не позволяющих построить универсальный алгоритм , без дополнительных подстроек под каждый отдельный случай. Какие это факторы. 1. Платы, в зависимости от размера, толщины, материала изготовления имеют разную инерционность. 2. Одна и та же плата, нагреваемая из холодного состояния и уже прогретая ( снятие чипа и сразу же установка ) разогреваются по разному. 3. Температура в помещении разная ( летом было до +30 ), по разному происходит и нагрев. Для исключения каких либо настроек в процессе работы, пришлось пожертвовать точностью. При работе НИ,скорость нагрева контролируется не терморпарой на плате, а термопарой возле нижних нагревателей. Показания нижней термопары пропорциональны показаниям термопары на плате,в то же время нижняя термопара обладает малой инерционностью. В меню выставляется скорость нагрева 0-2.5гр/с. Если термопара возле нижних нагревателей разогревается со скоростью 1гр/с , плата самых малых размеров разогревается со скоростью 0.9гр/с, а большая плата 0.6гр/с. Такова характеристика моего нагревателя. У меня можно внести в память до 9термопрофилей. И можно создать раздельные термопрофили, ориентируясь на размер платы. В термопрофиле для больших плат устанавливаю 1.5гр/с и знаю что плата будет линейно разогреваться около 1гр/с. Так как, точность скорости разогрева на этом участке термопрофиля не нужна, пользуюсь одним средним значением. Как это отрабатывает микроконтроллер. Если включение происходит с холодным нагревателем, включается прогрев. Как только нижняя термопара нагрелась до 60гр, микроконтроллер каждую секунду, расчитывает какая температура, должна быть в данный момент времени. Три раза в секунду измеряется температура платы и температура нижней термопары. Если расчётная температура выше температуры нижней термопары, включается нагреватель. И так линейно увеличивается расчётная температура, а за ней следом температура платы. Все значения ( температура нижней термопары, температура платы, расчётная температура) выводятся на дисплей. В случае какой то, не штатной ситуации, по показаниям на дисплее можно оперативно отследить проблему. Как только температура платы достигает мах. значения для преднагрева ( в нашем случае 150гр.) нижний нагреватель, переходит в режим удержания температуры ( контролируется нижней термопарой ),подаётся звуковой сигнал, и включается ВИ, в режим прогрева, на полную мощность ( начинается участок "активация флюса"). Насколько прогрет нагреватель контролируется по температуре платы. Как только температура платы, увеличилась на 10гр. ( стала 160гр ) можно считать, что нагреватель дотаточно прогрет и начинается расчёт температуры 1раз в сек. Здесь уже скорость нагрева контролируется термопарой на плате. Паралельно ( по показаниям нижней термопары) продолжает поддерживаться, постоянной, температура НИ. Термопара находящаяся в верхнем излучателе, на этом участке только выводит температуру на дисплей. По достижении 183гр. подаётся звуковой сигнал ( это значит, что надо обратить особое внимание, так как начинается самый значимый участок) и начинается режим "оплавление". Здесь уже скорость нагрева, контролируется термопарой расположенной в верхнем нагревателе. Связано это с тем, что на момент написания микропрограммы, у меня был установлен нагреватель со спиралью 600вт и на окончательном участке термопрофиля на безсвинцовке, на больших платах, не мог обеспечить необходимую скорость разогрева платы и раскалялся до ярко красного состояния. В настоящий момент установлен нагреватель способный нормально разогреть любую плату, и думаю реализовать нагрев как и на участке "активация флюса". При выполнении автоматического нагрева, в любой момент можно прервать программу и с помощью тумблеров, в ручную догреть плату. По достижении 220гр. включается кулер расположеный за ВИ. Скорость кулера, можно регулировать подстроечным резистором. Если включен автоподъём, то по достижении 220гр. включается двигатель позиционера и подводит подъёмник по заранее установленой метке к чипу, опускается присоска, включается насос,поднимается чип и включается кулер. Сложно всё описать, примерно всё так. |
|
|
Очень сложный алгоритм. Сейчас пытаюсь "вложить" его в голову и "прочувствовать". miron63: Платы, в зависимости от размера, толщины, материала изготовления имеют разную инерционность. Вот, для этого, я и хочу иметь по несколько промежуточных точек, на каждом участке. Мне, кажется, что рассматривать и обсуждать, лучше маленькими кусочками. Пока еще не сообразил, зачем такая большая частота измерения температуры? Ведь система довольно инерционная. |
|
|
VladimirSk: Мне, кажется, что рассматривать и обсуждать, лучше маленькими кусочками. Я, так и думал. Описать подробно всю микропрограмму, получится целая книга. Я полдня составлял это сообщение, что бы хоть как то меня смогли понять. В микропрограмме, ещё есть целая куча прибамбасов, понятных наверное только мне. VladimirSk: Пока еще не сообразил, зачем такая большая частота измерения температуры? Ведь система довольно инерционная. Это так кажется. 0.3сек - это время реагирования на рассогласование. Ведь реально, нагреватель описывает синусу, вокруг линии термопрофиля то есть на какое то время отстаёт, а потом на такое же опережает. Если увеличить время реагирования, увеличится размах и этой синусы. Естественно в этом процессе ещё и участвует инерционность. |
|
|
miron63: то есть на какое то время отстаёт, а потом на такое же опережает. Это связано с полным отключением нагревателя от сети, а затем, снова полное включение. Отсюда и такой гистерезис. Если не отключать, а уменьшать напряжение, то колебания уменьшаются, и время очень значительно растягивается. |
|
|
VladimirSk: Это связано с полным отключением нагревателя от сети, а затем, снова полное включение. Нет, не совсем так. Все автоматические регуляторы работают примерно так: Велечина подаваемой мощности на нагреватель, пропорциональна велечине рассогласования( рассогласование - это разность температур какая должна быть и какая есть) , то есть чем ближе мы находимся к заветной температуре, тем меньше мощность подаваемая на нагреватель и наоборот. Но тут в права вступает инерционность. Мощность на нагревателе снижается, а нагрев ещё какое то время продолжается, а потом наоборот всё наоборот. Большое время реагирования на данное событие, лишь усугубляет процесс. Для выхода из подобной ситуации, нужно строить "умную" систему, то есть ещё задолго до приближения к необходимой температуре, система могла сама выщитать необходимую оптимальную мощность. Это и получится ПИД регулятор. Если более широко взглянуть на ситуацию, то ты применил тот же ПИД регулятор, только расчёты мощности проводила не система, а ты сам. Ты заблаговременно нагрел несколько плат и на основании своих измерений выставил необходимую мощность. Метод реализации регулятора мощности для инерционных систем большого значения не имеет. |
|
|
Проанализировав конструкцию НИ и использование термопары НИ, в алгоритме измерения температуры, пришел к такому мнению (расположение термопары, как на фото). Почему, при уменьшении частоты измерения температуры, происходит резкое увеличение колебания температуры вокруг заданной (в "+" и в "-")? На мой взгляд, причины следующие: 1. Основное ИК излучение создает нагретая, до нужной температуры трубка, а термопара меряет температуру окружающего воздуха, находящемся между двумя трубками. Рассмотрим один цикл. Температура достигла нужной и продолжает увеличиваться. Поступает команда на отключение нагревателя и спираль остывает. При этом очень медленно начинает остывать трубка, а за ней и воздух, находящийся между трубками. Когда воздух остынет ниже заданного уровня, подается команда на включение. Но к этому времени, спираль будет уже полностью холодной, трубка, значительно охлаждена, а воздух между трубками (и температура спая термопары), только чуть-чуть ниже нормы. Поступившая команда на нагревание спирали, начинает медленно нагревать спираль (т.к. она уже холодная), а в это время трубка продолжает охлаждаться, пока температура спирали не достигнет нужного уровня. Воздух, тоже охлаждается. После этого, начинает медленно нагреваться трубка, а воздух охлаждается, до тех пор, пока не сравняется с температурой трубки и, только после этого медленно начинает нагреваться. Когда воздух нагреется до нужной температуры, то спираль и трубка будут перегреты. Несмотря на поступившую команду на отключение, перегретая спираль будет дальше разогревать трубку, а трубка, воздух. И снова цикл повторится. Отсюда и большая инерционность, и большой гистерезис (колебание вокруг, заданной температуры). Кроме того этот процесс нелинейно связан с нагревом платы. 2. Уменьшить инерционность можно, если спираль не отключать, а уменьшить напряжение питания (спираль не будет переохлаждаться). 3. Термопару закрепить непосредственно на трубке (исключив промежуточное звено, воздух). 4. Можно изменить принцип измерения температуры (рассмотрим, при анализе узла термопары)
|
|
|
miron63: Велечина подаваемой мощности на нагреватель Уточню: УСРЕДНЕННОЙ, а усредняет у тебя реле, со всеми вытекающими. miron63: то ты применил тот же ПИД регулятор Нет, это быстрее жалкое подобие (и то, с большой натяжкой) П (пропорциональный). Здесь нет интегрирующих и дифференцирующих звеньев в цепи обратной связи управления. |
|
|
|
|