From 4c7f7cf7e5fbe9af627f918412fce6a2f4073f95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=88=91=E5=8F=AB=E9=94=84=E5=A4=B4?= Date: Sat, 13 Apr 2024 13:09:26 +0800 Subject: [PATCH] demo --- ProductionSystem/Forms/HomeFormInfo.cs | 463 ++++++++++++++++------- ProductionSystem/ProductionSystem.csproj | 1 + ProductionSystem/Untils/Tool/TmTool.cs | 58 +++ 3 files changed, 386 insertions(+), 136 deletions(-) create mode 100644 ProductionSystem/Untils/Tool/TmTool.cs diff --git a/ProductionSystem/Forms/HomeFormInfo.cs b/ProductionSystem/Forms/HomeFormInfo.cs index 288923b..acd08b4 100644 --- a/ProductionSystem/Forms/HomeFormInfo.cs +++ b/ProductionSystem/Forms/HomeFormInfo.cs @@ -79,14 +79,18 @@ namespace ProductionSystem.Forms InitMiddleTestItems(); cmbProductType.SelectedItem = new ListItem { Value = Program.ProductType, Text = Program.ProductType }; + //var temp = _paraConfigService.GetParaTargetVal(ModeTypeEnum.BZ1_DB); //string str1 = temp.PZF1.TargetVal; //string str2 = temp.PZF1.Lin; //string str3 = temp.PZF1.Com; } + + private void Init() - { + { + Program.BZ1 = Program.MiddlePointKeyValues.Where(m => m.ParaCategory == "BZ1").ToList(); Program.BZ2 = Program.MiddlePointKeyValues.Where(m => m.ParaCategory == "BZ2").ToList(); Program.BZ3 = Program.MiddlePointKeyValues.Where(m => m.ParaCategory == "BZ3").ToList(); @@ -218,7 +222,63 @@ namespace ProductionSystem.Forms if (paraColumnConfig == null) { LogHelper.Error(null, $"根据机型[{Program.ProductType}],在参数项字段配置表未查询到通讯协议的相关配置!"); - } + } + //else + //{ + // for (int i = 0; i < paraColumnConfig.Count; i++) + // { + // var protocolConfig = _protocolConfigService.QueryActiveProtocolConfigByCode(paraColumnConfig[i].ProtocolType); + // if (protocolConfig == null) + // { + // Loading.CloseWaitForm(); + // CustomMessageBoxHelper.AlertShow(this, $"根据通讯协议编码[{protocolConfig.ProtocolCode}]未查询到协议配置!"); + // return; + // } + // Program.ProtocolConigCode = protocolConfig.Remark; + // Program.ProtocolType = protocolConfig.ProtocolType; + // Program.MsgFormat = protocolConfig.MsgFormat; + // Program.PortName = protocolConfig.Port; + // Program.BaudRate = protocolConfig.Bps; + // Program.Parity = EnumHelper.ConvertEnumToInt(protocolConfig.ChkBit); + // Program.DataBits = protocolConfig.DataBit; + // Program.StopBits = protocolConfig.StopBit; + // Program.StationNo = protocolConfig.StationNo ?? 1; + + // //#region 串口 + // //try + // //{ + + // // if (Program._serialPort != null) + // // { + // // Program._serialPort.Close(); + // // } + // // Program._serialPort = null; + // // Program._serialPort = new SerialPort + // // { + // // PortName = Program.PortName, + // // BaudRate = Program.BaudRate, + // // Parity = (Parity)Program.Parity, + // // DataBits = Program.DataBits, + // // StopBits = (StopBits)Program.StopBits, + // // ReadTimeout = 100, + // // WriteTimeout = 100 + // // }; + // // Program._serialPort.Open(); + // // if (Program.ProtocolDeviceHelper == null) + // // { + // // Program.ProtocolDeviceHelper = new ProtocolDeviceHelper(); + // // } + // // Program.ProtocolDeviceHelper.WriteData("68 02 00 41 6C 17 16"); + // // Thread.Sleep(20); + // // Program.ProtocolDeviceHelper.WriteData("68 07 00 04 00 20 A1 07 00 00 3B 16"); + // //} + // //catch (Exception ex) + // //{ + // // LogHelper.Error(ex, $"串口打开失败:{ex.Message}"); + // //} + // //#endregion + // } + //} #region 往PLC写入产品型号和标识码及参数配置 if (!OmronHelper.PLCIsConnected) @@ -379,6 +439,7 @@ namespace ProductionSystem.Forms } middleFlowLayoutPanel.Controls.Clear();//清空控件 + //var groupControlMinHeight = 65; var groupControlMinHeight = 55; for (int i = 0; i < paraCategorys.Count; i++) { @@ -445,6 +506,7 @@ namespace ProductionSystem.Forms MaximumSize = new Size(284, 34), Font = new Font("Tahoma", 9F), Name = $"MiddleMyTestResultControl{i}", + //Size = new Size(265, 34), Size = new Size(200, 29), TestResultPLCPointCode = testResult?.Key, TestValPLCPointCode = testVal?.Key, @@ -542,7 +604,108 @@ namespace ProductionSystem.Forms } } - })); + })); + //if (M249.Val != "0.000" && M249.Val != "10.000") + //{ + // /*获取步序名称================2023-11-7注释===================================*/ + // //decimal.TryParse(M249.Val, out var result); + // //var intResult = Convert.ToInt32(result); + // //var stepName = EnumHelper.GetEnumDescription((StepEnum)intResult); + // /*获取步序名称===================================================*/ + + // float.TryParse(val, out float floatVal); + // // 把数据新增到每一个数组里,并指定最大3000个数,再多就覆盖之前的 + // switch (testValPoint?.Key) + // { + // case "M1"://进口压力 + // SoftBasic.AddArrayData(ref Program.Times, new DateTime[] { DateTime.Now }, 3000); + // SoftBasic.AddArrayData(ref Program.InPressData, new float[] { floatVal }, 3000); + // break; + // case "M2"://出口压力 + // SoftBasic.AddArrayData(ref Program.OutPressData, new float[] { floatVal }, 3000); + // break; + // case "M3"://罐压力 + // SoftBasic.AddArrayData(ref Program.GastankPressData, new float[] { floatVal }, 3000); + // break; + // case "M4"://电压值 + // SoftBasic.AddArrayData(ref Program.VoltageData, new float[] { floatVal }, 3000); + // break; + // case "M5"://电流值 + // SoftBasic.AddArrayData(ref Program.CurrentData, new float[] { floatVal }, 3000); + // break; + // case "M9"://X轴震动值 + // SoftBasic.AddArrayData(ref Program.XVibrateData, new float[] { floatVal }, 3000); + // break; + // case "M10"://Y轴振动值 + // SoftBasic.AddArrayData(ref Program.YVibrateData, new float[] { floatVal }, 3000); + // break; + // case "M11"://Z轴振动值 + // SoftBasic.AddArrayData(ref Program.ZVibrateData, new float[] { floatVal }, 3000); + // break; + // case "M12"://噪音 + // SoftBasic.AddArrayData(ref Program.NoiseData, new float[] { floatVal }, 3000); + // break; + // default: + // break; + // } + + // #region 2023-11-7注释 曲线区域用不到 + // //if (intResult != tempStepNum) + // //{ + // // tempStepNum = intResult; + // // stepChangeCount++; + // // switch (stepChangeCount) + // // { + // // case 1: + // // stepName1 = stepName; + // // sectionStartIndex1 = 0; + // // break; + // // case 2: + // // stepName2 = stepName; + // // sectionEndIndex1 = Program.InPressData.Length; + // // sectionStartIndex2 = Program.InPressData.Length + 1; + // // break; + // // case 3: + // // stepName3 = stepName; + // // sectionEndIndex2 = Program.InPressData.Length; + // // sectionStartIndex3 = Program.InPressData.Length + 1; + // // break; + // // case 4: + // // stepName4 = stepName; + // // sectionEndIndex3 = Program.InPressData.Length; + // // sectionStartIndex4 = Program.InPressData.Length + 1; + // // break; + // // case 5: + // // stepName5 = stepName; + // // sectionEndIndex4 = Program.InPressData.Length; + // // sectionStartIndex5 = Program.InPressData.Length + 1; + // // break; + // // case 6: + // // stepName6 = stepName; + // // sectionEndIndex5 = Program.InPressData.Length; + // // sectionStartIndex6 = Program.InPressData.Length + 1; + // // break; + // // case 7: + // // stepName7 = stepName; + // // sectionEndIndex6 = Program.InPressData.Length; + // // sectionStartIndex7 = Program.InPressData.Length + 1; + // // break; + // // case 8: + // // stepName8 = stepName; + // // sectionEndIndex7 = Program.InPressData.Length; + // // sectionStartIndex8 = Program.InPressData.Length + 1; + // // break; + // // case 9: + // // stepName9 = stepName; + // // sectionEndIndex8 = Program.InPressData.Length; + // // sectionStartIndex9 = Program.InPressData.Length + 1; + // // break; + // // default: + // // break; + // // } + // //} + // #endregion + //} } } } @@ -569,16 +732,15 @@ namespace ProductionSystem.Forms EditonType editonType; while (!cancellationTokenSource.IsCancellationRequested && middleIsCanRound) { - middleIsCanRound = false; - Step1(); - continue; - middleIsCanRound = true; - if (!Program.canSaveDb) { continue; } - + middleIsCanRound = false; + + Step1(); + return; + Thread.Sleep(Program.ReadPlcRate); var d1300Value = GetPlcValue("D1300"); @@ -632,9 +794,14 @@ namespace ProductionSystem.Forms if (d1304Value.ToDouble().ToInt() == 1) { Step3(); + + } + //高压 改成第四部 + + var d1312 = GetPlcValue("D1312"); // d1312 = "1"; if (d1312.ToDouble().ToInt() == 1) @@ -682,18 +849,28 @@ namespace ProductionSystem.Forms // var writeResult = OmronHelper.WriteToPlc(point.DataType, point.Address, $"{0}"); // } + + + //if (d1308.ToDouble().ToInt()==0) //{ // var point = Program.CommandPointKeyValues.FirstOrDefault(m => m.Key == "D1358"); // var writeResult = OmronHelper.WriteToPlc(point.DataType, point.Address, $"{0}"); //} + + + + + //if (d1310.ToDouble().ToInt() == 0) //{ // var point = Program.CommandPointKeyValues.FirstOrDefault(m => m.Key == "D1360"); // var writeResult = OmronHelper.WriteToPlc(point.DataType, point.Address, $"{0}"); //} - + + + var d1314 = GetPlcValue("D1314"); // d1314 = "1"; if (d1314.ToDouble().ToInt() ==1) @@ -702,17 +879,30 @@ namespace ProductionSystem.Forms } + //if (d1314.ToDouble().ToInt() == 0) //{ // var point = Program.CommandPointKeyValues.FirstOrDefault(m => m.Key == "D1917"); // var writeResult = OmronHelper.WriteToPlc(point.DataType, point.Address, $"{0}"); //} + + + + + //if (d1312.ToDouble().ToInt() ==0) //{ // var point = Program.CommandPointKeyValues.FirstOrDefault(m => m.Key == "D1362"); // var writeResult = OmronHelper.WriteToPlc(point.DataType, point.Address, $"{0}"); //}' + + + + + + + middleIsCanRound = true; } } @@ -726,99 +916,93 @@ namespace ProductionSystem.Forms return plcTiaoMa; } + private void Step1() { + + TmTool.SiTong(ModeTypeEnum.BZ1_DB, 1); + TmTool.SiTong(ModeTypeEnum.BZ1_DB, 2); - T_Product_Step step=new T_Product_Step - { - StepName = "BZ1_DB", - ProductType = Program.ProductType - }; + T_Product_Step step=new T_Product_Step + { + StepName = "BZ1_DB", + ProductType = Program.ProductType + }; + // + // + // + // step.ProductBarcode = GetCode(); + // + // + // + var model = paraConfigService.GetParaTargetVal(ModeTypeEnum.BZ1_DB, Program.ProductType); + // + // //四通1 + // var stf1= model.STF1; + // int val = stf1.TargetVal.ToDouble().ToInt(); + // SitongTool sitongTool = new SitongTool(stf1.Com,val); + // var si1 = sitongTool.ToAction(); + // sitongTool.Dispose(); + // + // step.Id = Guid.NewGuid().ToString("N"); + // step.ReturnValue = sitongTool.Val; + // step.WriteValue = val.ToString(); + // step.CreateTime = DateTime.Now; + // step.EquipmentName = "FKSTF1ZT_DB"; + // + // stepService.AddProductStep(step); + + + //四通2 + // var stf2 = model.STF2; + // sitongTool = new SitongTool(stf2.Com, stf2.TargetVal.ToDouble().ToInt()); + // var si2 = sitongTool.ToAction(); + // sitongTool.Dispose(); + // + // step.Id = Guid.NewGuid().ToString("N"); + // step.ReturnValue = sitongTool.Val; + // step.WriteValue = val.ToString(); + // step.CreateTime = DateTime.Now; + // + // step.EquipmentName = "FKSTF2ZT_DB"; + // stepService.AddProductStep(step); - step.ProductBarcode = GetCode(); - var model = paraConfigService.GetParaTargetVal(ModeTypeEnum.BZ1_DB, Program.ProductType); - Stopwatch stopwatch = new Stopwatch(); + //// lin 1 com10 + ////1 调试成功 + + //电子膨胀阀 + + var pzf1 = model.PZF1; + var val = pzf1.TargetVal.ToDouble().ToInt(); + ExvTool exv = new ExvTool(pzf1.Com,val); + var exv1 = exv.ToAction(); - // 开始计时 - stopwatch.Start(); - - //四通1 - var stf1= model.STF1; - int val = stf1.TargetVal.ToDouble().ToInt(); - val = 3; - SitongTool sitongTool = new SitongTool(stf1.Com,val); - var si1 = sitongTool.ToAction(); - sitongTool.Dispose(); - - stopwatch.Stop(); - var miao = stopwatch.Elapsed.TotalSeconds; - step.Id = Guid.NewGuid().ToString("N"); - step.ReturnValue = sitongTool.Val; + step.ReturnValue = exv.Val; step.WriteValue = val.ToString(); step.CreateTime = DateTime.Now; - step.EquipmentName = "FKSTF1ZT_DB"; - step.Ms = miao.ToString(CultureInfo.InvariantCulture); + + step.EquipmentName = "DZPZF1_DB"; stepService.AddProductStep(step); - - stopwatch.Restart(); - // //四通2 - var stf2 = model.STF2; - sitongTool = new SitongTool(stf2.Com, stf2.TargetVal.ToDouble().ToInt()); - // var si2 = sitongTool.ToAction(); - sitongTool.Dispose(); + //水泵1 + + var sb1 = model.SB1; + val = sb1.TargetVal.ToDouble().ToInt(); + UxTool uxTool = new UxTool(sb1.Com,val); + + + var ya= uxTool.ToAction(); + step.Id = Guid.NewGuid().ToString("N"); - step.ReturnValue = sitongTool.Val; - step.WriteValue = val.ToString(); + step.ReturnValue = uxTool.Val; + step.WriteValue = uxTool.Write; step.CreateTime = DateTime.Now; - step.EquipmentName = "FKSTF2ZT_DB"; - step.Ms = miao.ToString(CultureInfo.InvariantCulture); + step.EquipmentName = "SB1ZS_DB"; stepService.AddProductStep(step); - stopwatch.Stop(); - miao = stopwatch.Elapsed.TotalSeconds; - - var ss = miao; - // - // - // //// lin 1 com10 - ////1 调试成功 - // - // //电子膨胀阀 - // - // var pzf1 = model.PZF1; - // val = pzf1.TargetVal.ToDouble().ToInt(); - // ExvTool exv = new ExvTool(pzf1.Com,val); - // var exv1 = exv.ToAction(); - // - // step.Id = Guid.NewGuid().ToString("N"); - // step.ReturnValue = exv.Val; - // step.WriteValue = val.ToString(); - // step.CreateTime = DateTime.Now; - // - // step.EquipmentName = "DZPZF1_DB"; - // stepService.AddProductStep(step); - // - // - // //水泵1 - // - // var sb1 = model.SB1; - // val = sb1.TargetVal.ToDouble().ToInt(); - // UxTool uxTool = new UxTool(sb1.Com,val); - // - // - // var ya= uxTool.ToAction(); - // - // step.Id = Guid.NewGuid().ToString("N"); - // step.ReturnValue = uxTool.Val; - // step.WriteValue = uxTool.Write; - // step.CreateTime = DateTime.Now; - // step.EquipmentName = "SB1ZS_DB"; - // stepService.AddProductStep(step); - //D1350 @@ -858,57 +1042,58 @@ namespace ProductionSystem.Forms stepService.AddProductStep(step); - // //四通2 - // var stf2 = model.STF2; - // sitongTool = new SitongTool(stf2.Com, stf2.TargetVal.ToDouble().ToInt()); - // var si2 = sitongTool.ToAction(); - // - // step.Id = Guid.NewGuid().ToString("N"); - // step.ReturnValue = sitongTool.Val; - // step.WriteValue = val.ToString(); - // step.CreateTime = DateTime.Now; - // - // step.EquipmentName = "FKSTF2ZT_DB"; - // stepService.AddProductStep(step); - // - // - // //// lin 1 com10 - // ////1 调试成功 - // - // //电子膨胀阀 - // - // var pzf1 = model.PZF1; - // val = pzf1.TargetVal.ToDouble().ToInt(); - // ExvTool exv = new ExvTool(pzf1.Com, val); - // var exv1 = exv.ToAction(); - // - // step.Id = Guid.NewGuid().ToString("N"); - // step.ReturnValue = exv.Val; - // step.WriteValue = val.ToString(); - // step.CreateTime = DateTime.Now; - // - // step.EquipmentName = "DZPZF1_DB"; - // stepService.AddProductStep(step); - // - // - // //水泵1 - // - // var sb1 = model.SB1; - // val = sb1.TargetVal.ToDouble().ToInt(); - // UxTool uxTool = new UxTool(sb1.Com, val); - // - // - // var ya = uxTool.ToAction(); - // - // step.Id = Guid.NewGuid().ToString("N"); - // step.ReturnValue = uxTool.Val; - // step.WriteValue = uxTool.Write; - // step.CreateTime = DateTime.Now; - // step.EquipmentName = "SB1ZS_DB"; - // stepService.AddProductStep(step); - // + //四通2 + var stf2 = model.STF2; + sitongTool = new SitongTool(stf2.Com, stf2.TargetVal.ToDouble().ToInt()); + var si2 = sitongTool.ToAction(); + + step.Id = Guid.NewGuid().ToString("N"); + step.ReturnValue = sitongTool.Val; + step.WriteValue = val.ToString(); + step.CreateTime = DateTime.Now; + + step.EquipmentName = "FKSTF2ZT_DB"; + stepService.AddProductStep(step); + + + //// lin 1 com10 + ////1 调试成功 + + //电子膨胀阀 + + var pzf1 = model.PZF1; + val = pzf1.TargetVal.ToDouble().ToInt(); + ExvTool exv = new ExvTool(pzf1.Com, val); + var exv1 = exv.ToAction(); + + step.Id = Guid.NewGuid().ToString("N"); + step.ReturnValue = exv.Val; + step.WriteValue = val.ToString(); + step.CreateTime = DateTime.Now; + + step.EquipmentName = "DZPZF1_DB"; + stepService.AddProductStep(step); + + + //水泵1 + + var sb1 = model.SB1; + val = sb1.TargetVal.ToDouble().ToInt(); + UxTool uxTool = new UxTool(sb1.Com, val); + + + var ya = uxTool.ToAction(); + + step.Id = Guid.NewGuid().ToString("N"); + step.ReturnValue = uxTool.Val; + step.WriteValue = uxTool.Write; + step.CreateTime = DateTime.Now; + step.EquipmentName = "SB1ZS_DB"; + stepService.AddProductStep(step); + //D1350 + var point = Program.CommandPointKeyValues.FirstOrDefault(m => m.Key == "D1362"); var writeResult = OmronHelper.WriteToPlc(point.DataType, point.Address, $"{1}"); } @@ -924,10 +1109,16 @@ namespace ProductionSystem.Forms var sb1 = model.SB1; UxTool uxTool = new UxTool(sb1.Com,0); uxTool.ToAction(); + + + + var point = Program.CommandPointKeyValues.FirstOrDefault(m => m.Key == "D1350"); var writeResult = OmronHelper.WriteToPlc(point.DataType, point.Address, $"{0}"); } + + private void Step2() { diff --git a/ProductionSystem/ProductionSystem.csproj b/ProductionSystem/ProductionSystem.csproj index 0578b9f..0701f51 100644 --- a/ProductionSystem/ProductionSystem.csproj +++ b/ProductionSystem/ProductionSystem.csproj @@ -424,6 +424,7 @@ + diff --git a/ProductionSystem/Untils/Tool/TmTool.cs b/ProductionSystem/Untils/Tool/TmTool.cs new file mode 100644 index 0000000..6ed4943 --- /dev/null +++ b/ProductionSystem/Untils/Tool/TmTool.cs @@ -0,0 +1,58 @@ +using System; +using System.Linq; +using Custom.Communication.Framework.MyPlc; +using ProductionSystem_Model.DbModel; +using ProductionSystem_Model.Enum; +using ProductionSystem_Model.ViewModel.Response.Para; +using ProductionSystem_Service; + +namespace ProductionSystem.Untils.Tool +{ + public class TmTool + { + + static ParaConfigService paraConfigService=new ParaConfigService(); + static ProductStepService stepService = new ProductStepService(); + private static PointKeyValue M248 = Program.CommandPointKeyValues.FirstOrDefault(m => m.Key == "D670"); + private static string GetCode() + { + var readM248 = OmronHelper.GetPlcVal(M248.DataType, M248.Address); + string plcTiaoMa = readM248.val.ToString().Replace("\r", "").Replace("\n", ""); + return plcTiaoMa; + } + + public static bool SiTong(ModeTypeEnum modeTypeEnum,int no) + { + + T_Product_Step step=new T_Product_Step + { + StepName = modeTypeEnum.ToString(), + ProductType = Program.ProductType + }; + var model = paraConfigService.GetParaTargetVal(modeTypeEnum, Program.ProductType); + + //四通1 + var stf1= model.STF1; + string eqName = "FKSTF1ZT_DB"; + if (no > 1) + { + stf1 = model.STF2; + eqName = "FKSTF2ZT_DB"; + } + int val = stf1.TargetVal.ToDouble().ToInt(); + SitongTool sitongTool = new SitongTool(stf1.Com,val); + var si1 = sitongTool.ToAction(); + sitongTool.Dispose(); + + step.Id = Guid.NewGuid().ToString("N"); + step.ReturnValue = sitongTool.Val; + step.WriteValue = val.ToString(); + step.CreateTime = DateTime.Now; + step.EquipmentName = eqName; + + stepService.AddProductStep(step); + + return si1; + } + } +} \ No newline at end of file