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