<%@LANGUAGE="VBScript"%> <% Set Connection = Server.CreateObject("ADODB.Connection") Connection.Mode = adModeRead Connection.Open phdb_rd one_keynumber=-1 If Request("keynumber_x")="" Then SQLStmt = "select distinct keynumber,tp.batch bat,tp.sensor sen,sl.rowid rowid_key from sitester.testkey_polysi tp,sitester.sensor_log sl where startdate=logdate" SQLStmt = SQLStmt & " and sl.rowid='" & Request("rowid_x") & "'" Set RS = Connection.Execute(SQLStmt) keys_tested=0 Do While Not RS.EOF keys_tested=keys_tested+1 RS.MoveNext Loop If Not RS.BOF Then RS.MoveFirst End If If keys_tested=1 Then keynumber_x=RS("keynumber") one_keynumber=1 End If If keys_tested>1 Then one_keynumber=0 End If Else keynumber_x=Request("keynumber_x") one_keynumber=1 End If If Not IsEmpty(Request("ymax")) Then ymax = CDbl(Request("ymax")) End If %> <% Select Case one_keynumber%><% Case 1%>testkey_polysi<% Case 0%>Polysilicon Key Numbers<% Case Else%>Error<% End Select %> <% Select Case one_keynumber Case 1 SQLStmt = "select * from sitester.testkey_polysi tp,sitester.sensor_log sl where startdate=logdate AND sl.rowid='"+Request("rowid_x")+"' and keynumber='"+CStr(keynumber_x)+"' order by tp.bias" Set RS = Connection.Execute(SQLStmt) batch=RS("Batch") sensor=RS("Sensor") %> <% folderspec="d:\pub\www\PublicDatabase\ASPGraph\images" %> <%'--- Create object --- seed=-(second(now())+60*minute(now())+3600*hour(now())+3600*24*day(now())) filename="fff" & cstr(int(100000.*rnd(seed))) & ".jpg" filename_full=ph_image_directory & filename %>

Batch <%=batch %>, sensor <%=sensor %>, Polysilicon IV measurement

Measurement Date <%= RS("Logdate") %>
Measurement Type Polysilicon Current
Operator <%= RS("Operator") %>
Operator's Comments <%= RS("Comments") %>
Keynumber <%= RS("keynumber") %>
Temperature (°C) <%= RS("Temperature") %>
Humidity <%= RS("Humidity") %>

 

<% Dim Chart Dim Color(8) Color(0) = vbRed Color(1) = vbBlue Color(2) = vbYellow Color(3) = vbGreen Color(4)= vbMagenta Color(5)= vbCyan Color(6)= vbWhite Color(7)= vbBlack rem ********************************************************************** rem * Instantiate the Chart component rem ********************************************************************** Set Chart = Server.CreateObject ("ASPChart.Chart") rem ********************************************************************** rem * Create x Array rem ********************************************************************** num_points = 0 vi_sigma2 = 0.0 one_sigma2 = 0.0 v_sigma2 = 0.0 i_sigma2 = 0.0 v2_sigma2 = 0.0 i2_sigma2 = 0.0 do while not RS.Eof num_points = num_points + 1 If CDbl(RS("Sigma_Current")) > 0 Then vi_sigma2=vi_sigma2+CDbl(RS("Bias"))*CDbl(RS("Mean_Current"))/(CDbl(RS("Sigma_Current"))^2) one_sigma2=one_sigma2+1.0/(CDbl(RS("Sigma_Current"))^2) v_sigma2=v_sigma2+CDbl(RS("Bias"))/(CDbl(RS("Sigma_Current"))^2) i_sigma2=i_sigma2+CDbl(RS("Mean_Current"))/(CDbl(RS("Sigma_Current"))^2) v2_sigma2=v2_sigma2+(CDbl(RS("Bias"))^2)/(CDbl(RS("Sigma_Current"))^2) i2_sigma2=i2_sigma2+(CDbl(RS("Mean_Current"))^2)/(CDbl(RS("Sigma_Current"))^2) End If RS.MoveNext loop If num_points > 2 Then i_over_v=(vi_sigma2*one_sigma2-v_sigma2*i_sigma2)/(v2_sigma2*one_sigma2-v_sigma2*v_sigma2) i_zero=(v2_sigma2*i_sigma2-v_sigma2*vi_sigma2)/(v2_sigma2*one_sigma2-v_sigma2*v_sigma2) resistance_mohms=1000/i_over_v numerator=one_sigma2*i2_sigma2*v2_sigma2-i2_sigma2*v_sigma2*v_sigma2-i_sigma2*i_sigma2*v2_sigma2-one_sigma2*vi_sigma2*vi_sigma2+2*vi_sigma2*i_sigma2*v_sigma2 denomenator=(v2_sigma2*one_sigma2-v_sigma2*v_sigma2)*(v2_sigma2*one_sigma2-v_sigma2*v_sigma2) i_over_v_error=Sqr(one_sigma2*numerator/(denomenator*(num_points-2))) resistance_mohms_error=1000*i_over_v_error/(i_over_v*i_over_v) Else i_over_v=0 i_zero=0 resistance_mohms=0 resistance_mohms_error=0 End If Chart.AddSeries 6 Chart.SeriesTitle = "Real Data" Chart.LineWidth = 2 RS.MoveFirst do while not RS.Eof Chart.AddXY CDbl(RS("Bias")), CDbl(RS("Mean_Current")), "",Color(1) RS.MoveNext loop Chart.AddSeries 5 Chart.SeriesTitle = "Fit Line" Chart.LineWidth = 2 RS.MoveFirst do while not RS.Eof Chart.AddXY CDbl(RS("Bias")), (CDbl(RS("Bias"))*i_over_v + i_zero), "",Color(3) RS.MoveNext loop Chart.AddSeries 5 Chart.SeriesTitle = "5 ± 2 Mohm Limits" volt=0 do while volt<=100 Chart.AddXY volt, 1000*volt/7., "",Color(0) volt=volt+10 loop Chart.AddSeries 5 Chart.SeriesInLegend = False volt=0 do while volt<=100 Chart.AddXY volt, 1000*volt/3., "",Color(0) volt=volt+10 loop Chart.AddSeries 5 Chart.SeriesTitle = "1 Mohm Limit" volt=0 do while volt<=100 Chart.AddXY volt, 1000*volt/1., "",Color(4) volt=volt+10 loop Chart.AddSeries 5 Chart.SeriesTitle = "0.55 Mohm Limit" volt=0 do while volt<=100 Chart.AddXY volt, 1000*volt/0.55, "",Color(5) volt=volt+10 loop rem ********************************************************************** rem * Add and format the title rem ********************************************************************** res= Cstr(precision(resistance_mohms,2)) & "±" & Cstr(precision(resistance_mohms_error,2)) & " Mohms." Chart.ChartTitleAdd (Cstr(batch) & "/" & Cstr(sensor) & " " & "Rp=" & res) Chart.ChartTitleFont.Size = 18 Chart.ChartTitleFont.Name = "Times New Roman" Chart.ChartTitleFont.Italic = true Chart.ChartTitleFont.Bold = true Chart.View3D = false rem Chart.LegendVisible = True Chart.LegendStyle = cSeries Chart.AxisGridLines = false Chart.Frame = false rem ********************************************************************** rem * Remove the OuterBevel, add a gradient fill to chart panel rem ********************************************************************** Chart.BevelOuter = 0 rem Chart.GradientVisible = true rem Chart.GradientStartColor = vbWhite rem Chart.GradientEndColor = vbYellow Chart.PanelColor = Color(6) rem ********************************************************************** rem * Set the Width and Height of the image rem ********************************************************************** Chart.Height = 300 Chart.Width = 600 Chart.HorizAxisMax = 100. Chart.HorizAxisMin = 0. If IsEmpty(ymax) Then Chart.VertAxisMax = 20000. Else Chart.VertAxisMax = ymax End If Chart.VertAxisMin = 0. Chart.AddAxisLabel 1 , "Mean Current [nA]" Chart.AddAxisLabel 2 , "Voltage [Volts]" rem ********************************************************************** rem * Set the filename, save the image and write the image tag rem ********************************************************************** Chart.FileName = filename_full Chart.SaveChart line="
" Response.Write (line) rem ********************************************************************** rem * Destroy the object rem ********************************************************************** Set Chart = nothing %>

The resistance is <%= precision(resistance_mohms,2) %> ± <%= precision(resistance_mohms_error,2) %> Mohms.

Fit Line Equation: Current[nA] = <%= precision(i_over_v,2) %>[nA/Volt] × Voltage[Volts] <% If (i_zero >= 0.0) Then %>+ <% Else %>- <%End If %> <%= precision(Abs(i_zero),2)%>[nA]

<% RS.MoveFirst do while not RS.Eof %> <% RS.MoveNext loop %>
Voltage[V] Mean Current[nA] Sigma Current[nA]
<%= RS("Bias") %> <%= RS("Mean_Current") %> <%= RS("Sigma_Current") %>
<% Case 0 %>

Batch <%= RS("bat") %>, sensor <%= RS("sen") %> Available Polysilicon Key Data

<% Do While Not RS.EOF %> <% RS.Movenext Loop %>
Key Number Measurement
<%= RS("keynumber") %> &keynumber_x=<%= RS("keynumber") %>">IV
<% Case Else %>

No data for this measurement <% End Select %>

<% Connection.Close %>