src/Bro.Device.GTSCard/GTSCardDriver.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/Bro.M071.Process/M071Models.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/Bro.M071.Process/M071Process.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/Bro.M071.Process/M071Process_MES.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/Bro.Device.GTSCard/GTSCardDriver.cs
@@ -998,18 +998,26 @@ capture = 0; //正限位 if ((axisStatus.AxisStatus & 0x20) != 0 && !goHomePara.IsCaptureDirPositive) if ((axisStatus.AxisStatus & 0x20) != 0) { homeDirection = false; if (!goHomePara.IsCaptureDirPositive) { isRightLimitReached = true; } } //负限位 if ((axisStatus.AxisStatus & 0x40) != 0 && goHomePara.IsCaptureDirPositive) if ((axisStatus.AxisStatus & 0x40) != 0) { homeDirection = true; if (goHomePara.IsCaptureDirPositive) { isRightLimitReached = true; } homeDirection = !homeDirection; } LogAsync(DateTime.Now, $"轴{movingOption.AxisIndex}极限位置换向", ""); } src/Bro.M071.Process/M071Models.cs
@@ -213,6 +213,13 @@ public string KeyResultId { get; set; } #endregion [Category("补偿配置")] [DisplayName("单键补偿")] [Description("单键补偿")] [TypeConverter(typeof(CollectionCountConvert))] [Editor(typeof(ComplexCollectionEditor<KeyCompensation>), typeof(UITypeEditor))] public List<KeyCompensation> KeyCompensationCollection { get; set; } = new List<KeyCompensation>(); #region 检测相关字段 public Dictionary<string, double> KeyValues = null; //public SnapshotPoint SnapshotPoint = null; @@ -260,6 +267,24 @@ } } public class KeyCompensation : IComplexDisplay { [Category("单键补偿")] [DisplayName("单键结果")] [Description("针对单键的某一项结果做补偿,一般为Z1,Z2,Z3,Z4,B1,B2")] public string KeyResult { get; set; } [Category("单键补偿")] [DisplayName("补偿值")] [Description("单键结果补偿值")] public float Compensation { get; set; } public string GetDisplayText() { return $"{KeyResult} {Compensation}"; } } public class ProductionMeasurement : INotifyPropertyChanged, IDisposable { public string Barcode; src/Bro.M071.Process/M071Process.cs
@@ -624,7 +624,6 @@ } else { _halconToolDict[toolKey].InputTupleDic["INPUT_Params"] = new HTuple(array); if (!_halconToolDict[toolKey].RunProcedure(out string error)) { @@ -637,6 +636,8 @@ double actualValue = double.Parse(_halconToolDict[toolKey].GetResultTuple("OUTPUT_Result").D.ToString(_precision)); m.Spec.ActualValue = actualValue; if (m.MeasureType.ToLower() == "alignment" || m.MeasureType.ToLower() == "slant") { //M071要求超限数据在允许范围内压缩到合格范围内 if (_allowedShift > 0 && m.Spec.MeasureResult != null && m.Spec.MeasureResult.Value == false) { @@ -645,6 +646,12 @@ } } } } } if (m.Spec?.ActualValue != null) { LogAsync(DateTime.Now, $"{m.Name}检测结果{m.Spec.ActualValue.Value.ToString(_precision)}", ""); } KeyIndicator indicator = new KeyIndicator(m.Id, m.DisplayLocation); @@ -1467,20 +1474,42 @@ else { var results = _halconToolDict[keyToolKey].GetResultTuple("OUTPUT_Results").DArr.ToList(); if (results.Count == 0 || results.Any(u => u < 0)) if (results.Count == 0 || results.Any(u => u < 0) || results.Count != k.KeyResultList.Count) { 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}", ""); } } } src/Bro.M071.Process/M071Process_MES.cs
@@ -162,6 +162,7 @@ try { result = IncomingCheckMethod?.Invoke(IncomingCheckObj, paras).ToString(); repeatTime = -1; } catch (Exception ex) {