You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
lj_plc/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/AutoControl/PlcAutoWriteHelper.cs

976 lines
35 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using DataBlockHelper.DBHelpers;
using DataBlockHelper.Entity.DB2104Entity;
using Mesnac.Action.ChemicalWeighing.AutoControl.DB;
using Mesnac.Action.ChemicalWeighing.AutoControl.Entity;
using Mesnac.Action.ChemicalWeighing.LjMixManager;
using Mesnac.Action.ChemicalWeighing.LjPlanning;
using Mesnac.Action.ChemicalWeighing.MinAn;
using Mesnac.Controls.Default;
using Mesnac.Core.Service;
using System;
using System.Collections.Generic;
using System.Windows.Forms;
using static Mesnac.Action.ChemicalWeighing.AutoControl.AutoLogHelper;
namespace Mesnac.Action.ChemicalWeighing.AutoControl
{
public static class PlcAutoWriteHelper
{
/// <summary>
/// 干混公差控制
/// </summary>
private static int TFlag = 0;
#region 湿混糊化下传
public static void GelWetDownload(MCTextBoxEntity TextE, MCComboBoxEntity ComboE, MCRadioButtonEntity RadioE)
{
int b1 = Convert.ToInt32(ComboE.ChooseMaterial1.MCValue.ToString());
int b2 = Convert.ToInt32(ComboE.ChooseMaterial2.MCValue.ToString());
short bin1 = (short)StockMaterrialDbHelp.GetCodeById(b1);
short bin2 = (short)StockMaterrialDbHelp.GetCodeById(b2);
float MatTol1 = Convert.ToSingle(TextE.MaterialTolerance1.MCValue.ToString());
float MatTol2 = Convert.ToSingle(TextE.MaterialTolerance2.MCValue.ToString());
float MatWei1 = Convert.ToSingle(TextE.MaterialWeight1.MCValue.ToString());
float MatWei2 = Convert.ToSingle(TextE.MaterialWeight2.MCValue.ToString());
float GelSpeed = Convert.ToSingle(TextE.GelSpeedSet.MCValue.ToString());
float GelPosA = Convert.ToSingle(TextE.GelPosTimeA.MCValue.ToString());
float GelNagB = Convert.ToSingle(TextE.GelNagTimeB.MCValue.ToString());
short GelPosC = Convert.ToInt16(TextE.GelPosTimeC.MCValue.ToString());
short GelWater = Convert.ToInt16(TextE.GelWaterTime.MCValue.ToString());
short GelWait = Convert.ToInt16(TextE.GelWaitTime.MCValue.ToString());
short GelCloseHeat = Convert.ToInt16(TextE.GelCloseHeatTime.MCValue.ToString());
float GelDelayTime = Convert.ToSingle(TextE.GelOutDelayTime.MCValue.ToString());
if (b2 == -1)
{
if (MatTol1 < 0.1)
{
MessageBox.Show("公差不能小于0.1");
return;
}
}
else
{
if (MatTol1 < 0.1 || MatTol2 < 0.1)
{
MessageBox.Show("公差不能小于0.1");
return;
}
}
if(GelSpeed > 50)
{
MessageBox.Show("速度不能大于五十!");
return;
}
List<RecipePlcView> recipes = new List<RecipePlcView>();
RecipePlcView recipe1 = new RecipePlcView()
{
Bin = bin1,
Set = MatWei1,
Tolerance = MatTol1,
};
RecipePlcView recipe2 = new RecipePlcView()
{
Bin = bin2,
Set = MatWei2,
Tolerance = MatTol2,
};
recipes.Add(recipe1);
recipes.Add(recipe2);
List<Step> steps = new List<Step>();
Step step1 = new Step()
{
MixCode = 1,
MixSpeed = GelSpeed
};
Step step2 = new Step()
{
MixCode = 2,
};
Step step3 = new Step()
{
MixCode = 3,
MixTime = GelPosC,
MixTemp = GelPosA,
MixSpeed = GelNagB
};
Step step4 = new Step()
{
MixCode = 4,
};
Step step5 = new Step()
{
MixCode = 5,
MixTime = GelWater
};
Step step6 = new Step()
{
MixCode = 6,
};
Step step7 = new Step()
{
MixCode = 5,
MixTime = GelWait
};
Step step8 = new Step()
{
MixCode = 7,
MixTime = GelCloseHeat,
MixTemp = GelDelayTime
};
Step step9 = new Step();
steps.Add(step1);
steps.Add(step2);
steps.Add(step3);
steps.Add(step4);
steps.Add(step5);
steps.Add(step6);
steps.Add(step7);
steps.Add(step8);
steps.Add(step9);
steps.Add(step9);
float WetDryWei = Convert.ToSingle(TextE.WetDryWeight.MCValue.ToString());
short WetMix = Convert.ToInt16(TextE.WetMixTime.MCValue.ToString());
short WetOutDelay = Convert.ToInt16(TextE.WetOutDelayTime.MCValue.ToString());
List<MixStep> mixSteps = new List<MixStep>();
MixStep mixStep1 = new MixStep()
{
MixCode = 1,
};
MixStep mixStep2 = new MixStep()
{
MixCode = 2,
SetValue = WetDryWei
};
MixStep mixStep3 = new MixStep()
{
MixCode = 3,
MixTime = WetMix
};
MixStep mixStep4 = new MixStep()
{
MixCode = 4,
};
MixStep mixStep5 = new MixStep()
{
MixCode = 5,
MixTime = WetOutDelay
};
MixStep mixStep6 = new MixStep();
mixSteps.Add(mixStep1);
mixSteps.Add(mixStep2);
mixSteps.Add(mixStep3);
mixSteps.Add(mixStep4);
mixSteps.Add(mixStep5);
mixSteps.Add(mixStep6);
mixSteps.Add(mixStep6);
mixSteps.Add(mixStep6);
mixSteps.Add(mixStep6);
mixSteps.Add(mixStep6);
List<DeviceMaterrial> materials = new List<DeviceMaterrial>();
DeviceMaterrial deviceMaterial1 = new DeviceMaterrial()
{
DeviceId = ControlsHelper.SingleSelect(RadioE),
MaterrialId = b1,
Type = 2,
Code = StockMaterrialDbHelp.GetCodeById(b1)
};
DeviceMaterrial deviceMaterial2 = new DeviceMaterrial()
{
DeviceId = ControlsHelper.SingleSelect(RadioE),
MaterrialId = b2,
Type = 2,
Code = StockMaterrialDbHelp.GetCodeById(b2)
};
materials.Add(deviceMaterial1);
materials.Add(deviceMaterial2);
switch (ControlsHelper.SingleSelect(RadioE))
{
case 1:
LjPlanningPlcHelp.DownG1Recipe(recipes, steps);
LjPlanningPlcHelp.DownM1Recipe(mixSteps);
DeviceMaterrialService.Save(materials);
break;
case 2:
LjPlanningPlcHelp.DownG2Recipe(recipes, steps);
LjPlanningPlcHelp.DownM2Recipe(mixSteps);
DeviceMaterrialService.Save(materials);
break;
case 3:
LjPlanningPlcHelp.DownG3Recipe(recipes, steps);
LjPlanningPlcHelp.DownM3Recipe(mixSteps);
DeviceMaterrialService.Save(materials);
break;
case 4:
LjPlanningPlcHelp.DownG4Recipe(recipes, steps);
LjPlanningPlcHelp.DownM4Recipe(mixSteps);
DeviceMaterrialService.Save(materials);
break;
case 5:
LjPlanningPlcHelp.DownG5Recipe(recipes, steps);
LjPlanningPlcHelp.DownM5Recipe(mixSteps);
DeviceMaterrialService.Save(materials);
break;
case 6:
LjPlanningPlcHelp.DownG6Recipe(recipes, steps);
LjPlanningPlcHelp.DownM6Recipe(mixSteps);
DeviceMaterrialService.Save(materials);
break;
case 7:
LjPlanningPlcHelp.DownG7Recipe(recipes, steps);
LjPlanningPlcHelp.DownM7Recipe(mixSteps);
DeviceMaterrialService.Save(materials);
break;
case 8:
LjPlanningPlcHelp.DownG8Recipe(recipes, steps);
LjPlanningPlcHelp.DownM8Recipe(mixSteps);
DeviceMaterrialService.Save(materials);
break;
default:
MessageBox.Show("请选择一条产线!");
return;
}
GWlog(recipes, steps, mixSteps, RadioE);
//if (!GWComparePLC(recipes, steps, mixSteps, RadioE))
//{
// MessageBox.Show("湿混糊化产线下传数据不完整,请重新下传数据!");
//}
MessageBox.Show("数据下传成功!");
}
private static bool GWComparePLC(List<RecipePlcView> recipes, List<Step> steps, List<MixStep> mixSteps, MCRadioButtonEntity RadioE)
{
var getGelatG1 = LjPlanningPlcHelp.GetGelatG1;
var getWeterM1 = LjPlanningPlcHelp.GetWeterM1;
var getGelatG2 = LjPlanningPlcHelp.GetGelatG2;
var getWeterM2 = LjPlanningPlcHelp.GetWeterM2;
var getGelatG3 = LjPlanningPlcHelp.GetGelatG3;
var getWeterM3 = LjPlanningPlcHelp.GetWeterM3;
var getGelatG4 = LjPlanningPlcHelp.GetGelatG4;
var getWeterM4 = LjPlanningPlcHelp.GetWeterM4;
var getGelatG5 = LjPlanningPlcHelp.GetGelatG5;
var getWeterM5 = LjPlanningPlcHelp.GetWeterM5;
var getGelatG6 = LjPlanningPlcHelp.GetGelatG6;
var getWeterM6 = LjPlanningPlcHelp.GetWeterM6;
var getGelatG7 = LjPlanningPlcHelp.GetGelatG7;
var getWeterM7 = LjPlanningPlcHelp.GetWeterM7;
var getGelatG8 = LjPlanningPlcHelp.GetGelatG8;
var getWeterM8 = LjPlanningPlcHelp.GetWeterM8;
string j1 = ControlsHelper.JsonSerialize(recipes);
string j2 = ControlsHelper.JsonSerialize(steps);
string j3 = ControlsHelper.JsonSerialize(mixSteps);
switch (ControlsHelper.SingleSelect(RadioE))
{
case 1:
return j1 == ControlsHelper.JsonSerialize(getGelatG1.RecipePlcViews)
&& j2 == ControlsHelper.JsonSerialize(getGelatG1.RecipeSteps)
&& j3 == ControlsHelper.JsonSerialize(getWeterM1);
case 2:
return j1 == ControlsHelper.JsonSerialize(getGelatG2.RecipePlcViews)
&& j2 == ControlsHelper.JsonSerialize(getGelatG2.RecipeSteps)
&& j3 == ControlsHelper.JsonSerialize(getWeterM2);
case 3:
return j1 == ControlsHelper.JsonSerialize(getGelatG3.RecipePlcViews)
&& j2 == ControlsHelper.JsonSerialize(getGelatG3.RecipeSteps)
&& j3 == ControlsHelper.JsonSerialize(getWeterM3);
case 4:
return j1 == ControlsHelper.JsonSerialize(getGelatG4.RecipePlcViews)
&& j2 == ControlsHelper.JsonSerialize(getGelatG4.RecipeSteps)
&& j3 == ControlsHelper.JsonSerialize(getWeterM4);
case 5:
return j1 == ControlsHelper.JsonSerialize(getGelatG5.RecipePlcViews)
&& j2 == ControlsHelper.JsonSerialize(getGelatG5.RecipeSteps)
&& j3 == ControlsHelper.JsonSerialize(getWeterM5);
case 6:
return j1 == ControlsHelper.JsonSerialize(getGelatG6.RecipePlcViews)
&& j2 == ControlsHelper.JsonSerialize(getGelatG6.RecipeSteps)
&& j3 == ControlsHelper.JsonSerialize(getWeterM6);
case 7:
return j1 == ControlsHelper.JsonSerialize(getGelatG7.RecipePlcViews)
&& j2 == ControlsHelper.JsonSerialize(getGelatG7.RecipeSteps)
&& j3 == ControlsHelper.JsonSerialize(getWeterM7);
case 8:
return j1 == ControlsHelper.JsonSerialize(getGelatG8.RecipePlcViews)
&& j2 == ControlsHelper.JsonSerialize(getGelatG8.RecipeSteps)
&& j3 == ControlsHelper.JsonSerialize(getWeterM8);
default:
MessageBox.Show("未选择产线!");
return true;
}
}
#endregion
#region 干混下传
public static void DryDownload(MCTextBoxEntity TextE, MCComboBoxEntity ComboE, MCRadioButtonEntity RadioE)
{
List<RecipePlcView> recipes = new List<RecipePlcView>();
List<Step> steps = new List<Step>();
List<DeviceMaterrial> materials = new List<DeviceMaterrial>();
DryerGetValue(ComboE.DryM1, TextE.DryW1, TextE.DryT1, recipes, materials, RadioE);
DryerGetValue(ComboE.DryM2, TextE.DryW2, TextE.DryT2, recipes, materials, RadioE);
DryerGetValue(ComboE.DryM3, TextE.DryW3, TextE.DryT3, recipes, materials, RadioE);
DryerGetValue(ComboE.DryM4, TextE.DryW4, TextE.DryT4, recipes, materials, RadioE);
DryerGetValue(ComboE.DryM5, TextE.DryW5, TextE.DryT5, recipes, materials, RadioE);
DryerGetValue(ComboE.DryM6, TextE.DryW6, TextE.DryT6, recipes, materials, RadioE);
DryerGetValue(ComboE.DryM7, TextE.DryW7, TextE.DryT7, recipes, materials, RadioE);
DryerGetValue(ComboE.DryM8, TextE.DryW8, TextE.DryT8, recipes, materials, RadioE);
DryerGetValue(ComboE.DryM9, TextE.DryW9, TextE.DryT9, recipes, materials, RadioE);
DryerGetValue(ComboE.DryM10, TextE.DryW10, TextE.DryT10, recipes, materials, RadioE);
DryerGetValue(ComboE.DryM11, TextE.DryW11, TextE.DryT11, recipes, materials, RadioE);
DryerGetValue(ComboE.DryM12, TextE.DryW12, TextE.DryT12, recipes, materials, RadioE);
if (TFlag == 1)
{
MessageBox.Show("公差不能小于0.1");
TFlag = 0;
return;
}
short dryWaitTime = Convert.ToInt16(TextE.DryWaitTime.MCValue.ToString());
short dryOutDelayTime = Convert.ToInt16(TextE.DryOutDelayTime.MCValue.ToString());
float drySpeed1 = Convert.ToSingle(TextE.DrySpeed1.MCValue.ToString());
float drySpeed2 = Convert.ToSingle(TextE.DrySpeed2.MCValue.ToString());
float drySpeed3 = Convert.ToSingle(TextE.DrySpeed3.MCValue.ToString());
if (drySpeed1 > 50 || drySpeed2 > 50 || drySpeed3 > 50)
{
MessageBox.Show("速度值不能大于五十!");
return;
}
Step dryStep1 = new Step()
{
MixCode = 1,
MixSpeed = drySpeed1,
};
Step dryStep2 = new Step()
{
MixCode = 4,
MixTime = dryWaitTime,
MixSpeed = drySpeed2,
};
Step dryStep3 = new Step()
{
MixCode = 6,
MixTime = dryOutDelayTime,
MixSpeed = drySpeed3,
};
Step dryStep = new Step();
steps.Add(dryStep1);
steps.Add(dryStep2);
steps.Add(dryStep3);
steps.Add(dryStep);
steps.Add(dryStep);
steps.Add(dryStep);
steps.Add(dryStep);
steps.Add(dryStep);
steps.Add(dryStep);
steps.Add(dryStep);
switch (ControlsHelper.DrySelect(RadioE))
{
case 1:
LjPlanningPlcHelp.DownD1Recipe(recipes, steps);
DeviceMaterrialService.Save(materials);
break;
case 2:
LjPlanningPlcHelp.DownD2Recipe(recipes, steps);
DeviceMaterrialService.Save(materials);
break;
case 3:
LjPlanningPlcHelp.DownD3Recipe(recipes, steps);
DeviceMaterrialService.Save(materials);
break;
case 4:
LjPlanningPlcHelp.DownD4Recipe(recipes, steps);
DeviceMaterrialService.Save(materials);
break;
}
//if (!DYComparePLC(recipes, steps, RadioE))
//{
// MessageBox.Show("干混产线下传数据不完整,请重新下传数据!");
//}
MessageBox.Show("数据下传成功!");
}
private static bool DYComparePLC(List<RecipePlcView> recipes, List<Step> steps, MCRadioButtonEntity RadioE)
{
var getDryerD1 = LjPlanningPlcHelp.GetDryerD1;
var getDryerD2 = LjPlanningPlcHelp.GetDryerD2;
var getDryerD3 = LjPlanningPlcHelp.GetDryerD3;
var getDryerD4 = LjPlanningPlcHelp.GetDryerD4;
string j1 = ControlsHelper.JsonSerialize(recipes);
string j2 = ControlsHelper.JsonSerialize(steps);
switch (ControlsHelper.DrySelect(RadioE))
{
case 1:
return j1 == ControlsHelper.JsonSerialize(getDryerD1.RecipePlcViews)
&& j2 == ControlsHelper.JsonSerialize(getDryerD1.RecipeSteps);
case 2:
return j1 == ControlsHelper.JsonSerialize(getDryerD2.RecipePlcViews)
&& j2 == ControlsHelper.JsonSerialize(getDryerD2.RecipeSteps);
case 3:
return j1 == ControlsHelper.JsonSerialize(getDryerD3.RecipePlcViews)
&& j2 == ControlsHelper.JsonSerialize(getDryerD3.RecipeSteps);
case 4:
return j1 == ControlsHelper.JsonSerialize(getDryerD4.RecipePlcViews)
&& j2 == ControlsHelper.JsonSerialize(getDryerD4.RecipeSteps);
default:
MessageBox.Show("未选择产线!");
return true;
}
}
#endregion
#region 水称下传
public static void WaterDownload(MCTextBoxEntity TextE, MCComboBoxEntity ComboE)
{
WaterEntity HotA = new WaterEntity();
WaterEntity ColdA = new WaterEntity();
WaterEntity HotB = new WaterEntity();
WaterEntity ColdB = new WaterEntity();
float hotASet, hotBSet, coldASet, coldBSet, hotATol, hotBTol, coldATol, coldBTol;
float cADeviation; ushort cALeftOrRight;
float hADeviation; ushort hALeftOrRight;
float cBDeviation; ushort cBLeftOrRight;
float hBDeviation; ushort hBLeftOrRight;
if (float.TryParse(Convert.ToString(TextE.HotValueA.MCValue), out hotASet) &&
float.TryParse(Convert.ToString(TextE.HotToleranceA.MCValue), out hotATol) &&
float.TryParse(Convert.ToString(TextE.HotValueB.MCValue), out hotBSet) &&
float.TryParse(Convert.ToString(TextE.HotToleranceB.MCValue), out hotBTol) &&
float.TryParse(Convert.ToString(TextE.ColdValueA.MCValue), out coldASet) &&
float.TryParse(Convert.ToString(TextE.ColdToleranceA.MCValue), out coldATol) &&
float.TryParse(Convert.ToString(TextE.ColdValueB.MCValue), out coldBSet) &&
float.TryParse(Convert.ToString(TextE.ColdToleranceB.MCValue), out coldBTol)
&& float.TryParse(Convert.ToString(TextE.CADeviation.MCValue), out cADeviation)
&& float.TryParse(Convert.ToString(TextE.HADeviation.MCValue), out hADeviation)
&& float.TryParse(Convert.ToString(TextE.CBDeviation.MCValue), out cBDeviation)
&& float.TryParse(Convert.ToString(TextE.HBDeviation.MCValue), out hBDeviation)
)
{
HotA.Set = hotASet;
HotB.Set = hotBSet;
ColdA.Set = coldASet;
ColdB.Set = coldBSet;
HotA.Tolerance = hotATol;
HotB.Tolerance = hotBTol;
ColdA.Tolerance = coldATol;
ColdB.Tolerance = coldBTol;
HotA.differ = hADeviation;
HotB.differ = hBDeviation;
ColdA.differ = cADeviation;
ColdB.differ= cBDeviation;
HotA.stand = Convert.ToInt16(ComboE.HALeftOrRight.MCValue);
HotB.stand = Convert.ToInt16(ComboE.HBLeftOrRight.MCValue);
ColdA.stand = Convert.ToInt16(ComboE.CALeftOrRight.MCValue);
ColdB.stand = Convert.ToInt16(ComboE.CBLeftOrRight.MCValue);
Db2104WriteHelper.WriteAHostWater(HotA);
Db2104WriteHelper.WriteBHostWater(HotB);
Db2104WriteHelper.WriteAColWater(ColdA);
Db2104WriteHelper.WriteBColWater(ColdB);
MesnacServiceManager.Instance.LoggingService.Info("水称数据下发成功!");
MessageBox.Show("水称数据下发成功");
}
else
{
MesnacServiceManager.Instance.LoggingService.Info("输入数值的格式有误");
MessageBox.Show("输入数值的格式有误!");
return;
}
}
#endregion
#region 手动控制
#region 糊化锅手动下粉料
public static bool GelPowderDownload(MCRadioButtonEntity RadioE)
{
bool isReady;
switch (ControlsHelper.SingleSelect(RadioE))
{
case 1:
isReady = DB2105WriteHelper.WriteG1Pd();
break;
case 2:
isReady = DB2105WriteHelper.WriteG2Pd();
break;
case 3:
isReady = DB2105WriteHelper.WriteG3Pd();
break;
case 4:
isReady = DB2105WriteHelper.WriteG4Pd();
break;
case 5:
isReady = DB2105WriteHelper.WriteG5Pd();
break;
case 6:
isReady = DB2105WriteHelper.WriteG6Pd();
break;
case 7:
isReady = DB2105WriteHelper.WriteG7Pd();
break;
case 8:
isReady = DB2105WriteHelper.WriteG8Pd();
break;
default:
isReady = false;
MessageBox.Show("当前未选择产线!");
break;
}
return isReady;
}
#endregion
#region 糊化锅手动加冷水
public static bool GelColdWaterDownload(MCRadioButtonEntity RadioE)
{
bool isReady;
switch (ControlsHelper.SingleSelect(RadioE))
{
case 1:
isReady = DB2105WriteHelper.WriteG1Cw();
break;
case 2:
isReady = DB2105WriteHelper.WriteG2Cw();
break;
case 3:
isReady = DB2105WriteHelper.WriteG3Cw();
break;
case 4:
isReady = DB2105WriteHelper.WriteG4Cw();
break;
case 5:
isReady = DB2105WriteHelper.WriteG5Cw();
break;
case 6:
isReady = DB2105WriteHelper.WriteG6Cw();
break;
case 7:
isReady = DB2105WriteHelper.WriteG7Cw();
break;
case 8:
isReady = DB2105WriteHelper.WriteG8Cw();
break;
default:
isReady = false;
MessageBox.Show("当前未选择产线!");
break;
}
return isReady;
}
#endregion
#region 糊化锅手动加热水
public static bool GelHotWaterDownload(MCRadioButtonEntity RadioE)
{
bool isReady;
switch (ControlsHelper.SingleSelect(RadioE))
{
case 1:
isReady = DB2105WriteHelper.WriteG1Hw();
break;
case 2:
isReady = DB2105WriteHelper.WriteG2Hw();
break;
case 3:
isReady = DB2105WriteHelper.WriteG3Hw();
break;
case 4:
isReady = DB2105WriteHelper.WriteG4Hw();
break;
case 5:
isReady = DB2105WriteHelper.WriteG5Hw();
break;
case 6:
isReady = DB2105WriteHelper.WriteG6Hw();
break;
case 7:
isReady = DB2105WriteHelper.WriteG7Hw();
break;
case 8:
isReady = DB2105WriteHelper.WriteG8Hw();
break;
default:
isReady = false;
MessageBox.Show("当前未选择产线!");
break;
}
return isReady;
}
#endregion
#region 湿混机手动下糊化料
public static bool WetGelatDownload(MCRadioButtonEntity RadioE)
{
bool isReady;
switch (ControlsHelper.SingleSelect(RadioE))
{
case 1:
isReady = DB2105WriteHelper.WriteM1();
break;
case 2:
isReady = DB2105WriteHelper.WriteM2();
break;
case 3:
isReady = DB2105WriteHelper.WriteM3();
break;
case 4:
isReady = DB2105WriteHelper.WriteM4();
break;
case 5:
isReady = DB2105WriteHelper.WriteM5();
break;
case 6:
isReady = DB2105WriteHelper.WriteM6();
break;
case 7:
isReady = DB2105WriteHelper.WriteM7();
break;
case 8:
isReady = DB2105WriteHelper.WriteM8();
break;
default:
isReady = false;
MessageBox.Show("当前未选择产线!");
break;
}
return isReady;
}
#endregion
#region 湿混机手动下粉料
public static void WetGelatDownload(MCTextBoxEntity TextE, MCRadioButtonEntity RadioE)
{
float t = Convert.ToSingle(TextE.ManualTolerance.MCValue.ToString());
float w = Convert.ToSingle(TextE.ManualWeight.MCValue.ToString());
if (t < 0.1)
{
MessageBox.Show("公差不能小于0.1");
return;
}
SetValue value = new SetValue()
{
Value = w,
Toterance = t
};
switch (ControlsHelper.SingleSelect(RadioE))
{
case 1:
PowderDownSignel(MinAnPlc.Heir1, 1);
DB2105WriteHelper.WriteManScrewH1();
DB2105WriteHelper.WriteSetValueH1(value);
break;
case 2:
PowderDownSignel(MinAnPlc.Heir1, 1);
DB2105WriteHelper.WriteManScrewH2();
DB2105WriteHelper.WriteSetValueH1(value);
break;
case 3:
PowderDownSignel(MinAnPlc.Heir2, 2);
DB2105WriteHelper.WriteManScrewH3();
DB2105WriteHelper.WriteSetValueH2(value);
break;
case 4:
PowderDownSignel(MinAnPlc.Heir2, 2);
DB2105WriteHelper.WriteManScrewH4();
DB2105WriteHelper.WriteSetValueH2(value);
break;
case 5:
PowderDownSignel(MinAnPlc.Heir3, 3);
DB2105WriteHelper.WriteManScrewH5();
DB2105WriteHelper.WriteSetValueH3(value);
break;
case 6:
PowderDownSignel(MinAnPlc.Heir3, 3);
DB2105WriteHelper.WriteManScrewH6();
DB2105WriteHelper.WriteSetValueH3(value);
break;
case 7:
PowderDownSignel(MinAnPlc.Heir4, 4);
DB2105WriteHelper.WriteManScrewH7();
DB2105WriteHelper.WriteSetValueH4(value);
break;
case 8:
PowderDownSignel(MinAnPlc.Heir4, 4);
DB2105WriteHelper.WriteManScrewH8();
DB2105WriteHelper.WriteSetValueH4(value);
break;
default:
MessageBox.Show("当前未选择产线!");
return;
}
ManualWeightLog(w, t, RadioE);
}
#endregion
#endregion
#region 产线启停
#region 产线启动
public static void LineStart(MCRadioButtonEntity RadioE)
{
switch (ControlsHelper.SingleSelect(RadioE))
{
case 1:
DB2105WriteHelper.WriteStartJob1();
break;
case 2:
DB2105WriteHelper.WriteStartJob2();
break;
case 3:
DB2105WriteHelper.WriteStartJob3();
break;
case 4:
DB2105WriteHelper.WriteStartJob4();
break;
case 5:
DB2105WriteHelper.WriteStartJob5();
break;
case 6:
DB2105WriteHelper.WriteStartJob6();
break;
case 7:
DB2105WriteHelper.WriteStartJob7();
break;
case 8:
DB2105WriteHelper.WriteStartJob8();
break;
default:
MessageBox.Show("请选择一条产线!");
return;
}
SingleLog("产线启动", RadioE);
}
#endregion
#region 产线停止
public static void LineStop(MCRadioButtonEntity RadioE)
{
switch (ControlsHelper.SingleSelect(RadioE))
{
case 1:
DB2105WriteHelper.WriteStopJob1();
break;
case 2:
DB2105WriteHelper.WriteStopJob2();
break;
case 3:
DB2105WriteHelper.WriteStopJob3();
break;
case 4:
DB2105WriteHelper.WriteStopJob4();
break;
case 5:
DB2105WriteHelper.WriteStopJob5();
break;
case 6:
DB2105WriteHelper.WriteStopJob6();
break;
case 7:
DB2105WriteHelper.WriteStopJob7();
break;
case 8:
DB2105WriteHelper.WriteStopJob8();
break;
default:
MessageBox.Show("请选择一条产线!");
return;
}
SingleLog("产线停止", RadioE);
}
#endregion
#endregion
#region 维修模式
public static void RepairOnOff(MCLabelEntity LabelE, MCRadioButtonEntity RadioE)
{
if (LabelE.RepairState.MCValue.ToString() == "关")
{
if (MessageBox.Show("是否开启维修模式?", "维修模式确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
{
return;
}
Db3000Helper.WriteModel(ControlsHelper.SingleSelect(RadioE), true);
LabelE.RepairState.MCValue = "开";
SingleLog("维修模式开启", RadioE);
MessageBox.Show("维修模式已开启");
}
else
{
if (LabelE.RepairState.MCValue.ToString() == "开")
{
if (MessageBox.Show("是否关闭维修模式?", "维修模式确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
{
return;
}
Db3000Helper.WriteModel(ControlsHelper.SingleSelect(RadioE), false);
LabelE.RepairState.MCValue = "关";
SingleLog("维修模式关闭", RadioE);
MessageBox.Show("维修模式已关闭");
}
}
}
#endregion
#region 湿混机物料封装
/// <summary>
/// 干混机数据打包封装
/// </summary>
/// <param name="DryM">物料类型</param>
/// <param name="DryW">重量</param>
/// <param name="DryT">公差</param>
/// <param name="recipes">物料集合</param>
/// <param name="steps">步骤集合</param>
/// <param name="materials">数据库物料记录</param>
private static void DryerGetValue(MCCombobox DryM, MCTextBox DryW, MCTextBox DryT,
List<RecipePlcView> recipes, List<DeviceMaterrial> materials, MCRadioButtonEntity RadioE)
{
int b = Convert.ToInt32(DryM.MCValue.ToString());
short bin = (short)StockMaterrialDbHelp.GetCodeById(b);
float w = Convert.ToSingle(DryW.MCValue.ToString());
float t = Convert.ToSingle(DryT.MCValue.ToString());
if (b != -1 && t < 0.1)
{
TFlag = 1;
}
RecipePlcView recipe1 = new RecipePlcView()
{
Bin = bin,
Set = w,
Tolerance = t,
};
recipes.Add(recipe1);
DeviceMaterrial deviceMaterial1 = new DeviceMaterrial()
{
MaterrialId = b,
Type = 1,
Code = StockMaterrialDbHelp.GetCodeById(b)
};
materials.Add(deviceMaterial1);
}
#endregion
#region 上料提示封装
private static void PowderDownSignel(bool minanResult, int num)
{
if (minanResult)
{
DialogResult result = MessageBox.Show(num + "号罐正在上料", "温馨提示:", MessageBoxButtons.OK, MessageBoxIcon.Information);
if (result == DialogResult.OK)
{
return;
}
}
}
#endregion
}
}