Ejemplo n.º 1
0
 /// <summary>
 /// 打开格口设置窗口
 /// </summary>
 private void button_Click(object sender, EventArgs e)
 {
     try
     {
         if (_IsRepeatError || _TargetLattice != null)
         {
             MessageBox.Show("分拣作业运行中,禁止修改格口设置!");
             return;
         }
         SetTimerEnabled(false);
         var btn = sender as Button;
         var frm = new frmLatticeSettingEdit(btn.TabIndex);
         if (frm.ShowDialog() != DialogResult.OK)
         {
             return;
         }
         _LatticesettingList = OrderSortService.LoadLatticeSetting();
         var ls = _LatticesettingList.First(l => l.ID == Convert.ToInt32(btn.Name));
         btn.Text = OrderSortService.GetLatticeNewText(ls);
     }
     catch (Exception ex)
     {
         SaveErrLogHelper.SaveErrorLog(string.Empty, ex.ToString());
         MessageBox.Show(ex.Message);
     }
 }
Ejemplo n.º 2
0
 private void pKG标签打印ToolStripMenuItem_Click(object sender, EventArgs e)
 {
     try
     {
         if (_IsRepeatError || _TargetLattice != null)
         {
             MessageBox.Show("分拣作业运行中,禁止重打!");
             return;
         }
         SetTimerEnabled(false);
         new frmPkgPrint(_UserInfo).ShowDialog();
         //更新格口统计信息
         _ButtonList.ForEach(btn =>
         {
             var lattice = _LatticesettingList.Find(ls => ls.ID == btn.TabIndex);
             btn.Text    = OrderSortService.GetLatticeNewText(lattice);
         });
     }
     catch (Exception ex)
     {
         SaveErrLogHelper.SaveErrorLog(string.Empty, ex.ToString());
         MessageBox.Show(ex.Message);
     }
 }
Ejemplo n.º 3
0
 /// <summary>
 /// 检查分拣架后的按钮是否有按压动作
 /// </summary>
 /// <returns></returns>
 private Task CheckButtonAsync()
 {
     return(Task.Run(() =>
     {
         try
         {
             if (IsCheckButtonSuspending)
             {
                 return;
             }
             _IsCheckButtonRunning = true;
             foreach (var slave in _SlaveConfig)
             {
                 var registersButton = OrderSortService.ReadButtonRegisters(slave.SlaveAddress);
                 for (int i = 0; i < registersButton.Length; i++)
                 {
                     //是否有点击按钮
                     if (registersButton[i] < 15)
                     {
                         continue;
                     }
                     _ButtonLattice = _LatticesettingList.Find(lsc => lsc.CabinetId == slave.CabinetId && lsc.ButtonIndex == i);
                     //创建打包记录
                     var packingLog = OrderSortService.CreatePackingLog(_ButtonLattice, _UserInfo, 3);
                     if (packingLog != null)
                     {
                         //打印包牌
                         new PackingLabelPrintDocument().PrintSetup(packingLog);
                         //按钮颜色恢复
                         //_ButtonList.ForEach(b => b.BackColor = GetColor(3));
                         Invoke((MethodInvoker) delegate()
                         {
                             //更新格口统计信息
                             _ButtonList.FirstOrDefault(b => b.TabIndex == _ButtonLattice.ID).Text = OrderSortService.GetLatticeNewText(_ButtonLattice);
                         });
                         //_TargetLattice = null;
                         _ResultLattice = null;
                         _BlockLattice = null;
                         _ButtonLattice = null;
                         _CheckBlockNumber = 0;
                     }
                     //重置按钮计数器
                     OrderSortService.ReSetGratingOrButton(2);
                     return;
                 }
             }
         }
         catch (Exception ex)
         {
             SaveErrLogHelper.SaveErrorLog(string.Empty, ex.ToString());
             MessageBox.Show(ex.Message);
         }
         finally
         {
             _IsCheckButtonRunning = false;
         }
     }));
 }
Ejemplo n.º 4
0
        /// <summary>
        /// 检查光栅状态,检查每一个格口是否有物体通过
        /// </summary>
        private Task CheckGratingAsync()
        {
            return(Task.Run(() =>
            {
                try
                {
                    if (IsCheckGratingSuspending)
                    {
                        return;
                    }
                    _IsCheckGratingRunning = true;
                    if (_SlaveConfig == null)
                    {
                        SaveErrLogHelper.SaveErrorLog(string.Empty, "检查光栅状态时出现异常:_SlaveConfig为Null");
                    }
                    foreach (var slave in _SlaveConfig)
                    {
                        var registersGrating = OrderSortService.ReadGratingRegisters(slave.SlaveAddress);
                        if (registersGrating == null)
                        {
                            SaveErrLogHelper.SaveErrorLog(string.Empty, "检查光栅状态时出现异常:registersGrating为Null");
                            continue;
                        }

                        if (_TargetLattice == null)
                        {
                            SaveErrLogHelper.SaveErrorLog(string.Empty, "检查光栅状态时出现异常:_TargetLattice为Null");
                            continue;
                        }

                        for (int i = 0; i < registersGrating.Length; i++)
                        {
                            //是否有包裹投入
                            if (registersGrating[i] < 1)
                            {
                                continue;
                            }

                            //投放错误
                            if (_TargetLattice.GratingIndex != i || slave.CabinetId != _TargetLattice.CabinetId)
                            {
                                if (_LatticesettingList == null)
                                {
                                    SaveErrLogHelper.SaveErrorLog(string.Empty, "检查光栅状态时出现异常:_LatticesettingList为Null");
                                }
                                _ResultLattice = _LatticesettingList.Find(lsc => lsc.GratingIndex == i && lsc.CabinetId == slave.CabinetId);
                                //创建分拣记录
                                if (OrderSortService.CreateOrderSortingLog(_Orderinfo, _TargetLattice, _ResultLattice, _UserInfo, 2, 3))
                                {
                                    OrderSortService.SetWarningLight(4, 1);
                                    //亮红灯
                                    OrderSortService.SetLED(_ResultLattice, 1);
                                    _LastOrderId = string.Empty;
                                    _TargetLattice = null;
                                    _BlockLattice = null;
                                    //按钮变红色
                                    //_buttonList.ForEach(b => b.BackColor = GetColor(3));
                                    _ButtonList.FirstOrDefault(b => b.TabIndex == _ResultLattice.ID).BackColor = GetColor(1);
                                    Invoke((MethodInvoker) delegate()
                                    {
                                        lblMsg.Text = "投放错误";
                                    });
                                }
                            }
                            else
                            {
                                //创建分拣记录
                                if (OrderSortService.CreateOrderSortingLog(_Orderinfo, _TargetLattice, _TargetLattice, _UserInfo, 2, 2))
                                {
                                    OrderSortService.ReSetLED();
                                    OrderSortService.ReSetWarningLight();
                                    _LastSuccessOrderId = _Orderinfo.OrderId;
                                    Invoke((MethodInvoker) delegate()
                                    {
                                        //更新格口统计信息
                                        _ButtonList.FirstOrDefault(b => b.TabIndex == _TargetLattice.ID).Text = OrderSortService.GetLatticeNewText(_TargetLattice);
                                    });
                                    if (OrderSortService.IsFullLattice(_TargetLattice.ID))
                                    {
                                        int cabinetId = _TargetLattice.CabinetId;
                                        int index = _TargetLattice.LEDIndex;
                                        OrderSortService.SetLED(cabinetId, index, 1);
                                        Thread.Sleep(500);
                                        OrderSortService.SetLED(cabinetId, index, 3);
                                    }
                                    _LastOrderId = string.Empty;
                                    _ResultLattice = null;
                                    _BlockLattice = null;
                                    _TargetLattice = null;
                                    //按钮颜色恢复
                                    _ButtonList.ForEach(b => b.BackColor = GetColor(3));
                                    Invoke((MethodInvoker) delegate() { ResetLabelTest(); });
                                    OrderSortService.ReSetGratingOrButton(1);
                                }
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    SaveErrLogHelper.SaveErrorLog(string.Empty, ex.ToString());
                }
                finally
                {
                    _IsCheckGratingRunning = false;
                }
            }));
        }