From d3ce39ce324e9db24276a221309341736275ec68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=94=84=E5=A4=B4?= Date: Fri, 19 Apr 2024 08:42:38 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ProductionSystem/Forms/HomeFormInfo.cs | 559 +--------------------- ProductionSystem/ProductionSystem.csproj | 1 + ProductionSystem/Untils/Tool/StepTool.cs | 565 +++++++++++++++++++++++ 3 files changed, 588 insertions(+), 537 deletions(-) create mode 100644 ProductionSystem/Untils/Tool/StepTool.cs diff --git a/ProductionSystem/Forms/HomeFormInfo.cs b/ProductionSystem/Forms/HomeFormInfo.cs index 6411b13..b000e5f 100644 --- a/ProductionSystem/Forms/HomeFormInfo.cs +++ b/ProductionSystem/Forms/HomeFormInfo.cs @@ -56,7 +56,7 @@ namespace ProductionSystem.Forms private Random random = new Random(); - DataProductService dataProductService = new DataProductService(); + private static string iniFilePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "SystemConfig.ini"); private bool topIsCanRound = true;//展示PLC采集数据时,是否可以进入下一次循环 @@ -625,10 +625,10 @@ namespace ProductionSystem.Forms private PointKeyValue responsePoint = new PointKeyValue(); - ParaConfigService paraConfigService=new ParaConfigService(); - ProductStepService stepService = new ProductStepService(); + ProductStepService stepService = new ProductStepService(); + private StepTool _stepTool = new StepTool(); // /// @@ -657,7 +657,7 @@ namespace ProductionSystem.Forms { Over = false; XTrace.WriteLine("开始步骤1"); - ToCache(Step1); + ToCache(_stepTool.Step1); } //步骤2水泵2空载 var d1302Value = GetPlcValue("D1302"); @@ -666,7 +666,7 @@ namespace ProductionSystem.Forms { XTrace.WriteLine("开始步骤2"); // 上位机将四通阀运行到模式1,停止水泵1;启动水泵2运行致设定转速,反馈PLC=1或2(可以/不可以测试) - ToCache(Step2); + ToCache(_stepTool.Step2); } //1900 =1 待机模式 @@ -677,7 +677,7 @@ namespace ProductionSystem.Forms if (d1304Value.ToDouble().ToInt() == 1 ) { XTrace.WriteLine("开始步骤3"); - ToCache(Step3); + ToCache(_stepTool.Step3); } @@ -688,7 +688,7 @@ namespace ProductionSystem.Forms if (d1312.ToDouble().ToInt() == 1 ) { XTrace.WriteLine("开始步骤4"); - ToCache(Step4); + ToCache(_stepTool.Step4); } @@ -699,7 +699,7 @@ namespace ProductionSystem.Forms if (d1308.ToDouble().ToInt() == 1 ) { XTrace.WriteLine("开始步骤5"); - ToCache(Step5); + ToCache(_stepTool.Step5); } //步骤6模式2内漏 @@ -709,7 +709,7 @@ namespace ProductionSystem.Forms if (d1310.ToDouble().ToInt() == 1 ) { XTrace.WriteLine("开始步骤6"); - ToCache(Step6); + ToCache(_stepTool.Step6); } //步骤7外露模式 @@ -718,7 +718,7 @@ namespace ProductionSystem.Forms if (d1306Value.ToDouble().ToInt() == 1 ) { XTrace.WriteLine("开始步骤7"); - ToCache(Step7); + ToCache(_stepTool.Step7); } @@ -728,7 +728,7 @@ namespace ProductionSystem.Forms { //抓去测试 XTrace.WriteLine("开始步骤8"); - Step8(); + _stepTool.Step8(); Over = true; } @@ -747,7 +747,7 @@ namespace ProductionSystem.Forms XTrace.WriteLine($"开始步骤{name}"); if (!_cache.ContainsKey(name)) { - _cache.Set(name, DateTime.Now, TimeSpan.FromMinutes(10)); + _cache.Set(name, DateTime.Now, TimeSpan.FromMinutes(1)); action(); } } @@ -769,555 +769,40 @@ namespace ProductionSystem.Forms private UyTool uyTool; private UxTool _uxTool; T_Product_Step stpStep; - private void Step1() - { - //上位机将四通阀运行到模式1,启动水泵1运行致设定转速,反馈PLC=1或2(可以/不可以测试) - - // EquipmentCacheManager.Init(GetCode()); - - - var ba = ModeTypeEnum.BZ1_DB; - - if (D1004) - { - - // tResult2Service.Query(Program.ProductType,GetCode(),ba.ToString(),) - //StepName = ba.ToString(), - //ProductType = Program.ProductType, - //ProductBarcode = GetCode() - - stpStep = productStepService.QueryLatestStep(ba.ToString(), EquipmentEnum.FKSTF1ZT_DB.ToString(), Program.ProductType, GetCode()); - if (stpStep == null) - { - XTrace.WriteLine("开始运行四通1"); - TmTool.SiTong(ba, 1); - TmTool.WritePlc(TmTool.SiTong1, 1); - } - - } - - - if (D1004) - { - stpStep = productStepService.QueryLatestStep(ba.ToString(), EquipmentEnum.FKSTF2ZT_DB.ToString(), Program.ProductType, GetCode()); - if (stpStep == null) - { - XTrace.WriteLine("开始运行四通2"); - TmTool.SiTong(ba, 2); - TmTool.WritePlc(TmTool.SiTong2, 1); - } - } - - - - - if (D1004) - { - stpStep = productStepService.QueryLatestStep(ba.ToString(), EquipmentEnum.DZPZF1_DB.ToString(), Program.ProductType, GetCode()); - if (stpStep == null) - { - XTrace.WriteLine("开始膨胀阀"); - TmTool.Dzpy(ba, 1); - - TmTool.WritePlc(TmTool.PengZhang1, 1); - } - } - - - - if (D1004) - { - stpStep = productStepService.QueryLatestStep(ba.ToString(), EquipmentEnum.SB1ZS_DB.ToString(), Program.ProductType, GetCode()); - if (stpStep == null) - { - XTrace.WriteLine("开始水泵1"); - T_Product_Step step = new T_Product_Step - { - StepName = ba.ToString(), - ProductType = Program.ProductType, - ProductBarcode = GetCode() - }; - var model = paraConfigService.GetParaTargetVal(ba, Program.ProductType); - - var pzf1 = model.SB1; - var eqName = "SB1ZS_DB"; - var val = pzf1.TargetVal.ToDouble().ToInt(); - - - uyTool = new UyTool(pzf1.Com, val); - uyTool.Send(); - - - _curveTool.Step = "BZ1"; - _curveTool.Code = GetCode(); - _curveTool.Start(); - step.Id = Guid.NewGuid().ToString("N"); - step.ReturnValue = uyTool.Val; - step.WriteValue = uyTool.Val; - step.CreateTime = DateTime.Now; - step.Ms = "0"; - step.EquipmentName = eqName; - stepService.AddProductStep(step); - TmTool.WritePlc(TmTool.ShuiBeng1, 1); - } - } - - } - - - - /// - /// 高压模式 - /// - private void Step4() - { - if (D1004) - { - //停止水泵3 - PWMHelper.Close(); - //清理状态 - TmTool.CleanStatus(); - - _curveTool.Stop(); - } - - - - if (D1004) - { - - - - //上位机检测电子膨胀阀1,电子膨胀阀2在常开状态,不在最大值状态时,膨胀阀运行致常开状态,并反馈PLC=1或2(可以/不可以测试) - - var ba = ModeTypeEnum.BZ4_DB; - stpStep = productStepService.QueryLatestStep(ba.ToString(), EquipmentEnum.DZPZF1_DB.ToString(), - Program.ProductType, GetCode()); - if (null == stpStep) - { - XTrace.WriteLine("开始膨胀阀"); - TmTool.Dzpy(ba, 1); - TmTool.WritePlc(TmTool.PengZhang1, 1); - } - } - - } - - - - - - private void Step2() - { - - var ba = ModeTypeEnum.BZ2_DB; - - // XTrace.WriteLine("开始运行四通1"); - // TmTool.SiTong(ba, 1); - // TmTool.WritePlc(TmTool.SiTong1, 1); - // - // - // - // XTrace.WriteLine("开始运行四通2"); - // TmTool.SiTong(ba, 2); - // TmTool.WritePlc(TmTool.SiTong2, 1); - - - if (D1004) - { - - - - XTrace.WriteLine("停止水泵1"); - //停止水泵1 - uyTool.closeSend(); - TmTool.WritePlc(TmTool.ShuiBeng1, 0); - if (_curveTool != null) - { - _curveTool.Stop(); - - } - - } - - XTrace.WriteLine("开始水泵2"); - - if (D1004) - { - - stpStep = productStepService.QueryLatestStep(ba.ToString(), EquipmentEnum.SB2ZS_DB.ToString(), - Program.ProductType, GetCode()); - - if (stpStep == null) - { - - T_Product_Step step = new T_Product_Step - { - StepName = ba.ToString(), - ProductType = Program.ProductType, - ProductBarcode = GetCode() - }; - var model = paraConfigService.GetParaTargetVal(ba, Program.ProductType); - - - - var pzf1 = model.SB2; - var eqName = "SB2ZS_DB"; - - - var val = pzf1.TargetVal.ToDouble().ToInt(); - - - _uxTool = new UxTool(pzf1.Com, val); - _uxTool.Send(); - + - step.Id = Guid.NewGuid().ToString("N"); - step.ReturnValue = _uxTool.Write; - step.WriteValue = _uxTool.Write; - step.CreateTime = DateTime.Now; - step.Ms = "0"; - step.EquipmentName = eqName; - stepService.AddProductStep(step); - TmTool.WritePlc(TmTool.ShuiBeng2, 1); - if (_curveTool != null) - { - _curveTool.Step = "BZ2"; - _curveTool.Code = GetCode(); - _curveTool.Start(); - } - } - } - } + + - private void Step3() - { - var ba = ModeTypeEnum.BZ3_DB; - - - - if (D1004) - { - //水泵2关闭 - _uxTool.closeSend(); - TmTool.WritePlc(TmTool.ShuiBeng2, 0); - - - _curveTool.Stop(); - } - if (D1004) - { - stpStep = productStepService.QueryLatestStep(ba.ToString(), EquipmentEnum.SB3ZS_DB.ToString(), - Program.ProductType, GetCode()); - if (null == stpStep) - { - - - - //启动水泵3 - PWMHelper.Open(); - TmTool.WritePlc(TmTool.ShuiBeng3, 1); - T_Product_Step step = new T_Product_Step - { - StepName = ba.ToString(), - ProductType = Program.ProductType, - ProductBarcode = GetCode() - }; - var model = paraConfigService.GetParaTargetVal(ba, Program.ProductType); - step.Id = Guid.NewGuid().ToString("N"); - step.ReturnValue = "0"; - step.WriteValue = "0"; - step.CreateTime = DateTime.Now; - step.Ms = "0"; - step.EquipmentName = "SB3ZS_DB"; - stepService.AddProductStep(step); - - if (_curveTool != null) - { - _curveTool.Step = "BZ3"; - _curveTool.Code = GetCode(); - _curveTool.Start(); - } - } - } - - - } + - private void Step7() - { - TmTool.CleanSt(); - Thread.Sleep(300); - var ba = ModeTypeEnum.BZ7_DB; - if (D1004) - { - - stpStep = productStepService.QueryLatestStep(ba.ToString(), EquipmentEnum.FKSTF1ZT_DB.ToString(), - Program.ProductType, GetCode()); - if (null == stpStep) - { - TmTool.SiTong(ModeTypeEnum.BZ7_DB, 1); - TmTool.WritePlc(TmTool.SiTong1, 1); - } - } - - if (D1004) - { - stpStep = productStepService.QueryLatestStep(ba.ToString(), EquipmentEnum.FKSTF2ZT_DB.ToString(), - Program.ProductType, GetCode()); - if (null == stpStep) - { - - - TmTool.SiTong(ModeTypeEnum.BZ7_DB, 2); - TmTool.WritePlc(TmTool.SiTong2, 1); - } - - } - - - - } + - private void Step5() - { - - TmTool.CleanSt(); - Thread.Sleep(300); - - var ba = ModeTypeEnum.BZ5_DB; - //上位机将四通阀1运行到模式1,四通阀2运行到模式1,;反馈模式与设定模式相同时,反馈PLC=1或2(可以/不可以测试) - if (D1004) - { - stpStep = productStepService.QueryLatestStep(ba.ToString(), EquipmentEnum.FKSTF1ZT_DB.ToString(), - Program.ProductType, GetCode()); - if (null == stpStep) - { - TmTool.SiTong(ba, 1); - TmTool.WritePlc(TmTool.SiTong1, 1); - } - - } - - if (D1004) - { - stpStep = productStepService.QueryLatestStep(ba.ToString(), EquipmentEnum.FKSTF2ZT_DB.ToString(), - Program.ProductType, GetCode()); - if (null == stpStep) - { - TmTool.SiTong(ba, 2); - TmTool.WritePlc(TmTool.SiTong2, 1); - } - } - - - } - + - private void Step6() - { - - TmTool.CleanSt(); - Thread.Sleep(300); - //上位机将四通阀1运行到模式6,四通阀2运行到模式6,;反馈模式与设定模式相同时,反馈PLC=1或2(可以/不可以测试) - var ba = ModeTypeEnum.BZ6_DB; - //上位机将四通阀1运行到模式1,四通阀2运行到模式1,;反馈模式与设定模式相同时,反馈PLC=1或2(可以/不可以测试) - if (D1004) - { - stpStep = productStepService.QueryLatestStep(ba.ToString(), EquipmentEnum.FKSTF1ZT_DB.ToString(), - Program.ProductType, GetCode()); - if (null == stpStep) - { - TmTool.SiTong(ba, 1); - TmTool.WritePlc(TmTool.SiTong1, 1); - } - } - if (D1004) - { - stpStep = productStepService.QueryLatestStep(ba.ToString(), EquipmentEnum.FKSTF2ZT_DB.ToString(), - Program.ProductType, GetCode()); - if (null == stpStep) - { - TmTool.SiTong(ba, 2); - TmTool.WritePlc(TmTool.SiTong2, 1); - } - } - - - } + - private void Step8() - { - //采集数据 - for (int i = 1; i < 8; i++) - { - CollectData("BZ"+i); - } - //sitongfa 2 3 - //膨胀阀0 - - //去采集值 - var ba = ModeTypeEnum.BZ8_DB; - XTrace.WriteLine("第八部"+D1004); - if (D1004) - { - - stpStep = productStepService.QueryLatestStep(ba.ToString(), EquipmentEnum.FKSTF1ZT_DB.ToString(), - Program.ProductType, GetCode()); - if (null == stpStep) - { - TmTool.SiTong(ModeTypeEnum.BZ8_DB, 1, true); - TmTool.WritePlc(TmTool.SiTong1, 3); - } - } - - if (D1004) - { - stpStep = productStepService.QueryLatestStep(ba.ToString(), EquipmentEnum.FKSTF2ZT_DB.ToString(), - Program.ProductType, GetCode()); - if (null == stpStep) - { - TmTool.SiTong(ModeTypeEnum.BZ8_DB, 2, true); - TmTool.WritePlc(TmTool.SiTong2, 3); - } - - - } - - if (D1004) - { - stpStep = productStepService.QueryLatestStep(ba.ToString(), EquipmentEnum.DZPZF1_DB.ToString(), - Program.ProductType, GetCode()); - if (null == stpStep) - { - TmTool.Dzpy(ModeTypeEnum.BZ8_DB, 1, true); - TmTool.WritePlc(TmTool.PengZhang1, 0); - } - - } - - - } - - /// - /// 采集数据 - /// - private void CollectData(string par) - { - T_Result2 t = new T_Result2 - { - Id = Guid.NewGuid().ToString("n"), - ProductType = Program.ProductType, - CreateTime = DateTime.Now, - Step = par, - ProductBarcode = GetCode(), - Electricity = "-", - ElectricityState = "-", - Voltage = "-", - VoltageState = "-", - Xll = "-", - Xllzt = "-" - }; - //步骤一 - if (par == "BZ1") - { - t.Electricity = GetPlcValue("D1202"); - - t.Voltage = GetPlcValue("D1200"); - //t.Step = "步骤1"; - t.ElectricityState = GetPlcValue("D1102").ToDouble().ToInt() == 1 ? "OK" : "NG"; - t.VoltageState = GetPlcValue("D1100").ToDouble().ToInt() == 1 ? "OK" : "NG"; - if (t.Electricity.ToDouble()>0 && t.Voltage.ToDouble()>0) - { - _result2Service.AddTResult2(t); - } - - } - - if (par == "BZ2") - { - t.Electricity = GetPlcValue("D1206"); - t.Voltage = GetPlcValue("D1204"); - //t.Step = "步骤2"; - t.ElectricityState = GetPlcValue("D1106").ToDouble().ToInt() == 1 ? "OK" : "NG"; - t.VoltageState = GetPlcValue("D1104").ToDouble().ToInt() == 1 ? "OK" : "NG"; - if (t.Electricity.ToDouble() > 0 && t.Voltage.ToDouble() > 0) - { - _result2Service.AddTResult2(t); - } - } - - if (par == "BZ3") - { - t.Electricity = GetPlcValue("D1210"); - t.Voltage = GetPlcValue("D1208"); - //t.Step = "步骤3"; - t.ElectricityState = GetPlcValue("D1110").ToDouble().ToInt() == 1 ? "OK" : "NG"; - t.VoltageState = GetPlcValue("D1108").ToDouble().ToInt() == 1 ? "OK" : "NG"; - if (t.Electricity.ToDouble() > 0 && t.Voltage.ToDouble() > 0) - { - _result2Service.AddTResult2(t); - } - } - //高压 - if (par == "BZ4") - { - t.Xll = GetPlcValue("D1224"); - t.Xllzt = GetPlcValue("D1226").ToDouble().ToInt() == 1 ? "OK" : "NG"; - //t.Step = "步骤4"; - _result2Service.AddTResult2(t); - - } - - //内1 - if (par == "BZ5") - { - - t.Xll = GetPlcValue("D1214"); - t.Xllzt = GetPlcValue("D1114").ToDouble().ToInt() == 1 ? "OK" : "NG"; - //t.Step = "步骤5"; - _result2Service.AddTResult2(t); - - - } - //内2 - if (par == "BZ6") - { - t.Xll = GetPlcValue("D1216"); - t.Xllzt = GetPlcValue("D1116").ToDouble().ToInt() == 1 ? "OK" : "NG"; - //t.Step = "步骤6"; - _result2Service.AddTResult2(t); - } - //外漏 - if (par == "BZ7") - { - t.Xll = GetPlcValue("D1212"); - t.Xllzt = GetPlcValue("D1112").ToDouble().ToInt() == 1 ? "OK" : "NG"; - //t.Step = "步骤7"; - _result2Service.AddTResult2(t); - } - - - } + + ICache _cache=Cache.Default; private int count = 0; @@ -1381,7 +866,7 @@ namespace ProductionSystem.Forms } - private TResult2Service _result2Service = new TResult2Service(); + // private void Collect(string par) // { // var tagDict = GetTagDict(); diff --git a/ProductionSystem/ProductionSystem.csproj b/ProductionSystem/ProductionSystem.csproj index dfeb161..99accc7 100644 --- a/ProductionSystem/ProductionSystem.csproj +++ b/ProductionSystem/ProductionSystem.csproj @@ -426,6 +426,7 @@ + diff --git a/ProductionSystem/Untils/Tool/StepTool.cs b/ProductionSystem/Untils/Tool/StepTool.cs new file mode 100644 index 0000000..d33c56f --- /dev/null +++ b/ProductionSystem/Untils/Tool/StepTool.cs @@ -0,0 +1,565 @@ +using System; +using System.Linq; +using System.Threading; +using Custom.Communication.Framework.MyPlc; +using NewLife.Log; +using ProductionSystem_Model.DbModel; +using ProductionSystem_Model.Enum; +using ProductionSystem_Model.ViewModel.Response.Para; +using ProductionSystem_Service; + +namespace ProductionSystem.Untils.Tool +{ + public class StepTool + { + + ProductStepService stepService = new ProductStepService(); + private CurveTool _curveTool = new CurveTool(); + private PointKeyValue M248 = Program.CommandPointKeyValues.FirstOrDefault(m => m.Key == "D670"); + ParaConfigService paraConfigService=new ParaConfigService(); + DataProductService dataProductService = new DataProductService(); + private readonly ProductStepService productStepService = new ProductStepService(); + + private UyTool uyTool; + private UxTool _uxTool; + private bool D1004 + { + get + { + var entity= Program.CommandPointKeyValues.FirstOrDefault(m => m.Key =="D1004"); + return OmronHelper.GetPlcVal(entity.DataType, entity.Address).val.ToDouble().ToInt() == 1; + } + + } + + private string GetCode() + { + var readM248 = OmronHelper.GetPlcVal(M248.DataType, M248.Address); + string plcTiaoMa = readM248.val.ToString().Replace("\r", "").Replace("\n", ""); + return plcTiaoMa; + } + + + /// + /// 第一部 + /// + public void Step1() + { + //上位机将四通阀运行到模式1,启动水泵1运行致设定转速,反馈PLC=1或2(可以/不可以测试) + + var ba = ModeTypeEnum.BZ1_DB; + + if (D1004) + { + var stpStep = productStepService.QueryLatestStep(ba.ToString(), EquipmentEnum.FKSTF1ZT_DB.ToString(), Program.ProductType, GetCode()); + if (stpStep == null) + { + XTrace.WriteLine("开始运行四通1"); + TmTool.SiTong(ba, 1); + TmTool.WritePlc(TmTool.SiTong1, 1); + } + } + + + if (D1004) + { + var stpStep = productStepService.QueryLatestStep(ba.ToString(), EquipmentEnum.FKSTF2ZT_DB.ToString(), Program.ProductType, GetCode()); + if (stpStep == null) + { + XTrace.WriteLine("开始运行四通2"); + TmTool.SiTong(ba, 2); + TmTool.WritePlc(TmTool.SiTong2, 1); + } + } + + + + + if (D1004) + { + var stpStep = productStepService.QueryLatestStep(ba.ToString(), EquipmentEnum.DZPZF1_DB.ToString(), Program.ProductType, GetCode()); + if (stpStep == null) + { + XTrace.WriteLine("开始膨胀阀"); + TmTool.Dzpy(ba, 1); + + TmTool.WritePlc(TmTool.PengZhang1, 1); + } + } + + + + if (D1004) + { + var stpStep = productStepService.QueryLatestStep(ba.ToString(), EquipmentEnum.SB1ZS_DB.ToString(), Program.ProductType, GetCode()); + if (stpStep == null) + { + XTrace.WriteLine("开始水泵1"); + T_Product_Step step = new T_Product_Step + { + StepName = ba.ToString(), + ProductType = Program.ProductType, + ProductBarcode = GetCode() + }; + var model = paraConfigService.GetParaTargetVal(ba, Program.ProductType); + + var pzf1 = model.SB1; + var eqName = EquipmentEnum.SB1ZS_DB.ToString(); + var val = pzf1.TargetVal.ToDouble().ToInt(); + + + uyTool = new UyTool(pzf1.Com, val); + uyTool.Send(); + + + _curveTool.Step = "BZ1"; + _curveTool.Code = GetCode(); + _curveTool.Start(); + step.Id = Guid.NewGuid().ToString("N"); + step.ReturnValue = uyTool.Val; + step.WriteValue = uyTool.Val; + step.CreateTime = DateTime.Now; + step.Ms = "0"; + step.EquipmentName = eqName; + stepService.AddProductStep(step); + TmTool.WritePlc(TmTool.ShuiBeng1, 1); + } + } + + } + + + + public void Step2() + { + + var ba = ModeTypeEnum.BZ2_DB; + + + if (D1004) + { + + + + XTrace.WriteLine("停止水泵1"); + //停止水泵1 + uyTool.closeSend(); + TmTool.WritePlc(TmTool.ShuiBeng1, 0); + if (_curveTool != null) + { + _curveTool.Stop(); + + } + + } + + XTrace.WriteLine("开始水泵2"); + + if (D1004) + { + + var stpStep = productStepService.QueryLatestStep(ba.ToString(), EquipmentEnum.SB2ZS_DB.ToString(), + Program.ProductType, GetCode()); + + if (stpStep == null) + { + + T_Product_Step step = new T_Product_Step + { + StepName = ba.ToString(), + ProductType = Program.ProductType, + ProductBarcode = GetCode() + }; + var model = paraConfigService.GetParaTargetVal(ba, Program.ProductType); + + + + var pzf1 = model.SB2; + var eqName = "SB2ZS_DB"; + + + var val = pzf1.TargetVal.ToDouble().ToInt(); + + + _uxTool = new UxTool(pzf1.Com, val); + _uxTool.Send(); + + + step.Id = Guid.NewGuid().ToString("N"); + step.ReturnValue = _uxTool.Write; + step.WriteValue = _uxTool.Write; + step.CreateTime = DateTime.Now; + step.Ms = "0"; + step.EquipmentName = eqName; + stepService.AddProductStep(step); + + TmTool.WritePlc(TmTool.ShuiBeng2, 1); + + if (_curveTool != null) + { + _curveTool.Step = "BZ2"; + _curveTool.Code = GetCode(); + _curveTool.Start(); + } + } + } + } + + + public void Step3() + { + var ba = ModeTypeEnum.BZ3_DB; + if (D1004) + { + //水泵2关闭 + _uxTool.closeSend(); + TmTool.WritePlc(TmTool.ShuiBeng2, 0); + _curveTool.Stop(); + } + + if (D1004) + { + var stpStep = productStepService.QueryLatestStep(ba.ToString(), EquipmentEnum.SB3ZS_DB.ToString(), + Program.ProductType, GetCode()); + + if (null == stpStep) + { + + //启动水泵3 + PWMHelper.Open(); + TmTool.WritePlc(TmTool.ShuiBeng3, 1); + T_Product_Step step = new T_Product_Step + { + StepName = ba.ToString(), + ProductType = Program.ProductType, + ProductBarcode = GetCode() + }; + var model = paraConfigService.GetParaTargetVal(ba, Program.ProductType); + step.Id = Guid.NewGuid().ToString("N"); + step.ReturnValue = "0"; + step.WriteValue = "0"; + step.CreateTime = DateTime.Now; + step.Ms = "0"; + step.EquipmentName = "SB3ZS_DB"; + stepService.AddProductStep(step); + + if (_curveTool != null) + { + _curveTool.Step = "BZ3"; + _curveTool.Code = GetCode(); + _curveTool.Start(); + } + } + } + + + } + + + + /// + /// 高压模式 + /// + public void Step4() + { + if (D1004) + { + //停止水泵3 + PWMHelper.Close(); + //清理状态 + TmTool.CleanStatus(); + _curveTool.Stop(); + } + + if (D1004) + { //上位机检测电子膨胀阀1,电子膨胀阀2在常开状态,不在最大值状态时,膨胀阀运行致常开状态,并反馈PLC=1或2(可以/不可以测试) + + var ba = ModeTypeEnum.BZ4_DB; + var stpStep = productStepService.QueryLatestStep(ba.ToString(), EquipmentEnum.DZPZF1_DB.ToString(), + Program.ProductType, GetCode()); + if (null == stpStep) + { + XTrace.WriteLine("开始膨胀阀"); + TmTool.Dzpy(ba, 1); + TmTool.WritePlc(TmTool.PengZhang1, 1); + } + } + + } + + + public void Step5() + { + + TmTool.CleanSt(); + Thread.Sleep(300); + + var ba = ModeTypeEnum.BZ5_DB; + //上位机将四通阀1运行到模式1,四通阀2运行到模式1,;反馈模式与设定模式相同时,反馈PLC=1或2(可以/不可以测试) + if (D1004) + { + var stpStep = productStepService.QueryLatestStep(ba.ToString(), EquipmentEnum.FKSTF1ZT_DB.ToString(), + Program.ProductType, GetCode()); + if (null == stpStep) + { + TmTool.SiTong(ba, 1); + TmTool.WritePlc(TmTool.SiTong1, 1); + } + + } + + if (D1004) + { + var stpStep = productStepService.QueryLatestStep(ba.ToString(), EquipmentEnum.FKSTF2ZT_DB.ToString(), + Program.ProductType, GetCode()); + if (null == stpStep) + { + TmTool.SiTong(ba, 2); + TmTool.WritePlc(TmTool.SiTong2, 1); + } + } + + + } + + + public void Step6() + { + + TmTool.CleanSt(); + Thread.Sleep(300); + //上位机将四通阀1运行到模式6,四通阀2运行到模式6,;反馈模式与设定模式相同时,反馈PLC=1或2(可以/不可以测试) + var ba = ModeTypeEnum.BZ6_DB; + //上位机将四通阀1运行到模式1,四通阀2运行到模式1,;反馈模式与设定模式相同时,反馈PLC=1或2(可以/不可以测试) + if (D1004) + { + var stpStep = productStepService.QueryLatestStep(ba.ToString(), EquipmentEnum.FKSTF1ZT_DB.ToString(), + Program.ProductType, GetCode()); + if (null == stpStep) + { + TmTool.SiTong(ba, 1); + TmTool.WritePlc(TmTool.SiTong1, 1); + } + } + + if (D1004) + { + var stpStep = productStepService.QueryLatestStep(ba.ToString(), EquipmentEnum.FKSTF2ZT_DB.ToString(), + Program.ProductType, GetCode()); + if (null == stpStep) + { + TmTool.SiTong(ba, 2); + TmTool.WritePlc(TmTool.SiTong2, 1); + } + } + + + } + + + public void Step7() + { + TmTool.CleanSt(); + Thread.Sleep(300); + var ba = ModeTypeEnum.BZ7_DB; + if (D1004) + { + + var stpStep = productStepService.QueryLatestStep(ba.ToString(), EquipmentEnum.FKSTF1ZT_DB.ToString(), + Program.ProductType, GetCode()); + if (null == stpStep) + { + TmTool.SiTong(ModeTypeEnum.BZ7_DB, 1); + TmTool.WritePlc(TmTool.SiTong1, 1); + } + } + + if (D1004) + { + var stpStep = productStepService.QueryLatestStep(ba.ToString(), EquipmentEnum.FKSTF2ZT_DB.ToString(), + Program.ProductType, GetCode()); + if (null == stpStep) + { + + + TmTool.SiTong(ModeTypeEnum.BZ7_DB, 2); + TmTool.WritePlc(TmTool.SiTong2, 1); + } + + } + + + + } + + + public void Step8() + { + //采集数据 + for (int i = 1; i < 8; i++) + { + CollectData("BZ"+i); + } + //sitongfa 2 3 + //膨胀阀0 + + //去采集值 + var ba = ModeTypeEnum.BZ8_DB; + XTrace.WriteLine("第八部"+D1004); + if (D1004) + { + + var stpStep = productStepService.QueryLatestStep(ba.ToString(), EquipmentEnum.FKSTF1ZT_DB.ToString(), + Program.ProductType, GetCode()); + if (null == stpStep) + { + TmTool.SiTong(ModeTypeEnum.BZ8_DB, 1, true); + TmTool.WritePlc(TmTool.SiTong1, 3); + } + } + + if (D1004) + { + var stpStep = productStepService.QueryLatestStep(ba.ToString(), EquipmentEnum.FKSTF2ZT_DB.ToString(), + Program.ProductType, GetCode()); + if (null == stpStep) + { + TmTool.SiTong(ModeTypeEnum.BZ8_DB, 2, true); + TmTool.WritePlc(TmTool.SiTong2, 3); + } + + + } + + if (D1004) + { + var stpStep = productStepService.QueryLatestStep(ba.ToString(), EquipmentEnum.DZPZF1_DB.ToString(), + Program.ProductType, GetCode()); + if (null == stpStep) + { + TmTool.Dzpy(ModeTypeEnum.BZ8_DB, 1, true); + TmTool.WritePlc(TmTool.PengZhang1, 0); + } + + } + + + } + private TResult2Service _result2Service = new TResult2Service(); + + /// + /// 采集数据 + /// + private void CollectData(string par) + { + T_Result2 t = new T_Result2 + { + Id = Guid.NewGuid().ToString("n"), + ProductType = Program.ProductType, + CreateTime = DateTime.Now, + Step = par, + ProductBarcode = GetCode(), + Electricity = "-", + ElectricityState = "-", + Voltage = "-", + VoltageState = "-", + Xll = "-", + Xllzt = "-" + }; + //步骤一 + if (par == "BZ1") + { + t.Electricity = GetPlcValue("D1202"); + + t.Voltage = GetPlcValue("D1200"); + //t.Step = "步骤1"; + t.ElectricityState = GetPlcValue("D1102").ToDouble().ToInt() == 1 ? "OK" : "NG"; + t.VoltageState = GetPlcValue("D1100").ToDouble().ToInt() == 1 ? "OK" : "NG"; + if (t.Electricity.ToDouble()>0 && t.Voltage.ToDouble()>0) + { + _result2Service.AddTResult2(t); + } + + } + + if (par == "BZ2") + { + t.Electricity = GetPlcValue("D1206"); + t.Voltage = GetPlcValue("D1204"); + //t.Step = "步骤2"; + t.ElectricityState = GetPlcValue("D1106").ToDouble().ToInt() == 1 ? "OK" : "NG"; + t.VoltageState = GetPlcValue("D1104").ToDouble().ToInt() == 1 ? "OK" : "NG"; + if (t.Electricity.ToDouble() > 0 && t.Voltage.ToDouble() > 0) + { + _result2Service.AddTResult2(t); + } + } + + if (par == "BZ3") + { + t.Electricity = GetPlcValue("D1210"); + t.Voltage = GetPlcValue("D1208"); + //t.Step = "步骤3"; + t.ElectricityState = GetPlcValue("D1110").ToDouble().ToInt() == 1 ? "OK" : "NG"; + t.VoltageState = GetPlcValue("D1108").ToDouble().ToInt() == 1 ? "OK" : "NG"; + if (t.Electricity.ToDouble() > 0 && t.Voltage.ToDouble() > 0) + { + _result2Service.AddTResult2(t); + } + } + //高压 + if (par == "BZ4") + { + t.Xll = GetPlcValue("D1224"); + t.Xllzt = GetPlcValue("D1226").ToDouble().ToInt() == 1 ? "OK" : "NG"; + //t.Step = "步骤4"; + _result2Service.AddTResult2(t); + + } + + //内1 + if (par == "BZ5") + { + + t.Xll = GetPlcValue("D1214"); + t.Xllzt = GetPlcValue("D1114").ToDouble().ToInt() == 1 ? "OK" : "NG"; + //t.Step = "步骤5"; + _result2Service.AddTResult2(t); + + + } + //内2 + if (par == "BZ6") + { + t.Xll = GetPlcValue("D1216"); + t.Xllzt = GetPlcValue("D1116").ToDouble().ToInt() == 1 ? "OK" : "NG"; + //t.Step = "步骤6"; + _result2Service.AddTResult2(t); + } + //外漏 + if (par == "BZ7") + { + t.Xll = GetPlcValue("D1212"); + t.Xllzt = GetPlcValue("D1112").ToDouble().ToInt() == 1 ? "OK" : "NG"; + //t.Step = "步骤7"; + _result2Service.AddTResult2(t); + } + + + } + + public string GetPlcValue(string key) + { + var entity= Program.CommandPointKeyValues.FirstOrDefault(m => m.Key == key); + if (entity != null) + { + return OmronHelper.GetPlcVal(entity.DataType, entity.Address).val; + } + + return ""; + + } + + + } +} \ No newline at end of file