| | |
| | | using iWareCC.StationService; |
| | | using iWareCC.ThreadService; |
| | | using iWareCC.ThreadService._03_BZ12_机器人码包工位_; |
| | | using iWareCC.ThreadService._04_BZ21_搬运整垛机器人_; |
| | | using iWareCC.WCF; |
| | | using iWareCommon.Common.Globle; |
| | | using iWareCommon.Utils; |
| | |
| | | using XiGang.Core.Model; |
| | | using XiGang.Core.Model.ViewModels; |
| | | |
| | | |
| | | namespace iWareCC |
| | | { |
| | | public partial class FormCC : Form |
| | |
| | | /// 全局—是否可以运行执行出库模式 |
| | | /// </summary> |
| | | public static bool IsAllowRunOutMode = false; |
| | | |
| | | /// <summary> |
| | | /// 当前下发出库任务的包号 |
| | | /// </summary> |
| | | public static string currHandlerPackageCodeForIssueOutboundTask = ""; |
| | | |
| | | /// <summary> |
| | | /// 1号堆垛机入库口扫码强制验证通过 |
| | |
| | | //堆垛机UI赋值 |
| | | SetSrmUI(); |
| | | |
| | | tskSetSrmLable = new Thread(SrmRead_Label); |
| | | tskSetSrmLable.Start(); |
| | | |
| | | #endregion |
| | | |
| | | #region 设置显示UI |
| | | tskSetSrmLable = new Thread(SrmRead_Label); |
| | | tskSetSrmLable.Start(); |
| | | tskSetRgvLable = new Thread(SetRgvLable); |
| | | tskSetRgvLable.Start(); |
| | | |
| | | |
| | | #endregion |
| | | |
| | | #region 服务线程启动 |
| | |
| | | // rgvService.StartService(); |
| | | |
| | | |
| | | //处理【下发中】的出库计划任务 |
| | | // new Thread(OutPlanTaskDecompose.HandlerIssuingTask).Start(); |
| | | |
| | | //任务分解线程-出库 |
| | | // new Thread(MainTaskDecompose.HandlerMainTaskDecompose).Start(); |
| | | new Thread(DataProcess_RobotBuffer_ModeChange.Handler).Start(); |
| | | |
| | | //任务分解线程-组盘入库 |
| | | // new Thread(MainTaskDecompose_ZPRK.HandlerMainTaskDecompose_ZPRK).Start(); |
| | | new Thread(DataProcess_RobotBuffer_IssueOutboundTask.Handler).Start(); |
| | | |
| | | |
| | | new Thread(DataProcess_RobotBuffer_AutoQiTaoOutbound.Handler).Start(); |
| | | |
| | | new Thread(DataProcess_RobotBuffer_FinishTaskForOutbound.Handler).Start(); |
| | | |
| | | //自动组盘任务 |
| | | |
| | | new Thread(DataProcess_RobotBuffer_FinishTask.Handler).Start(); |
| | | |
| | | new Thread(DataProcess_BZ01.Handler).Start(); |
| | | |
| | | //重新获取发动机信息 |
| | | |
| | | new Thread(DataProcess_269.Handler).Start(); |
| | | |
| | | //1014库位转运到1020线程 |
| | | |
| | | |
| | | new Thread(DataProcess_BZ39.Handler).Start(); |
| | | |
| | | new Thread(DataProcess_BZ39_IssueInboundTask.Handler).Start(); |
| | | new Thread(DataProcess_BZ12.Hander).Start(); |
| | | new Thread(DataProcess_BZ12_IssueTask.Handler).Start(); |
| | | |
| | | |
| | | new Thread(DataProcess_BZ12_FinishTask.Handler).Start(); |
| | | |
| | | new Thread(DataProcess_BZ21.Hander).Start(); |
| | | new Thread(DataProcess_BZ21_IssueTask.Handler).Start(); |
| | | |
| | | new Thread(DataProcess_BZ21_FinishTask.Handler).Start(); |
| | | new Thread(DeleteData).Start(); |
| | | |
| | | new Thread(LineInSacnResult.HandlerLineInSacnResult).Start(); |
| | | new Thread(PushPackageCodeToMes.Handler).Start(); |
| | | new Thread(PushPaperCutToMes.Handler).Start(); |
| | | |
| | | |
| | | |
| | |
| | | //btn_Start_Click(null, null); |
| | | } |
| | | |
| | | |
| | | |
| | | #region 堆垛机线程和UI处理 |
| | | |
| | | /// <summary> |
| | | /// 设置1/2号堆垛机的前端显示 |
| | | /// </summary> |
| | |
| | | |
| | | var showNowTime = "(" + DateTimeHelper.ConvertToStringForOnlyShowTime(DateTime.Now) + ")"; |
| | | //设置堆垛机任务下发和任务确认线程消息 |
| | | this.lbl_Alter_Srm1Release.Text = showNowTime + SystemWarningMsg._lbl_Alert_Srm1Release; |
| | | this.lbl_Alert_DataProcess_BZ39_IssueInboundTask.Text = showNowTime + SystemWarningMsg._lbl_Alert_DataProcess_BZ39_IssueInboundTask; |
| | | this.lbl_Alert_Srm2Release.Text = showNowTime + SystemWarningMsg._lbl_Alert_Srm2Release; |
| | | this.lbl_Alert_Srm3Release.Text = showNowTime + SystemWarningMsg._lbl_Alert_Srm3Release; |
| | | this.lbl_Alert_DataProcess_BZ12.Text = showNowTime + SystemWarningMsg._lbl_alert_DataProcess_BZ12; |
| | | this.lbl_Alert_Srm4Release.Text = showNowTime + SystemWarningMsg._lbl_Alert_Srm4Release; |
| | | //设置堆垛机任务下发和任务完成确认线程消息 |
| | | this.lbl_Alter_Srm1ReleaseFinish.Text = showNowTime + SystemWarningMsg._lbl_Alert_Srm1ReleaseFinish; |
| | | this.lbl_Alert_Srm2ReleaseFinish.Text = showNowTime + SystemWarningMsg._lbl_Alert_Srm2ReleaseFinish; |
| | | this.lbl_Alert_Srm3ReleaseFinish.Text = showNowTime + SystemWarningMsg._lbl_Alert_Srm3ReleaseFinish; |
| | | this.lbl_Alert_Srm4ReleaseFinish.Text = showNowTime + SystemWarningMsg._lbl_Alert_Srm4ReleaseFinish; |
| | | this.lbl_Alert_DataProcess_BZ12_FinishTask.Text = showNowTime + SystemWarningMsg._lbl_Alert_DataProcess_BZ12_FinishTask; |
| | | this.lbl_Alert_DataProcess_BZ21_FinishTask.Text = showNowTime + SystemWarningMsg._lbl_Alert_DataProcess_BZ21_FinishTask; |
| | | |
| | | |
| | | this.lbl_Alert_RgvRelease.Text = showNowTime + SystemWarningMsg._lbl_Alert_RgvRelease; |
| | | this.lbl_Alert_RgvReleaseFinish.Text = showNowTime + SystemWarningMsg._lbl_Alert_RgvReleaseFinish; |
| | | this.lbl_Alert_RgvReleaseFinish_BuChang.Text = showNowTime + SystemWarningMsg._lbl_Alert_RgvReleaseFinish_BuChang; |
| | | |
| | | this.lbl_Alert_HandlerIssuingTask.Text = showNowTime + SystemWarningMsg._lbl_Alert_HandlerIssuingTask; |
| | | this.lbl_Alert_PushPaperCutToMes.Text = showNowTime + SystemWarningMsg._lbl_Alert_PushPaperCutToMes; |
| | | this.lbl_Alert_PushPackageCodeToMes.Text = showNowTime + SystemWarningMsg._lbl_Alert_PushPackageCodeToMes; |
| | | |
| | | this.lbl_Alert_DataProcess_BZ12_IssueTask.Text = showNowTime + SystemWarningMsg._lbl_Alert_DataProcess_BZ12_IssueTask; |
| | | |
| | | this.lbl_Alert_DataProcess_RobotBuffer_FinishTask.Text = showNowTime + SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_FinishTask; |
| | | |
| | | this.lbl_MainTaskDecompose.Text = showNowTime + SystemWarningMsg._lbl_Alert_MainTaskDecompose; |
| | | this.lbl_DataProcess_BZ21_IssueTask.Text = showNowTime + SystemWarningMsg._lbl_Alert_DataProcess_BZ21_IssueTask; |
| | | |
| | | this.lbl_MainTaskDecompose_ZPRK.Text = showNowTime + SystemWarningMsg._lbl_Alert_MainTaskDecompose_ZPRK; |
| | | this.lbl_DataProcess_RobotBuffer_ModeChange.Text = showNowTime + SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_ModeChange; |
| | | |
| | | this.lbl_Alert_DataProcess_RobotBuffer_FinishTaskForOutbound.Text = showNowTime + SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_FinishTaskForOutbound; |
| | | |
| | | this.lbl_Alert_DeleteData.Text = showNowTime + SystemWarningMsg._lbl_Alert_DeleteData; |
| | | |
| | | this.lbl_Alert_EmptySalverTransfer.Text = showNowTime + SystemWarningMsg._lbl_Alert_EmptySalverTransfer; |
| | | this.lbl_Alert_DataProcess_RobotBuffer_AutoQiTaoOutbound.Text = showNowTime + SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_AutoQiTaoOutbound; |
| | | |
| | | this.lbl_Alter_DataProcess_BZ21.Text = showNowTime + SystemWarningMsg._lbl_Alert_DataProcess_BZ21; |
| | | |
| | | this.lbl_alert_DataProcess_BZ39.Text = showNowTime + SystemWarningMsg._lbl_alert_DataProcess_BZ39; |
| | | |
| | |
| | | |
| | | this.lbl_alert_DataProcess_269.Text = showNowTime + SystemWarningMsg._lbl_alert_DataProcess_269; |
| | | |
| | | this.lbl_Alert_Place1014ClearStoreTask.Text = showNowTime + SystemWarningMsg._lbl_Alert_Place1014To1020TaskTask; |
| | | |
| | | |
| | | this.lbl_Alter_OutTaskRetryToMes.Text = showNowTime + SystemWarningMsg._lbl_Alert_OutTaskRetryToMes; |
| | | this.lbl_Alert_DataProcess_RobotBuffer_IssueOutboundTask.Text = showNowTime + SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_IssueOutboundTask; |
| | | |
| | | |
| | | |
| | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | Log4NetHelper.WriteErrorLog(iWareCommon.Utils.LogType.SrmTheadService, "方法SrmRead_Label出现异常:" + ex.Message, ex); |
| | | continue; |
| | | } |
| | | } |
| | | } |
| | | |
| | | #region 堆垛机线程和UI处理 |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 获取堆垛机的实时信息 |
| | |
| | | { |
| | | for (int i = 0; i < waringList.Count; i++) |
| | | { |
| | | DeviceWarningHandler.SaveWarning(device, iWareCommon.Utils.LogType.SrmTheadService, |
| | | DeviceWarningHandler.SaveWarning(device, iWareCommon.Utils.LogType.DataProcess_BZ39_IssueInboundTask, |
| | | waringList[i].Code, waringList[i].Address, waringList[i].Context);//新增报警 |
| | | warningAddressList.Add(waringList[i].Address); |
| | | } |
| | | } |
| | | } |
| | | DeviceWarningHandler.AutoCloseWarning(device, iWareCommon.Utils.LogType.SrmTheadService, warningAddressList);//自动关闭报警 |
| | | DeviceWarningHandler.AutoCloseWarning(device, iWareCommon.Utils.LogType.DataProcess_BZ39_IssueInboundTask, warningAddressList);//自动关闭报警 |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | Log4NetHelper.WriteErrorLog(iWareCommon.Utils.LogType.SrmTheadService, "获取" + device.ToString() + "的实时信息异常:" + ex.Message, ex); |
| | | Log4NetHelper.WriteErrorLog(iWareCommon.Utils.LogType.DataProcess_BZ39_IssueInboundTask, "获取" + device.ToString() + "的实时信息异常:" + ex.Message, ex); |
| | | continue; |
| | | } |
| | | }; |
| | |
| | | }; |
| | | realTimeList.Add(obj); |
| | | |
| | | DeviceSrmRealTimeHandler.Update(realTimeList, iWareCommon.Utils.LogType.SrmTheadService); |
| | | DeviceSrmRealTimeHandler.Update(realTimeList, iWareCommon.Utils.LogType.DataProcess_BZ39_IssueInboundTask); |
| | | |
| | | } |
| | | |
| | |
| | | |
| | | #endregion |
| | | |
| | | #region AGV |
| | | |
| | | |
| | | /// <summary> |
| | | /// 获取AGV车辆列表 |
| | | /// </summary> |
| | | public void GetAgvVehicles() |
| | | { |
| | | while (true) |
| | | { |
| | | try |
| | | { |
| | | if (SystemValue.isAllowRuning_Agv && SystemValue.isStartedModel) |
| | | { |
| | | AGVRetModel list = AgvRequestHelper.GetVehicles(); |
| | | AgvHandler.SaveAgvData(list); |
| | | |
| | | List<String> warningAddressList = new List<string>(); |
| | | if (list.alarms != null && list.alarms.errors != null && list.alarms.errors.Count > 0) |
| | | { |
| | | var waringList = list.alarms.errors; |
| | | if (waringList != null && waringList.Count > 0) |
| | | { |
| | | for (int i = 0; i < waringList.Count; i++) |
| | | { |
| | | DeviceWarningHandler.SaveWarning(EDevice.AGV, iWareCommon.Utils.LogType.AGVTheadService, |
| | | waringList[i].code, waringList[i].code, waringList[i].desc);//新增报警 |
| | | warningAddressList.Add(waringList[i].code); |
| | | } |
| | | } |
| | | } |
| | | DeviceWarningHandler.AutoCloseWarning(EDevice.AGV, iWareCommon.Utils.LogType.AGVTheadService, warningAddressList);//自动关闭报警 |
| | | this.lbl_Alert_Agv.Text = "获取AGV车辆信息成功"; |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | Log4NetHelper.WriteErrorLog(iWareCommon.Utils.LogType.CCWCFService, "获取AGV车辆列表 出现异常:" + ex.Message, ex); |
| | | this.lbl_Alert_Agv.Text = "获取AGV车辆信息异常:" + ex.Message; |
| | | } |
| | | finally |
| | | { |
| | | Thread.Sleep(5000);//5秒一次 |
| | | } |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | | #region 其他线程 |
| | | |
| | |
| | | using (var opcClinet = new SrmService.SrmServiceClient()) |
| | | { |
| | | var result = opcClinet.SendEStop((int)_EDevice); |
| | | Log4NetHelper.WriteInfoLog(iWareCommon.Utils.LogType.SrmTheadService, "字符串:" + JsonConvert.SerializeObject(result)); |
| | | Log4NetHelper.WriteInfoLog(iWareCommon.Utils.LogType.DataProcess_BZ39_IssueInboundTask, "字符串:" + JsonConvert.SerializeObject(result)); |
| | | if (result.result) |
| | | { |
| | | WZ.Useful.Commons.MessageUtil.ShowTips("发送" + _EDevice.ToString() + "急停指令成功"); |
| | |
| | | this.lbl_ModelText.Text = title + currentCheckModelText; |
| | | SetAllCheckBoxChecked(true); |
| | | //将特殊的取消 |
| | | this.ckHandlerIssuingTask.Checked = false; |
| | | this.ckMainTaskDecompose.Checked = false; |
| | | this.ck_DataProcess_BZ12_IssueTask.Checked = false; |
| | | this.ck_DataProcess_BZ21_IssueTask.Checked = false; |
| | | |
| | | this.gBoxThread.Enabled = true; |
| | | } |
| | |
| | | private void CommonCheckedChanged(object sender, EventArgs e) |
| | | { |
| | | //堆垛机1任务下发 |
| | | DoCommonCheckedChanged(ref SystemValue.isAllowRuning_SrmTaskThreadService_1, ckBSrm1Release); |
| | | DoCommonCheckedChanged(ref SystemValue.isAllowRuning_SrmTaskThreadService_1, ckB_DataProcess_BZ39_IssueInboundTask); |
| | | DoCommonCheckedChanged(ref SystemValue.isAllowRuning_SrmTaskThreadService_1_Finish, ckBSrm1FinishedHandle); |
| | | |
| | | //堆垛机2任务下发 |
| | | DoCommonCheckedChanged(ref SystemValue.isAllowRuning_SrmTaskThreadService_2, ckBSrm2Release); |
| | | DoCommonCheckedChanged(ref SystemValue.isAllowRuning_SrmTaskThreadService_2_Finish, ckBSrm2FinishedHandle); |
| | | DoCommonCheckedChanged(ref SystemValue.isAllowRuning_SrmTaskThreadService_2_Finish, ckBDataProcess_BZ12_FinishTask); |
| | | |
| | | //堆垛机3任务下发 |
| | | DoCommonCheckedChanged(ref SystemValue.isAllowRuning_SrmTaskThreadService_3, ckBSrm3Release); |
| | | DoCommonCheckedChanged(ref SystemValue.isAllowRuning_SrmTaskThreadService_3_Finish, ckBSrm3FinishedHandle); |
| | | DoCommonCheckedChanged(ref SystemValue.isAllowRuning_SrmTaskThreadService_3, ckBDataProcess_BZ12); |
| | | DoCommonCheckedChanged(ref SystemValue.isAllowRuning_SrmTaskThreadService_3_Finish, ckBDataProcess_BZ21_FinishTask); |
| | | |
| | | //堆垛机4任务下发 |
| | | DoCommonCheckedChanged(ref SystemValue.isAllowRuning_SrmTaskThreadService_4, ckBSrm4Release); |
| | |
| | | |
| | | //RGV任务下发 |
| | | DoCommonCheckedChanged(ref SystemValue.isAllowRuning_RgvThreadService, ckBRgvRelease); |
| | | DoCommonCheckedChanged(ref SystemValue.isAllowRuning_RgvThreadService_Finish, ckBRgvFinishedHandle); |
| | | DoCommonCheckedChanged(ref SystemValue.isAllowRuning_RgvThreadService_Finish_BuChang, ckBRgvFinishedHandle_BuChang); |
| | | DoCommonCheckedChanged(ref SystemValue.isAllowRuning_RgvThreadService_Finish, ckB_PushPaperCutToMes); |
| | | DoCommonCheckedChanged(ref SystemValue.isAllowRuning_RgvThreadService_Finish_BuChang, ck_PushPackageCodeToMes); |
| | | |
| | | DoCommonCheckedChanged(ref SystemValue.isAllowRuning_HandlerIssuingTask, ckHandlerIssuingTask); |
| | | DoCommonCheckedChanged(ref SystemValue.isAllowRuning_HandlerIssuingTask, ck_DataProcess_BZ12_IssueTask); |
| | | |
| | | DoCommonCheckedChanged(ref SystemValue.isAllowRuning_DataProcess_RobotBuffer_FinishTask, ck_DataProcess_RobotBuffer_FinishTask); |
| | | |
| | | DoCommonCheckedChanged(ref SystemValue.isAllowRuning_MainTaskDecompose, ckMainTaskDecompose); |
| | | DoCommonCheckedChanged(ref SystemValue.isAllowRuning_MainTaskDecompose, ck_DataProcess_BZ21_IssueTask); |
| | | |
| | | DoCommonCheckedChanged(ref SystemValue.isAllowRuning_MainTaskDecompose_ZPRK, ckMainTaskDecompose_ZPRK); |
| | | DoCommonCheckedChanged(ref SystemValue.isAllowRuning_DataProcess_RobotBuffer_ModeChange, ck_DataProcess_RobotBuffer_ModeChange); |
| | | |
| | | DoCommonCheckedChanged(ref SystemValue.isAllowRuning_DataProcess_ValidateQiTao, ck_DataProcess_ValidateQiTao); |
| | | |
| | | DoCommonCheckedChanged(ref SystemValue.isAllowRuning_DataProcess_RobotBuffer_FinishTaskForOutbound, checkBox_DataProcess_RobotBuffer_FinishTaskForOutbound); |
| | | |
| | | |
| | | DoCommonCheckedChanged(ref SystemValue.isAllowRuning_DeleteData, ckDeleteData); |
| | | |
| | | DoCommonCheckedChanged(ref SystemValue.isAllowRuning_Agv, ckAgv); |
| | | |
| | | DoCommonCheckedChanged(ref SystemValue.isAllowRuning_EmptySalverTransfer, ckEmptySalverTransfer); |
| | | DoCommonCheckedChanged(ref SystemValue.isAllowRuning_DataProcess_RobotBuffer_AutoQiTaoOutbound, ckDataProcess_RobotBuffer_AutoQiTaoOutbound); |
| | | |
| | | DoCommonCheckedChanged(ref SystemValue.isAllowRuning_DataProcess_BZ39, ck_DataProcess_BZ39); |
| | | |
| | |
| | | |
| | | DoCommonCheckedChanged(ref SystemValue.isAllowRuning_DataProcess_269, ck_DataProcess_269); |
| | | |
| | | DoCommonCheckedChanged(ref SystemValue.isAllowRuning_Place1014To1020Task, ckPlace1014ClearStoreTask); |
| | | DoCommonCheckedChanged(ref SystemValue.isAllowRuning_DataProcess_RobotBuffer_IssueOutboundTask, ck_DataProcess_RobotBuffer_IssueOutboundTask); |
| | | |
| | | DoCommonCheckedChanged(ref SystemValue.isAllowRuning_OutTaskRetryToMes, checkBox_OutTaskRetryToMes); |
| | | DoCommonCheckedChanged(ref SystemValue.isAllowRuning_OutTaskRetryToMes, checkBox_DataProcess_BZ21); |
| | | } |
| | | |
| | | private void DoCommonCheckedChanged(ref bool isAllowValue, CheckBox cb) |
| | |
| | | this.btn_Start.BackColor = default_btn_Start_Color;//还原颜色 |
| | | } |
| | | } |
| | | |
| | | this.lbl_RobotMode.Text = "缓存岛机器人模式:" + (IsAllowRunOutMode ? "出库模式" : "入库模式"); |
| | | this.lbl_currHandlerPackageCodeForIssueOutboundTask.Text = "当前下发出库任务的包号:" + currHandlerPackageCodeForIssueOutboundTask; |
| | | } |
| | | } |
| | | |
| | |
| | | "转换后:" + "\r\n" + |
| | | JsonConvert.SerializeObject(retModel); |
| | | } |
| | | |
| | | private void lbl_Alert_Place1014ClearStoreTask_Click(object sender, EventArgs e) |
| | | { |
| | | |
| | | } |
| | | |
| | | private void button24_Click(object sender, EventArgs e) |
| | | { |
| | | //强制该包号出库 |
| | | var packageCode = this.tb_PackageCode.Text.Trim(); |
| | | |
| | | var alertMsg = ""; |
| | | DataProcess_RobotBuffer_ForceOutbound.Handler(packageCode, ref alertMsg); |
| | | if (!string.IsNullOrEmpty(alertMsg)) |
| | | { |
| | | MessageBox.Show("错误:" + alertMsg); |
| | | } |
| | | else |
| | | { |
| | | MessageBox.Show("已处理"); |
| | | } |
| | | } |
| | | } |
| | | } |