| | |
| | | } |
| | | else |
| | | { |
| | | |
| | | _halconToolDict[toolKey].InputTupleDic["INPUT_Params"] = new HTuple(array); |
| | | if (!_halconToolDict[toolKey].RunProcedure(out string error)) |
| | | { |
| | |
| | | double actualValue = double.Parse(_halconToolDict[toolKey].GetResultTuple("OUTPUT_Result").D.ToString(_precision)); |
| | | m.Spec.ActualValue = actualValue; |
| | | |
| | | //M071要求超限数据在允许范围内压缩到合格范围内 |
| | | if (_allowedShift > 0 && m.Spec.MeasureResult != null && m.Spec.MeasureResult.Value == false) |
| | | if (m.MeasureType.ToLower() == "alignment" || m.MeasureType.ToLower() == "slant") |
| | | { |
| | | m.Spec.ActualValue = m.Spec.StandardValue + (actualValue - m.Spec.StandardValue) * (m.Spec.Tolrenance_Positive - m.Spec.StandardValue) / (m.Spec.Tolrenance_Positive - m.Spec.StandardValue + _allowedShift); |
| | | //M071要求超限数据在允许范围内压缩到合格范围内 |
| | | if (_allowedShift > 0 && m.Spec.MeasureResult != null && m.Spec.MeasureResult.Value == false) |
| | | { |
| | | m.Spec.ActualValue = m.Spec.StandardValue + (actualValue - m.Spec.StandardValue) * (m.Spec.Tolrenance_Positive - m.Spec.StandardValue) / (m.Spec.Tolrenance_Positive - m.Spec.StandardValue + _allowedShift); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | if (m.Spec?.ActualValue != null) |
| | | { |
| | | LogAsync(DateTime.Now, $"{m.Name}检测结果{m.Spec.ActualValue.Value.ToString(_precision)}", ""); |
| | | } |
| | | |
| | | KeyIndicator indicator = new KeyIndicator(m.Id, m.DisplayLocation); |
| | |
| | | var results = _halconToolDict[keyToolKey].GetResultTuple("OUTPUT_Results").DArr.ToList(); |
| | | if (results.Count == 0 || results.Any(u => u < 0)) |
| | | { |
| | | LogAsync(DateTime.Now, $"{k.AliasName}原始数据异常", ""); |
| | | LogAsync(DateTime.Now, $"{k.AliasName}原始数据{string.Join(",", results)}异常", ""); |
| | | } |
| | | else |
| | | { |
| | | //LogAsync(DateTime.Now, $"{k.AliasName}原始数据", $"{string.Join(" ", results)}"); |
| | | |
| | | results = results.Select(u => u - Config.PlanCompensation).ToList(); |
| | | |
| | | string resultStr = ""; |
| | | resultDict = k.KeyResultList.ToDictionary(u => u, u => |
| | | { |
| | | int index = k.KeyResultList.IndexOf(u); |
| | | return results[index]; |
| | | |
| | | if (index < results.Count && index >= 0) |
| | | { |
| | | double origin = results[index]; |
| | | |
| | | var compensation = k.KeyCompensationCollection.FirstOrDefault(c => c.KeyResult == u); |
| | | if (compensation != null) |
| | | { |
| | | origin = origin + compensation.Compensation; |
| | | } |
| | | |
| | | resultStr += $"{u} {origin};"; |
| | | |
| | | return origin; |
| | | } |
| | | else |
| | | { |
| | | return -999.0; |
| | | } |
| | | }); |
| | | |
| | | LogAsync(DateTime.Now, $"{k.AliasName}结果:{resultStr}", ""); |
| | | } |
| | | } |
| | | } |