using BPA.Helper;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BPASmartClient.MorkTM
{
public enum MaterialPosion
{
Top1 =1, Top2 =2, Top3 =3, Top4 = 4, Top5 = 5, Top6= 6, Top7 = 7, Top8=8, Top9 =9, Top10 =10,
Top11 = 11, Top12 =12, Top13 =13, Top14 =14, Top15= 15, Top16=16, Top17 =17, Top18 =18, Top19 =19, Top20 =20,
Top21 =21, Top22 =22, Top23 =23, Top24 =24, Top25 =25, Top26 =26, Top27 =27, Top28=28
}
public enum OutMaterialPosion
{
一号位 = 1, 二号位 = 2, 三号位 = 3, 四号位 = 4, 五号位 = 5, 六号位 = 6,出料位 = 0
}
public class CommationPosionPLC
{
public CommationPosionPLC( string set,string get, Enum @enum)
{
SetPLCPosion = set;
GetPLCPosion = get;
posion = @enum;
}
public string SetPLCPosion;
public string GetPLCPosion;
public Enum posion;
}
public class PolymerBatching
{
///
/// 物料需求对应的plc点位
///
public Dictionary MaterialPosionList = new Dictionary()
{
{MaterialPosion.Top1 , "VW304"},
{MaterialPosion.Top2 , "VW308"},
{MaterialPosion.Top3 , "VW312"},
{MaterialPosion.Top4 , "VW316"},
{MaterialPosion.Top5 , "VW320"},
{MaterialPosion.Top6 , "VW324"},
{MaterialPosion.Top7 , "VW328"},
{MaterialPosion.Top8 , "VW332"},
{MaterialPosion.Top9 , "VW336"},
{MaterialPosion.Top10, "VW340" },
{MaterialPosion.Top11, "VW344" },
{MaterialPosion.Top12, "VW348" },
{MaterialPosion.Top13, "VW352" },
{MaterialPosion.Top14, "VW356" },
{MaterialPosion.Top15, "VW360" },
{MaterialPosion.Top16, "VW364" },
{MaterialPosion.Top17, "VW368" },
{MaterialPosion.Top18, "VW372" },
{MaterialPosion.Top19, "VW376" },
{MaterialPosion.Top20, "VW380" },
{MaterialPosion.Top21, "VW384" },
{MaterialPosion.Top22, "VW388" },
{MaterialPosion.Top23, "VW392" },
{MaterialPosion.Top24, "VW396" },
{MaterialPosion.Top25, "VW400" },
{MaterialPosion.Top26, "VW404" },
{MaterialPosion.Top27, "VW408" },
{MaterialPosion.Top28, "VW412" },
};
///
/// 通道校正值PLC点位
///
public Dictionary PasswayPosionList = new Dictionary()
{
{MaterialPosion.Top1 , "VW104"},
{MaterialPosion.Top2 , "VW108"},
{MaterialPosion.Top3 , "VW112"},
{MaterialPosion.Top4 , "VW116"},
{MaterialPosion.Top5 , "VW120"},
{MaterialPosion.Top6 , "VW124"},
{MaterialPosion.Top7 , "VW128"},
{MaterialPosion.Top8 , "VW132"},
{MaterialPosion.Top9 , "VW136"},
{MaterialPosion.Top10, "VW140" },
{MaterialPosion.Top11, "VW144" },
{MaterialPosion.Top12, "VW148" },
{MaterialPosion.Top13, "VW152" },
{MaterialPosion.Top14, "VW156" },
{MaterialPosion.Top15, "VW160" },
{MaterialPosion.Top16, "VW164" },
{MaterialPosion.Top17, "VW168" },
{MaterialPosion.Top18, "VW172" },
{MaterialPosion.Top19, "VW176" },
{MaterialPosion.Top20, "VW180" },
{MaterialPosion.Top21, "VW184" },
{MaterialPosion.Top22, "VW188" },
{MaterialPosion.Top23, "VW192" },
{MaterialPosion.Top24, "VW196" },
{MaterialPosion.Top25, "VW200" },
{MaterialPosion.Top26, "VW204" },
{MaterialPosion.Top27, "VW208" },
{MaterialPosion.Top28, "VW212" },
};
///
/// plc转盘点位
///
public List TurnPosionPLCs = new List()
{
//new CommationPosionPLC("M4.0","M14.0",OutMaterialPosion.一号位),
//new CommationPosionPLC("M4.1","M14.1",OutMaterialPosion.二号位),
//new CommationPosionPLC("M4.2","M14.2",OutMaterialPosion.三号位),
//new CommationPosionPLC("M4.3","M14.3",OutMaterialPosion.四号位),
//new CommationPosionPLC("M4.4","M14.4",OutMaterialPosion.五号位),
//new CommationPosionPLC("M4.5","M14.5",OutMaterialPosion.六号位),
};
///
/// plc出料点位
///
public List OutPosionPLCs = new List()
{
//new CommationPosionPLC("M0.0","M10.0",MaterialPosion.Top1),
//new CommationPosionPLC("M0.1","M10.1",MaterialPosion.Top2),
//new CommationPosionPLC("M0.2","M10.2",MaterialPosion.Top3),
//new CommationPosionPLC("M0.3","M10.3",MaterialPosion.Top4),
//new CommationPosionPLC("M0.4","M10.4",MaterialPosion.Top5),
//new CommationPosionPLC("M0.5","M10.5",MaterialPosion.Top6),
//new CommationPosionPLC("M0.6","M10.6",MaterialPosion.Top7),
//new CommationPosionPLC("M0.7","M10.7",MaterialPosion.Top8),
//new CommationPosionPLC("M1.0","M11.0",MaterialPosion.Top9),
//new CommationPosionPLC("M1.1","M11.1",MaterialPosion.Top10),
//new CommationPosionPLC("M1.2","M11.2",MaterialPosion.Top11),
//new CommationPosionPLC("M1.3","M11.3",MaterialPosion.Top12),
//new CommationPosionPLC("M1.4","M11.4",MaterialPosion.Top13),
//new CommationPosionPLC("M1.5","M11.5",MaterialPosion.Top14),
//new CommationPosionPLC("M1.6","M11.6",MaterialPosion.Top15),
//new CommationPosionPLC("M1.7","M11.7",MaterialPosion.Top16),
//new CommationPosionPLC("M2.0","M12.0",MaterialPosion.Top17),
//new CommationPosionPLC("M2.1","M12.1",MaterialPosion.Top18),
//new CommationPosionPLC("M2.2","M12.2",MaterialPosion.Top19),
//new CommationPosionPLC("M2.3","M12.3",MaterialPosion.Top20),
//new CommationPosionPLC("M2.4","M12.4",MaterialPosion.Top21),
//new CommationPosionPLC("M2.5","M12.5",MaterialPosion.Top22),
//new CommationPosionPLC("M2.6","M12.6",MaterialPosion.Top23),
//new CommationPosionPLC("M2.7","M12.7",MaterialPosion.Top24),
//new CommationPosionPLC("M3.0","M13.0",MaterialPosion.Top25),
//new CommationPosionPLC("M3.1","M13.1",MaterialPosion.Top26),
//new CommationPosionPLC("M3.2","M13.2",MaterialPosion.Top27),
//new CommationPosionPLC("M3.3","M13.3",MaterialPosion.Top28),
};
///
/// 通道绑定出料位置
///
public void GetMaterialInfo()
{
List materialPosions = Enum.GetValues(typeof(MaterialPosion)).Cast().ToList();
for (int i = 0; i < Enum.GetValues(typeof(OutMaterialPosion)).Length -1; i++)
{
if (i == 2 || i == 3)
{
GoodsMaterialPosion.Add(materialPosions.Take(4).ToList(), TurnPosionPLCs[i]);
materialPosions.RemoveRange(0, 4);
}
else
{
GoodsMaterialPosion.Add(materialPosions.Take(5).ToList(), TurnPosionPLCs[i]);
materialPosions.RemoveRange(0, 5);
}
}
}
///
/// 出料通道和出料口位置绑定集合
/// 一号位(1,2,3,4,5),二号位(6,7,8,9,10),三号位(11,12,13,14),4号位(15,16,17,18),五号位(19,20,21,22,23),六号位(24,25,26,27,28)
///
public Dictionary, CommationPosionPLC> GoodsMaterialPosion = new Dictionary, CommationPosionPLC>();
string Path = AppDomain.CurrentDomain.BaseDirectory + "AccessFile\\DeviceConfig\\PLCVars.csv";
private void init()
{
DataTable dt = ExcelHelper.ReadDataFromCSV(Path);
DataRowCollection dr = dt.Rows;
for (int i = 0; i < 28; i++)
{
OutPosionPLCs.Add(new CommationPosionPLC(dr[i][0].ToString(), dr[i][2].ToString(), (MaterialPosion)i+1));
}
for(int i = 28; i <34;i++)
{
TurnPosionPLCs.Add(new CommationPosionPLC(dr[i][0].ToString(), dr[i][2].ToString(), (OutMaterialPosion)i - 27));
}
}
public PolymerBatching()
{
init();
}
}
}