串口发送指令前先清理缓冲区

检测治具到位
检测推出完成
同兴达双头-推治具
bestlqiang 4 years ago
parent 65bd511efd
commit 7ad1324d8b

@ -519,7 +519,8 @@ OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL | _dwIOMode,NULL);
} }
return IsOpen(); return IsOpen();
} }
//ノ靹テエョソレ public:
//ÉèÖÃ(ÖØÖÃ)´®¿Ú
virtual bool SetupPort() virtual bool SetupPort()
{ {
if (!IsOpen()) if (!IsOpen())

@ -118,6 +118,10 @@ void CCommPortMgr::WriteBuf(LPVOID Buffer, DWORD dwBufferLength)
//gLogMgr->WriteDebugLog(str); //gLogMgr->WriteDebugLog(str);
m_Com.Write(Buffer,dwBufferLength); m_Com.Write(Buffer,dwBufferLength);
} }
void CCommPortMgr::ClearCache()
{
m_Com.SetupPort();
}
//关闭串口 //关闭串口
void CCommPortMgr::Close() void CCommPortMgr::Close()
{ {

@ -13,6 +13,7 @@ public:
void SetWnd(HWND hWnd); void SetWnd(HWND hWnd);
void Write(const char *szBuffer); void Write(const char *szBuffer);
void WriteBuf(LPVOID Buffer, DWORD dwBufferLength); void WriteBuf(LPVOID Buffer, DWORD dwBufferLength);
void ClearCache();//重置读写缓冲区
CString ReadStr(); CString ReadStr();
CString ReadBuf(char *szBuffer,DWORD dwBufferLength); CString ReadBuf(char *szBuffer,DWORD dwBufferLength);
int Read(LPVOID Buffer, DWORD dwBufferLength); int Read(LPVOID Buffer, DWORD dwBufferLength);

@ -1769,6 +1769,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.ClearCache();
m_LoadDeviceCOM.WriteBuf(Buf, len); m_LoadDeviceCOM.WriteBuf(Buf, len);
//gLogMgr->WriteDebugLog("SendMsgToLoadDevice: "+StrOn); //gLogMgr->WriteDebugLog("SendMsgToLoadDevice: "+StrOn);
/* Sleep(100); /* Sleep(100);

@ -638,6 +638,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.ClearCache();
m_TrackCOM.WriteBuf(buf, len);//发送 m_TrackCOM.WriteBuf(buf, len);//发送
//gLogMgr->WriteDebugLog("SendMsgToPlc==>" + Msg); //gLogMgr->WriteDebugLog("SendMsgToPlc==>" + Msg);
} }
@ -690,9 +691,9 @@ bool CTrackWorkFlow::PushJigOut()
SendMsgToPlc(PlcCmd, false); SendMsgToPlc(PlcCmd, false);
m_bPushJigOut = false; m_bPushJigOut = false;
int cnt = 0; int cnt = 0;
while (cnt < 50 && (!m_bPushJigOut)) while (cnt < 200 && (!m_bPushJigOut))
{ {
Sleep(200); Sleep(100);
cnt++; cnt++;
} }
if (cnt == 200) if (cnt == 200)
@ -710,7 +711,7 @@ bool CTrackWorkFlow::IsJigOK()
{ {
return true; return true;
} }
return true; //return true;
ETrackPlcCmd PlcCmd; ETrackPlcCmd PlcCmd;
PlcCmd = _ETrack_PlcCmd_Check_Jig_In; PlcCmd = _ETrack_PlcCmd_Check_Jig_In;
@ -1305,12 +1306,9 @@ void CTrackWorkFlow::UnLoad()
logstr.Format("等待[下料机] 运动至[%s]下载具位.", str); logstr.Format("等待[下料机] 运动至[%s]下载具位.", str);
gLogMgr->WriteDebugLog(logstr); gLogMgr->WriteDebugLog(logstr);
while ((!m_bPushJigReady) )
//int cnt = 0;
while ((!m_bPushJigReady) )//&& cnt < 400)
{ {
Sleep(300); Sleep(300);
//cnt++;
} }
/*if (cnt == 400) /*if (cnt == 400)
{ {
@ -1327,8 +1325,7 @@ void CTrackWorkFlow::UnLoad()
{ {
SetCurTrackWorkStep(_ETrack_Step_Unload_Err); SetCurTrackWorkStep(_ETrack_Step_Unload_Err);
return; return;
} }
Sleep(500);
if (gProgram_SZ_XL->SendMsgToLoadDevice(m_TrackType, _ETrack_Step_PushOut_Finished, true) == false) if (gProgram_SZ_XL->SendMsgToLoadDevice(m_TrackType, _ETrack_Step_PushOut_Finished, true) == false)
{ {
SetCurTrackWorkStep(_ETrack_Step_Unload_Err); SetCurTrackWorkStep(_ETrack_Step_Unload_Err);
@ -1336,7 +1333,6 @@ void CTrackWorkFlow::UnLoad()
gLogMgr->WriteDebugLog(Log); gLogMgr->WriteDebugLog(Log);
return; 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);//告诉下料机,我已到可回治具位

Loading…
Cancel
Save