Zum Hauptinhalt springen

Customizing Calibration Grid and Custom Pass/Fail Parameters

Suppose you wanted to do a couple things with a Calibration Test Point grid. For example - if you wanted to set your own determination for Pass/Fail. This can be done by first adding a custom event trigger for "Add Equipment (After)". In this same code you can also customize how Resolution and Truncation is displayed for each column - beyond the normal ways that Resolution is set. Setting PassFailOverride to True allows your "Override" code to occur for Pass/Fail. ResOverride tells your program to link fields to have their resolution pulled from other fields. You can also set "offset" for resolution. To have a field "truncate" data based on it's resolution, set the TruncFIELDNAME value to True.

You could use the following code:

sCompany = LookupEquipmentCompany

sID = LookupEquipmentID

If sID <> "" then

CurrentTolDir = ReturnFromSQL("SELECT TOL_DIRECTION FROM GAGES WHERE COMPANY='" & sCompany & "' AND GAGE_SN='" & sID & "'")

If CurrentTolDir = "SPECIAL TOL." then

PassFailOverride = True <-- This

ResOverride = True

TruncTol = True

SetResTol = True

ResFieldTol = "AV_RES"

TruncStandard = True

SetResStandard = True

ResFieldStandard = "NUM_RESOLUTION"

ResStandardOffset = 1

TruncExtra4 = True

SetResExtra4 = True

ResFieldExtra4 = "NUM_RESOLUTION"

ResExtra4Offset = 1

TruncExtra3 = True

SetResExtra3 = True

ResFieldExtra3 = "AV_RES"

TruncExtra5 = True

SetResExtra5 = True

ResFieldExtra5 = "AV_RES"

SetResAVResult = True

ResFieldAVResult = "AV_RES"

SetResExtra2 = True

ResFieldExtra2 = "AV_RES"

SetResUsedWarnTol = True

ResFieldUsedWarnTol = "AV_RES"

ResUsedWarnTolOffset = 2

else

PassFailOverride = False

ResOverride = False

end if

end if

Note: This would only change the grid for new events after equipment has been added - repeat this same logic in a "Event Launch (End)" to also catch this for events that are being edited.

To override the "Pass/Fail" result, you could use the code below in a "Test Point Before Post" Trigger Action:

If PassFailOverride = True then

dStandard = tpFieldByNameAsFloat("LINE_STANDARD")

dTolPlus = tpFieldByNameAsFloat("TOLERANCE1")

dTolMinus = tpFieldByNameAsFloat("TOLERANCE2")

dAsFound = tpFieldByNameAsFloat("RESULT1")

dAsLeft = tpFieldByNameAsFloat("RESULT2")

sFailed = tpFieldByNameAsString("OUT_OF_TOL")

sAdjusted = tpFieldByNameAsString("ADJUSTED")

sROV = tpFieldByNameAsString("ROV")

sLimited = tpFieldByNameAsString("LIMITED")

iAV_RES = tpFieldBynameAsInteger("AV_RES")

dCalTol = tpFieldByNameAsFloat("TEST_ACCURACY")

If (DualTolerance = True) then

dTolMinus2 = tpFieldByNameAsFloat("EXTRA_NUM3")

dStandard2 = tpFieldByNameAsFloat("EXTRA_NUM4")

dTolPlus2 = tpFieldByNameAsFloat("EXTRA_NUM5")

else

dTolMinus2 = dTolMinus

dStandard2 = dStandard

dTolPlus2 = dTolPlus2

end if

If ((tpFieldIsNull("RESULT1") <> "1") and (tpFieldIsNull("LINE_STANDARD") <> "1")) then

dCalcDev = (dAsFound - dStandard)

tpSetFieldByNameAsFloat("UTOLERANCE2_WARN", dCalcDev)

dCalcDev = RoundToDecimal(dCalcDev,iAV_RES)

tpSetFieldByNameAsFloat("AV_AS_FOUND", dCalcDev)

else

tpSetFieldByNameNull("UTOLERANCE2_WARN")

tpSetFieldByNameNull("AV_AS_FOUND")

end if

If (DualTolerance = True) then

If ((tpFieldIsNull("RESULT2") <> "1") and (tpFieldIsNull("EXTRA_NUM4") <> "1")) then

dCalcDev2 = (dAsLeft - dStandard2)

tpSetFieldByNameAsFloat("UTOLERANCE1_WARN", dCalcDev2)

dCalcDev2 = RoundToDecimal(dCalcDev2,iAV_RES)

tpSetFieldByNameAsFloat("EXTRA_NUM2", dCalcDev2)

else

tpSetFieldByNameNull("UTOLERANCE1_WARN")

tpSetFieldByNameNull("EXTRA_NUM2")

end if

else

If ((tpFieldIsNull("RESULT2") <> "1") and (tpFieldIsNull("LINE_STANDARD") <> "1")) then

dCalcDev2 = (dAsLeft - dStandard2)

tpSetFieldByNameAsFloat("UTOLERANCE1_WARN", dCalcDev2)

dCalcDev2 = RoundToDecimal(dCalcDev2,iAV_RES)

tpSetFieldByNameAsFloat("EXTRA_NUM2", dCalcDev2)

else

tpSetFieldByNameNull("UTOLERANCE1_WARN")

tpSetFieldByNameNull("EXTRA_NUM2")

end if

end if

sVerdict = tpFieldByNameAsString("VERDICT")

If sVerdict = "" then

iFromType = 1

elseIf sVerdict = "F" then

iFromType = 2

elseIf sVerdict = "A" then

iFromType = 3

elseIf sVerdict = "L" then

iFromType = 4

elseIf sVerdict = "R" then

iFromType = 5

end if

If iFromType = 2 then

CalFailed = (CalFailed - 1)

elseIf iFromType = 3 then

CalFailed = (CalFailed - 1)

CalAdjusted = (CalAdjusted - 1)

elseIf iFromType = 4 then

CalFailed = (CalFailed - 1)

CalLimited = (CalLimited - 1)

elseIf iFromType = 5 then

CalROV = (CalROV - 1)

end if

If (tpFieldIsNull("AV_AS_FOUND") <> "1") then

If (CDbl(Abs(tpFieldByNameAsFloat("AV_AS_FOUND"))) <= CDbl(dCalTol)) then

sNewVerdict = ""

else

sNewVerdict = "F"

end if

else

sNewVerdict = ""

end if

If sFailed = "1" then

sNewVerdict = "F"

end if

If sNewVerdict = "F" then

If (tpFieldIsNull("EXTRA_NUM2") <> "1") then

If (CDbl(Abs(tpFieldByNameAsFloat("EXTRA_NUM2"))) <= CDbl(dCalTol)) then

sNewVerdict = "A"

end if

end if

If sAdjusted = "1" then

sNewVerdict = "A"

end if

end if

If sNewVerdict = "F" then

If sLimited = "1" then

sNewVerdict = "L"

end if

end if

If sROV = "1" then

sNewVerdict = "R"

end if

sVerdict = sNewVerdict

If sVerdict = "" then

iToType = 1

elseif sVerdict = "F" then

iToType = 2

elseif sVerdict = "A" then

iToType = 3

elseIf sVerdict = "L" then

iToType = 4

elseIf sVerdict = "R" then

iToType = 5

end if

tpSetFieldByNameAsString("VERDICT", sVERDICT)

If iToType = 2 then

CalFailed = (CalFailed + 1)

elseIf iToType = 3 then

CalFailed = (CalFailed + 1)

CalAdjusted = (CalAdjusted + 1)

elseIf iToType = 4 then

CalFailed = (CalFailed + 1)

CalLimited = (CalLimited + 1)

elseIf iToType = 5 then

CalROV = (CalROV + 1)

end if

end if |