Ошибаетесь не всьо так просто как кажется... так и утюгом паять можно положив его как низ а как верх обичний паяльний фен..
В ИК станции должен бить чоткий термопрофиль иначе будет риск повредить плату (компоненти на ней) а если меняете мост на матери какогото крутого ноута ето имеет не малое значение ...
Вот что значит термопрофиль поетому без графика сложно,но возможно..
Для чего нужен термопрофиль
Особенностью BGA-компонентов является то, что их выводы, представляющие собой контактные площадки с шариками припоя, расположенными под корпусом установленного на плату компонента и они недоступны для традиционных паяльных инструментов. Пайка этих компонентов выполняется путем сквозного прогрева корпуса.
При этом, верхняя часть корпуса нагревается быстрее, чем шариковые выводы, поскольку они контактируют с платой, что затрудняет их нагрев. Очевидно, если прогревать компонент с помощью фена с постоянной температурой или инфракрасного излучателя постоянной интенсивности, то при достижении необходимой температуры пайки на шариках (220°С) корпус окажется перегретым.
Избежать перегрева позволяет поэтапное повышение температуры с выдержкой времени на каждом этапе для постепенного выравнивания температуры во всём объёме корпуса. Весь цикл нагрева компонента в программируемой конвекционной установке представляет собой последовательную отработку четырёх температурных зон или термопрофиля:
1. Зона предварительного подогрева (Preheat) — 100 ё 140°C
Выпаривание растворителя из флюса или паяльной пасты для предотвращения их разбрызгивания при пайке. Скорость повышения температуры керамических компонентов в этой зоне — не более 5°C/сек.
2. Зона теплового насыщения (Soak) до170°C
(для припоя с температурой плавления 183°C)
Выравнивание температуры по всему объему компонента для уменьшения температурного разброса в следующей за данной зоной зоне пайки.
Активизация и растекание флюса, растворение окисной пленки на контактах.
3. Зона пайки (Reflow) 220°C
Расплавление припоя, содержащегося в паяльной пасте или в шариках
BGA–компонентов (если шарики изготовлены из эвтектического сплава). Время выдержки в этой зоне определяется моментом полного расплавления припоя плюс 10 секунд, необходимых для полного растекания и смачивания контактов.
4. Зона охлаждения (Cooldown)
Медленное охлаждение керамических компонентов и более интенсивное — пластиковых. Именно по такому циклу работают все промышленные паяльные печи, и именно на такой режим пайки рассчитаны все поверхностные компоненты.
------------ Дoбавленo в 22.16:
37.45.91.45
....5 секунд на 100 градусов?
Да может для етого просто программа поднимит мошность нагревателей.. ето как газ на автомобиле можем и за 5сек 100км/час ехать а можно и на 10 мин розгон затянуть)))
Вот я кое что сделал... виводит номер точки и температуру ..но виводит только для какойто одной точки .. а как сделать чтоби виводило для каждой точки отдельно?
Make(delphi)
ver(4.04 build 184)
Add(MainForm,5423394,217,434)
{
Width=1127
Height=698
Caption="graph"
Position=1
link(onCreate,209789:doEvent1,[])
}
Add(Plotter,11338811,217,147)
{
Width=1119
Height=664
Align=5
Color=0
Name="plotter"
GridColor=8421504
BorderColor=8421504
AxisColor=65280
MaxH=10
LeftMargin=10
RightMargin=10
TopMargin=10
BottomMargin=10
MouseControl=1
Point(onMouseMove)
Point(onMouseDown)
Point(onMouseUp)
link(onMouseDown,7506601:doEvent,[(285,160)(285,125)])
link(onMouseUp,16314037:doOn,[])
}
Add(PlotPoints,16221510,630,343)
{
Grapher="plotter"
Color=16711680
Size=5
Step=1
Name="s"
Shape=1
Point(ValuesY)
Point(MaxX)
}
Add(PlotMouseValues,3049079,217,189)
{
Grapher="Plotter"
link(onMouseMove,12926780:doEvent1,[])
}
Add(StrList,13109080,490,287)
{
Point(doReplace)
Point(doLoadFromStream)
Point(doInsert)
link(onChange,11155471:doEvent1,[])
link(Str,10633265:Result,[])
}
Add(ArrayEnum,12158750,490,385)
{
link(onItem,11854544:doEvent1,[])
link(Array,13109080:Array,[(496,369)(510,369)])
}
Add(Hub,11155471,630,287)
{
InCount=2
link(onEvent1,11338811:doClear,[(735,293)(735,52)(211,52)(211,153)])
link(onEvent2,16311405:doWork3,[(676,300)(676,489)(471,489)])
}
Add(Math,11026,574,168)
{
OpType=35
Op2=1
ResultType=0
link(onResult,11241634:doData,[(810,174)(810,314)])
}
Add(MT_MultiData,1541378,434,203)
{
link(onData1,11026:doOperation,[(499,209)(499,174)])
link(onData2,10633265:doCalc,[])
}
Add(DoData,11428871,574,224)
{
link(onEventData,2567605:doEvent1,[(618,230)(618,251)(569,251)(569,272)])
link(Data,11026:Result,[])
}
Add(MT_IndexToChanel,904203,385,203)
{
Count=1
Point(Index)
link(onEvent1,1541378:doSeparateMT,[])
link(Index,16314037:State,[])
}
Add(PlotLines,6387360,630,392)
{
Grapher="plotter"
Color=16776960
Step=1
}
Add(Hub,11854544,546,385)
{
OutCount=3
link(onEvent1,16221510:doAdd,[(567,391)(567,349)])
link(onEvent2,6387360:doAdd,[])
}
Add(Switch,16314037,385,147)
{
DataOn=Integer(1)
DataOff=Integer(0)
Default=0
Point(doOn)
Point(State)
Point(onOn)
}
Add(MultiElement,422492,336,336)
{
link(onEvent1,13109080:doLoadFromStream,[])
}
BEGIN_SDK
Add(EditMulti,1019685,196,196)
{
EventCount=1
WorkCount=1
Width=244
Height=144
link(doWork1,3953647:doEvent1,[])
}
Add(For,12457329,245,259)
{
link(onEvent,875942:doRandom,[])
link(onStop,5135366:doConvert,[(286,272)(286,300)])
link(End,14252881:Random,[])
}
Add(Hub,3953647,210,196)
{
OutCount=5
link(onEvent1,10627015:doClear,[(353,202)(353,216)])
link(onEvent2,8905718:doText,[])
link(onEvent3,14252881:doRandomize,[(238,216)(238,230)])
link(onEvent4,14252881:doRandom,[])
link(onEvent5,12457329:doFor,[(234,230)(234,265)])
}
Add(StrList,10627015,364,203)
{
}
Add(VisualStrings,8905718,308,203)
{
link(onText,9031142:doWork2,[])
}
Add(Random,875942,294,259)
{
Min=1
Max=10
Mode=1
link(onRandom,9031142:doWork3,[(340,265)])
}
Add(HubEx,9031142,336,210)
{
link(onEvent,10627015:doAdd,[(353,216)(353,209)])
}
Add(StreamConvertor,5135366,364,294)
{
link(onResult,1019685:onEvent1,[(418,300)(418,202)])
link(Data,10627015:Text,[])
}
Add(Random,14252881,252,217)
{
Min=5
Max=20
}
END_SDK
Add(HubEx,13507671,292,343)
{
link(onEvent,422492:doWork1,[(317,349)(317,342)])
}
Add(Menu,4827419,245,294)
{
Menu=#5:Reset|
link(onSelectStr,13507671:doWork1,[(296,300)])
}
Add(MathParse,10633265,490,210)
{
DataCount=1
MathStr="max(round(%1,0.25),0)"
link(onResult,12023399:doEvent1,[])
}
Add(Hub,12023399,532,210)
{
OutCount=4
link(onEvent1,5527591:doData,[(690,216)(690,307)])
link(onEvent3,11428871:doData,[])
}
Add(PlotLines,13398555,630,448)
{
Grapher="plotter"
Color=16776960
Step=1
}
Add(IndexToChanel,7506601,294,119)
{
link(onEvent1,16314037:doReset,[(369,125)(369,160)])
link(onEvent2,3322278:doPopupHere,[(350,132)(350,111)])
}
Add(PopupMenu,3322278,385,105)
{
Menu=#8:Р”РС|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|
link(onClick,12639869:doEvent,[])
}
Add(IndexToChanel,12639869,434,105)
{
Count=3
Point(Data)
link(onEvent1,4481059:In,[])
link(onEvent3,7422329:In,[])
link(Data,16368744:Result,[])
}
Add(LineBreak,1533115,434,343)
{
Caption="ins"
link(Out,13109080:doInsert,[])
Primary=[4481059,49,-238]
}
Add(LineBreak,10639003,434,301)
{
Caption="del"
link(Out,13109080:doDelete,[])
Primary=[7422329,49,-182]
}
Add(MT_MultiData,12299791,385,63)
{
link(onData1,16368744:doOperation,[])
link(onData2,1465038:doEvent1,[(475,76)(475,83)])
}
Add(Math,16368744,434,63)
{
OpType=35
Op2=1
ResultType=0
}
Add(MultiElement,11519704,581,448)
{
link(onEvent1,13398555:doAdd,[])
}
BEGIN_SDK
Add(EditMulti,7911720,200,200)
{
EventCount=1
WorkCount=2
DataCount=1
Width=293
link(doWork1,16657174:doEvent1,[(219,206)(219,300)])
link(doWork2,8677673:doClear,[(355,213)(355,251)])
}
Add(ArrayMathStat,3674394,378,301)
{
link(onResult,727177:doEvent1,[(425,307)(425,219)(261,219)(261,244)])
link(Array,8677673:Array,[(384,292)(398,292)])
}
Add(StrList,8677673,378,238)
{
AddType=1
}
Add(Hub,727177,273,238)
{
InCount=2
link(onEvent1,8677673:doAdd,[])
link(onEvent2,14657740:doData,[(297,251)(297,258)])
}
Add(DoData,14657740,315,252)
{
Data=Integer(2)
link(onEventData,8677673:doDelete,[])
link(Data,7911720:Data1,[(321,226)(206,226)])
}
Add(Hub,16657174,238,294)
{
OutCount=4
link(onEvent1,727177:doEvent2,[(261,300)(261,251)])
link(onEvent2,4565109:doWork2,[])
link(onEvent3,4565109:doWork3,[(305,314)])
link(onEvent4,9815216:doOperation,[(315,321)(315,356)])
}
Add(Math,9815216,378,350)
{
OpType=1
Op2=3
link(onResult,9511311:doOperation,[])
link(Op1,3674394:Result,[])
}
Add(Math,9511311,427,350)
{
OpType=39
Op2=0.1
link(onResult,7911720:onEvent1,[(475,356)(475,206)])
}
Add(HubEx,4565109,301,308)
{
link(onEvent,3674394:doFunction,[])
}
END_SDK
Add(Memory,9624676,581,406)
{
Default=Integer(3)
}
Add(Hub,12926780,280,203)
{
link(onEvent1,904203:doEvent,[])
link(onEvent2,11546311:doEvent,[(315,216)(315,300)])
}
Add(MultiElement,13130178,392,294)
{
}
BEGIN_SDK
Add(EditMulti,5036394,196,196)
{
WorkCount=1
Width=279
link(doWork1,11345602:doEvent1,[(203,202)(203,223)])
}
Add(Hub,11345602,210,217)
{
OutCount=3
link(onEvent1,2664526:doClear,[(306,223)(306,237)])
link(onEvent2,6051859:doValue,[])
link(onEvent3,9288034:doString,[(235,237)(235,349)])
}
Add(MT_MultiMem,6051859,245,224)
{
link(onData,2664526:doAdd,[])
}
Add(PlotPoints,2664526,322,224)
{
Grapher="parent.plotter"
Size=0
Name="cursor"
link(ValueY,6234368:Var1,[(328,211)(294,211)])
link(ValueX,9102857:Var1,[(335,206)(286,206)])
}
Add(MathParse,12566950,301,287)
{
DataCount=1
MathStr="max(round(%1,0.25),0)"
Point(reCalc)
link(onResult,3698576:doConvert,[])
link(X1,6234368:Var3,[(307,275)])
}
Add(FormatStr,9288034,252,343)
{
Mask="%1 Р’
%2 Р СРёРЅ"
Point(FString)
link(onFString,6159654:doSetText,[])
link(Str1,1789072:GetData,[])
link(Str2,2318199:reCalc,[(265,336)(405,336)])
}
Add(PlotSeriesMarker,6159654,413,343)
{
Grapher="parent.plotter"
FrameStyle=5
BgStyle=1
BgColor=-16777192
Font=[MS Sans Serif,8,0,65535,1]
HAlign=2
Series="cursor"
link(QueryText,9288034:FString,[(419,331)(454,331)(454,386)(258,386)])
}
Add(MathParse,2318199,392,287)
{
DataCount=1
MathStr="round(%1, 1)"
Point(reCalc)
link(X1,9102857:Var3,[(398,269)])
}
Add(GetDataEx,9102857,287,268)
{
Angle=3
link(Data,6051859:Value1,[(251,269)])
}
Add(ConvertorEx,3698576,343,287)
{
link(onResult,1789072:doData,[(383,293)(383,328)(240,328)(240,293)])
}
Add(EventFromData,1789072,252,287)
{
link(onEvent,12566950:doCalc,[])
}
Add(GetDataEx,6234368,295,274)
{
Angle=3
link(Data,6051859:Value2,[(258,275)])
}
END_SDK
Add(CheckBox,14907335,336,252)
{
Left=655
Top=30
Width=45
Caption="Hint"
link(onCheck,4410637:In,[])
}
Add(MT_IndexToChanel,11546311,336,294)
{
Point(Index)
link(onEvent2,13130178:doWork1,[(380,307)(380,300)])
link(Index,14907335:Checked,[])
}
Add(LineBreak,1801658,588,315)
{
Caption="rst"
link(Out,11155471:doEvent2,[(624,321)(624,300)])
Primary=[4410637,-203,-63]
}
Add(Hub,1465038,532,77)
{
OutCount=3
}
Add(ListBox,5375558,1071,371)
{
Left=640
Top=280
Width=420
Height=210
}
Add(FormatStr,12130813,1015,371)
{
Mask="Номер точки: %1 ТЕМП: %2 С"
link(onFString,5375558:doAdd,[])
link(Str1,11241634:GetData,[])
link(Str2,5527591:GetData,[(1028,352)(1063,352)])
}
Add(Hub,2567605,581,266)
{
link(onEvent1,13109080:doReplace,[(607,272)(607,304)(478,304)(478,335)])
}
Add(EventFromData,11241634,1015,308)
{
}
Add(EventFromData,5527591,1057,301)
{
}
Add(Timer,2297456,1008,497)
{
Interval=10
link(onTimer,6455121:doEvent1,[(1052,503)(1052,465)(933,465)(933,433)])
}
Add(Hub,209789,287,448)
{
link(onEvent1,13507671:doWork3,[(313,454)(313,403)(296,403)])
link(onEvent2,16311405:doWork2,[(385,461)(385,447)])
}
Add(HubEx,16311405,467,441)
{
Angle=3
link(onEvent,12158750:doEnum,[(471,391)])
}
Add(Hub,6455121,938,427)
{
link(onEvent1,5375558:doClear,[(1012,433)(1012,384)])
link(onEvent2,12130813:doString,[(984,440)(984,377)])
}