/// <summary> /// 根据子线的数量建立小车模型 /// 将SortingLineTasks任务列表的数据填充到小车 /// </summary> public void CreateCubesModel() { CubesModel.Clear(); SortingSubLine[] sortingSubLineList = SortingSubLineList.GetSubSortingLineList().OrderBy(o => o.sequence).ToArray(); //将分拣任务填充到小车中 for (int i = 1; i < SortingLineTasks.Length; i++) { CubeModel cubeModel = new CubeModel(); if (SortingLineTasks[i] != null) { cubeModel.Customername = SortingLineTasks[i].ShortName; cubeModel.Indexno = SortingLineTasks[i].INDEXNO; cubeModel.TotSortingLineTaskDetails = SortingLineTasks[i].SortingLineTaskDetails; cubeModel.FinSortingLineTaskDetails = SortingLineTasks[i].SortingLineTaskDetails.GetLessAreaDetails(sortingSubLineList[i - 1].sublineCode); cubeModel.TotCignum = SortingLineTasks[i].SumOrderNumber(); cubeModel.SortingLineTask = SortingLineTasks[i]; cubeModel.SubLineCode = sortingSubLineList[i - 1].sublineCode; foreach (SortingLineTaskDetail finSortingLineTaskDetail in cubeModel.FinSortingLineTaskDetails) { cubeModel.FinCignum += finSortingLineTaskDetail.QTY; } } //PLCADDRESS表示订单在小车模型中的位置,需要与界面中的CCube对应 CubesModel.Add(cubeModel); } InvokeOnUpdateCubeEvent(); }
public SortingLineTaskQueue() { SortingSubLineList sortingSubLineList = SortingSubLineList.GetSubSortingLineList(); QueueMaxCount = sortingSubLineList.Count; SortingLineTasks = new SortingLineTask[QueueMaxCount + 1]; }
/// <summary> /// 发送订单到数码管 /// </summary> public void SetOrderNixielight(SortingLineTask[] sortingLineTasks) { //熄灭所有标签 TagClear(); if (Tags == null) { Tags = new Dictionary <int, Tag>(); } //int sortinglineboxcount = SortingLineBoxList.GetLineBoxList().Count; try { //foreach (SortingLineBox sortingLineBox in SortingLineBoxList.GetLineBoxList()) //{ // Tags.Add(Convert.ToInt32(sortingLineBox.LineBoxCode), new Tag("0", Convert.ToInt32(sortingLineBox.LineBoxCode), 0)); //} SortingSubLine[] sortingSubLineList = SortingSubLineList.GetSubSortingLineList().OrderBy(o => o.sequence).ToArray(); //初始化标签的内容 for (int j = 1; j < sortingLineTasks.Length; j++) { if (sortingLineTasks[j] != null) { //当前子线包含的所有任务明细列表 IEnumerable <SortingLineTaskDetail> sortingLineTaskDetails = sortingLineTasks[j].SortingLineTaskDetails.GetAreaDetails(sortingSubLineList[j - 1].sublineCode); foreach (SortingLineTaskDetail detail in sortingLineTaskDetails) { try { Tags.Add(Convert.ToInt32(detail.LINEBOXCODE), new Tag(sortingLineTasks[j].ID, Convert.ToInt32(detail.LINEBOXCODE), detail.QTY)); //Tags[Convert.ToInt32(detail.LINEBOXCODE)] = new Tag(sortingLineTasks[j].ID, // Convert.ToInt32(detail.LINEBOXCODE), detail.QTY); } catch (Exception) { } } } } //发送标签内容 foreach (KeyValuePair <int, Tag> keyValuePair in Tags) { Dapapi.AB_LB_DspNum(GWID[0], (short)keyValuePair.Key, keyValuePair.Value.Qty, iDigitPoint, iLEDInterval); } } catch (Exception) { } }
/// <summary> /// 发送订单到数码管 /// </summary> static public Dictionary <int, Tag> SetOrderNixielight(SortingLineTask[] sortingLineTasks) { Dictionary <int, int> senDictionary = new Dictionary <int, int>(); Dictionary <int, Tag> tagDictionary = new Dictionary <int, Tag>(); int sortinglineboxcount = SortingLineBoxList.GetLineBoxList().Count; try { for (int i = 1; i <= sortinglineboxcount; i++) { senDictionary.Add(i, 0); } SortingSubLine[] sortingSubLineList = SortingSubLineList.GetSubSortingLineList().OrderBy(o => o.sequence).ToArray(); for (int j = 1; j < sortingLineTasks.Length; j++) { if (sortingLineTasks[j] != null) { //当前子线包含的所有任务明细列表 IEnumerable <SortingLineTaskDetail> sortingLineTaskDetails = sortingLineTasks[j].SortingLineTaskDetails.GetAreaDetails(sortingSubLineList[j - 1].sublineCode); foreach (SortingLineTaskDetail detail in sortingLineTaskDetails) { try { tagDictionary.Add(Convert.ToInt32(detail.LINEBOXCODE), new Tag(sortingLineTasks[j].ID, Convert.ToInt32(detail.LINEBOXCODE), detail.QTY)); senDictionary[Convert.ToInt32(detail.LINEBOXCODE)] = detail.QTY; } catch (Exception) { } } //NixielightSDK.SendByMODBUS(senDictionary); } } } catch (Exception) { } return(tagDictionary); }
/// <summary> /// 加载烟仓控件 /// </summary> public void LoadLinBox() { //建立空的烟仓控件 SortingLineBoxList sortingLineBoxList = SortingLineBoxList.GetLineBoxList(); c_Cubes = new List <C_Cube>(); cShelves = new Dictionary <string, C_Shelf>(); //cbefortUpShelves = new List<C_Shelf>(); //cbefortDownShelves = new List<C_Shelf>(); //cafterUpShelves = new List<C_Shelf>(); //cafterDownShelves = new List<C_Shelf>(); f1.Controls.Clear(); f2.Controls.Clear(); f3.Controls.Clear(); f4.Controls.Clear(); f5.Controls.Clear(); f6.Controls.Clear(); f7.Controls.Clear(); f8.Controls.Clear(); SortingSubLineList sortingSubLineList = SortingSubLineList.GetSubSortingLineList(); if (sortingSubLineList.Count == 1) { f1.Width += f2.Width; top.SetColumnSpan(f1, 3); panel1.Visible = false; top.SetColumnSpan(f3, 3); panel2.Visible = false; bottom.SetColumnSpan(f5, 3); panel4.Visible = false; bottom.SetColumnSpan(f7, 3); panel5.Visible = false; f2.Visible = false; f4.Visible = false; f6.Visible = false; f8.Visible = false; } if (sortingLineBoxList.Count > 0) { foreach (SortingLineBox sortingLineBox in sortingLineBoxList) { if (sortingLineBox.PARENTLINEBOX == "1" && sortingLineBox.ABANDONPARENT == "2" && sortingLineBox.SublineSeq == 1) { C_Shelf cShelf = CreateShelf(sortingLineBox); cShelves.Add(cShelf.Name, cShelf); cShelf.Margin = new Padding(0, 0, 1, 0); InitLineBoxControl(cShelf, f1); } else if (sortingLineBox.PARENTLINEBOX == "1" && sortingLineBox.ABANDONPARENT == "2" && sortingLineBox.SublineSeq == 2) { C_Shelf cShelf = CreateShelf(sortingLineBox); cShelves.Add(cShelf.Name, cShelf); cShelf.Margin = new Padding(0, 0, 1, 0); InitLineBoxControl(cShelf, f1); } else if (sortingLineBox.PARENTLINEBOX == "1" && sortingLineBox.ABANDONPARENT == "1" && sortingLineBox.SublineSeq == 1) { C_Shelf cShelf = CreateShelf(sortingLineBox); cShelves.Add(cShelf.Name, cShelf); cShelf.Margin = new Padding(0, 0, 1, 0); InitLineBoxControl(cShelf, f3); } else if (sortingLineBox.PARENTLINEBOX == "1" && sortingLineBox.ABANDONPARENT == "1" && sortingLineBox.SublineSeq == 2) { C_Shelf cShelf = CreateShelf(sortingLineBox); cShelves.Add(cShelf.Name, cShelf); cShelf.Margin = new Padding(0, 0, 1, 0); InitLineBoxControl(cShelf, f3); } else if (sortingLineBox.PARENTLINEBOX == "2" && sortingLineBox.ABANDONPARENT == "2" && sortingLineBox.SublineSeq == 1) { C_Shelf cShelf = CreateShelf(sortingLineBox); cShelves.Add(cShelf.Name, cShelf); cShelf.Margin = new Padding(0, 0, 1, 0); InitLineBoxControl(cShelf, f5); } else if (sortingLineBox.PARENTLINEBOX == "2" && sortingLineBox.ABANDONPARENT == "2" && sortingLineBox.SublineSeq == 2) { C_Shelf cShelf = CreateShelf(sortingLineBox); cShelves.Add(cShelf.Name, cShelf); cShelf.Margin = new Padding(0, 0, 1, 0); InitLineBoxControl(cShelf, f5); } else if (sortingLineBox.PARENTLINEBOX == "2" && sortingLineBox.ABANDONPARENT == "1" && sortingLineBox.SublineSeq == 1) { C_Shelf cShelf = CreateShelf(sortingLineBox); cShelves.Add(cShelf.Name, cShelf); cShelf.Margin = new Padding(0, 0, 1, 0); InitLineBoxControl(cShelf, f7); } else if (sortingLineBox.PARENTLINEBOX == "2" && sortingLineBox.ABANDONPARENT == "1" && sortingLineBox.SublineSeq == 2) { C_Shelf cShelf = CreateShelf(sortingLineBox); if (sortingLineBox.LineBoxCode == "123") { cShelf = CreateShelf(sortingLineBox); } else { cShelf = CreateShelf(sortingLineBox); } cShelves.Add(cShelf.Name, cShelf); cShelf.Margin = new Padding(0, 0, 1, 0); InitLineBoxControl(cShelf, f7); } } } //如果不能下达任务根据老的列表,给数码管发信号 SortingTaskIssued sortingTaskIssued = SortingTaskIssued.GetSortingTaskIssued("0"); if (sortingTaskIssued.PLCFLAG == 1) { ATOPTagSdk.instance.SetOrderNixielight(SortingLineTaskQueue.GetInstance().SortingLineTasks); UpdateLineboxNum(); } //是否显示烟仓容量 if (chkshowqty.Checked) { chkshowqty_CheckedChanged(null, null); } }