|
|
|
@@ -10,8 +10,10 @@
|
|
|
|
|
|
|
|
|
|
enum E_UPDATE_LIST_CONTROL_TYPE
|
|
|
|
|
{
|
|
|
|
|
E_LISTCTRL_CREATE,
|
|
|
|
|
E_LISTCTRL_TITLE,
|
|
|
|
|
E_LISTCTRL_CONTENT,
|
|
|
|
|
E_LISTCTRL_DATA2CONTROL,
|
|
|
|
|
E_LISTCTRL_CONTROL2DATA,
|
|
|
|
|
E_LISTCTRL_TOTAL
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
@@ -52,6 +54,9 @@ BEGIN_MESSAGE_MAP(CSo7_Util_PLC_TCPIP_SERVER, CDialog)
|
|
|
|
|
ON_MESSAGE(WM_SOCKET,&CSo7_Util_PLC_TCPIP_SERVER::OnSocket)
|
|
|
|
|
ON_MESSAGE(WM_TCPIP_MSG,&CSo7_Util_PLC_TCPIP_SERVER::OnTCPIPMsg)
|
|
|
|
|
ON_BN_CLICKED(IDC_BUTTON_PLC_TCPIP_SERVER_UPDATEDATA, &CSo7_Util_PLC_TCPIP_SERVER::OnBnClickedButtonPlcTcpipServerUpdatedata)
|
|
|
|
|
ON_BN_CLICKED(IDC_RADIO_PLC_TCPIP_SERVER_ADDR_CCD_DM, &CSo7_Util_PLC_TCPIP_SERVER::OnBnClickedRadioPlcTcpipServerAddrCcdDm)
|
|
|
|
|
ON_BN_CLICKED(IDC_RADIO_PLC_TCPIP_SERVER_ADDR_DM5000, &CSo7_Util_PLC_TCPIP_SERVER::OnBnClickedRadioPlcTcpipServerAddrDm5000)
|
|
|
|
|
ON_BN_CLICKED(IDC_RADIO_PLC_TCPIP_SERVER_ADDR_DM8000, &CSo7_Util_PLC_TCPIP_SERVER::OnBnClickedRadioPlcTcpipServerAddrDm8000)
|
|
|
|
|
END_MESSAGE_MAP()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -94,36 +99,96 @@ BOOL CSo7_Util_PLC_TCPIP_SERVER::OnInitDialog()
|
|
|
|
|
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 index(9);
|
|
|
|
|
g_pSo7_TCPIP_Server->DM5000[index]=0;
|
|
|
|
|
index=100;
|
|
|
|
|
g_pSo7_TCPIP_Server->DM5000[index++]=3;
|
|
|
|
|
g_pSo7_TCPIP_Server->DM5000[index++]=0;
|
|
|
|
|
g_pSo7_TCPIP_Server->DM5000[index++]=10000;
|
|
|
|
|
g_pSo7_TCPIP_Server->DM5000[index++]=0;
|
|
|
|
|
g_pSo7_TCPIP_Server->DM5000[index++]=20000;
|
|
|
|
|
g_pSo7_TCPIP_Server->DM5000[index++]=0;
|
|
|
|
|
g_pSo7_TCPIP_Server->DM5000[index++]=30000;
|
|
|
|
|
g_pSo7_TCPIP_Server->DM5000[index++]=0;
|
|
|
|
|
index=100+14;
|
|
|
|
|
g_pSo7_TCPIP_Server->DM5000[index++]=2;
|
|
|
|
|
g_pSo7_TCPIP_Server->DM5000[index++]=0;
|
|
|
|
|
g_pSo7_TCPIP_Server->DM5000[index++]=-25536;
|
|
|
|
|
g_pSo7_TCPIP_Server->DM5000[index++]=0;
|
|
|
|
|
g_pSo7_TCPIP_Server->DM5000[index++]=-15536;
|
|
|
|
|
g_pSo7_TCPIP_Server->DM5000[index++]=0;
|
|
|
|
|
int iData(0);
|
|
|
|
|
BYTE DM_Data[4]={0,0,0,0};
|
|
|
|
|
int StartAddr(60);
|
|
|
|
|
for (int i=0;i<MAX_CCD_ADDR;i++)
|
|
|
|
|
{
|
|
|
|
|
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];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
m_UpdateListControl(E_LISTCTRL_TITLE);
|
|
|
|
|
m_UpdateListControl(E_LISTCTRL_CONTENT);
|
|
|
|
|
if (g_pSo7_TCPIP_Server)
|
|
|
|
|
{
|
|
|
|
|
int iDM5000DWord[140]={0};
|
|
|
|
|
int index(0);
|
|
|
|
|
for (int i=0;i<140;i++)
|
|
|
|
|
{
|
|
|
|
|
iDM5000DWord[i]=0;
|
|
|
|
|
}
|
|
|
|
|
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++)
|
|
|
|
|
{
|
|
|
|
|
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
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//=====================================================================
|
|
|
|
|
void CSo7_Util_PLC_TCPIP_SERVER::OnBnClickedButtonPlcTcpipServerStart()
|
|
|
|
|
{
|
|
|
|
|
CString str;
|
|
|
|
@@ -141,6 +206,7 @@ void CSo7_Util_PLC_TCPIP_SERVER::OnBnClickedButtonPlcTcpipServerStart()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//=====================================================================
|
|
|
|
|
void CSo7_Util_PLC_TCPIP_SERVER::OnBnClickedButtonPlcTcpipServerStop()
|
|
|
|
|
{
|
|
|
|
|
if (g_pSo7_TCPIP_Server)
|
|
|
|
@@ -152,154 +218,398 @@ void CSo7_Util_PLC_TCPIP_SERVER::OnBnClickedButtonPlcTcpipServerStop()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//=====================================================================
|
|
|
|
|
void CSo7_Util_PLC_TCPIP_SERVER::OnBnClickedButtonPlcTcpipServerUpdatestate()
|
|
|
|
|
{
|
|
|
|
|
CString str;
|
|
|
|
|
UpdateData(TRUE);
|
|
|
|
|
USES_CONVERSION;
|
|
|
|
|
GetDlgItem(IDC_EDIT_PLC_TCPIP_SERVER_STATE_CCD1)->GetWindowText(str);
|
|
|
|
|
const char* cTempValue=T2A(str);
|
|
|
|
|
g_pSo7_TCPIP_Server->m_TCPIPServerState._PLCSensorState[OMRON_PLC_CCD1_CAMERA1]=static_cast<BYTE>(atoi(cTempValue));
|
|
|
|
|
|
|
|
|
|
GetDlgItem(IDC_EDIT_PLC_TCPIP_SERVER_STATE_CCD2)->GetWindowText(str);
|
|
|
|
|
cTempValue=T2A(str);
|
|
|
|
|
g_pSo7_TCPIP_Server->m_TCPIPServerState._PLCSensorState[OMRON_PLC_CCD1_CAMERA2]=static_cast<BYTE>(atoi(cTempValue));
|
|
|
|
|
|
|
|
|
|
GetDlgItem(IDC_EDIT_PLC_TCPIP_SERVER_STATE_LASER1)->GetWindowText(str);
|
|
|
|
|
cTempValue=T2A(str);
|
|
|
|
|
g_pSo7_TCPIP_Server->m_TCPIPServerState._PLCSensorState[OMRON_PLC_LASER1_HEADA]=static_cast<BYTE>(atoi(cTempValue));
|
|
|
|
|
|
|
|
|
|
GetDlgItem(IDC_EDIT_PLC_TCPIP_SERVER_STATE_LASER2)->GetWindowText(str);
|
|
|
|
|
cTempValue=T2A(str);
|
|
|
|
|
g_pSo7_TCPIP_Server->m_TCPIPServerState._PLCSensorState[OMRON_PLC_LASER2_HEADA]=static_cast<BYTE>(atoi(cTempValue));
|
|
|
|
|
|
|
|
|
|
GetDlgItem(IDC_EDIT_PLC_TCPIP_SERVER_PLC_STATE)->GetWindowText(str);
|
|
|
|
|
cTempValue=T2A(str);
|
|
|
|
|
g_pSo7_TCPIP_Server->m_TCPIPServerState._PLCRunningState=static_cast<BYTE>(atoi(cTempValue));
|
|
|
|
|
|
|
|
|
|
BYTE DM_Data[4]={0,0,0,0};
|
|
|
|
|
g_pSo7_TCPIP_Server->DM5000[0]=static_cast<short>(g_pSo7_TCPIP_Server->m_TCPIPServerState._PLCRunningState);
|
|
|
|
|
for (int i=1;i<=8;i++)
|
|
|
|
|
{
|
|
|
|
|
DM_Data[1]=g_pSo7_TCPIP_Server->m_TCPIPServerState._PLCSensorState[(i-1)*2];
|
|
|
|
|
DM_Data[0]=g_pSo7_TCPIP_Server->m_TCPIPServerState._PLCSensorState[(i-1)*2+1];
|
|
|
|
|
g_pSo7_TCPIP_Server->DM5000[i]=(DM_Data[0]<<8)+DM_Data[1];
|
|
|
|
|
}
|
|
|
|
|
m_UpdateControls(TRUE);
|
|
|
|
|
m_UpdateListControl(E_LISTCTRL_TITLE);
|
|
|
|
|
m_UpdateListControl(E_LISTCTRL_DATA2CONTROL);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//=====================================================================
|
|
|
|
|
void CSo7_Util_PLC_TCPIP_SERVER::OnBnClickedButtonPlcTcpipServerUpdatedata()
|
|
|
|
|
{
|
|
|
|
|
m_UpdateListControl(E_LISTCTRL_CONTENT);
|
|
|
|
|
m_UpdateListControl(E_LISTCTRL_CONTROL2DATA);
|
|
|
|
|
m_UpdateControls(FALSE);
|
|
|
|
|
}
|
|
|
|
|
//=====================================================================
|
|
|
|
|
void CSo7_Util_PLC_TCPIP_SERVER::m_UpdateControls(int _type)
|
|
|
|
|
{
|
|
|
|
|
if (_type==FALSE)
|
|
|
|
|
{
|
|
|
|
|
CString str;
|
|
|
|
|
|
|
|
|
|
BYTE DM_Data[4]={0,0,0,0};
|
|
|
|
|
g_pSo7_TCPIP_Server->m_TCPIPServerState._PLCRunningState=static_cast<int>(g_pSo7_TCPIP_Server->DM5000[0]);
|
|
|
|
|
for (int i=1;i<=8;i++)
|
|
|
|
|
{
|
|
|
|
|
DM_Data[0]=(g_pSo7_TCPIP_Server->DM5000[i]>>8) && 0x0ff;
|
|
|
|
|
DM_Data[1]=(g_pSo7_TCPIP_Server->DM5000[i]) && 0x0ff;
|
|
|
|
|
g_pSo7_TCPIP_Server->m_TCPIPServerState._PLCSensorState[(i-1)*2+1]=DM_Data[0];
|
|
|
|
|
g_pSo7_TCPIP_Server->m_TCPIPServerState._PLCSensorState[(i-1)*2]=DM_Data[1];
|
|
|
|
|
}
|
|
|
|
|
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[OMRON_PLC_LASER1_HEADA]);
|
|
|
|
|
GetDlgItem(IDC_EDIT_PLC_TCPIP_SERVER_STATE_LASER1)->SetWindowTextW(str);
|
|
|
|
|
|
|
|
|
|
str.Format(_T("%d"),g_pSo7_TCPIP_Server->m_TCPIPServerState._PLCSensorState[OMRON_PLC_LASER2_HEADA]);
|
|
|
|
|
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);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
CString str;
|
|
|
|
|
UpdateData(TRUE);
|
|
|
|
|
USES_CONVERSION;
|
|
|
|
|
GetDlgItem(IDC_EDIT_PLC_TCPIP_SERVER_STATE_CCD1)->GetWindowText(str);
|
|
|
|
|
const char* cTempValue=T2A(str);
|
|
|
|
|
g_pSo7_TCPIP_Server->m_TCPIPServerState._PLCSensorState[OMRON_PLC_CCD1_CAMERA1]=static_cast<BYTE>(atoi(cTempValue));
|
|
|
|
|
|
|
|
|
|
GetDlgItem(IDC_EDIT_PLC_TCPIP_SERVER_STATE_CCD2)->GetWindowText(str);
|
|
|
|
|
cTempValue=T2A(str);
|
|
|
|
|
g_pSo7_TCPIP_Server->m_TCPIPServerState._PLCSensorState[OMRON_PLC_CCD1_CAMERA2]=static_cast<BYTE>(atoi(cTempValue));
|
|
|
|
|
|
|
|
|
|
GetDlgItem(IDC_EDIT_PLC_TCPIP_SERVER_STATE_LASER1)->GetWindowText(str);
|
|
|
|
|
cTempValue=T2A(str);
|
|
|
|
|
g_pSo7_TCPIP_Server->m_TCPIPServerState._PLCSensorState[OMRON_PLC_LASER1_HEADA]=static_cast<BYTE>(atoi(cTempValue));
|
|
|
|
|
|
|
|
|
|
GetDlgItem(IDC_EDIT_PLC_TCPIP_SERVER_STATE_LASER2)->GetWindowText(str);
|
|
|
|
|
cTempValue=T2A(str);
|
|
|
|
|
g_pSo7_TCPIP_Server->m_TCPIPServerState._PLCSensorState[OMRON_PLC_LASER2_HEADA]=static_cast<BYTE>(atoi(cTempValue));
|
|
|
|
|
|
|
|
|
|
GetDlgItem(IDC_EDIT_PLC_TCPIP_SERVER_PLC_STATE)->GetWindowText(str);
|
|
|
|
|
cTempValue=T2A(str);
|
|
|
|
|
g_pSo7_TCPIP_Server->m_TCPIPServerState._PLCRunningState=static_cast<BYTE>(atoi(cTempValue));
|
|
|
|
|
|
|
|
|
|
BYTE DM_Data[4]={0,0,0,0};
|
|
|
|
|
g_pSo7_TCPIP_Server->DM5000[0]=static_cast<short>(g_pSo7_TCPIP_Server->m_TCPIPServerState._PLCRunningState);
|
|
|
|
|
for (int i=1;i<=8;i++)
|
|
|
|
|
{
|
|
|
|
|
DM_Data[1]=g_pSo7_TCPIP_Server->m_TCPIPServerState._PLCSensorState[(i-1)*2];
|
|
|
|
|
DM_Data[0]=g_pSo7_TCPIP_Server->m_TCPIPServerState._PLCSensorState[(i-1)*2+1];
|
|
|
|
|
g_pSo7_TCPIP_Server->DM5000[i]=(DM_Data[0]<<8)+DM_Data[1];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//=====================================================================
|
|
|
|
|
void CSo7_Util_PLC_TCPIP_SERVER::OnBnClickedRadioPlcTcpipServerAddrCcdDm()
|
|
|
|
|
{
|
|
|
|
|
m_DMAddrList=DM_ADDR_CCD;
|
|
|
|
|
m_UpdateListControl(E_LISTCTRL_TITLE);
|
|
|
|
|
m_UpdateListControl(E_LISTCTRL_DATA2CONTROL);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
//=====================================================================
|
|
|
|
|
void CSo7_Util_PLC_TCPIP_SERVER::OnBnClickedRadioPlcTcpipServerAddrDm5000()
|
|
|
|
|
{
|
|
|
|
|
m_DMAddrList=DM_ADDR_DM5000;
|
|
|
|
|
m_UpdateListControl(E_LISTCTRL_TITLE);
|
|
|
|
|
m_UpdateListControl(E_LISTCTRL_DATA2CONTROL);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//=====================================================================
|
|
|
|
|
void CSo7_Util_PLC_TCPIP_SERVER::OnBnClickedRadioPlcTcpipServerAddrDm8000()
|
|
|
|
|
{
|
|
|
|
|
m_DMAddrList=DM_ADDR_DM8000;
|
|
|
|
|
m_UpdateListControl(E_LISTCTRL_TITLE);
|
|
|
|
|
m_UpdateListControl(E_LISTCTRL_DATA2CONTROL);
|
|
|
|
|
}
|
|
|
|
|
//=====================================================================
|
|
|
|
|
void CSo7_Util_PLC_TCPIP_SERVER::m_UpdateListControl(int _type)
|
|
|
|
|
{
|
|
|
|
|
switch(_type)
|
|
|
|
|
{
|
|
|
|
|
case E_LISTCTRL_TITLE:
|
|
|
|
|
case E_LISTCTRL_CREATE:
|
|
|
|
|
{
|
|
|
|
|
RECT m_rect;
|
|
|
|
|
m_DataList.GetClientRect(&m_rect); //获取list的客户区
|
|
|
|
|
m_DataList.SetExtendedStyle(LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT); //设置list风格
|
|
|
|
|
|
|
|
|
|
m_DataList.InsertColumn(0,_T("CCD地址"),LVCFMT_LEFT, m_rect.right*1/2);
|
|
|
|
|
m_DataList.InsertColumn(1,_T("数据值"),LVCFMT_LEFT, m_rect.right*1/2);
|
|
|
|
|
|
|
|
|
|
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);
|
|
|
|
|
int iStartRow(0),iEndRow(0);
|
|
|
|
|
CString str;
|
|
|
|
|
|
|
|
|
|
iStartRow=0;
|
|
|
|
|
iEndRow=MAX_CCD_ADDR;
|
|
|
|
|
iEndRow=MAX_DM_PAGE_NUMBER;
|
|
|
|
|
for (int i=iStartRow; i<iEndRow; i++)
|
|
|
|
|
{
|
|
|
|
|
str.Format(_T("%d"),120+i*4);
|
|
|
|
|
m_DataList.InsertItem(i,str);
|
|
|
|
|
m_DataList.SetItemText(i,0,str);
|
|
|
|
|
m_DataList.SetItemText(i,1,_T("0"));
|
|
|
|
|
m_DataList.InsertItem(i,_T(""));
|
|
|
|
|
}
|
|
|
|
|
int iRow(0);
|
|
|
|
|
int iCol(1);
|
|
|
|
|
m_DataList.SetItemText(iRow++,iCol,_T("25000"));
|
|
|
|
|
m_DataList.SetItemText(iRow++,iCol,_T("1000"));
|
|
|
|
|
m_DataList.SetItemText(iRow++,iCol,_T("1000"));
|
|
|
|
|
m_DataList.SetItemText(iRow++,iCol,_T("1000"));
|
|
|
|
|
m_DataList.SetItemText(iRow++,iCol,_T("10000"));
|
|
|
|
|
m_DataList.SetItemText(iRow++,iCol,_T("1000"));
|
|
|
|
|
m_DataList.SetItemText(iRow++,iCol,_T("20000"));
|
|
|
|
|
m_DataList.SetItemText(iRow++,iCol,_T("102000"));
|
|
|
|
|
m_DataList.SetItemText(iRow++,iCol,_T("3000"));
|
|
|
|
|
m_DataList.SetItemText(iRow++,iCol,_T("4000"));
|
|
|
|
|
m_DataList.SetItemText(iRow++,iCol,_T("204000"));
|
|
|
|
|
m_DataList.SetItemText(iRow++,iCol,_T("5000"));
|
|
|
|
|
m_DataList.SetItemText(iRow++,iCol,_T("6000"));
|
|
|
|
|
m_DataList.SetItemText(iRow++,iCol,_T("7000"));
|
|
|
|
|
m_DataList.SetItemText(iRow++,iCol,_T("8000"));
|
|
|
|
|
m_DataList.SetItemText(iRow++,iCol,_T("303000"));
|
|
|
|
|
m_DataList.SetItemText(iRow++,iCol,_T("9000"));
|
|
|
|
|
m_DataList.SetItemText(iRow++,iCol,_T("9000"));
|
|
|
|
|
m_DataList.SetItemText(iRow++,iCol,_T("5000"));
|
|
|
|
|
m_DataList.SetItemText(iRow++,iCol,_T("406000"));
|
|
|
|
|
m_DataList.SetItemText(iRow++,iCol,_T("10000"));
|
|
|
|
|
m_DataList.SetItemText(iRow++,iCol,_T("10000"));
|
|
|
|
|
m_DataList.SetItemText(iRow++,iCol,_T("30000"));
|
|
|
|
|
m_DataList.SetItemText(iRow++,iCol,_T("30000"));
|
|
|
|
|
m_DataList.SetItemText(iRow++,iCol,_T("50000"));
|
|
|
|
|
m_DataList.SetItemText(iRow++,iCol,_T("10000"));
|
|
|
|
|
|
|
|
|
|
m_DataList.SetEditableItemRange(0,MAX_CCD_ADDR-1,1,1);
|
|
|
|
|
m_DataList.SetColorStyleItemRange(0,MAX_CCD_ADDR-1,0,2);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
case E_LISTCTRL_CONTENT:
|
|
|
|
|
case E_LISTCTRL_TITLE:
|
|
|
|
|
{
|
|
|
|
|
int iStartRow(0),iEndRow(0);
|
|
|
|
|
CString str;
|
|
|
|
|
if (m_DMAddrList==DM_ADDR_CCD)
|
|
|
|
|
{
|
|
|
|
|
LVCOLUMN vColumn;
|
|
|
|
|
vColumn.mask=LVCF_TEXT;
|
|
|
|
|
vColumn.pszText=_T("CCD地址");
|
|
|
|
|
vColumn.cchTextMax=10;
|
|
|
|
|
m_DataList.SetColumn(0,&vColumn);
|
|
|
|
|
|
|
|
|
|
iStartRow=0;
|
|
|
|
|
iEndRow=MAX_CCD_ADDR;
|
|
|
|
|
for (int i=iStartRow; i<iEndRow; i++)
|
|
|
|
|
{
|
|
|
|
|
str.Format(_T("%d"),120+i*4);
|
|
|
|
|
m_DataList.SetItemText(i,0,str);
|
|
|
|
|
m_DataList.SetItemText(i,1,_T(""));
|
|
|
|
|
m_DataList.SetItemText(i,2,_T(""));
|
|
|
|
|
}
|
|
|
|
|
for (int i=iEndRow;i<MAX_DM_PAGE_NUMBER;i++)
|
|
|
|
|
{
|
|
|
|
|
m_DataList.SetItemText(i,0,_T(""));
|
|
|
|
|
m_DataList.SetItemText(i,1,_T(""));
|
|
|
|
|
m_DataList.SetItemText(i,2,_T(""));
|
|
|
|
|
}
|
|
|
|
|
int Addr(0);
|
|
|
|
|
m_DataList.SetItemText(Addr++,2,_T("CCD数据个数(+0000000.000)"));
|
|
|
|
|
m_DataList.SetItemText(Addr++,2,_T("CCD编号(+0000000.000)"));
|
|
|
|
|
m_DataList.SetItemText(Addr++,2,_T("CCD触发序号(+0000000.000)"));
|
|
|
|
|
m_DataList.SetEditableItemRange(0,MAX_CCD_ADDR-1,1,1);
|
|
|
|
|
m_DataList.SetColorStyleItemRange(0,MAX_CCD_ADDR-1,0,2);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
else if (m_DMAddrList==DM_ADDR_DM5000)
|
|
|
|
|
{
|
|
|
|
|
LVCOLUMN vColumn;
|
|
|
|
|
vColumn.mask=LVCF_TEXT;
|
|
|
|
|
vColumn.pszText=_T("DM5000地址");
|
|
|
|
|
vColumn.cchTextMax=10;
|
|
|
|
|
m_DataList.SetColumn(0,&vColumn);
|
|
|
|
|
iStartRow=0;
|
|
|
|
|
iEndRow=MAX_DM_PAGE_NUMBER;
|
|
|
|
|
for (int i=iStartRow;i<iEndRow;i++)
|
|
|
|
|
{
|
|
|
|
|
str.Format(_T("%d"),5000+i);
|
|
|
|
|
m_DataList.SetItemText(i,0,str);
|
|
|
|
|
m_DataList.SetItemText(i,1,_T(""));
|
|
|
|
|
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("CCD1数据刷新"));
|
|
|
|
|
m_DataList.SetItemText(Addr++,2,_T("CCD2数据刷新"));
|
|
|
|
|
m_DataList.SetItemText(Addr++,2,_T("CCD3数据刷新"));
|
|
|
|
|
m_DataList.SetItemText(Addr++,2,_T("CCD4数据刷新"));
|
|
|
|
|
m_DataList.SetItemText(Addr++,2,_T("CCD5数据刷新"));
|
|
|
|
|
m_DataList.SetItemText(Addr++,2,_T("LS1数据刷新"));
|
|
|
|
|
m_DataList.SetItemText(Addr++,2,_T("LS2数据刷新"));
|
|
|
|
|
m_DataList.SetItemText(Addr++,2,_T("光栅尺数据刷新"));
|
|
|
|
|
Addr=100;
|
|
|
|
|
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("中断数低字"));
|
|
|
|
|
m_DataList.SetItemText(Addr++,2,str+_T("中断数高字"));
|
|
|
|
|
m_DataList.SetItemText(Addr++,2,str+_T("中断位置1低字"));
|
|
|
|
|
m_DataList.SetItemText(Addr++,2,str+_T("中断位置1高字"));
|
|
|
|
|
m_DataList.SetItemText(Addr++,2,str+_T("中断位置2低字"));
|
|
|
|
|
m_DataList.SetItemText(Addr++,2,str+_T("中断位置2高字"));
|
|
|
|
|
m_DataList.SetItemText(Addr++,2,str+_T("中断位置3低字"));
|
|
|
|
|
m_DataList.SetItemText(Addr++,2,str+_T("中断位置3高字"));
|
|
|
|
|
m_DataList.SetItemText(Addr++,2,str+_T("中断位置4低字"));
|
|
|
|
|
m_DataList.SetItemText(Addr++,2,str+_T("中断位置4高字"));
|
|
|
|
|
m_DataList.SetItemText(Addr++,2,str+_T("中断位置5低字"));
|
|
|
|
|
m_DataList.SetItemText(Addr++,2,str+_T("中断位置5高字"));
|
|
|
|
|
m_DataList.SetItemText(Addr++,2,str+_T("中断位置6低字"));
|
|
|
|
|
m_DataList.SetItemText(Addr++,2,str+_T("中断位置6高字"));
|
|
|
|
|
}
|
|
|
|
|
for (int i=0;i<3;i++)
|
|
|
|
|
{
|
|
|
|
|
str.Format(_T("LASER%d-%d"),1+(i/2),1+(i%2));
|
|
|
|
|
m_DataList.SetItemText(Addr++,2,str+_T("中断数低字"));
|
|
|
|
|
m_DataList.SetItemText(Addr++,2,str+_T("中断数高字"));
|
|
|
|
|
m_DataList.SetItemText(Addr++,2,str+_T("中断位置1低字"));
|
|
|
|
|
m_DataList.SetItemText(Addr++,2,str+_T("中断位置1高字"));
|
|
|
|
|
m_DataList.SetItemText(Addr++,2,str+_T("中断位置2低字"));
|
|
|
|
|
m_DataList.SetItemText(Addr++,2,str+_T("中断位置2高字"));
|
|
|
|
|
m_DataList.SetItemText(Addr++,2,str+_T("中断位置3低字"));
|
|
|
|
|
m_DataList.SetItemText(Addr++,2,str+_T("中断位置3高字"));
|
|
|
|
|
m_DataList.SetItemText(Addr++,2,str+_T("中断位置4低字"));
|
|
|
|
|
m_DataList.SetItemText(Addr++,2,str+_T("中断位置4高字"));
|
|
|
|
|
m_DataList.SetItemText(Addr++,2,str+_T("中断位置5低字"));
|
|
|
|
|
m_DataList.SetItemText(Addr++,2,str+_T("中断位置5高字"));
|
|
|
|
|
m_DataList.SetItemText(Addr++,2,str+_T("中断位置6低字"));
|
|
|
|
|
m_DataList.SetItemText(Addr++,2,str+_T("中断位置6高字"));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
m_DataList.SetEditableItemRange(0,MAX_DM_PAGE_NUMBER-1,1,1);
|
|
|
|
|
m_DataList.SetColorStyleItemRange(0,MAX_DM_PAGE_NUMBER-1,0,2);
|
|
|
|
|
}
|
|
|
|
|
else if (m_DMAddrList==DM_ADDR_DM8000)
|
|
|
|
|
{
|
|
|
|
|
LVCOLUMN vColumn;
|
|
|
|
|
vColumn.mask=LVCF_TEXT;
|
|
|
|
|
vColumn.pszText=_T("DM8000地址");
|
|
|
|
|
vColumn.cchTextMax=10;
|
|
|
|
|
m_DataList.SetColumn(0,&vColumn);
|
|
|
|
|
iStartRow=0;
|
|
|
|
|
iEndRow=MAX_DM_PAGE_NUMBER;
|
|
|
|
|
for (int i=iStartRow;i<iEndRow;i++)
|
|
|
|
|
{
|
|
|
|
|
str.Format(_T("%d"),8000+i);
|
|
|
|
|
m_DataList.SetItemText(i,0,str);
|
|
|
|
|
m_DataList.SetItemText(i,1,_T(""));
|
|
|
|
|
m_DataList.SetItemText(i,2,_T(""));
|
|
|
|
|
}
|
|
|
|
|
int Addr(0);
|
|
|
|
|
m_DataList.SetItemText(Addr++,2,_T("PC设备运行状态"));
|
|
|
|
|
m_DataList.SetItemText(Addr++,2,_T("PC综合判断结果"));
|
|
|
|
|
m_DataList.SetItemText(Addr++,2,_T("PC刷新光栅尺位置结果"));
|
|
|
|
|
|
|
|
|
|
m_DataList.SetEditableItemRange(0,MAX_DM_PAGE_NUMBER-1,1,1);
|
|
|
|
|
m_DataList.SetColorStyleItemRange(0,MAX_DM_PAGE_NUMBER-1,0,2);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
iStartRow=0;
|
|
|
|
|
iEndRow=MAX_DM_PAGE_NUMBER;
|
|
|
|
|
for (int i=iStartRow;i<iEndRow;i++)
|
|
|
|
|
{
|
|
|
|
|
m_DataList.SetItemText(i,0,_T(""));
|
|
|
|
|
m_DataList.SetItemText(i,1,_T(""));
|
|
|
|
|
m_DataList.SetItemText(i,2,_T(""));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
case E_LISTCTRL_DATA2CONTROL:
|
|
|
|
|
{
|
|
|
|
|
int iStartRow(0),iEndRow(0);
|
|
|
|
|
CString str;
|
|
|
|
|
if (m_DMAddrList==DM_ADDR_CCD)
|
|
|
|
|
{
|
|
|
|
|
iStartRow=0;
|
|
|
|
|
iEndRow=MAX_CCD_ADDR;
|
|
|
|
|
|
|
|
|
|
if (g_pSo7_TCPIP_Server)
|
|
|
|
|
{
|
|
|
|
|
BYTE DM_Data[4]={0,0,0,0};
|
|
|
|
|
int StartAddr(60);
|
|
|
|
|
for (int i=0; i<MAX_CCD_ADDR; i++)
|
|
|
|
|
{
|
|
|
|
|
DM_Data[0]=(g_pSo7_TCPIP_Server->DM10000[StartAddr+2*i+1]>>8) & 0x0ff;
|
|
|
|
|
DM_Data[1]=(g_pSo7_TCPIP_Server->DM10000[StartAddr+2*i+1]) & 0x0ff;
|
|
|
|
|
DM_Data[2]=(g_pSo7_TCPIP_Server->DM10000[StartAddr+2*i]>>8) & 0x0ff;
|
|
|
|
|
DM_Data[3]=(g_pSo7_TCPIP_Server->DM10000[StartAddr+2*i]) & 0x0ff;
|
|
|
|
|
m_CCDData_D10000[i]=(DM_Data[0]<<24)+(DM_Data[1]<<16)+(DM_Data[2]<<8)+(DM_Data[3]);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
for (int i=iStartRow; i<iEndRow; i++)
|
|
|
|
|
{
|
|
|
|
|
str.Format(_T("%d"),m_CCDData_D10000[i]);
|
|
|
|
|
m_DataList.SetItemText(i,1,str);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else if (m_DMAddrList==DM_ADDR_DM5000)
|
|
|
|
|
{
|
|
|
|
|
iStartRow=0;
|
|
|
|
|
iEndRow=MAX_DM_PAGE_NUMBER;
|
|
|
|
|
for (int i=iStartRow;i<iEndRow;i++)
|
|
|
|
|
{
|
|
|
|
|
str.Format(_T("%d"),g_pSo7_TCPIP_Server->DM5000[i]);
|
|
|
|
|
m_DataList.SetItemText(i,1,str);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else if (m_DMAddrList==DM_ADDR_DM8000)
|
|
|
|
|
{
|
|
|
|
|
iStartRow=0;
|
|
|
|
|
iEndRow=MAX_DM_PAGE_NUMBER;
|
|
|
|
|
for (int i=iStartRow;i<iEndRow;i++)
|
|
|
|
|
{
|
|
|
|
|
str.Format(_T("%d"),g_pSo7_TCPIP_Server->DM8000[i]);
|
|
|
|
|
m_DataList.SetItemText(i,1,str);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
case E_LISTCTRL_CONTROL2DATA:
|
|
|
|
|
{
|
|
|
|
|
USES_CONVERSION;
|
|
|
|
|
CString csTmp;
|
|
|
|
|
const char* cTmp;
|
|
|
|
|
int iStartRow(0),iEndRow(0);
|
|
|
|
|
int iCol=1;
|
|
|
|
|
for (int iRow=0;iRow<MAX_CCD_ADDR;iRow++)
|
|
|
|
|
{
|
|
|
|
|
csTmp=m_DataList.GetItemText(iRow,iCol);
|
|
|
|
|
cTmp=T2A(csTmp);
|
|
|
|
|
m_CCDData_D10000[iRow]=atoi(cTmp);
|
|
|
|
|
}
|
|
|
|
|
for (int iRow=0;iRow<MAX_CCD_ADDR;iRow++)
|
|
|
|
|
{
|
|
|
|
|
m_CCDData_D10000[iRow];
|
|
|
|
|
}
|
|
|
|
|
if (g_pSo7_TCPIP_Server)
|
|
|
|
|
{
|
|
|
|
|
int iData(0);
|
|
|
|
|
BYTE DM_Data[4]={0,0,0,0};
|
|
|
|
|
int StartAddr(60);
|
|
|
|
|
for (int i=0;i<MAX_CCD_ADDR;i++)
|
|
|
|
|
{
|
|
|
|
|
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 (m_DMAddrList==DM_ADDR_CCD)
|
|
|
|
|
{
|
|
|
|
|
for (int iRow=0;iRow<MAX_CCD_ADDR;iRow++)
|
|
|
|
|
{
|
|
|
|
|
csTmp=m_DataList.GetItemText(iRow,iCol);
|
|
|
|
|
cTmp=T2A(csTmp);
|
|
|
|
|
m_CCDData_D10000[iRow]=atoi(cTmp);
|
|
|
|
|
}
|
|
|
|
|
if (g_pSo7_TCPIP_Server)
|
|
|
|
|
{
|
|
|
|
|
int iData(0);
|
|
|
|
|
BYTE DM_Data[4]={0,0,0,0};
|
|
|
|
|
int StartAddr(60);
|
|
|
|
|
for (int i=0;i<MAX_CCD_ADDR;i++)
|
|
|
|
|
{
|
|
|
|
|
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];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else if (m_DMAddrList==DM_ADDR_DM5000)
|
|
|
|
|
{
|
|
|
|
|
iStartRow=0;
|
|
|
|
|
iEndRow=MAX_DM_PAGE_NUMBER;
|
|
|
|
|
for (int iRow=iStartRow;iRow<iEndRow;iRow++)
|
|
|
|
|
{
|
|
|
|
|
csTmp=m_DataList.GetItemText(iRow,iCol);
|
|
|
|
|
cTmp=T2A(csTmp);
|
|
|
|
|
g_pSo7_TCPIP_Server->DM5000[iRow]=static_cast<short>(atoi(cTmp));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else if (m_DMAddrList==DM_ADDR_DM8000)
|
|
|
|
|
{
|
|
|
|
|
iStartRow=0;
|
|
|
|
|
iEndRow=MAX_DM_PAGE_NUMBER;
|
|
|
|
|
for (int iRow=iStartRow;iRow<iEndRow;iRow++)
|
|
|
|
|
{
|
|
|
|
|
csTmp=m_DataList.GetItemText(iRow,iCol);
|
|
|
|
|
cTmp=T2A(csTmp);
|
|
|
|
|
g_pSo7_TCPIP_Server->DM8000[iRow]=static_cast<short>(atoi(cTmp));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
default:break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//=====================================================================================
|
|
|
|
|
void CSo7_Util_PLC_TCPIP_SERVER::OnBnClickedButtonClearMsg()
|
|
|
|
|
{
|
|
|
|
|
((CEdit *)GetDlgItem(IDC_EDIT_MSG))->SetWindowTextW(_T(""));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//=====================================================================================
|
|
|
|
|
void CSo7_Util_PLC_TCPIP_SERVER::OnBnClickedCancel()
|
|
|
|
|
{
|
|
|
|
|
// TODO: Add your control notification handler code here
|
|
|
|
|
CDialog::OnCancel();
|
|
|
|
|
}
|
|
|
|
|
//=====================================================================================
|
|
|
|
@@ -403,6 +713,11 @@ CString CSo7_Util_PLC_TCPIP_SERVER::TCPIPMsg(int _Type)
|
|
|
|
|
}
|
|
|
|
|
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");
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
@@ -428,3 +743,6 @@ CString CSo7_Util_PLC_TCPIP_SERVER::TCPIPMsg(int _Type)
|
|
|
|
|
}
|
|
|
|
|
return cStr;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|