From 453f3ba748ffd991521039dd7a73c6dbfb18c50d Mon Sep 17 00:00:00 2001 From: bestlqiang Date: Wed, 2 Dec 2020 09:16:19 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E6=AD=A5OK?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- LaiPuLaser/Camera.cpp | 4 + LaiPuLaser/CameraHawkvis.cpp | 2 - LaiPuLaser/DlgDnCutCamera.cpp | 111 ++++---- LaiPuLaser/EncryptionMgr.cpp | 2 +- LaiPuLaser/LogMgr.cpp | 2 +- LaiPuLaser/LogMgr.h | 2 + LaiPuLaser/ModuleDeviceMgr.cpp | 2 +- LaiPuLaser/MotionCard_PCI1245.cpp | 8 + LaiPuLaser/Program_SZ_XL.cpp | 101 +++++--- LaiPuLaser/Program_SZ_XL.h | 1 - LaiPuLaser/Program_SZ_XL_TrackWorkFlow.cpp | 284 ++++++++++++--------- LaiPuLaser/Program_SZ_XL_TrackWorkFlow.h | 1 + 12 files changed, 309 insertions(+), 211 deletions(-) diff --git a/LaiPuLaser/Camera.cpp b/LaiPuLaser/Camera.cpp index 55aece8..923aa8b 100644 --- a/LaiPuLaser/Camera.cpp +++ b/LaiPuLaser/Camera.cpp @@ -453,6 +453,10 @@ Dbxy CCamera::CCDcoord2Platformcoord(Dbxy CCDpt) LogStr.Format(_T("[CameraCoord.x] = [%0.3f] ,[CameraCoord.y] = [%0.3f]"),CameraCoord.x,CameraCoord.y); gLogMgr->WriteDebugLog(LogStr); Dbxy PlatformPt = gPlatformXY->GetCoord(); + if (gLogMgr->IsDebuging()) + { + PlatformPt=gLogMgr->LastTargetCoord; + } LogStr.Format(_T("[PlatformCoord.x] = [%0.3f] ,[PlatformCoord.y] = [%0.3f]"),PlatformPt.x,PlatformPt.y); gLogMgr->WriteDebugLog(LogStr); CameraCoord.x = CameraCoord.x - PlatformPt.x; diff --git a/LaiPuLaser/CameraHawkvis.cpp b/LaiPuLaser/CameraHawkvis.cpp index 37a87d8..1a4a5ee 100644 --- a/LaiPuLaser/CameraHawkvis.cpp +++ b/LaiPuLaser/CameraHawkvis.cpp @@ -178,8 +178,6 @@ bool CCameraHawkvis::CatchPoint(Dbxy &pt) m_HawkvisCtrl->ClearGraphicObject(); //抓取一帧 #ifdef __HAWKVIS_MINDVISION_CCD__ - m_HawkvisCtrl->MV_GetOneFrame(); - Sleep(100); if (!m_HawkvisCtrl->MV_GetOneFrame()) #else if (!m_HawkvisCtrl->HV_GetOneFrame()) diff --git a/LaiPuLaser/DlgDnCutCamera.cpp b/LaiPuLaser/DlgDnCutCamera.cpp index 97d19e0..23d02b0 100644 --- a/LaiPuLaser/DlgDnCutCamera.cpp +++ b/LaiPuLaser/DlgDnCutCamera.cpp @@ -117,12 +117,24 @@ BOOL DlgHawkvisCamera::OnInitDialog() m_HawkvisCtrl1.MV_SetCameraExpTime(gCameraHawkvis->m_nCam1Expore); m_nExpore = gCameraHawkvis->m_nCam1Expore; } + else + { + AfxMessageBox("相机1 MV_OpenCamera 失败!"); + } m_HawkvisCtrl1.SetCrossShow(1, 30, 30, -1, -1, TRUE); if (m_HawkvisCtrl1.MV_GetOneFrame()) { m_HawkvisCtrl1.ZoomFitWindow(); } + else + { + AfxMessageBox("相机1 MV_GetOneFrame 失败!"); + } } + /* else + { + gLogMgr->WriteDebugLog("*****未发现相机[1]!"); + }*/ if (m_HawkvisCtrl2.MV_SelectAdapterByIdx(1)) { @@ -130,14 +142,25 @@ BOOL DlgHawkvisCamera::OnInitDialog() { m_pHawkvisCtrl = &m_HawkvisCtrl2; m_HawkvisCtrl2.MV_SetCameraExpTime(gCameraHawkvis->m_nCam2Expore); - //m_nExpore = gCameraHawkvis->m_nCam2Expore; + } + else + { + AfxMessageBox("相机2 MV_OpenCamera 失败!"); } m_HawkvisCtrl2.SetCrossShow(1, 30, 30, -1, -1, TRUE); if (m_HawkvisCtrl2.MV_GetOneFrame()) { m_HawkvisCtrl2.ZoomFitWindow(); } + else + { + AfxMessageBox("相机2 MV_GetOneFrame 失败!"); + } } + /*else + { + gLogMgr->WriteDebugLog("*****未发现相机[2]!"); + }*/ } catch (...) { @@ -150,7 +173,7 @@ BOOL DlgHawkvisCamera::OnInitDialog() void DlgHawkvisCamera::UpdateInfo() { //换文件时,自动换模板 - if ( (!gLogMgr->IsDebuging()) && gCameraHawkvis->GetCurShapeModelID() != m_ShapeModelID) + if ((!gLogMgr->IsDebuging()) && gCameraHawkvis->GetCurShapeModelID() != m_ShapeModelID) { m_ShapeModelID = gCameraHawkvis->GetCurShapeModelID(); @@ -169,8 +192,8 @@ void DlgHawkvisCamera::UpdateInfo() if (gCameraHawkvis->GetCamIndex() == 0) { m_pHawkvisCtrl = &m_HawkvisCtrl1; - ( (CButton*)GetDlgItem(IDC_RADIO1) )->SetCheck(FALSE); - ( (CButton*)GetDlgItem(IDC_RADIO3) )->SetCheck(TRUE); + ((CButton*)GetDlgItem(IDC_RADIO1))->SetCheck(FALSE); + ((CButton*)GetDlgItem(IDC_RADIO3))->SetCheck(TRUE); } if (gCameraHawkvis->GetCamIndex() == 1) { @@ -181,7 +204,7 @@ void DlgHawkvisCamera::UpdateInfo() } UpdateData(FALSE); -} + } void DlgHawkvisCamera::Update() { SetTimer(WORK_TIMER1, WORK_TIME_DELAY1, NULL);//用timer来更新,否则会报错 @@ -209,7 +232,7 @@ void DlgHawkvisCamera::OnBnClickedOpenCam() } else gLogMgr->WriteDebugLog("Hawkvis : Open Cam ---->ERR"); - } +} void DlgHawkvisCamera::OnBnClickedCloseCam() { #ifdef __HAWKVIS_MINDVISION_CCD__ @@ -224,14 +247,14 @@ void DlgHawkvisCamera::OnBnClickedCloseCam() #else m_HawkvisCtrl.HV_CloseCamera(); #endif - + } void DlgHawkvisCamera::OnBnClickedFrameOne() { m_pHawkvisCtrl->SetCrossShow(1, 30, 30, -1, -1, ((CButton*)GetDlgItem(IDC_CROSS_CHECK))->GetCheck()); #ifdef __HAWKVIS_MINDVISION_CCD__ - /*m_pHawkvisCtrl->MV_GetOneFrame(); - Sleep(100);*/ + /*m_pHawkvisCtrl->MV_GetOneFrame(); +Sleep(100);*/ if (m_pHawkvisCtrl->MV_GetOneFrame()) #else if (m_HawkvisCtrl.HV_GetOneFrame()) @@ -475,7 +498,7 @@ void DlgHawkvisCamera::OnBnClickedToCam1() { if (m_pHawkvisCtrl->MV_OpenCamera()) { - OnBnClickedLoadCatchTemp();//读取模板 + OnBnClickedLoadCatchTemp();//读取模板 m_pHawkvisCtrl->MV_SetCameraExpTime(gCameraHawkvis->m_nCam1Expore); m_nExpore = gCameraHawkvis->m_nCam1Expore; //UpdateData(FALSE); @@ -527,46 +550,46 @@ void DlgHawkvisCamera::OnBnClickedToCam2() m_pHawkvisCtrl = &m_HawkvisCtrl2; return; -/* - try - { - m_pHawkvisCtrl->MV_CloseCamera(); - if (m_pHawkvisCtrl->MV_SelectAdapterByIdx(1)) + /* + try { - if (m_pHawkvisCtrl->MV_OpenCamera()) + m_pHawkvisCtrl->MV_CloseCamera(); + if (m_pHawkvisCtrl->MV_SelectAdapterByIdx(1)) { - OnBnClickedLoadCatchTemp();//读取模板 - m_pHawkvisCtrl->MV_SetCameraExpTime(gCameraHawkvis->m_nCam2Expore); - m_nExpore = gCameraHawkvis->m_nCam2Expore; - //UpdateData(FALSE); - //OnBnClickedSetExpore();//设置曝光 - } - m_pHawkvisCtrl->SetCrossShow(1, 30, 30, -1, -1, ((CButton*)GetDlgItem(IDC_CROSS_CHECK))->GetCheck()); - if (m_pHawkvisCtrl->MV_GetOneFrame()) + if (m_pHawkvisCtrl->MV_OpenCamera()) + { + OnBnClickedLoadCatchTemp();//读取模板 + m_pHawkvisCtrl->MV_SetCameraExpTime(gCameraHawkvis->m_nCam2Expore); + m_nExpore = gCameraHawkvis->m_nCam2Expore; + //UpdateData(FALSE); + //OnBnClickedSetExpore();//设置曝光 + } + m_pHawkvisCtrl->SetCrossShow(1, 30, 30, -1, -1, ((CButton*)GetDlgItem(IDC_CROSS_CHECK))->GetCheck()); + if (m_pHawkvisCtrl->MV_GetOneFrame()) + { + m_pHawkvisCtrl->ZoomFitWindow(); + } + } + else { - m_pHawkvisCtrl->ZoomFitWindow(); + static bool bfirst = true; + if (bfirst) + { + AfxMessageBox("打开相机2失败!");//报错一次 + bfirst = false; + } } + + m_DlgCurCamIndex = 1; + gCameraHawkvis->SetCamIndex(1); + ((CButton*)GetDlgItem(IDC_RADIO1))->SetCheck(TRUE); + ((CButton*)GetDlgItem(IDC_RADIO3))->SetCheck(FALSE); + gLogMgr->WriteDebugLog("Switch To Cam2"); } - else + catch (...) { - static bool bfirst = true; - if (bfirst) - { - AfxMessageBox("打开相机2失败!");//报错一次 - bfirst = false; - } - } - - m_DlgCurCamIndex = 1; - gCameraHawkvis->SetCamIndex(1); - ((CButton*)GetDlgItem(IDC_RADIO1))->SetCheck(TRUE); - ((CButton*)GetDlgItem(IDC_RADIO3))->SetCheck(FALSE); - gLogMgr->WriteDebugLog("Switch To Cam2"); -} - catch (...) - { - AfxMessageBox("打开相机2 异常!");//报错一次 - }*/ + AfxMessageBox("打开相机2 异常!");//报错一次 + }*/ } diff --git a/LaiPuLaser/EncryptionMgr.cpp b/LaiPuLaser/EncryptionMgr.cpp index 281520b..debf8a8 100644 --- a/LaiPuLaser/EncryptionMgr.cpp +++ b/LaiPuLaser/EncryptionMgr.cpp @@ -81,7 +81,7 @@ bool CEncryptionMgr::CheckLockState() { m_LeftDays = 0;//剩余的天数 } - else if(code>0 && code!=7)//其他错误(不要检查磁盘序列号) + else if((code>0) &&( code!=7)&&(!gLogMgr->IsDebuging())) //其他错误(不要检查磁盘序列号) { m_LeftDays = 0;//剩余的天数 CString s; diff --git a/LaiPuLaser/LogMgr.cpp b/LaiPuLaser/LogMgr.cpp index cfc2b94..0b579f0 100644 --- a/LaiPuLaser/LogMgr.cpp +++ b/LaiPuLaser/LogMgr.cpp @@ -8,7 +8,7 @@ #include "AuthorityMgr.h" -CLogMgr* gLogMgr = NULL;//日志管理对象 +CLogMgr* gLogMgr = new CLogMgr;//日志管理对象 CLogMgr::CLogMgr(void) { diff --git a/LaiPuLaser/LogMgr.h b/LaiPuLaser/LogMgr.h index 10e4740..f0fe4a5 100644 --- a/LaiPuLaser/LogMgr.h +++ b/LaiPuLaser/LogMgr.h @@ -66,6 +66,8 @@ private: bool m_bDebug;//是否正在调试 int m_DebugCmdDelay;//调试指令延时时间 +public: + Dbxy LastTargetCoord; }; extern CLogMgr* gLogMgr; \ No newline at end of file diff --git a/LaiPuLaser/ModuleDeviceMgr.cpp b/LaiPuLaser/ModuleDeviceMgr.cpp index a51c66e..a2b33fd 100644 --- a/LaiPuLaser/ModuleDeviceMgr.cpp +++ b/LaiPuLaser/ModuleDeviceMgr.cpp @@ -47,7 +47,7 @@ CModuleDeviceMgr::~CModuleDeviceMgr(void) void CModuleDeviceMgr::CreatAllModule() { //日志管理模块 - gLogMgr = new CLogMgr; + //gLogMgr = new CLogMgr; m_ModuleVec.push_back((CModule*)gLogMgr); //权限管理 m_ModuleVec.push_back((CModule*)gAuthorityMgr); diff --git a/LaiPuLaser/MotionCard_PCI1245.cpp b/LaiPuLaser/MotionCard_PCI1245.cpp index 8a666e4..a92d10c 100644 --- a/LaiPuLaser/MotionCard_PCI1245.cpp +++ b/LaiPuLaser/MotionCard_PCI1245.cpp @@ -696,6 +696,10 @@ void MotionCard_PCI1245::ResetAllAsixCoord() //从运动控制卡读取平台当前的坐标 Dbxy MotionCard_PCI1245::GetPlatformXYCoord() { + if (gLogMgr->IsDebuging()) + { + return gLogMgr->LastTargetCoord; + } Dbxy Coord; Dbxy OnePulseDis = gPlatformXY->GetMotorXYOnePulseDis(); //获取控制卡返回的脉冲位置 @@ -781,6 +785,10 @@ Dbxy MotionCard_PCI1245::MovePlatformXY(Dbxy Coord) gLogMgr->WriteDebugLog("Fuc---->MovePlatformXY 1245L"); CString strTemp; strTemp.Format("Coord x : %f,Coord y : %f",Coord.y); + if (gLogMgr->IsDebuging()) + { + gLogMgr->LastTargetCoord = Coord; + } gLogMgr->WriteDebugLog(strTemp); //从运动控制卡读取平台当前的坐标--------------- return GetPlatformXYCoord(); diff --git a/LaiPuLaser/Program_SZ_XL.cpp b/LaiPuLaser/Program_SZ_XL.cpp index c2de68b..3f625d7 100644 --- a/LaiPuLaser/Program_SZ_XL.cpp +++ b/LaiPuLaser/Program_SZ_XL.cpp @@ -1053,7 +1053,7 @@ bool CProgram_SZ_XL::IsbAutoWorking() void CProgram_SZ_XL::StartAutoWork(ETrackType TrackType) { #ifdef _USE_LAIPU_SUPERDOG - if (gEncryptionMgr->CheckLockState() == false) + if (gEncryptionMgr->CheckLockState() == false&&(!gLogMgr->IsDebuging())) { return; } @@ -1345,7 +1345,7 @@ void CProgram_SZ_XL::ReadLoadPlcMsgExt() //分析收到上料机的PLC 消息 void CProgram_SZ_XL::AnalyzeRecvLoadMsg(CString &RecvStr) { - CString LogStr1, LogStr2; + CString LogStr="未解析的指令!"; bool ret = false; if (gTrackWorkFlow1.GetCurTrackWorkStep() == _ETrack_Step_Unload)//只有unload 中收到信号才算 @@ -1364,27 +1364,27 @@ void CProgram_SZ_XL::AnalyzeRecvLoadMsg(CString &RecvStr) { gTrackWorkFlow1.SetCurTrackWorkStep(_ETrack_Step_Unload_End); } - LogStr1 = "轨道1 下料完成"; + LogStr = "轨道1 下料完成"; } if (RecvStr.Find("$(KL1E)#", 0) != -1)//轨道1 下料错误 { gTrackWorkFlow1.SetCurTrackWorkStep(_ETrack_Step_Unload_Err); - LogStr1 = "轨道1 下料错误"; + LogStr = "轨道1 下料错误"; } if (RecvStr.Find("$(KL7D1)#", 0) != -1)//轨道1拉出载具完成 { gTrackWorkFlow1.m_bPullJigOut = true; - LogStr1 = "轨道1载具拉出"; + LogStr = "轨道1载具拉出"; } - if (RecvStr.Find("$(KL1D9)#", 0) != -1)//轨道1可推出 + if (RecvStr.Find("$(KL9D1)#", 0) != -1)//轨道1可推出 { gTrackWorkFlow1.m_bPushJigReady = true; - LogStr1 = "轨道1载具可推出"; + LogStr = "轨道1载具可推出"; } if (RecvStr.Find("$(KL9E)#", 0) != -1)//轨道1不可推出 { gTrackWorkFlow1.m_bPushJigReady = false; - LogStr1 = "轨道1载具不可推出--from下料机"; + LogStr = "轨道1载具不可推出--from下料机"; gTrackWorkFlow1.SetCurTrackWorkStep(_ETrack_Step_Unload_Err); } ret = true; @@ -1406,28 +1406,28 @@ void CProgram_SZ_XL::AnalyzeRecvLoadMsg(CString &RecvStr) { gTrackWorkFlow2.SetCurTrackWorkStep(_ETrack_Step_Unload_End); } - LogStr1 = "轨道2 下料完成"; + LogStr = "轨道2 下料完成"; } if (RecvStr.Find("$(KL2E)#", 0) != -1)//轨道2 下料错误 { gTrackWorkFlow2.SetCurTrackWorkStep(_ETrack_Step_Unload_Err); - LogStr1 = "轨道2 下料错误"; + LogStr = "轨道2 下料错误"; } if (RecvStr.Find("$(KL8D1)#", 0) != -1)//轨道1拉出载具完成 { //gTrackWorkFlow2.SetCurTrackWorkStep(_ETrack_Step_PulledOut); gTrackWorkFlow2.m_bPullJigOut = true; - LogStr1 = "轨道2载具拉出"; + LogStr = "轨道2载具拉出"; } - if (RecvStr.Find("$(KL1D10)#", 0) != -1)//轨道1拉出载具完成 + if (RecvStr.Find("$(KL10D1)#", 0) != -1)//轨道1拉出载具完成 { gTrackWorkFlow2.m_bPushJigReady = true; - LogStr1 = "轨道2载具可推出"; + LogStr = "轨道2载具可推出"; } if (RecvStr.Find("$(KL10E)#", 0) != -1)//轨道1拉出载具完成 { gTrackWorkFlow2.m_bPushJigReady = false; - LogStr1 = "轨道2载具不可推出--from下料机"; + LogStr = "轨道2载具不可推出--from下料机"; gTrackWorkFlow2.SetCurTrackWorkStep(_ETrack_Step_Unload_Err); } ret = true; @@ -1440,12 +1440,12 @@ void CProgram_SZ_XL::AnalyzeRecvLoadMsg(CString &RecvStr) if (RecvStr.Find("$(KL3D1)#", 0) != -1)//轨道1 上料完成 { gTrackWorkFlow1.SetCurTrackWorkStep(_ETrack_Step_Load_End); - LogStr1 = "轨道1 上料完成"; + LogStr = "轨道1 上料完成"; } if (RecvStr.Find("$(KL3E)#", 0) != -1)//轨道1 上料错误 { gTrackWorkFlow1.SetCurTrackWorkStep(_ETrack_Step_Load_Err); - LogStr1 = "轨道1 上料错误"; + LogStr = "轨道1 上料错误"; } ret = true; } @@ -1455,12 +1455,12 @@ void CProgram_SZ_XL::AnalyzeRecvLoadMsg(CString &RecvStr) if (RecvStr.Find("$(KL4D1)#", 0) != -1)//轨道2 上料完成 { gTrackWorkFlow2.SetCurTrackWorkStep(_ETrack_Step_Load_End); - LogStr1 = "轨道2 上料完成"; + LogStr = "轨道2 上料完成"; } if (RecvStr.Find("$(KL4E)#", 0) != -1)//轨道2 上料完成 { gTrackWorkFlow2.SetCurTrackWorkStep(_ETrack_Step_Load_Err); - LogStr1 = "轨道2 上料错误"; + LogStr = "轨道2 上料错误"; } ret = true; } @@ -1471,13 +1471,13 @@ void CProgram_SZ_XL::AnalyzeRecvLoadMsg(CString &RecvStr) if (RecvStr.Find("$(KL5D1)#", 0) != -1)//轨道1 去边框完成(01000000) { gTrackWorkFlow1.SetCurTrackWorkStep(_ETrack_Step_Throw_Edge_End); - LogStr1 = "轨道1 去边框完成"; + LogStr = "轨道1 去边框完成"; } if (RecvStr.Find("$(KL5E)#", 0) != -1)//轨道1 去边框完成(01000000) { gTrackWorkFlow1.SetCurTrackWorkStep(_ETrack_Step_Throw_Edge_Err); - LogStr1 = "轨道1 去边框错误"; + LogStr = "轨道1 去边框错误"; } ret = true; } @@ -1487,12 +1487,12 @@ void CProgram_SZ_XL::AnalyzeRecvLoadMsg(CString &RecvStr) if (RecvStr.Find("$(KL6D1)#", 0) != -1)//轨道2 去边框完成(10000000) { gTrackWorkFlow2.SetCurTrackWorkStep(_ETrack_Step_Throw_Edge_End); - LogStr1 = "轨道2 去边框完成"; + LogStr = "轨道2 去边框完成"; } if (RecvStr.Find("$(KL6E)#", 0) != -1)//轨道2 去边框完成(10000000) { gTrackWorkFlow2.SetCurTrackWorkStep(_ETrack_Step_Throw_Edge_Err); - LogStr1 = "轨道2 去边框错误"; + LogStr = "轨道2 去边框错误"; } ret = true; } @@ -1545,18 +1545,17 @@ void CProgram_SZ_XL::AnalyzeRecvLoadMsg(CString &RecvStr) ret = true; }*/ - if (ret) + //if (ret) { - gLogMgr->WriteDebugLog(RecvStr); - if (LogStr1 != "") - { - gLogMgr->WriteDebugLog(LogStr1); - } - if (LogStr2 != "") - { - gLogMgr->WriteDebugLog(LogStr2); - } + //gLogMgr->WriteDebugLog("ReadLoadDeviceMsg: "+RecvStr); + CString str = "ReadLoadDeviceMsg: " + RecvStr+"==> "; + gLogMgr->WriteDebugLog(str+LogStr); } + /*else + { + CString str = "ReadLoadDeviceMsg: " + RecvStr + "==> 未能解析的指令!"; + gLogMgr->WriteDebugLog(str ); + }*/ } #include @@ -1652,13 +1651,13 @@ bool CProgram_SZ_XL::GetLoadCmdStr(ETrackType TrackType, ETrackWorkStep WorkStep if (_ETrackType_Track_1 == TrackType) { StrOn = "$(KL3)#"; - StrOff = "@00WD0507000051*"; + //StrOff = "@00WD0507000051*"; LogStr = "轨道1 上料请求"; } else { StrOn = "$(KL4)#"; - StrOff = "@00WD050800005E*"; + //StrOff = "@00WD050800005E*"; LogStr = "轨道2 上料请求"; } Ret = true; @@ -1668,13 +1667,13 @@ bool CProgram_SZ_XL::GetLoadCmdStr(ETrackType TrackType, ETrackWorkStep WorkStep if (_ETrackType_Track_1 == TrackType) { StrOn = "$(KL5)#"; - StrOff = "@00WD050900005F*"; + //StrOff = "@00WD050900005F*"; LogStr = "轨道1去边框请求"; } else { StrOn = "$(KL6)#"; - StrOff = "@00WD0510000057*"; + //StrOff = "@00WD0510000057*"; LogStr = "轨道2去边框请求"; } Ret = true; @@ -1684,13 +1683,13 @@ bool CProgram_SZ_XL::GetLoadCmdStr(ETrackType TrackType, ETrackWorkStep WorkStep if (_ETrackType_Track_1 == TrackType) { StrOn = "$(KL1)#"; - StrOff = "@00WD050900005F*"; + //StrOff = "@00WD050900005F*"; LogStr = "轨道1下料请求"; } else { StrOn = "$(KL2)#"; - StrOff = "@00WD0510000057*"; + //StrOff = "@00WD0510000057*"; LogStr = "轨道2下料请求"; } Ret = true; @@ -1700,21 +1699,38 @@ bool CProgram_SZ_XL::GetLoadCmdStr(ETrackType TrackType, ETrackWorkStep WorkStep if (_ETrackType_Track_1 == TrackType) { StrOn = "$(KL7)#"; - StrOff = "@00WD050900005F*"; + //StrOff = "@00WD050900005F*"; LogStr = "轨道1可送回治具"; } else { StrOn = "$(KL8)#"; - StrOff = "@00WD0510000057*"; + //StrOff = "@00WD0510000057*"; LogStr = "轨道2可送回治具"; } Ret = true; } + else if (WorkStep == _ETrack_Step_PushOut_Finished)//等待送回载具 + { + if (_ETrackType_Track_1 == TrackType) + { + StrOn = "$(KL9)#"; + //StrOff = "@00WD050900005F*"; + LogStr = "通知下料机:轨道1推出治具完成"; + } + else + { + StrOn = "$(KL10)#"; + //StrOff = "@00WD0510000057*"; + LogStr = "通知下料机:轨道2推出治具完成"; + } + Ret = true; + } if (Ret) { // gLogMgr->WriteDebugLog("Str1 = "+StrOn); //gLogMgr->WriteDebugLog("Str2 = "+StrOff); + LogStr = "SendLoadDeviceMsg: " + StrOn + "==>" + LogStr; gLogMgr->WriteDebugLog(LogStr); } return Ret; @@ -1754,7 +1770,7 @@ bool CProgram_SZ_XL::SendMsgToLoadDevice(ETrackType TrackType, ETrackWorkStep Wo char Buf[BUF_LEN]; int len = CreatBuf(Buf, StrOn); m_LoadDeviceCOM.WriteBuf(Buf, len); - gLogMgr->WriteDebugLog("SendMsgToLoadDevice: "+StrOn); + //gLogMgr->WriteDebugLog("SendMsgToLoadDevice: "+StrOn); /* Sleep(100); m_LoadDeviceCOM.WriteBuf(Buf,len);//再发一次 Sleep(m_LoadCmdDelay);//等待plc 检测到上升沿的时间 @@ -1771,9 +1787,10 @@ bool CProgram_SZ_XL::SendMsgToLoadDevice(ETrackType TrackType, ETrackWorkStep Wo return Ret; } //发送消息并检查反馈(发送SendMsg 并检查反馈信号是否为RevMsg) +/* bool CProgram_SZ_XL::SendMsgToLoadPlc(CString &SendMsg, CString &RevMsg) { return true; -} +}*/ #endif diff --git a/LaiPuLaser/Program_SZ_XL.h b/LaiPuLaser/Program_SZ_XL.h index 51ceeb4..4095ad4 100644 --- a/LaiPuLaser/Program_SZ_XL.h +++ b/LaiPuLaser/Program_SZ_XL.h @@ -62,7 +62,6 @@ private: void AnalyzeRecvLoadMsg(CString &RecvStr); bool CompareBuf(char *Buf,CString str); int CreatBuf(char *Buf,CString str); - bool SendMsgToLoadPlc(CString &SendMsg,CString &RevMsg); bool GetLoadCmdStr(ETrackType TrackType,ETrackWorkStep WorkStep,CString &StrOn,CString &StrOnRev,CString &StrOff,CString &StrOffRev); public: CString m_ServerIP="127.0.0.1";//副机IP diff --git a/LaiPuLaser/Program_SZ_XL_TrackWorkFlow.cpp b/LaiPuLaser/Program_SZ_XL_TrackWorkFlow.cpp index 2fe8aae..89d699c 100644 --- a/LaiPuLaser/Program_SZ_XL_TrackWorkFlow.cpp +++ b/LaiPuLaser/Program_SZ_XL_TrackWorkFlow.cpp @@ -260,6 +260,11 @@ void CTrackWorkFlow::StopAutoWork() SetCurTrackWorkStep(_ETrack_Step_Stop); //取消下料请求 CancelUnloadRequest(); + if ((!gTrackWorkFlow1.m_bAutoWorking)&&(!gTrackWorkFlow2.m_bAutoWorking)) + { + SendMsgToPlc(_ETrack_PlcCmd_Auto_End, false); + } + } #endif @@ -325,9 +330,9 @@ void CTrackWorkFlow::AnalyzeRecvPlcCmd(char *buf, int len) if (buf[k] == '#') { IdxEnd = k; - CString s; + /*CString s; s.Format(_T("Idx # = %d"), IdxEnd); - gLogMgr->WriteDebugLog(s); + gLogMgr->WriteDebugLog(s);*/ break; } } @@ -338,7 +343,7 @@ void CTrackWorkFlow::AnalyzeRecvPlcCmd(char *buf, int len) buf[IdxEnd + 1] = '\0'; CString PlcMsg(buf); - gLogMgr->WriteDebugLog("ReadPlcMsg--->" + PlcMsg); + //gLogMgr->WriteDebugLog("ReadPlcMsg==>" + PlcMsg); int IdxK = -1;//第一个K 的位置 for (int k = 0; k < IdxEnd; k++) @@ -351,63 +356,135 @@ void CTrackWorkFlow::AnalyzeRecvPlcCmd(char *buf, int len) } if (IdxK < 0) return; + CString logstrH = "ReadPlcMsg:" + PlcMsg + " ==>"; + CString logstrT = "未解析的指令!"; + + /* + if (PlcMsg.Find("$(KQ3D1)#") != -1 || PlcMsg.Find("$(KQ4D1)#") != -1)//下料完成 + { + logstrT = "轨道下料完成!"; + if (m_CurWorkStep == _ETrack_Step_Unload)//只有下料状态才响应下料完成信号 + { + if (m_bCircleStop)//当前循环停止 + { + m_bCircleStop = false;//只停止一次 + GetFrame()->m_DlgSW_XL_Flow.ResetCircleStopCheck(m_TrackType);//自动恢复check 状态 + CString Log = m_TrackName + " 停止自动运行!"; + gLogMgr->WriteDebugLog(Log); + StopAutoWork();//停止自动运行 + } + else + { + SetCurTrackWorkStep(_ETrack_Step_Unload_End); + } + } + } - if (PlcMsg.Find("$(KQ3D1)#") != -1 || PlcMsg.Find("$(KQ4D1)#") != -1)//下料完成 + if (PlcMsg.Find("$(KQ3E)#") != -1 || PlcMsg.Find("$(KQ4E)#") != -1)//下料错误 + { + logstrT = "轨道下料错误!"; + SetCurTrackWorkStep(_ETrack_Step_Unload_Err); + gLogMgr->WriteDebugLog("ReadPlcMsg==>_ETrack_Step_Unload_Err"); + } + */ + + ///-------------------------轨道1-------------------------------------/// + if (gTrackWorkFlow1.m_CurWorkStep == _ETrack_Step_Unload)//只有下料状态才响应下料完成信号 { - gLogMgr->WriteDebugLog("ReadPlcMsg--->_ETrack_Step_Unload_End"); - if (m_CurWorkStep == _ETrack_Step_Unload)//只有下料状态才响应下料完成信号 + if (PlcMsg.Find("$(KQ3D1)#") != -1)//下料完成 { - if (m_bCircleStop)//当前循环停止 + logstrT = "轨道1下料完成!"; + if (gTrackWorkFlow1.m_bCircleStop)//当前循环停止 { - m_bCircleStop = false;//只停止一次 + gTrackWorkFlow1.m_bCircleStop = false;//只停止一次 GetFrame()->m_DlgSW_XL_Flow.ResetCircleStopCheck(m_TrackType);//自动恢复check 状态 - CString Log = m_TrackName + " Circle Stop"; + CString Log = "轨道1 停止自动运行!"; gLogMgr->WriteDebugLog(Log); - StopAutoWork();//停止自动运行 + gTrackWorkFlow1.StopAutoWork();//停止自动运行 } else { - SetCurTrackWorkStep(_ETrack_Step_Unload_End); + gTrackWorkFlow1.SetCurTrackWorkStep(_ETrack_Step_Unload_End); } } + + if (PlcMsg.Find("$(KQ3E)#") != -1)//下料错误 + { + logstrT = "轨道1下料错误!"; + gTrackWorkFlow1.SetCurTrackWorkStep(_ETrack_Step_Unload_Err); + } } - if (PlcMsg.Find("$(KQ3E)#") != -1 || PlcMsg.Find("$(KQ4E)#") != -1)//下料错误 - { - SetCurTrackWorkStep(_ETrack_Step_Unload_Err); - gLogMgr->WriteDebugLog("ReadPlcMsg--->_ETrack_Step_Unload_Err"); - } - ///------------------------轨道1------------------------------------- - if (PlcMsg.Find("$(KQ5D1)#") != -1)//治具未到位 + + if (PlcMsg.Find("$(KQ5D1)#") != -1)//推出治具完成 { gTrackWorkFlow1.m_bPushJigOut = true; - gLogMgr->WriteDebugLog("ReadPlcMsg [$(KQ5D1)#] --->轨道1推出治具完成"); + logstrT = "轨道1推出治具完成!"; + //gLogMgr->WriteDebugLog("ReadPlcMsg [$(KQ5D1)#] ==>轨道1推出治具完成"); } + if (PlcMsg.Find("$(KQ5E)#") != -1)//治具未到位 { gTrackWorkFlow1.m_bJigOK = false; - gLogMgr->WriteDebugLog("ReadPlcMsg [$(KQ5E)#] --->轨道1治具未到位"); + logstrT = "轨道1治具未到位!"; + //gLogMgr->WriteDebugLog("ReadPlcMsg [$(KQ5E)#] ==>轨道1治具未到位"); } + if (PlcMsg.Find("$(KQ7D1)#") != -1)//治具到位 { gTrackWorkFlow1.m_bJigOK = true; - gLogMgr->WriteDebugLog("ReadPlcMsg [$(KQ7D1)#]--->轨道1治具到位"); + logstrT = "轨道1治具到位!"; + //gLogMgr->WriteDebugLog("ReadPlcMsg [$(KQ7D1)#]==>轨道1治具到位"); + } + + ///------------------------轨道2-------------------------------------/// + if (gTrackWorkFlow2.m_CurWorkStep == _ETrack_Step_Unload)//只有下料状态才响应下料完成信号 + { + if (PlcMsg.Find("$(KQ4D1)#") != -1)//下料完成 + { + logstrT = "轨道2下料完成!"; + if (gTrackWorkFlow2.m_bCircleStop)//当前循环停止 + { + gTrackWorkFlow2.m_bCircleStop = false;//只停止一次 + GetFrame()->m_DlgSW_XL_Flow.ResetCircleStopCheck(m_TrackType);//自动恢复check 状态 + CString Log = "轨道2 停止自动运行!"; + gLogMgr->WriteDebugLog(Log); + gTrackWorkFlow2.StopAutoWork();//停止自动运行 + } + else + { + gTrackWorkFlow2.SetCurTrackWorkStep(_ETrack_Step_Unload_End); + } + } + + if (PlcMsg.Find("$(KQ4E)#") != -1)//下料错误 + { + logstrT = "轨道2下料错误!"; + gTrackWorkFlow2.SetCurTrackWorkStep(_ETrack_Step_Unload_Err); + } } - ///------------------------轨道2------------------------------------- - if (PlcMsg.Find("$(KQ6D1)#") != -1)//治具未到位 + + if (PlcMsg.Find("$(KQ6D1)#") != -1)//推出治具完成 { gTrackWorkFlow2.m_bPushJigOut = true; - gLogMgr->WriteDebugLog("ReadPlcMsg [$(KQ6D1)#] --->轨道2推出治具完成"); + logstrT = "轨道2推出治具完成!"; + //gLogMgr->WriteDebugLog("ReadPlcMsg [$(KQ6D1)#] ==>轨道2推出治具完成"); } + if (PlcMsg.Find("$(KQ6E)#") != -1)//治具未到位 { gTrackWorkFlow2.m_bJigOK = false; - gLogMgr->WriteDebugLog("ReadPlcMsg [$(KQ6E)#] --->轨道2治具未到位"); + logstrT = "轨道2治具未到位!"; + //gLogMgr->WriteDebugLog("ReadPlcMsg [$(KQ6E)#] ==>轨道2治具未到位"); } + if (PlcMsg.Find("$(KQ8D1)#") != -1)//治具到位 { gTrackWorkFlow2.m_bJigOK = true; - gLogMgr->WriteDebugLog("ReadPlcMsg [$(KQ8D1)#]--->轨道2治具到位"); + logstrT = "轨道2治具到位!"; + //gLogMgr->WriteDebugLog("ReadPlcMsg [$(KQ8D1)#]==>轨道2治具到位"); } + + gLogMgr->WriteDebugLog(logstrH + logstrT); } #endif @@ -422,12 +499,12 @@ CString CTrackWorkFlow::GetSendPlcMsgStr(ETrackPlcCmd PlcCmd) if (m_TrackType == _ETrackType_Track_1) { msg += "G"; - log = "SendPlcMsg: Track_1 打开载盘"; + log = "SendPlcMsg: $(KQG)# ==>轨道1 打开载盘"; } else { msg += "I"; - log = "SendPlcMsg: Track_2 打开载盘"; + log = "SendPlcMsg: $(KQI)# ==>轨道2 打开载盘"; } } if (PlcCmd == _ETrack_PlcCmd_Close_Product)//夹紧载盘 @@ -435,12 +512,12 @@ CString CTrackWorkFlow::GetSendPlcMsgStr(ETrackPlcCmd PlcCmd) if (m_TrackType == _ETrackType_Track_1) { msg += "F"; - log = "SendPlcMsg: Track_1 夹紧载盘"; + log = "SendPlcMsg: $(KQF)# ==> 轨道1 夹紧载盘"; } else { msg += "H"; - log = "SendPlcMsg: Track_2 夹紧载盘"; + log = "SendPlcMsg: $(KQH)# ==>轨道2 夹紧载盘"; } } if (PlcCmd == _ETrack_PlcCmd_Vac_Sorb_On)//真空吸附开 @@ -448,12 +525,12 @@ CString CTrackWorkFlow::GetSendPlcMsgStr(ETrackPlcCmd PlcCmd) if (m_TrackType == _ETrackType_Track_1) { msg += "9"; - log = "SendPlcMsg: Track_1 真空吸附开"; + log = "SendPlcMsg: $(KQ9)# ==>轨道1 真空吸附开"; } else { msg += "B"; - log = "SendPlcMsg: Track_2 真空吸附开"; + log = "SendPlcMsg: $(KQB)# ==>轨道2 真空吸附开"; } } if (PlcCmd == _ETrack_PlcCmd_Vac_Sorb_Off)//真空吸附关 @@ -461,35 +538,35 @@ CString CTrackWorkFlow::GetSendPlcMsgStr(ETrackPlcCmd PlcCmd) if (m_TrackType == _ETrackType_Track_1) { msg += "A"; - log = "SendPlcMsg: Track_1 真空吸附关"; + log = "SendPlcMsg: $(KQA)# ==>轨道1 真空吸附关"; } else { msg += "C"; - log = "SendPlcMsg: Track_2 真空吸附关"; + log = "SendPlcMsg: $(KQC)# ==>轨道2 真空吸附关"; } } if (PlcCmd == _ETrack_PlcCmd_Auto_Start)//自动开始(绿灯) { msg += "5"; - log = "SendPlcMsg: 自动开始"; + log = "SendPlcMsg: $(KQ5)# ==>自动开始"; } if (PlcCmd == _ETrack_PlcCmd_Auto_End)//自动结束(黄灯) { msg += "6"; - log = "SendPlcMsg: 自动结束"; + log = "SendPlcMsg: $(KQ6)# ==> 自动结束"; } if (PlcCmd == _ETrack_PlcCmd_Unload)//下料 { if (m_TrackType == _ETrackType_Track_1) { msg += "3"; - log = "SendPlcMsg: Track_1 下料"; + log = "SendPlcMsg: $(KQ3)# ==>轨道1 下料"; } else { msg += "4"; - log = "SendPlcMsg: Track_2 下料"; + log = "SendPlcMsg: $(KQ4)# ==>轨道1 下料"; } } if (PlcCmd == _ETrack_PlcCmd_Push_Jig_Out)//推治具 @@ -497,12 +574,12 @@ CString CTrackWorkFlow::GetSendPlcMsgStr(ETrackPlcCmd PlcCmd) if (m_TrackType == _ETrackType_Track_1) { msg += "J"; - log = "SendPlcMsg: Track_1 推出治具"; + log = "SendPlcMsg: $(KQJ)# ==>轨道1 推出治具"; } else { msg += "K"; - log = "SendPlcMsg: Track_2 推出治具"; + log = "SendPlcMsg: $(KQK)# ==>轨道2 推出治具"; } } @@ -511,12 +588,12 @@ CString CTrackWorkFlow::GetSendPlcMsgStr(ETrackPlcCmd PlcCmd) if (m_TrackType == _ETrackType_Track_1) { msg += "L"; - log = "SendPlcMsg: Track_1 检测治具"; + log = "SendPlcMsg: $(KQL)# ==>轨道1 检测治具"; } else { msg += "M"; - log = "SendPlcMsg: Track_2 检测治具"; + log = "SendPlcMsg: $(KQM)# ==>轨道2 检测治具"; } } @@ -525,23 +602,23 @@ CString CTrackWorkFlow::GetSendPlcMsgStr(ETrackPlcCmd PlcCmd) if (m_TrackType == _ETrackType_Track_1) { msg += "D"; - log = "SendPlcMsg: Track_1 取消请求下料"; + log = "SendPlcMsg: $(KQD)# ==>轨道1 取消请求下料"; } else { msg += "E"; - log = "SendPlcMsg: Track_2 取消请求下料"; + log = "SendPlcMsg: $(KQE)# ==>轨道2 取消请求下料"; } } if (PlcCmd == _ETrack_PlcCmd_Red_Alam_On)//红灯蜂鸣器开 { msg += "1"; - log = "SendPlcMsg: 红灯蜂鸣器开"; + log = "SendPlcMsg: $(KQ1)# ==>红灯蜂鸣器开"; } if (PlcCmd == _ETrack_PlcCmd_Red_Alam_Off)//红灯蜂鸣器开 { msg += "2"; - log = "SendPlcMsg: 红灯蜂鸣器关"; + log = "SendPlcMsg: $(KQ2)# ==>红灯蜂鸣器关"; } gLogMgr->WriteDebugLog(log); msg += ")#\r\n"; @@ -562,7 +639,7 @@ bool CTrackWorkFlow::SendMsgToPlc(ETrackPlcCmd PlcCmd, bool bStopReadMsg) char * buf = Msg.GetBuffer(); int len = Msg.GetLength(); m_TrackCOM.WriteBuf(buf, len);//发送 - gLogMgr->WriteDebugLog("SendMsgToPlc--->" + Msg); + //gLogMgr->WriteDebugLog("SendMsgToPlc==>" + Msg); } else { @@ -604,10 +681,10 @@ void CTrackWorkFlow::VacSorbOnOff(bool bOn) } bool CTrackWorkFlow::PushJigOut() { - if (gLogMgr->IsDebuging()) + /*if (gLogMgr->IsDebuging()) { return true; - } + }*/ ETrackPlcCmd PlcCmd; PlcCmd = _ETrack_PlcCmd_Push_Jig_Out; SendMsgToPlc(PlcCmd, false); @@ -633,6 +710,7 @@ bool CTrackWorkFlow::IsJigOK() { return true; } + return true; ETrackPlcCmd PlcCmd; PlcCmd = _ETrack_PlcCmd_Check_Jig_In; @@ -835,12 +913,12 @@ void CTrackWorkFlow::ChangePlatXYGroupIdx() void CTrackWorkFlow::CatchMark() { - /*if (!gObjComponentMgr->GetTwoMarkPt(Dbxy(), Dbxy()))//获取定位点 + if (!gObjComponentMgr->GetTwoMarkPt(Dbxy(), Dbxy()))//获取定位点 { CMsgBox MsgBox; MsgBox.Show("没有加工图形!"); - return ; - }*/ + return; + } //只有无锁定状态才能CatchMark if (gCurLockTrackType != _ETrackType_NULL) { @@ -1208,70 +1286,9 @@ void CTrackWorkFlow::UnLoad() } } - if (m_bAutoWorking)//自动运行中 + auto FunctionUnload = [&]() { - if (gProgram_SZ_XL->IsbAutoWorkMode())//自动模式 - { - //通知下料机到下料 接载具位 - m_bPushJigReady = false; - if (gProgram_SZ_XL->SendMsgToLoadDevice(m_TrackType, _ETrack_Step_Unload, true) == false) - { - SetCurTrackWorkStep(_ETrack_Step_Unload_Err); - Log = m_TrackName + " unload Err"; - gLogMgr->WriteDebugLog(Log); - return; - } - //等待下料机到可推出载具位 - CString str = "轨道1"; - if (m_TrackType == _ETrackType_Track_2) - str = "轨道2"; - CString logstr; - logstr.Format("等待[下料机] 运动至[%s]下载具位.", str); - gLogMgr->WriteDebugLog(logstr); - - - int cnt = 0; - while ((!m_bPushJigReady) && cnt < 400) - { - Sleep(300); - cnt++; - } - if (cnt == 400) - { - Log = m_TrackName + " [下料机] 运动至下载具位 超时!"; - gLogMgr->WriteDebugLog(Log); - gTrackWorkFlow1.RadAlamOnOff(true); - AfxMessageBox(m_TrackName + " [下料机] 运动至下载具位超时!请手动下料!"); - gTrackWorkFlow1.RadAlamOnOff(false); - SetCurTrackWorkStep(_ETrack_Step_Unload_Err); - return; - } - - if (!PushJigOut())//推出治具 - { - SetCurTrackWorkStep(_ETrack_Step_Unload_Err); - return; - } - - Sleep(3000); - //平台移动到 送回空治具的位置 - MoveToPos(_ETrack_Step_WaitBack); - gProgram_SZ_XL->SendMsgToLoadDevice(m_TrackType, _ETrack_Step_WaitBack, true);//告诉下料机,我已到可回治具位 - m_bLoadProduct = false;//轨道上是否load 了产品 - } - else//手动模式直接跳过下料步骤 - { - SetCurTrackWorkStep(_ETrack_Step_Unload_End); - } - } - else - { - if (AfxMessageBox("确认手动下料?", MB_YESNO) != IDYES) - { - SetCurTrackWorkStep(_ETrack_Step_NULL); - return; - } - //通知下料机下料 + //通知下料机到下料 接载具位 m_bPushJigReady = false; if (gProgram_SZ_XL->SendMsgToLoadDevice(m_TrackType, _ETrack_Step_Unload, true) == false) { @@ -1297,10 +1314,10 @@ void CTrackWorkFlow::UnLoad() } if (cnt == 400) { - Log = m_TrackName + " [下料机] 运动至下载具位 超时!"; + Log = m_TrackName + " [下料机] 运动至下载具位 超时!"; gLogMgr->WriteDebugLog(Log); gTrackWorkFlow1.RadAlamOnOff(true); - AfxMessageBox(m_TrackName + "[下料机] 运动至下载具位超时!请手动下料!"); + AfxMessageBox(m_TrackName + " [下料机] 运动至下载具位超时!请手动下料!"); gTrackWorkFlow1.RadAlamOnOff(false); SetCurTrackWorkStep(_ETrack_Step_Unload_Err); return; @@ -1311,12 +1328,41 @@ void CTrackWorkFlow::UnLoad() SetCurTrackWorkStep(_ETrack_Step_Unload_Err); return; } - - Sleep(3000); + Sleep(500); + if (gProgram_SZ_XL->SendMsgToLoadDevice(m_TrackType, _ETrack_Step_PushOut_Finished, true) == false) + { + SetCurTrackWorkStep(_ETrack_Step_Unload_Err); + Log = m_TrackName + " unload Err"; + gLogMgr->WriteDebugLog(Log); + return; + } + Sleep(500); //平台移动到 送回空治具的位置 MoveToPos(_ETrack_Step_WaitBack); gProgram_SZ_XL->SendMsgToLoadDevice(m_TrackType, _ETrack_Step_WaitBack, true);//告诉下料机,我已到可回治具位 m_bLoadProduct = false;//轨道上是否load 了产品 + }; + + + if (m_bAutoWorking)//自动运行中 + { + if (gProgram_SZ_XL->IsbAutoWorkMode())//自动模式 + { + FunctionUnload(); + } + else//手动模式直接跳过下料步骤 + { + SetCurTrackWorkStep(_ETrack_Step_Unload_End); + } + } + else + { + if (AfxMessageBox("确认手动下料?", MB_YESNO) != IDYES) + { + SetCurTrackWorkStep(_ETrack_Step_NULL); + return; + } + FunctionUnload(); } } //移动Y 轴到安全区域 diff --git a/LaiPuLaser/Program_SZ_XL_TrackWorkFlow.h b/LaiPuLaser/Program_SZ_XL_TrackWorkFlow.h index f2a17d8..833379f 100644 --- a/LaiPuLaser/Program_SZ_XL_TrackWorkFlow.h +++ b/LaiPuLaser/Program_SZ_XL_TrackWorkFlow.h @@ -27,6 +27,7 @@ enum ETrackWorkStep _ETrack_Step_Unload,//下料中20 _ETrack_Step_PulledOut,//等待拉走治具 _ETrack_Step_WaitBack,//等待送回空治具 + _ETrack_Step_PushOut_Finished,//等待送回空治具 _ETrack_Step_Unload_End,//下料完成21 _ETrack_Step_Unload_Err,//下料错误22 };