From 4a07d45b259c25533e1d0baca9da8af710da4686 Mon Sep 17 00:00:00 2001 From: Tyrone CT Date: Thu, 10 Apr 2025 20:29:44 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=82=E6=95=B0=E9=85=8D=E7=BD=AE-=E5=85=A8?= =?UTF-8?q?=E9=83=A8=E5=8F=82=E6=95=B0=E7=9A=84=E5=90=AF=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CapMachine.Model/ProStep.cs | 86 +- CapMachine.Wpf/Services/ProRuntimeService.cs | 2103 +++++++++--------- CapMachine.Wpf/Views/ProConfigView.xaml | 649 +++--- 3 files changed, 1461 insertions(+), 1377 deletions(-) diff --git a/CapMachine.Model/ProStep.cs b/CapMachine.Model/ProStep.cs index 0e9df60..0c4a386 100644 --- a/CapMachine.Model/ProStep.cs +++ b/CapMachine.Model/ProStep.cs @@ -12,7 +12,7 @@ namespace CapMachine.Model /// 步骤 /// [Table(Name = "ProStep")] - public class ProStep + public class ProStep { /// /// 主键 @@ -54,29 +54,89 @@ namespace CapMachine.Model [Column(Name = "SpeedCycle")] public int SpeedCycle { get; set; } + + /// /// ///////////////////////////////////////////导航属性/////////////////////////////////////////////////////// /// - public List? MeterSpeeds { get; set; }=new List(); - public List? MeterCond1Temps { get; set; }=new List(); - public List? MeterCond2Temps { get; set; }= new List(); + + /// + /// 转速 + /// + public List? MeterSpeeds { get; set; } = new List(); + /// + /// COND1温度/冷凝器出口水温 + /// + public List? MeterCond1Temps { get; set; } = new List(); + /// + /// COND2温度 + /// + public List? MeterCond2Temps { get; set; } = new List(); + /// + /// COND2压力 + /// public List? MeterCond2Presss { get; set; } = new List(); - public List? MeterEVAPExpTemps { get; set; }=new List(); - public List? MeterExPresss { get; set; }=new List(); + /// + /// EVAP出口温度 + /// + public List? MeterEVAPExpTemps { get; set; } = new List(); + /// + /// 排气压力 + /// + public List? MeterExPresss { get; set; } = new List(); + /// + /// HV电压 + /// public List? MeterHVVols { get; set; } = new List(); + /// + /// 吸气压力 + /// public List? MeterInhPresss { get; set; } = new List(); + /// + /// 吸气温度 + /// public List? MeterInhTemps { get; set; } = new List(); + /// + /// 润滑油压力 + /// public List? MeterLubePresss { get; set; } = new List(); + /// + /// LV电压 + /// public List? MeterLVVols { get; set; } = new List(); - public List? MeterOCRs { get; set; }=new List(); - public List? MeterOS1Temps { get; set; }=new List(); - public List? MeterOS2Temps { get; set; }=new List(); - public List? MeterPTCEntTemps { get; set; }=new List(); - public List? MeterPTCFlows { get; set; }=new List(); + /// + /// OCR + /// + public List? MeterOCRs { get; set; } = new List(); + /// + /// OS1温度 + /// + public List? MeterOS1Temps { get; set; } = new List(); + /// + /// OS2温度/吸气混合器温度 + /// + public List? MeterOS2Temps { get; set; } = new List(); + /// + /// PTC入口水温 + /// + public List? MeterPTCEntTemps { get; set; } = new List(); + /// + /// PTC流量 + /// + public List? MeterPTCFlows { get; set; } = new List(); + /// + /// PTC功率 + /// public List? MeterPTCPws { get; set; } = new List(); - public List? MeterEnvRHs { get; set; }=new List(); - public List? MeterEnvTemps { get; set; }=new List(); + /// + /// 试验箱湿度 + /// + public List? MeterEnvRHs { get; set; } = new List(); + /// + /// 试验箱温度 + /// + public List? MeterEnvTemps { get; set; } = new List(); /// /// ///////////////////////////////////////////导航属性/////////////////////////////////////////////////////// diff --git a/CapMachine.Wpf/Services/ProRuntimeService.cs b/CapMachine.Wpf/Services/ProRuntimeService.cs index 468a3db..12a7495 100644 --- a/CapMachine.Wpf/Services/ProRuntimeService.cs +++ b/CapMachine.Wpf/Services/ProRuntimeService.cs @@ -434,7 +434,6 @@ namespace CapMachine.Wpf.Services } } - //********* 单个【排气压力】步骤信息的解析 ********* { var CurMeterName = "排气压力"; @@ -584,7 +583,7 @@ namespace CapMachine.Wpf.Services } - //********* 单个【COND1温度】步骤信息的解析 ********* + //********* 单个【COND1温度/冷凝器出口水温】步骤信息的解析 ********* { var CurMeterName = "COND1温度"; if (itemStep.MeterCond1Temps != null && itemStep.MeterCond1Temps.Any()) @@ -735,448 +734,448 @@ namespace CapMachine.Wpf.Services //********* 单个【COND2温度】步骤信息的解析 ********* { - // var CurMeterName = "COND2温度"; - // if (itemStep.MeterCond2Temps != null && itemStep.MeterCond2Temps.Any()) - // { - // switch (itemStep.MeterCond2Temps.FirstOrDefault()!.ValueType) - // { - // case ConfigValueType.Constant: //常值 - // //常值的话就一个数据,循环执行一次 - // foreach (var itemMeterValueCell in itemStep.MeterCond2Temps) - // { - // var Pid = new ConfigPID(); - // if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.PIDNo).Any()) - // { - // Pid = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.PIDNo).First(); - // } - // var Limit = new ConfigLimit(); - // if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.LimitNo).Any()) - // { - // Limit = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.LimitNo).First(); - // } - // var Alarm = new ConfigAlarm(); - // if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.AlarmNo).Any()) - // { - // Alarm = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.AlarmNo).First(); - // } + var CurMeterName = "COND2温度"; + if (itemStep.MeterCond2Temps != null && itemStep.MeterCond2Temps.Any()) + { + switch (itemStep.MeterCond2Temps.FirstOrDefault()!.ValueType) + { + case ConfigValueType.Constant: //常值 + //常值的话就一个数据,循环执行一次 + foreach (var itemMeterValueCell in itemStep.MeterCond2Temps) + { + var Pid = new ConfigPID(); + if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.PIDNo).Any()) + { + Pid = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.PIDNo).First(); + } + var Limit = new ConfigLimit(); + if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.LimitNo).Any()) + { + Limit = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.LimitNo).First(); + } + var Alarm = new ConfigAlarm(); + if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.AlarmNo).Any()) + { + Alarm = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.AlarmNo).First(); + } - // ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Add(new ProStepExe() - // { - // //程序块 - // ProSegName = CurProgramSeg.Name, - // ProSegStep = SegIndex, - // ProSegRepeat = CurProgramSeg.ProRepeat, - // ProSegIsExeing = false,//配置阶段默认不执行 false + ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Add(new ProStepExe() + { + //程序块 + ProSegName = CurProgramSeg.Name, + ProSegStep = SegIndex, + ProSegRepeat = CurProgramSeg.ProRepeat, + ProSegIsExeing = false,//配置阶段默认不执行 false - // //程序步骤数据 - // StartSV = GetSVByProcess(itemMeterValueCell.Constant, CurMeterName), - // EndSV = GetSVByProcess(itemMeterValueCell.Constant, CurMeterName), - // KeepTime = itemMeterValueCell.KeepTime, - // MeterStepIsExeing = false,//配置阶段默认不执行 false - // MeterStepIsOK = false,//配置阶段默认不完成 false - // ExistSlop = false,//常值没有斜率 //开始和结束不一样则存在斜率 + //程序步骤数据 + StartSV = GetSVByProcess(itemMeterValueCell.Constant, CurMeterName), + EndSV = GetSVByProcess(itemMeterValueCell.Constant, CurMeterName), + KeepTime = itemMeterValueCell.KeepTime, + MeterStepIsExeing = false,//配置阶段默认不执行 false + MeterStepIsOK = false,//配置阶段默认不完成 false + ExistSlop = false,//常值没有斜率 //开始和结束不一样则存在斜率 - // MeterStep = ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Count + 1, - // MeterName = CurMeterName, + MeterStep = ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Count + 1, + MeterName = CurMeterName, - // LimitNo = itemMeterValueCell.LimitNo, - // AlarmNo = itemMeterValueCell.AlarmNo, - // PIDNo = itemMeterValueCell.PIDNo, + LimitNo = itemMeterValueCell.LimitNo, + AlarmNo = itemMeterValueCell.AlarmNo, + PIDNo = itemMeterValueCell.PIDNo, - // CurConfigPIDDto = Mapper.Map(Pid), - // CurConfigLimitDto = Mapper.Map(Limit), - // CurConfigAlarmDto = Mapper.Map(Alarm), + CurConfigPIDDto = Mapper.Map(Pid), + CurConfigLimitDto = Mapper.Map(Limit), + CurConfigAlarmDto = Mapper.Map(Alarm), - // ProStepInfo = $"{itemStep.StepNo}-{itemMeterValueCell.StepNo}", - // }); - // } - // break; - // case ConfigValueType.Slope: - // //带斜率 - // //根据循环次数确定 - // var Cycle = GetCycleBySpeed(itemStep.MeterSpeeds, itemStep.SpeedCycle, itemStep.MeterCond2Temps.Select(p => new MeterCom { Constant = p.Constant, KeepTime = p.KeepTime, StepNo = p.StepNo, ValueType = p.ValueType }).ToList()); - // for (int StepCycleIndex = 1; StepCycleIndex <= Cycle; StepCycleIndex++) - // { - // //根据循环次数执行 - // foreach (var itemMeterValueCell in itemStep.MeterCond2Temps) - // { - // var Pid = new ConfigPID(); - // if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.PIDNo).Any()) - // { - // Pid = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.PIDNo).First(); - // } - // var Limit = new ConfigLimit(); - // if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.LimitNo).Any()) - // { - // Limit = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.LimitNo).First(); - // } - // var Alarm = new ConfigAlarm(); - // if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.AlarmNo).Any()) - // { - // Alarm = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.AlarmNo).First(); - // } + ProStepInfo = $"{itemStep.StepNo}-{itemMeterValueCell.StepNo}", + }); + } + break; + case ConfigValueType.Slope: + //带斜率 + //根据循环次数确定 + var Cycle = GetCycleBySpeed(itemStep.MeterSpeeds, itemStep.SpeedCycle, itemStep.MeterCond2Temps.Select(p => new MeterCom { Constant = p.Constant, KeepTime = p.KeepTime, StepNo = p.StepNo, ValueType = p.ValueType }).ToList()); + for (int StepCycleIndex = 1; StepCycleIndex <= Cycle; StepCycleIndex++) + { + //根据循环次数执行 + foreach (var itemMeterValueCell in itemStep.MeterCond2Temps) + { + var Pid = new ConfigPID(); + if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.PIDNo).Any()) + { + Pid = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.PIDNo).First(); + } + var Limit = new ConfigLimit(); + if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.LimitNo).Any()) + { + Limit = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.LimitNo).First(); + } + var Alarm = new ConfigAlarm(); + if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.AlarmNo).Any()) + { + Alarm = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.AlarmNo).First(); + } - // ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Add(new ProStepExe() - // { - // //程序块 - // ProSegName = CurProgramSeg.Name, - // ProSegStep = SegIndex, - // ProSegRepeat = CurProgramSeg.ProRepeat, - // ProSegIsExeing = false,//配置阶段默认不执行 false + ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Add(new ProStepExe() + { + //程序块 + ProSegName = CurProgramSeg.Name, + ProSegStep = SegIndex, + ProSegRepeat = CurProgramSeg.ProRepeat, + ProSegIsExeing = false,//配置阶段默认不执行 false - // //程序步骤数据 - // //SV = CALCHelper.GetQuickSV(itemMeterValueCell.Constant, 1), - // StartSV = GetSVByProcess(itemMeterValueCell.StartValue, CurMeterName), - // EndSV = GetSVByProcess(itemMeterValueCell.EndValue, CurMeterName), - // KeepTime = itemMeterValueCell.KeepTime, - // MeterStepIsExeing = false,//配置阶段默认不执行 false - // MeterStepIsOK = false,//配置阶段默认不完成 false - // ExistSlop = itemMeterValueCell.StartValue == itemMeterValueCell.EndValue ? false : true,//开始和结束不一样则存在斜率 + //程序步骤数据 + //SV = CALCHelper.GetQuickSV(itemMeterValueCell.Constant, 1), + StartSV = GetSVByProcess(itemMeterValueCell.StartValue, CurMeterName), + EndSV = GetSVByProcess(itemMeterValueCell.EndValue, CurMeterName), + KeepTime = itemMeterValueCell.KeepTime, + MeterStepIsExeing = false,//配置阶段默认不执行 false + MeterStepIsOK = false,//配置阶段默认不完成 false + ExistSlop = itemMeterValueCell.StartValue == itemMeterValueCell.EndValue ? false : true,//开始和结束不一样则存在斜率 - // MeterStep = ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Count + 1, + MeterStep = ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Count + 1, - // LimitNo = itemMeterValueCell.LimitNo, - // AlarmNo = itemMeterValueCell.AlarmNo, - // PIDNo = itemMeterValueCell.PIDNo, + LimitNo = itemMeterValueCell.LimitNo, + AlarmNo = itemMeterValueCell.AlarmNo, + PIDNo = itemMeterValueCell.PIDNo, - // CurConfigPIDDto = Mapper.Map(Pid), - // CurConfigLimitDto = Mapper.Map(Limit), - // CurConfigAlarmDto = Mapper.Map(Alarm), + CurConfigPIDDto = Mapper.Map(Pid), + CurConfigLimitDto = Mapper.Map(Limit), + CurConfigAlarmDto = Mapper.Map(Alarm), - // ProStepInfo = $"{itemStep.StepNo}-{itemMeterValueCell.StepNo}", - // MeterName = CurMeterName, - // }); - // } - // } - // break; - // default: - // break; - // } - // } - // else - // { - // //判断当前的参数是全部都没有设置还是这一步没有设置,如果这个步骤没有设置,则沿用上一个步骤数据 - // var CurMeterListStepExe = ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe; - // if (CurMeterListStepExe.Any()) - // { - // //之前有步骤数据的话,则直接使用上一步的数据 + ProStepInfo = $"{itemStep.StepNo}-{itemMeterValueCell.StepNo}", + MeterName = CurMeterName, + }); + } + } + break; + default: + break; + } + } + else + { + //判断当前的参数是全部都没有设置还是这一步没有设置,如果这个步骤没有设置,则沿用上一个步骤数据 + var CurMeterListStepExe = ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe; + if (CurMeterListStepExe.Any()) + { + //之前有步骤数据的话,则直接使用上一步的数据 - // //Copy这个步骤的数据 - // var LastStepData = CurMeterListStepExe.OrderByDescending(a => a.MeterStep).FirstOrDefault().DeepClone(); - // //处理这个步骤的数据-处理按照常值的恒定的模式运行,就是维持结束的常值数据 - // LastStepData!.MeterStep = LastStepData.MeterStep + 1;//步骤+1 - // LastStepData.KeepTime = SpeedStepTotaolTime;//时间是整个时间 - // LastStepData.ExistSlop = false; - // LastStepData.StartSV = LastStepData.EndSV; - // LastStepData.ProStepInfo = $"{itemStep.StepNo}-{1}"; - // //添加 - // CurMeterListStepExe.Add(LastStepData); - // //SpeedStepTotaolTime - // } - // else - // { - // //之前步骤没有数据的话,则放弃,不做任何处理 - // } - // LogService.Warn($"【名称】: {CurMeterName} - 未找到步骤信息。步骤为空"); - // } + //Copy这个步骤的数据 + var LastStepData = CurMeterListStepExe.OrderByDescending(a => a.MeterStep).FirstOrDefault().DeepClone(); + //处理这个步骤的数据-处理按照常值的恒定的模式运行,就是维持结束的常值数据 + LastStepData!.MeterStep = LastStepData.MeterStep + 1;//步骤+1 + LastStepData.KeepTime = SpeedStepTotaolTime;//时间是整个时间 + LastStepData.ExistSlop = false; + LastStepData.StartSV = LastStepData.EndSV; + LastStepData.ProStepInfo = $"{itemStep.StepNo}-{1}"; + //添加 + CurMeterListStepExe.Add(LastStepData); + //SpeedStepTotaolTime + } + else + { + //之前步骤没有数据的话,则放弃,不做任何处理 + } + LogService.Warn($"【名称】: {CurMeterName} - 未找到步骤信息。步骤为空"); + } } //********* 单个【COND2压力】步骤信息的解析 ********* { - // var CurMeterName = "COND2压力"; - // if (itemStep.MeterCond2Presss != null && itemStep.MeterCond2Presss.Any()) - // { - // switch (itemStep.MeterCond2Presss.FirstOrDefault()!.ValueType) - // { - // case ConfigValueType.Constant: //常值 - // //常值的话就一个数据,循环执行一次 - // foreach (var itemMeterValueCell in itemStep.MeterCond2Presss) - // { - // var Pid = new ConfigPID(); - // if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.PIDNo).Any()) - // { - // Pid = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.PIDNo).First(); - // } - // var Limit = new ConfigLimit(); - // if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.LimitNo).Any()) - // { - // Limit = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.LimitNo).First(); - // } - // var Alarm = new ConfigAlarm(); - // if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.AlarmNo).Any()) - // { - // Alarm = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.AlarmNo).First(); - // } + var CurMeterName = "COND2压力"; + if (itemStep.MeterCond2Presss != null && itemStep.MeterCond2Presss.Any()) + { + switch (itemStep.MeterCond2Presss.FirstOrDefault()!.ValueType) + { + case ConfigValueType.Constant: //常值 + //常值的话就一个数据,循环执行一次 + foreach (var itemMeterValueCell in itemStep.MeterCond2Presss) + { + var Pid = new ConfigPID(); + if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.PIDNo).Any()) + { + Pid = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.PIDNo).First(); + } + var Limit = new ConfigLimit(); + if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.LimitNo).Any()) + { + Limit = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.LimitNo).First(); + } + var Alarm = new ConfigAlarm(); + if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.AlarmNo).Any()) + { + Alarm = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.AlarmNo).First(); + } - // ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Add(new ProStepExe() - // { - // //程序块 - // ProSegName = CurProgramSeg.Name, - // ProSegStep = SegIndex, - // ProSegRepeat = CurProgramSeg.ProRepeat, - // ProSegIsExeing = false,//配置阶段默认不执行 false + ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Add(new ProStepExe() + { + //程序块 + ProSegName = CurProgramSeg.Name, + ProSegStep = SegIndex, + ProSegRepeat = CurProgramSeg.ProRepeat, + ProSegIsExeing = false,//配置阶段默认不执行 false - // //程序步骤数据 - // StartSV = GetSVByProcess(itemMeterValueCell.Constant, CurMeterName), - // EndSV = GetSVByProcess(itemMeterValueCell.Constant, CurMeterName), - // KeepTime = itemMeterValueCell.KeepTime, - // MeterStepIsExeing = false,//配置阶段默认不执行 false - // MeterStepIsOK = false,//配置阶段默认不完成 false - // ExistSlop = false,//常值没有斜率 //开始和结束不一样则存在斜率 + //程序步骤数据 + StartSV = GetSVByProcess(itemMeterValueCell.Constant, CurMeterName), + EndSV = GetSVByProcess(itemMeterValueCell.Constant, CurMeterName), + KeepTime = itemMeterValueCell.KeepTime, + MeterStepIsExeing = false,//配置阶段默认不执行 false + MeterStepIsOK = false,//配置阶段默认不完成 false + ExistSlop = false,//常值没有斜率 //开始和结束不一样则存在斜率 - // MeterStep = ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Count + 1, - // MeterName = CurMeterName, + MeterStep = ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Count + 1, + MeterName = CurMeterName, - // LimitNo = itemMeterValueCell.LimitNo, - // AlarmNo = itemMeterValueCell.AlarmNo, - // PIDNo = itemMeterValueCell.PIDNo, + LimitNo = itemMeterValueCell.LimitNo, + AlarmNo = itemMeterValueCell.AlarmNo, + PIDNo = itemMeterValueCell.PIDNo, - // CurConfigPIDDto = Mapper.Map(Pid), - // CurConfigLimitDto = Mapper.Map(Limit), - // CurConfigAlarmDto = Mapper.Map(Alarm), + CurConfigPIDDto = Mapper.Map(Pid), + CurConfigLimitDto = Mapper.Map(Limit), + CurConfigAlarmDto = Mapper.Map(Alarm), - // ProStepInfo = $"{itemStep.StepNo}-{itemMeterValueCell.StepNo}", - // }); - // } - // break; - // case ConfigValueType.Slope: - // //带斜率 - // //根据循环次数确定 - // var Cycle = GetCycleBySpeed(itemStep.MeterSpeeds, itemStep.SpeedCycle, itemStep.MeterCond2Presss.Select(p => new MeterCom { Constant = p.Constant, KeepTime = p.KeepTime, StepNo = p.StepNo, ValueType = p.ValueType }).ToList()); - // for (int StepCycleIndex = 1; StepCycleIndex <= Cycle; StepCycleIndex++) - // { - // //根据循环次数执行 - // foreach (var itemMeterValueCell in itemStep.MeterCond2Presss) - // { - // var Pid = new ConfigPID(); - // if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.PIDNo).Any()) - // { - // Pid = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.PIDNo).First(); - // } - // var Limit = new ConfigLimit(); - // if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.LimitNo).Any()) - // { - // Limit = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.LimitNo).First(); - // } - // var Alarm = new ConfigAlarm(); - // if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.AlarmNo).Any()) - // { - // Alarm = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.AlarmNo).First(); - // } + ProStepInfo = $"{itemStep.StepNo}-{itemMeterValueCell.StepNo}", + }); + } + break; + case ConfigValueType.Slope: + //带斜率 + //根据循环次数确定 + var Cycle = GetCycleBySpeed(itemStep.MeterSpeeds, itemStep.SpeedCycle, itemStep.MeterCond2Presss.Select(p => new MeterCom { Constant = p.Constant, KeepTime = p.KeepTime, StepNo = p.StepNo, ValueType = p.ValueType }).ToList()); + for (int StepCycleIndex = 1; StepCycleIndex <= Cycle; StepCycleIndex++) + { + //根据循环次数执行 + foreach (var itemMeterValueCell in itemStep.MeterCond2Presss) + { + var Pid = new ConfigPID(); + if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.PIDNo).Any()) + { + Pid = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.PIDNo).First(); + } + var Limit = new ConfigLimit(); + if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.LimitNo).Any()) + { + Limit = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.LimitNo).First(); + } + var Alarm = new ConfigAlarm(); + if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.AlarmNo).Any()) + { + Alarm = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.AlarmNo).First(); + } - // ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Add(new ProStepExe() - // { - // //程序块 - // ProSegName = CurProgramSeg.Name, - // ProSegStep = SegIndex, - // ProSegRepeat = CurProgramSeg.ProRepeat, - // ProSegIsExeing = false,//配置阶段默认不执行 false + ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Add(new ProStepExe() + { + //程序块 + ProSegName = CurProgramSeg.Name, + ProSegStep = SegIndex, + ProSegRepeat = CurProgramSeg.ProRepeat, + ProSegIsExeing = false,//配置阶段默认不执行 false - // //程序步骤数据 - // //SV = CALCHelper.GetQuickSV(itemMeterValueCell.Constant, 1), - // StartSV = GetSVByProcess(itemMeterValueCell.StartValue, CurMeterName), - // EndSV = GetSVByProcess(itemMeterValueCell.EndValue, CurMeterName), - // KeepTime = itemMeterValueCell.KeepTime, - // MeterStepIsExeing = false,//配置阶段默认不执行 false - // MeterStepIsOK = false,//配置阶段默认不完成 false - // ExistSlop = itemMeterValueCell.StartValue == itemMeterValueCell.EndValue ? false : true,//开始和结束不一样则存在斜率 + //程序步骤数据 + //SV = CALCHelper.GetQuickSV(itemMeterValueCell.Constant, 1), + StartSV = GetSVByProcess(itemMeterValueCell.StartValue, CurMeterName), + EndSV = GetSVByProcess(itemMeterValueCell.EndValue, CurMeterName), + KeepTime = itemMeterValueCell.KeepTime, + MeterStepIsExeing = false,//配置阶段默认不执行 false + MeterStepIsOK = false,//配置阶段默认不完成 false + ExistSlop = itemMeterValueCell.StartValue == itemMeterValueCell.EndValue ? false : true,//开始和结束不一样则存在斜率 - // MeterStep = ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Count + 1, + MeterStep = ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Count + 1, - // LimitNo = itemMeterValueCell.LimitNo, - // AlarmNo = itemMeterValueCell.AlarmNo, - // PIDNo = itemMeterValueCell.PIDNo, + LimitNo = itemMeterValueCell.LimitNo, + AlarmNo = itemMeterValueCell.AlarmNo, + PIDNo = itemMeterValueCell.PIDNo, - // CurConfigPIDDto = Mapper.Map(Pid), - // CurConfigLimitDto = Mapper.Map(Limit), - // CurConfigAlarmDto = Mapper.Map(Alarm), + CurConfigPIDDto = Mapper.Map(Pid), + CurConfigLimitDto = Mapper.Map(Limit), + CurConfigAlarmDto = Mapper.Map(Alarm), - // ProStepInfo = $"{itemStep.StepNo}-{itemMeterValueCell.StepNo}", - // MeterName = CurMeterName, - // }); - // } - // } - // break; - // default: - // break; - // } - // } - // else - // { - // //判断当前的参数是全部都没有设置还是这一步没有设置,如果这个步骤没有设置,则沿用上一个步骤数据 - // var CurMeterListStepExe = ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe; - // if (CurMeterListStepExe.Any()) - // { - // //之前有步骤数据的话,则直接使用上一步的数据 + ProStepInfo = $"{itemStep.StepNo}-{itemMeterValueCell.StepNo}", + MeterName = CurMeterName, + }); + } + } + break; + default: + break; + } + } + else + { + //判断当前的参数是全部都没有设置还是这一步没有设置,如果这个步骤没有设置,则沿用上一个步骤数据 + var CurMeterListStepExe = ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe; + if (CurMeterListStepExe.Any()) + { + //之前有步骤数据的话,则直接使用上一步的数据 - // //Copy这个步骤的数据 - // var LastStepData = CurMeterListStepExe.OrderByDescending(a => a.MeterStep).FirstOrDefault().DeepClone(); - // //处理这个步骤的数据-处理按照常值的恒定的模式运行,就是维持结束的常值数据 - // LastStepData!.MeterStep = LastStepData.MeterStep + 1;//步骤+1 - // LastStepData.KeepTime = SpeedStepTotaolTime;//时间是整个时间 - // LastStepData.ExistSlop = false; - // LastStepData.StartSV = LastStepData.EndSV; - // LastStepData.ProStepInfo = $"{itemStep.StepNo}-{1}"; - // //添加 - // CurMeterListStepExe.Add(LastStepData); - // //SpeedStepTotaolTime - // } - // else - // { - // //之前步骤没有数据的话,则放弃,不做任何处理 - // } - // LogService.Warn($"【名称】: {CurMeterName} - 未找到步骤信息。步骤为空"); - // } + //Copy这个步骤的数据 + var LastStepData = CurMeterListStepExe.OrderByDescending(a => a.MeterStep).FirstOrDefault().DeepClone(); + //处理这个步骤的数据-处理按照常值的恒定的模式运行,就是维持结束的常值数据 + LastStepData!.MeterStep = LastStepData.MeterStep + 1;//步骤+1 + LastStepData.KeepTime = SpeedStepTotaolTime;//时间是整个时间 + LastStepData.ExistSlop = false; + LastStepData.StartSV = LastStepData.EndSV; + LastStepData.ProStepInfo = $"{itemStep.StepNo}-{1}"; + //添加 + CurMeterListStepExe.Add(LastStepData); + //SpeedStepTotaolTime + } + else + { + //之前步骤没有数据的话,则放弃,不做任何处理 + } + LogService.Warn($"【名称】: {CurMeterName} - 未找到步骤信息。步骤为空"); + } } //********* 单个【EVAP出口温度】步骤信息的解析 ********* { - // var CurMeterName = "EVAP出口温度"; - // if (itemStep.MeterEVAPExpTemps != null && itemStep.MeterEVAPExpTemps.Any()) - // { - // switch (itemStep.MeterEVAPExpTemps.FirstOrDefault()!.ValueType) - // { - // case ConfigValueType.Constant: //常值 - // //常值的话就一个数据,循环执行一次 - // foreach (var itemMeterValueCell in itemStep.MeterEVAPExpTemps) - // { - // var Pid = new ConfigPID(); - // if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.PIDNo).Any()) - // { - // Pid = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.PIDNo).First(); - // } - // var Limit = new ConfigLimit(); - // if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.LimitNo).Any()) - // { - // Limit = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.LimitNo).First(); - // } - // var Alarm = new ConfigAlarm(); - // if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.AlarmNo).Any()) - // { - // Alarm = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.AlarmNo).First(); - // } + var CurMeterName = "EVAP出口温度"; + if (itemStep.MeterEVAPExpTemps != null && itemStep.MeterEVAPExpTemps.Any()) + { + switch (itemStep.MeterEVAPExpTemps.FirstOrDefault()!.ValueType) + { + case ConfigValueType.Constant: //常值 + //常值的话就一个数据,循环执行一次 + foreach (var itemMeterValueCell in itemStep.MeterEVAPExpTemps) + { + var Pid = new ConfigPID(); + if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.PIDNo).Any()) + { + Pid = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.PIDNo).First(); + } + var Limit = new ConfigLimit(); + if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.LimitNo).Any()) + { + Limit = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.LimitNo).First(); + } + var Alarm = new ConfigAlarm(); + if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.AlarmNo).Any()) + { + Alarm = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.AlarmNo).First(); + } - // ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Add(new ProStepExe() - // { - // //程序块 - // ProSegName = CurProgramSeg.Name, - // ProSegStep = SegIndex, - // ProSegRepeat = CurProgramSeg.ProRepeat, - // ProSegIsExeing = false,//配置阶段默认不执行 false + ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Add(new ProStepExe() + { + //程序块 + ProSegName = CurProgramSeg.Name, + ProSegStep = SegIndex, + ProSegRepeat = CurProgramSeg.ProRepeat, + ProSegIsExeing = false,//配置阶段默认不执行 false - // //程序步骤数据 - // StartSV = GetSVByProcess(itemMeterValueCell.Constant, CurMeterName), - // EndSV = GetSVByProcess(itemMeterValueCell.Constant, CurMeterName), - // KeepTime = itemMeterValueCell.KeepTime, - // MeterStepIsExeing = false,//配置阶段默认不执行 false - // MeterStepIsOK = false,//配置阶段默认不完成 false - // ExistSlop = false,//常值没有斜率 //开始和结束不一样则存在斜率 + //程序步骤数据 + StartSV = GetSVByProcess(itemMeterValueCell.Constant, CurMeterName), + EndSV = GetSVByProcess(itemMeterValueCell.Constant, CurMeterName), + KeepTime = itemMeterValueCell.KeepTime, + MeterStepIsExeing = false,//配置阶段默认不执行 false + MeterStepIsOK = false,//配置阶段默认不完成 false + ExistSlop = false,//常值没有斜率 //开始和结束不一样则存在斜率 - // MeterStep = ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Count + 1, - // MeterName = CurMeterName, + MeterStep = ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Count + 1, + MeterName = CurMeterName, - // LimitNo = itemMeterValueCell.LimitNo, - // AlarmNo = itemMeterValueCell.AlarmNo, - // PIDNo = itemMeterValueCell.PIDNo, + LimitNo = itemMeterValueCell.LimitNo, + AlarmNo = itemMeterValueCell.AlarmNo, + PIDNo = itemMeterValueCell.PIDNo, - // CurConfigPIDDto = Mapper.Map(Pid), - // CurConfigLimitDto = Mapper.Map(Limit), - // CurConfigAlarmDto = Mapper.Map(Alarm), + CurConfigPIDDto = Mapper.Map(Pid), + CurConfigLimitDto = Mapper.Map(Limit), + CurConfigAlarmDto = Mapper.Map(Alarm), - // ProStepInfo = $"{itemStep.StepNo}-{itemMeterValueCell.StepNo}", - // }); - // } - // break; - // case ConfigValueType.Slope: - // //带斜率 - // //根据循环次数确定 - // var Cycle = GetCycleBySpeed(itemStep.MeterSpeeds, itemStep.SpeedCycle, itemStep.MeterEVAPExpTemps.Select(p => new MeterCom { Constant = p.Constant, KeepTime = p.KeepTime, StepNo = p.StepNo, ValueType = p.ValueType }).ToList()); - // for (int StepCycleIndex = 1; StepCycleIndex <= Cycle; StepCycleIndex++) - // { - // //根据循环次数执行 - // foreach (var itemMeterValueCell in itemStep.MeterEVAPExpTemps) - // { - // var Pid = new ConfigPID(); - // if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.PIDNo).Any()) - // { - // Pid = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.PIDNo).First(); - // } - // var Limit = new ConfigLimit(); - // if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.LimitNo).Any()) - // { - // Limit = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.LimitNo).First(); - // } - // var Alarm = new ConfigAlarm(); - // if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.AlarmNo).Any()) - // { - // Alarm = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.AlarmNo).First(); - // } + ProStepInfo = $"{itemStep.StepNo}-{itemMeterValueCell.StepNo}", + }); + } + break; + case ConfigValueType.Slope: + //带斜率 + //根据循环次数确定 + var Cycle = GetCycleBySpeed(itemStep.MeterSpeeds, itemStep.SpeedCycle, itemStep.MeterEVAPExpTemps.Select(p => new MeterCom { Constant = p.Constant, KeepTime = p.KeepTime, StepNo = p.StepNo, ValueType = p.ValueType }).ToList()); + for (int StepCycleIndex = 1; StepCycleIndex <= Cycle; StepCycleIndex++) + { + //根据循环次数执行 + foreach (var itemMeterValueCell in itemStep.MeterEVAPExpTemps) + { + var Pid = new ConfigPID(); + if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.PIDNo).Any()) + { + Pid = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.PIDNo).First(); + } + var Limit = new ConfigLimit(); + if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.LimitNo).Any()) + { + Limit = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.LimitNo).First(); + } + var Alarm = new ConfigAlarm(); + if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.AlarmNo).Any()) + { + Alarm = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.AlarmNo).First(); + } - // ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Add(new ProStepExe() - // { - // //程序块 - // ProSegName = CurProgramSeg.Name, - // ProSegStep = SegIndex, - // ProSegRepeat = CurProgramSeg.ProRepeat, - // ProSegIsExeing = false,//配置阶段默认不执行 false + ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Add(new ProStepExe() + { + //程序块 + ProSegName = CurProgramSeg.Name, + ProSegStep = SegIndex, + ProSegRepeat = CurProgramSeg.ProRepeat, + ProSegIsExeing = false,//配置阶段默认不执行 false - // //程序步骤数据 - // //SV = CALCHelper.GetQuickSV(itemMeterValueCell.Constant, 1), - // StartSV = GetSVByProcess(itemMeterValueCell.StartValue, CurMeterName), - // EndSV = GetSVByProcess(itemMeterValueCell.EndValue, CurMeterName), - // KeepTime = itemMeterValueCell.KeepTime, - // MeterStepIsExeing = false,//配置阶段默认不执行 false - // MeterStepIsOK = false,//配置阶段默认不完成 false - // ExistSlop = itemMeterValueCell.StartValue == itemMeterValueCell.EndValue ? false : true,//开始和结束不一样则存在斜率 + //程序步骤数据 + //SV = CALCHelper.GetQuickSV(itemMeterValueCell.Constant, 1), + StartSV = GetSVByProcess(itemMeterValueCell.StartValue, CurMeterName), + EndSV = GetSVByProcess(itemMeterValueCell.EndValue, CurMeterName), + KeepTime = itemMeterValueCell.KeepTime, + MeterStepIsExeing = false,//配置阶段默认不执行 false + MeterStepIsOK = false,//配置阶段默认不完成 false + ExistSlop = itemMeterValueCell.StartValue == itemMeterValueCell.EndValue ? false : true,//开始和结束不一样则存在斜率 - // MeterStep = ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Count + 1, + MeterStep = ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Count + 1, - // LimitNo = itemMeterValueCell.LimitNo, - // AlarmNo = itemMeterValueCell.AlarmNo, - // PIDNo = itemMeterValueCell.PIDNo, + LimitNo = itemMeterValueCell.LimitNo, + AlarmNo = itemMeterValueCell.AlarmNo, + PIDNo = itemMeterValueCell.PIDNo, - // CurConfigPIDDto = Mapper.Map(Pid), - // CurConfigLimitDto = Mapper.Map(Limit), - // CurConfigAlarmDto = Mapper.Map(Alarm), + CurConfigPIDDto = Mapper.Map(Pid), + CurConfigLimitDto = Mapper.Map(Limit), + CurConfigAlarmDto = Mapper.Map(Alarm), - // ProStepInfo = $"{itemStep.StepNo}-{itemMeterValueCell.StepNo}", - // MeterName = CurMeterName, - // }); - // } - // } - // break; - // default: - // break; - // } - // } - // else - // { - // //判断当前的参数是全部都没有设置还是这一步没有设置,如果这个步骤没有设置,则沿用上一个步骤数据 - // var CurMeterListStepExe = ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe; - // if (CurMeterListStepExe.Any()) - // { - // //之前有步骤数据的话,则直接使用上一步的数据 + ProStepInfo = $"{itemStep.StepNo}-{itemMeterValueCell.StepNo}", + MeterName = CurMeterName, + }); + } + } + break; + default: + break; + } + } + else + { + //判断当前的参数是全部都没有设置还是这一步没有设置,如果这个步骤没有设置,则沿用上一个步骤数据 + var CurMeterListStepExe = ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe; + if (CurMeterListStepExe.Any()) + { + //之前有步骤数据的话,则直接使用上一步的数据 - // //Copy这个步骤的数据 - // var LastStepData = CurMeterListStepExe.OrderByDescending(a => a.MeterStep).FirstOrDefault().DeepClone(); - // //处理这个步骤的数据-处理按照常值的恒定的模式运行,就是维持结束的常值数据 - // LastStepData!.MeterStep = LastStepData.MeterStep + 1;//步骤+1 - // LastStepData.KeepTime = SpeedStepTotaolTime;//时间是整个时间 - // LastStepData.ExistSlop = false; - // LastStepData.StartSV = LastStepData.EndSV; - // LastStepData.ProStepInfo = $"{itemStep.StepNo}-{1}"; - // //添加 - // CurMeterListStepExe.Add(LastStepData); - // //SpeedStepTotaolTime - // } - // else - // { - // //之前步骤没有数据的话,则放弃,不做任何处理 - // } - // LogService.Warn($"【名称】: {CurMeterName} - 未找到步骤信息。步骤为空"); - // } + //Copy这个步骤的数据 + var LastStepData = CurMeterListStepExe.OrderByDescending(a => a.MeterStep).FirstOrDefault().DeepClone(); + //处理这个步骤的数据-处理按照常值的恒定的模式运行,就是维持结束的常值数据 + LastStepData!.MeterStep = LastStepData.MeterStep + 1;//步骤+1 + LastStepData.KeepTime = SpeedStepTotaolTime;//时间是整个时间 + LastStepData.ExistSlop = false; + LastStepData.StartSV = LastStepData.EndSV; + LastStepData.ProStepInfo = $"{itemStep.StepNo}-{1}"; + //添加 + CurMeterListStepExe.Add(LastStepData); + //SpeedStepTotaolTime + } + else + { + //之前步骤没有数据的话,则放弃,不做任何处理 + } + LogService.Warn($"【名称】: {CurMeterName} - 未找到步骤信息。步骤为空"); + } } @@ -1629,150 +1628,150 @@ namespace CapMachine.Wpf.Services //********* 单个【润滑油压力】步骤信息的解析 ********* { - // var CurMeterName = "润滑油压力"; - // if (itemStep.MeterLubePresss != null && itemStep.MeterLubePresss.Any()) - // { - // switch (itemStep.MeterLubePresss.FirstOrDefault()!.ValueType) - // { - // case ConfigValueType.Constant: //常值 - // //常值的话就一个数据,循环执行一次 - // foreach (var itemMeterValueCell in itemStep.MeterLubePresss) - // { - // var Pid = new ConfigPID(); - // if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.PIDNo).Any()) - // { - // Pid = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.PIDNo).First(); - // } - // var Limit = new ConfigLimit(); - // if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.LimitNo).Any()) - // { - // Limit = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.LimitNo).First(); - // } - // var Alarm = new ConfigAlarm(); - // if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.AlarmNo).Any()) - // { - // Alarm = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.AlarmNo).First(); - // } + var CurMeterName = "润滑油压力"; + if (itemStep.MeterLubePresss != null && itemStep.MeterLubePresss.Any()) + { + switch (itemStep.MeterLubePresss.FirstOrDefault()!.ValueType) + { + case ConfigValueType.Constant: //常值 + //常值的话就一个数据,循环执行一次 + foreach (var itemMeterValueCell in itemStep.MeterLubePresss) + { + var Pid = new ConfigPID(); + if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.PIDNo).Any()) + { + Pid = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.PIDNo).First(); + } + var Limit = new ConfigLimit(); + if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.LimitNo).Any()) + { + Limit = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.LimitNo).First(); + } + var Alarm = new ConfigAlarm(); + if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.AlarmNo).Any()) + { + Alarm = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.AlarmNo).First(); + } - // ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Add(new ProStepExe() - // { - // //程序块 - // ProSegName = CurProgramSeg.Name, - // ProSegStep = SegIndex, - // ProSegRepeat = CurProgramSeg.ProRepeat, - // ProSegIsExeing = false,//配置阶段默认不执行 false + ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Add(new ProStepExe() + { + //程序块 + ProSegName = CurProgramSeg.Name, + ProSegStep = SegIndex, + ProSegRepeat = CurProgramSeg.ProRepeat, + ProSegIsExeing = false,//配置阶段默认不执行 false - // //程序步骤数据 - // StartSV = GetSVByProcess(itemMeterValueCell.Constant, CurMeterName), - // EndSV = GetSVByProcess(itemMeterValueCell.Constant, CurMeterName), - // KeepTime = itemMeterValueCell.KeepTime, - // MeterStepIsExeing = false,//配置阶段默认不执行 false - // MeterStepIsOK = false,//配置阶段默认不完成 false - // ExistSlop = false,//常值没有斜率 //开始和结束不一样则存在斜率 + //程序步骤数据 + StartSV = GetSVByProcess(itemMeterValueCell.Constant, CurMeterName), + EndSV = GetSVByProcess(itemMeterValueCell.Constant, CurMeterName), + KeepTime = itemMeterValueCell.KeepTime, + MeterStepIsExeing = false,//配置阶段默认不执行 false + MeterStepIsOK = false,//配置阶段默认不完成 false + ExistSlop = false,//常值没有斜率 //开始和结束不一样则存在斜率 - // MeterStep = ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Count + 1, - // MeterName = CurMeterName, + MeterStep = ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Count + 1, + MeterName = CurMeterName, - // LimitNo = itemMeterValueCell.LimitNo, - // AlarmNo = itemMeterValueCell.AlarmNo, - // PIDNo = itemMeterValueCell.PIDNo, + LimitNo = itemMeterValueCell.LimitNo, + AlarmNo = itemMeterValueCell.AlarmNo, + PIDNo = itemMeterValueCell.PIDNo, - // CurConfigPIDDto = Mapper.Map(Pid), - // CurConfigLimitDto = Mapper.Map(Limit), - // CurConfigAlarmDto = Mapper.Map(Alarm), + CurConfigPIDDto = Mapper.Map(Pid), + CurConfigLimitDto = Mapper.Map(Limit), + CurConfigAlarmDto = Mapper.Map(Alarm), - // ProStepInfo = $"{itemStep.StepNo}-{itemMeterValueCell.StepNo}", - // }); - // } - // break; - // case ConfigValueType.Slope: - // //带斜率 - // //根据循环次数确定 - // var Cycle = GetCycleBySpeed(itemStep.MeterSpeeds, itemStep.SpeedCycle, itemStep.MeterLubePresss.Select(p => new MeterCom { Constant = p.Constant, KeepTime = p.KeepTime, StepNo = p.StepNo, ValueType = p.ValueType }).ToList()); - // for (int StepCycleIndex = 1; StepCycleIndex <= Cycle; StepCycleIndex++) - // { - // //根据循环次数执行 - // foreach (var itemMeterValueCell in itemStep.MeterLubePresss) - // { - // var Pid = new ConfigPID(); - // if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.PIDNo).Any()) - // { - // Pid = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.PIDNo).First(); - // } - // var Limit = new ConfigLimit(); - // if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.LimitNo).Any()) - // { - // Limit = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.LimitNo).First(); - // } - // var Alarm = new ConfigAlarm(); - // if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.AlarmNo).Any()) - // { - // Alarm = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.AlarmNo).First(); - // } + ProStepInfo = $"{itemStep.StepNo}-{itemMeterValueCell.StepNo}", + }); + } + break; + case ConfigValueType.Slope: + //带斜率 + //根据循环次数确定 + var Cycle = GetCycleBySpeed(itemStep.MeterSpeeds, itemStep.SpeedCycle, itemStep.MeterLubePresss.Select(p => new MeterCom { Constant = p.Constant, KeepTime = p.KeepTime, StepNo = p.StepNo, ValueType = p.ValueType }).ToList()); + for (int StepCycleIndex = 1; StepCycleIndex <= Cycle; StepCycleIndex++) + { + //根据循环次数执行 + foreach (var itemMeterValueCell in itemStep.MeterLubePresss) + { + var Pid = new ConfigPID(); + if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.PIDNo).Any()) + { + Pid = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.PIDNo).First(); + } + var Limit = new ConfigLimit(); + if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.LimitNo).Any()) + { + Limit = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.LimitNo).First(); + } + var Alarm = new ConfigAlarm(); + if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.AlarmNo).Any()) + { + Alarm = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.AlarmNo).First(); + } - // ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Add(new ProStepExe() - // { - // //程序块 - // ProSegName = CurProgramSeg.Name, - // ProSegStep = SegIndex, - // ProSegRepeat = CurProgramSeg.ProRepeat, - // ProSegIsExeing = false,//配置阶段默认不执行 false + ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Add(new ProStepExe() + { + //程序块 + ProSegName = CurProgramSeg.Name, + ProSegStep = SegIndex, + ProSegRepeat = CurProgramSeg.ProRepeat, + ProSegIsExeing = false,//配置阶段默认不执行 false - // //程序步骤数据 - // //SV = CALCHelper.GetQuickSV(itemMeterValueCell.Constant, 1), - // StartSV = GetSVByProcess(itemMeterValueCell.StartValue, CurMeterName), - // EndSV = GetSVByProcess(itemMeterValueCell.EndValue, CurMeterName), - // KeepTime = itemMeterValueCell.KeepTime, - // MeterStepIsExeing = false,//配置阶段默认不执行 false - // MeterStepIsOK = false,//配置阶段默认不完成 false - // ExistSlop = itemMeterValueCell.StartValue == itemMeterValueCell.EndValue ? false : true,//开始和结束不一样则存在斜率 + //程序步骤数据 + //SV = CALCHelper.GetQuickSV(itemMeterValueCell.Constant, 1), + StartSV = GetSVByProcess(itemMeterValueCell.StartValue, CurMeterName), + EndSV = GetSVByProcess(itemMeterValueCell.EndValue, CurMeterName), + KeepTime = itemMeterValueCell.KeepTime, + MeterStepIsExeing = false,//配置阶段默认不执行 false + MeterStepIsOK = false,//配置阶段默认不完成 false + ExistSlop = itemMeterValueCell.StartValue == itemMeterValueCell.EndValue ? false : true,//开始和结束不一样则存在斜率 - // MeterStep = ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Count + 1, + MeterStep = ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Count + 1, - // LimitNo = itemMeterValueCell.LimitNo, - // AlarmNo = itemMeterValueCell.AlarmNo, - // PIDNo = itemMeterValueCell.PIDNo, + LimitNo = itemMeterValueCell.LimitNo, + AlarmNo = itemMeterValueCell.AlarmNo, + PIDNo = itemMeterValueCell.PIDNo, - // CurConfigPIDDto = Mapper.Map(Pid), - // CurConfigLimitDto = Mapper.Map(Limit), - // CurConfigAlarmDto = Mapper.Map(Alarm), + CurConfigPIDDto = Mapper.Map(Pid), + CurConfigLimitDto = Mapper.Map(Limit), + CurConfigAlarmDto = Mapper.Map(Alarm), - // ProStepInfo = $"{itemStep.StepNo}-{itemMeterValueCell.StepNo}", - // MeterName = CurMeterName, - // }); - // } - // } - // break; - // default: - // break; - // } - // } - // else - // { - // //判断当前的参数是全部都没有设置还是这一步没有设置,如果这个步骤没有设置,则沿用上一个步骤数据 - // var CurMeterListStepExe = ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe; - // if (CurMeterListStepExe.Any()) - // { - // //之前有步骤数据的话,则直接使用上一步的数据 + ProStepInfo = $"{itemStep.StepNo}-{itemMeterValueCell.StepNo}", + MeterName = CurMeterName, + }); + } + } + break; + default: + break; + } + } + else + { + //判断当前的参数是全部都没有设置还是这一步没有设置,如果这个步骤没有设置,则沿用上一个步骤数据 + var CurMeterListStepExe = ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe; + if (CurMeterListStepExe.Any()) + { + //之前有步骤数据的话,则直接使用上一步的数据 - // //Copy这个步骤的数据 - // var LastStepData = CurMeterListStepExe.OrderByDescending(a => a.MeterStep).FirstOrDefault().DeepClone(); - // //处理这个步骤的数据-处理按照常值的恒定的模式运行,就是维持结束的常值数据 - // LastStepData!.MeterStep = LastStepData.MeterStep + 1;//步骤+1 - // LastStepData.KeepTime = SpeedStepTotaolTime;//时间是整个时间 - // LastStepData.ExistSlop = false; - // LastStepData.StartSV = LastStepData.EndSV; - // LastStepData.ProStepInfo = $"{itemStep.StepNo}-{1}"; - // //添加 - // CurMeterListStepExe.Add(LastStepData); - // //SpeedStepTotaolTime - // } - // else - // { - // //之前步骤没有数据的话,则放弃,不做任何处理 - // } - // LogService.Warn($"【名称】: {CurMeterName} - 未找到步骤信息。步骤为空"); - // } + //Copy这个步骤的数据 + var LastStepData = CurMeterListStepExe.OrderByDescending(a => a.MeterStep).FirstOrDefault().DeepClone(); + //处理这个步骤的数据-处理按照常值的恒定的模式运行,就是维持结束的常值数据 + LastStepData!.MeterStep = LastStepData.MeterStep + 1;//步骤+1 + LastStepData.KeepTime = SpeedStepTotaolTime;//时间是整个时间 + LastStepData.ExistSlop = false; + LastStepData.StartSV = LastStepData.EndSV; + LastStepData.ProStepInfo = $"{itemStep.StepNo}-{1}"; + //添加 + CurMeterListStepExe.Add(LastStepData); + //SpeedStepTotaolTime + } + else + { + //之前步骤没有数据的话,则放弃,不做任何处理 + } + LogService.Warn($"【名称】: {CurMeterName} - 未找到步骤信息。步骤为空"); + } } @@ -2076,154 +2075,154 @@ namespace CapMachine.Wpf.Services ////********* 单个【OS1温度】步骤信息的解析 ********* { - // var CurMeterName = "OS1温度"; - // if (itemStep.MeterOS1Temps != null && itemStep.MeterOS1Temps.Any()) - // { - // switch (itemStep.MeterOS1Temps.FirstOrDefault()!.ValueType) - // { - // case ConfigValueType.Constant: //常值 - // //常值的话就一个数据,循环执行一次 - // foreach (var itemMeterValueCell in itemStep.MeterOS1Temps) - // { - // var Pid = new ConfigPID(); - // if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.PIDNo).Any()) - // { - // Pid = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.PIDNo).First(); - // } - // var Limit = new ConfigLimit(); - // if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.LimitNo).Any()) - // { - // Limit = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.LimitNo).First(); - // } - // var Alarm = new ConfigAlarm(); - // if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.AlarmNo).Any()) - // { - // Alarm = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.AlarmNo).First(); - // } + var CurMeterName = "OS1温度"; + if (itemStep.MeterOS1Temps != null && itemStep.MeterOS1Temps.Any()) + { + switch (itemStep.MeterOS1Temps.FirstOrDefault()!.ValueType) + { + case ConfigValueType.Constant: //常值 + //常值的话就一个数据,循环执行一次 + foreach (var itemMeterValueCell in itemStep.MeterOS1Temps) + { + var Pid = new ConfigPID(); + if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.PIDNo).Any()) + { + Pid = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.PIDNo).First(); + } + var Limit = new ConfigLimit(); + if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.LimitNo).Any()) + { + Limit = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.LimitNo).First(); + } + var Alarm = new ConfigAlarm(); + if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.AlarmNo).Any()) + { + Alarm = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.AlarmNo).First(); + } - // ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Add(new ProStepExe() - // { - // //程序块 - // ProSegName = CurProgramSeg.Name, - // ProSegStep = SegIndex, - // ProSegRepeat = CurProgramSeg.ProRepeat, - // ProSegIsExeing = false,//配置阶段默认不执行 false + ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Add(new ProStepExe() + { + //程序块 + ProSegName = CurProgramSeg.Name, + ProSegStep = SegIndex, + ProSegRepeat = CurProgramSeg.ProRepeat, + ProSegIsExeing = false,//配置阶段默认不执行 false - // //程序步骤数据 - // StartSV = GetSVByProcess(itemMeterValueCell.Constant, CurMeterName), - // EndSV = GetSVByProcess(itemMeterValueCell.Constant, CurMeterName), - // KeepTime = itemMeterValueCell.KeepTime, - // MeterStepIsExeing = false,//配置阶段默认不执行 false - // MeterStepIsOK = false,//配置阶段默认不完成 false - // ExistSlop = false,//常值没有斜率 //开始和结束不一样则存在斜率 + //程序步骤数据 + StartSV = GetSVByProcess(itemMeterValueCell.Constant, CurMeterName), + EndSV = GetSVByProcess(itemMeterValueCell.Constant, CurMeterName), + KeepTime = itemMeterValueCell.KeepTime, + MeterStepIsExeing = false,//配置阶段默认不执行 false + MeterStepIsOK = false,//配置阶段默认不完成 false + ExistSlop = false,//常值没有斜率 //开始和结束不一样则存在斜率 - // MeterStep = ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Count + 1, - // MeterName = CurMeterName, + MeterStep = ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Count + 1, + MeterName = CurMeterName, - // LimitNo = itemMeterValueCell.LimitNo, - // AlarmNo = itemMeterValueCell.AlarmNo, - // PIDNo = itemMeterValueCell.PIDNo, + LimitNo = itemMeterValueCell.LimitNo, + AlarmNo = itemMeterValueCell.AlarmNo, + PIDNo = itemMeterValueCell.PIDNo, - // CurConfigPIDDto = Mapper.Map(Pid), - // CurConfigLimitDto = Mapper.Map(Limit), - // CurConfigAlarmDto = Mapper.Map(Alarm), + CurConfigPIDDto = Mapper.Map(Pid), + CurConfigLimitDto = Mapper.Map(Limit), + CurConfigAlarmDto = Mapper.Map(Alarm), - // ProStepInfo = $"{itemStep.StepNo}-{itemMeterValueCell.StepNo}", - // }); - // } - // break; - // case ConfigValueType.Slope: - // //带斜率 - // //根据循环次数确定 - // var Cycle = GetCycleBySpeed(itemStep.MeterSpeeds, itemStep.SpeedCycle, itemStep.MeterOS1Temps.Select(p => new MeterCom { Constant = p.Constant, KeepTime = p.KeepTime, StepNo = p.StepNo, ValueType = p.ValueType }).ToList()); - // for (int StepCycleIndex = 1; StepCycleIndex <= Cycle; StepCycleIndex++) - // { - // //根据循环次数执行 - // foreach (var itemMeterValueCell in itemStep.MeterOS1Temps) - // { - // var Pid = new ConfigPID(); - // if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.PIDNo).Any()) - // { - // Pid = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.PIDNo).First(); - // } - // var Limit = new ConfigLimit(); - // if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.LimitNo).Any()) - // { - // Limit = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.LimitNo).First(); - // } - // var Alarm = new ConfigAlarm(); - // if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.AlarmNo).Any()) - // { - // Alarm = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.AlarmNo).First(); - // } + ProStepInfo = $"{itemStep.StepNo}-{itemMeterValueCell.StepNo}", + }); + } + break; + case ConfigValueType.Slope: + //带斜率 + //根据循环次数确定 + var Cycle = GetCycleBySpeed(itemStep.MeterSpeeds, itemStep.SpeedCycle, itemStep.MeterOS1Temps.Select(p => new MeterCom { Constant = p.Constant, KeepTime = p.KeepTime, StepNo = p.StepNo, ValueType = p.ValueType }).ToList()); + for (int StepCycleIndex = 1; StepCycleIndex <= Cycle; StepCycleIndex++) + { + //根据循环次数执行 + foreach (var itemMeterValueCell in itemStep.MeterOS1Temps) + { + var Pid = new ConfigPID(); + if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.PIDNo).Any()) + { + Pid = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.PIDNo).First(); + } + var Limit = new ConfigLimit(); + if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.LimitNo).Any()) + { + Limit = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.LimitNo).First(); + } + var Alarm = new ConfigAlarm(); + if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.AlarmNo).Any()) + { + Alarm = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.AlarmNo).First(); + } - // ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Add(new ProStepExe() - // { - // //程序块 - // ProSegName = CurProgramSeg.Name, - // ProSegStep = SegIndex, - // ProSegRepeat = CurProgramSeg.ProRepeat, - // ProSegIsExeing = false,//配置阶段默认不执行 false + ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Add(new ProStepExe() + { + //程序块 + ProSegName = CurProgramSeg.Name, + ProSegStep = SegIndex, + ProSegRepeat = CurProgramSeg.ProRepeat, + ProSegIsExeing = false,//配置阶段默认不执行 false - // //程序步骤数据 - // //SV = CALCHelper.GetQuickSV(itemMeterValueCell.Constant, 1), - // StartSV = GetSVByProcess(itemMeterValueCell.StartValue, CurMeterName), - // EndSV = GetSVByProcess(itemMeterValueCell.EndValue, CurMeterName), - // KeepTime = itemMeterValueCell.KeepTime, - // MeterStepIsExeing = false,//配置阶段默认不执行 false - // MeterStepIsOK = false,//配置阶段默认不完成 false - // ExistSlop = itemMeterValueCell.StartValue == itemMeterValueCell.EndValue ? false : true,//开始和结束不一样则存在斜率 + //程序步骤数据 + //SV = CALCHelper.GetQuickSV(itemMeterValueCell.Constant, 1), + StartSV = GetSVByProcess(itemMeterValueCell.StartValue, CurMeterName), + EndSV = GetSVByProcess(itemMeterValueCell.EndValue, CurMeterName), + KeepTime = itemMeterValueCell.KeepTime, + MeterStepIsExeing = false,//配置阶段默认不执行 false + MeterStepIsOK = false,//配置阶段默认不完成 false + ExistSlop = itemMeterValueCell.StartValue == itemMeterValueCell.EndValue ? false : true,//开始和结束不一样则存在斜率 - // MeterStep = ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Count + 1, + MeterStep = ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Count + 1, - // LimitNo = itemMeterValueCell.LimitNo, - // AlarmNo = itemMeterValueCell.AlarmNo, - // PIDNo = itemMeterValueCell.PIDNo, + LimitNo = itemMeterValueCell.LimitNo, + AlarmNo = itemMeterValueCell.AlarmNo, + PIDNo = itemMeterValueCell.PIDNo, - // CurConfigPIDDto = Mapper.Map(Pid), - // CurConfigLimitDto = Mapper.Map(Limit), - // CurConfigAlarmDto = Mapper.Map(Alarm), + CurConfigPIDDto = Mapper.Map(Pid), + CurConfigLimitDto = Mapper.Map(Limit), + CurConfigAlarmDto = Mapper.Map(Alarm), - // ProStepInfo = $"{itemStep.StepNo}-{itemMeterValueCell.StepNo}", - // MeterName = CurMeterName, - // }); - // } - // } - // break; - // default: - // break; - // } - // } - // else - // { - // //判断当前的参数是全部都没有设置还是这一步没有设置,如果这个步骤没有设置,则沿用上一个步骤数据 - // var CurMeterListStepExe = ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe; - // if (CurMeterListStepExe.Any()) - // { - // //之前有步骤数据的话,则直接使用上一步的数据 + ProStepInfo = $"{itemStep.StepNo}-{itemMeterValueCell.StepNo}", + MeterName = CurMeterName, + }); + } + } + break; + default: + break; + } + } + else + { + //判断当前的参数是全部都没有设置还是这一步没有设置,如果这个步骤没有设置,则沿用上一个步骤数据 + var CurMeterListStepExe = ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe; + if (CurMeterListStepExe.Any()) + { + //之前有步骤数据的话,则直接使用上一步的数据 - // //Copy这个步骤的数据 - // var LastStepData = CurMeterListStepExe.OrderByDescending(a => a.MeterStep).FirstOrDefault().DeepClone(); - // //处理这个步骤的数据-处理按照常值的恒定的模式运行,就是维持结束的常值数据 - // LastStepData!.MeterStep = LastStepData.MeterStep + 1;//步骤+1 - // LastStepData.KeepTime = SpeedStepTotaolTime;//时间是整个时间 - // LastStepData.ExistSlop = false; - // LastStepData.StartSV = LastStepData.EndSV; - // LastStepData.ProStepInfo = $"{itemStep.StepNo}-{1}"; - // //添加 - // CurMeterListStepExe.Add(LastStepData); - // //SpeedStepTotaolTime - // } - // else - // { - // //之前步骤没有数据的话,则放弃,不做任何处理 - // } - // LogService.Warn($"【名称】: {CurMeterName} - 未找到步骤信息。步骤为空"); - // } + //Copy这个步骤的数据 + var LastStepData = CurMeterListStepExe.OrderByDescending(a => a.MeterStep).FirstOrDefault().DeepClone(); + //处理这个步骤的数据-处理按照常值的恒定的模式运行,就是维持结束的常值数据 + LastStepData!.MeterStep = LastStepData.MeterStep + 1;//步骤+1 + LastStepData.KeepTime = SpeedStepTotaolTime;//时间是整个时间 + LastStepData.ExistSlop = false; + LastStepData.StartSV = LastStepData.EndSV; + LastStepData.ProStepInfo = $"{itemStep.StepNo}-{1}"; + //添加 + CurMeterListStepExe.Add(LastStepData); + //SpeedStepTotaolTime + } + else + { + //之前步骤没有数据的话,则放弃,不做任何处理 + } + LogService.Warn($"【名称】: {CurMeterName} - 未找到步骤信息。步骤为空"); + } } - //********* 单个【OS2温度】步骤信息的解析 ********* + //********* 单个【OS2温度/吸气混合器温度】步骤信息的解析 ********* { var CurMeterName = "OS2温度"; if (itemStep.MeterOS2Temps != null && itemStep.MeterOS2Temps.Any()) @@ -2670,450 +2669,450 @@ namespace CapMachine.Wpf.Services } - //********* 单个【PTC入水温度】步骤信息的解析 ********* + //********* 单个【PTC入口水温】步骤信息的解析 ********* { - // var CurMeterName = "PTC入水温度"; - // if (itemStep.MeterPTCEntTemps != null && itemStep.MeterPTCEntTemps.Any()) - // { - // switch (itemStep.MeterPTCEntTemps.FirstOrDefault()!.ValueType) - // { - // case ConfigValueType.Constant: //常值 - // //常值的话就一个数据,循环执行一次 - // foreach (var itemMeterValueCell in itemStep.MeterPTCEntTemps) - // { - // var Pid = new ConfigPID(); - // if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.PIDNo).Any()) - // { - // Pid = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.PIDNo).First(); - // } - // var Limit = new ConfigLimit(); - // if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.LimitNo).Any()) - // { - // Limit = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.LimitNo).First(); - // } - // var Alarm = new ConfigAlarm(); - // if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.AlarmNo).Any()) - // { - // Alarm = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.AlarmNo).First(); - // } + var CurMeterName = "PTC入口水温"; + if (itemStep.MeterPTCEntTemps != null && itemStep.MeterPTCEntTemps.Any()) + { + switch (itemStep.MeterPTCEntTemps.FirstOrDefault()!.ValueType) + { + case ConfigValueType.Constant: //常值 + //常值的话就一个数据,循环执行一次 + foreach (var itemMeterValueCell in itemStep.MeterPTCEntTemps) + { + var Pid = new ConfigPID(); + if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.PIDNo).Any()) + { + Pid = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.PIDNo).First(); + } + var Limit = new ConfigLimit(); + if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.LimitNo).Any()) + { + Limit = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.LimitNo).First(); + } + var Alarm = new ConfigAlarm(); + if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.AlarmNo).Any()) + { + Alarm = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.AlarmNo).First(); + } - // ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Add(new ProStepExe() - // { - // //程序块 - // ProSegName = CurProgramSeg.Name, - // ProSegStep = SegIndex, - // ProSegRepeat = CurProgramSeg.ProRepeat, - // ProSegIsExeing = false,//配置阶段默认不执行 false + ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Add(new ProStepExe() + { + //程序块 + ProSegName = CurProgramSeg.Name, + ProSegStep = SegIndex, + ProSegRepeat = CurProgramSeg.ProRepeat, + ProSegIsExeing = false,//配置阶段默认不执行 false - // //程序步骤数据 - // StartSV = GetSVByProcess(itemMeterValueCell.Constant, CurMeterName), - // EndSV = GetSVByProcess(itemMeterValueCell.Constant, CurMeterName), - // KeepTime = itemMeterValueCell.KeepTime, - // MeterStepIsExeing = false,//配置阶段默认不执行 false - // MeterStepIsOK = false,//配置阶段默认不完成 false - // ExistSlop = false,//常值没有斜率 //开始和结束不一样则存在斜率 + //程序步骤数据 + StartSV = GetSVByProcess(itemMeterValueCell.Constant, CurMeterName), + EndSV = GetSVByProcess(itemMeterValueCell.Constant, CurMeterName), + KeepTime = itemMeterValueCell.KeepTime, + MeterStepIsExeing = false,//配置阶段默认不执行 false + MeterStepIsOK = false,//配置阶段默认不完成 false + ExistSlop = false,//常值没有斜率 //开始和结束不一样则存在斜率 - // MeterStep = ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Count + 1, - // MeterName = CurMeterName, + MeterStep = ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Count + 1, + MeterName = CurMeterName, - // LimitNo = itemMeterValueCell.LimitNo, - // AlarmNo = itemMeterValueCell.AlarmNo, - // PIDNo = itemMeterValueCell.PIDNo, + LimitNo = itemMeterValueCell.LimitNo, + AlarmNo = itemMeterValueCell.AlarmNo, + PIDNo = itemMeterValueCell.PIDNo, - // CurConfigPIDDto = Mapper.Map(Pid), - // CurConfigLimitDto = Mapper.Map(Limit), - // CurConfigAlarmDto = Mapper.Map(Alarm), + CurConfigPIDDto = Mapper.Map(Pid), + CurConfigLimitDto = Mapper.Map(Limit), + CurConfigAlarmDto = Mapper.Map(Alarm), - // ProStepInfo = $"{itemStep.StepNo}-{itemMeterValueCell.StepNo}", - // }); - // } - // break; - // case ConfigValueType.Slope: - // //带斜率 - // //根据循环次数确定 - // var Cycle = GetCycleBySpeed(itemStep.MeterSpeeds, itemStep.SpeedCycle, itemStep.MeterPTCEntTemps.Select(p => new MeterCom { Constant = p.Constant, KeepTime = p.KeepTime, StepNo = p.StepNo, ValueType = p.ValueType }).ToList()); - // for (int StepCycleIndex = 1; StepCycleIndex <= Cycle; StepCycleIndex++) - // { - // //根据循环次数执行 - // foreach (var itemMeterValueCell in itemStep.MeterPTCEntTemps) - // { - // var Pid = new ConfigPID(); - // if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.PIDNo).Any()) - // { - // Pid = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.PIDNo).First(); - // } - // var Limit = new ConfigLimit(); - // if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.LimitNo).Any()) - // { - // Limit = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.LimitNo).First(); - // } - // var Alarm = new ConfigAlarm(); - // if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.AlarmNo).Any()) - // { - // Alarm = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.AlarmNo).First(); - // } + ProStepInfo = $"{itemStep.StepNo}-{itemMeterValueCell.StepNo}", + }); + } + break; + case ConfigValueType.Slope: + //带斜率 + //根据循环次数确定 + var Cycle = GetCycleBySpeed(itemStep.MeterSpeeds, itemStep.SpeedCycle, itemStep.MeterPTCEntTemps.Select(p => new MeterCom { Constant = p.Constant, KeepTime = p.KeepTime, StepNo = p.StepNo, ValueType = p.ValueType }).ToList()); + for (int StepCycleIndex = 1; StepCycleIndex <= Cycle; StepCycleIndex++) + { + //根据循环次数执行 + foreach (var itemMeterValueCell in itemStep.MeterPTCEntTemps) + { + var Pid = new ConfigPID(); + if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.PIDNo).Any()) + { + Pid = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.PIDNo).First(); + } + var Limit = new ConfigLimit(); + if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.LimitNo).Any()) + { + Limit = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.LimitNo).First(); + } + var Alarm = new ConfigAlarm(); + if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.AlarmNo).Any()) + { + Alarm = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.AlarmNo).First(); + } - // ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Add(new ProStepExe() - // { - // //程序块 - // ProSegName = CurProgramSeg.Name, - // ProSegStep = SegIndex, - // ProSegRepeat = CurProgramSeg.ProRepeat, - // ProSegIsExeing = false,//配置阶段默认不执行 false + ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Add(new ProStepExe() + { + //程序块 + ProSegName = CurProgramSeg.Name, + ProSegStep = SegIndex, + ProSegRepeat = CurProgramSeg.ProRepeat, + ProSegIsExeing = false,//配置阶段默认不执行 false - // //程序步骤数据 - // //SV = CALCHelper.GetQuickSV(itemMeterValueCell.Constant, 1), - // StartSV = GetSVByProcess(itemMeterValueCell.StartValue, CurMeterName), - // EndSV = GetSVByProcess(itemMeterValueCell.EndValue, CurMeterName), - // KeepTime = itemMeterValueCell.KeepTime, - // MeterStepIsExeing = false,//配置阶段默认不执行 false - // MeterStepIsOK = false,//配置阶段默认不完成 false - // ExistSlop = itemMeterValueCell.StartValue == itemMeterValueCell.EndValue ? false : true,//开始和结束不一样则存在斜率 + //程序步骤数据 + //SV = CALCHelper.GetQuickSV(itemMeterValueCell.Constant, 1), + StartSV = GetSVByProcess(itemMeterValueCell.StartValue, CurMeterName), + EndSV = GetSVByProcess(itemMeterValueCell.EndValue, CurMeterName), + KeepTime = itemMeterValueCell.KeepTime, + MeterStepIsExeing = false,//配置阶段默认不执行 false + MeterStepIsOK = false,//配置阶段默认不完成 false + ExistSlop = itemMeterValueCell.StartValue == itemMeterValueCell.EndValue ? false : true,//开始和结束不一样则存在斜率 - // MeterStep = ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Count + 1, + MeterStep = ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Count + 1, - // LimitNo = itemMeterValueCell.LimitNo, - // AlarmNo = itemMeterValueCell.AlarmNo, - // PIDNo = itemMeterValueCell.PIDNo, + LimitNo = itemMeterValueCell.LimitNo, + AlarmNo = itemMeterValueCell.AlarmNo, + PIDNo = itemMeterValueCell.PIDNo, - // CurConfigPIDDto = Mapper.Map(Pid), - // CurConfigLimitDto = Mapper.Map(Limit), - // CurConfigAlarmDto = Mapper.Map(Alarm), + CurConfigPIDDto = Mapper.Map(Pid), + CurConfigLimitDto = Mapper.Map(Limit), + CurConfigAlarmDto = Mapper.Map(Alarm), - // ProStepInfo = $"{itemStep.StepNo}-{itemMeterValueCell.StepNo}", - // MeterName = CurMeterName, - // }); - // } - // } - // break; - // default: - // break; - // } - // } - // else - // { - // //判断当前的参数是全部都没有设置还是这一步没有设置,如果这个步骤没有设置,则沿用上一个步骤数据 - // var CurMeterListStepExe = ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe; - // if (CurMeterListStepExe.Any()) - // { - // //之前有步骤数据的话,则直接使用上一步的数据 + ProStepInfo = $"{itemStep.StepNo}-{itemMeterValueCell.StepNo}", + MeterName = CurMeterName, + }); + } + } + break; + default: + break; + } + } + else + { + //判断当前的参数是全部都没有设置还是这一步没有设置,如果这个步骤没有设置,则沿用上一个步骤数据 + var CurMeterListStepExe = ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe; + if (CurMeterListStepExe.Any()) + { + //之前有步骤数据的话,则直接使用上一步的数据 - // //Copy这个步骤的数据 - // var LastStepData = CurMeterListStepExe.OrderByDescending(a => a.MeterStep).FirstOrDefault().DeepClone(); - // //处理这个步骤的数据-处理按照常值的恒定的模式运行,就是维持结束的常值数据 - // LastStepData!.MeterStep = LastStepData.MeterStep + 1;//步骤+1 - // LastStepData.KeepTime = SpeedStepTotaolTime;//时间是整个时间 - // LastStepData.ExistSlop = false; - // LastStepData.StartSV = LastStepData.EndSV; - // LastStepData.ProStepInfo = $"{itemStep.StepNo}-{1}"; - // //添加 - // CurMeterListStepExe.Add(LastStepData); - // //SpeedStepTotaolTime - // } - // else - // { - // //之前步骤没有数据的话,则放弃,不做任何处理 - // } - // LogService.Warn($"【名称】: {CurMeterName} - 未找到步骤信息。步骤为空"); - // } + //Copy这个步骤的数据 + var LastStepData = CurMeterListStepExe.OrderByDescending(a => a.MeterStep).FirstOrDefault().DeepClone(); + //处理这个步骤的数据-处理按照常值的恒定的模式运行,就是维持结束的常值数据 + LastStepData!.MeterStep = LastStepData.MeterStep + 1;//步骤+1 + LastStepData.KeepTime = SpeedStepTotaolTime;//时间是整个时间 + LastStepData.ExistSlop = false; + LastStepData.StartSV = LastStepData.EndSV; + LastStepData.ProStepInfo = $"{itemStep.StepNo}-{1}"; + //添加 + CurMeterListStepExe.Add(LastStepData); + //SpeedStepTotaolTime + } + else + { + //之前步骤没有数据的话,则放弃,不做任何处理 + } + LogService.Warn($"【名称】: {CurMeterName} - 未找到步骤信息。步骤为空"); + } } //********* 单个【PTC流量】步骤信息的解析 ********* { - // var CurMeterName = "PTC流量"; - // if (itemStep.MeterPTCFlows != null && itemStep.MeterPTCFlows.Any()) - // { - // switch (itemStep.MeterPTCFlows.FirstOrDefault()!.ValueType) - // { - // case ConfigValueType.Constant: //常值 - // //常值的话就一个数据,循环执行一次 - // foreach (var itemMeterValueCell in itemStep.MeterPTCFlows) - // { - // var Pid = new ConfigPID(); - // if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.PIDNo).Any()) - // { - // Pid = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.PIDNo).First(); - // } - // var Limit = new ConfigLimit(); - // if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.LimitNo).Any()) - // { - // Limit = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.LimitNo).First(); - // } - // var Alarm = new ConfigAlarm(); - // if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.AlarmNo).Any()) - // { - // Alarm = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.AlarmNo).First(); - // } + var CurMeterName = "PTC流量"; + if (itemStep.MeterPTCFlows != null && itemStep.MeterPTCFlows.Any()) + { + switch (itemStep.MeterPTCFlows.FirstOrDefault()!.ValueType) + { + case ConfigValueType.Constant: //常值 + //常值的话就一个数据,循环执行一次 + foreach (var itemMeterValueCell in itemStep.MeterPTCFlows) + { + var Pid = new ConfigPID(); + if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.PIDNo).Any()) + { + Pid = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.PIDNo).First(); + } + var Limit = new ConfigLimit(); + if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.LimitNo).Any()) + { + Limit = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.LimitNo).First(); + } + var Alarm = new ConfigAlarm(); + if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.AlarmNo).Any()) + { + Alarm = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.AlarmNo).First(); + } - // ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Add(new ProStepExe() - // { - // //程序块 - // ProSegName = CurProgramSeg.Name, - // ProSegStep = SegIndex, - // ProSegRepeat = CurProgramSeg.ProRepeat, - // ProSegIsExeing = false,//配置阶段默认不执行 false + ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Add(new ProStepExe() + { + //程序块 + ProSegName = CurProgramSeg.Name, + ProSegStep = SegIndex, + ProSegRepeat = CurProgramSeg.ProRepeat, + ProSegIsExeing = false,//配置阶段默认不执行 false - // //程序步骤数据 - // StartSV = GetSVByProcess(itemMeterValueCell.Constant, CurMeterName), - // EndSV = GetSVByProcess(itemMeterValueCell.Constant, CurMeterName), - // KeepTime = itemMeterValueCell.KeepTime, - // MeterStepIsExeing = false,//配置阶段默认不执行 false - // MeterStepIsOK = false,//配置阶段默认不完成 false - // ExistSlop = false,//常值没有斜率 //开始和结束不一样则存在斜率 + //程序步骤数据 + StartSV = GetSVByProcess(itemMeterValueCell.Constant, CurMeterName), + EndSV = GetSVByProcess(itemMeterValueCell.Constant, CurMeterName), + KeepTime = itemMeterValueCell.KeepTime, + MeterStepIsExeing = false,//配置阶段默认不执行 false + MeterStepIsOK = false,//配置阶段默认不完成 false + ExistSlop = false,//常值没有斜率 //开始和结束不一样则存在斜率 - // MeterStep = ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Count + 1, - // MeterName = CurMeterName, + MeterStep = ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Count + 1, + MeterName = CurMeterName, - // LimitNo = itemMeterValueCell.LimitNo, - // AlarmNo = itemMeterValueCell.AlarmNo, - // PIDNo = itemMeterValueCell.PIDNo, + LimitNo = itemMeterValueCell.LimitNo, + AlarmNo = itemMeterValueCell.AlarmNo, + PIDNo = itemMeterValueCell.PIDNo, - // CurConfigPIDDto = Mapper.Map(Pid), - // CurConfigLimitDto = Mapper.Map(Limit), - // CurConfigAlarmDto = Mapper.Map(Alarm), + CurConfigPIDDto = Mapper.Map(Pid), + CurConfigLimitDto = Mapper.Map(Limit), + CurConfigAlarmDto = Mapper.Map(Alarm), - // ProStepInfo = $"{itemStep.StepNo}-{itemMeterValueCell.StepNo}", - // }); - // } - // break; - // case ConfigValueType.Slope: - // //带斜率 - // //根据循环次数确定 - // var Cycle = GetCycleBySpeed(itemStep.MeterSpeeds, itemStep.SpeedCycle, itemStep.MeterPTCFlows.Select(p => new MeterCom { Constant = p.Constant, KeepTime = p.KeepTime, StepNo = p.StepNo, ValueType = p.ValueType }).ToList()); - // for (int StepCycleIndex = 1; StepCycleIndex <= Cycle; StepCycleIndex++) - // { - // //根据循环次数执行 - // foreach (var itemMeterValueCell in itemStep.MeterPTCFlows) - // { - // var Pid = new ConfigPID(); - // if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.PIDNo).Any()) - // { - // Pid = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.PIDNo).First(); - // } - // var Limit = new ConfigLimit(); - // if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.LimitNo).Any()) - // { - // Limit = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.LimitNo).First(); - // } - // var Alarm = new ConfigAlarm(); - // if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.AlarmNo).Any()) - // { - // Alarm = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.AlarmNo).First(); - // } + ProStepInfo = $"{itemStep.StepNo}-{itemMeterValueCell.StepNo}", + }); + } + break; + case ConfigValueType.Slope: + //带斜率 + //根据循环次数确定 + var Cycle = GetCycleBySpeed(itemStep.MeterSpeeds, itemStep.SpeedCycle, itemStep.MeterPTCFlows.Select(p => new MeterCom { Constant = p.Constant, KeepTime = p.KeepTime, StepNo = p.StepNo, ValueType = p.ValueType }).ToList()); + for (int StepCycleIndex = 1; StepCycleIndex <= Cycle; StepCycleIndex++) + { + //根据循环次数执行 + foreach (var itemMeterValueCell in itemStep.MeterPTCFlows) + { + var Pid = new ConfigPID(); + if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.PIDNo).Any()) + { + Pid = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.PIDNo).First(); + } + var Limit = new ConfigLimit(); + if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.LimitNo).Any()) + { + Limit = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.LimitNo).First(); + } + var Alarm = new ConfigAlarm(); + if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.AlarmNo).Any()) + { + Alarm = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.AlarmNo).First(); + } - // ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Add(new ProStepExe() - // { - // //程序块 - // ProSegName = CurProgramSeg.Name, - // ProSegStep = SegIndex, - // ProSegRepeat = CurProgramSeg.ProRepeat, - // ProSegIsExeing = false,//配置阶段默认不执行 false + ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Add(new ProStepExe() + { + //程序块 + ProSegName = CurProgramSeg.Name, + ProSegStep = SegIndex, + ProSegRepeat = CurProgramSeg.ProRepeat, + ProSegIsExeing = false,//配置阶段默认不执行 false - // //程序步骤数据 - // //SV = CALCHelper.GetQuickSV(itemMeterValueCell.Constant, 1), - // StartSV = GetSVByProcess(itemMeterValueCell.StartValue, CurMeterName), - // EndSV = GetSVByProcess(itemMeterValueCell.EndValue, CurMeterName), - // KeepTime = itemMeterValueCell.KeepTime, - // MeterStepIsExeing = false,//配置阶段默认不执行 false - // MeterStepIsOK = false,//配置阶段默认不完成 false - // ExistSlop = itemMeterValueCell.StartValue == itemMeterValueCell.EndValue ? false : true,//开始和结束不一样则存在斜率 + //程序步骤数据 + //SV = CALCHelper.GetQuickSV(itemMeterValueCell.Constant, 1), + StartSV = GetSVByProcess(itemMeterValueCell.StartValue, CurMeterName), + EndSV = GetSVByProcess(itemMeterValueCell.EndValue, CurMeterName), + KeepTime = itemMeterValueCell.KeepTime, + MeterStepIsExeing = false,//配置阶段默认不执行 false + MeterStepIsOK = false,//配置阶段默认不完成 false + ExistSlop = itemMeterValueCell.StartValue == itemMeterValueCell.EndValue ? false : true,//开始和结束不一样则存在斜率 - // MeterStep = ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Count + 1, + MeterStep = ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Count + 1, - // LimitNo = itemMeterValueCell.LimitNo, - // AlarmNo = itemMeterValueCell.AlarmNo, - // PIDNo = itemMeterValueCell.PIDNo, + LimitNo = itemMeterValueCell.LimitNo, + AlarmNo = itemMeterValueCell.AlarmNo, + PIDNo = itemMeterValueCell.PIDNo, - // CurConfigPIDDto = Mapper.Map(Pid), - // CurConfigLimitDto = Mapper.Map(Limit), - // CurConfigAlarmDto = Mapper.Map(Alarm), + CurConfigPIDDto = Mapper.Map(Pid), + CurConfigLimitDto = Mapper.Map(Limit), + CurConfigAlarmDto = Mapper.Map(Alarm), - // ProStepInfo = $"{itemStep.StepNo}-{itemMeterValueCell.StepNo}", - // MeterName = CurMeterName, - // }); - // } - // } - // break; - // default: - // break; - // } - // } - // else - // { - // //判断当前的参数是全部都没有设置还是这一步没有设置,如果这个步骤没有设置,则沿用上一个步骤数据 - // var CurMeterListStepExe = ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe; - // if (CurMeterListStepExe.Any()) - // { - // //之前有步骤数据的话,则直接使用上一步的数据 + ProStepInfo = $"{itemStep.StepNo}-{itemMeterValueCell.StepNo}", + MeterName = CurMeterName, + }); + } + } + break; + default: + break; + } + } + else + { + //判断当前的参数是全部都没有设置还是这一步没有设置,如果这个步骤没有设置,则沿用上一个步骤数据 + var CurMeterListStepExe = ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe; + if (CurMeterListStepExe.Any()) + { + //之前有步骤数据的话,则直接使用上一步的数据 - // //Copy这个步骤的数据 - // var LastStepData = CurMeterListStepExe.OrderByDescending(a => a.MeterStep).FirstOrDefault().DeepClone(); - // //处理这个步骤的数据-处理按照常值的恒定的模式运行,就是维持结束的常值数据 - // LastStepData!.MeterStep = LastStepData.MeterStep + 1;//步骤+1 - // LastStepData.KeepTime = SpeedStepTotaolTime;//时间是整个时间 - // LastStepData.ExistSlop = false; - // LastStepData.StartSV = LastStepData.EndSV; - // LastStepData.ProStepInfo = $"{itemStep.StepNo}-{1}"; - // //添加 - // CurMeterListStepExe.Add(LastStepData); - // //SpeedStepTotaolTime - // } - // else - // { - // //之前步骤没有数据的话,则放弃,不做任何处理 - // } - // LogService.Warn($"【名称】: {CurMeterName} - 未找到步骤信息。步骤为空"); - // } + //Copy这个步骤的数据 + var LastStepData = CurMeterListStepExe.OrderByDescending(a => a.MeterStep).FirstOrDefault().DeepClone(); + //处理这个步骤的数据-处理按照常值的恒定的模式运行,就是维持结束的常值数据 + LastStepData!.MeterStep = LastStepData.MeterStep + 1;//步骤+1 + LastStepData.KeepTime = SpeedStepTotaolTime;//时间是整个时间 + LastStepData.ExistSlop = false; + LastStepData.StartSV = LastStepData.EndSV; + LastStepData.ProStepInfo = $"{itemStep.StepNo}-{1}"; + //添加 + CurMeterListStepExe.Add(LastStepData); + //SpeedStepTotaolTime + } + else + { + //之前步骤没有数据的话,则放弃,不做任何处理 + } + LogService.Warn($"【名称】: {CurMeterName} - 未找到步骤信息。步骤为空"); + } } //********* 单个【PTC功率】步骤信息的解析 ********* { - // var CurMeterName = "PTC功率"; - // if (itemStep.MeterPTCPws != null && itemStep.MeterPTCPws.Any()) - // { - // switch (itemStep.MeterPTCPws.FirstOrDefault()!.ValueType) - // { - // case ConfigValueType.Constant: //常值 - // //常值的话就一个数据,循环执行一次 - // foreach (var itemMeterValueCell in itemStep.MeterPTCPws) - // { - // var Pid = new ConfigPID(); - // if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.PIDNo).Any()) - // { - // Pid = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.PIDNo).First(); - // } - // var Limit = new ConfigLimit(); - // if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.LimitNo).Any()) - // { - // Limit = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.LimitNo).First(); - // } - // var Alarm = new ConfigAlarm(); - // if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.AlarmNo).Any()) - // { - // Alarm = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.AlarmNo).First(); - // } + var CurMeterName = "PTC功率"; + if (itemStep.MeterPTCPws != null && itemStep.MeterPTCPws.Any()) + { + switch (itemStep.MeterPTCPws.FirstOrDefault()!.ValueType) + { + case ConfigValueType.Constant: //常值 + //常值的话就一个数据,循环执行一次 + foreach (var itemMeterValueCell in itemStep.MeterPTCPws) + { + var Pid = new ConfigPID(); + if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.PIDNo).Any()) + { + Pid = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.PIDNo).First(); + } + var Limit = new ConfigLimit(); + if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.LimitNo).Any()) + { + Limit = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.LimitNo).First(); + } + var Alarm = new ConfigAlarm(); + if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.AlarmNo).Any()) + { + Alarm = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.AlarmNo).First(); + } - // ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Add(new ProStepExe() - // { - // //程序块 - // ProSegName = CurProgramSeg.Name, - // ProSegStep = SegIndex, - // ProSegRepeat = CurProgramSeg.ProRepeat, - // ProSegIsExeing = false,//配置阶段默认不执行 false + ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Add(new ProStepExe() + { + //程序块 + ProSegName = CurProgramSeg.Name, + ProSegStep = SegIndex, + ProSegRepeat = CurProgramSeg.ProRepeat, + ProSegIsExeing = false,//配置阶段默认不执行 false - // //程序步骤数据 - // StartSV = GetSVByProcess(itemMeterValueCell.Constant, CurMeterName), - // EndSV = GetSVByProcess(itemMeterValueCell.Constant, CurMeterName), - // KeepTime = itemMeterValueCell.KeepTime, - // MeterStepIsExeing = false,//配置阶段默认不执行 false - // MeterStepIsOK = false,//配置阶段默认不完成 false - // ExistSlop = false,//常值没有斜率 //开始和结束不一样则存在斜率 + //程序步骤数据 + StartSV = GetSVByProcess(itemMeterValueCell.Constant, CurMeterName), + EndSV = GetSVByProcess(itemMeterValueCell.Constant, CurMeterName), + KeepTime = itemMeterValueCell.KeepTime, + MeterStepIsExeing = false,//配置阶段默认不执行 false + MeterStepIsOK = false,//配置阶段默认不完成 false + ExistSlop = false,//常值没有斜率 //开始和结束不一样则存在斜率 - // MeterStep = ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Count + 1, - // MeterName = CurMeterName, + MeterStep = ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Count + 1, + MeterName = CurMeterName, - // LimitNo = itemMeterValueCell.LimitNo, - // AlarmNo = itemMeterValueCell.AlarmNo, - // PIDNo = itemMeterValueCell.PIDNo, + LimitNo = itemMeterValueCell.LimitNo, + AlarmNo = itemMeterValueCell.AlarmNo, + PIDNo = itemMeterValueCell.PIDNo, - // CurConfigPIDDto = Mapper.Map(Pid), - // CurConfigLimitDto = Mapper.Map(Limit), - // CurConfigAlarmDto = Mapper.Map(Alarm), + CurConfigPIDDto = Mapper.Map(Pid), + CurConfigLimitDto = Mapper.Map(Limit), + CurConfigAlarmDto = Mapper.Map(Alarm), - // ProStepInfo = $"{itemStep.StepNo}-{itemMeterValueCell.StepNo}", - // }); - // } - // break; - // case ConfigValueType.Slope: - // //带斜率 - // //根据循环次数确定 - // var Cycle = GetCycleBySpeed(itemStep.MeterSpeeds, itemStep.SpeedCycle, itemStep.MeterPTCPws.Select(p => new MeterCom { Constant = p.Constant, KeepTime = p.KeepTime, StepNo = p.StepNo, ValueType = p.ValueType }).ToList()); - // for (int StepCycleIndex = 1; StepCycleIndex <= Cycle; StepCycleIndex++) - // { - // //根据循环次数执行 - // foreach (var itemMeterValueCell in itemStep.MeterPTCPws) - // { - // var Pid = new ConfigPID(); - // if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.PIDNo).Any()) - // { - // Pid = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.PIDNo).First(); - // } - // var Limit = new ConfigLimit(); - // if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.LimitNo).Any()) - // { - // Limit = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.LimitNo).First(); - // } - // var Alarm = new ConfigAlarm(); - // if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.AlarmNo).Any()) - // { - // Alarm = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.AlarmNo).First(); - // } + ProStepInfo = $"{itemStep.StepNo}-{itemMeterValueCell.StepNo}", + }); + } + break; + case ConfigValueType.Slope: + //带斜率 + //根据循环次数确定 + var Cycle = GetCycleBySpeed(itemStep.MeterSpeeds, itemStep.SpeedCycle, itemStep.MeterPTCPws.Select(p => new MeterCom { Constant = p.Constant, KeepTime = p.KeepTime, StepNo = p.StepNo, ValueType = p.ValueType }).ToList()); + for (int StepCycleIndex = 1; StepCycleIndex <= Cycle; StepCycleIndex++) + { + //根据循环次数执行 + foreach (var itemMeterValueCell in itemStep.MeterPTCPws) + { + var Pid = new ConfigPID(); + if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.PIDNo).Any()) + { + Pid = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.PIDNo).First(); + } + var Limit = new ConfigLimit(); + if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.LimitNo).Any()) + { + Limit = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.LimitNo).First(); + } + var Alarm = new ConfigAlarm(); + if (FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.AlarmNo).Any()) + { + Alarm = FreeSql.Select().Where(a => a.MeterName == CurMeterName && a.IndexNo == itemMeterValueCell.AlarmNo).First(); + } - // ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Add(new ProStepExe() - // { - // //程序块 - // ProSegName = CurProgramSeg.Name, - // ProSegStep = SegIndex, - // ProSegRepeat = CurProgramSeg.ProRepeat, - // ProSegIsExeing = false,//配置阶段默认不执行 false + ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Add(new ProStepExe() + { + //程序块 + ProSegName = CurProgramSeg.Name, + ProSegStep = SegIndex, + ProSegRepeat = CurProgramSeg.ProRepeat, + ProSegIsExeing = false,//配置阶段默认不执行 false - // //程序步骤数据 - // //SV = CALCHelper.GetQuickSV(itemMeterValueCell.Constant, 1), - // StartSV = GetSVByProcess(itemMeterValueCell.StartValue, CurMeterName), - // EndSV = GetSVByProcess(itemMeterValueCell.EndValue, CurMeterName), - // KeepTime = itemMeterValueCell.KeepTime, - // MeterStepIsExeing = false,//配置阶段默认不执行 false - // MeterStepIsOK = false,//配置阶段默认不完成 false - // ExistSlop = itemMeterValueCell.StartValue == itemMeterValueCell.EndValue ? false : true,//开始和结束不一样则存在斜率 + //程序步骤数据 + //SV = CALCHelper.GetQuickSV(itemMeterValueCell.Constant, 1), + StartSV = GetSVByProcess(itemMeterValueCell.StartValue, CurMeterName), + EndSV = GetSVByProcess(itemMeterValueCell.EndValue, CurMeterName), + KeepTime = itemMeterValueCell.KeepTime, + MeterStepIsExeing = false,//配置阶段默认不执行 false + MeterStepIsOK = false,//配置阶段默认不完成 false + ExistSlop = itemMeterValueCell.StartValue == itemMeterValueCell.EndValue ? false : true,//开始和结束不一样则存在斜率 - // MeterStep = ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Count + 1, + MeterStep = ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Count + 1, - // LimitNo = itemMeterValueCell.LimitNo, - // AlarmNo = itemMeterValueCell.AlarmNo, - // PIDNo = itemMeterValueCell.PIDNo, + LimitNo = itemMeterValueCell.LimitNo, + AlarmNo = itemMeterValueCell.AlarmNo, + PIDNo = itemMeterValueCell.PIDNo, - // CurConfigPIDDto = Mapper.Map(Pid), - // CurConfigLimitDto = Mapper.Map(Limit), - // CurConfigAlarmDto = Mapper.Map(Alarm), + CurConfigPIDDto = Mapper.Map(Pid), + CurConfigLimitDto = Mapper.Map(Limit), + CurConfigAlarmDto = Mapper.Map(Alarm), - // ProStepInfo = $"{itemStep.StepNo}-{itemMeterValueCell.StepNo}", - // MeterName = CurMeterName, - // }); - // } - // } - // break; - // default: - // break; - // } - // } - // else - // { - // //判断当前的参数是全部都没有设置还是这一步没有设置,如果这个步骤没有设置,则沿用上一个步骤数据 - // var CurMeterListStepExe = ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe; - // if (CurMeterListStepExe.Any()) - // { - // //之前有步骤数据的话,则直接使用上一步的数据 + ProStepInfo = $"{itemStep.StepNo}-{itemMeterValueCell.StepNo}", + MeterName = CurMeterName, + }); + } + } + break; + default: + break; + } + } + else + { + //判断当前的参数是全部都没有设置还是这一步没有设置,如果这个步骤没有设置,则沿用上一个步骤数据 + var CurMeterListStepExe = ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe; + if (CurMeterListStepExe.Any()) + { + //之前有步骤数据的话,则直接使用上一步的数据 - // //Copy这个步骤的数据 - // var LastStepData = CurMeterListStepExe.OrderByDescending(a => a.MeterStep).FirstOrDefault().DeepClone(); - // //处理这个步骤的数据-处理按照常值的恒定的模式运行,就是维持结束的常值数据 - // LastStepData!.MeterStep = LastStepData.MeterStep + 1;//步骤+1 - // LastStepData.KeepTime = SpeedStepTotaolTime;//时间是整个时间 - // LastStepData.ExistSlop = false; - // LastStepData.StartSV = LastStepData.EndSV; - // LastStepData.ProStepInfo = $"{itemStep.StepNo}-{1}"; - // //添加 - // CurMeterListStepExe.Add(LastStepData); - // //SpeedStepTotaolTime - // } - // else - // { - // //之前步骤没有数据的话,则放弃,不做任何处理 - // } - // LogService.Warn($"【名称】: {CurMeterName} - 未找到步骤信息。步骤为空"); - // } + //Copy这个步骤的数据 + var LastStepData = CurMeterListStepExe.OrderByDescending(a => a.MeterStep).FirstOrDefault().DeepClone(); + //处理这个步骤的数据-处理按照常值的恒定的模式运行,就是维持结束的常值数据 + LastStepData!.MeterStep = LastStepData.MeterStep + 1;//步骤+1 + LastStepData.KeepTime = SpeedStepTotaolTime;//时间是整个时间 + LastStepData.ExistSlop = false; + LastStepData.StartSV = LastStepData.EndSV; + LastStepData.ProStepInfo = $"{itemStep.StepNo}-{1}"; + //添加 + CurMeterListStepExe.Add(LastStepData); + //SpeedStepTotaolTime + } + else + { + //之前步骤没有数据的话,则放弃,不做任何处理 + } + LogService.Warn($"【名称】: {CurMeterName} - 未找到步骤信息。步骤为空"); + } } diff --git a/CapMachine.Wpf/Views/ProConfigView.xaml b/CapMachine.Wpf/Views/ProConfigView.xaml index 53d9ca7..0462907 100644 --- a/CapMachine.Wpf/Views/ProConfigView.xaml +++ b/CapMachine.Wpf/Views/ProConfigView.xaml @@ -584,6 +584,7 @@ + @@ -620,6 +621,7 @@ + @@ -631,6 +633,7 @@ + @@ -642,6 +645,7 @@ + @@ -653,9 +657,10 @@ + - + @@ -664,18 +669,8 @@ + - - - - - - - - - - - @@ -697,6 +693,7 @@ + @@ -706,8 +703,9 @@ - --> + + @@ -719,6 +717,7 @@ + @@ -730,6 +729,7 @@ + @@ -741,7 +741,7 @@ - + @@ -753,7 +753,44 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -764,39 +801,7 @@ - - - - - - - - - - --> - - @@ -808,25 +813,30 @@ + - + - + - --> + - - + + + + - + - --> + + @@ -1381,6 +1391,7 @@ + + + - + - + - - - - - - - - - + + + Text="OCR (%)" /> - --> - - + AddCommand="{Binding ProStepOCRAddCmd}" + ConstSlopSelectedIndex="{Binding ProStepOCRSwitchConstSlopIndex, Mode=TwoWay}" + ConstantSaveCommand="{Binding ProStepOCRConstantSaveCmd}" + ConstantValue="{Binding SelectedConstOCRValue, Mode=TwoWay}" + Cycle="{Binding MeterOCRExDto.SlopCycle}" + DeleteCommand="{Binding ProStepOCRDeleteCmd}" + EditCommand="{Binding ProStepOCREditCmd}" + IsTimeOk="{Binding MeterOCRExDto.IsTimeOk}" + ListMeter="{Binding ListSlopMeterOCRItems}" + MeterName="OCR" + MeterSelectedChangedCmd="{Binding MeterOCRSlopSelectedChangedCmd}" + ParConfigCommand="{Binding MeterOCRParConfigCmd}" + SelectedMeter="{Binding SelectedSlopOCR, Mode=TwoWay}" + SwitchConstSlopCommand="{Binding MeterOCRSwitchConstSlopCmd}" + TotalSlopTime="{Binding MeterOCRExDto.SlopTime}" /> + + - + - + Text="压缩机环境温度 (℃)" /> - --> - - - - - - - - + AddCommand="{Binding ProStepEnvTempAddCmd}" + ConstSlopSelectedIndex="{Binding ProStepEnvTempSwitchConstSlopIndex, Mode=TwoWay}" + ConstantSaveCommand="{Binding ProStepEnvTempConstantSaveCmd}" + ConstantValue="{Binding SelectedConstEnvTempValue, Mode=TwoWay}" + Cycle="{Binding MeterEnvTempExDto.SlopCycle}" + DeleteCommand="{Binding ProStepEnvTempDeleteCmd}" + EditCommand="{Binding ProStepEnvTempEditCmd}" + IsTimeOk="{Binding MeterEnvTempExDto.IsTimeOk}" + ListMeter="{Binding ListSlopMeterEnvTempItems}" + MeterName="压缩机环境温度" + MeterSelectedChangedCmd="{Binding MeterEnvTempSlopSelectedChangedCmd}" + ParConfigCommand="{Binding MeterEnvTempParConfigCmd}" + SelectedMeter="{Binding SelectedSlopEnvTemp, Mode=TwoWay}" + SwitchConstSlopCommand="{Binding MeterEnvTempSwitchConstSlopCmd}" + TotalSlopTime="{Binding MeterEnvTempExDto.SlopTime}" /> - - + + + Text="OS1温度 (℃)" /> + AddCommand="{Binding ProStepOS1TempAddCmd}" + ConstSlopSelectedIndex="{Binding ProStepOS1TempSwitchConstSlopIndex, Mode=TwoWay}" + ConstantSaveCommand="{Binding ProStepOS1TempConstantSaveCmd}" + ConstantValue="{Binding SelectedConstOS1TempValue, Mode=TwoWay}" + Cycle="{Binding MeterOS1TempExDto.SlopCycle}" + DeleteCommand="{Binding ProStepOS1TempDeleteCmd}" + EditCommand="{Binding ProStepOS1TempEditCmd}" + IsTimeOk="{Binding MeterOS1TempExDto.IsTimeOk}" + ListMeter="{Binding ListSlopMeterOS1TempItems}" + MeterName="OS1温度" + MeterSelectedChangedCmd="{Binding MeterOS1TempSlopSelectedChangedCmd}" + ParConfigCommand="{Binding MeterOS1TempParConfigCmd}" + SelectedMeter="{Binding SelectedSlopOS1Temp, Mode=TwoWay}" + SwitchConstSlopCommand="{Binding MeterOS1TempSwitchConstSlopCmd}" + TotalSlopTime="{Binding MeterOS1TempExDto.SlopTime}" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +