fast/Plugin/Plc/PlcMainDlg.cpp

713 lines
23 KiB
C++
Raw Normal View History

2025-01-20 10:30:01 +08:00
// 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;
}