master
nodyang 2 years ago
parent 0c97c41f7c
commit 485e125ed5

@ -21,6 +21,7 @@ namespace Mesnac.Action.ChemicalWeighing
#region 单例模式
private static BasePlcHelper _this = null;
public static BasePlcHelper Instance
{
get
@ -62,6 +63,7 @@ namespace Mesnac.Action.ChemicalWeighing
}
}
}
return null;
}
@ -93,6 +95,7 @@ namespace Mesnac.Action.ChemicalWeighing
{
return Mesnac.Equips.Factory.Instance.Read(equipName, block, start, len, out dataValue);
}
/// <summary>
/// 从PLC中读取原始数据
/// </summary>
@ -130,6 +133,7 @@ namespace Mesnac.Action.ChemicalWeighing
{
return Mesnac.Equips.Factory.Instance.ReadLastValue(dataName, out dataValue);
}
#endregion
#region 向PLC变量中写入值并不真正下传至PLC
@ -157,7 +161,8 @@ namespace Mesnac.Action.ChemicalWeighing
{
foreach (Mesnac.Equips.BaseInfo.Data data in group.Data.Values)
{
if (data.KeyName == equipKey || (!String.IsNullOrEmpty(data.RunName) && data.RunName == runName))
if (data.KeyName == equipKey ||
(!String.IsNullOrEmpty(data.RunName) && data.RunName == runName))
{
try
{
@ -174,6 +179,7 @@ namespace Mesnac.Action.ChemicalWeighing
}
}
}
//log.Append("]No Find");
return false;
}
@ -190,6 +196,7 @@ namespace Mesnac.Action.ChemicalWeighing
//}
}
}
/// <summary>
/// 向PLC变量中写入值并不真正下传至PLC
/// </summary>
@ -201,6 +208,7 @@ namespace Mesnac.Action.ChemicalWeighing
{
return PlcVarWrite(equipKey, string.Empty, shifting, dataValue);
}
/// <summary>
/// 向PLC变量中写入值并不真正下传至PLC
/// </summary>
@ -212,6 +220,7 @@ namespace Mesnac.Action.ChemicalWeighing
{
return PlcVarWriteByDataKey(dataKey.EquipKey, shifting, dataValue);
}
/// <summary>
/// 向PLC变量中写入值并不真正下传至PLC
/// </summary>
@ -236,7 +245,8 @@ namespace Mesnac.Action.ChemicalWeighing
/// <param name="dataValue"></param>
/// <param name="isOutFlag"></param>
/// <returns></returns>
private bool PlcWrite(string equipKey, string runName, int shifting, object[] dataValue, params bool[] isOutFlag)
private bool PlcWrite(string equipKey, string runName, int shifting, object[] dataValue,
params bool[] isOutFlag)
{
StringBuilder log = new StringBuilder();
try
@ -253,12 +263,14 @@ namespace Mesnac.Action.ChemicalWeighing
{
//if (data.KeyName == equipKey || data.RunName == runName)
//if (data.KeyName == equipKey)
if (data.KeyName == equipKey || (!String.IsNullOrEmpty(data.RunName) && data.RunName == runName))
if (data.KeyName == equipKey ||
(!String.IsNullOrEmpty(data.RunName) && data.RunName == runName))
{
int block = 0;
if (int.TryParse(group.Block.ToString(), out block))
{
log.Append("]shifting=[").Append((group.Start + data.Start + shifting).ToString());
log.Append("]shifting=[")
.Append((group.Start + data.Start + shifting).ToString());
log.Append("]dataLen=[").Append(dataValue.Length);
log.Append("]Find Result=");
foreach (object v in dataValue)
@ -270,7 +282,8 @@ namespace Mesnac.Action.ChemicalWeighing
if (data.Method.StartsWith("Default_Bit"))
{
string parameters = data.Method.Replace("Default_Bit(", String.Empty).Replace(")", String.Empty);
string parameters = data.Method.Replace("Default_Bit(", String.Empty)
.Replace(")", String.Empty);
string[] ps = parameters.Split(new char[] { ',' });
int startIndex = 0;
int length = 1;
@ -278,7 +291,8 @@ namespace Mesnac.Action.ChemicalWeighing
{
if (!int.TryParse(ps[0], out startIndex))
{
log.Append("[false](Convert The Bit method first parameter to int failure!)");
log.Append(
"[false](Convert The Bit method first parameter to int failure!)");
return false;
}
}
@ -286,15 +300,19 @@ namespace Mesnac.Action.ChemicalWeighing
{
if (!int.TryParse(ps[0], out startIndex))
{
log.Append("[false](Convert The Bit method first parameter to int failure!)");
log.Append(
"[false](Convert The Bit method first parameter to int failure!)");
return false;
}
if (!int.TryParse(ps[1], out length))
{
log.Append("[false](Convert The Bit method second parameter to int failure!)");
log.Append(
"[false](Convert The Bit method second parameter to int failure!)");
return false;
}
}
object originalValue = 0; //保存原始值
if (data.Len == 1) //如果len=1则为Int16类型
{
@ -302,11 +320,14 @@ namespace Mesnac.Action.ChemicalWeighing
if (PlcRead(data.KeyName, out buff))
{
originalValue = buff[0];
originalValue = Mesnac.Basic.DataProcessor.Swap(short.Parse(originalValue.ToString()));
originalValue =
Mesnac.Basic.DataProcessor.Swap(
short.Parse(originalValue.ToString()));
}
else
{
ICSharpCode.Core.LoggingService<BasePlcHelper>.Warn(String.Format("在进行二进制写入时读取设备变量[{0}]失败!", data.KeyName));
ICSharpCode.Core.LoggingService<BasePlcHelper>.Warn(
String.Format("在进行二进制写入时读取设备变量[{0}]失败!", data.KeyName));
}
}
else if (data.Len == 2) //如果len=2则为Int32类型
@ -325,15 +346,22 @@ namespace Mesnac.Action.ChemicalWeighing
}
else
{
ICSharpCode.Core.LoggingService<BasePlcHelper>.Warn(String.Format("在进行二进制写入时读取设备变量[{0}]失败!", data.KeyName));
ICSharpCode.Core.LoggingService<BasePlcHelper>.Warn(
String.Format("在进行二进制写入时读取设备变量[{0}]失败!", data.KeyName));
}
}
object[] newValue = null;
if (data.Len == 1)
{
newValue = new object[] { Mesnac.Basic.DataProcessor.SetBitValue(originalValue, startIndex, length, dataValue[0]) };
newValue = new object[]
{
Mesnac.Basic.DataProcessor.SetBitValue(originalValue, startIndex,
length, dataValue[0])
};
//从PLC中读取到的值进行高低位转换
int int16 = Mesnac.Basic.DataProcessor.Swap(short.Parse(newValue[0].ToString()));
int int16 = Mesnac.Basic.DataProcessor.Swap(
short.Parse(newValue[0].ToString()));
newValue = new object[] { int16 };
////解析为二进制数组
@ -374,17 +402,21 @@ namespace Mesnac.Action.ChemicalWeighing
}
else if (data.Len == 2)
{
object objNewValue = Mesnac.Basic.DataProcessor.SetBitValue32(originalValue, startIndex, length, dataValue[0]);
object objNewValue =
Mesnac.Basic.DataProcessor.SetBitValue32(originalValue, startIndex,
length, dataValue[0]);
int intNewValue = Convert.ToInt32(objNewValue);
if (equip.Main.Brand == Mesnac.Basic.PlcBrand.Siemens)
{
newValue = Mesnac.Basic.DataProcessor.ToSiemensPLCDataArray(intNewValue);
newValue =
Mesnac.Basic.DataProcessor.ToSiemensPLCDataArray(intNewValue);
}
else
{
newValue = Mesnac.Basic.DataProcessor.ToPLCDataArray(intNewValue);
}
}
if (equip.Write(block, group.Start + data.Start + shifting, newValue))
{
log.Append("[true]");
@ -415,6 +447,7 @@ namespace Mesnac.Action.ChemicalWeighing
}
}
}
log.Append("]No Find");
return false;
}
@ -434,30 +467,37 @@ namespace Mesnac.Action.ChemicalWeighing
}
}
}
public bool PlcWriteByRunName(string runName, int shifting, object[] dataValue)
{
return PlcWrite(string.Empty, runName, shifting, dataValue);
}
public bool PlcWriteByRunName(string runName, object[] dataValue)
{
return PlcWriteByRunName(runName, 0, dataValue);
}
public bool PlcWriteByEquipKey(string equipKey, int shifting, object[] dataValue)
{
return PlcWrite(equipKey, string.Empty, shifting, dataValue);
}
public bool PlcWriteByEquipKey(string equipKey, object[] dataValue)
{
return PlcWriteByEquipKey(equipKey, 0, dataValue);
}
public bool PlcWriteByDataKey(DataKeyValue dataKey, int shifting, object[] dataValue)
{
return PlcWriteByEquipKey(dataKey.EquipKey, shifting, dataValue);
}
public bool PlcWriteByDataKey(DataKeyValue dataKey, object[] dataValue)
{
return PlcWriteByDataKey(dataKey, 0, dataValue);
}
public bool PlcWriteByDataKey(DataKeyValue dataKey, string dataValue)
{
object[] buff = null;
@ -466,6 +506,7 @@ namespace Mesnac.Action.ChemicalWeighing
{
buff[i] = 0;
}
object[] planIDData = Mesnac.Basic.DataProcessor.ToPLCDataArray(dataValue);
if (planIDData.Length <= buff.Length)
{
@ -475,18 +516,22 @@ namespace Mesnac.Action.ChemicalWeighing
{
Array.Copy(planIDData, buff, buff.Length);
}
return PlcWriteByDataKey(dataKey, buff);
}
//增加是否输出日志
public bool PlcWriteByEquipKey(string equipKey, int shifting, object[] dataValue, bool isOutLog)
{
return PlcWrite(equipKey, string.Empty, shifting, dataValue, isOutLog);
}
//增加是否输出日志
public bool PlcWriteByDataKey(DataKeyValue dataKey, int shifting, object[] dataValue, bool isOutLog)
{
return PlcWriteByEquipKey(dataKey.EquipKey, shifting, dataValue, isOutLog);
}
//增加是否输出日志
public bool PlcWriteByDataKey(DataKeyValue dataKey, object[] dataValue, bool isOutLog)
{
@ -506,7 +551,9 @@ namespace Mesnac.Action.ChemicalWeighing
{
equipName = dataKey.EquipKey.Split(new char[] { '.' })[0];
}
if (Factory.Instance.AllEquips[equipName].Main.Brand.Equals("Siemens", StringComparison.CurrentCultureIgnoreCase))
if (Factory.Instance.AllEquips[equipName].Main.Brand
.Equals("Siemens", StringComparison.CurrentCultureIgnoreCase))
{
return PlcWriteByDataKey(dataKey, 0, Mesnac.Basic.DataProcessor.ToSiemensPLCDataArray(dataValue));
}
@ -515,6 +562,7 @@ namespace Mesnac.Action.ChemicalWeighing
return PlcWriteByDataKey(dataKey, 0, Mesnac.Basic.DataProcessor.ToPLCDataArray(dataValue));
}
}
/// <summary>
/// 向Plc变量写入float浮点数下传Plc
/// </summary>
@ -529,15 +577,19 @@ namespace Mesnac.Action.ChemicalWeighing
{
equipName = dataKey.EquipKey.Split(new char[] { '.' })[0];
}
if (Factory.Instance.AllEquips[equipName].Main.Brand.Equals("Siemens", StringComparison.CurrentCultureIgnoreCase))
if (Factory.Instance.AllEquips[equipName].Main.Brand
.Equals("Siemens", StringComparison.CurrentCultureIgnoreCase))
{
return PlcWriteByDataKey(dataKey, 0, Mesnac.Basic.DataProcessor.ToSiemensPLCDataArray(dataValue), isOutLog);
return PlcWriteByDataKey(dataKey, 0, Mesnac.Basic.DataProcessor.ToSiemensPLCDataArray(dataValue),
isOutLog);
}
else
{
return PlcWriteByDataKey(dataKey, 0, Mesnac.Basic.DataProcessor.ToPLCDataArray(dataValue), isOutLog);
}
}
#endregion
#region PptPlcData表写入操作
@ -556,21 +608,27 @@ namespace Mesnac.Action.ChemicalWeighing
{
dataKey = equipKey;
}
if (string.IsNullOrWhiteSpace(equipKey))
{
equipKey = dataKey;
}
DbHelper dbHelper = Mesnac.Basic.DataSourceFactory.Instance.GetDbHelper(Mesnac.Basic.DataSourceFactory.MCDbType.Local);
DbHelper dbHelper =
Mesnac.Basic.DataSourceFactory.Instance.GetDbHelper(Mesnac.Basic.DataSourceFactory.MCDbType.Local);
if (dbHelper == null)
{
throw new Exception(Mesnac.Basic.LanguageHelper.DataBaseConnectError);
}
dbHelper.CommandType = System.Data.CommandType.Text;
dbHelper.ClearParameter();
#region 支持SQL2000
StringBuilder sqlstr = new StringBuilder("INSERT INTO PptPlcData (PlcSchemaField, EquipRunName, PlcDataValue, PlcDataIndex, PlcDownState) ");
StringBuilder sqlstr =
new StringBuilder(
"INSERT INTO PptPlcData (PlcSchemaField, EquipRunName, PlcDataValue, PlcDataIndex, PlcDownState) ");
for (int i = 0; i < dataValue.Length; i++)
{
object obj = dataValue[i];
@ -578,20 +636,26 @@ namespace Mesnac.Action.ChemicalWeighing
{
obj = string.Empty;
}
string key1 = "@PlcSchemaField" + i.ToString();
string key2 = "@EquipRunName" + i.ToString();
string key3 = "@PlcDataValue" + i.ToString();
string key4 = "@PlcDataIndex" + i.ToString();
sqlstr.Append(" (select ").Append(key1).Append(" as PlcSchemaField").Append(",").Append(key2).Append(" as EquipRunName").Append(",").Append(key3).Append(" as PlcDataValue").Append(",").Append(key4).Append(" as PlcDataIndex").Append(",0 as PlcDownState)");
sqlstr.Append(" (select ").Append(key1).Append(" as PlcSchemaField").Append(",").Append(key2)
.Append(" as EquipRunName").Append(",").Append(key3).Append(" as PlcDataValue").Append(",")
.Append(key4).Append(" as PlcDataIndex").Append(",0 as PlcDownState)");
if (i < dataValue.Length - 1)
{
sqlstr.AppendLine("union all");
}
if (obj is PlcDataInfo)
{
PlcDataInfo data = obj as PlcDataInfo;
dbHelper.AddParameter(key1, string.IsNullOrWhiteSpace(data.PlcSchemaField) ? dataKey : data.PlcSchemaField);
dbHelper.AddParameter(key2, string.IsNullOrWhiteSpace(data.EquipRunName) ? equipKey : data.EquipRunName);
dbHelper.AddParameter(key1,
string.IsNullOrWhiteSpace(data.PlcSchemaField) ? dataKey : data.PlcSchemaField);
dbHelper.AddParameter(key2,
string.IsNullOrWhiteSpace(data.EquipRunName) ? equipKey : data.EquipRunName);
dbHelper.AddParameter(key3, data.PlcDataValue == null ? 0 : data.PlcDataValue);
dbHelper.AddParameter(key4, (shifting + i).ToString());
}
@ -610,18 +674,22 @@ namespace Mesnac.Action.ChemicalWeighing
dbHelper.ExecuteNonQuery();
return true;
}
public bool DataWrite(string dataKey, string equipKey, object[] dataValue)
{
return DataWrite(dataKey, equipKey, 0, dataValue);
}
public bool DataWrite(string equipKey, object[] dataValue)
{
return DataWrite(equipKey, equipKey, 0, dataValue);
}
public bool DataWrite(DataKeyValue dataKey, int shifting, object[] dataValue)
{
return DataWrite(dataKey.Name, dataKey.EquipRunName, shifting, dataValue);
}
public bool DataWrite(DataKeyValue dataKey, object[] dataValue)
{
return DataWrite(dataKey, 0, dataValue);
@ -718,12 +786,14 @@ namespace Mesnac.Action.ChemicalWeighing
/// <summary>
/// 小料HMI配方查询请求信息
/// </summary>
public DataKeyValue ChemicalWeighing_HMI_Request_Recipe_Name_ShakeHand = new DataKeyValue("HMI_Request_Recipe_Name_ShakeHand");
public DataKeyValue ChemicalWeighing_HMI_Request_Recipe_Name_ShakeHand =
new DataKeyValue("HMI_Request_Recipe_Name_ShakeHand");
/// <summary>
/// PCHMI配方查询请求信息响应
/// </summary>
public DataKeyValue ChemicalWeighing_HMI_Request_Recipe_Name_FeedBack = new DataKeyValue("HMI_Request_Recipe_Name_FeedBack");
public DataKeyValue ChemicalWeighing_HMI_Request_Recipe_Name_FeedBack =
new DataKeyValue("HMI_Request_Recipe_Name_FeedBack");
/// <summary>
/// 读取到的机台号
@ -742,12 +812,14 @@ namespace Mesnac.Action.ChemicalWeighing
/// <summary>
/// 小料HMI配方添加计划请求信息
/// </summary>
public DataKeyValue ChemicalWeighing_HMI_Confirm_Recipe_ShakeHand = new DataKeyValue("HMI_Confirm_Recipe_ShakeHand");
public DataKeyValue ChemicalWeighing_HMI_Confirm_Recipe_ShakeHand =
new DataKeyValue("HMI_Confirm_Recipe_ShakeHand");
/// <summary>
/// PCHMI配方添加计划请求信息响应
/// </summary>
public DataKeyValue ChemicalWeighing_HMI_Confirm_Recipe_FeedBack = new DataKeyValue("HMI_Confirm_Recipe_FeedBack");
public DataKeyValue ChemicalWeighing_HMI_Confirm_Recipe_FeedBack =
new DataKeyValue("HMI_Confirm_Recipe_FeedBack");
/// <summary>
/// 读取到的机台号
@ -771,17 +843,20 @@ namespace Mesnac.Action.ChemicalWeighing
/// <summary>
/// PLCHMI修改计划请求信息
/// </summary>
public DataKeyValue ChemicalWeighing_HMI_Request_Recipe_Change_ShakeHand = new DataKeyValue("HMI_Request_Recipe_Change_ShakeHand");
public DataKeyValue ChemicalWeighing_HMI_Request_Recipe_Change_ShakeHand =
new DataKeyValue("HMI_Request_Recipe_Change_ShakeHand");
/// <summary>
/// PCHMI修改计划请求信息响应
/// </summary>
public DataKeyValue ChemicalWeighing_HMI_Request_Recipe_Change_FeedBack = new DataKeyValue("HMI_Request_Recipe_Change_FeedBack");
public DataKeyValue ChemicalWeighing_HMI_Request_Recipe_Change_FeedBack =
new DataKeyValue("HMI_Request_Recipe_Change_FeedBack");
/// <summary>
/// 命令0默认 1刷新 2上移 3下移 4修改车数 5删除计划
/// </summary>
public DataKeyValue ChemicalWeighing_HMI_Request_Recipe_Change_Command = new DataKeyValue("HMI_Request_Recipe_Change_Command");
public DataKeyValue ChemicalWeighing_HMI_Request_Recipe_Change_Command =
new DataKeyValue("HMI_Request_Recipe_Change_Command");
/// <summary>
/// 读取到的机台号
@ -805,7 +880,8 @@ namespace Mesnac.Action.ChemicalWeighing
/// <summary>
/// PLC存盘请求
/// </summary>
public DataKeyValue ChemicalWeighing_PLC_Request_Save_ShakeHand = new DataKeyValue("Plc_Request_Save_ShakeHand");
public DataKeyValue ChemicalWeighing_PLC_Request_Save_ShakeHand =
new DataKeyValue("Plc_Request_Save_ShakeHand");
/// <summary>
/// PC存盘反馈信息
@ -816,12 +892,14 @@ namespace Mesnac.Action.ChemicalWeighing
/// <summary>
/// 报表基本信息
/// </summary>
public DataKeyValue ChemicalWeighing_Report_Update_Block_BaseInf = new DataKeyValue("Report_Update_Block_BaseInf");
public DataKeyValue ChemicalWeighing_Report_Update_Block_BaseInf =
new DataKeyValue("Report_Update_Block_BaseInf");
/// <summary>
/// 物料报表信息
/// </summary>
public DataKeyValue ChemicalWeighing_Report_Update_Block_Material_Report = new DataKeyValue("Report_Update_Block_Material_Report");
public DataKeyValue ChemicalWeighing_Report_Update_Block_Material_Report =
new DataKeyValue("Report_Update_Block_Material_Report");
#endregion
@ -856,7 +934,8 @@ namespace Mesnac.Action.ChemicalWeighing
/// <summary>
/// 条码开门握手信号
/// </summary>
public DataKeyValue ChemicalWeighing_Open_door_Command_ShakeHand = new DataKeyValue("Open_door_Command_ShakeHand");
public DataKeyValue ChemicalWeighing_Open_door_Command_ShakeHand =
new DataKeyValue("Open_door_Command_ShakeHand");
#endregion
@ -879,6 +958,7 @@ namespace Mesnac.Action.ChemicalWeighing
#endregion
#region 冠合上位机计划下传
public List<Entity.DataKeyValue> dataKeyValues = new List<Entity.DataKeyValue>();
@ -887,18 +967,22 @@ namespace Mesnac.Action.ChemicalWeighing
/// 下位机在线
/// </summary>
public DataKeyValue GH_PC_ConfirmOnline = new DataKeyValue("Sign_Confirm_ConfirmOnline"); //下位机在线
/// <summary>
/// 下位机遥控
/// </summary>
public DataKeyValue GH_PC_ConfirmRemote = new DataKeyValue("Sign_Confirm_ConfirmRemote"); //下位机遥控
/// <summary>
/// 下位机准备好
/// </summary>
public DataKeyValue GH_PC_ConfirmReady = new DataKeyValue("Sign_Confirm_ConfirmReady"); //下位机准备好
/// <summary>
/// 下位机配方运行
/// </summary>
public DataKeyValue GH_PC_ConfirmRun = new DataKeyValue("Sign_Confirm_ConfirmRun"); //下位机配方运行
/// <summary>
/// 调试模式允许
/// </summary>
@ -906,18 +990,26 @@ namespace Mesnac.Action.ChemicalWeighing
//配方编号、名称
public DataKeyValue ChemicalWeighing_PC_RecipeCode = new DataKeyValue("Recipe_Code");
public DataKeyValue ChemicalWeighing_PC_RecipeName = new DataKeyValue("recipe_name");
//设定车数、格数、层数
public DataKeyValue ChemicalWeighing_PC_SetCarNumber = new DataKeyValue("set_carnumber");
public DataKeyValue ChemicalWeighing_PC_SetGeNumber = new DataKeyValue("set_genumber");
public DataKeyValue ChemicalWeighing_PC_SetLineNumber = new DataKeyValue("set_linenumber");
//混料速度
public DataKeyValue ChemicalWeighing_PC_Hlsd1 = new DataKeyValue("hlsd1");
public DataKeyValue ChemicalWeighing_PC_Hlsd2 = new DataKeyValue("hlsd2");
public DataKeyValue ChemicalWeighing_PC_Hlsd3 = new DataKeyValue("hlsd3");
//进料时间、混料时间
public DataKeyValue ChemicalWeighing_PC_Jlsj = new DataKeyValue("jl_sj");
public DataKeyValue ChemicalWeighing_PC_Hlsj = new DataKeyValue("hl_sj");
//VCC、GFA、树脂进料、进料误差
public DataKeyValue ChemicalWeighing_PC_VCCJl = new DataKeyValue("vcc_jl");
public DataKeyValue ChemicalWeighing_PC_VCCJlWc = new DataKeyValue("vcc_jlwc");
@ -925,7 +1017,7 @@ namespace Mesnac.Action.ChemicalWeighing
public DataKeyValue ChemicalWeighing_PC_GFAJlWc = new DataKeyValue("gfa_jlwc");
public DataKeyValue ChemicalWeighing_PC_SZJl = new DataKeyValue("sz_jl");
public DataKeyValue ChemicalWeighing_PC_SZJlWc = new DataKeyValue("sz_jlwc");
public DataKeyValue ChemicalWeighing_PC_VCC_2th= new DataKeyValue("vcc2th_jl");
public DataKeyValue ChemicalWeighing_PC_VCC_2th = new DataKeyValue("vcc2th_jl");
public DataKeyValue ChemicalWeighing_PC_GFA_2th = new DataKeyValue("GFA2th_jl");
//配方下传完成信号
@ -944,14 +1036,17 @@ namespace Mesnac.Action.ChemicalWeighing
#region 冠合存盘数据
/// <summary>
/// 存盘数据准备好
/// </summary>
public DataKeyValue GH_PC_ConfirmSDReady = new DataKeyValue("Sign_Confirm_ConfirmSDReady");
/// <summary>
/// 配方编号
/// </summary>
public DataKeyValue GH_PC_SaveCode = new DataKeyValue("SaveCode");
public DataKeyValue GH_PC_SaveFinishedNum = new DataKeyValue("SaveFinishedNum");
public DataKeyValue GH_PC_SaveRow = new DataKeyValue("SaveRow");
public DataKeyValue GH_PC_SaveCol = new DataKeyValue("SaveCol");
@ -1002,6 +1097,7 @@ namespace Mesnac.Action.ChemicalWeighing
/// 压送秤A气源压力 dbw12
/// </summary>
public DataKeyValue mainPress_V1_LowLimit { get; set; }
public DataKeyValue mainPress_V1_HighLimit { get; set; }
public DataKeyValue mainPress_V1_Alarm { get; set; }
@ -1189,5 +1285,305 @@ namespace Mesnac.Action.ChemicalWeighing
public DataKeyValue PR2PCP03_B12_LowLimit { get; set; }
public DataKeyValue PR2PCP03_B12_HighLimit { get; set; }
public DataKeyValue PR2PCP03_B12_Alarm { get; set; }
public DataKeyValue Hopper1_ActWeight { get; set; }
public DataKeyValue Hopper1_HighWeight { get; set; }
public DataKeyValue Hopper1_LowWeight { get; set; }
public DataKeyValue Hopper1_HighLevel { get; set; }
public DataKeyValue Hopper1_LowLevel { get; set; }
public DataKeyValue Hopper2_ActWeight { get; set; }
public DataKeyValue Hopper2_HighWeight { get; set; }
public DataKeyValue Hopper2_LowWeight { get; set; }
public DataKeyValue Hopper2_HighLevel { get; set; }
public DataKeyValue Hopper2_LowLevel { get; set; }
public DataKeyValue Hopper3_ActWeight { get; set; }
public DataKeyValue Hopper3_HighWeight { get; set; }
public DataKeyValue Hopper3_LowWeight { get; set; }
public DataKeyValue Hopper3_HighLevel { get; set; }
public DataKeyValue Hopper3_LowLevel { get; set; }
public DataKeyValue Hopper4_ActWeight { get; set; }
public DataKeyValue Hopper4_HighWeight { get; set; }
public DataKeyValue Hopper4_LowWeight { get; set; }
public DataKeyValue Hopper4_HighLevel { get; set; }
public DataKeyValue Hopper4_LowLevel { get; set; }
public DataKeyValue Vessel1_ActWeight { get; set; }
public DataKeyValue Vessel1_HighWeight { get; set; }
public DataKeyValue Vessel1_LowWeight { get; set; }
public DataKeyValue Vessel1_HighLevel { get; set; }
public DataKeyValue Vessel1_LowLevel { get; set; }
public DataKeyValue Vessel2_ActWeight { get; set; }
public DataKeyValue Vessel2_HighWeight { get; set; }
public DataKeyValue Vessel2_LowWeight { get; set; }
public DataKeyValue Vessel2_HighLevel { get; set; }
public DataKeyValue Vessel2_LowLevel { get; set; }
public DataKeyValue Vessel3_ActWeight { get; set; }
public DataKeyValue Vessel3_HighWeight { get; set; }
public DataKeyValue Vessel3_LowWeight { get; set; }
public DataKeyValue Vessel3_HighLevel { get; set; }
public DataKeyValue Vessel3_LowLevel { get; set; }
public DataKeyValue Vessel4_ActWeight { get; set; }
public DataKeyValue Vessel4_HighWeight { get; set; }
public DataKeyValue Vessel4_LowWeight { get; set; }
public DataKeyValue Vessel4_HighLevel { get; set; }
public DataKeyValue Vessel4_LowLevel { get; set; }
public DataKeyValue Vessel5_ActWeight { get; set; }
public DataKeyValue Vessel5_HighWeight { get; set; }
public DataKeyValue Vessel5_LowWeight { get; set; }
public DataKeyValue Vessel5_HighLevel { get; set; }
public DataKeyValue Vessel5_LowLevel { get; set; }
public DataKeyValue WScale1_ActWeight { get; set; }
public DataKeyValue WScale1_HighWeight { get; set; }
public DataKeyValue WScale1_LowWeight { get; set; }
public DataKeyValue WScale1_HighLevel { get; set; }
public DataKeyValue WScale1_LowLevel { get; set; }
public DataKeyValue WScale2_ActWeight { get; set; }
public DataKeyValue WScale2_HighWeight { get; set; }
public DataKeyValue WScale2_LowWeight { get; set; }
public DataKeyValue WScale2_HighLevel { get; set; }
public DataKeyValue WScale2_LowLevel { get; set; }
public DataKeyValue WScale3_ActWeight { get; set; }
public DataKeyValue WScale3_HighWeight { get; set; }
public DataKeyValue WScale3_LowWeight { get; set; }
public DataKeyValue WScale3_HighLevel { get; set; }
public DataKeyValue WScale3_LowLevel { get; set; }
public DataKeyValue WScale4_ActWeight { get; set; }
public DataKeyValue WScale4_HighWeight { get; set; }
public DataKeyValue WScale4_LowWeight { get; set; }
public DataKeyValue WScale4_HighLevel { get; set; }
public DataKeyValue WScale4_LowLevel { get; set; }
public DataKeyValue conveyV1_PV { get; set; }
public DataKeyValue conveyV1_SV { get; set; }
public DataKeyValue purgeV1_PV { get; set; }
public DataKeyValue purgeV1_SV { get; set; }
public DataKeyValue conveyV2_PV { get; set; }
public DataKeyValue conveyV2_SV { get; set; }
public DataKeyValue purgeV2_PV { get; set; }
public DataKeyValue purgeV2_SV { get; set; }
public DataKeyValue conveyV3_PV { get; set; }
public DataKeyValue conveyV3_SV { get; set; }
public DataKeyValue purgeV3_PV { get; set; }
public DataKeyValue purgeV3_SV { get; set; }
public DataKeyValue conveyV4_PV { get; set; }
public DataKeyValue conveyV4_SV { get; set; }
public DataKeyValue purgeV4_PV { get; set; }
public DataKeyValue purgeV4_SV { get; set; }
public DataKeyValue conveyV5_SV { get; set; }
public DataKeyValue purgeV5_PV { get; set; }
public DataKeyValue purgeV5_SV { get; set; }
public DataKeyValue weightPraSilo0_HighSpeed { get; set; }
public DataKeyValue weightPraSilo0_LowSpeed { get; set; }
public DataKeyValue weightPraSilo0_WeightSlow { get; set; }
public DataKeyValue weightPraSilo0_Precut { get; set; }
public DataKeyValue weightPraSilo0_JogTime { get; set; }
public DataKeyValue weightPraSilo1_HighSpeed { get; set; }
public DataKeyValue weightPraSilo1_LowSpeed { get; set; }
public DataKeyValue weightPraSilo1_WeightSlow { get; set; }
public DataKeyValue weightPraSilo1_Precut { get; set; }
public DataKeyValue weightPraSilo1_JogTime { get; set; }
public DataKeyValue weightPraSilo2_HighSpeed { get; set; }
public DataKeyValue weightPraSilo2_LowSpeed { get; set; }
public DataKeyValue weightPraSilo2_WeightSlow { get; set; }
public DataKeyValue weightPraSilo2_Precut { get; set; }
public DataKeyValue weightPraSilo2_JogTime { get; set; }
public DataKeyValue weightPraSilo3_HighSpeed { get; set; }
public DataKeyValue weightPraSilo3_LowSpeed { get; set; }
public DataKeyValue weightPraSilo3_WeightSlow { get; set; }
public DataKeyValue weightPraSilo3_Precut { get; set; }
public DataKeyValue weightPraSilo3_JogTime { get; set; }
public DataKeyValue weightPraSilo4_HighSpeed { get; set; }
public DataKeyValue weightPraSilo4_LowSpeed { get; set; }
public DataKeyValue weightPraSilo4_WeightSlow { get; set; }
public DataKeyValue weightPraSilo4_Precut { get; set; }
public DataKeyValue weightPraSilo4_JogTime { get; set; }
public DataKeyValue weightPraSilo5_HighSpeed { get; set; }
public DataKeyValue weightPraSilo5_LowSpeed { get; set; }
public DataKeyValue weightPraSilo5_WeightSlow { get; set; }
public DataKeyValue weightPraSilo5_Precut { get; set; }
public DataKeyValue weightPraSilo5_JogTime { get; set; }
public DataKeyValue weightPraSilo6_HighSpeed { get; set; }
public DataKeyValue weightPraSilo6_LowSpeed { get; set; }
public DataKeyValue weightPraSilo6_WeightSlow { get; set; }
public DataKeyValue weightPraSilo6_Precut { get; set; }
public DataKeyValue weightPraSilo6_JogTime { get; set; }
public DataKeyValue weightPraSilo7_HighSpeed { get; set; }
public DataKeyValue weightPraSilo7_LowSpeed { get; set; }
public DataKeyValue weightPraSilo7_WeightSlow { get; set; }
public DataKeyValue weightPraSilo7_Precut { get; set; }
public DataKeyValue weightPraSilo7_JogTime { get; set; }
public DataKeyValue weightPraSilo8_HighSpeed { get; set; }
public DataKeyValue weightPraSilo8_LowSpeed { get; set; }
public DataKeyValue weightPraSilo8_WeightSlow { get; set; }
public DataKeyValue weightPraSilo8_Precut { get; set; }
public DataKeyValue weightPraSilo8_JogTime { get; set; }
public DataKeyValue weightPraSilo9_HighSpeed { get; set; }
public DataKeyValue weightPraSilo9_LowSpeed { get; set; }
public DataKeyValue weightPraSilo9_WeightSlow { get; set; }
public DataKeyValue weightPraSilo9_Precut { get; set; }
public DataKeyValue weightPraSilo9_JogTime { get; set; }
public DataKeyValue weightPraSilo10_HighSpeed { get; set; }
public DataKeyValue weightPraSilo10_LowSpeed { get; set; }
public DataKeyValue weightPraSilo10_WeightSlow { get; set; }
public DataKeyValue weightPraSilo10_Precut { get; set; }
public DataKeyValue weightPraSilo10_JogTime { get; set; }
public DataKeyValue weightPraSilo11_HighSpeed { get; set; }
public DataKeyValue weightPraSilo11_LowSpeed { get; set; }
public DataKeyValue weightPraSilo11_WeightSlow { get; set; }
public DataKeyValue weightPraSilo11_Precut { get; set; }
public DataKeyValue weightPraSilo11_JogTime { get; set; }
public DataKeyValue weightPraSilo12_HighSpeed { get; set; }
public DataKeyValue weightPraSilo12_LowSpeed { get; set; }
public DataKeyValue weightPraSilo12_WeightSlow { get; set; }
public DataKeyValue weightPraSilo12_Precut { get; set; }
public DataKeyValue weightPraSilo12_JogTime { get; set; }
public DataKeyValue weightPraSilo13_HighSpeed { get; set; }
public DataKeyValue weightPraSilo13_LowSpeed { get; set; }
public DataKeyValue weightPraSilo13_WeightSlow { get; set; }
public DataKeyValue weightPraSilo13_Precut { get; set; }
public DataKeyValue weightPraSilo13_JogTime { get; set; }
public DataKeyValue weightPraSilo14_HighSpeed { get; set; }
public DataKeyValue weightPraSilo14_LowSpeed { get; set; }
public DataKeyValue weightPraSilo14_WeightSlow { get; set; }
public DataKeyValue weightPraSilo14_Precut { get; set; }
public DataKeyValue weightPraSilo14_JogTime { get; set; }
public DataKeyValue Daybin0_HighSpeed { get; set; }
public DataKeyValue Daybin0_LowSpeed { get; set; }
public DataKeyValue Daybin0_WeightSlow { get; set; }
public DataKeyValue Daybin0_Precut { get; set; }
public DataKeyValue Daybin0_JogTime { get; set; }
public DataKeyValue Daybin1_HighSpeed { get; set; }
public DataKeyValue Daybin1_LowSpeed { get; set; }
public DataKeyValue Daybin1_WeightSlow { get; set; }
public DataKeyValue Daybin1_Precut { get; set; }
public DataKeyValue Daybin1_JogTime { get; set; }
public DataKeyValue Daybin2_HighSpeed { get; set; }
public DataKeyValue Daybin2_LowSpeed { get; set; }
public DataKeyValue Daybin2_WeightSlow { get; set; }
public DataKeyValue Daybin2_Precut { get; set; }
public DataKeyValue Daybin2_JogTime { get; set; }
public DataKeyValue Daybin3_HighSpeed { get; set; }
public DataKeyValue Daybin3_LowSpeed { get; set; }
public DataKeyValue Daybin3_WeightSlow { get; set; }
public DataKeyValue Daybin3_Precut { get; set; }
public DataKeyValue Daybin3_JogTime { get; set; }
public DataKeyValue Daybin4_HighSpeed { get; set; }
public DataKeyValue Daybin4_LowSpeed { get; set; }
public DataKeyValue Daybin4_WeightSlow { get; set; }
public DataKeyValue Daybin4_Precut { get; set; }
public DataKeyValue Daybin4_JogTime { get; set; }
public DataKeyValue Daybin5_HighSpeed { get; set; }
public DataKeyValue Daybin5_LowSpeed { get; set; }
public DataKeyValue Daybin5_WeightSlow { get; set; }
public DataKeyValue Daybin5_Precut { get; set; }
public DataKeyValue Daybin5_JogTime { get; set; }
public DataKeyValue Daybin6_HighSpeed { get; set; }
public DataKeyValue Daybin6_LowSpeed { get; set; }
public DataKeyValue Daybin6_WeightSlow { get; set; }
public DataKeyValue Daybin6_Precut { get; set; }
public DataKeyValue Daybin6_JogTime { get; set; }
public DataKeyValue Daybin7_HighSpeed { get; set; }
public DataKeyValue Daybin7_LowSpeed { get; set; }
public DataKeyValue Daybin7_WeightSlow { get; set; }
public DataKeyValue Daybin7_Precut { get; set; }
public DataKeyValue Daybin7_JogTime { get; set; }
public DataKeyValue Daybin8_HighSpeed { get; set; }
public DataKeyValue Daybin8_LowSpeed { get; set; }
public DataKeyValue Daybin8_WeightSlow { get; set; }
public DataKeyValue Daybin8_Precut { get; set; }
public DataKeyValue Daybin8_JogTime { get; set; }
public DataKeyValue Daybin9_HighSpeed { get; set; }
public DataKeyValue Daybin9_LowSpeed { get; set; }
public DataKeyValue Daybin9_WeightSlow { get; set; }
public DataKeyValue Daybin9_Precut { get; set; }
public DataKeyValue Daybin9_JogTime { get; set; }
public DataKeyValue Daybin10_HighSpeed { get; set; }
public DataKeyValue Daybin10_LowSpeed { get; set; }
public DataKeyValue Daybin10_WeightSlow { get; set; }
public DataKeyValue Daybin10_Precut { get; set; }
public DataKeyValue Daybin10_JogTime { get; set; }
public DataKeyValue Daybin11_HighSpeed { get; set; }
public DataKeyValue Daybin11_LowSpeed { get; set; }
public DataKeyValue Daybin11_WeightSlow { get; set; }
public DataKeyValue Daybin11_Precut { get; set; }
public DataKeyValue Daybin11_JogTime { get; set; }
public DataKeyValue Hoper0_HighSpeed { get; set; }
public DataKeyValue Hoper0_LowSpeed { get; set; }
public DataKeyValue Hoper0_WeightSlow { get; set; }
public DataKeyValue Hoper0_Precut { get; set; }
public DataKeyValue Hoper0_JogTime { get; set; }
public DataKeyValue Hoper1_HighSpeed { get; set; }
public DataKeyValue Hoper1_LowSpeed { get; set; }
public DataKeyValue Hoper1_WeightSlow { get; set; }
public DataKeyValue Hoper1_Precut { get; set; }
public DataKeyValue Hoper1_JogTime { get; set; }
public DataKeyValue Hoper2_HighSpeed { get; set; }
public DataKeyValue Hoper2_LowSpeed { get; set; }
public DataKeyValue Hoper2_WeightSlow { get; set; }
public DataKeyValue Hoper2_Precut { get; set; }
public DataKeyValue Hoper2_JogTime { get; set; }
public DataKeyValue Hoper3_HighSpeed { get; set; }
public DataKeyValue Hoper3_LowSpeed { get; set; }
public DataKeyValue Hoper3_WeightSlow { get; set; }
public DataKeyValue Hoper3_Precut { get; set; }
public DataKeyValue Hoper3_JogTime { get; set; }
public DataKeyValue Water0_HighSpeed { get; set; }
public DataKeyValue Water0_LowSpeed { get; set; }
public DataKeyValue Water0_WeightSlow { get; set; }
public DataKeyValue Water0_Precut { get; set; }
public DataKeyValue Water0_JogTime { get; set; }
public DataKeyValue Water1_HighSpeed { get; set; }
public DataKeyValue Water1_LowSpeed { get; set; }
public DataKeyValue Water1_WeightSlow { get; set; }
public DataKeyValue Water1_Precut { get; set; }
public DataKeyValue Water1_JogTime { get; set; }
public DataKeyValue Water2_HighSpeed { get; set; }
public DataKeyValue Water2_LowSpeed { get; set; }
public DataKeyValue Water2_WeightSlow { get; set; }
public DataKeyValue Water2_Precut { get; set; }
public DataKeyValue Water2_JogTime { get; set; }
public DataKeyValue Water3_HighSpeed { get; set; }
public DataKeyValue Water3_LowSpeed { get; set; }
public DataKeyValue Water3_WeightSlow { get; set; }
public DataKeyValue Water3_Precut { get; set; }
public DataKeyValue Water3_JogTime { get; set; }
}
}

@ -0,0 +1,14 @@
namespace Mesnac.Action.ChemicalWeighing.LjMetage
{
public class MetageView
{
public int Id { get; set; }
public string Name { get; set; }
public float HighSpeed { get; set; }
public float LowSpeed { get; set; }
public float WeightSlow { get; set; }
public float Precut { get; set; }
public int JogTime { get; set; }
}
}

@ -28,6 +28,7 @@ namespace Mesnac.Action.ChemicalWeighing.LjPressure
{
var basePlcHelper = GetPlcHelper;
PressureSettingView view = new PressureSettingView();
view.Id = 1;
view.LowLimit = basePlcHelper.mainPress_V1_LowLimit.NowValue.ToFloat();
view.HighLimit = basePlcHelper.mainPress_V1_HighLimit.NowValue.ToFloat();
view.Alarm = basePlcHelper.mainPress_V1_LowLimit.NowValue.ToInt();
@ -53,6 +54,7 @@ namespace Mesnac.Action.ChemicalWeighing.LjPressure
{
var basePlcHelper = GetPlcHelper;
PressureSettingView view = new PressureSettingView();
view.Id = 2;
view.LowLimit = basePlcHelper.topPres_V1_LowLimit.NowValue.ToFloat();
view.HighLimit = basePlcHelper.topPres_V1_HighLimit.NowValue.ToFloat();
view.Alarm = basePlcHelper.topPres_V1_Alarm.NowValue.ToInt();
@ -76,6 +78,7 @@ namespace Mesnac.Action.ChemicalWeighing.LjPressure
{
var basePlcHelper = GetPlcHelper;
PressureSettingView view = new PressureSettingView();
view.Id = 3;
view.LowLimit = basePlcHelper.linePres_V1_LowLimit.NowValue.ToFloat();
view.HighLimit = basePlcHelper.linePres_V1_HighLimit.NowValue.ToFloat();
view.Alarm = basePlcHelper.linePres_V1_Alarm.NowValue.ToInt();
@ -99,6 +102,7 @@ namespace Mesnac.Action.ChemicalWeighing.LjPressure
{
var basePlcHelper = GetPlcHelper;
PressureSettingView view = new PressureSettingView();
view.Id = 4;
view.LowLimit = basePlcHelper.mainPress_V2_LowLimit.NowValue.ToFloat();
view.HighLimit = basePlcHelper.mainPress_V2_HighLimit.NowValue.ToFloat();
view.Alarm = basePlcHelper.mainPress_V2_Alarm.NowValue.ToInt();
@ -122,6 +126,7 @@ namespace Mesnac.Action.ChemicalWeighing.LjPressure
{
var basePlcHelper = GetPlcHelper;
PressureSettingView view = new PressureSettingView();
view.Id = 5;
view.LowLimit = basePlcHelper.topPres_V2_LowLimit.NowValue.ToFloat();
view.HighLimit = basePlcHelper.topPres_V2_HighLimit.NowValue.ToFloat();
view.Alarm = basePlcHelper.topPres_V2_Alarm.NowValue.ToInt();
@ -145,6 +150,7 @@ namespace Mesnac.Action.ChemicalWeighing.LjPressure
{
var basePlcHelper = GetPlcHelper;
PressureSettingView view = new PressureSettingView();
view.Id = 6;
view.LowLimit = basePlcHelper.linePres_V2_LowLimit.NowValue.ToFloat();
view.HighLimit = basePlcHelper.linePres_V2_HighLimit.NowValue.ToFloat();
view.Alarm = basePlcHelper.linePres_V2_Alarm.NowValue.ToInt();
@ -167,6 +173,7 @@ namespace Mesnac.Action.ChemicalWeighing.LjPressure
{
var basePlcHelper = GetPlcHelper;
PressureSettingView view = new PressureSettingView();
view.Id = 7;
view.LowLimit = basePlcHelper.mainPress_V3_LowLimit.NowValue.ToFloat();
view.HighLimit = basePlcHelper.mainPress_V3_HighLimit.NowValue.ToFloat();
view.Alarm = basePlcHelper.mainPress_V3_Alarm.NowValue.ToInt();
@ -190,6 +197,7 @@ namespace Mesnac.Action.ChemicalWeighing.LjPressure
{
var basePlcHelper = GetPlcHelper;
PressureSettingView view = new PressureSettingView();
view.Id = 8;
view.LowLimit = basePlcHelper.topPres_V3_LowLimit.NowValue.ToFloat();
view.HighLimit = basePlcHelper.topPres_V3_HighLimit.NowValue.ToFloat();
view.Alarm = basePlcHelper.topPres_V3_Alarm.NowValue.ToInt();
@ -213,6 +221,7 @@ namespace Mesnac.Action.ChemicalWeighing.LjPressure
var basePlcHelper = GetPlcHelper;
PressureSettingView view = new PressureSettingView
{
Id = 9,
LowLimit = basePlcHelper.linePres_V3_LowLimit.NowValue.ToFloat(),
HighLimit = basePlcHelper.linePres_V3_HighLimit.NowValue.ToFloat(),
Alarm = basePlcHelper.linePres_V3_Alarm.NowValue.ToInt()
@ -237,6 +246,7 @@ namespace Mesnac.Action.ChemicalWeighing.LjPressure
var basePlcHelper = GetPlcHelper;
PressureSettingView view = new PressureSettingView
{
Id = 10,
LowLimit = basePlcHelper.mainPress_V4_LowLimit.NowValue.ToFloat(),
HighLimit = basePlcHelper.mainPress_V4_HighLimit.NowValue.ToFloat(),
Alarm = basePlcHelper.mainPress_V4_Alarm.NowValue.ToInt()
@ -262,6 +272,7 @@ namespace Mesnac.Action.ChemicalWeighing.LjPressure
var basePlcHelper = GetPlcHelper;
PressureSettingView view = new PressureSettingView
{
Id = 11,
LowLimit = basePlcHelper.topPres_V4_LowLimit.NowValue.ToFloat(),
HighLimit = basePlcHelper.topPres_V4_HighLimit.NowValue.ToFloat(),
Alarm = basePlcHelper.topPres_V4_Alarm.NowValue.ToInt()
@ -286,6 +297,7 @@ namespace Mesnac.Action.ChemicalWeighing.LjPressure
var basePlcHelper = GetPlcHelper;
PressureSettingView view = new PressureSettingView
{
Id = 12,
LowLimit = basePlcHelper.linePres_V4_LowLimit.NowValue.ToFloat(),
HighLimit = basePlcHelper.linePres_V4_HighLimit.NowValue.ToFloat(),
Alarm = basePlcHelper.linePres_V4_Alarm.NowValue.ToInt()
@ -311,6 +323,7 @@ namespace Mesnac.Action.ChemicalWeighing.LjPressure
var basePlcHelper = GetPlcHelper;
PressureSettingView view = new PressureSettingView
{
Id = 13,
LowLimit = basePlcHelper.mainPress_V5_LowLimit.NowValue.ToFloat(),
HighLimit = basePlcHelper.mainPress_V5_HighLimit.NowValue.ToFloat(),
Alarm = basePlcHelper.mainPress_V5_Alarm.NowValue.ToInt()
@ -336,6 +349,7 @@ namespace Mesnac.Action.ChemicalWeighing.LjPressure
var basePlcHelper = GetPlcHelper;
PressureSettingView view = new PressureSettingView
{
Id = 14,
LowLimit = basePlcHelper.topPres_V5_LowLimit.NowValue.ToFloat(),
HighLimit = basePlcHelper.topPres_V5_HighLimit.NowValue.ToFloat(),
Alarm = basePlcHelper.topPres_V5_Alarm.NowValue.ToInt()
@ -360,6 +374,7 @@ namespace Mesnac.Action.ChemicalWeighing.LjPressure
var basePlcHelper = GetPlcHelper;
PressureSettingView view = new PressureSettingView
{
Id = 15,
LowLimit = basePlcHelper.linePres_V5_LowLimit.NowValue.ToFloat(),
HighLimit = basePlcHelper.linePres_V5_HighLimit.NowValue.ToFloat(),
Alarm = basePlcHelper.linePres_V5_Alarm.NowValue.ToInt()
@ -386,6 +401,7 @@ namespace Mesnac.Action.ChemicalWeighing.LjPressure
var basePlcHelper = GetPlcHelper;
PressureSettingView view = new PressureSettingView
{
Id = 16,
LowLimit = basePlcHelper.presDay_B1_LowLimit.NowValue.ToFloat(),
HighLimit = basePlcHelper.presDay_B1_HighLimit.NowValue.ToFloat(),
Alarm = basePlcHelper.presDay_B1_Alarm.NowValue.ToInt()
@ -410,6 +426,7 @@ namespace Mesnac.Action.ChemicalWeighing.LjPressure
var basePlcHelper = GetPlcHelper;
PressureSettingView view = new PressureSettingView
{
Id = 17,
LowLimit = basePlcHelper.presDay_B2_LowLimit.NowValue.ToFloat(),
HighLimit = basePlcHelper.presDay_B2_HighLimit.NowValue.ToFloat(),
Alarm = basePlcHelper.presDay_B2_Alarm.NowValue.ToInt()
@ -434,6 +451,7 @@ namespace Mesnac.Action.ChemicalWeighing.LjPressure
var basePlcHelper = GetPlcHelper;
PressureSettingView view = new PressureSettingView
{
Id = 18,
LowLimit = basePlcHelper.presDay_B3_LowLimit.NowValue.ToFloat(),
HighLimit = basePlcHelper.presDay_B3_HighLimit.NowValue.ToFloat(),
Alarm = basePlcHelper.presDay_B3_Alarm.NowValue.ToInt()
@ -458,6 +476,7 @@ namespace Mesnac.Action.ChemicalWeighing.LjPressure
var basePlcHelper = GetPlcHelper;
PressureSettingView view = new PressureSettingView
{
Id = 19,
LowLimit = basePlcHelper.presDay_B4_LowLimit.NowValue.ToFloat(),
HighLimit = basePlcHelper.presDay_B4_HighLimit.NowValue.ToFloat(),
Alarm = basePlcHelper.presDay_B4_Alarm.NowValue.ToInt()
@ -482,6 +501,7 @@ namespace Mesnac.Action.ChemicalWeighing.LjPressure
var basePlcHelper = GetPlcHelper;
PressureSettingView view = new PressureSettingView
{
Id = 20,
LowLimit = basePlcHelper.presDay_B5_LowLimit.NowValue.ToFloat(),
HighLimit = basePlcHelper.presDay_B5_HighLimit.NowValue.ToFloat(),
Alarm = basePlcHelper.presDay_B5_Alarm.NowValue.ToInt()
@ -505,6 +525,7 @@ namespace Mesnac.Action.ChemicalWeighing.LjPressure
var basePlcHelper = GetPlcHelper;
PressureSettingView view = new PressureSettingView
{
Id = 21,
LowLimit = basePlcHelper.presDay_B6_LowLimit.NowValue.ToFloat(),
HighLimit = basePlcHelper.presDay_B6_HighLimit.NowValue.ToFloat(),
Alarm = basePlcHelper.presDay_B6_Alarm.NowValue.ToInt()
@ -529,6 +550,7 @@ namespace Mesnac.Action.ChemicalWeighing.LjPressure
var basePlcHelper = GetPlcHelper;
PressureSettingView view = new PressureSettingView
{
Id = 22,
LowLimit = basePlcHelper.presDay_B7_LowLimit.NowValue.ToFloat(),
HighLimit = basePlcHelper.presDay_B7_HighLimit.NowValue.ToFloat(),
Alarm = basePlcHelper.presDay_B7_Alarm.NowValue.ToInt()
@ -553,6 +575,7 @@ namespace Mesnac.Action.ChemicalWeighing.LjPressure
var basePlcHelper = GetPlcHelper;
PressureSettingView view = new PressureSettingView
{
Id = 23,
LowLimit = basePlcHelper.presDay_B8_LowLimit.NowValue.ToFloat(),
HighLimit = basePlcHelper.presDay_B8_HighLimit.NowValue.ToFloat(),
Alarm = basePlcHelper.presDay_B8_Alarm.NowValue.ToInt()
@ -577,6 +600,7 @@ namespace Mesnac.Action.ChemicalWeighing.LjPressure
var basePlcHelper = GetPlcHelper;
PressureSettingView view = new PressureSettingView
{
Id = 24,
LowLimit = basePlcHelper.presDay_B9_LowLimit.NowValue.ToFloat(),
HighLimit = basePlcHelper.presDay_B9_HighLimit.NowValue.ToFloat(),
Alarm = basePlcHelper.presDay_B9_Alarm.NowValue.ToInt()
@ -601,6 +625,7 @@ namespace Mesnac.Action.ChemicalWeighing.LjPressure
var basePlcHelper = GetPlcHelper;
PressureSettingView view = new PressureSettingView
{
Id = 25,
LowLimit = basePlcHelper.presDay_B10_LowLimit.NowValue.ToFloat(),
HighLimit = basePlcHelper.presDay_B10_HighLimit.NowValue.ToFloat(),
Alarm = basePlcHelper.presDay_B10_Alarm.NowValue.ToInt()
@ -625,6 +650,7 @@ namespace Mesnac.Action.ChemicalWeighing.LjPressure
var basePlcHelper = GetPlcHelper;
PressureSettingView view = new PressureSettingView
{
Id = 26,
LowLimit = basePlcHelper.presDay_B11_LowLimit.NowValue.ToFloat(),
HighLimit = basePlcHelper.presDay_B11_HighLimit.NowValue.ToFloat(),
Alarm = basePlcHelper.presDay_B11_Alarm.NowValue.ToInt()
@ -649,6 +675,7 @@ namespace Mesnac.Action.ChemicalWeighing.LjPressure
var basePlcHelper = GetPlcHelper;
PressureSettingView view = new PressureSettingView
{
Id = 27,
LowLimit = basePlcHelper.presDay_B12_LowLimit.NowValue.ToFloat(),
HighLimit = basePlcHelper.presDay_B12_HighLimit.NowValue.ToFloat(),
Alarm = basePlcHelper.presDay_B12_Alarm.NowValue.ToInt()
@ -674,6 +701,7 @@ namespace Mesnac.Action.ChemicalWeighing.LjPressure
var basePlcHelper = GetPlcHelper;
PressureSettingView view = new PressureSettingView
{
Id = 28,
LowLimit = basePlcHelper.PR2PCP01_B12_LowLimit.NowValue.ToFloat(),
HighLimit = basePlcHelper.PR2PCP01_B12_HighLimit.NowValue.ToFloat(),
Alarm = basePlcHelper.PR2PCP01_B12_Alarm.NowValue.ToInt()
@ -699,6 +727,7 @@ namespace Mesnac.Action.ChemicalWeighing.LjPressure
var basePlcHelper = GetPlcHelper;
PressureSettingView view = new PressureSettingView
{
Id = 29,
LowLimit = basePlcHelper.PR2PCP02_B12_LowLimit.NowValue.ToFloat(),
HighLimit = basePlcHelper.PR2PCP02_B12_HighLimit.NowValue.ToFloat(),
Alarm = basePlcHelper.PR2PCP02_B12_Alarm.NowValue.ToInt()
@ -724,6 +753,7 @@ namespace Mesnac.Action.ChemicalWeighing.LjPressure
var basePlcHelper = GetPlcHelper;
PressureSettingView view = new PressureSettingView
{
Id = 30,
LowLimit = basePlcHelper.PR2PCP03_B12_LowLimit.NowValue.ToFloat(),
HighLimit = basePlcHelper.PR2PCP03_B12_HighLimit.NowValue.ToFloat(),
Alarm = basePlcHelper.PR2PCP03_B12_Alarm.NowValue.ToInt()

@ -0,0 +1,337 @@
using System.Collections.Generic;
namespace Mesnac.Action.ChemicalWeighing.LjProportional
{
public class ProportionalPlc
{
private static BasePlcHelper GetPlcHelper => BasePlcHelper.Instance;
private static void Down614(ProportionalSettingView view)
{
if (null != view)
{
var basePlcHelper = GetPlcHelper;
basePlcHelper.PlcWriteFloatByDataKey(basePlcHelper.conveyV1_SV, view.SV);
}
}
private static ProportionalSettingView Up614()
{
var basePlcHelper = GetPlcHelper;
ProportionalSettingView vi = new ProportionalSettingView()
{
Id = 1,
SV = basePlcHelper.conveyV1_SV.NowValue.ToFloat()
};
return vi;
}
private static void Down622(ProportionalSettingView view)
{
if (null != view)
{
var basePlcHelper = GetPlcHelper;
basePlcHelper.PlcWriteFloatByDataKey(basePlcHelper.purgeV1_SV, view.SV);
}
}
private static ProportionalSettingView Up622()
{
var basePlcHelper = GetPlcHelper;
ProportionalSettingView vi = new ProportionalSettingView()
{
Id = 2,
SV = basePlcHelper.purgeV1_SV.NowValue.ToFloat()
};
return vi;
}
private static void Down630(ProportionalSettingView view)
{
if (null != view)
{
var basePlcHelper = GetPlcHelper;
basePlcHelper.PlcWriteFloatByDataKey(basePlcHelper.conveyV2_SV, view.SV);
}
}
private static ProportionalSettingView Up630()
{
var basePlcHelper = GetPlcHelper;
ProportionalSettingView vi = new ProportionalSettingView()
{
Id = 3,
SV = basePlcHelper.conveyV2_SV.NowValue.ToFloat()
};
return vi;
}
private static void Down638(ProportionalSettingView view)
{
if (null != view)
{
var basePlcHelper = GetPlcHelper;
basePlcHelper.PlcWriteFloatByDataKey(basePlcHelper.purgeV2_SV, view.SV);
}
}
private static ProportionalSettingView Up638()
{
var basePlcHelper = GetPlcHelper;
ProportionalSettingView vi = new ProportionalSettingView()
{
Id = 4,
SV = basePlcHelper.purgeV2_SV.NowValue.ToFloat()
};
return vi;
}
private static void Down646(ProportionalSettingView view)
{
if (null != view)
{
var basePlcHelper = GetPlcHelper;
basePlcHelper.PlcWriteFloatByDataKey(basePlcHelper.conveyV3_SV, view.SV);
}
}
private static ProportionalSettingView Up646()
{
var basePlcHelper = GetPlcHelper;
ProportionalSettingView vi = new ProportionalSettingView()
{
Id = 5,
SV = basePlcHelper.conveyV3_SV.NowValue.ToFloat()
};
return vi;
}
private static void Down654(ProportionalSettingView view)
{
if (null != view)
{
var basePlcHelper = GetPlcHelper;
basePlcHelper.PlcWriteFloatByDataKey(basePlcHelper.purgeV3_SV, view.SV);
}
}
private static ProportionalSettingView Up654()
{
var basePlcHelper = GetPlcHelper;
ProportionalSettingView vi = new ProportionalSettingView()
{
Id = 6,
SV = basePlcHelper.purgeV3_SV.NowValue.ToFloat()
};
return vi;
}
private static void Down662(ProportionalSettingView view)
{
if (null != view)
{
var basePlcHelper = GetPlcHelper;
basePlcHelper.PlcWriteFloatByDataKey(basePlcHelper.conveyV4_SV, view.SV);
}
}
private static ProportionalSettingView Up662()
{
var basePlcHelper = GetPlcHelper;
ProportionalSettingView vi = new ProportionalSettingView()
{
Id = 7,
SV = basePlcHelper.conveyV4_SV.NowValue.ToFloat()
};
return vi;
}
private static void Down670(ProportionalSettingView view)
{
if (null != view)
{
var basePlcHelper = GetPlcHelper;
basePlcHelper.PlcWriteFloatByDataKey(basePlcHelper.purgeV4_SV, view.SV);
}
}
private static ProportionalSettingView Up670()
{
var basePlcHelper = GetPlcHelper;
ProportionalSettingView vi = new ProportionalSettingView()
{
Id = 8,
SV = basePlcHelper.purgeV4_SV.NowValue.ToFloat()
};
return vi;
}
private static void Down678(ProportionalSettingView view)
{
if (null != view)
{
var basePlcHelper = GetPlcHelper;
basePlcHelper.PlcWriteFloatByDataKey(basePlcHelper.conveyV5_SV, view.SV);
}
}
private static ProportionalSettingView Up678()
{
var basePlcHelper = GetPlcHelper;
ProportionalSettingView vi = new ProportionalSettingView()
{
Id = 9,
SV = basePlcHelper.conveyV5_SV.NowValue.ToFloat()
};
return vi;
}
private static void Down686(ProportionalSettingView view)
{
if (null != view)
{
var basePlcHelper = GetPlcHelper;
basePlcHelper.PlcWriteFloatByDataKey(basePlcHelper.purgeV5_SV, view.SV);
}
}
private static ProportionalSettingView Up686()
{
var basePlcHelper = GetPlcHelper;
ProportionalSettingView vi = new ProportionalSettingView()
{
Id = 10,
SV = basePlcHelper.purgeV5_SV.NowValue.ToFloat()
};
return vi;
}
public static void DownToPlc(IEnumerable<ProportionalSettingView> views)
{
foreach (var v in views)
{
switch (v.Id)
{
case 1:
Down614(v);
break;
case 2:
Down622(v);
break;
case 3:
Down630(v);
break;
case 4:
Down638(v);
break;
case 5:
Down646(v);
break;
case 6:
Down654(v);
break;
case 7:
Down662(v);
break;
case 8:
Down670(v);
break;
case 9:
Down678(v);
break;
case 10:
Down686(v);
break;
}
}
}
public static ProportionalSettingView UpFromPlc(int id)
{
switch (id)
{
case 1:
return Up614();
case 2:
return Up622();
case 3:
return Up630();
case 4:
return Up638();
case 5:
return Up646();
case 6:
return Up654();
case 7:
return Up662();
case 8:
return Up670();
case 9:
return Up678();
case 10:
return Up686();
}
return null;
}
public static IEnumerable<ProportionalSettingView> UpFromPlc()
{
ICollection<ProportionalSettingView> co = new List<ProportionalSettingView>();
co.Add(Up614());
co.Add(Up622());
co.Add(Up630());
co.Add(Up638());
co.Add(Up646());
co.Add(Up654());
co.Add(Up662());
co.Add(Up670());
co.Add(Up678());
co.Add(Up686());
return co;
}
}
}

@ -0,0 +1,12 @@
namespace Mesnac.Action.ChemicalWeighing.LjProportional
{
public class ProportionalSettingView
{
public int Id { get; set; }
public string Name { get; set; }
public float PV { get; set; }
public float SV { get; set; }
}
}

@ -0,0 +1,66 @@
using System;
using System.Data;
using System.Linq;
using Mesnac.Action.Base;
using Mesnac.Action.ChemicalWeighing.LjMaterial;
namespace Mesnac.Action.ChemicalWeighing.LjWeight
{
public class InitDbAction : ChemicalWeighingAction, IAction
{
private DbMCControl _materialGridControl = null; //物料列表控件
private RuntimeParameter _runtime;
public void Run(RuntimeParameter runtime)
{
base.RunIni(runtime); //必须调用
this._runtime = runtime;
// UpAction.OnHandler -= Process_Event;
// UpAction.OnHandler += Process_Event;
//
// UpdateAction.OnUpdate -= Process_Event;
// UpdateAction.OnUpdate += Process_Event;
DbMCControl materialGridControl =
this.GetDbMCControlByKey(Mesnac.Basic.DataSourceFactory.MCDbType.Local, "WeightSetting")
.FirstOrDefault(); //获取物料数据控件
this._materialGridControl = materialGridControl;
FileControl();
}
private void FileControl()
{
DataTable table =
DBHelp.GetTable(@"select Id,Name,ActWeight,HighLevel,HighWeight,LowLevel,LowWeight from WeightSetting");
if (this._materialGridControl != null && this._materialGridControl.BaseControl != null)
{
this._materialGridControl.BaseControl.BindDataSource = null;
this._materialGridControl.BaseControl.BindDataSource = table;
//DBLog("成功!");
}
else
{
ICSharpCode.Core.LoggingService<InitDbAction>.Warn("刷新物料信息失败物料数据控件为Null...");
}
}
#region 事件处理方法
private void Process_Event(object sender, EventArgs e)
{
if (sender is RuntimeParameter)
{
this.Run(sender as RuntimeParameter);
}
else
{
this.Run(this._runtime);
}
}
#endregion
}
}

@ -0,0 +1,429 @@
using System.Collections.Generic;
using DevExpress.PivotGrid.CriteriaVisitors;
namespace Mesnac.Action.ChemicalWeighing.LjWeight
{
public class WeightSettingPlc
{
private static BasePlcHelper GetPlcHelper => BasePlcHelper.Instance;
private static void Down432(WeightSettingView view)
{
if (null != view)
{
var basePlcHelper = GetPlcHelper;
basePlcHelper.PlcWriteFloatByDataKey(basePlcHelper.Hopper1_HighWeight, view.HighWeight);
basePlcHelper.PlcWriteFloatByDataKey(basePlcHelper.Hopper1_LowWeight, view.LowWeight);
}
}
private static WeightSettingView Up432()
{
var basePlcHelper = GetPlcHelper;
WeightSettingView view = new WeightSettingView()
{
Id = 1,
HighWeight = basePlcHelper.Hopper1_HighWeight.NowValue.ToFloat(),
LowWeight = basePlcHelper.Hopper1_LowWeight.NowValue.ToFloat()
};
return view;
}
private static void Down446(WeightSettingView view)
{
if (null != view)
{
var basePlcHelper = GetPlcHelper;
basePlcHelper.PlcWriteFloatByDataKey(basePlcHelper.Hopper2_HighWeight, view.HighWeight);
basePlcHelper.PlcWriteFloatByDataKey(basePlcHelper.Hopper2_LowWeight, view.LowWeight);
}
}
private static WeightSettingView Up446()
{
var basePlcHelper = GetPlcHelper;
WeightSettingView view = new WeightSettingView()
{
Id = 2,
HighWeight = basePlcHelper.Hopper2_HighWeight.NowValue.ToFloat(),
LowWeight = basePlcHelper.Hopper2_LowWeight.NowValue.ToFloat()
};
return view;
}
private static void Down460(WeightSettingView view)
{
if (null != view)
{
var basePlcHelper = GetPlcHelper;
basePlcHelper.PlcWriteFloatByDataKey(basePlcHelper.Hopper3_HighWeight, view.HighWeight);
basePlcHelper.PlcWriteFloatByDataKey(basePlcHelper.Hopper3_LowWeight, view.LowWeight);
}
}
private static WeightSettingView Up460()
{
var basePlcHelper = GetPlcHelper;
WeightSettingView view = new WeightSettingView()
{
Id = 3,
HighWeight = basePlcHelper.Hopper3_HighWeight.NowValue.ToFloat(),
LowWeight = basePlcHelper.Hopper3_LowWeight.NowValue.ToFloat()
};
return view;
}
private static void Down474(WeightSettingView view)
{
if (null != view)
{
var basePlcHelper = GetPlcHelper;
basePlcHelper.PlcWriteFloatByDataKey(basePlcHelper.Hopper4_HighWeight, view.HighWeight);
basePlcHelper.PlcWriteFloatByDataKey(basePlcHelper.Hopper4_LowWeight, view.LowWeight);
}
}
private static WeightSettingView Up474()
{
var basePlcHelper = GetPlcHelper;
WeightSettingView view = new WeightSettingView()
{
Id = 4,
HighWeight = basePlcHelper.Hopper4_HighWeight.NowValue.ToFloat(),
LowWeight = basePlcHelper.Hopper4_LowWeight.NowValue.ToFloat()
};
return view;
}
private static void Down488(WeightSettingView view)
{
if (null != view)
{
var basePlcHelper = GetPlcHelper;
basePlcHelper.PlcWriteFloatByDataKey(basePlcHelper.Vessel1_HighWeight, view.HighWeight);
basePlcHelper.PlcWriteFloatByDataKey(basePlcHelper.Vessel1_LowWeight, view.LowWeight);
}
}
private static WeightSettingView Up488()
{
var basePlcHelper = GetPlcHelper;
WeightSettingView view = new WeightSettingView()
{
Id = 5,
HighWeight = basePlcHelper.Vessel1_HighWeight.NowValue.ToFloat(),
LowWeight = basePlcHelper.Vessel1_LowWeight.NowValue.ToFloat()
};
return view;
}
private static void Down502(WeightSettingView view)
{
if (null != view)
{
var basePlcHelper = GetPlcHelper;
basePlcHelper.PlcWriteFloatByDataKey(basePlcHelper.Vessel2_HighWeight, view.HighWeight);
basePlcHelper.PlcWriteFloatByDataKey(basePlcHelper.Vessel2_LowWeight, view.LowWeight);
}
}
private static WeightSettingView Up502()
{
var basePlcHelper = GetPlcHelper;
WeightSettingView view = new WeightSettingView()
{
Id = 6,
HighWeight = basePlcHelper.Vessel2_HighWeight.NowValue.ToFloat(),
LowWeight = basePlcHelper.Vessel2_LowWeight.NowValue.ToFloat()
};
return view;
}
private static void Down516(WeightSettingView view)
{
if (null != view)
{
var basePlcHelper = GetPlcHelper;
basePlcHelper.PlcWriteFloatByDataKey(basePlcHelper.Vessel3_HighWeight, view.HighWeight);
basePlcHelper.PlcWriteFloatByDataKey(basePlcHelper.Vessel3_LowWeight, view.LowWeight);
}
}
private static WeightSettingView Up516()
{
var basePlcHelper = GetPlcHelper;
WeightSettingView view = new WeightSettingView()
{
Id = 7,
HighWeight = basePlcHelper.Vessel3_HighWeight.NowValue.ToFloat(),
LowWeight = basePlcHelper.Vessel3_LowWeight.NowValue.ToFloat()
};
return view;
}
private static void Down530(WeightSettingView view)
{
if (null != view)
{
var basePlcHelper = GetPlcHelper;
basePlcHelper.PlcWriteFloatByDataKey(basePlcHelper.Vessel4_HighWeight, view.HighWeight);
basePlcHelper.PlcWriteFloatByDataKey(basePlcHelper.Vessel4_LowWeight, view.LowWeight);
}
}
private static WeightSettingView Up530()
{
var basePlcHelper = GetPlcHelper;
WeightSettingView view = new WeightSettingView()
{
Id = 8,
HighWeight = basePlcHelper.Vessel4_HighWeight.NowValue.ToFloat(),
LowWeight = basePlcHelper.Vessel4_LowWeight.NowValue.ToFloat()
};
return view;
}
private static void Down544(WeightSettingView view)
{
if (null != view)
{
var basePlcHelper = GetPlcHelper;
basePlcHelper.PlcWriteFloatByDataKey(basePlcHelper.Vessel5_HighWeight, view.HighWeight);
basePlcHelper.PlcWriteFloatByDataKey(basePlcHelper.Vessel5_LowWeight, view.LowWeight);
}
}
private static WeightSettingView Up544()
{
var basePlcHelper = GetPlcHelper;
WeightSettingView view = new WeightSettingView()
{
Id = 9,
HighWeight = basePlcHelper.Vessel5_HighWeight.NowValue.ToFloat(),
LowWeight = basePlcHelper.Vessel5_LowWeight.NowValue.ToFloat()
};
return view;
}
private static void Down558(WeightSettingView view)
{
if (null != view)
{
var basePlcHelper = GetPlcHelper;
basePlcHelper.PlcWriteFloatByDataKey(basePlcHelper.WScale1_HighWeight, view.HighWeight);
basePlcHelper.PlcWriteFloatByDataKey(basePlcHelper.WScale1_LowWeight, view.LowWeight);
}
}
private static WeightSettingView Up558()
{
var basePlcHelper = GetPlcHelper;
WeightSettingView view = new WeightSettingView()
{
Id = 10,
HighWeight = basePlcHelper.WScale1_HighWeight.NowValue.ToFloat(),
LowWeight = basePlcHelper.WScale1_LowWeight.NowValue.ToFloat()
};
return view;
}
private static void Down572(WeightSettingView view)
{
if (null != view)
{
var basePlcHelper = GetPlcHelper;
basePlcHelper.PlcWriteFloatByDataKey(basePlcHelper.WScale2_HighWeight, view.HighWeight);
basePlcHelper.PlcWriteFloatByDataKey(basePlcHelper.WScale2_LowWeight, view.LowWeight);
}
}
private static WeightSettingView Up572()
{
var basePlcHelper = GetPlcHelper;
WeightSettingView view = new WeightSettingView()
{
Id = 11,
HighWeight = basePlcHelper.WScale2_HighWeight.NowValue.ToFloat(),
LowWeight = basePlcHelper.WScale2_LowWeight.NowValue.ToFloat()
};
return view;
}
private static void Down586(WeightSettingView view)
{
if (null != view)
{
var basePlcHelper = GetPlcHelper;
basePlcHelper.PlcWriteFloatByDataKey(basePlcHelper.WScale3_HighWeight, view.HighWeight);
basePlcHelper.PlcWriteFloatByDataKey(basePlcHelper.WScale3_LowWeight, view.LowWeight);
}
}
private static WeightSettingView Up586()
{
var basePlcHelper = GetPlcHelper;
WeightSettingView view = new WeightSettingView()
{
Id = 12,
HighWeight = basePlcHelper.WScale3_HighWeight.NowValue.ToFloat(),
LowWeight = basePlcHelper.WScale3_LowWeight.NowValue.ToFloat()
};
return view;
}
private static void Down600(WeightSettingView view)
{
if (null != view)
{
var basePlcHelper = GetPlcHelper;
basePlcHelper.PlcWriteFloatByDataKey(basePlcHelper.WScale4_HighWeight, view.HighWeight);
basePlcHelper.PlcWriteFloatByDataKey(basePlcHelper.WScale4_LowWeight, view.LowWeight);
}
}
private static WeightSettingView Up600()
{
var basePlcHelper = GetPlcHelper;
WeightSettingView view = new WeightSettingView()
{
Id = 13,
HighWeight = basePlcHelper.WScale4_HighWeight.NowValue.ToFloat(),
LowWeight = basePlcHelper.WScale4_LowWeight.NowValue.ToFloat()
};
return view;
}
public static void DownToPlc(IEnumerable<WeightSettingView> views)
{
foreach (var v in views)
{
switch (v.Id)
{
case 1:
Down432(v);
break;
case 2:
Down446(v);
break;
case 3:
Down460(v);
break;
case 4:
Down474(v);
break;
case 5:
Down488(v);
break;
case 6:
Down502(v);
break;
case 7:
Down516(v);
break;
case 8:
Down530(v);
break;
case 9:
Down544(v);
break;
case 10:
Down558(v);
break;
case 11:
Down572(v);
break;
case 12:
Down586(v);
break;
case 13:
Down600(v);
break;
}
}
}
public static WeightSettingView UpFromPlc(int id)
{
switch (id)
{
case 1:
return Up432();
case 2:
return Up446();
case 3:
return Up460();
case 4:
return Up474();
case 5:
return Up488();
case 6:
return Up502();
case 7:
return Up516();
case 8:
return Up530();
case 9:
return Up544();
case 10:
return Up558();
case 11:
return Up572();
case 12:
return Up586();
case 13:
return Up600();
}
return null;
}
public static IEnumerable<WeightSettingView> UpFromPlc()
{
ICollection<WeightSettingView> ls = new List<WeightSettingView>();
ls.Add(Up432());
ls.Add(Up446());
ls.Add(Up460());
ls.Add(Up474());
ls.Add(Up488());
ls.Add(Up502());
ls.Add(Up516());
ls.Add(Up530());
ls.Add(Up544());
ls.Add(Up558());
ls.Add(Up572());
ls.Add(Up586());
ls.Add(Up600());
return ls;
}
}
}

@ -0,0 +1,17 @@
namespace Mesnac.Action.ChemicalWeighing.LjWeight
{
//select Id,Name,ActWeight,HighLevel,HighWeight,LowLevel,LowWeight from WeightSetting;
public class WeightSettingView
{
public int Id { get; set; }
public string Name { get; set; }
public float ActWeight { get; set; }
public float HighLevel { get; set; }
public float HighWeight { get; set; }
public float LowLevel { get; set; }
public float LowWeight { get; set; }
}
}

@ -237,6 +237,8 @@
<Compile Include="LjMaterial\MaterialInfoType.cs" />
<Compile Include="LjMaterial\MaterialInfoTypeHelp.cs" />
<Compile Include="LjMaterial\UpdateAction.cs" />
<Compile Include="LjMetage\MetageHelp.cs" />
<Compile Include="LjMetage\MetageView.cs" />
<Compile Include="LjPressure\DownAction.cs" />
<Compile Include="LjPressure\FrmPressureUpdate.cs">
<SubType>Form</SubType>
@ -249,6 +251,8 @@
<Compile Include="LjPressure\PressureSettingView.cs" />
<Compile Include="LjPressure\UpAction.cs" />
<Compile Include="LjPressure\UpdateAction.cs" />
<Compile Include="LjProportional\ProportionalPlc.cs" />
<Compile Include="LjProportional\ProportionalSettingView.cs" />
<Compile Include="LjStock\FrmStock.cs">
<SubType>Form</SubType>
</Compile>
@ -269,6 +273,9 @@
<Compile Include="LjTanNum\TankNumCodingDbHelp.cs" />
<Compile Include="LjTanNum\TankNumCodingView.cs" />
<Compile Include="LjTanNum\UpdateAction.cs" />
<Compile Include="LjWeight\InitDbAction.cs" />
<Compile Include="LjWeight\WeightSettingPlc.cs" />
<Compile Include="LjWeight\WeightSettingView.cs" />
<Compile Include="MaterialManage\BarcodeReport.cs">
<SubType>Component</SubType>
</Compile>

@ -0,0 +1,57 @@
<?xml version="1.0"?>
<ActionService>
<Design>
<Path path="榄菊重量参数管理">
<Action action="0A42F8F7916A3B668DB3830EA902A9D9">
<Caption>初始化重量参数</Caption>
<Remark>初始化重量参数</Remark>
</Action>
<Action action="EC4A2613FA476529AE6CC7DCB5032D96">
<Caption>修改重量参数</Caption>
<Remark>修改重量参数</Remark>
</Action>
<Action action="33A0B8BA7C7527965EA3D68B25A9CCFA">
<Caption>数据上传</Caption>
<Remark>数据上传</Remark>
</Action>
<Action action="F3FD5E229367D3B74963AB2B61603E66">
<Caption>数据下达</Caption>
<Remark>数据下达</Remark>
</Action>
</Path>
</Design>
<DesignToRuntime>
<Design action="0A42F8F7916A3B668DB3830EA902A9D9">
<Runtime action="1B4A2E0D5A759FE190469449085661FA"/>
</Design>
<Design action="EC4A2613FA476529AE6CC7DCB5032D96">
<Runtime action="8AB90F9965E74001B3FD78C318077FAC"/>
</Design>
<Design action="33A0B8BA7C7527965EA3D68B25A9CCFA">
<Runtime action="37DD26D4B0A756ED1AA5ED266CDE64F6"/>
</Design>
<Design action="F3FD5E229367D3B74963AB2B61603E66">
<Runtime action="A666F69DC82FA263EDEE33097ED4710E"/>
</Design>
</DesignToRuntime>
<Runtime>
<Import assembly = "Data/Action/ChemicalWeighing/Mesnac.Action.ChemicalWeighing.dll">
<Action action="1B4A2E0D5A759FE190469449085661FA" class="Mesnac.Action.ChemicalWeighing.LjWeight.InitDbAction"/>
<Action action="8AB90F9965E74001B3FD78C318077FAC" class="Mesnac.Action.ChemicalWeighing.LjWeight.UpdateAction"/>
<Action action="37DD26D4B0A756ED1AA5ED266CDE64F6" class="Mesnac.Action.ChemicalWeighing.LjWeight.UpAction"/>
<Action action="A666F69DC82FA263EDEE33097ED4710E" class="Mesnac.Action.ChemicalWeighing.LjWeight.DownAction"/>
</Import>
</Runtime>
</ActionService>

@ -30,6 +30,7 @@
<Node Name="FormDeliver" Text="榄菊输送节点" ToolTipText="FormDeliver" Tag="FormDeliver" ImageIndex="3" SelectedImageIndex="3" />
<Node Name="FormDevice" Text="设备管理" ToolTipText="FormDevice" Tag="FormDevice" ImageIndex="3" SelectedImageIndex="3" />
<Node Name="FormPressureSetting" Text="榄菊设备参数压力管理" ToolTipText="FormPressureSetting" Tag="FormPressureSetting" ImageIndex="3" SelectedImageIndex="3" />
<Node Name="FormWeight" Text="榄菊设备参数重量管理" ToolTipText="FormWeight" Tag="FormWeight" ImageIndex="3" SelectedImageIndex="3" />
</Node>
<Node Name="nodeDevice" Text="设备" ToolTipText="" Tag="nodeDevice" ImageIndex="2" SelectedImageIndex="2">
<Node Name="ParametersWithPc" Text="ParametersWithPc" ToolTipText="" Tag="ParametersWithPc" ImageIndex="5" SelectedImageIndex="5" />

@ -188,6 +188,7 @@
<Data name="PR2PCP03_B12_LowLimit" runname="PR2PCP03_B12_LowLimit" start="211" len="2" method="Default_Float()" max="" issave="False" subtractor="" remark="低压压定值" />
<Data name="PR2PCP03_B12_HighLimit" runname="PR2PCP03_B12_HighLimit" start="213" len="2" method="Default_Float()" max="" issave="False" subtractor="" remark="高压压定值" />
<Data name="PR2PCP03_B12_Alarm" runname="PR2PCP03_B12_Alarm" start="215" len="1" method="Default_Bit(0,1)" max="" issave="False" subtractor="" remark="超压压警" />
<Data name="Hopper1_ActWeight" runname="Hopper1_ActWeight" start="216" len="2" method="Default_Float()" max="" issave="False" subtractor="" remark="实实重量" />
<Data name="Hopper1_HighWeight" runname="Hopper1_HighWeight" start="218" len="2" method="Default_Float()" max="" issave="False" subtractor="" remark="高料位重量" />
<Data name="Hopper1_LowWeight" runname="Hopper1_LowWeight" start="220" len="2" method="Default_Float()" max="" issave="False" subtractor="" remark="低料位重量" />
@ -208,6 +209,7 @@
<Data name="Hopper4_LowWeight" runname="Hopper4_LowWeight" start="241" len="2" method="Default_Float()" max="" issave="False" subtractor="" remark="低料位重量" />
<Data name="Hopper4_HighLevel" runname="Hopper4_HighLevel" start="243" len="1" method="Default_Bit(0,1)" max="" issave="False" subtractor="" remark="高料位指示" />
<Data name="Hopper4_LowLevel" runname="Hopper4_LowLevel" start="243" len="1" method="Default_Bit(1,1)" max="" issave="False" subtractor="" remark="低料位指示" />
<Data name="Vessel1_ActWeight" runname="Vessel1_ActWeight" start="244" len="2" method="Default_Float()" max="" issave="False" subtractor="" remark="实实重量" />
<Data name="Vessel1_HighWeight" runname="Vessel1_HighWeight" start="246" len="2" method="Default_Float()" max="" issave="False" subtractor="" remark="高料位重量" />
<Data name="Vessel1_LowWeight" runname="Vessel1_LowWeight" start="248" len="2" method="Default_Float()" max="" issave="False" subtractor="" remark="低料位重量" />
@ -253,6 +255,7 @@
<Data name="WScale4_LowWeight" runname="WScale4_LowWeight" start="304" len="2" method="Default_Float()" max="" issave="False" subtractor="" remark="低料位重量" />
<Data name="WScale4_HighLevel" runname="WScale4_HighLevel" start="306" len="1" method="Default_Bit(0,1)" max="" issave="False" subtractor="" remark="高料位指示" />
<Data name="WScale4_LowLevel" runname="WScale4_LowLevel" start="306" len="1" method="Default_Bit(1,1)" max="" issave="False" subtractor="" remark="低料位指示" />
<Data name="conveyV1_PV" runname="conveyV1_PV" start="307" len="2" method="Default_Float()" max="" issave="False" subtractor="" remark="" />
<Data name="conveyV1_SV" runname="conveyV1_SV" start="309" len="2" method="Default_Float()" max="" issave="False" subtractor="" remark="" />
<Data name="purgeV1_PV" runname="purgeV1_PV" start="311" len="2" method="Default_Float()" max="" issave="False" subtractor="" remark="" />
@ -273,6 +276,7 @@
<Data name="conveyV5_SV" runname="conveyV5_SV" start="341" len="2" method="Default_Float()" max="" issave="False" subtractor="" remark="" />
<Data name="purgeV5_PV" runname="purgeV5_PV" start="343" len="2" method="Default_Float()" max="" issave="False" subtractor="" remark="" />
<Data name="purgeV5_SV" runname="purgeV5_SV" start="345" len="2" method="Default_Float()" max="" issave="False" subtractor="" remark="" />
<Data name="weightPraSilo0_HighSpeed" runname="weightPraSilo0_HighSpeed" start="347" len="2" method="Default_Float()" max="" issave="False" subtractor="" remark="高速频率" />
<Data name="weightPraSilo0_LowSpeed" runname="weightPraSilo0_LowSpeed" start="349" len="2" method="Default_Float()" max="" issave="False" subtractor="" remark="低速频率" />
<Data name="weightPraSilo0_WeightSlow" runname="weightPraSilo0_WeightSlow" start="351" len="2" method="Default_Float()" max="" issave="False" subtractor="" remark="快慢值值值" />
@ -448,6 +452,8 @@
<Data name="Water3_WeightSlow" runname="Water3_WeightSlow" start="657" len="2" method="Default_Float()" max="" issave="False" subtractor="" remark="快慢值值值" />
<Data name="Water3_Precut" runname="Water3_Precut" start="659" len="2" method="Default_Float()" max="" issave="False" subtractor="" remark="提前值" />
<Data name="Water3_JogTime" runname="Water3_JogTime" start="661" len="1" method="Default_ShortDiv()" max="" issave="False" subtractor="" remark="点动动动" />
<Data name="SpeedD1" runname="SpeedD1" start="662" len="2" method="Default_Float()" max="" issave="False" subtractor="" remark="干混机手动速度 D1" />
<Data name="SpeedD2" runname="SpeedD2" start="664" len="2" method="Default_Float()" max="" issave="False" subtractor="" remark="干混机手动速度 D2" />
<Data name="SpeedD3" runname="SpeedD3" start="666" len="2" method="Default_Float()" max="" issave="False" subtractor="" remark="干混机手动速度 D3" />

@ -0,0 +1,225 @@
<Object type="Mesnac.Gui.Common.FrmRunTemplate, Mesnac.Gui.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" name="FormWeight" children="Controls">
<Object type="Mesnac.Controls.Default.MCDataGridView, Mesnac.Controls.Default, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" name="MCDataGridView1" children="Controls">
<Property name="DisplayAllColumn">False</Property>
<Property name="DgvColumn">
<Binary>AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJoBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EYXRhR3JpZFZpZXdDb2x1bW5zLCBNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGxdXQMAAAAGX2l0ZW1zBV9zaXplCF92ZXJzaW9uBAAAKk1lc25hYy5Db250cm9scy5CYXNlLkRhdGFHcmlkVmlld0NvbHVtbnNbXQIAAAAICAkDAAAABAAAAHsAAAAHAwAAAAABAAAACAAAAAQoTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGF0YUdyaWRWaWV3Q29sdW1ucwIAAAAJBAAAAAkFAAAACQYAAAAJBwAAAA0EBQQAAAAoTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGF0YUdyaWRWaWV3Q29sdW1ucwIAAAAKX2ZpbGVkRGF0YQxfZGlzcGxheU5hbWUBAQIAAAAGCAAAAAJJZAYJAAAABue8luWPtwEFAAAABAAAAAYKAAAABE5hbWUGCwAAAAblkI3np7ABBgAAAAQAAAAGDAAAAAlMb3dXZWlnaHQGDQAAAA/kvY7mlpnkvY3ph43ph48BBwAAAAQAAAAGDgAAAApIaWdoV2VpZ2h0Bg8AAAAP6auY5paZ5L2N6YeN6YePCw==</Binary>
</Property>
<Property name="ClickActionList">
<Binary>AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJMBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EZXNpZ25BY3Rpb24sIE1lc25hYy5Db250cm9scy5CYXNlLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAjTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uW10CAAAACAgJAwAAAAAAAAABAAAABwMAAAAAAQAAAAAAAAAEIU1lc25hYy5Db250cm9scy5CYXNlLkRlc2lnbkFjdGlvbgIAAAAL</Binary>
</Property>
<Property name="DoubleClickActionList">
<Binary>AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJMBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EZXNpZ25BY3Rpb24sIE1lc25hYy5Db250cm9scy5CYXNlLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAjTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uW10CAAAACAgJAwAAAAEAAAADAAAABwMAAAAAAQAAAAQAAAAEIU1lc25hYy5Db250cm9scy5CYXNlLkRlc2lnbkFjdGlvbgIAAAAJBAAAAA0DBQQAAAAhTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uAwAAABU8R1VJRD5rX19CYWNraW5nRmllbGQVPE5hbWU+a19fQmFja2luZ0ZpZWxkFzxSZW1hcms+a19fQmFja2luZ0ZpZWxkAQEBAgAAAAYFAAAAIDBBNDJGOEY3OTE2QTNCNjY4REIzODMwRUE5MDJBOUQ5BgYAAAAV5Yid5aeL5YyW6YeN6YeP5Y+C5pWwBgcAAAAV5Yid5aeL5YyW6YeN6YeP5Y+C5pWwCw==</Binary>
</Property>
<Property name="SelectionChangedActionList">
<Binary>AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJMBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EZXNpZ25BY3Rpb24sIE1lc25hYy5Db250cm9scy5CYXNlLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAjTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uW10CAAAACAgJAwAAAAAAAAABAAAABwMAAAAAAQAAAAAAAAAEIU1lc25hYy5Db250cm9scy5CYXNlLkRlc2lnbkFjdGlvbgIAAAAL</Binary>
</Property>
<Property name="MCKey">[DataSource1].[WeightSetting]</Property>
<Property name="MCDataSourceID" />
<Property name="IsDbControl">True</Property>
<Property name="InitDataSource" />
<Property name="ActionDataSource" />
<Property name="BindDataSource">
<Binary>AAEAAAD/////AQAAAAAAAAAMAgAAAE5TeXN0ZW0uRGF0YSwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAABVTeXN0ZW0uRGF0YS5EYXRhVGFibGUDAAAAGURhdGFUYWJsZS5SZW1vdGluZ1ZlcnNpb24JWG1sU2NoZW1hC1htbERpZmZHcmFtAwEBDlN5c3RlbS5WZXJzaW9uAgAAAAkDAAAABgQAAACFBDw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi0xNiI/Pg0KPHhzOnNjaGVtYSB4bWxucz0iIiB4bWxuczp4cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIHhtbG5zOm1zZGF0YT0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp4bWwtbXNkYXRhIj4NCiAgPHhzOmVsZW1lbnQgbmFtZT0iTUNEYXRhR3JpZFZpZXciPg0KICAgIDx4czpjb21wbGV4VHlwZT4NCiAgICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8L3hzOmVsZW1lbnQ+DQogIDx4czplbGVtZW50IG5hbWU9InRtcERhdGFTZXQiIG1zZGF0YTpJc0RhdGFTZXQ9InRydWUiIG1zZGF0YTpNYWluRGF0YVRhYmxlPSJNQ0RhdGFHcmlkVmlldyIgbXNkYXRhOlVzZUN1cnJlbnRMb2NhbGU9InRydWUiPg0KICAgIDx4czpjb21wbGV4VHlwZT4NCiAgICAgIDx4czpjaG9pY2UgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIgLz4NCiAgICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8L3hzOmVsZW1lbnQ+DQo8L3hzOnNjaGVtYT4GBQAAAIABPGRpZmZncjpkaWZmZ3JhbSB4bWxuczptc2RhdGE9InVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206eG1sLW1zZGF0YSIgeG1sbnM6ZGlmZmdyPSJ1cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOnhtbC1kaWZmZ3JhbS12MSIgLz4EAwAAAA5TeXN0ZW0uVmVyc2lvbgQAAAAGX01ham9yBl9NaW5vcgZfQnVpbGQJX1JldmlzaW9uAAAAAAgICAgCAAAAAAAAAP//////////Cw==</Binary>
</Property>
<Property name="DbOptionType">None</Property>
<Property name="MCVisible">True</Property>
<Property name="MCEnabled">True</Property>
<Property name="AutoGenerateColumns">False</Property>
<Property name="BackgroundColor">ControlLightLight</Property>
<Property name="ColumnHeadersHeight">30</Property>
<Property name="MultiSelect">False</Property>
<Property name="Dock">Fill</Property>
<Property name="Location">0, 48</Property>
<Property name="Name">MCDataGridView1</Property>
<Property name="Size">584, 314</Property>
<Property name="TabIndex">9</Property>
</Object>
<Object type="System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" name="Panel1" children="Controls">
<Object type="System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" name="Panel2" children="Controls">
<Object type="Mesnac.Controls.Default.MCButton, Mesnac.Controls.Default, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" name="MCButton7" children="Controls">
<Property name="ClickActionList">
<Binary>AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJMBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EZXNpZ25BY3Rpb24sIE1lc25hYy5Db250cm9scy5CYXNlLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAjTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uW10CAAAACAgJAwAAAAEAAAARAAAABwMAAAAAAQAAAAQAAAAEIU1lc25hYy5Db250cm9scy5CYXNlLkRlc2lnbkFjdGlvbgIAAAAJBAAAAA0DBQQAAAAhTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uAwAAABU8R1VJRD5rX19CYWNraW5nRmllbGQVPE5hbWU+a19fQmFja2luZ0ZpZWxkFzxSZW1hcms+a19fQmFja2luZ0ZpZWxkAQEBAgAAAAYFAAAAIEYzRkQ1RTIyOTM2N0QzQjc0OTYzQUIyQjYxNjAzRTY2BgYAAAAM5pWw5o2u5LiL6L6+BgcAAAAM5pWw5o2u5LiL6L6+Cw==</Binary>
</Property>
<Property name="MCKey" />
<Property name="MCDataSourceID" />
<Property name="IsDbControl">False</Property>
<Property name="InitDataSource" />
<Property name="ActionDataSource" />
<Property name="BindDataSource" />
<Property name="DbOptionType">None</Property>
<Property name="MCVisible">True</Property>
<Property name="MCEnabled">True</Property>
<Property name="MCPurview">True</Property>
<Property name="Format" />
<Property name="TextName" />
<Property name="NewFillColor">Red</Property>
<Property name="OldFillColor">DarkGray</Property>
<Property name="Text">数据下发</Property>
<Property name="Font">宋体, 14.25pt, style=Bold</Property>
<Property name="Location">278, 3</Property>
<Property name="Name">MCButton7</Property>
<Property name="Size">115, 40</Property>
<Property name="TabIndex">3</Property>
</Object>
<Object type="Mesnac.Controls.Default.MCButton, Mesnac.Controls.Default, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" name="MCButton6" children="Controls">
<Property name="ClickActionList">
<Binary>AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJMBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EZXNpZ25BY3Rpb24sIE1lc25hYy5Db250cm9scy5CYXNlLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAjTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uW10CAAAACAgJAwAAAAEAAAARAAAABwMAAAAAAQAAAAQAAAAEIU1lc25hYy5Db250cm9scy5CYXNlLkRlc2lnbkFjdGlvbgIAAAAJBAAAAA0DBQQAAAAhTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uAwAAABU8R1VJRD5rX19CYWNraW5nRmllbGQVPE5hbWU+a19fQmFja2luZ0ZpZWxkFzxSZW1hcms+a19fQmFja2luZ0ZpZWxkAQEBAgAAAAYFAAAAIDMzQTBCOEJBN0M3NTI3OTY1RUEzRDY4QjI1QTlDQ0ZBBgYAAAAM5pWw5o2u5LiK5LygBgcAAAAM5pWw5o2u5LiK5LygCw==</Binary>
</Property>
<Property name="MCKey" />
<Property name="MCDataSourceID" />
<Property name="IsDbControl">False</Property>
<Property name="InitDataSource" />
<Property name="ActionDataSource" />
<Property name="BindDataSource" />
<Property name="DbOptionType">None</Property>
<Property name="MCVisible">True</Property>
<Property name="MCEnabled">True</Property>
<Property name="MCPurview">True</Property>
<Property name="Format" />
<Property name="TextName" />
<Property name="NewFillColor">Red</Property>
<Property name="OldFillColor">DarkGray</Property>
<Property name="Text">数据上传</Property>
<Property name="Font">宋体, 14.25pt, style=Bold</Property>
<Property name="Location">157, 3</Property>
<Property name="Name">MCButton6</Property>
<Property name="Size">115, 40</Property>
<Property name="TabIndex">3</Property>
</Object>
<Object type="Mesnac.Controls.Default.MCButton, Mesnac.Controls.Default, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" name="MCButton1" children="Controls">
<Property name="ClickActionList">
<Binary>AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJMBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EZXNpZ25BY3Rpb24sIE1lc25hYy5Db250cm9scy5CYXNlLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAjTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uW10CAAAACAgJAwAAAAEAAAARAAAABwMAAAAAAQAAAAQAAAAEIU1lc25hYy5Db250cm9scy5CYXNlLkRlc2lnbkFjdGlvbgIAAAAJBAAAAA0DBQQAAAAhTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uAwAAABU8R1VJRD5rX19CYWNraW5nRmllbGQVPE5hbWU+a19fQmFja2luZ0ZpZWxkFzxSZW1hcms+a19fQmFja2luZ0ZpZWxkAQEBAgAAAAYFAAAAIDBBNDJGOEY3OTE2QTNCNjY4REIzODMwRUE5MDJBOUQ5BgYAAAAV5Yid5aeL5YyW6YeN6YeP5Y+C5pWwBgcAAAAV5Yid5aeL5YyW6YeN6YeP5Y+C5pWwCw==</Binary>
</Property>
<Property name="MCKey" />
<Property name="MCDataSourceID" />
<Property name="IsDbControl">False</Property>
<Property name="InitDataSource" />
<Property name="ActionDataSource" />
<Property name="BindDataSource" />
<Property name="DbOptionType">None</Property>
<Property name="MCVisible">True</Property>
<Property name="MCEnabled">True</Property>
<Property name="MCPurview">True</Property>
<Property name="Format" />
<Property name="TextName" />
<Property name="NewFillColor">Red</Property>
<Property name="OldFillColor">DarkGray</Property>
<Property name="Text">刷新</Property>
<Property name="Font">宋体, 14.25pt, style=Bold</Property>
<Property name="Location">81, 3</Property>
<Property name="Name">MCButton1</Property>
<Property name="Size">70, 40</Property>
<Property name="TabIndex">3</Property>
</Object>
<Object type="Mesnac.Controls.Default.MCButton, Mesnac.Controls.Default, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" name="MCButton5" children="Controls">
<Property name="ClickActionList">
<Binary>AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJMBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EZXNpZ25BY3Rpb24sIE1lc25hYy5Db250cm9scy5CYXNlLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAjTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uW10CAAAACAgJAwAAAAEAAAASAAAABwMAAAAAAQAAAAQAAAAEIU1lc25hYy5Db250cm9scy5CYXNlLkRlc2lnbkFjdGlvbgIAAAAJBAAAAA0DBQQAAAAhTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uAwAAABU8R1VJRD5rX19CYWNraW5nRmllbGQVPE5hbWU+a19fQmFja2luZ0ZpZWxkFzxSZW1hcms+a19fQmFja2luZ0ZpZWxkAQEBAgAAAAYFAAAAIEVDNEEyNjEzRkE0NzY1MjlBRTZDQzdEQ0I1MDMyRDk2BgYAAAAS5L+u5pS56YeN6YeP5Y+C5pWwBgcAAAAS5L+u5pS56YeN6YeP5Y+C5pWwCw==</Binary>
</Property>
<Property name="MCKey" />
<Property name="MCDataSourceID" />
<Property name="IsDbControl">False</Property>
<Property name="InitDataSource" />
<Property name="ActionDataSource" />
<Property name="BindDataSource" />
<Property name="DbOptionType">None</Property>
<Property name="MCVisible">True</Property>
<Property name="MCEnabled">True</Property>
<Property name="MCPurview">True</Property>
<Property name="Format" />
<Property name="TextName" />
<Property name="NewFillColor">Red</Property>
<Property name="OldFillColor">DarkGray</Property>
<Property name="Text">修改</Property>
<Property name="Font">宋体, 14.25pt, style=Bold</Property>
<Property name="Location">5, 3</Property>
<Property name="Name">MCButton5</Property>
<Property name="Size">70, 40</Property>
<Property name="TabIndex">1</Property>
</Object>
<Property name="Dock">Top</Property>
<Property name="Location">0, 0</Property>
<Property name="Name">Panel2</Property>
<Property name="Size">584, 48</Property>
</Object>
<Object type="Mesnac.Controls.Default.MCButton, Mesnac.Controls.Default, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" name="MCButton4" children="Controls">
<Property name="ClickActionList">
<Binary>AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJMBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EZXNpZ25BY3Rpb24sIE1lc25hYy5Db250cm9scy5CYXNlLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAjTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uW10CAAAACAgJAwAAAAAAAAANAAAABwMAAAAAAQAAAAQAAAAEIU1lc25hYy5Db250cm9scy5CYXNlLkRlc2lnbkFjdGlvbgIAAAANBAs=</Binary>
</Property>
<Property name="MCKey" />
<Property name="MCDataSourceID" />
<Property name="IsDbControl">False</Property>
<Property name="InitDataSource" />
<Property name="ActionDataSource" />
<Property name="BindDataSource" />
<Property name="DbOptionType">None</Property>
<Property name="MCVisible">True</Property>
<Property name="MCEnabled">True</Property>
<Property name="MCPurview">True</Property>
<Property name="Format" />
<Property name="TextName" />
<Property name="NewFillColor">Red</Property>
<Property name="OldFillColor">DarkGray</Property>
<Property name="Text">刷新</Property>
<Property name="Font">宋体, 14.25pt, style=Bold</Property>
<Property name="Location">81, 3</Property>
<Property name="Name">MCButton4</Property>
<Property name="Size">70, 40</Property>
<Property name="TabIndex">3</Property>
</Object>
<Object type="Mesnac.Controls.Default.MCButton, Mesnac.Controls.Default, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" name="MCButton2" children="Controls">
<Property name="ClickActionList">
<Binary>AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJMBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EZXNpZ25BY3Rpb24sIE1lc25hYy5Db250cm9scy5CYXNlLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAjTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uW10CAAAACAgJAwAAAAAAAAAOAAAABwMAAAAAAQAAAAQAAAAEIU1lc25hYy5Db250cm9scy5CYXNlLkRlc2lnbkFjdGlvbgIAAAANBAs=</Binary>
</Property>
<Property name="MCKey" />
<Property name="MCDataSourceID" />
<Property name="IsDbControl">False</Property>
<Property name="InitDataSource" />
<Property name="ActionDataSource" />
<Property name="BindDataSource" />
<Property name="DbOptionType">None</Property>
<Property name="MCVisible">True</Property>
<Property name="MCEnabled">True</Property>
<Property name="MCPurview">True</Property>
<Property name="Format" />
<Property name="TextName" />
<Property name="NewFillColor">Red</Property>
<Property name="OldFillColor">DarkGray</Property>
<Property name="Text">修改</Property>
<Property name="Font">宋体, 14.25pt, style=Bold</Property>
<Property name="Location">5, 3</Property>
<Property name="Name">MCButton2</Property>
<Property name="Size">70, 40</Property>
<Property name="TabIndex">1</Property>
</Object>
<Property name="Dock">Top</Property>
<Property name="Location">0, 0</Property>
<Property name="Name">Panel1</Property>
<Property name="Size">584, 48</Property>
</Object>
<Property name="LoadActionList">
<Binary>AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJMBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EZXNpZ25BY3Rpb24sIE1lc25hYy5Db250cm9scy5CYXNlLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAjTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uW10CAAAACAgJAwAAAAEAAAAEAAAABwMAAAAAAQAAAAQAAAAEIU1lc25hYy5Db250cm9scy5CYXNlLkRlc2lnbkFjdGlvbgIAAAAJBAAAAA0DBQQAAAAhTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uAwAAABU8R1VJRD5rX19CYWNraW5nRmllbGQVPE5hbWU+a19fQmFja2luZ0ZpZWxkFzxSZW1hcms+a19fQmFja2luZ0ZpZWxkAQEBAgAAAAYFAAAAIDBBNDJGOEY3OTE2QTNCNjY4REIzODMwRUE5MDJBOUQ5BgYAAAAV5Yid5aeL5YyW6YeN6YeP5Y+C5pWwBgcAAAAV5Yid5aeL5YyW6YeN6YeP5Y+C5pWwCw==</Binary>
</Property>
<Property name="ActivatedActionList">
<Binary>AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJMBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EZXNpZ25BY3Rpb24sIE1lc25hYy5Db250cm9scy5CYXNlLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAjTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uW10CAAAACAgJAwAAAAAAAAAAAAAABwMAAAAAAQAAAAAAAAAEIU1lc25hYy5Db250cm9scy5CYXNlLkRlc2lnbkFjdGlvbgIAAAAL</Binary>
</Property>
<Property name="ReloadActionList">
<Binary>AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJMBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EZXNpZ25BY3Rpb24sIE1lc25hYy5Db250cm9scy5CYXNlLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAjTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uW10CAAAACAgJAwAAAAAAAAAAAAAABwMAAAAAAQAAAAAAAAAEIU1lc25hYy5Db250cm9scy5CYXNlLkRlc2lnbkFjdGlvbgIAAAAL</Binary>
</Property>
<Property name="RefreshDataActionList">
<Binary>AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJMBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EZXNpZ25BY3Rpb24sIE1lc25hYy5Db250cm9scy5CYXNlLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAjTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uW10CAAAACAgJAwAAAAAAAAAAAAAABwMAAAAAAQAAAAAAAAAEIU1lc25hYy5Db250cm9scy5CYXNlLkRlc2lnbkFjdGlvbgIAAAAL</Binary>
</Property>
<Property name="BHaveAction">False</Property>
<Property name="MCPurview">False</Property>
<Property name="AllowOriginalSizeShow">False</Property>
<Property name="BackColor">Control</Property>
<Property name="Size">600, 401</Property>
<Property name="StartPosition">WindowsDefaultLocation</Property>
<Property name="Text">榄菊设备参数重量管理</Property>
<Property name="WindowState">Normal</Property>
<Property name="BackgroundImage" />
<Property name="BackgroundImageLayout">Tile</Property>
<Property name="Font">宋体, 9pt</Property>
<Property name="ForeColor">ControlText</Property>
<Property name="Name">FormWeight</Property>
</Object>

@ -215,6 +215,10 @@
<SubType>Designer</SubType>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Data\EventConfig\小料称量\榄菊重量参数管理.xml">
<SubType>Designer</SubType>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Data\EventConfig\小料称量\系统配置.权限管理.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>

Loading…
Cancel
Save