From a09f1a1d9d5994da9ef87c6141f7a434077a9eaf Mon Sep 17 00:00:00 2001 From: Tyrone CT Date: Sat, 1 Mar 2025 14:23:00 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=85=B6=E4=BB=96=E5=8F=82?= =?UTF-8?q?=E6=95=B0=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Services/MachineRtDataService.cs | 4 +- CapMachine.Wpf/Services/ProRuntimeService.cs | 2409 +++++++++-------- 2 files changed, 1217 insertions(+), 1196 deletions(-) diff --git a/CapMachine.Wpf/Services/MachineRtDataService.cs b/CapMachine.Wpf/Services/MachineRtDataService.cs index fbeec9a..0dcca6c 100644 --- a/CapMachine.Wpf/Services/MachineRtDataService.cs +++ b/CapMachine.Wpf/Services/MachineRtDataService.cs @@ -165,8 +165,8 @@ namespace CapMachine.Wpf.Services TagManger.AddTag(new Tag("COND2压力", "COND2压力[BarA]", "Cond2Press", "程序", "VW15012", 100, 0, 100, "BarA", new ShortTagValue(), false) { DecimalPoint = 2, IsMeter = true, SVAddress = "VW5", Pid_PAddress = "VW0", Pid_IAddress = "VW1", Pid_DAddress = "VW2", Limit_UpAddress = "VW3", Limit_DownAddress = "VW4" }); TagManger.AddTag(new Tag("OCR", "OCR[%]", "OCR", "程序", "VW15014", 100, 0, 10, "%", new ShortTagValue(), true) { DecimalPoint = 1, IsMeter = true, SVAddress = "VW5", Pid_PAddress = "VW0", Pid_IAddress = "VW1", Pid_DAddress = "VW2", Limit_UpAddress = "VW3", Limit_DownAddress = "VW4" }); TagManger.AddTag(new Tag("HV[V]", "HV[V]", "HV", "程序", "VW15016", 100, 0, 10, "V", new ShortTagValue(), true) { DecimalPoint = 1, IsMeter = true, SVAddress = "VW5", Pid_PAddress = "VW0", Pid_IAddress = "VW1", Pid_DAddress = "VW2", Limit_UpAddress = "VW3", Limit_DownAddress = "VW4" }); - TagManger.AddTag(new Tag("HV[A]", "HV[A]", "HVCur", "程序", "VW15018", 100, 0, 100, "A", new ShortTagValue(), false) { DecimalPoint = 2, IsMeter = true, SVAddress = "VW5", Pid_PAddress = "VW0", Pid_IAddress = "VW1", Pid_DAddress = "VW2", Limit_UpAddress = "VW3", Limit_DownAddress = "VW4" }); - TagManger.AddTag(new Tag("HV[W]", "HV[W]", "HVPw", "程序", "VW15020", 100, 0, 1, "W", new ShortTagValue(), false) { DecimalPoint = 1, IsMeter = true, SVAddress = "VW5", Pid_PAddress = "VW0", Pid_IAddress = "VW1", Pid_DAddress = "VW2", Limit_UpAddress = "VW3", Limit_DownAddress = "VW4" }); + TagManger.AddTag(new Tag("HV[A]", "HV[A]", "HVCur", "程序", "VW15018", 100, 0, 100, "A", new ShortTagValue(), false) { DecimalPoint = 2, IsMeter = false }); + TagManger.AddTag(new Tag("HV[W]", "HV[W]", "HVPw", "程序", "VW15020", 100, 0, 1, "W", new ShortTagValue(), false) { DecimalPoint = 1, IsMeter = false }); TagManger.AddTag(new Tag("LV[V]", "LV[V]", "LV", "程序", "VW15022", 100, 0, 10, "V", new ShortTagValue(), true) { DecimalPoint = 1, IsMeter = true, SVAddress = "VW5", Pid_PAddress = "VW0", Pid_IAddress = "VW1", Pid_DAddress = "VW2", Limit_UpAddress = "VW3", Limit_DownAddress = "VW4" }); //TagManger.AddTag(new Tag("LV[A]", "LV[A]", "LVCur", "程序", "VW15024", 100, 0, 1, "A", new ShortTagValue(), false) { DecimalPoint = 1 }); TagManger.AddTag(new Tag("LV[A]", "LV[A]", "LVCur", "程序", "VW15024", 100, 0, 100, "A", new ShortTagValue(), false) { DecimalPoint = 2, IsMeter = true, SVAddress = "VW5", Pid_PAddress = "VW0", Pid_IAddress = "VW1", Pid_DAddress = "VW2", Limit_UpAddress = "VW3", Limit_DownAddress = "VW4" }); diff --git a/CapMachine.Wpf/Services/ProRuntimeService.cs b/CapMachine.Wpf/Services/ProRuntimeService.cs index 6e799be..ba597ba 100644 --- a/CapMachine.Wpf/Services/ProRuntimeService.cs +++ b/CapMachine.Wpf/Services/ProRuntimeService.cs @@ -48,108 +48,112 @@ namespace CapMachine.Wpf.Services ProRunChannel = MachineRtDataService.ProRunChannel; LogService = logService; + //实例化函数 - ListProExModel = new List() - { - new ProExModel(ProRunChannel){ - MeterName="转速", - ListProStepExe=new List(), - IsSpeed=true, - }, - new ProExModel(ProRunChannel){ - MeterName="COND1温度", - ListProStepExe=new List(), + ListProExModel = new List(); + #region 初始化程序执行模型 + //{ + // new ProExModel(ProRunChannel){ + // MeterName="转速", + // ListProStepExe=new List(), + // IsSpeed=true, + // }, + // new ProExModel(ProRunChannel){ + // MeterName="COND1温度", + // ListProStepExe=new List(), - }, - new ProExModel(ProRunChannel){ - MeterName="COND2温度", - ListProStepExe=new List(), + // }, + // new ProExModel(ProRunChannel){ + // MeterName="COND2温度", + // ListProStepExe=new List(), - }, - new ProExModel(ProRunChannel){ - MeterName="COND2压力", - ListProStepExe=new List(), + // }, + // new ProExModel(ProRunChannel){ + // MeterName="COND2压力", + // ListProStepExe=new List(), - }, - new ProExModel(ProRunChannel){ - MeterName="EVAP出口温度", - ListProStepExe=new List(), + // }, + // new ProExModel(ProRunChannel){ + // MeterName="EVAP出口温度", + // ListProStepExe=new List(), - }, - new ProExModel(ProRunChannel){ - MeterName="排气压力", - ListProStepExe=new List(), + // }, + // new ProExModel(ProRunChannel){ + // MeterName="排气压力", + // ListProStepExe=new List(), - }, - new ProExModel(ProRunChannel){ - MeterName="HV电压", - ListProStepExe=new List(), + // }, + // new ProExModel(ProRunChannel){ + // MeterName="HV[V]", + // ListProStepExe=new List(), - }, - new ProExModel(ProRunChannel){ - MeterName="吸气压力", - ListProStepExe=new List(), + // }, + // new ProExModel(ProRunChannel){ + // MeterName="吸气压力", + // ListProStepExe=new List(), - }, - new ProExModel(ProRunChannel){ - MeterName="吸气温度", - ListProStepExe=new List(), + // }, + // new ProExModel(ProRunChannel){ + // MeterName="吸气温度", + // ListProStepExe=new List(), - }, - new ProExModel(ProRunChannel){ - MeterName="润滑油压力", - ListProStepExe=new List(), + // }, + // new ProExModel(ProRunChannel){ + // MeterName="润滑油压力", + // ListProStepExe=new List(), - }, - new ProExModel(ProRunChannel){ - MeterName="LV电压", - ListProStepExe=new List(), + // }, + // new ProExModel(ProRunChannel){ + // MeterName="LV[V]", + // ListProStepExe=new List(), - }, - new ProExModel(ProRunChannel){ - MeterName="OCR", - ListProStepExe=new List(), + // }, + // new ProExModel(ProRunChannel){ + // MeterName="OCR", + // ListProStepExe=new List(), - }, - new ProExModel(ProRunChannel){ - MeterName="OS1温度", - ListProStepExe=new List(), + // }, + // new ProExModel(ProRunChannel){ + // MeterName="OS1温度", + // ListProStepExe=new List(), - }, - new ProExModel(ProRunChannel){ - MeterName="OS2温度", - ListProStepExe=new List(), + // }, + // new ProExModel(ProRunChannel){ + // MeterName="OS2温度", + // ListProStepExe=new List(), - }, - new ProExModel(ProRunChannel){ - MeterName="PTC入口温度", - ListProStepExe=new List(), + // }, + // new ProExModel(ProRunChannel){ + // MeterName="PTC入口温度", + // ListProStepExe=new List(), - }, - new ProExModel(ProRunChannel){ - MeterName="PTC流量", - ListProStepExe=new List(), + // }, + // new ProExModel(ProRunChannel){ + // MeterName="PTC流量", + // ListProStepExe=new List(), - }, - new ProExModel(ProRunChannel){ - MeterName="PTC功率", - ListProStepExe=new List(), + // }, + // new ProExModel(ProRunChannel){ + // MeterName="PTC功率", + // ListProStepExe=new List(), - }, - new ProExModel(ProRunChannel){ - MeterName="压缩机环境湿度", - ListProStepExe=new List(), + // }, + // new ProExModel(ProRunChannel){ + // MeterName="环境湿度", + // ListProStepExe=new List(), + + // }, + // new ProExModel(ProRunChannel){ + // MeterName="环境温度", + // ListProStepExe=new List(), + + // } + //}; + + #endregion - }, - new ProExModel(ProRunChannel){ - MeterName="压缩机环境温度", - ListProStepExe=new List(), - } - }; - //SpeedRunEndEvent - ListProExModel.FindFirst(a => a.MeterName.Contains("转速")).SpeedRunEndEvent += ProRuntimeService_SpeedRunEndEvent; //从变量集合中加载PLC转制的配置数据 ListPlcLoadConfigCell = new List(); @@ -169,8 +173,21 @@ namespace CapMachine.Wpf.Services Pid_DAddress = itemKeyValue.Value.Pid_DAddress, Precision = itemKeyValue.Value.Precision, }); + + // 给ListProExModel 增加数据 + ListProExModel.Add(new ProExModel(ProRunChannel) + { + MeterName = itemKeyValue.Value.NameNoUnit, + ListProStepExe = new List(), + IsSpeed = itemKeyValue.Value.Name.Contains("转速") == true ? true : false, + }); + } } + + //SpeedRunEndEvent + ListProExModel.FindFirst(a => a.MeterName.Contains("转速")).SpeedRunEndEvent += ProRuntimeService_SpeedRunEndEvent; + //反写给MachineRtDataService,MachineRtDataService也要写到PLC中 MachineRtDataService.ListPlcLoadConfigCell = ListPlcLoadConfigCell; @@ -402,6 +419,11 @@ namespace CapMachine.Wpf.Services break; } } + else + { + //当前步骤转速没有配置的话,后面的也不需要执行,直接返回 + continue; + } } @@ -705,454 +727,454 @@ 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} - 未找到步骤信息。步骤为空"); + // } } - //********* 单个【HV电压】步骤信息的解析 ********* + //********* 单个【HV[V]】步骤信息的解析 ********* { - var CurMeterName = "HV电压"; + var CurMeterName = "HV[V]"; if (itemStep.MeterHVVols != null && itemStep.MeterHVVols.Any()) { switch (itemStep.MeterHVVols.FirstOrDefault()!.ValueType) @@ -1599,156 +1621,156 @@ 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} - 未找到步骤信息。步骤为空"); + // } } - //********* 单个【LV电压】步骤信息的解析 ********* + //********* 单个【LV[V]】步骤信息的解析 ********* { - var CurMeterName = "LV电压"; + var CurMeterName = "LV[V]"; if (itemStep.MeterLVVols != null && itemStep.MeterLVVols.Any()) { switch (itemStep.MeterLVVols.FirstOrDefault()!.ValueType) @@ -2044,153 +2066,152 @@ namespace CapMachine.Wpf.Services } - - //********* 单个【OS1温度】步骤信息的解析 ********* + ////********* 单个【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} - 未找到步骤信息。步骤为空"); + // } } @@ -2343,456 +2364,9 @@ namespace CapMachine.Wpf.Services } - //********* 单个【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(); - } - - 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,//常值没有斜率 //开始和结束不一样则存在斜率 - - MeterStep = ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Count + 1, - MeterName = CurMeterName, - - LimitNo = itemMeterValueCell.LimitNo, - AlarmNo = itemMeterValueCell.AlarmNo, - PIDNo = itemMeterValueCell.PIDNo, - - 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(); - } - - 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,//开始和结束不一样则存在斜率 - - MeterStep = ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Count + 1, - - LimitNo = itemMeterValueCell.LimitNo, - AlarmNo = itemMeterValueCell.AlarmNo, - PIDNo = itemMeterValueCell.PIDNo, - - 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()) - { - //之前有步骤数据的话,则直接使用上一步的数据 - - //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(); - } - - 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,//常值没有斜率 //开始和结束不一样则存在斜率 - - MeterStep = ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Count + 1, - MeterName = CurMeterName, - - LimitNo = itemMeterValueCell.LimitNo, - AlarmNo = itemMeterValueCell.AlarmNo, - PIDNo = itemMeterValueCell.PIDNo, - - 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(); - } - - 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,//开始和结束不一样则存在斜率 - - MeterStep = ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Count + 1, - - LimitNo = itemMeterValueCell.LimitNo, - AlarmNo = itemMeterValueCell.AlarmNo, - PIDNo = itemMeterValueCell.PIDNo, - - 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()) - { - //之前有步骤数据的话,则直接使用上一步的数据 - - //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(); - } - - 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,//常值没有斜率 //开始和结束不一样则存在斜率 - - MeterStep = ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Count + 1, - MeterName = CurMeterName, - - LimitNo = itemMeterValueCell.LimitNo, - AlarmNo = itemMeterValueCell.AlarmNo, - PIDNo = itemMeterValueCell.PIDNo, - - 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(); - } - - 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,//开始和结束不一样则存在斜率 - - MeterStep = ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Count + 1, - - LimitNo = itemMeterValueCell.LimitNo, - AlarmNo = itemMeterValueCell.AlarmNo, - PIDNo = itemMeterValueCell.PIDNo, - - 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()) - { - //之前有步骤数据的话,则直接使用上一步的数据 - - //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} - 未找到步骤信息。步骤为空"); - } - - } - - //********* 单个【压缩机环境湿度】步骤信息的解析 ********* - { - var CurMeterName = "压缩机环境湿度"; + var CurMeterName = "环境湿度"; if (itemStep.MeterEnvRHs != null && itemStep.MeterEnvRHs.Any()) { switch (itemStep.MeterEnvRHs.FirstOrDefault()!.ValueType) @@ -2939,9 +2513,9 @@ namespace CapMachine.Wpf.Services } - //********* 单个【压缩机环境温度】步骤信息的解析 ********* + //********* 单个【环境温度】步骤信息的解析 ********* { - var CurMeterName = "压缩机环境温度"; + var CurMeterName = "环境温度"; if (itemStep.MeterEnvTemps != null && itemStep.MeterEnvTemps.Any()) { switch (itemStep.MeterEnvTemps.FirstOrDefault()!.ValueType) @@ -3088,6 +2662,453 @@ namespace CapMachine.Wpf.Services } + //********* 单个【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(); + // } + + // 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,//常值没有斜率 //开始和结束不一样则存在斜率 + + // MeterStep = ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Count + 1, + // MeterName = CurMeterName, + + // LimitNo = itemMeterValueCell.LimitNo, + // AlarmNo = itemMeterValueCell.AlarmNo, + // PIDNo = itemMeterValueCell.PIDNo, + + // 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(); + // } + + // 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,//开始和结束不一样则存在斜率 + + // MeterStep = ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Count + 1, + + // LimitNo = itemMeterValueCell.LimitNo, + // AlarmNo = itemMeterValueCell.AlarmNo, + // PIDNo = itemMeterValueCell.PIDNo, + + // 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()) + // { + // //之前有步骤数据的话,则直接使用上一步的数据 + + // //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(); + // } + + // 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,//常值没有斜率 //开始和结束不一样则存在斜率 + + // MeterStep = ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Count + 1, + // MeterName = CurMeterName, + + // LimitNo = itemMeterValueCell.LimitNo, + // AlarmNo = itemMeterValueCell.AlarmNo, + // PIDNo = itemMeterValueCell.PIDNo, + + // 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(); + // } + + // 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,//开始和结束不一样则存在斜率 + + // MeterStep = ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Count + 1, + + // LimitNo = itemMeterValueCell.LimitNo, + // AlarmNo = itemMeterValueCell.AlarmNo, + // PIDNo = itemMeterValueCell.PIDNo, + + // 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()) + // { + // //之前有步骤数据的话,则直接使用上一步的数据 + + // //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(); + // } + + // 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,//常值没有斜率 //开始和结束不一样则存在斜率 + + // MeterStep = ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Count + 1, + // MeterName = CurMeterName, + + // LimitNo = itemMeterValueCell.LimitNo, + // AlarmNo = itemMeterValueCell.AlarmNo, + // PIDNo = itemMeterValueCell.PIDNo, + + // 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(); + // } + + // 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,//开始和结束不一样则存在斜率 + + // MeterStep = ListProExModel.FindFirst(a => a.MeterName == CurMeterName).ListProStepExe.Count + 1, + + // LimitNo = itemMeterValueCell.LimitNo, + // AlarmNo = itemMeterValueCell.AlarmNo, + // PIDNo = itemMeterValueCell.PIDNo, + + // 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()) + // { + // //之前有步骤数据的话,则直接使用上一步的数据 + + // //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} - 未找到步骤信息。步骤为空"); + // } + + } + } }