Example #1
0
        /// <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();
        }
Example #2
0
        public SortingLineTaskQueue()
        {
            SortingSubLineList sortingSubLineList = SortingSubLineList.GetSubSortingLineList();

            QueueMaxCount    = sortingSubLineList.Count;
            SortingLineTasks = new SortingLineTask[QueueMaxCount + 1];
        }
Example #3
0
        /// <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)
            {
            }
        }
Example #4
0
        /// <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);
        }
Example #5
0
        /// <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);
            }
        }