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(); } } }