From 058f911000b8ebf74a87805950391ee43e2376ca Mon Sep 17 00:00:00 2001 From: TAO Cheng Date: Tue, 25 Nov 2014 11:53:12 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A8=A1=E6=8B=9FPLC=E6=93=8D=E4=BD=9C?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Msi/Hsi/SevenOcean/So7_TCPIP_Server.cpp | 69 ++-- .../Msi/Hsi/SevenOcean/So7_TCPIP_Server.h | 24 +- .../Hsi/Tools/UsbUtility/UsbUtil/Mv_Util.rc | 2 +- .../UsbUtil/So7_Util_PLC_TCPIP_SERVER.cpp | 373 ++++++++++++------ .../UsbUtil/So7_Util_PLC_TCPIP_SERVER.h | 2 +- .../Hsi/Tools/UsbUtility/UsbUtil_VS2010.suo | Bin 156160 -> 156160 bytes 6 files changed, 326 insertions(+), 144 deletions(-) diff --git a/PcDmis/Base/Interfac/Msi/Hsi/SevenOcean/So7_TCPIP_Server.cpp b/PcDmis/Base/Interfac/Msi/Hsi/SevenOcean/So7_TCPIP_Server.cpp index c6bddf6..3aad8dc 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/SevenOcean/So7_TCPIP_Server.cpp +++ b/PcDmis/Base/Interfac/Msi/Hsi/SevenOcean/So7_TCPIP_Server.cpp @@ -12,7 +12,8 @@ const BYTE CommHeader[]={0x46,0x49,0x4E,0x53}; const BYTE HandShaking[]={0X46,0X49,0X4E,0X53,0X00,0X00,0X00,0X10,0X00,0X00,0X00,0X01,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X00,0X00,0X00,0X05}; const BYTE DRW_SData[]={0X46,0X49,0X4E,0X53,0X00,0X00,0X00,0X16,0X00,0X00,0X00,0X02,0X00,0X00,0X00,0X00,0XC0,0X00,0X02,0X00,0X03,0X00,0X00,0X05,0X00,0XFF,0X01,0X01,0X00,0X00}; -const int DRW_SDataIndexDataSize=7; +const int DRW_SDataIndexDataSize1=6; +const int DRW_SDataIndexDataSize2=7; const int DRW_SDataHeadDataSize=8; const int DRW_SDataIndexData=30; @@ -58,16 +59,17 @@ CSo7_TCPIP_Server::CSo7_TCPIP_Server() m_TCPIPBuf[i]._size = 0; m_TCPIPBuf[i]._CompletedSize = 0; m_TCPIPBuf[i]._save_send_cmd = 99; - m_TCPIPBuf[i]._buffer = (char *)malloc(TCPIP_MAX_BUFF_SIZE); + m_TCPIPBuf[i]._buffer = (char *)malloc(sizeof(char)*TCPIP_MAX_BUFF_SIZE); m_TCPIPBuf[i]._hProtoPending = false; m_TCPIPBuf[i]._event = NULL; }; - DM5000= (short *)malloc(MAX_DM_PAGE_NUMBER); - DM8000= (short *)malloc(MAX_DM_PAGE_NUMBER); - DM10000= (short *)malloc(MAX_DM_PAGE_NUMBER); - memset(DM5000,0,MAX_DM_PAGE_NUMBER); - memset(DM8000,0,MAX_DM_PAGE_NUMBER); - memset(DM10000,0,MAX_DM_PAGE_NUMBER); + DM5000= (short *)malloc(sizeof(short)*MAX_DM_PAGE_NUMBER); + DM8000= (short *)malloc(sizeof(short)*MAX_DM_PAGE_NUMBER); + DM10000= (short *)malloc(sizeof(short)*MAX_DM_PAGE_NUMBER); + memset(DM5000,0,sizeof(short)*MAX_DM_PAGE_NUMBER); + memset(DM8000,0,sizeof(short)*MAX_DM_PAGE_NUMBER); + memset(DM10000,0,sizeof(short)*MAX_DM_PAGE_NUMBER); + m_TCPIPMsg.Init(); } @@ -326,7 +328,10 @@ BOOL CSo7_TCPIP_Server::Response_PLC_DM5000_R(short _StartAddr,short _DataSize) m_TCPIPBuf[CH_SEND]._buffer[DRW_SDataIndexData+2*i]=(sData>>8) & 0x0ff; m_TCPIPBuf[CH_SEND]._buffer[DRW_SDataIndexData+2*i+1]=sData & 0x0ff; } - m_TCPIPBuf[CH_SEND]._buffer[DRW_SDataIndexDataSize]=static_cast(DRW_SDataIndexData-DRW_SDataHeadDataSize+_DataSize*2); + short sDataSize(0); + sDataSize=(DRW_SDataIndexData-DRW_SDataHeadDataSize+_DataSize*2); + m_TCPIPBuf[CH_SEND]._buffer[DRW_SDataIndexDataSize1]=static_cast((sDataSize>>8) & 0x0ff); + m_TCPIPBuf[CH_SEND]._buffer[DRW_SDataIndexDataSize2]=static_cast(sDataSize & 0x0ff); m_TCPIPBuf[CH_SEND]._size=DRW_SDataIndexData+_DataSize*2; SendBuffer(); @@ -355,7 +360,10 @@ BOOL CSo7_TCPIP_Server::Response_PLC_DM10000_R(short _StartAddr,short _DataSize) m_TCPIPBuf[CH_SEND]._buffer[DRW_SDataIndexData+2*i]=(sData>>8) & 0x0ff; m_TCPIPBuf[CH_SEND]._buffer[DRW_SDataIndexData+2*i+1]=sData & 0x0ff; } - m_TCPIPBuf[CH_SEND]._buffer[DRW_SDataIndexDataSize]=static_cast(DRW_SDataIndexData-DRW_SDataHeadDataSize+_DataSize*2); + short sDataSize(0); + sDataSize=(DRW_SDataIndexData-DRW_SDataHeadDataSize+_DataSize*2); + m_TCPIPBuf[CH_SEND]._buffer[DRW_SDataIndexDataSize1]=static_cast((sDataSize>>8) & 0x0ff); + m_TCPIPBuf[CH_SEND]._buffer[DRW_SDataIndexDataSize2]=static_cast(sDataSize & 0x0ff); m_TCPIPBuf[CH_SEND]._size=DRW_SDataIndexData+_DataSize*2; @@ -539,14 +547,13 @@ void CSo7_TCPIP_Server::m_ProcessSocketReadEvent(SOCKET s) } m_TCPIPBuf[CH_RECV]._CompletedSize += bytesReceived; m_TCPIPBuf[CH_RECV]._size = m_TCPIPBuf[CH_RECV]._CompletedSize; - int iPara(0); - + m_TCPIPMsg.Init(); if (strstr(m_TCPIPBuf[CH_RECV]._buffer, "FINS")) { if (m_TCPIPBuf[CH_RECV]._buffer[7]==0x0C)//handshake { Response_Handshake(); - iPara=RESPONSE_HANDSHAKE; + m_TCPIPMsg._MsgType=RESPONSE_HANDSHAKE; } else if (m_TCPIPBuf[CH_RECV]._buffer[DRW_RDataIndexCMD1]==0x01 &&m_TCPIPBuf[CH_RECV]._buffer[DRW_RDataIndexCMD2]==0x01) @@ -560,25 +567,32 @@ void CSo7_TCPIP_Server::m_ProcessSocketReadEvent(SOCKET s) bData[0]=m_TCPIPBuf[CH_RECV]._buffer[DRW_RDataIndexCh1]; bData[1]=m_TCPIPBuf[CH_RECV]._buffer[DRW_RDataIndexCh2]; iDataSize=(bData[0]<<8)+bData[1]; - + m_TCPIPMsg._CmdType=0; + m_TCPIPMsg._DataAddr=iAddr; + m_TCPIPMsg._DataSize=iDataSize; if (iAddr>=20000) { - iPara=RESPONSE_READ_ERRCODE; + m_TCPIPMsg._MsgType=RESPONSE_READ_ERRCODE; } else if (iAddr>=10000) { Response_PLC_DM10000_R(iAddr,iDataSize); - iPara=RESPONSE_READ_CCD_DATA; + m_TCPIPMsg._MsgType=RESPONSE_READ_CCD_DATA; + } + else if (iAddr>=5100) + { + Response_PLC_DM5000_R(iAddr,iDataSize); + m_TCPIPMsg._MsgType=RESPONSE_READ_PLC_CALIB_POS; } else if (iAddr>=5000) { Response_PLC_DM5000_R(iAddr,iDataSize); - iPara=RESPONSE_READ_PLC_STATE; + m_TCPIPMsg._MsgType=RESPONSE_READ_PLC_STATE; } else { RESPONSE_PLC_DM_UNKNOWN(); - iPara=RESPONSE_UNKNOWN; + m_TCPIPMsg._MsgType=RESPONSE_UNKNOWN; } } else if (m_TCPIPBuf[CH_RECV]._buffer[DRW_RDataIndexCMD1]==0x01 @@ -593,6 +607,9 @@ void CSo7_TCPIP_Server::m_ProcessSocketReadEvent(SOCKET s) bData[0]=m_TCPIPBuf[CH_RECV]._buffer[DRW_RDataIndexCh1]; bData[1]=m_TCPIPBuf[CH_RECV]._buffer[DRW_RDataIndexCh2]; iDataSize=(bData[0]<<8)+bData[1]; + m_TCPIPMsg._CmdType=1; + m_TCPIPMsg._DataAddr=iAddr; + m_TCPIPMsg._DataSize=iDataSize; if (iAddr>=8000) { int iBuffsize(0); @@ -608,23 +625,27 @@ void CSo7_TCPIP_Server::m_ProcessSocketReadEvent(SOCKET s) bData[1]=m_TCPIPBuf[CH_RECV]._buffer[DRW_RDataIndexData+i+1]; DM8000[iStartAddr++]=(bData[0]<<8)+bData[1]; } + m_TCPIPMsg._UpdateData=1; + if (DM8000[2]==1) + { + DM5000[0]=1; + m_TCPIPMsg._UpdateData=2; + } RESPONSE_PLC_DM_UNKNOWN(); - iPara=RESPONSE_WRITE_PLC_STATE; + m_TCPIPMsg._MsgType=RESPONSE_WRITE_PLC_STATE; } else { RESPONSE_PLC_DM_UNKNOWN(); - iPara=RESPONSE_UNKNOWN; + m_TCPIPMsg._MsgType=RESPONSE_UNKNOWN; } } - } - m_TCPIPBuf[CH_RECV]._CompletedSize = 0; m_TCPIPBuf[CH_RECV]._hProtoPending=FALSE; - if (iPara!=RESPONSE_READ_PLC_STATE) + if (m_TCPIPMsg._MsgType!=RESPONSE_READ_PLC_STATE) { - ::PostMessage(m_hMsgWnd,WM_TCPIP_MSG,FD_READ,iPara); + ::PostMessage(m_hMsgWnd,WM_TCPIP_MSG,FD_READ,LPARAM(&m_TCPIPMsg)); } } diff --git a/PcDmis/Base/Interfac/Msi/Hsi/SevenOcean/So7_TCPIP_Server.h b/PcDmis/Base/Interfac/Msi/Hsi/SevenOcean/So7_TCPIP_Server.h index a482018..1e6b02b 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/SevenOcean/So7_TCPIP_Server.h +++ b/PcDmis/Base/Interfac/Msi/Hsi/SevenOcean/So7_TCPIP_Server.h @@ -48,6 +48,7 @@ enum TCPIP_RESPONSE_RESULT RESPONSE_UNKNOWN=0, RESPONSE_HANDSHAKE, RESPONSE_READ_PLC_STATE, + RESPONSE_READ_PLC_CALIB_POS, RESPONSE_WRITE_PLC_STATE, RESPONSE_READ_SENSOR_STATE, RESPONSE_READ_CCD_DATA, @@ -86,6 +87,27 @@ struct s_tcpip_state _PCMeasureResult=0; }; }; + +struct s_tcpip_msg_data +{ + int _MsgType; + int _CmdType; + int _DataAddr; + int _DataSize; + int _UpdateData; + void Init() + { + _MsgType=0; + _CmdType=0; + _DataAddr=0; + _DataSize=0; + _UpdateData=0; + }; + s_tcpip_msg_data() + { + Init(); + }; +}; //====================================================================================== class CSo7_TCPIP_Server { @@ -95,7 +117,7 @@ public: static struct_so7_tcpip_buff m_TCPIPBuf[lChannelSize]; static s_tcpip_state m_TCPIPServerState; - + s_tcpip_msg_data m_TCPIPMsg; short *DM5000; short *DM8000; short *DM10000; diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/Mv_Util.rc b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/Mv_Util.rc index d75f602..02feab4 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/Mv_Util.rc +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/Mv_Util.rc @@ -1093,7 +1093,7 @@ BEGIN PUSHBUTTON "Update",IDC_BUTTON_PLC_TCPIP_SERVER_UPDATEDATA,277,294,40,14 EDITTEXT IDC_EDIT_PLC_TCPIP_SERVER_PORTNUMBER,51,30,40,14,ES_AUTOHSCROLL LTEXT "Port",IDC_STATIC,29,33,14,8 - CONTROL "CCD DM",IDC_RADIO_PLC_TCPIP_SERVER_ADDR_CCD_DM,"Button",BS_AUTORADIOBUTTON | WS_GROUP,32,110,42,10 + CONTROL "CCD1 DM",IDC_RADIO_PLC_TCPIP_SERVER_ADDR_CCD_DM,"Button",BS_AUTORADIOBUTTON | WS_GROUP,32,110,46,10 CONTROL "DM 5000",IDC_RADIO_PLC_TCPIP_SERVER_ADDR_DM5000,"Button",BS_AUTORADIOBUTTON,93,110,44,10 CONTROL "DM 8000",IDC_RADIO_PLC_TCPIP_SERVER_ADDR_DM8000,"Button",BS_AUTORADIOBUTTON,156,110,44,10 END diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/So7_Util_PLC_TCPIP_SERVER.cpp b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/So7_Util_PLC_TCPIP_SERVER.cpp index c7c118c..95a2b4f 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/So7_Util_PLC_TCPIP_SERVER.cpp +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/So7_Util_PLC_TCPIP_SERVER.cpp @@ -23,8 +23,8 @@ extern CSo7_TCPIP_Server* g_pSo7_TCPIP_Server; IMPLEMENT_DYNAMIC(CSo7_Util_PLC_TCPIP_SERVER, CDialog) -CSo7_Util_PLC_TCPIP_SERVER::CSo7_Util_PLC_TCPIP_SERVER(CWnd* pParent /*=NULL*/) - : CDialog(CSo7_Util_PLC_TCPIP_SERVER::IDD, pParent) + CSo7_Util_PLC_TCPIP_SERVER::CSo7_Util_PLC_TCPIP_SERVER(CWnd* pParent /*=NULL*/) + : CDialog(CSo7_Util_PLC_TCPIP_SERVER::IDD, pParent) { for(int i=0;iAppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); } } + if (g_pSo7_TCPIP_Server) + { + CString str; + str.Format(_T("%d"),g_pSo7_TCPIP_Server->m_TCPIPServerState._PLCSensorState[OMRON_PLC_CCD1_CAMERA1]); + GetDlgItem(IDC_EDIT_PLC_TCPIP_SERVER_STATE_CCD1)->SetWindowTextW(str); + str.Format(_T("%d"),g_pSo7_TCPIP_Server->m_TCPIPServerState._PLCSensorState[OMRON_PLC_CCD1_CAMERA2]); + GetDlgItem(IDC_EDIT_PLC_TCPIP_SERVER_STATE_CCD2)->SetWindowTextW(str); + str.Format(_T("%d"),g_pSo7_TCPIP_Server->m_TCPIPServerState._PLCSensorState[IDC_EDIT_PLC_TCPIP_SERVER_STATE_LASER1]); + GetDlgItem(IDC_EDIT_PLC_TCPIP_SERVER_STATE_LASER1)->SetWindowTextW(str); + str.Format(_T("%d"),g_pSo7_TCPIP_Server->m_TCPIPServerState._PLCSensorState[OMRON_PLC_CCD1_CAMERA1]); + GetDlgItem(IDC_EDIT_PLC_TCPIP_SERVER_STATE_LASER2)->SetWindowTextW(str); + str.Format(_T("%d"),g_pSo7_TCPIP_Server->m_TCPIPServerState._PLCRunningState); + GetDlgItem(IDC_EDIT_PLC_TCPIP_SERVER_PLC_STATE)->SetWindowTextW(str); - CString str; - str.Format(_T("%d"),g_pSo7_TCPIP_Server->m_TCPIPServerState._PLCSensorState[OMRON_PLC_CCD1_CAMERA1]); - GetDlgItem(IDC_EDIT_PLC_TCPIP_SERVER_STATE_CCD1)->SetWindowTextW(str); - str.Format(_T("%d"),g_pSo7_TCPIP_Server->m_TCPIPServerState._PLCSensorState[OMRON_PLC_CCD1_CAMERA2]); - GetDlgItem(IDC_EDIT_PLC_TCPIP_SERVER_STATE_CCD2)->SetWindowTextW(str); - str.Format(_T("%d"),g_pSo7_TCPIP_Server->m_TCPIPServerState._PLCSensorState[IDC_EDIT_PLC_TCPIP_SERVER_STATE_LASER1]); - GetDlgItem(IDC_EDIT_PLC_TCPIP_SERVER_STATE_LASER1)->SetWindowTextW(str); - str.Format(_T("%d"),g_pSo7_TCPIP_Server->m_TCPIPServerState._PLCSensorState[OMRON_PLC_CCD1_CAMERA1]); - GetDlgItem(IDC_EDIT_PLC_TCPIP_SERVER_STATE_LASER2)->SetWindowTextW(str); - str.Format(_T("%d"),g_pSo7_TCPIP_Server->m_TCPIPServerState._PLCRunningState); - GetDlgItem(IDC_EDIT_PLC_TCPIP_SERVER_PLC_STATE)->SetWindowTextW(str); - - GetDlgItem(IDC_EDIT_PLC_TCPIP_SERVER_PORTNUMBER)->SetWindowTextW(_T("9600")); - int i(0); - m_CCDData_D10000[i++]=25000; - m_CCDData_D10000[i++]=1000; - m_CCDData_D10000[i++]=1000; - m_CCDData_D10000[i++]=1000; - m_CCDData_D10000[i++]=10000; - m_CCDData_D10000[i++]=1000; - m_CCDData_D10000[i++]=20000; - m_CCDData_D10000[i++]=102000; - m_CCDData_D10000[i++]=3000; - m_CCDData_D10000[i++]=4000; - m_CCDData_D10000[i++]=204000; - m_CCDData_D10000[i++]=5000; - m_CCDData_D10000[i++]=6000; - m_CCDData_D10000[i++]=7000; - m_CCDData_D10000[i++]=8000; - m_CCDData_D10000[i++]=303000; - m_CCDData_D10000[i++]=9000; - m_CCDData_D10000[i++]=9000; - m_CCDData_D10000[i++]=5000; - m_CCDData_D10000[i++]=406000; - m_CCDData_D10000[i++]=10000; - m_CCDData_D10000[i++]=10000; - m_CCDData_D10000[i++]=30000; - m_CCDData_D10000[i++]=30000; - m_CCDData_D10000[i++]=50000; - m_CCDData_D10000[i++]=10000; - if (g_pSo7_TCPIP_Server) - { - int iData(0); - BYTE DM_Data[4]={0,0,0,0}; - int StartAddr(60); - for (int i=0;iSetWindowTextW(_T("9600")); + int i(0); + m_CCDData_D10000[i++]=25000; + m_CCDData_D10000[i++]=1000; + m_CCDData_D10000[i++]=1000; + m_CCDData_D10000[i++]=1000; + m_CCDData_D10000[i++]=10000; + m_CCDData_D10000[i++]=1000; + m_CCDData_D10000[i++]=20000; + m_CCDData_D10000[i++]=102000; + m_CCDData_D10000[i++]=3000; + m_CCDData_D10000[i++]=4000; + m_CCDData_D10000[i++]=204000; + m_CCDData_D10000[i++]=5000; + m_CCDData_D10000[i++]=6000; + m_CCDData_D10000[i++]=7000; + m_CCDData_D10000[i++]=8000; + m_CCDData_D10000[i++]=303000; + m_CCDData_D10000[i++]=9000; + m_CCDData_D10000[i++]=9000; + m_CCDData_D10000[i++]=5000; + m_CCDData_D10000[i++]=406000; + m_CCDData_D10000[i++]=10000; + m_CCDData_D10000[i++]=10000; + m_CCDData_D10000[i++]=30000; + m_CCDData_D10000[i++]=30000; + m_CCDData_D10000[i++]=50000; + m_CCDData_D10000[i++]=10000; + if (g_pSo7_TCPIP_Server) { - iData=m_CCDData_D10000[i]; - DM_Data[0]=(iData>>24) & 0x0ff; - DM_Data[1]=(iData>>16) & 0x0ff; - DM_Data[2]=(iData>>8) & 0x0ff; - DM_Data[3]=iData & 0x0ff; - g_pSo7_TCPIP_Server->DM10000[StartAddr+2*i]=(DM_Data[2]<<8)+DM_Data[3]; - g_pSo7_TCPIP_Server->DM10000[StartAddr+2*i+1]=(DM_Data[0]<<8)+DM_Data[1]; - } - } - if (g_pSo7_TCPIP_Server) - { - int iDM5000DWord[140]={0}; - int index(0); - for (int i=0;i<140;i++) - { - iDM5000DWord[i]=0; + int iData(0); + BYTE DM_Data[4]={0,0,0,0}; + int StartAddr(60); + for (int i=0;i>24) & 0x0ff; + DM_Data[1]=(iData>>16) & 0x0ff; + DM_Data[2]=(iData>>8) & 0x0ff; + DM_Data[3]=iData & 0x0ff; + g_pSo7_TCPIP_Server->DM10000[StartAddr+2*i]=(DM_Data[2]<<8)+DM_Data[3]; + g_pSo7_TCPIP_Server->DM10000[StartAddr+2*i+1]=(DM_Data[0]<<8)+DM_Data[1]; + } } - iDM5000DWord[index++]=1; - iDM5000DWord[index++]=10000; - index=7; - iDM5000DWord[index++]=1; - iDM5000DWord[index++]=20000; - - int iData(0); - BYTE DM_Data[4]={0,0,0,0}; - index=9; - g_pSo7_TCPIP_Server->DM5000[index]=0; - int StartAddr(100); - - for (int i=0;i<140;i++) + if (g_pSo7_TCPIP_Server) { - iData=iDM5000DWord[i]; - DM_Data[0]=(iData>>24) & 0x0ff; - DM_Data[1]=(iData>>16) & 0x0ff; - DM_Data[2]=(iData>>8) & 0x0ff; - DM_Data[3]=iData & 0x0ff; - g_pSo7_TCPIP_Server->DM5000[StartAddr+2*i]=(DM_Data[2]<<8)+DM_Data[3]; - g_pSo7_TCPIP_Server->DM5000[StartAddr+2*i+1]=(DM_Data[0]<<8)+DM_Data[1]; - } - } + int iData(0); + BYTE DM_Data[4]={0,0,0,0}; + int StartAddr(0); + int index(0); + int iDM5000DWord[150]={0}; + for (int i=0;i<150;i++) + { + iDM5000DWord[i]=0; + } + StartAddr=100; + index=0; + for (int i=0;i<10;i++) + { + iDM5000DWord[index++]=1; + iDM5000DWord[index++]=(i+1)*10000; + index=7*(i+1); + } + for (int i=0;i<6;i++) + { + iDM5000DWord[index++]=1; + iDM5000DWord[index++]=(i+1)*10000; + index=7*(i+11); + } + for (int i=0;i<150;i++) + { + iData=iDM5000DWord[i]; + DM_Data[0]=(iData>>24) & 0x0ff; + DM_Data[1]=(iData>>16) & 0x0ff; + DM_Data[2]=(iData>>8) & 0x0ff; + DM_Data[3]=iData & 0x0ff; - m_DMAddrList=DM_ADDR_CCD; - ((CButton *)GetDlgItem(IDC_RADIO_PLC_TCPIP_SERVER_ADDR_CCD_DM))->SetCheck(TRUE); - ((CButton *)GetDlgItem(IDC_RADIO_PLC_TCPIP_SERVER_ADDR_DM5000))->SetCheck(FALSE); - ((CButton *)GetDlgItem(IDC_RADIO_PLC_TCPIP_SERVER_ADDR_DM8000))->SetCheck(FALSE); - m_UpdateListControl(E_LISTCTRL_CREATE); - m_UpdateListControl(E_LISTCTRL_TITLE); - m_UpdateListControl(E_LISTCTRL_DATA2CONTROL); - m_UpdateControls(FALSE); - UpdateData(FALSE); + g_pSo7_TCPIP_Server->DM5000[StartAddr+2*i]=(DM_Data[2]<<8)+DM_Data[3]; + g_pSo7_TCPIP_Server->DM5000[StartAddr+2*i+1]=(DM_Data[0]<<8)+DM_Data[1]; + } + + + for (int i=0;i<150;i++) + { + iDM5000DWord[i]=0; + } + StartAddr=400; + index=0; + for (int i=0;i<10;i++) + { + iDM5000DWord[index++]=(i+1)*10000; + iDM5000DWord[index++]=(i+1)*10000; + iDM5000DWord[index++]=(i+1)*10000; + index=3*(i+1); + } + for (int i=0;i<6;i++) + { + iDM5000DWord[index++]=(i+1)*10000; + iDM5000DWord[index++]=(i+1)*10000; + iDM5000DWord[index++]=(i+1)*10000; + index=3*(i+11); + } + for (int i=0;i<150;i++) + { + iData=iDM5000DWord[i]; + DM_Data[0]=(iData>>24) & 0x0ff; + DM_Data[1]=(iData>>16) & 0x0ff; + DM_Data[2]=(iData>>8) & 0x0ff; + DM_Data[3]=iData & 0x0ff; + + g_pSo7_TCPIP_Server->DM5000[StartAddr+2*i]=(DM_Data[2]<<8)+DM_Data[3]; + g_pSo7_TCPIP_Server->DM5000[StartAddr+2*i+1]=(DM_Data[0]<<8)+DM_Data[1]; + } + + + for (int i=0;i<150;i++) + { + iDM5000DWord[i]=0; + } + StartAddr=500; + index=0; + for (int i=0;i<10;i++) + { + iDM5000DWord[index++]=(i+1)*10000; + iDM5000DWord[index++]=(i+1)*10000; + iDM5000DWord[index++]=(i+1)*10000; + index=3*(i+1); + } + for (int i=0;i<6;i++) + { + iDM5000DWord[index++]=(i+1)*10000; + iDM5000DWord[index++]=(i+1)*10000; + iDM5000DWord[index++]=(i+1)*10000; + index=3*(i+11); + } + for (int i=0;i<150;i++) + { + iData=iDM5000DWord[i]; + DM_Data[0]=(iData>>24) & 0x0ff; + DM_Data[1]=(iData>>16) & 0x0ff; + DM_Data[2]=(iData>>8) & 0x0ff; + DM_Data[3]=iData & 0x0ff; + + g_pSo7_TCPIP_Server->DM5000[StartAddr+2*i]=(DM_Data[2]<<8)+DM_Data[3]; + g_pSo7_TCPIP_Server->DM5000[StartAddr+2*i+1]=(DM_Data[0]<<8)+DM_Data[1]; + } + } + + m_DMAddrList=DM_ADDR_CCD; + ((CButton *)GetDlgItem(IDC_RADIO_PLC_TCPIP_SERVER_ADDR_CCD_DM))->SetCheck(TRUE); + ((CButton *)GetDlgItem(IDC_RADIO_PLC_TCPIP_SERVER_ADDR_DM5000))->SetCheck(FALSE); + ((CButton *)GetDlgItem(IDC_RADIO_PLC_TCPIP_SERVER_ADDR_DM8000))->SetCheck(FALSE); + m_UpdateListControl(E_LISTCTRL_CREATE); + m_UpdateListControl(E_LISTCTRL_TITLE); + m_UpdateListControl(E_LISTCTRL_DATA2CONTROL); + m_UpdateControls(FALSE); + UpdateData(FALSE); + } return TRUE; // return TRUE unless you set the focus to a control } @@ -352,7 +426,7 @@ void CSo7_Util_PLC_TCPIP_SERVER::m_UpdateListControl(int _type) m_DataList.InsertColumn(0,_T("CCD地址"),LVCFMT_LEFT, m_rect.right*1/4); m_DataList.InsertColumn(1,_T("数据值"),LVCFMT_LEFT, m_rect.right*1/4); - m_DataList.InsertColumn(2,_T("备注"),LVCFMT_LEFT, m_rect.right*2/4); + m_DataList.InsertColumn(2,_T("备注"),LVCFMT_LEFT, m_rect.right*3/2); int iStartRow(0),iEndRow(0); CString str; @@ -417,7 +491,7 @@ void CSo7_Util_PLC_TCPIP_SERVER::m_UpdateListControl(int _type) m_DataList.SetItemText(i,2,_T("")); } int Addr(0); - m_DataList.SetItemText(Addr++,2,_T("PLC设备运行状态(0-空闲,1-后退,2-前进,3-故障,4-编辑)")); + m_DataList.SetItemText(Addr++,2,_T("PLC设备运行状态(0-未知,1-空闲,2-后退(开始测量),3-前进(测量结束),4-故障,5-参数编辑)")); m_DataList.SetItemText(Addr++,2,_T("CCD1数据刷新")); m_DataList.SetItemText(Addr++,2,_T("CCD2数据刷新")); m_DataList.SetItemText(Addr++,2,_T("CCD3数据刷新")); @@ -445,7 +519,7 @@ void CSo7_Util_PLC_TCPIP_SERVER::m_UpdateListControl(int _type) m_DataList.SetItemText(Addr++,2,str+_T("中断位置6低字")); m_DataList.SetItemText(Addr++,2,str+_T("中断位置6高字")); } - for (int i=0;i<3;i++) + for (int i=0;i<6;i++) { str.Format(_T("LASER%d-%d"),1+(i/2),1+(i%2)); m_DataList.SetItemText(Addr++,2,str+_T("中断数低字")); @@ -463,8 +537,48 @@ void CSo7_Util_PLC_TCPIP_SERVER::m_UpdateListControl(int _type) m_DataList.SetItemText(Addr++,2,str+_T("中断位置6低字")); m_DataList.SetItemText(Addr++,2,str+_T("中断位置6高字")); } - - + Addr=400; + for (int i=0;i<10;i++) + { + str.Format(_T("CCD%d-%d"),1+(i/2),1+(i%2)); + m_DataList.SetItemText(Addr++,2,str+_T("设备坐标X低字")); + m_DataList.SetItemText(Addr++,2,str+_T("设备坐标X高字")); + m_DataList.SetItemText(Addr++,2,str+_T("设备坐标Y低字")); + m_DataList.SetItemText(Addr++,2,str+_T("设备坐标Y高字")); + m_DataList.SetItemText(Addr++,2,str+_T("设备坐标Z低字")); + m_DataList.SetItemText(Addr++,2,str+_T("设备坐标Z高字")); + } + for (int i=0;i<6;i++) + { + str.Format(_T("LASER%d-%d"),1+(i/2),1+(i%2)); + m_DataList.SetItemText(Addr++,2,str+_T("设备坐标X低字")); + m_DataList.SetItemText(Addr++,2,str+_T("设备坐标X高字")); + m_DataList.SetItemText(Addr++,2,str+_T("设备坐标Y低字")); + m_DataList.SetItemText(Addr++,2,str+_T("设备坐标Y高字")); + m_DataList.SetItemText(Addr++,2,str+_T("设备坐标Z低字")); + m_DataList.SetItemText(Addr++,2,str+_T("设备坐标Z高字")); + } + Addr=500; + for (int i=0;i<10;i++) + { + str.Format(_T("CCD%d-%d"),1+(i/2),1+(i%2)); + m_DataList.SetItemText(Addr++,2,str+_T("测量补偿ΔX低字")); + m_DataList.SetItemText(Addr++,2,str+_T("测量补偿ΔX高字")); + m_DataList.SetItemText(Addr++,2,str+_T("测量补偿ΔY低字")); + m_DataList.SetItemText(Addr++,2,str+_T("测量补偿ΔY高字")); + m_DataList.SetItemText(Addr++,2,str+_T("测量补偿ΔZ低字")); + m_DataList.SetItemText(Addr++,2,str+_T("测量补偿ΔZ高字")); + } + for (int i=0;i<6;i++) + { + str.Format(_T("LASER%d-%d"),1+(i/2),1+(i%2)); + m_DataList.SetItemText(Addr++,2,str+_T("测量补偿ΔX低字")); + m_DataList.SetItemText(Addr++,2,str+_T("测量补偿ΔX高字")); + m_DataList.SetItemText(Addr++,2,str+_T("测量补偿ΔY低字")); + m_DataList.SetItemText(Addr++,2,str+_T("测量补偿ΔY高字")); + m_DataList.SetItemText(Addr++,2,str+_T("测量补偿ΔZ低字")); + m_DataList.SetItemText(Addr++,2,str+_T("测量补偿ΔZ高字")); + } m_DataList.SetEditableItemRange(0,MAX_DM_PAGE_NUMBER-1,1,1); m_DataList.SetColorStyleItemRange(0,MAX_DM_PAGE_NUMBER-1,0,2); } @@ -676,7 +790,7 @@ LRESULT CSo7_Util_PLC_TCPIP_SERVER::OnSocket(WPARAM w, LPARAM p) LRESULT CSo7_Util_PLC_TCPIP_SERVER::OnTCPIPMsg(WPARAM w, LPARAM p) { LRESULT lResult=0; - int lPara=static_cast(p); + //int lPara=static_cast(p); switch(w) { case FD_ACCEPT: @@ -686,7 +800,24 @@ LRESULT CSo7_Util_PLC_TCPIP_SERVER::OnTCPIPMsg(WPARAM w, LPARAM p) } case FD_READ: { - m_csMSG=_T(" FD_READ ")+TCPIPMsg(lPara); + s_tcpip_msg_data _TCPIPMsg; + memcpy(&_TCPIPMsg,(s_tcpip_msg_data*)p,sizeof(s_tcpip_msg_data)); + if (_TCPIPMsg._UpdateData==1) + { + if (m_DMAddrList==DM_ADDR_DM8000) + { + m_UpdateListControl(E_LISTCTRL_TITLE); + m_UpdateListControl(E_LISTCTRL_DATA2CONTROL); + } + } + else if (_TCPIPMsg._UpdateData==2) + { + m_UpdateControls(FALSE); + m_UpdateListControl(E_LISTCTRL_TITLE); + m_UpdateListControl(E_LISTCTRL_DATA2CONTROL); + } + + m_csMSG=_T(" FD_READ ")+TCPIPMsg(_TCPIPMsg); break; } case FD_WRITE: @@ -709,49 +840,57 @@ LRESULT CSo7_Util_PLC_TCPIP_SERVER::OnTCPIPMsg(WPARAM w, LPARAM p) return( lResult ); } //===================================================================================== -CString CSo7_Util_PLC_TCPIP_SERVER::TCPIPMsg(int _Type) +CString CSo7_Util_PLC_TCPIP_SERVER::TCPIPMsg(s_tcpip_msg_data _MsgData) { CString cStr(""); - switch(_Type) + if (_MsgData._CmdType==0) + { + cStr.Format(_T(" [R]Addr[%d]NumberOfWords[%d]."),_MsgData._DataAddr,_MsgData._DataSize); + } + else + { + cStr.Format(_T(" [W]Addr[%d]NumberOfWords[%d]."),_MsgData._DataAddr,_MsgData._DataSize); + } + switch(_MsgData._MsgType) { case RESPONSE_UNKNOWN: { - cStr=_T("RESPONSE_UNKNOWN"); + cStr=_T("RESPONSE_UNKNOWN")+cStr; break; } case RESPONSE_HANDSHAKE: { - cStr=_T("RESPONSE_HANDSHAKE"); + cStr=_T("RESPONSE_HANDSHAKE")+cStr; break; } + case RESPONSE_READ_PLC_CALIB_POS: + { + cStr=_T("RESPONSE_READ_PLC_CALIB_POS")+cStr; + break; + } case RESPONSE_READ_PLC_STATE: { - cStr=_T("RESPONSE_READ_PLC_STATE"); + cStr=_T("RESPONSE_READ_PLC_STATE")+cStr; break; } case RESPONSE_WRITE_PLC_STATE: { - if (m_DMAddrList==DM_ADDR_DM8000) - { - m_UpdateListControl(E_LISTCTRL_TITLE); - m_UpdateListControl(E_LISTCTRL_DATA2CONTROL); - } - cStr=_T("RESPONSE_WRITE_PLC_STATE"); + cStr=_T("RESPONSE_WRITE_PLC_STATE")+cStr; break; } case RESPONSE_READ_SENSOR_STATE: { - cStr=_T("RESPONSE_READ_SENSOR_STATE"); + cStr=_T("RESPONSE_READ_SENSOR_STATE")+cStr; break; } case RESPONSE_READ_CCD_DATA: { - cStr=_T("RESPONSE_READ_CCD_DATA"); + cStr=_T("RESPONSE_READ_CCD_DATA")+cStr; break; } case RESPONSE_READ_ERRCODE: { - cStr=_T("RESPONSE_READ_ERRCODE"); + cStr=_T("RESPONSE_READ_ERRCODE")+cStr; break; } default: diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/So7_Util_PLC_TCPIP_SERVER.h b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/So7_Util_PLC_TCPIP_SERVER.h index dd66035..c7e134d 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/So7_Util_PLC_TCPIP_SERVER.h +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/So7_Util_PLC_TCPIP_SERVER.h @@ -46,7 +46,7 @@ public: afx_msg void OnBnClickedButtonPlcTcpipServerUpdatedata(); void m_UpdateListControl(int _type); void m_UpdateControls(int _type); - CString TCPIPMsg(int _Type); + CString TCPIPMsg(s_tcpip_msg_data _Type); afx_msg void OnBnClickedRadioPlcTcpipServerAddrCcdDm(); afx_msg void OnBnClickedRadioPlcTcpipServerAddrDm5000(); diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil_VS2010.suo b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil_VS2010.suo index 5ebc610523466089ff59ca292dc88268a9b358c9..9059132d8bdc88504f5fdd851f812d54f907152d 100644 GIT binary patch delta 3193 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 delta 2843 zcmaJ@dsLLi6`wo%?Xt^b<+%vm$g+Zw2#ScoDB|*}!65QVb54rj7Ew4NAa0`41{cMs zHBs1Wb{fxV>Z{oFXhc54XFRBz_$1^gqP7}628`Nh&>F>7O^Tga9-98q*>iX2-nnz{ z%$<9GckRb?_G7x{a!DUse?xy#>I4-b#NH*>NEx6b5@&olu}(9L#Xfbu)I|xwOieV* zlvijvRNAL}n1?iEn`gZis_?P@8R_>!LhK7@@DWz0a9T);NEP;UhRZF1TWLrMCMrM=AT!VjbQ*a~zhD#y%Nw7cm1{X*^!%l1?voURAq9bHEY{wNL zvvlCc*MwX5+2y{F^9Ct&h}DeevyKnsC$SlxI`HPqrs1VHe#35pHPf=B_lJaX-?Xp5 zIThki3ib`Rk_BWrSw_l81sP9DNkPo?&Q)RY$=2`ITdp|t{g2ra4;rE_AbI2-CMP|G zF7|mY9D$26SYVXL@ec^`Ah%fZLzu~$vtS3Bi*Mo1dFP?sEyL`>H}P6=6m$%+YjC-> z3vLeYSm=|!+*VRuVJ$DpuP$52{5C?g9te1l7lZTIAFtai{}|R?&eC%rO4>|PhOOtw za~JHGgw6UXc<(npnBH99vL)3+4I9LDyI%wo#!B9@ZQB_SJSt6;Z68Y-YSv=S-gjB} zQAm@0_C26j6_LPq>oL8xe*1nZx3?zvI8L-fE5aUG-hV6;)(xg|8Pvj>JRst#jWH=9U97N9iU}x6JQEjE?ZRT z0?ruywCnxhgX0>U@t0yS<(ZfHmN=){hjXoL1<-M9 z%sjWgr{o;c^)m6*e$EL&P8J=_E?x(NJmu?CDyb;Dx)QC$A?)Bb2$Fxis#alhsevWM zQXPi%{nc^J&hs`|yRzlm-8%0_!VZsb7r-e&`%aM9+*lf;{7V8)V87T1qw&KdNzCdCrA`g(_ZB%(*th$& zk~klK#iap@4tq*X_|7W5@^4?zfin==oBV;YyNNJI)F_J#g3EYw>0~xJ5jM9Pz~ZI* zQ~c;l7vkS|pkqB_A&8wfQnO+Y2YV=a?V*{LLx&+ejA)!6iRnF(>oYMY3Y`X2e@Y|t{{8!XR7^i>}b*1ZXG0Ss6O+yGa zcPFCnVgojpd1GyLr2#V`11(1A0F7imNV7}?=` zSfhi@T)vZ&J8FvUb$HL{VaqL9`c}COb5>VkXSGRLy$TiqgSX(2a@YnbK2X9AZG%yY z_eSV}rh4#Hmn=>CT?wn*2u4N!2lxh>8bFIbR0d(}T8oIhmoob!*a~RZ+7apSHh36!?p z20Jjv_weR0vQiZUa{Fplc?TNtbY~*pDgLe<7}#mw6Yn+PLv##YgEPW#Yq03-l17wj zE#Y8o*!AQUDlvNmPs*L%)F=>GNxKhifZwc(RKk+zWtGzb_3Tt8)hmuia9153%QyRS z5`WB!__viu&B}QZ{xUM3%*VaKVT!9C%2l9eF_eZen+Nr6tQxD-Q`)A72K;=~4CZn{ z1+!#Pf82L9lHH4;FDV%*bRV#~9*9w50_iywcDg3HSMWaveU*i?D1tMT+O^^Q+Gb8{ zT_|nv5xFBsjQ&RJPx#