/// <summary> /// 开始卸样操作 /// </summary> /// <param name="UnloadSampleId">当前卸样命令id</param> private bool StartUnloadSample(string UnloadSampleId) { if (UnloadSampleId != string.Empty) { if (UnloadSamplerDAO.GetInstance().GetUnloadSamplerState(UnloadSampleId) == eEquInfCmdResultCode.成功) { rTxtOutputer.Output("卸样完成!", eOutputType.Normal); if (MessageBoxEx.Show("卸样完成,是否发送制样计划", "系统提示", MessageBoxButtons.YesNo, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1) == DialogResult.Yes) { SendMakePlan(this.currentCmcsRCSampling.Id, this.currentCmcsRCSampling.InfactoryBatchId); currentUnloadSampleId = string.Empty; btnSendLoadCmd.Enabled = true; btnSendMakeCmd.Enabled = true; return(false); } else { currentUnloadSampleId = string.Empty; btnSendLoadCmd.Enabled = true; btnSendMakeCmd.Enabled = true; return(false); } } else if (UnloadSamplerDAO.GetInstance().GetUnloadSamplerState(UnloadSampleId) == eEquInfCmdResultCode.失败) { rTxtOutputer.Output("卸样失败!", eOutputType.Error); currentUnloadSampleId = string.Empty; btnSendLoadCmd.Enabled = true; btnSendMakeCmd.Enabled = true; return(false); } } return(true); }
/// <summary> /// 根据批次Id加载采样单列表 /// </summary> /// <param name="superGridControl"></param> /// <param name="batchId"></param> private void LoadRCSamplingList(SuperGridControl superGridControl, string batchId) { this.CurrentRCSampling = null; List <CmcsRCSampling> list = UnloadSamplerDAO.GetInstance().GetSamplings(batchId); superGridControl.PrimaryGrid.DataSource = list; }
/// <summary> /// 监听机械采样机返回结果 /// </summary> /// <returns></returns> private void SendJxSamplerUnloadCmd() { taskSimpleScheduler = new TaskSimpleScheduler(); autoResetEvent.Reset(); taskSimpleScheduler.StartNewTask("卸样业务逻辑", () => { this.IsWorking = true; // 发送卸样命令 if (qcjxcySamplerDAO.SendSampleUnloadCmd(this.CurrentSampler.EquipmentCode, this.CurrentRCSampling.Id, this.currentSampleCode, (eEquInfSamplerUnloadType)Convert.ToInt16(flpanUnloadType.Controls.OfType <RadioButton>().First(a => a.Checked).Tag), out this.currentUnloadCmdId)) { rTxtOutputer.Output("卸样命令发送成功,等待采样机执行", eOutputType.Normal); int waitCount = 0; eEquInfCmdResultCode equInfCmdResultCode; do { Thread.Sleep(10000); if (waitCount % 5 == 0) { rTxtOutputer.Output("正在等待采样机返回结果", eOutputType.Normal); } waitCount++; // 获取卸样命令的执行结果 equInfCmdResultCode = UnloadSamplerDAO.GetInstance().GetQCJXCYUnloadSamplerState(this.currentUnloadCmdId); }while (equInfCmdResultCode == eEquInfCmdResultCode.默认); if (equInfCmdResultCode == eEquInfCmdResultCode.成功) { rTxtOutputer.Output("采样机返回:卸样成功", eOutputType.Normal); // 检测制样机系统状态 if (rbtnToMaker.Checked) { string makerSystemStatus = commonDAO.GetSignalDataValue(this.makerMachineCode, eSignalDataName.系统.ToString()); if (makerSystemStatus == eEquInfSamplerSystemStatus.就绪待机.ToString()) { if (MessageBoxEx.Show("卸样成功,检测到制样机已就绪,立刻开始制样?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1) == DialogResult.Yes) { if (SendMakePlan(this.CurrentRCSampling.Id, this.CurrentRCSampling.InFactoryBatchId)) { rTxtOutputer.Output("制样命令发送成功", eOutputType.Normal); } else { rTxtOutputer.Output("制样命令发送失败", eOutputType.Error); } } } } } else if (equInfCmdResultCode == eEquInfCmdResultCode.失败) { rTxtOutputer.Output("采样机返回:卸样失败", eOutputType.Error); } } else { rTxtOutputer.Output("卸样命令发送失败", eOutputType.Error); } this.IsWorking = false; LoadSampleBarrel(superGridControl1, this.CurrentSampler.EquipmentCode); LoadLatestSampleUnloadCmd(this.CurrentSampler); autoResetEvent.Set(); }); }
/// <summary> /// 监听采样机返回结果 /// </summary> /// <returns></returns> private void SendSamplerUnloadCmd() { taskSimpleScheduler = new TaskSimpleScheduler(); autoResetEvent.Reset(); taskSimpleScheduler.StartNewTask("卸样业务逻辑", () => { this.IsWorking = true; if (rbtnToMaker.Checked) { #region 启动制样进料皮带 if (beltSamplerDAO.SendPDUnLoadCmd(this.CurrentMaker, "开始卸料")) { rTxtOutputer.Output("卸样皮带命令发送成功,等待制样机执行", eOutputType.Normal); int waitCount = 0; eEquInfCmdResultCode equInfCmdResultCode; do { Thread.Sleep(10000); if (waitCount % 5 == 0) { rTxtOutputer.Output("正在等待制样机返回结果", eOutputType.Normal); } waitCount++; // 获取卸样命令的执行结果 equInfCmdResultCode = UnloadSamplerDAO.GetInstance().GetPDUnloadState(); }while (equInfCmdResultCode == eEquInfCmdResultCode.默认); if (equInfCmdResultCode == eEquInfCmdResultCode.成功) { rTxtOutputer.Output("制样机返回:皮带启动成功", eOutputType.Normal); } else if (equInfCmdResultCode == eEquInfCmdResultCode.失败) { rTxtOutputer.Output("制样机返回:执行失败", eOutputType.Error); } } else { rTxtOutputer.Output("卸样皮带命令发送失败", eOutputType.Error); } #endregion } #region 发送采样机卸样命令 // 发送卸样命令 if (beltSamplerDAO.SendSampleUnloadCmd(this.currentSampler.EquipmentCode, this.CurrentRCSampling.Id, this.currentSampleCode, (eEquInfSamplerUnloadType)Convert.ToInt16(flpanUnloadType.Controls.OfType <RadioButton>().First(a => a.Checked).Tag), out this.currentUnloadCmdId)) { rTxtOutputer.Output("卸样命令发送成功,等待采样机执行", eOutputType.Normal); int waitCount = 0; eEquInfCmdResultCode equInfCmdResultCode; do { Thread.Sleep(10000); if (waitCount % 5 == 0) { rTxtOutputer.Output("正在等待采样机返回结果", eOutputType.Normal); } waitCount++; // 获取卸样命令的执行结果 equInfCmdResultCode = UnloadSamplerDAO.GetInstance().GetUnloadSamplerState(this.currentUnloadCmdId); }while (equInfCmdResultCode == eEquInfCmdResultCode.默认); if (equInfCmdResultCode == eEquInfCmdResultCode.成功) { rTxtOutputer.Output("采样机返回:卸样成功", eOutputType.Normal); } else if (equInfCmdResultCode == eEquInfCmdResultCode.失败) { rTxtOutputer.Output("采样机返回:卸样失败", eOutputType.Error); return; } } else { rTxtOutputer.Output("卸样命令发送失败", eOutputType.Error); return; } #endregion #region 停止制样机进料皮带 if (beltSamplerDAO.SendPDUnLoadCmd(this.CurrentMaker, "停止卸料")) //卸样完成后 卸料皮带停止 { rTxtOutputer.Output("卸样皮带停止命令发送成功,等待制样机执行", eOutputType.Normal); int waitCount = 0; eEquInfCmdResultCode equInfCmdResultCode; do { Thread.Sleep(10000); if (waitCount % 5 == 0) { rTxtOutputer.Output("正在等待制样机返回结果", eOutputType.Normal); } waitCount++; // 获取卸样命令的执行结果 equInfCmdResultCode = UnloadSamplerDAO.GetInstance().GetPDUnloadState(); }while (equInfCmdResultCode == eEquInfCmdResultCode.默认); if (equInfCmdResultCode == eEquInfCmdResultCode.成功) { rTxtOutputer.Output("制样机返回:皮带停止成功", eOutputType.Normal); } else if (equInfCmdResultCode == eEquInfCmdResultCode.失败) { rTxtOutputer.Output("制样机返回:执行失败", eOutputType.Error); return; } } else { rTxtOutputer.Output("卸样皮带命令发送失败", eOutputType.Error); return; } #endregion #region 检测制样机状态,若已就绪提示发送制样计划 // 检测制样机系统状态 if (rbtnToMaker.Checked && this.currentEquInfSampleBarrels != null && this.currentEquInfSampleBarrels[0].BarrelType == "底卸式") { string makerSystemStatus = commonDAO.GetSignalDataValue(this.CurrentMaker, eSignalDataName.设备状态.ToString()); if (makerSystemStatus == eEquInfSamplerSystemStatus.就绪待机.ToString()) { if (MessageBoxEx.Show("卸样成功,检测到制样机已就绪,立刻开始制样?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1) == DialogResult.Yes) { if (SendMakePlan(this.CurrentRCSampling.SampleCode, this.CurrentRCSampling.InFactoryBatchId)) { rTxtOutputer.Output("制样命令发送成功", eOutputType.Normal); } else { rTxtOutputer.Output("制样命令发送失败", eOutputType.Error); } } } } #endregion this.IsWorking = false; LoadBeltSampleBarrel(superGridControl1, this.CurrentSampler.EquipmentCode); LoadLatestSampleUnloadCmd(this.CurrentSampler.EquipmentCode); autoResetEvent.Set(); }); }