同兴达双头-推治具
bestlqiang 4 years ago
parent eb70e2a64f
commit 453f3ba748

@ -453,6 +453,10 @@ Dbxy CCamera::CCDcoord2Platformcoord(Dbxy CCDpt)
LogStr.Format(_T("[CameraCoord.x] = [%0.3f] ,[CameraCoord.y] = [%0.3f]"),CameraCoord.x,CameraCoord.y); LogStr.Format(_T("[CameraCoord.x] = [%0.3f] ,[CameraCoord.y] = [%0.3f]"),CameraCoord.x,CameraCoord.y);
gLogMgr->WriteDebugLog(LogStr); gLogMgr->WriteDebugLog(LogStr);
Dbxy PlatformPt = gPlatformXY->GetCoord(); 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); LogStr.Format(_T("[PlatformCoord.x] = [%0.3f] ,[PlatformCoord.y] = [%0.3f]"),PlatformPt.x,PlatformPt.y);
gLogMgr->WriteDebugLog(LogStr); gLogMgr->WriteDebugLog(LogStr);
CameraCoord.x = CameraCoord.x - PlatformPt.x; CameraCoord.x = CameraCoord.x - PlatformPt.x;

@ -178,8 +178,6 @@ bool CCameraHawkvis::CatchPoint(Dbxy &pt)
m_HawkvisCtrl->ClearGraphicObject(); m_HawkvisCtrl->ClearGraphicObject();
//ץȡһ֡ //ץȡһ֡
#ifdef __HAWKVIS_MINDVISION_CCD__ #ifdef __HAWKVIS_MINDVISION_CCD__
m_HawkvisCtrl->MV_GetOneFrame();
Sleep(100);
if (!m_HawkvisCtrl->MV_GetOneFrame()) if (!m_HawkvisCtrl->MV_GetOneFrame())
#else #else
if (!m_HawkvisCtrl->HV_GetOneFrame()) if (!m_HawkvisCtrl->HV_GetOneFrame())

@ -117,12 +117,24 @@ BOOL DlgHawkvisCamera::OnInitDialog()
m_HawkvisCtrl1.MV_SetCameraExpTime(gCameraHawkvis->m_nCam1Expore); m_HawkvisCtrl1.MV_SetCameraExpTime(gCameraHawkvis->m_nCam1Expore);
m_nExpore = gCameraHawkvis->m_nCam1Expore; m_nExpore = gCameraHawkvis->m_nCam1Expore;
} }
else
{
AfxMessageBox("相机1 MV_OpenCamera 失败!");
}
m_HawkvisCtrl1.SetCrossShow(1, 30, 30, -1, -1, TRUE); m_HawkvisCtrl1.SetCrossShow(1, 30, 30, -1, -1, TRUE);
if (m_HawkvisCtrl1.MV_GetOneFrame()) if (m_HawkvisCtrl1.MV_GetOneFrame())
{ {
m_HawkvisCtrl1.ZoomFitWindow(); m_HawkvisCtrl1.ZoomFitWindow();
} }
else
{
AfxMessageBox("相机1 MV_GetOneFrame 失败!");
}
} }
/* else
{
gLogMgr->WriteDebugLog("*****未发现相机[1]!");
}*/
if (m_HawkvisCtrl2.MV_SelectAdapterByIdx(1)) if (m_HawkvisCtrl2.MV_SelectAdapterByIdx(1))
{ {
@ -130,14 +142,25 @@ BOOL DlgHawkvisCamera::OnInitDialog()
{ {
m_pHawkvisCtrl = &m_HawkvisCtrl2; m_pHawkvisCtrl = &m_HawkvisCtrl2;
m_HawkvisCtrl2.MV_SetCameraExpTime(gCameraHawkvis->m_nCam2Expore); 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); m_HawkvisCtrl2.SetCrossShow(1, 30, 30, -1, -1, TRUE);
if (m_HawkvisCtrl2.MV_GetOneFrame()) if (m_HawkvisCtrl2.MV_GetOneFrame())
{ {
m_HawkvisCtrl2.ZoomFitWindow(); m_HawkvisCtrl2.ZoomFitWindow();
} }
else
{
AfxMessageBox("相机2 MV_GetOneFrame 失败!");
}
} }
/*else
{
gLogMgr->WriteDebugLog("*****未发现相机[2]!");
}*/
} }
catch (...) catch (...)
{ {
@ -150,7 +173,7 @@ BOOL DlgHawkvisCamera::OnInitDialog()
void DlgHawkvisCamera::UpdateInfo() void DlgHawkvisCamera::UpdateInfo()
{ {
//换文件时,自动换模板 //换文件时,自动换模板
if ( (!gLogMgr->IsDebuging()) && gCameraHawkvis->GetCurShapeModelID() != m_ShapeModelID) if ((!gLogMgr->IsDebuging()) && gCameraHawkvis->GetCurShapeModelID() != m_ShapeModelID)
{ {
m_ShapeModelID = gCameraHawkvis->GetCurShapeModelID(); m_ShapeModelID = gCameraHawkvis->GetCurShapeModelID();
@ -169,8 +192,8 @@ void DlgHawkvisCamera::UpdateInfo()
if (gCameraHawkvis->GetCamIndex() == 0) if (gCameraHawkvis->GetCamIndex() == 0)
{ {
m_pHawkvisCtrl = &m_HawkvisCtrl1; m_pHawkvisCtrl = &m_HawkvisCtrl1;
( (CButton*)GetDlgItem(IDC_RADIO1) )->SetCheck(FALSE); ((CButton*)GetDlgItem(IDC_RADIO1))->SetCheck(FALSE);
( (CButton*)GetDlgItem(IDC_RADIO3) )->SetCheck(TRUE); ((CButton*)GetDlgItem(IDC_RADIO3))->SetCheck(TRUE);
} }
if (gCameraHawkvis->GetCamIndex() == 1) if (gCameraHawkvis->GetCamIndex() == 1)
{ {
@ -181,7 +204,7 @@ void DlgHawkvisCamera::UpdateInfo()
} }
UpdateData(FALSE); UpdateData(FALSE);
} }
void DlgHawkvisCamera::Update() void DlgHawkvisCamera::Update()
{ {
SetTimer(WORK_TIMER1, WORK_TIME_DELAY1, NULL);//用timer来更新否则会报错 SetTimer(WORK_TIMER1, WORK_TIME_DELAY1, NULL);//用timer来更新否则会报错
@ -209,7 +232,7 @@ void DlgHawkvisCamera::OnBnClickedOpenCam()
} }
else else
gLogMgr->WriteDebugLog("Hawkvis : Open Cam ---->ERR"); gLogMgr->WriteDebugLog("Hawkvis : Open Cam ---->ERR");
} }
void DlgHawkvisCamera::OnBnClickedCloseCam() void DlgHawkvisCamera::OnBnClickedCloseCam()
{ {
#ifdef __HAWKVIS_MINDVISION_CCD__ #ifdef __HAWKVIS_MINDVISION_CCD__
@ -230,8 +253,8 @@ void DlgHawkvisCamera::OnBnClickedFrameOne()
{ {
m_pHawkvisCtrl->SetCrossShow(1, 30, 30, -1, -1, ((CButton*)GetDlgItem(IDC_CROSS_CHECK))->GetCheck()); m_pHawkvisCtrl->SetCrossShow(1, 30, 30, -1, -1, ((CButton*)GetDlgItem(IDC_CROSS_CHECK))->GetCheck());
#ifdef __HAWKVIS_MINDVISION_CCD__ #ifdef __HAWKVIS_MINDVISION_CCD__
/*m_pHawkvisCtrl->MV_GetOneFrame(); /*m_pHawkvisCtrl->MV_GetOneFrame();
Sleep(100);*/ Sleep(100);*/
if (m_pHawkvisCtrl->MV_GetOneFrame()) if (m_pHawkvisCtrl->MV_GetOneFrame())
#else #else
if (m_HawkvisCtrl.HV_GetOneFrame()) if (m_HawkvisCtrl.HV_GetOneFrame())
@ -527,46 +550,46 @@ void DlgHawkvisCamera::OnBnClickedToCam2()
m_pHawkvisCtrl = &m_HawkvisCtrl2; m_pHawkvisCtrl = &m_HawkvisCtrl2;
return; return;
/* /*
try try
{
m_pHawkvisCtrl->MV_CloseCamera();
if (m_pHawkvisCtrl->MV_SelectAdapterByIdx(1))
{ {
if (m_pHawkvisCtrl->MV_OpenCamera()) m_pHawkvisCtrl->MV_CloseCamera();
if (m_pHawkvisCtrl->MV_SelectAdapterByIdx(1))
{ {
OnBnClickedLoadCatchTemp();//读取模板 if (m_pHawkvisCtrl->MV_OpenCamera())
m_pHawkvisCtrl->MV_SetCameraExpTime(gCameraHawkvis->m_nCam2Expore); {
m_nExpore = gCameraHawkvis->m_nCam2Expore; OnBnClickedLoadCatchTemp();//读取模板
//UpdateData(FALSE); m_pHawkvisCtrl->MV_SetCameraExpTime(gCameraHawkvis->m_nCam2Expore);
//OnBnClickedSetExpore();//设置曝光 m_nExpore = gCameraHawkvis->m_nCam2Expore;
} //UpdateData(FALSE);
m_pHawkvisCtrl->SetCrossShow(1, 30, 30, -1, -1, ((CButton*)GetDlgItem(IDC_CROSS_CHECK))->GetCheck()); //OnBnClickedSetExpore();//设置曝光
if (m_pHawkvisCtrl->MV_GetOneFrame()) }
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; AfxMessageBox("打开相机2 异常!");//报错一次
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 异常!");//报错一次
}*/
} }

@ -81,7 +81,7 @@ bool CEncryptionMgr::CheckLockState()
{ {
m_LeftDays = 0;//剩余的天数 m_LeftDays = 0;//剩余的天数
} }
else if(code>0 && code!=7)//其他错误(不要检查磁盘序列号) else if((code>0) &&( code!=7)&&(!gLogMgr->IsDebuging())) //其他错误(不要检查磁盘序列号)
{ {
m_LeftDays = 0;//剩余的天数 m_LeftDays = 0;//剩余的天数
CString s; CString s;

@ -8,7 +8,7 @@
#include "AuthorityMgr.h" #include "AuthorityMgr.h"
CLogMgr* gLogMgr = NULL;//日志管理对象 CLogMgr* gLogMgr = new CLogMgr;//日志管理对象
CLogMgr::CLogMgr(void) CLogMgr::CLogMgr(void)
{ {

@ -66,6 +66,8 @@ private:
bool m_bDebug;//是否正在调试 bool m_bDebug;//是否正在调试
int m_DebugCmdDelay;//调试指令延时时间 int m_DebugCmdDelay;//调试指令延时时间
public:
Dbxy LastTargetCoord;
}; };
extern CLogMgr* gLogMgr; extern CLogMgr* gLogMgr;

@ -47,7 +47,7 @@ CModuleDeviceMgr::~CModuleDeviceMgr(void)
void CModuleDeviceMgr::CreatAllModule() void CModuleDeviceMgr::CreatAllModule()
{ {
//日志管理模块 //日志管理模块
gLogMgr = new CLogMgr; //gLogMgr = new CLogMgr;
m_ModuleVec.push_back((CModule*)gLogMgr); m_ModuleVec.push_back((CModule*)gLogMgr);
//权限管理 //权限管理
m_ModuleVec.push_back((CModule*)gAuthorityMgr); m_ModuleVec.push_back((CModule*)gAuthorityMgr);

@ -696,6 +696,10 @@ void MotionCard_PCI1245::ResetAllAsixCoord()
//从运动控制卡读取平台当前的坐标 //从运动控制卡读取平台当前的坐标
Dbxy MotionCard_PCI1245::GetPlatformXYCoord() Dbxy MotionCard_PCI1245::GetPlatformXYCoord()
{ {
if (gLogMgr->IsDebuging())
{
return gLogMgr->LastTargetCoord;
}
Dbxy Coord; Dbxy Coord;
Dbxy OnePulseDis = gPlatformXY->GetMotorXYOnePulseDis(); Dbxy OnePulseDis = gPlatformXY->GetMotorXYOnePulseDis();
//获取控制卡返回的脉冲位置 //获取控制卡返回的脉冲位置
@ -781,6 +785,10 @@ Dbxy MotionCard_PCI1245::MovePlatformXY(Dbxy Coord)
gLogMgr->WriteDebugLog("Fuc---->MovePlatformXY 1245L"); gLogMgr->WriteDebugLog("Fuc---->MovePlatformXY 1245L");
CString strTemp; CString strTemp;
strTemp.Format("Coord x : %f,Coord y : %f",Coord.y); strTemp.Format("Coord x : %f,Coord y : %f",Coord.y);
if (gLogMgr->IsDebuging())
{
gLogMgr->LastTargetCoord = Coord;
}
gLogMgr->WriteDebugLog(strTemp); gLogMgr->WriteDebugLog(strTemp);
//从运动控制卡读取平台当前的坐标--------------- //从运动控制卡读取平台当前的坐标---------------
return GetPlatformXYCoord(); return GetPlatformXYCoord();

@ -1053,7 +1053,7 @@ bool CProgram_SZ_XL::IsbAutoWorking()
void CProgram_SZ_XL::StartAutoWork(ETrackType TrackType) void CProgram_SZ_XL::StartAutoWork(ETrackType TrackType)
{ {
#ifdef _USE_LAIPU_SUPERDOG #ifdef _USE_LAIPU_SUPERDOG
if (gEncryptionMgr->CheckLockState() == false) if (gEncryptionMgr->CheckLockState() == false&&(!gLogMgr->IsDebuging()))
{ {
return; return;
} }
@ -1345,7 +1345,7 @@ void CProgram_SZ_XL::ReadLoadPlcMsgExt()
//分析收到上料机的PLC 消息 //分析收到上料机的PLC 消息
void CProgram_SZ_XL::AnalyzeRecvLoadMsg(CString &RecvStr) void CProgram_SZ_XL::AnalyzeRecvLoadMsg(CString &RecvStr)
{ {
CString LogStr1, LogStr2; CString LogStr="未解析的指令!";
bool ret = false; bool ret = false;
if (gTrackWorkFlow1.GetCurTrackWorkStep() == _ETrack_Step_Unload)//只有unload 中收到信号才算 if (gTrackWorkFlow1.GetCurTrackWorkStep() == _ETrack_Step_Unload)//只有unload 中收到信号才算
@ -1364,27 +1364,27 @@ void CProgram_SZ_XL::AnalyzeRecvLoadMsg(CString &RecvStr)
{ {
gTrackWorkFlow1.SetCurTrackWorkStep(_ETrack_Step_Unload_End); gTrackWorkFlow1.SetCurTrackWorkStep(_ETrack_Step_Unload_End);
} }
LogStr1 = "轨道1 下料完成"; LogStr = "轨道1 下料完成";
} }
if (RecvStr.Find("$(KL1E)#", 0) != -1)//轨道1 下料错误 if (RecvStr.Find("$(KL1E)#", 0) != -1)//轨道1 下料错误
{ {
gTrackWorkFlow1.SetCurTrackWorkStep(_ETrack_Step_Unload_Err); gTrackWorkFlow1.SetCurTrackWorkStep(_ETrack_Step_Unload_Err);
LogStr1 = "轨道1 下料错误"; LogStr = "轨道1 下料错误";
} }
if (RecvStr.Find("$(KL7D1)#", 0) != -1)//轨道1拉出载具完成 if (RecvStr.Find("$(KL7D1)#", 0) != -1)//轨道1拉出载具完成
{ {
gTrackWorkFlow1.m_bPullJigOut = true; 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; gTrackWorkFlow1.m_bPushJigReady = true;
LogStr1 = "轨道1载具可推出"; LogStr = "轨道1载具可推出";
} }
if (RecvStr.Find("$(KL9E)#", 0) != -1)//轨道1不可推出 if (RecvStr.Find("$(KL9E)#", 0) != -1)//轨道1不可推出
{ {
gTrackWorkFlow1.m_bPushJigReady = false; gTrackWorkFlow1.m_bPushJigReady = false;
LogStr1 = "轨道1载具不可推出--from下料机"; LogStr = "轨道1载具不可推出--from下料机";
gTrackWorkFlow1.SetCurTrackWorkStep(_ETrack_Step_Unload_Err); gTrackWorkFlow1.SetCurTrackWorkStep(_ETrack_Step_Unload_Err);
} }
ret = true; ret = true;
@ -1406,28 +1406,28 @@ void CProgram_SZ_XL::AnalyzeRecvLoadMsg(CString &RecvStr)
{ {
gTrackWorkFlow2.SetCurTrackWorkStep(_ETrack_Step_Unload_End); gTrackWorkFlow2.SetCurTrackWorkStep(_ETrack_Step_Unload_End);
} }
LogStr1 = "轨道2 下料完成"; LogStr = "轨道2 下料完成";
} }
if (RecvStr.Find("$(KL2E)#", 0) != -1)//轨道2 下料错误 if (RecvStr.Find("$(KL2E)#", 0) != -1)//轨道2 下料错误
{ {
gTrackWorkFlow2.SetCurTrackWorkStep(_ETrack_Step_Unload_Err); gTrackWorkFlow2.SetCurTrackWorkStep(_ETrack_Step_Unload_Err);
LogStr1 = "轨道2 下料错误"; LogStr = "轨道2 下料错误";
} }
if (RecvStr.Find("$(KL8D1)#", 0) != -1)//轨道1拉出载具完成 if (RecvStr.Find("$(KL8D1)#", 0) != -1)//轨道1拉出载具完成
{ {
//gTrackWorkFlow2.SetCurTrackWorkStep(_ETrack_Step_PulledOut); //gTrackWorkFlow2.SetCurTrackWorkStep(_ETrack_Step_PulledOut);
gTrackWorkFlow2.m_bPullJigOut = true; 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; gTrackWorkFlow2.m_bPushJigReady = true;
LogStr1 = "轨道2载具可推出"; LogStr = "轨道2载具可推出";
} }
if (RecvStr.Find("$(KL10E)#", 0) != -1)//轨道1拉出载具完成 if (RecvStr.Find("$(KL10E)#", 0) != -1)//轨道1拉出载具完成
{ {
gTrackWorkFlow2.m_bPushJigReady = false; gTrackWorkFlow2.m_bPushJigReady = false;
LogStr1 = "轨道2载具不可推出--from下料机"; LogStr = "轨道2载具不可推出--from下料机";
gTrackWorkFlow2.SetCurTrackWorkStep(_ETrack_Step_Unload_Err); gTrackWorkFlow2.SetCurTrackWorkStep(_ETrack_Step_Unload_Err);
} }
ret = true; ret = true;
@ -1440,12 +1440,12 @@ void CProgram_SZ_XL::AnalyzeRecvLoadMsg(CString &RecvStr)
if (RecvStr.Find("$(KL3D1)#", 0) != -1)//轨道1 上料完成 if (RecvStr.Find("$(KL3D1)#", 0) != -1)//轨道1 上料完成
{ {
gTrackWorkFlow1.SetCurTrackWorkStep(_ETrack_Step_Load_End); gTrackWorkFlow1.SetCurTrackWorkStep(_ETrack_Step_Load_End);
LogStr1 = "轨道1 上料完成"; LogStr = "轨道1 上料完成";
} }
if (RecvStr.Find("$(KL3E)#", 0) != -1)//轨道1 上料错误 if (RecvStr.Find("$(KL3E)#", 0) != -1)//轨道1 上料错误
{ {
gTrackWorkFlow1.SetCurTrackWorkStep(_ETrack_Step_Load_Err); gTrackWorkFlow1.SetCurTrackWorkStep(_ETrack_Step_Load_Err);
LogStr1 = "轨道1 上料错误"; LogStr = "轨道1 上料错误";
} }
ret = true; ret = true;
} }
@ -1455,12 +1455,12 @@ void CProgram_SZ_XL::AnalyzeRecvLoadMsg(CString &RecvStr)
if (RecvStr.Find("$(KL4D1)#", 0) != -1)//轨道2 上料完成 if (RecvStr.Find("$(KL4D1)#", 0) != -1)//轨道2 上料完成
{ {
gTrackWorkFlow2.SetCurTrackWorkStep(_ETrack_Step_Load_End); gTrackWorkFlow2.SetCurTrackWorkStep(_ETrack_Step_Load_End);
LogStr1 = "轨道2 上料完成"; LogStr = "轨道2 上料完成";
} }
if (RecvStr.Find("$(KL4E)#", 0) != -1)//轨道2 上料完成 if (RecvStr.Find("$(KL4E)#", 0) != -1)//轨道2 上料完成
{ {
gTrackWorkFlow2.SetCurTrackWorkStep(_ETrack_Step_Load_Err); gTrackWorkFlow2.SetCurTrackWorkStep(_ETrack_Step_Load_Err);
LogStr1 = "轨道2 上料错误"; LogStr = "轨道2 上料错误";
} }
ret = true; ret = true;
} }
@ -1471,13 +1471,13 @@ void CProgram_SZ_XL::AnalyzeRecvLoadMsg(CString &RecvStr)
if (RecvStr.Find("$(KL5D1)#", 0) != -1)//轨道1 去边框完成(01000000) if (RecvStr.Find("$(KL5D1)#", 0) != -1)//轨道1 去边框完成(01000000)
{ {
gTrackWorkFlow1.SetCurTrackWorkStep(_ETrack_Step_Throw_Edge_End); gTrackWorkFlow1.SetCurTrackWorkStep(_ETrack_Step_Throw_Edge_End);
LogStr1 = "轨道1 去边框完成"; LogStr = "轨道1 去边框完成";
} }
if (RecvStr.Find("$(KL5E)#", 0) != -1)//轨道1 去边框完成(01000000) if (RecvStr.Find("$(KL5E)#", 0) != -1)//轨道1 去边框完成(01000000)
{ {
gTrackWorkFlow1.SetCurTrackWorkStep(_ETrack_Step_Throw_Edge_Err); gTrackWorkFlow1.SetCurTrackWorkStep(_ETrack_Step_Throw_Edge_Err);
LogStr1 = "轨道1 去边框错误"; LogStr = "轨道1 去边框错误";
} }
ret = true; ret = true;
} }
@ -1487,12 +1487,12 @@ void CProgram_SZ_XL::AnalyzeRecvLoadMsg(CString &RecvStr)
if (RecvStr.Find("$(KL6D1)#", 0) != -1)//轨道2 去边框完成(10000000) if (RecvStr.Find("$(KL6D1)#", 0) != -1)//轨道2 去边框完成(10000000)
{ {
gTrackWorkFlow2.SetCurTrackWorkStep(_ETrack_Step_Throw_Edge_End); gTrackWorkFlow2.SetCurTrackWorkStep(_ETrack_Step_Throw_Edge_End);
LogStr1 = "轨道2 去边框完成"; LogStr = "轨道2 去边框完成";
} }
if (RecvStr.Find("$(KL6E)#", 0) != -1)//轨道2 去边框完成(10000000) if (RecvStr.Find("$(KL6E)#", 0) != -1)//轨道2 去边框完成(10000000)
{ {
gTrackWorkFlow2.SetCurTrackWorkStep(_ETrack_Step_Throw_Edge_Err); gTrackWorkFlow2.SetCurTrackWorkStep(_ETrack_Step_Throw_Edge_Err);
LogStr1 = "轨道2 去边框错误"; LogStr = "轨道2 去边框错误";
} }
ret = true; ret = true;
} }
@ -1545,18 +1545,17 @@ void CProgram_SZ_XL::AnalyzeRecvLoadMsg(CString &RecvStr)
ret = true; ret = true;
}*/ }*/
if (ret) //if (ret)
{ {
gLogMgr->WriteDebugLog(RecvStr); //gLogMgr->WriteDebugLog("ReadLoadDeviceMsg: "+RecvStr);
if (LogStr1 != "") CString str = "ReadLoadDeviceMsg: " + RecvStr+"==> ";
{ gLogMgr->WriteDebugLog(str+LogStr);
gLogMgr->WriteDebugLog(LogStr1);
}
if (LogStr2 != "")
{
gLogMgr->WriteDebugLog(LogStr2);
}
} }
/*else
{
CString str = "ReadLoadDeviceMsg: " + RecvStr + "==> 未能解析的指令!";
gLogMgr->WriteDebugLog(str );
}*/
} }
#include <mutex> #include <mutex>
@ -1652,13 +1651,13 @@ bool CProgram_SZ_XL::GetLoadCmdStr(ETrackType TrackType, ETrackWorkStep WorkStep
if (_ETrackType_Track_1 == TrackType) if (_ETrackType_Track_1 == TrackType)
{ {
StrOn = "$(KL3)#"; StrOn = "$(KL3)#";
StrOff = "@00WD0507000051*"; //StrOff = "@00WD0507000051*";
LogStr = "轨道1 上料请求"; LogStr = "轨道1 上料请求";
} }
else else
{ {
StrOn = "$(KL4)#"; StrOn = "$(KL4)#";
StrOff = "@00WD050800005E*"; //StrOff = "@00WD050800005E*";
LogStr = "轨道2 上料请求"; LogStr = "轨道2 上料请求";
} }
Ret = true; Ret = true;
@ -1668,13 +1667,13 @@ bool CProgram_SZ_XL::GetLoadCmdStr(ETrackType TrackType, ETrackWorkStep WorkStep
if (_ETrackType_Track_1 == TrackType) if (_ETrackType_Track_1 == TrackType)
{ {
StrOn = "$(KL5)#"; StrOn = "$(KL5)#";
StrOff = "@00WD050900005F*"; //StrOff = "@00WD050900005F*";
LogStr = "轨道1去边框请求"; LogStr = "轨道1去边框请求";
} }
else else
{ {
StrOn = "$(KL6)#"; StrOn = "$(KL6)#";
StrOff = "@00WD0510000057*"; //StrOff = "@00WD0510000057*";
LogStr = "轨道2去边框请求"; LogStr = "轨道2去边框请求";
} }
Ret = true; Ret = true;
@ -1684,13 +1683,13 @@ bool CProgram_SZ_XL::GetLoadCmdStr(ETrackType TrackType, ETrackWorkStep WorkStep
if (_ETrackType_Track_1 == TrackType) if (_ETrackType_Track_1 == TrackType)
{ {
StrOn = "$(KL1)#"; StrOn = "$(KL1)#";
StrOff = "@00WD050900005F*"; //StrOff = "@00WD050900005F*";
LogStr = "轨道1下料请求"; LogStr = "轨道1下料请求";
} }
else else
{ {
StrOn = "$(KL2)#"; StrOn = "$(KL2)#";
StrOff = "@00WD0510000057*"; //StrOff = "@00WD0510000057*";
LogStr = "轨道2下料请求"; LogStr = "轨道2下料请求";
} }
Ret = true; Ret = true;
@ -1700,21 +1699,38 @@ bool CProgram_SZ_XL::GetLoadCmdStr(ETrackType TrackType, ETrackWorkStep WorkStep
if (_ETrackType_Track_1 == TrackType) if (_ETrackType_Track_1 == TrackType)
{ {
StrOn = "$(KL7)#"; StrOn = "$(KL7)#";
StrOff = "@00WD050900005F*"; //StrOff = "@00WD050900005F*";
LogStr = "轨道1可送回治具"; LogStr = "轨道1可送回治具";
} }
else else
{ {
StrOn = "$(KL8)#"; StrOn = "$(KL8)#";
StrOff = "@00WD0510000057*"; //StrOff = "@00WD0510000057*";
LogStr = "轨道2可送回治具"; LogStr = "轨道2可送回治具";
} }
Ret = true; 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) if (Ret)
{ {
// gLogMgr->WriteDebugLog("Str1 = "+StrOn); // gLogMgr->WriteDebugLog("Str1 = "+StrOn);
//gLogMgr->WriteDebugLog("Str2 = "+StrOff); //gLogMgr->WriteDebugLog("Str2 = "+StrOff);
LogStr = "SendLoadDeviceMsg: " + StrOn + "==>" + LogStr;
gLogMgr->WriteDebugLog(LogStr); gLogMgr->WriteDebugLog(LogStr);
} }
return Ret; return Ret;
@ -1754,7 +1770,7 @@ bool CProgram_SZ_XL::SendMsgToLoadDevice(ETrackType TrackType, ETrackWorkStep Wo
char Buf[BUF_LEN]; char Buf[BUF_LEN];
int len = CreatBuf(Buf, StrOn); int len = CreatBuf(Buf, StrOn);
m_LoadDeviceCOM.WriteBuf(Buf, len); m_LoadDeviceCOM.WriteBuf(Buf, len);
gLogMgr->WriteDebugLog("SendMsgToLoadDevice: "+StrOn); //gLogMgr->WriteDebugLog("SendMsgToLoadDevice: "+StrOn);
/* Sleep(100); /* Sleep(100);
m_LoadDeviceCOM.WriteBuf(Buf,len);//再发一次 m_LoadDeviceCOM.WriteBuf(Buf,len);//再发一次
Sleep(m_LoadCmdDelay);//等待plc 检测到上升沿的时间 Sleep(m_LoadCmdDelay);//等待plc 检测到上升沿的时间
@ -1771,9 +1787,10 @@ bool CProgram_SZ_XL::SendMsgToLoadDevice(ETrackType TrackType, ETrackWorkStep Wo
return Ret; return Ret;
} }
//发送消息并检查反馈(发送SendMsg 并检查反馈信号是否为RevMsg) //发送消息并检查反馈(发送SendMsg 并检查反馈信号是否为RevMsg)
/*
bool CProgram_SZ_XL::SendMsgToLoadPlc(CString &SendMsg, CString &RevMsg) bool CProgram_SZ_XL::SendMsgToLoadPlc(CString &SendMsg, CString &RevMsg)
{ {
return true; return true;
} }*/
#endif #endif

@ -62,7 +62,6 @@ private:
void AnalyzeRecvLoadMsg(CString &RecvStr); void AnalyzeRecvLoadMsg(CString &RecvStr);
bool CompareBuf(char *Buf,CString str); bool CompareBuf(char *Buf,CString str);
int CreatBuf(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); bool GetLoadCmdStr(ETrackType TrackType,ETrackWorkStep WorkStep,CString &StrOn,CString &StrOnRev,CString &StrOff,CString &StrOffRev);
public: public:
CString m_ServerIP="127.0.0.1";//¸±»úIP CString m_ServerIP="127.0.0.1";//¸±»úIP

@ -260,6 +260,11 @@ void CTrackWorkFlow::StopAutoWork()
SetCurTrackWorkStep(_ETrack_Step_Stop); SetCurTrackWorkStep(_ETrack_Step_Stop);
//取消下料请求 //取消下料请求
CancelUnloadRequest(); CancelUnloadRequest();
if ((!gTrackWorkFlow1.m_bAutoWorking)&&(!gTrackWorkFlow2.m_bAutoWorking))
{
SendMsgToPlc(_ETrack_PlcCmd_Auto_End, false);
}
} }
#endif #endif
@ -325,9 +330,9 @@ void CTrackWorkFlow::AnalyzeRecvPlcCmd(char *buf, int len)
if (buf[k] == '#') if (buf[k] == '#')
{ {
IdxEnd = k; IdxEnd = k;
CString s; /*CString s;
s.Format(_T("Idx # = %d"), IdxEnd); s.Format(_T("Idx # = %d"), IdxEnd);
gLogMgr->WriteDebugLog(s); gLogMgr->WriteDebugLog(s);*/
break; break;
} }
} }
@ -338,7 +343,7 @@ void CTrackWorkFlow::AnalyzeRecvPlcCmd(char *buf, int len)
buf[IdxEnd + 1] = '\0'; buf[IdxEnd + 1] = '\0';
CString PlcMsg(buf); CString PlcMsg(buf);
gLogMgr->WriteDebugLog("ReadPlcMsg--->" + PlcMsg); //gLogMgr->WriteDebugLog("ReadPlcMsg==>" + PlcMsg);
int IdxK = -1;//第一个K 的位置 int IdxK = -1;//第一个K 的位置
for (int k = 0; k < IdxEnd; k++) for (int k = 0; k < IdxEnd; k++)
@ -351,63 +356,135 @@ void CTrackWorkFlow::AnalyzeRecvPlcCmd(char *buf, int len)
} }
if (IdxK < 0) if (IdxK < 0)
return; 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 (PlcMsg.Find("$(KQ3D1)#") != -1)//下料完成
if (m_CurWorkStep == _ETrack_Step_Unload)//只有下料状态才响应下料完成信号
{ {
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 状态 GetFrame()->m_DlgSW_XL_Flow.ResetCircleStopCheck(m_TrackType);//自动恢复check 状态
CString Log = m_TrackName + " Circle Stop"; CString Log = "轨道1 停止自动运行!";
gLogMgr->WriteDebugLog(Log); gLogMgr->WriteDebugLog(Log);
StopAutoWork();//停止自动运行 gTrackWorkFlow1.StopAutoWork();//停止自动运行
} }
else 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)//下料错误
{ if (PlcMsg.Find("$(KQ5D1)#") != -1)//推出治具完成
SetCurTrackWorkStep(_ETrack_Step_Unload_Err);
gLogMgr->WriteDebugLog("ReadPlcMsg--->_ETrack_Step_Unload_Err");
}
///------------------------轨道1-------------------------------------
if (PlcMsg.Find("$(KQ5D1)#") != -1)//治具未到位
{ {
gTrackWorkFlow1.m_bPushJigOut = true; gTrackWorkFlow1.m_bPushJigOut = true;
gLogMgr->WriteDebugLog("ReadPlcMsg [$(KQ5D1)#] --->轨道1推出治具完成"); logstrT = "轨道1推出治具完成!";
//gLogMgr->WriteDebugLog("ReadPlcMsg [$(KQ5D1)#] ==>轨道1推出治具完成");
} }
if (PlcMsg.Find("$(KQ5E)#") != -1)//治具未到位 if (PlcMsg.Find("$(KQ5E)#") != -1)//治具未到位
{ {
gTrackWorkFlow1.m_bJigOK = false; gTrackWorkFlow1.m_bJigOK = false;
gLogMgr->WriteDebugLog("ReadPlcMsg [$(KQ5E)#] --->轨道1治具未到位"); logstrT = "轨道1治具未到位!";
//gLogMgr->WriteDebugLog("ReadPlcMsg [$(KQ5E)#] ==>轨道1治具未到位");
} }
if (PlcMsg.Find("$(KQ7D1)#") != -1)//治具到位 if (PlcMsg.Find("$(KQ7D1)#") != -1)//治具到位
{ {
gTrackWorkFlow1.m_bJigOK = true; 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; gTrackWorkFlow2.m_bPushJigOut = true;
gLogMgr->WriteDebugLog("ReadPlcMsg [$(KQ6D1)#] --->轨道2推出治具完成"); logstrT = "轨道2推出治具完成!";
//gLogMgr->WriteDebugLog("ReadPlcMsg [$(KQ6D1)#] ==>轨道2推出治具完成");
} }
if (PlcMsg.Find("$(KQ6E)#") != -1)//治具未到位 if (PlcMsg.Find("$(KQ6E)#") != -1)//治具未到位
{ {
gTrackWorkFlow2.m_bJigOK = false; gTrackWorkFlow2.m_bJigOK = false;
gLogMgr->WriteDebugLog("ReadPlcMsg [$(KQ6E)#] --->轨道2治具未到位"); logstrT = "轨道2治具未到位!";
//gLogMgr->WriteDebugLog("ReadPlcMsg [$(KQ6E)#] ==>轨道2治具未到位");
} }
if (PlcMsg.Find("$(KQ8D1)#") != -1)//治具到位 if (PlcMsg.Find("$(KQ8D1)#") != -1)//治具到位
{ {
gTrackWorkFlow2.m_bJigOK = true; gTrackWorkFlow2.m_bJigOK = true;
gLogMgr->WriteDebugLog("ReadPlcMsg [$(KQ8D1)#]--->轨道2治具到位"); logstrT = "轨道2治具到位!";
//gLogMgr->WriteDebugLog("ReadPlcMsg [$(KQ8D1)#]==>轨道2治具到位");
} }
gLogMgr->WriteDebugLog(logstrH + logstrT);
} }
#endif #endif
@ -422,12 +499,12 @@ CString CTrackWorkFlow::GetSendPlcMsgStr(ETrackPlcCmd PlcCmd)
if (m_TrackType == _ETrackType_Track_1) if (m_TrackType == _ETrackType_Track_1)
{ {
msg += "G"; msg += "G";
log = "SendPlcMsg: Track_1 打开载盘"; log = "SendPlcMsg: $(KQG)# ==>轨道1 打开载盘";
} }
else else
{ {
msg += "I"; msg += "I";
log = "SendPlcMsg: Track_2 打开载盘"; log = "SendPlcMsg: $(KQI)# ==>轨道2 打开载盘";
} }
} }
if (PlcCmd == _ETrack_PlcCmd_Close_Product)//夹紧载盘 if (PlcCmd == _ETrack_PlcCmd_Close_Product)//夹紧载盘
@ -435,12 +512,12 @@ CString CTrackWorkFlow::GetSendPlcMsgStr(ETrackPlcCmd PlcCmd)
if (m_TrackType == _ETrackType_Track_1) if (m_TrackType == _ETrackType_Track_1)
{ {
msg += "F"; msg += "F";
log = "SendPlcMsg: Track_1 夹紧载盘"; log = "SendPlcMsg: $(KQF)# ==> 轨道1 夹紧载盘";
} }
else else
{ {
msg += "H"; msg += "H";
log = "SendPlcMsg: Track_2 夹紧载盘"; log = "SendPlcMsg: $(KQH)# ==>轨道2 夹紧载盘";
} }
} }
if (PlcCmd == _ETrack_PlcCmd_Vac_Sorb_On)//真空吸附开 if (PlcCmd == _ETrack_PlcCmd_Vac_Sorb_On)//真空吸附开
@ -448,12 +525,12 @@ CString CTrackWorkFlow::GetSendPlcMsgStr(ETrackPlcCmd PlcCmd)
if (m_TrackType == _ETrackType_Track_1) if (m_TrackType == _ETrackType_Track_1)
{ {
msg += "9"; msg += "9";
log = "SendPlcMsg: Track_1 真空吸附开"; log = "SendPlcMsg: $(KQ9)# ==>轨道1 真空吸附开";
} }
else else
{ {
msg += "B"; msg += "B";
log = "SendPlcMsg: Track_2 真空吸附开"; log = "SendPlcMsg: $(KQB)# ==>轨道2 真空吸附开";
} }
} }
if (PlcCmd == _ETrack_PlcCmd_Vac_Sorb_Off)//真空吸附关 if (PlcCmd == _ETrack_PlcCmd_Vac_Sorb_Off)//真空吸附关
@ -461,35 +538,35 @@ CString CTrackWorkFlow::GetSendPlcMsgStr(ETrackPlcCmd PlcCmd)
if (m_TrackType == _ETrackType_Track_1) if (m_TrackType == _ETrackType_Track_1)
{ {
msg += "A"; msg += "A";
log = "SendPlcMsg: Track_1 真空吸附关"; log = "SendPlcMsg: $(KQA)# ==>轨道1 真空吸附关";
} }
else else
{ {
msg += "C"; msg += "C";
log = "SendPlcMsg: Track_2 真空吸附关"; log = "SendPlcMsg: $(KQC)# ==>轨道2 真空吸附关";
} }
} }
if (PlcCmd == _ETrack_PlcCmd_Auto_Start)//自动开始(绿灯) if (PlcCmd == _ETrack_PlcCmd_Auto_Start)//自动开始(绿灯)
{ {
msg += "5"; msg += "5";
log = "SendPlcMsg: 自动开始"; log = "SendPlcMsg: $(KQ5)# ==>自动开始";
} }
if (PlcCmd == _ETrack_PlcCmd_Auto_End)//自动结束(黄灯) if (PlcCmd == _ETrack_PlcCmd_Auto_End)//自动结束(黄灯)
{ {
msg += "6"; msg += "6";
log = "SendPlcMsg: 自动结束"; log = "SendPlcMsg: $(KQ6)# ==> 自动结束";
} }
if (PlcCmd == _ETrack_PlcCmd_Unload)//下料 if (PlcCmd == _ETrack_PlcCmd_Unload)//下料
{ {
if (m_TrackType == _ETrackType_Track_1) if (m_TrackType == _ETrackType_Track_1)
{ {
msg += "3"; msg += "3";
log = "SendPlcMsg: Track_1 下料"; log = "SendPlcMsg: $(KQ3)# ==>轨道1 下料";
} }
else else
{ {
msg += "4"; msg += "4";
log = "SendPlcMsg: Track_2 下料"; log = "SendPlcMsg: $(KQ4)# ==>轨道1 下料";
} }
} }
if (PlcCmd == _ETrack_PlcCmd_Push_Jig_Out)//推治具 if (PlcCmd == _ETrack_PlcCmd_Push_Jig_Out)//推治具
@ -497,12 +574,12 @@ CString CTrackWorkFlow::GetSendPlcMsgStr(ETrackPlcCmd PlcCmd)
if (m_TrackType == _ETrackType_Track_1) if (m_TrackType == _ETrackType_Track_1)
{ {
msg += "J"; msg += "J";
log = "SendPlcMsg: Track_1 推出治具"; log = "SendPlcMsg: $(KQJ)# ==>轨道1 推出治具";
} }
else else
{ {
msg += "K"; 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) if (m_TrackType == _ETrackType_Track_1)
{ {
msg += "L"; msg += "L";
log = "SendPlcMsg: Track_1 检测治具"; log = "SendPlcMsg: $(KQL)# ==>轨道1 检测治具";
} }
else else
{ {
msg += "M"; 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) if (m_TrackType == _ETrackType_Track_1)
{ {
msg += "D"; msg += "D";
log = "SendPlcMsg: Track_1 取消请求下料"; log = "SendPlcMsg: $(KQD)# ==>轨道1 取消请求下料";
} }
else else
{ {
msg += "E"; msg += "E";
log = "SendPlcMsg: Track_2 取消请求下料"; log = "SendPlcMsg: $(KQE)# ==>轨道2 取消请求下料";
} }
} }
if (PlcCmd == _ETrack_PlcCmd_Red_Alam_On)//红灯蜂鸣器开 if (PlcCmd == _ETrack_PlcCmd_Red_Alam_On)//红灯蜂鸣器开
{ {
msg += "1"; msg += "1";
log = "SendPlcMsg: 红灯蜂鸣器开"; log = "SendPlcMsg: $(KQ1)# ==>红灯蜂鸣器开";
} }
if (PlcCmd == _ETrack_PlcCmd_Red_Alam_Off)//红灯蜂鸣器开 if (PlcCmd == _ETrack_PlcCmd_Red_Alam_Off)//红灯蜂鸣器开
{ {
msg += "2"; msg += "2";
log = "SendPlcMsg: 红灯蜂鸣器关"; log = "SendPlcMsg: $(KQ2)# ==>红灯蜂鸣器关";
} }
gLogMgr->WriteDebugLog(log); gLogMgr->WriteDebugLog(log);
msg += ")#\r\n"; msg += ")#\r\n";
@ -562,7 +639,7 @@ bool CTrackWorkFlow::SendMsgToPlc(ETrackPlcCmd PlcCmd, bool bStopReadMsg)
char * buf = Msg.GetBuffer(); char * buf = Msg.GetBuffer();
int len = Msg.GetLength(); int len = Msg.GetLength();
m_TrackCOM.WriteBuf(buf, len);//发送 m_TrackCOM.WriteBuf(buf, len);//发送
gLogMgr->WriteDebugLog("SendMsgToPlc--->" + Msg); //gLogMgr->WriteDebugLog("SendMsgToPlc==>" + Msg);
} }
else else
{ {
@ -604,10 +681,10 @@ void CTrackWorkFlow::VacSorbOnOff(bool bOn)
} }
bool CTrackWorkFlow::PushJigOut() bool CTrackWorkFlow::PushJigOut()
{ {
if (gLogMgr->IsDebuging()) /*if (gLogMgr->IsDebuging())
{ {
return true; return true;
} }*/
ETrackPlcCmd PlcCmd; ETrackPlcCmd PlcCmd;
PlcCmd = _ETrack_PlcCmd_Push_Jig_Out; PlcCmd = _ETrack_PlcCmd_Push_Jig_Out;
SendMsgToPlc(PlcCmd, false); SendMsgToPlc(PlcCmd, false);
@ -633,6 +710,7 @@ bool CTrackWorkFlow::IsJigOK()
{ {
return true; return true;
} }
return true;
ETrackPlcCmd PlcCmd; ETrackPlcCmd PlcCmd;
PlcCmd = _ETrack_PlcCmd_Check_Jig_In; PlcCmd = _ETrack_PlcCmd_Check_Jig_In;
@ -835,12 +913,12 @@ void CTrackWorkFlow::ChangePlatXYGroupIdx()
void CTrackWorkFlow::CatchMark() void CTrackWorkFlow::CatchMark()
{ {
/*if (!gObjComponentMgr->GetTwoMarkPt(Dbxy(), Dbxy()))//获取定位点 if (!gObjComponentMgr->GetTwoMarkPt(Dbxy(), Dbxy()))//获取定位点
{ {
CMsgBox MsgBox; CMsgBox MsgBox;
MsgBox.Show("没有加工图形!"); MsgBox.Show("没有加工图形!");
return ; return;
}*/ }
//只有无锁定状态才能CatchMark //只有无锁定状态才能CatchMark
if (gCurLockTrackType != _ETrackType_NULL) 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; m_bPushJigReady = false;
if (gProgram_SZ_XL->SendMsgToLoadDevice(m_TrackType, _ETrack_Step_Unload, true) == false) if (gProgram_SZ_XL->SendMsgToLoadDevice(m_TrackType, _ETrack_Step_Unload, true) == false)
{ {
@ -1297,10 +1314,10 @@ void CTrackWorkFlow::UnLoad()
} }
if (cnt == 400) if (cnt == 400)
{ {
Log = m_TrackName + " [下料机] 运动至下载具位 超时!"; Log = m_TrackName + " [下料机] 运动至下载具位 超时!";
gLogMgr->WriteDebugLog(Log); gLogMgr->WriteDebugLog(Log);
gTrackWorkFlow1.RadAlamOnOff(true); gTrackWorkFlow1.RadAlamOnOff(true);
AfxMessageBox(m_TrackName + "[下料机] 运动至下载具位超时!请手动下料!"); AfxMessageBox(m_TrackName + " [下料机] 运动至下载具位超时!请手动下料!");
gTrackWorkFlow1.RadAlamOnOff(false); gTrackWorkFlow1.RadAlamOnOff(false);
SetCurTrackWorkStep(_ETrack_Step_Unload_Err); SetCurTrackWorkStep(_ETrack_Step_Unload_Err);
return; return;
@ -1311,12 +1328,41 @@ void CTrackWorkFlow::UnLoad()
SetCurTrackWorkStep(_ETrack_Step_Unload_Err); SetCurTrackWorkStep(_ETrack_Step_Unload_Err);
return; return;
} }
Sleep(500);
Sleep(3000); 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); MoveToPos(_ETrack_Step_WaitBack);
gProgram_SZ_XL->SendMsgToLoadDevice(m_TrackType, _ETrack_Step_WaitBack, true);//告诉下料机,我已到可回治具位 gProgram_SZ_XL->SendMsgToLoadDevice(m_TrackType, _ETrack_Step_WaitBack, true);//告诉下料机,我已到可回治具位
m_bLoadProduct = false;//轨道上是否load 了产品 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 轴到安全区域 //移动Y 轴到安全区域

@ -27,6 +27,7 @@ enum ETrackWorkStep
_ETrack_Step_Unload,//下料中20 _ETrack_Step_Unload,//下料中20
_ETrack_Step_PulledOut,//等待拉走治具 _ETrack_Step_PulledOut,//等待拉走治具
_ETrack_Step_WaitBack,//等待送回空治具 _ETrack_Step_WaitBack,//等待送回空治具
_ETrack_Step_PushOut_Finished,//된덤箇쀼왕撈야
_ETrack_Step_Unload_End,//下料完成21 _ETrack_Step_Unload_End,//下料完成21
_ETrack_Step_Unload_Err,//下料错误22 _ETrack_Step_Unload_Err,//下料错误22
}; };

Loading…
Cancel
Save