Свежие обсуждения
Технология

Инфракрасная паяльная станция

1 17 76

К сожалению, и своему стыду, я не умею писать программы для микроконтроллеров. Весь мой опыт сводится к написанию программы для "моргания" 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: то ты применил тот же ПИД регулятор
Нет, это быстрее жалкое подобие (и то, с большой натяжкой) П (пропорциональный). Здесь нет интегрирующих и дифференцирующих звеньев в цепи обратной связи управления.