示例#1
0
        private void edit_Click(object sender, RoutedEventArgs e)
        {
            var tray11_code = this.tray11_code.Text.Trim();
            var tray12_code = this.tray12_code.Text.Trim();
            var tray13_code = this.tray13_code.Text.Trim();
            var tray21_code = this.tray21_code.Text.Trim();
            var tray22_code = this.tray22_code.Text.Trim();
            var tray23_code = this.tray23_code.Text.Trim();

            var jaw_traycode   = this.jaw_traycode.Text.Trim();
            var still_timespan = this.still_timespan.Text.Trim();

            var product_model = this.product_model.Text.Trim();

            tip.Background = new SolidColorBrush(Colors.Red);

            try
            {
                var tray11_id = GetObject.GetByCode <ProcTray>(tray11_code).Id;
                if (tray11_id != Current.Option.Tray11_Id && tray11_id > 0)
                {
                    var result = Current.MainMachine.Commor.Write("D434", (ushort)1);
                    if (!result.IsSucceed)
                    {
                        Running.ShowErrorMsg("手动输入绑盘托盘条码后发送给PLC结果失败,msg:" + result.Msg);
                    }
                }

                Current.Option.Tray11_Id = tray11_id;
                Current.Option.Tray12_Id = GetObject.GetByCode <ProcTray>(tray12_code).Id;
                Current.Option.Tray13_Id = GetObject.GetByCode <ProcTray>(tray13_code).Id;
                Current.Option.Tray21_Id = GetObject.GetByCode <ProcTray>(tray21_code).Id;
                Current.Option.Tray22_Id = GetObject.GetByCode <ProcTray>(tray22_code).Id;
                Current.Option.Tray23_Id = GetObject.GetByCode <ProcTray>(tray23_code).Id;

                Current.Option.JawProcTrayId    = GetObject.GetByCode <ProcTray>(jaw_traycode).Id;
                Current.Option.StillTimeSpan    = Convert.ToInt32(still_timespan);
                Current.Option.TaskPriorityType = GetTaskPriorityType();

                Current.Option.ProductModel = product_model;

                tip.Background = new SolidColorBrush(Colors.Green);
                tip.Text       = "修改信息成功!";
            }
            catch (Exception ex)
            {
                tip.Text = "修改信息失败:" + ex.Message;
            }

            tip.Visibility = Visibility.Visible;
        }
示例#2
0
        private void btnFinishPack_Click(object sender, RoutedEventArgs e)
        {
            var sortPack = (SortPackViewModel)sort_pack_list.SelectedItem;

            if (sortPack == null)
            {
                Running.ShowErrorMsg("请选中要打包的类型!");
                return;
            }

            var text = string.Format("当前您选中的打包类型为:{0}, 箱体中包含电池个数:{1}\r\n确定要结束打包?", sortPack.SortResult, sortPack.Count);

            if (MessageBox.Show(text, "结束打包确认", MessageBoxButton.OKCancel) != MessageBoxResult.OK)
            {
                return;
            }

            var result = PackManage.Finish(sortPack);

            if (result.IsFailed)
            {
                Running.ShowErrorMsg(result.Msg);
                return;
            }

            //打开保存二维码的文件夹
            var dirPath = QRCoderManage.GetSaveQRCodeDirPath(sortPack.SortResult);

            try
            {
                System.Diagnostics.Process.Start(dirPath);
            }
            catch (Exception ex)
            {
                Running.ShowErrorMsg(ex.Message);
            }
        }
示例#3
0
        public static void AfterPack(int pos)
        {
            var procTrayId = Current.Option.Tray23_Id > 0 ? Current.Option.Tray23_Id : Current.Option.Tray23_PreId;
            var result     = BatteryManage.GetBattery(procTrayId, pos);

            if (result.IsFailed)
            {
                return;
            }

            var battery = (Battery)result.Data;

            if (battery.SortResult == SortResult.Unknown || (int)battery.SortResult > 5)
            {
                return;
            }

            var sortResult = battery.SortResult;

            var sortPack = Current.SortPacks.FirstOrDefault(o => o.SortResult == sortResult);

            result = BatteryManage.GetFillBatteryCount(sortPack.PackId);
            if (result.IsFailed)
            {
                Running.ShowErrorMsg(result.Msg);
                return;
            }

            var fillCount = (int)result.Data;

            //新建箱体
            if (sortPack.PackId == 0 || fillCount == Common.PACK_FILL_COUNT)
            {
                if (fillCount == Common.PACK_FILL_COUNT)
                {
                    PackManage.Finish(sortPack);
                }

                var code = sortResult + DateTime.Now.ToString("yyMMddHHmm"); //箱体号
                result = new PackManage().Create(new Pack(code, sortResult));
                if (result.IsFailed)
                {
                    Running.ShowErrorMsg("新建箱体异常:" + result.Msg);
                    return;
                }
                sortPack.PackId = (int)result.Data;
                sortPack.Count  = 0;
            }

            result = BatteryManage.SetPacking(battery.Id, sortPack.PackId);
            if (result.IsFailed)
            {
                return;
            }

            sortPack.Count++;

            //if (sortPack.Count % Current.Option.PACK_ALARM_COUNT == 0)
            //{
            //    if (IsPackEnabled)
            //    {
            //        this.Commor.Write("Dxxx", (ushort)0);
            //    }
            //}
        }
示例#4
0
        private void RunningControl_Click(object sender, RoutedEventArgs e)
        {
            if (Arthur.App.Current.Option.RemainingMinutes <= 0)
            {
                MessageBox.Show("软件已经过期,无法操作!");
                return;
            }

            var btn = (ProcButton)sender;

            if (btn.Name == "start")
            {
                if (TimerExec.IsRunning)
                {
                    Current.App.ErrorMsg = "系统已经在运行,请勿重复启动!";
                    return;
                }

                if (Current.App.RunStatus == RunStatus.异常)
                {
                    Current.App.ErrorMsg = "请先复位!";
                    return;
                }

                var result = Running.Start();
                if (result.IsSucceed)
                {
                    Logging.AddEvent("点击【启动】", Arthur.App.Model.EventType.信息);
                }
                else
                {
                    Running.ShowErrorMsg(result.Msg);
                }
            }
            else if (btn.Name == "stop")
            {
                if (!TimerExec.IsRunning)
                {
                    Current.App.ErrorMsg = "系统没有在运行,操作无效!";
                    return;
                }

                var result = Running.Stop();
                if (result.IsSucceed)
                {
                    Logging.AddEvent("点击【停止】", Arthur.App.Model.EventType.信息);
                }
                else
                {
                    Running.ShowErrorMsg(result.Msg);
                }
            }
            else if (btn.Name == "reset")
            {
                if (Current.App.RunStatus == RunStatus.运行)
                {
                    Current.App.ErrorMsg = "系统正在运行,复位无效,请停止运行后再执行复位操作!";
                    return;
                }

                var result = Running.Reset();
                if (result.IsSucceed)
                {
                    Logging.AddEvent("点击【复位】", Arthur.App.Model.EventType.信息);
                }
                else
                {
                    Running.ShowErrorMsg(result.Msg);
                }
            }
        }
        public void Comm()
        {
            if (Arthur.App.Current.Option.RemainingMinutes <= 0)
            {
                return;
            }

            if (Current.MainMachine.IsAlive && Current.Option.IsBatteryScanReady && !Current.Option.IsAlreadyBatteryScan && Current.Option.Tray11_Id > 0)
            {
                //绑盘位电池已满,不扫码,直到出现新托盘再扫
                if (ProcTrayManage.GetBatteryCount(Current.Option.Tray11_Id) >= Common.TRAY_BATTERY_COUNT)
                {
                    Running.ShowErrorMsg("绑盘位扫码电池数超过最大值:" + Common.TRAY_BATTERY_COUNT);
                    return;
                }

                Current.Option.IsAlreadyBatteryScan = true;
                var ret = this.Commor.Comm(this.ScanCommand, this.ReadTimeout);
                if (!ret.IsSucceed || ret.Data.ToString().StartsWith("NG"))
                {
                    ret = this.Commor.Comm(this.ScanCommand, this.ReadTimeout);
                    if (!ret.IsSucceed || ret.Data.ToString().StartsWith("NG"))
                    {
                        ret = this.Commor.Comm(this.ScanCommand, this.ReadTimeout);
                        if (!ret.IsSucceed || ret.Data.ToString().StartsWith("NG"))
                        {
                            var msg = ret.Data.ToString().StartsWith("NG") ? "扫码NG" : " 扫码失败!" + ret.Msg;
                            this.RealtimeStatus = msg;
                            Current.MainMachine.Commor.Write("D433", (ushort)2);
                            Running.ShowErrorMsg(this.Name + msg);
                            this.IsAlive = false;
                            return;
                        }
                    }
                }

                var code = ret.Data.ToString();
                this.RealtimeStatus = "+" + code;
                Current.MainMachine.Commor.Write("D433", (ushort)1);
                this.IsAlive = true;

                //把电池条码保存进数据库
                var saveRet = new Business.BatteryManage().Create(new Model.Battery()
                {
                    Code = code
                }, true);
                if (saveRet.IsSucceed)
                {
                    var t = new Thread(() =>
                    {
                        //界面交替显示扫码状态
                        Thread.Sleep(2000);
                        this.RealtimeStatus = "等待扫码...";
                    });
                    t.Start();
                }
                else
                {
                    Running.StopRunAndShowMsg(saveRet.Msg);
                }
            }
        }
示例#6
0
        public void Comm()
        {
            if (Arthur.App.Current.Option.RemainingMinutes <= 0)
            {
                return;
            }

            if (!Current.MainMachine.IsAlive)
            {
                return;
            }

            if (this == Current.BindTrayScaner && Current.Option.IsBindTrayScanReady && !Current.Option.IsAlreadyBindTrayScan)
            {
                LogHelper.WriteInfo("开始绑盘托盘扫码。。。");
                var ret = this.Commor.Comm(this.ScanCommand, this.ReadTimeout);
                if (ret.IsSucceed)
                {
                    var result = true;
                    var code   = ret.Data.ToString();
                    if (code.StartsWith("NR"))
                    {
                        var ret2 = this.Commor.Comm(this.ScanCommand, this.ReadTimeout);
                        if (ret2.IsSucceed && !ret2.Data.ToString().StartsWith("NR"))
                        {
                            code = ret2.Data.ToString();
                        }
                        else
                        {
                            result = false;
                            LogHelper.WriteError(this.Name + " 扫码失败!");
                            Running.ShowErrorMsg(this.Name + " 扫码失败!");
                        }
                    }

                    if (result)
                    {
                        LogHelper.WriteInfo(this.Name + "扫码OK。。。");
                        this.RealtimeStatus = "+" + code;
                        Current.MainMachine.Commor.Write("D434", (ushort)1);

                        var saveRet = Result.Success;
                        if (Current.Option.Tray11_Id < 1)
                        {
                            //把电池条码保存进数据库
                            saveRet = new Business.ProcTrayManage().Create(new Model.ProcTray()
                            {
                                Code = code
                            }, true);
                            Current.Option.Tray11_Id = (int)saveRet.Data;
                        }

                        if (saveRet.IsSucceed)
                        {
                            var t = new Thread(() =>
                            {
                                //界面交替显示扫码状态
                                Thread.Sleep(2000);
                                this.RealtimeStatus = "等待扫码...";
                            });
                            t.Start();
                        }
                        else
                        {
                            Running.StopRunAndShowMsg(saveRet.Msg);
                        }
                    }
                    else
                    {
                        LogHelper.WriteInfo(this.Name + "扫码NG。。。");
                        Current.MainMachine.Commor.Write("D434", (ushort)2);
                        this.RealtimeStatus = "扫码失败!";
                    }
                    this.IsAlive = true;
                }
                else
                {
                    LogHelper.WriteInfo(this.Name + "扫码NG。。。");

                    Current.MainMachine.Commor.Write("D434", (ushort)2);
                    this.RealtimeStatus = ret.Msg;
                    this.IsAlive        = false;
                }
                Current.Option.IsAlreadyBindTrayScan = true;
            }
            else if (this == Current.UnbindTrayScaner && Current.Option.IsUnbindTrayScanReady && !Current.Option.IsAlreadyUnbindTrayScan)
            {
                LogHelper.WriteInfo("开始解盘托盘扫码。。。");
                var ret = this.Commor.Comm(this.ScanCommand, this.ReadTimeout);
                if (ret.IsSucceed)
                {
                    var result = true;
                    var code   = ret.Data.ToString();
                    if (code.StartsWith("NR"))
                    {
                        var ret2 = this.Commor.Comm(this.ScanCommand, this.ReadTimeout);
                        if (ret2.IsSucceed && !ret2.Data.ToString().StartsWith("NR"))
                        {
                            code = ret2.Data.ToString();
                        }
                        else
                        {
                            result = false;
                            LogHelper.WriteError(this.Name + " 扫码失败!");
                            Running.ShowErrorMsg(this.Name + " 扫码失败!");
                        }
                    }

                    if (result)
                    {
                        LogHelper.WriteInfo(this.Name + "扫码OK。。。");
                        this.RealtimeStatus = "+" + code;
                        Current.MainMachine.Commor.Write("D435", (ushort)1);


                        var saveRet = Result.Success;

                        //逻辑处理
                        var procTrayId = GetObject.GetByCode <ProcTray>(code).Id;
                        if (Current.Option.Tray21_Id < 1 || Current.Option.Tray21_Id != procTrayId)
                        {
                            Current.Option.Tray21_Id = procTrayId;
                        }

                        if (saveRet.IsSucceed)
                        {
                            var t = new Thread(() =>
                            {
                                //界面交替显示扫码状态
                                Thread.Sleep(2000);
                                this.RealtimeStatus = "等待扫码...";
                            });
                            t.Start();
                        }
                        else
                        {
                            Running.StopRunAndShowMsg(saveRet.Msg);
                        }
                    }
                    else
                    {
                        LogHelper.WriteInfo(this.Name + "扫码NG。。。");
                        Current.MainMachine.Commor.Write("D435", (ushort)(Common.PROJ_NO == "0079" ? 2 : 1));
                        this.RealtimeStatus = "扫码失败!";
                    }
                    this.IsAlive = true;
                }
                else
                {
                    LogHelper.WriteInfo(this.Name + "扫码NG。。。");
                    Current.MainMachine.Commor.Write("D435", (ushort)(Common.PROJ_NO == "0079" ? 2 : 1));
                    this.RealtimeStatus = ret.Msg;
                    this.IsAlive        = false;
                }
                Current.Option.IsAlreadyUnbindTrayScan = true;
            }
        }