updated 100% stratus to auto calculate std dev
This commit is contained in:
committed by
Stieber Daniel (IT FI MES)
parent
b0b127cd87
commit
2dc8a264c2
@ -95,7 +95,7 @@ Declare subroutine Tool_Services, Mona_Services
|
||||
Declare function SRP_Sort_Array, Metrology_Services, obj_RDS_Test, obj_Test_Point_Map, Database_Services, UCase
|
||||
Declare function Work_Order_Services, SRP_JSON, Logging_Services, Environment_Services, SRP_Trim, Min, Max
|
||||
Declare function QA_Services, SRP_Join_Arrays, Get_Status, Obj_Clean_Insp, Datetime, SRP_Datetime
|
||||
Declare function Httpclient_Services, PM_Services, Signature_Services
|
||||
Declare function Httpclient_Services, PM_Services, Signature_Services, SRP_Array, Math_Services
|
||||
|
||||
LogPath = Environment_Services('GetApplicationRootPath') : '\LogFiles\Metrology'
|
||||
LogDate = Oconv(Date(), 'D4/')
|
||||
@ -494,16 +494,32 @@ Service ImportStratusData(RunData)
|
||||
Case Otherwise$
|
||||
Error_Services('Add', 'Unrecognized cassette ID ':Cassette:'.')
|
||||
End Case
|
||||
// Update WO_MAT record
|
||||
|
||||
If Error_Services('NoError') then
|
||||
WOMatKey = WorkOrderNo : '*' : CassNo
|
||||
WOMatRec = Database_Services('ReadDataRow', 'WO_MAT', WOMatKey)
|
||||
|
||||
// Update WO_MAT record
|
||||
StdDev = ''
|
||||
WOMatKey = WorkOrderNo : '*' : CassNo
|
||||
WOMatRec = Database_Services('ReadDataRow', 'WO_MAT', WOMatKey)
|
||||
If Error_Services('NoError') then
|
||||
NumVals = 0
|
||||
For each Position in Positions using @VM setting vPos
|
||||
If Position NE '' then
|
||||
WOMatRec<WO_MAT_MU_WAFER_THK_RESULT$, Position> = DataPoints<0, vPos>
|
||||
WOMatRec<WO_MAT_MU_WAFER_THK_RESULT$, Position> = DataPoints<0, vPos>
|
||||
NumVals += 1
|
||||
end
|
||||
Next Position
|
||||
If NumVals EQ 25 then
|
||||
StdDevType = 'POPULATION'
|
||||
end else
|
||||
StdDevType = 'SAMPLE'
|
||||
end
|
||||
If NumVals GT 0 then
|
||||
Vals = WOMatRec<WO_MAT_MU_WAFER_THK_RESULT$>
|
||||
Vals = SRP_Array('Clean', Vals, 'Trim', @VM)
|
||||
StdDev = Math_Services('GetStdDev', Vals, StdDevType)
|
||||
StdDev = OConv(IConv(StdDev, 'MD3'), 'MD3')
|
||||
end
|
||||
Database_Services('WriteDataRow', 'WO_MAT', WOMatKey, WOMatRec, True$, False$, True$)
|
||||
If Error_Services('HasError') then
|
||||
Metrology_Services('LogResults', RDSNo@, Machine, 'UID001', Service : ' : ' : Error_Services('GetMessage'))
|
||||
@ -511,17 +527,34 @@ Service ImportStratusData(RunData)
|
||||
end else
|
||||
Metrology_Services('LogResults', RDSNo@, Machine, 'UID001', Service : ' : ' : Error_Services('GetMessage'))
|
||||
end
|
||||
//Update the WM_OUT record for EpiPro
|
||||
if IsEpiPro then
|
||||
WMORec = Database_Services('ReadDataRow', 'WM_OUT', RDSNo@)
|
||||
for each wafer in Positions using @VM setting dPos
|
||||
WMORec<WM_OUT_MU_WAFER_THK_RESULT$, wafer> = DataPoints<0, dPos>
|
||||
Next wafer
|
||||
// Update the WM_OUT record for EpiPro
|
||||
If IsEpiPro then
|
||||
NumVals = 0
|
||||
WMORec = Database_Services('ReadDataRow', 'WM_OUT', RDSNo@)
|
||||
For each Wafer in Positions using @VM setting dPos
|
||||
If Wafer NE '' then
|
||||
WMORec<WM_OUT_MU_WAFER_THK_RESULT$, Wafer> = DataPoints<0, dPos>
|
||||
NumVals += 1
|
||||
end
|
||||
Next Wafer
|
||||
If NumVals EQ 25 then
|
||||
StdDevType = 'POPULATION'
|
||||
end else
|
||||
StdDevType = 'SAMPLE'
|
||||
end
|
||||
If NumVals GT 0 then
|
||||
Vals = WMORec<WM_OUT_MU_WAFER_THK_RESULT$>
|
||||
Vals = SRP_Array('Clean', Vals, 'Trim', @VM)
|
||||
StdDev = Math_Services('GetStdDev', Vals, StdDevType)
|
||||
StdDev = OConv(IConv(StdDev, 'MD3'), 'MD3')
|
||||
end
|
||||
Database_Services('WriteDataRow', 'WM_OUT', RDSNo@, WMORec, True$, False$, True$)
|
||||
end
|
||||
end
|
||||
|
||||
// Update WO_MAT_QA record
|
||||
WOMatQAID = WorkOrderNo : '*' : CassNo
|
||||
WOMatQARec = Database_Services('ReadDataRow', 'WO_MAT_QA', WOMatQAID)
|
||||
StdDevMax = ''
|
||||
WOMatQAID = WorkOrderNo : '*' : CassNo
|
||||
WOMatQARec = Database_Services('ReadDataRow', 'WO_MAT_QA', WOMatQAID)
|
||||
If Error_Services('NoError') then
|
||||
SpecRecipes = WOMatQARec<WO_MAT_QA_RECIPE$>
|
||||
ProfSteps = ''
|
||||
@ -529,11 +562,20 @@ Service ImportStratusData(RunData)
|
||||
ProfileCnt = DCount(WOMatQARec<WO_MAT_QA_PROFILE$>, @VM)
|
||||
Stages = WOMatQARec<WO_MAT_QA_STAGE$>
|
||||
Slots = WOMatQARec<WO_MAT_QA_SLOT$>
|
||||
SpecQty = WOMatQARec<WO_MAT_QA_WFR_QTY$>
|
||||
pPos = ''
|
||||
For each Profile in Profiles using @VM setting pPos
|
||||
Stage = Stages<0, pPos>
|
||||
If ( (Profile EQ '1ADE') and ( (Stage EQ 'QA') or (Stage EQ 'MO_QA') ) ) then
|
||||
Slot = Slots<0, pPos>
|
||||
If ( (Slot EQ 'A') or (SpecQty EQ 'A') or (SpecQty GT 5) ) then
|
||||
MetMin = WOMatQARec<WO_MAT_QA_MIN$, pPos>
|
||||
MetMax = WOMatQARec<WO_MAT_QA_MAX$, pPos>
|
||||
StdDevMax = ((MetMin + MetMax) / 2) * (0.02)
|
||||
StdDevMax = IConv(StdDevMax,'MD3')
|
||||
WOMatQARec<WO_MAT_QA_STD_RESULT$, pPos> = StdDev
|
||||
WOMatQARec<WO_MAT_QA_STD_MAX$, pPos> = StdDevMax
|
||||
end
|
||||
Begin Case
|
||||
Case Slot EQ '1'
|
||||
WaferIndex = 1
|
||||
@ -544,10 +586,6 @@ Service ImportStratusData(RunData)
|
||||
Case Otherwise$
|
||||
WaferIndex = Slot
|
||||
End Case
|
||||
* If Slot EQ '1' then WaferIndex = 1
|
||||
* If Slot EQ 'L' then WaferIndex = 25
|
||||
* //Running into Slot "A" in some PSN's and QA records. Translating slot "A" to slot 1
|
||||
* If Slot EQ 'A' then WaferIndex = 1
|
||||
Locate WaferIndex in Positions using @VM setting dPos then
|
||||
WOMatQARec<WO_MAT_QA_RESULT$, pPos> = DataPoints<0, dPos>
|
||||
end
|
||||
@ -561,10 +599,11 @@ Service ImportStratusData(RunData)
|
||||
end
|
||||
end else
|
||||
Metrology_Services('LogResults', RDSNo@, Machine, 'UID001', Service : ' : ' : Error_Services('GetMessage'))
|
||||
end
|
||||
end
|
||||
end else
|
||||
Metrology_Services('LogResults', RDSNo@, Machine, 'UID001', Service : ' : ' : Error_Services('GetMessage'))
|
||||
end
|
||||
|
||||
end service
|
||||
|
||||
|
||||
@ -2819,20 +2858,3 @@ LoadRunDataToDatabase:
|
||||
|
||||
return
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user