713 lines
23 KiB
C++
713 lines
23 KiB
C++
|
// PlcDeviceDlg.cpp : ʵ<><CAB5><EFBFBD>ļ<EFBFBD>
|
|||
|
//
|
|||
|
|
|||
|
#include "stdafx.h"
|
|||
|
#include "PlcMainDlg.h"
|
|||
|
#include "ModbusClient.h"
|
|||
|
#include "afxdialogex.h"
|
|||
|
#include "PluginPlc.h"
|
|||
|
#include "resource.h"
|
|||
|
|
|||
|
#define TIMER_UPDATE_TOPLC 1
|
|||
|
#define TIMER_UPDATE_TODLG 2
|
|||
|
#define TIMER_RECONNECT_PLC 3
|
|||
|
|
|||
|
|
|||
|
// CPlcDeviceDlg <20>Ի<EFBFBD><D4BB><EFBFBD>
|
|||
|
|
|||
|
IMPLEMENT_DYNAMIC(CPlcMainDlg, CDialogEx)
|
|||
|
|
|||
|
CPlcMainDlg::CPlcMainDlg(CWnd* pParent /*=NULL*/)
|
|||
|
: CDialogEx(IDD_DEV_PLC_DLG, pParent)
|
|||
|
{
|
|||
|
m_pModbusClient = NULL;
|
|||
|
m_bConnectServer = FALSE;
|
|||
|
//m_pMainWnd = (CPluginMainDialog *)pParent;
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
CPlcMainDlg::~CPlcMainDlg()
|
|||
|
{
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
void CPlcMainDlg::DoDataExchange(CDataExchange* pDX)
|
|||
|
{
|
|||
|
CDialogEx::DoDataExchange(pDX);
|
|||
|
DDX_Control(pDX, IDC_IPADDRESS, m_ipAddrCtrl);
|
|||
|
DDX_Control(pDX, IDC_BTN_OPEN_FDOOR, m_btnOpFdColor);
|
|||
|
DDX_Control(pDX, IDC_BTN_CLOSE_FDOOR, m_btnCoFdColor);
|
|||
|
DDX_Control(pDX, IDC_BTN_OPEN_BDOOR, m_btnOpBdColor);
|
|||
|
DDX_Control(pDX, IDC_BTN_CLOSE_BDOOR, m_btnCoBdColor);
|
|||
|
|
|||
|
DDX_Control(pDX, IDC_BTN_IndoorLsta, m_btnInDLRColor);
|
|||
|
DDX_Control(pDX, IDC_BTN_IndoorRsta, m_btnInDRRColor);
|
|||
|
DDX_Control(pDX, IDC_BTN_OutdoorLsta, m_btnOutDLRColor);
|
|||
|
DDX_Control(pDX, IDC_BTN_OutdoorRsta, m_btnOutDRRColor);
|
|||
|
|
|||
|
DDX_Control(pDX, IDC_BTN_Fsafeside, m_btnFsafeSColor);
|
|||
|
DDX_Control(pDX, IDC_BTN_Bsafeside, m_btnBsafeSColor);
|
|||
|
DDX_Control(pDX, IDC_BTN_Lsafeside, m_btnLsafeSColor);
|
|||
|
DDX_Control(pDX, IDC_BTN_Rsafeside, m_btnRsafeSColor);
|
|||
|
DDX_Control(pDX, IDC_BTN_Fradarslow, m_btnFradarSColor);
|
|||
|
DDX_Control(pDX, IDC_BTN_Fradarstop, m_btnFradarTColor);
|
|||
|
DDX_Control(pDX, IDC_BTN_Bradarslow, m_btnBradarSColor);
|
|||
|
DDX_Control(pDX, IDC_BTN_Bradarstop, m_btnBradarTColor);
|
|||
|
DDX_Control(pDX, IDC_BTN_AGVEstop, m_btnAGVEstopColor);
|
|||
|
DDX_Control(pDX, IDC_BTN_Shiedradar, m_btnShieldRColor);
|
|||
|
DDX_Control(pDX, IDC_BTN_Shieldsafedside, m_btnShieldSSColor);
|
|||
|
|
|||
|
DDX_Control(pDX, IDC_BTN_LrollerFsensor, m_btnLrollerFsenColor);
|
|||
|
DDX_Control(pDX, IDC_BTN_LrollerMsensor, m_btnLrollerMsenColor);
|
|||
|
DDX_Control(pDX, IDC_BTN_LrollerBsensor, m_btnLrollerBsenColor);
|
|||
|
DDX_Control(pDX, IDC_BTN_RrollerFsensor, m_btnRrollerFsenColor);
|
|||
|
DDX_Control(pDX, IDC_BTN_RrollerMsensor, m_btnRrollerMsenColor);
|
|||
|
DDX_Control(pDX, IDC_BTN_RrollerBsensor, m_btnRrollerBsenColor);
|
|||
|
|
|||
|
DDX_Control(pDX, IDC_BTN_FDloadSte, m_btnFDloadSteColor);
|
|||
|
DDX_Control(pDX, IDC_BTN_BDloadSte, m_btnBDloadSteColor);
|
|||
|
|
|||
|
DDX_Control(pDX, IDC_BTN_OpenBarrierGate, m_btnOpenBarrierGate);
|
|||
|
DDX_Control(pDX, IDC_BTN_CloseBarrierGate, m_btnCloseBarrierGate);
|
|||
|
DDX_Control(pDX, IDC_BTN_OpenShopRollDoor, m_btnOpenShopRollDoor);
|
|||
|
|
|||
|
DDX_Control(pDX, IDC_EDIT_RemoteControl, m_txRemoteControl);
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
BEGIN_MESSAGE_MAP(CPlcMainDlg, CDialogEx)
|
|||
|
ON_BN_CLICKED(IDC_BTN_SET, &CPlcMainDlg::OnBnClickedBtnSet)
|
|||
|
ON_BN_CLICKED(IDC_BTN_OPEN_FDOOR, &CPlcMainDlg::OnBnClickedBtnOpenFdoor)
|
|||
|
ON_BN_CLICKED(IDC_BTN_CLOSE_FDOOR, &CPlcMainDlg::OnBnClickedBtnCloseFdoor)
|
|||
|
ON_BN_CLICKED(IDC_BTN_OPEN_BDOOR, &CPlcMainDlg::OnBnClickedBtnOpenBdoor)
|
|||
|
ON_BN_CLICKED(IDC_BTN_CLOSE_BDOOR, &CPlcMainDlg::OnBnClickedBtnCloseBdoor)
|
|||
|
ON_MESSAGE(WM_NETMESSAGE, OnNetMsg)
|
|||
|
ON_WM_TIMER()
|
|||
|
ON_BN_CLICKED(IDC_BTN_Lroller_F, &CPlcMainDlg::OnBnClickedBtnLrollerF)
|
|||
|
ON_BN_CLICKED(IDC_BTN_Lroller_B, &CPlcMainDlg::OnBnClickedBtnLrollerB)
|
|||
|
ON_BN_CLICKED(IDC_BTN_Lroller_Stop, &CPlcMainDlg::OnBnClickedBtnLrollerStop)
|
|||
|
ON_BN_CLICKED(IDC_BTN_Rroller_F, &CPlcMainDlg::OnBnClickedBtnRrollerF)
|
|||
|
ON_BN_CLICKED(IDC_BTN_Rroller_B, &CPlcMainDlg::OnBnClickedBtnRrollerB)
|
|||
|
ON_BN_CLICKED(IDC_BTN_Rroller_Stop, &CPlcMainDlg::OnBnClickedBtnRrollerStop)
|
|||
|
ON_BN_CLICKED(IDC_BTN_IndoorLsta, &CPlcMainDlg::OnBnClickedBtnIndoorlsta)
|
|||
|
ON_BN_CLICKED(IDC_BTN_IndoorRsta, &CPlcMainDlg::OnBnClickedBtnIndoorrsta)
|
|||
|
ON_BN_CLICKED(IDC_BTN_OutdoorLsta, &CPlcMainDlg::OnBnClickedBtnOutdoorlsta)
|
|||
|
ON_BN_CLICKED(IDC_BTN_OutdoorRsta, &CPlcMainDlg::OnBnClickedBtnOutdoorrsta)
|
|||
|
ON_BN_CLICKED(IDC_BTN_IndoorStop, &CPlcMainDlg::OnBnClickedBtnIndoorstop)
|
|||
|
ON_BN_CLICKED(IDC_BTN_OutdoorStop, &CPlcMainDlg::OnBnClickedBtnOutdoorstop)
|
|||
|
ON_BN_CLICKED(IDC_BTN_Shiedradar, &CPlcMainDlg::OnBnClickedBtnShiedradar)
|
|||
|
ON_BN_CLICKED(IDC_BTN_Shieldsafedside, &CPlcMainDlg::OnBnClickedBtnShieldsafedside)
|
|||
|
|
|||
|
ON_BN_CLICKED(IDC_BTN_OpenBarrierGate, &CPlcMainDlg::OnBnClickedBtnOpenbarriergate)
|
|||
|
ON_BN_CLICKED(IDC_BTN_CloseBarrierGate, &CPlcMainDlg::OnBnClickedBtnClosebarriergate)
|
|||
|
ON_BN_CLICKED(IDC_BTN_OpenShopRollDoor, &CPlcMainDlg::OnBnClickedBtnOpenshoprolldoor)
|
|||
|
END_MESSAGE_MAP()
|
|||
|
|
|||
|
|
|||
|
// CPlcDeviceDlg <20><>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
BOOL CPlcMainDlg::OnInitDialog()
|
|||
|
{
|
|||
|
CDialogEx::OnInitDialog();
|
|||
|
|
|||
|
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
|
|||
|
ReadConfigFromIni();
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>PLC
|
|||
|
ConnectPlcController();
|
|||
|
|
|||
|
MfcButtonInit();
|
|||
|
|
|||
|
SetTimer(TIMER_UPDATE_TOPLC, 100, NULL);
|
|||
|
SetTimer(TIMER_UPDATE_TODLG, 200, NULL);
|
|||
|
|
|||
|
return TRUE; // return TRUE unless you set the focus to a control
|
|||
|
// <20>쳣: OCX <20><><EFBFBD><EFBFBD>ҳӦ<D2B3><D3A6><EFBFBD><EFBFBD> FALSE
|
|||
|
}
|
|||
|
|
|||
|
void CPlcMainDlg::MfcButtonInit()
|
|||
|
{
|
|||
|
m_btnOpFdColor.m_bTransparent = FALSE; //<2F><><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD><C4B1><EFBFBD>ɫ
|
|||
|
m_btnOpFdColor.m_bDontUseWinXPTheme = TRUE;
|
|||
|
m_btnCoFdColor.m_bTransparent = FALSE;
|
|||
|
m_btnCoFdColor.m_bDontUseWinXPTheme = TRUE;
|
|||
|
m_btnOpBdColor.m_bTransparent = FALSE;
|
|||
|
m_btnOpBdColor.m_bDontUseWinXPTheme = TRUE;
|
|||
|
m_btnCoBdColor.m_bTransparent = FALSE;
|
|||
|
m_btnCoBdColor.m_bDontUseWinXPTheme = TRUE;
|
|||
|
m_btnInDLRColor.m_bTransparent = FALSE;
|
|||
|
m_btnInDLRColor.m_bDontUseWinXPTheme = TRUE;
|
|||
|
m_btnInDRRColor.m_bTransparent = FALSE;
|
|||
|
m_btnInDRRColor.m_bDontUseWinXPTheme = TRUE;
|
|||
|
m_btnOutDLRColor.m_bTransparent = FALSE;
|
|||
|
m_btnOutDLRColor.m_bDontUseWinXPTheme = TRUE;
|
|||
|
m_btnOutDRRColor.m_bTransparent = FALSE;
|
|||
|
m_btnOutDRRColor.m_bDontUseWinXPTheme = TRUE;
|
|||
|
m_btnFsafeSColor.m_bTransparent = FALSE;
|
|||
|
m_btnFsafeSColor.m_bDontUseWinXPTheme = TRUE;
|
|||
|
m_btnBsafeSColor.m_bTransparent = FALSE;
|
|||
|
m_btnBsafeSColor.m_bDontUseWinXPTheme = TRUE;
|
|||
|
m_btnLsafeSColor.m_bTransparent = FALSE;
|
|||
|
m_btnLsafeSColor.m_bDontUseWinXPTheme = TRUE;
|
|||
|
m_btnRsafeSColor.m_bTransparent = FALSE;
|
|||
|
m_btnRsafeSColor.m_bDontUseWinXPTheme = TRUE;
|
|||
|
m_btnFradarSColor.m_bTransparent = FALSE;
|
|||
|
m_btnFradarSColor.m_bDontUseWinXPTheme = TRUE;
|
|||
|
m_btnFradarTColor.m_bTransparent = FALSE;
|
|||
|
m_btnFradarTColor.m_bDontUseWinXPTheme = TRUE;
|
|||
|
m_btnBradarSColor.m_bTransparent = FALSE;
|
|||
|
m_btnBradarSColor.m_bDontUseWinXPTheme = TRUE;
|
|||
|
m_btnBradarTColor.m_bTransparent = FALSE;
|
|||
|
m_btnBradarTColor.m_bDontUseWinXPTheme = TRUE;
|
|||
|
m_btnAGVEstopColor.m_bTransparent = FALSE;
|
|||
|
m_btnAGVEstopColor.m_bDontUseWinXPTheme = TRUE;
|
|||
|
m_btnShieldRColor.m_bTransparent = FALSE;
|
|||
|
m_btnShieldRColor.m_bDontUseWinXPTheme = TRUE;
|
|||
|
m_btnShieldSSColor.m_bTransparent = FALSE;
|
|||
|
m_btnShieldSSColor.m_bDontUseWinXPTheme = TRUE;
|
|||
|
m_btnLrollerFsenColor.m_bTransparent = FALSE;
|
|||
|
m_btnLrollerFsenColor.m_bDontUseWinXPTheme = TRUE;
|
|||
|
m_btnLrollerMsenColor.m_bTransparent = FALSE;
|
|||
|
m_btnLrollerMsenColor.m_bDontUseWinXPTheme = TRUE;
|
|||
|
m_btnLrollerBsenColor.m_bTransparent = FALSE;
|
|||
|
m_btnLrollerBsenColor.m_bDontUseWinXPTheme = TRUE;
|
|||
|
m_btnRrollerFsenColor.m_bTransparent = FALSE;
|
|||
|
m_btnRrollerFsenColor.m_bDontUseWinXPTheme = TRUE;
|
|||
|
m_btnRrollerMsenColor.m_bTransparent = FALSE;
|
|||
|
m_btnRrollerMsenColor.m_bDontUseWinXPTheme = TRUE;
|
|||
|
m_btnRrollerBsenColor.m_bTransparent = FALSE;
|
|||
|
m_btnRrollerBsenColor.m_bDontUseWinXPTheme = TRUE;
|
|||
|
m_btnFDloadSteColor.m_bTransparent = FALSE;
|
|||
|
m_btnFDloadSteColor.m_bDontUseWinXPTheme = TRUE;
|
|||
|
m_btnBDloadSteColor.m_bTransparent = FALSE;
|
|||
|
m_btnBDloadSteColor.m_bDontUseWinXPTheme = TRUE;
|
|||
|
m_btnOpenBarrierGate.m_bTransparent = FALSE;
|
|||
|
m_btnOpenBarrierGate.m_bDontUseWinXPTheme = TRUE;
|
|||
|
m_btnCloseBarrierGate.m_bTransparent = FALSE;
|
|||
|
m_btnCloseBarrierGate.m_bDontUseWinXPTheme = TRUE;
|
|||
|
m_btnOpenShopRollDoor.m_bTransparent = FALSE;
|
|||
|
m_btnOpenShopRollDoor.m_bDontUseWinXPTheme = TRUE;
|
|||
|
}
|
|||
|
|
|||
|
LRESULT CPlcMainDlg::OnNetMsg(WPARAM wparam, LPARAM lparam)
|
|||
|
{
|
|||
|
switch (wparam)
|
|||
|
{
|
|||
|
case NET_CONNECT_OK:
|
|||
|
{
|
|||
|
LogOutToFile("[info] <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
|||
|
//m_pMainWnd->InsertLog(LOG_INFO, "The PLC Device Connect!");
|
|||
|
KillTimer(TIMER_RECONNECT_PLC);
|
|||
|
SetTimer(TIMER_UPDATE_TOPLC, 100, NULL);
|
|||
|
m_bConnectServer = TRUE;
|
|||
|
//m_pMainWnd->UpdatePlcDeviceStatue(m_bConnectServer);
|
|||
|
break;
|
|||
|
}
|
|||
|
|
|||
|
case NET_DISCONNECT:
|
|||
|
{
|
|||
|
//::PostMessage(m_pMainWnd->m_hWnd, WM_NETMESSAGE, PLC_DISCONNECT, NULL);
|
|||
|
//m_pThrdModbus->ExitInstance();
|
|||
|
KillTimer(TIMER_UPDATE_TOPLC);
|
|||
|
SetTimer(TIMER_RECONNECT_PLC, 1000, NULL);
|
|||
|
m_bConnectServer = FALSE;
|
|||
|
//m_pMainWnd->UpdatePlcDeviceStatue(m_bConnectServer);
|
|||
|
//delete m_pThrdModbus;
|
|||
|
/*m_pThrdModbus->PostThreadMessage(WM_QUIT, 0, 0);
|
|||
|
m_pThrdModbus = NULL;
|
|||
|
ConnectPlcController();*/
|
|||
|
break;
|
|||
|
}
|
|||
|
|
|||
|
case NET_DATA_MSG:
|
|||
|
{
|
|||
|
NET_PACKET* pNetPacket = (NET_PACKET*)lparam;
|
|||
|
|
|||
|
delete[] pNetPacket->pData;
|
|||
|
delete pNetPacket;
|
|||
|
break;
|
|||
|
}
|
|||
|
|
|||
|
default:
|
|||
|
break;
|
|||
|
}
|
|||
|
|
|||
|
return 0;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
void CPlcMainDlg::ReadConfigFromIni()
|
|||
|
{
|
|||
|
CString strIniPath = theApp.m_strModulePath + "\\config.ini";
|
|||
|
// <20><>ʼ<EFBFBD><CABC><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
char acValue[32] = "";
|
|||
|
GetPrivateProfileString("PLC", "IP", "", acValue, 32, strIniPath);
|
|||
|
m_strIpAddr = acValue;
|
|||
|
DWORD dwIP = inet_addr(acValue);
|
|||
|
unsigned char *pIP = (unsigned char*)&dwIP;
|
|||
|
m_ipAddrCtrl.SetAddress(*pIP, *(pIP + 1), *(pIP + 2), *(pIP + 3));
|
|||
|
|
|||
|
|
|||
|
|
|||
|
m_nPort = GetPrivateProfileInt("PLC", "PORT", 0, strIniPath);
|
|||
|
CString strPort;
|
|||
|
strPort.Format("%d", m_nPort);
|
|||
|
GetDlgItem(IDC_EDIT_PORT)->SetWindowText(strPort);
|
|||
|
|
|||
|
|
|||
|
return; // return TRUE unless you set the focus to a control
|
|||
|
// <20>쳣: OCX <20><><EFBFBD><EFBFBD>ҳӦ<D2B3><D3A6><EFBFBD><EFBFBD> FALSE
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
void CPlcMainDlg::OnBnClickedBtnSet()
|
|||
|
{
|
|||
|
CString strIniPath = theApp.m_strModulePath + "\\config.ini";
|
|||
|
BYTE nFild[4];
|
|||
|
m_ipAddrCtrl.GetAddress(nFild[0], nFild[1], nFild[2], nFild[3]);
|
|||
|
CString strIpAddr;
|
|||
|
strIpAddr.Format("%d.%d.%d.%d", nFild[0], nFild[1], nFild[2], nFild[3]);
|
|||
|
WritePrivateProfileString("PLC", "IP", strIpAddr, strIniPath);
|
|||
|
|
|||
|
CString strPort;
|
|||
|
GetDlgItem(IDC_EDIT_PORT)->GetWindowText(strPort);
|
|||
|
WritePrivateProfileString("PLC", "PORT", strPort, strIniPath);
|
|||
|
|
|||
|
MessageBox("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѹ<EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD>.");
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
BOOL CPlcMainDlg::ConnectPlcController()
|
|||
|
{
|
|||
|
m_pModbusClient = new CModbusClient(m_strIpAddr, m_nPort, this->m_hWnd);
|
|||
|
return m_pModbusClient->CreateThread();
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
void CPlcMainDlg::OpenFdoor()
|
|||
|
{
|
|||
|
m_stAGVTOPLCDATA.AGVControl_u.bits.OpFdoor = TRUE;
|
|||
|
m_stAGVTOPLCDATA.AGVControl_u.bits.CoFdoor = false;
|
|||
|
}
|
|||
|
|
|||
|
void CPlcMainDlg::CloseFdoor()
|
|||
|
{
|
|||
|
m_stAGVTOPLCDATA.AGVControl_u.bits.CoFdoor = TRUE;
|
|||
|
m_stAGVTOPLCDATA.AGVControl_u.bits.OpFdoor = false;
|
|||
|
}
|
|||
|
|
|||
|
void CPlcMainDlg::OpenBdoor()
|
|||
|
{
|
|||
|
m_stAGVTOPLCDATA.AGVControl_u.bits.OpBdoor = TRUE;
|
|||
|
m_stAGVTOPLCDATA.AGVControl_u.bits.CoBdoor = false;
|
|||
|
}
|
|||
|
|
|||
|
void CPlcMainDlg::CloseBdoor()
|
|||
|
{
|
|||
|
m_stAGVTOPLCDATA.AGVControl_u.bits.CoBdoor = TRUE;
|
|||
|
m_stAGVTOPLCDATA.AGVControl_u.bits.OpBdoor = false;
|
|||
|
}
|
|||
|
|
|||
|
bool m = true;
|
|||
|
void CPlcMainDlg::OnBnClickedBtnOpenFdoor()
|
|||
|
{
|
|||
|
OpenFdoor();
|
|||
|
//int nResult = MessageBox("<22><>ȷ<EFBFBD><C8B7><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD>þ<EFBFBD><C3BE><EFBFBD><EFBFBD><EFBFBD>", "<22><>ʾ", MB_OKCANCEL | MB_ICONQUESTION);
|
|||
|
//if (nResult == IDOK)
|
|||
|
//{
|
|||
|
// OpenFdoor();
|
|||
|
//}
|
|||
|
//else if (nResult == IDCANCEL)
|
|||
|
//{
|
|||
|
// // <20>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"ȡ<><C8A1>"
|
|||
|
//}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
void CPlcMainDlg::OnBnClickedBtnCloseFdoor()
|
|||
|
{
|
|||
|
CloseFdoor();
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
void CPlcMainDlg::OnBnClickedBtnOpenBdoor()
|
|||
|
{
|
|||
|
OpenBdoor();
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
void CPlcMainDlg::OnBnClickedBtnCloseBdoor()
|
|||
|
{
|
|||
|
CloseBdoor();
|
|||
|
}
|
|||
|
|
|||
|
void CPlcMainDlg::DisplayDLG()
|
|||
|
{
|
|||
|
if (m_stPLCTOAGVDATA.AGVstate_u.bits.FdoorOpen_ste)
|
|||
|
m_btnOpFdColor.SetFaceColor(RGB(135, 206, 235), true);
|
|||
|
else
|
|||
|
m_btnOpFdColor.SetFaceColor(RGB(255, 255, 255), true);
|
|||
|
|
|||
|
if (m_stPLCTOAGVDATA.AGVstate_u.bits.FdoorClose_ste)
|
|||
|
m_btnCoFdColor.SetFaceColor(RGB(135, 206, 235), true);
|
|||
|
else
|
|||
|
m_btnCoFdColor.SetFaceColor(RGB(255, 255, 255), true);
|
|||
|
|
|||
|
if (m_stPLCTOAGVDATA.AGVstate_u.bits.BdoorOpen_ste)
|
|||
|
m_btnOpBdColor.SetFaceColor(RGB(135, 206, 235), true);
|
|||
|
else
|
|||
|
m_btnOpBdColor.SetFaceColor(RGB(255, 255, 255), true);
|
|||
|
|
|||
|
if (m_stPLCTOAGVDATA.AGVstate_u.bits.BdoorClose_ste)
|
|||
|
m_btnCoBdColor.SetFaceColor(RGB(135, 206, 235), true);
|
|||
|
else
|
|||
|
m_btnCoBdColor.SetFaceColor(RGB(255, 255, 255), true);
|
|||
|
|
|||
|
//װж<D7B0><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
|||
|
if (m_stPLCTOAGVDATA.RollerState_u.bits.IndoorLRoller_ste)
|
|||
|
m_btnInDLRColor.SetFaceColor(RGB(135, 206, 235), true);
|
|||
|
else
|
|||
|
m_btnInDLRColor.SetFaceColor(RGB(255, 255, 255), true);
|
|||
|
|
|||
|
if (m_stPLCTOAGVDATA.RollerState_u.bits.IndoorRRoller_ste)
|
|||
|
m_btnInDRRColor.SetFaceColor(RGB(135, 206, 235), true);
|
|||
|
else
|
|||
|
m_btnInDRRColor.SetFaceColor(RGB(255, 255, 255), true);
|
|||
|
|
|||
|
if (m_stPLCTOAGVDATA.RollerState_u.bits.OutdoorLRoller_ste)
|
|||
|
m_btnOutDLRColor.SetFaceColor(RGB(135, 206, 235), true);
|
|||
|
else
|
|||
|
m_btnOutDLRColor.SetFaceColor(RGB(255, 255, 255), true);
|
|||
|
|
|||
|
if (m_stPLCTOAGVDATA.RollerState_u.bits.OutdoorRRoller_ste)
|
|||
|
m_btnOutDRRColor.SetFaceColor(RGB(135, 206, 235), true);
|
|||
|
else
|
|||
|
m_btnOutDRRColor.SetFaceColor(RGB(255, 255, 255), true);
|
|||
|
|
|||
|
if (m_stPLCTOAGVDATA.SafeState_u.bits.Fsafeside)
|
|||
|
m_btnFsafeSColor.SetFaceColor(RGB(255, 0, 0), true);
|
|||
|
else
|
|||
|
m_btnFsafeSColor.SetFaceColor(RGB(255, 255, 255), true);
|
|||
|
|
|||
|
if (m_stPLCTOAGVDATA.SafeState_u.bits.Bsafeside)
|
|||
|
m_btnBsafeSColor.SetFaceColor(RGB(255, 0, 0), true);
|
|||
|
else
|
|||
|
m_btnBsafeSColor.SetFaceColor(RGB(255, 255, 255), true);
|
|||
|
|
|||
|
if (m_stPLCTOAGVDATA.SafeState_u.bits.Lsafeside)
|
|||
|
m_btnLsafeSColor.SetFaceColor(RGB(255, 0, 0), true);
|
|||
|
else
|
|||
|
m_btnLsafeSColor.SetFaceColor(RGB(255, 255, 255), true);
|
|||
|
|
|||
|
if (m_stPLCTOAGVDATA.SafeState_u.bits.Rsafeside)
|
|||
|
m_btnRsafeSColor.SetFaceColor(RGB(255, 0, 0), true);
|
|||
|
else
|
|||
|
m_btnRsafeSColor.SetFaceColor(RGB(255, 255, 255), true);
|
|||
|
|
|||
|
if (m_stPLCTOAGVDATA.SafeState_u.bits.Fradarslow)
|
|||
|
m_btnFradarSColor.SetFaceColor(RGB(255, 133, 133), true);
|
|||
|
else
|
|||
|
m_btnFradarSColor.SetFaceColor(RGB(255, 255, 255), true);
|
|||
|
|
|||
|
if (m_stPLCTOAGVDATA.SafeState_u.bits.Fradarstop)
|
|||
|
m_btnFradarTColor.SetFaceColor(RGB(255, 0, 0), true);
|
|||
|
else
|
|||
|
m_btnFradarTColor.SetFaceColor(RGB(255, 255, 255), true);
|
|||
|
|
|||
|
if (m_stPLCTOAGVDATA.SafeState_u.bits.Bradarslow)
|
|||
|
m_btnBradarSColor.SetFaceColor(RGB(255, 133, 133), true);
|
|||
|
else
|
|||
|
m_btnBradarSColor.SetFaceColor(RGB(255, 255, 255), true);
|
|||
|
|
|||
|
if (m_stPLCTOAGVDATA.SafeState_u.bits.Bradarstop)
|
|||
|
m_btnBradarTColor.SetFaceColor(RGB(255, 0, 0), true);
|
|||
|
else
|
|||
|
m_btnBradarTColor.SetFaceColor(RGB(255, 255, 255), true);
|
|||
|
|
|||
|
if (m_stPLCTOAGVDATA.SafeState_u.bits.AGVEstop)
|
|||
|
m_btnAGVEstopColor.SetFaceColor(RGB(255, 0, 0), true);
|
|||
|
else
|
|||
|
m_btnAGVEstopColor.SetFaceColor(RGB(255, 255, 255), true);
|
|||
|
|
|||
|
if (m_stPLCTOAGVDATA.SafeState_u.bits.RadarShield)
|
|||
|
m_btnShieldRColor.SetFaceColor(RGB(255, 0, 0), true);
|
|||
|
else
|
|||
|
m_btnShieldRColor.SetFaceColor(RGB(255, 255, 255), true);
|
|||
|
|
|||
|
if (m_stPLCTOAGVDATA.SafeState_u.bits.SafeSideShield)
|
|||
|
m_btnShieldSSColor.SetFaceColor(RGB(255, 0, 0), true);
|
|||
|
else
|
|||
|
m_btnShieldSSColor.SetFaceColor(RGB(255, 255, 255), true);
|
|||
|
|
|||
|
if (m_stPLCTOAGVDATA.AGVstate_u.bits.LFsensor_ste)
|
|||
|
m_btnLrollerFsenColor.SetFaceColor(RGB(135, 206, 235), true);
|
|||
|
else
|
|||
|
m_btnLrollerFsenColor.SetFaceColor(RGB(255, 255, 255), true);
|
|||
|
|
|||
|
if (m_stPLCTOAGVDATA.AGVstate_u.bits.LMsensor_ste)
|
|||
|
m_btnLrollerMsenColor.SetFaceColor(RGB(135, 206, 235), true);
|
|||
|
else
|
|||
|
m_btnLrollerMsenColor.SetFaceColor(RGB(255, 255, 255), true);
|
|||
|
|
|||
|
if (m_stPLCTOAGVDATA.AGVstate_u.bits.LBsensor_ste)
|
|||
|
m_btnLrollerBsenColor.SetFaceColor(RGB(135, 206, 235), true);
|
|||
|
else
|
|||
|
m_btnLrollerBsenColor.SetFaceColor(RGB(255, 255, 255), true);
|
|||
|
|
|||
|
if (m_stPLCTOAGVDATA.AGVstate_u.bits.RFsensor_ste)
|
|||
|
m_btnRrollerFsenColor.SetFaceColor(RGB(135, 206, 235), true);
|
|||
|
else
|
|||
|
m_btnRrollerFsenColor.SetFaceColor(RGB(255, 255, 255), true);
|
|||
|
|
|||
|
if (m_stPLCTOAGVDATA.AGVstate_u.bits.RMsensor_ste)
|
|||
|
m_btnRrollerMsenColor.SetFaceColor(RGB(135, 206, 235), true);
|
|||
|
else
|
|||
|
m_btnRrollerMsenColor.SetFaceColor(RGB(255, 255, 255), true);
|
|||
|
|
|||
|
if (m_stPLCTOAGVDATA.AGVstate_u.bits.RBsensor_ste)
|
|||
|
m_btnRrollerBsenColor.SetFaceColor(RGB(135, 206, 235), true);
|
|||
|
else
|
|||
|
m_btnRrollerBsenColor.SetFaceColor(RGB(255, 255, 255), true);
|
|||
|
|
|||
|
if (m_stPLCTOAGVDATA.AGVstate_u.bits.Fdoorsenor_ste)
|
|||
|
m_btnFDloadSteColor.SetFaceColor(RGB(135, 206, 235), true);
|
|||
|
else
|
|||
|
m_btnFDloadSteColor.SetFaceColor(RGB(255, 255, 255), true);
|
|||
|
|
|||
|
if (m_stPLCTOAGVDATA.AGVstate_u.bits.Bdoorsenor_ste)
|
|||
|
m_btnBDloadSteColor.SetFaceColor(RGB(135, 206, 235), true);
|
|||
|
else
|
|||
|
m_btnBDloadSteColor.SetFaceColor(RGB(255, 255, 255), true);
|
|||
|
|
|||
|
if(m_stPLCTOAGVDATA.RollerState_u.bits.BarrierGateIsOpen)
|
|||
|
m_btnOpenBarrierGate.SetFaceColor(RGB(135, 206, 235), true);
|
|||
|
else
|
|||
|
m_btnOpenBarrierGate.SetFaceColor(RGB(255, 255, 255), true);
|
|||
|
|
|||
|
if (m_stPLCTOAGVDATA.RollerState_u.bits.BarrierGateIsClose)
|
|||
|
m_btnCloseBarrierGate.SetFaceColor(RGB(135, 206, 235), true);
|
|||
|
else
|
|||
|
m_btnCloseBarrierGate.SetFaceColor(RGB(255, 255, 255), true);
|
|||
|
|
|||
|
if (m_stPLCTOAGVDATA.RollerState_u.bits.ShopRollerdoorIsOpen)
|
|||
|
m_btnOpenShopRollDoor.SetFaceColor(RGB(135, 206, 235), true);
|
|||
|
else
|
|||
|
m_btnOpenShopRollDoor.SetFaceColor(RGB(255, 255, 255), true);
|
|||
|
|
|||
|
CString nEdit;
|
|||
|
nEdit.Format(_T("0x%04x"), m_stPLCTOAGVDATA.RemoteControl_u.data); // %x-16<31><36><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ; %d-10<31><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
|
|||
|
m_txRemoteControl.SetWindowText(nEdit);
|
|||
|
/*
|
|||
|
if (m_stPLCTOAGVDATA.RemoteControl_u.bits.RemoteControl || m_pMainWnd->m_nAgvMode == DEBUG_MODE) //<2F><><EFBFBD><EFBFBD>ң<EFBFBD><D2A3><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>ģʽ <20><><EFBFBD><EFBFBD> DEBUDģʽ<C4A3><CABD><EFBFBD><EFBFBD>PLC<4C><43><EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD>ſ<EFBFBD><C5BF><EFBFBD>
|
|||
|
{
|
|||
|
m_stAGVTOPLCDATA.RunStaControl_u.bits.AUTOHandSwitch = 1;
|
|||
|
((CButton *)GetDlgItem(IDC_BTN_OPEN_FDOOR))->EnableWindow(true);
|
|||
|
((CButton *)GetDlgItem(IDC_BTN_OPEN_BDOOR))->EnableWindow(true);
|
|||
|
((CButton *)GetDlgItem(IDC_BTN_CLOSE_FDOOR))->EnableWindow(true);
|
|||
|
((CButton *)GetDlgItem(IDC_BTN_CLOSE_BDOOR))->EnableWindow(true);
|
|||
|
((CButton *)GetDlgItem(IDC_BTN_Lroller_F))->EnableWindow(true);
|
|||
|
((CButton *)GetDlgItem(IDC_BTN_Lroller_B))->EnableWindow(true);
|
|||
|
((CButton *)GetDlgItem(IDC_BTN_Rroller_F))->EnableWindow(true);
|
|||
|
((CButton *)GetDlgItem(IDC_BTN_Rroller_B))->EnableWindow(true);
|
|||
|
((CButton *)GetDlgItem(IDC_BTN_Lroller_Stop))->EnableWindow(true);
|
|||
|
((CButton *)GetDlgItem(IDC_BTN_Rroller_Stop))->EnableWindow(true);
|
|||
|
((CButton *)GetDlgItem(IDC_BTN_IndoorLsta))->EnableWindow(true);
|
|||
|
((CButton *)GetDlgItem(IDC_BTN_IndoorRsta))->EnableWindow(true);
|
|||
|
((CButton *)GetDlgItem(IDC_BTN_IndoorStop))->EnableWindow(true);
|
|||
|
((CButton *)GetDlgItem(IDC_BTN_OutdoorLsta))->EnableWindow(true);
|
|||
|
((CButton *)GetDlgItem(IDC_BTN_OutdoorRsta))->EnableWindow(true);
|
|||
|
((CButton *)GetDlgItem(IDC_BTN_OutdoorStop))->EnableWindow(true);
|
|||
|
((CButton *)GetDlgItem(IDC_BTN_OpenBarrierGate))->EnableWindow(true);
|
|||
|
((CButton *)GetDlgItem(IDC_BTN_CloseBarrierGate))->EnableWindow(true);
|
|||
|
((CButton *)GetDlgItem(IDC_BTN_OpenShopRollDoor))->EnableWindow(true);
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
m_stAGVTOPLCDATA.RunStaControl_u.bits.AUTOHandSwitch = 0;
|
|||
|
((CButton *)GetDlgItem(IDC_BTN_OPEN_FDOOR))->EnableWindow(false);
|
|||
|
((CButton *)GetDlgItem(IDC_BTN_OPEN_BDOOR))->EnableWindow(false);
|
|||
|
((CButton *)GetDlgItem(IDC_BTN_CLOSE_FDOOR))->EnableWindow(false);
|
|||
|
((CButton *)GetDlgItem(IDC_BTN_CLOSE_BDOOR))->EnableWindow(false);
|
|||
|
((CButton *)GetDlgItem(IDC_BTN_Lroller_F))->EnableWindow(false);
|
|||
|
((CButton *)GetDlgItem(IDC_BTN_Lroller_B))->EnableWindow(false);
|
|||
|
((CButton *)GetDlgItem(IDC_BTN_Rroller_F))->EnableWindow(false);
|
|||
|
((CButton *)GetDlgItem(IDC_BTN_Rroller_B))->EnableWindow(false);
|
|||
|
((CButton *)GetDlgItem(IDC_BTN_Lroller_Stop))->EnableWindow(false);
|
|||
|
((CButton *)GetDlgItem(IDC_BTN_Rroller_Stop))->EnableWindow(false);
|
|||
|
((CButton *)GetDlgItem(IDC_BTN_IndoorLsta))->EnableWindow(false);
|
|||
|
((CButton *)GetDlgItem(IDC_BTN_IndoorRsta))->EnableWindow(false);
|
|||
|
((CButton *)GetDlgItem(IDC_BTN_IndoorStop))->EnableWindow(false);
|
|||
|
((CButton *)GetDlgItem(IDC_BTN_OutdoorLsta))->EnableWindow(false);
|
|||
|
((CButton *)GetDlgItem(IDC_BTN_OutdoorRsta))->EnableWindow(false);
|
|||
|
((CButton *)GetDlgItem(IDC_BTN_OutdoorStop))->EnableWindow(false);
|
|||
|
((CButton *)GetDlgItem(IDC_BTN_OpenBarrierGate))->EnableWindow(false);
|
|||
|
((CButton *)GetDlgItem(IDC_BTN_CloseBarrierGate))->EnableWindow(false);
|
|||
|
((CButton *)GetDlgItem(IDC_BTN_OpenShopRollDoor))->EnableWindow(false);
|
|||
|
}*/
|
|||
|
}
|
|||
|
|
|||
|
void CPlcMainDlg::OnTimer(UINT_PTR nIDEvent)
|
|||
|
{
|
|||
|
int nRet = 0;
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>豸״̬
|
|||
|
switch (nIDEvent)
|
|||
|
{
|
|||
|
case TIMER_UPDATE_TOPLC:
|
|||
|
if (m_stPLCTOAGVDATA.SafeState_u.bits.AGVEstop) //<2F><>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
m_stAGVTOPLCDATA.AGVControl_u.data = 0; //<2F><><EFBFBD>ع<EFBFBD>Ͳֹͣ<CDA3><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹͣ<CDA3><D6B9><EFBFBD>ر<EFBFBD>ɲ<EFBFBD><C9B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹͣ
|
|||
|
}
|
|||
|
nRet = m_pModbusClient->WriteMultipleRegisters(40001, 4, (short *)&(m_stAGVTOPLCDATA));
|
|||
|
if (nRet > 0)
|
|||
|
{
|
|||
|
m_stAGVTOPLCDATA.AGVControl_u.bits.OpFdoor = false; //<2F><><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>
|
|||
|
m_stAGVTOPLCDATA.AGVControl_u.bits.CoFdoor = false;
|
|||
|
m_stAGVTOPLCDATA.AGVControl_u.bits.OpBdoor = false;
|
|||
|
m_stAGVTOPLCDATA.AGVControl_u.bits.CoBdoor = false;
|
|||
|
m_stAGVTOPLCDATA.PLCControl_u.bits.OpenBarrierGate = false;
|
|||
|
m_stAGVTOPLCDATA.PLCControl_u.bits.CloseBarrierGate = false;
|
|||
|
m_stAGVTOPLCDATA.PLCControl_u.bits.OpenShopRollerDoor = false;
|
|||
|
}
|
|||
|
nRet = m_pModbusClient->ReadMultipleRegisters(40051, 5, (short *)&(m_stPLCTOAGVDATA));
|
|||
|
if(nRet > 0)
|
|||
|
{
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
break;
|
|||
|
case TIMER_UPDATE_TODLG:
|
|||
|
DisplayDLG();
|
|||
|
break;
|
|||
|
case TIMER_RECONNECT_PLC:
|
|||
|
m_pModbusClient->PostThreadMessage(WM_QUIT, 0, 0);
|
|||
|
m_pModbusClient = NULL;
|
|||
|
ConnectPlcController();
|
|||
|
break;
|
|||
|
|
|||
|
default:
|
|||
|
TRACE("<EFBFBD><EFBFBD>Ч\n");
|
|||
|
|
|||
|
}
|
|||
|
CDialogEx::OnTimer(nIDEvent);
|
|||
|
}
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͳ
|
|||
|
void CPlcMainDlg::OnBnClickedBtnLrollerF()
|
|||
|
{
|
|||
|
m_stAGVTOPLCDATA.AGVControl_u.bits.LRollerF = TRUE;
|
|||
|
m_stAGVTOPLCDATA.AGVControl_u.bits.LRollerB = false;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
void CPlcMainDlg::OnBnClickedBtnLrollerB()
|
|||
|
{
|
|||
|
m_stAGVTOPLCDATA.AGVControl_u.bits.LRollerB = TRUE;
|
|||
|
m_stAGVTOPLCDATA.AGVControl_u.bits.LRollerF = false;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
void CPlcMainDlg::OnBnClickedBtnLrollerStop()
|
|||
|
{
|
|||
|
m_stAGVTOPLCDATA.AGVControl_u.bits.LRollerB = false;
|
|||
|
m_stAGVTOPLCDATA.AGVControl_u.bits.LRollerF = false;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
//<2F>Ҳ<EFBFBD><D2B2><EFBFBD>Ͳ
|
|||
|
void CPlcMainDlg::OnBnClickedBtnRrollerF()
|
|||
|
{
|
|||
|
m_stAGVTOPLCDATA.AGVControl_u.bits.RRollerF = TRUE;
|
|||
|
m_stAGVTOPLCDATA.AGVControl_u.bits.RRollerB = false;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
void CPlcMainDlg::OnBnClickedBtnRrollerB()
|
|||
|
{
|
|||
|
m_stAGVTOPLCDATA.AGVControl_u.bits.RRollerB = TRUE;
|
|||
|
m_stAGVTOPLCDATA.AGVControl_u.bits.RRollerF = false;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
void CPlcMainDlg::OnBnClickedBtnRrollerStop()
|
|||
|
{
|
|||
|
m_stAGVTOPLCDATA.AGVControl_u.bits.RRollerB = false;
|
|||
|
m_stAGVTOPLCDATA.AGVControl_u.bits.RRollerF = false;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
void CPlcMainDlg::OnBnClickedBtnIndoorlsta()
|
|||
|
{
|
|||
|
m_stAGVTOPLCDATA.PLCControl_u.bits.IndoorLRoller = TRUE;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
void CPlcMainDlg::OnBnClickedBtnIndoorrsta()
|
|||
|
{
|
|||
|
m_stAGVTOPLCDATA.PLCControl_u.bits.IndoorRRoller = TRUE;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
void CPlcMainDlg::OnBnClickedBtnOutdoorlsta()
|
|||
|
{
|
|||
|
m_stAGVTOPLCDATA.PLCControl_u.bits.OutdoorLRoller = TRUE;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
void CPlcMainDlg::OnBnClickedBtnOutdoorrsta()
|
|||
|
{
|
|||
|
m_stAGVTOPLCDATA.PLCControl_u.bits.OutdoorRRoller = TRUE;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
void CPlcMainDlg::OnBnClickedBtnIndoorstop()
|
|||
|
{
|
|||
|
m_stAGVTOPLCDATA.PLCControl_u.bits.IndoorLRoller = false;
|
|||
|
m_stAGVTOPLCDATA.PLCControl_u.bits.IndoorRRoller = false;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
void CPlcMainDlg::OnBnClickedBtnOutdoorstop()
|
|||
|
{
|
|||
|
m_stAGVTOPLCDATA.PLCControl_u.bits.OutdoorLRoller = false;
|
|||
|
m_stAGVTOPLCDATA.PLCControl_u.bits.OutdoorRRoller = false;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
void CPlcMainDlg::OnBnClickedBtnOpenbarriergate()
|
|||
|
{
|
|||
|
// TODO: <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD>ӿؼ<D3BF>֪ͨ<CDA8><D6AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
m_stAGVTOPLCDATA.PLCControl_u.bits.OpenBarrierGate = true;
|
|||
|
m_stAGVTOPLCDATA.PLCControl_u.bits.CloseBarrierGate = false;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
void CPlcMainDlg::OnBnClickedBtnClosebarriergate()
|
|||
|
{
|
|||
|
// TODO: <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD>ӿؼ<D3BF>֪ͨ<CDA8><D6AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
m_stAGVTOPLCDATA.PLCControl_u.bits.OpenBarrierGate = false;
|
|||
|
m_stAGVTOPLCDATA.PLCControl_u.bits.CloseBarrierGate = true;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
void CPlcMainDlg::OnBnClickedBtnShiedradar() //<2F><><EFBFBD><EFBFBD><EFBFBD>״<EFBFBD>
|
|||
|
{
|
|||
|
// TODO: <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD>ӿؼ<D3BF>֪ͨ<CDA8><D6AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
void CPlcMainDlg::OnBnClickedBtnShieldsafedside() //<2F><><EFBFBD>δ<EFBFBD><CEB4><EFBFBD>
|
|||
|
{
|
|||
|
// TODO: <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD>ӿؼ<D3BF>֪ͨ<CDA8><D6AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
void CPlcMainDlg::OnBnClickedBtnOpenshoprolldoor()
|
|||
|
{
|
|||
|
// TODO: <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD>ӿؼ<D3BF>֪ͨ<CDA8><D6AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
m_stAGVTOPLCDATA.PLCControl_u.bits.OpenShopRollerDoor = true;
|
|||
|
}
|