fast/Plugin/Plc/PlcMainDlg.h
2025-01-20 10:30:01 +08:00

283 lines
6.7 KiB
C++

#pragma once
#include "afxcmn.h"
#include "CommDataDef.h"
// CPlcDeviceDlg 对话框
class CModbusClient;
class CPluginMainDialog;
typedef struct AGV_PLC_data {
union AGVIntWithBools {
short data;
struct {
bool Brake : 1; //刹车
bool Charge : 1; //充电
bool Reserve1 : 1;
bool Reserve2 : 1;
bool OpFdoor : 1; //开前卷帘门
bool CoFdoor : 1; //关前卷帘门
bool OpBdoor : 1;
bool CoBdoor : 1;
bool LRollerF : 1;
bool LRollerB : 1;
bool RRollerF : 1;
bool RRollerB : 1;
} bits;
}AGVControl_u;
union PLCIntWithBools {
short data;
struct {
bool IndoorLRoller : 1; //室内左侧滚筒运行
bool IndoorRRoller : 1; //室内右侧滚筒运行
bool OutdoorLRoller : 1; //室外左侧滚筒运行
bool OutdoorRRoller : 1; //室外右侧滚筒运行
bool Reserve1 : 1;
bool Reserve2 : 1;
bool Reserve3 : 1;
bool Reserve4 : 1;
bool OpenBarrierGate : 1; //开道闸
bool CloseBarrierGate : 1; //关道闸
bool OpenShopRollerDoor : 1;//开仓库卷帘门
} bits;
}PLCControl_u;
union RunStaIntWithBools {
short data;
struct {
bool Standby_mode : 1;
bool GotoLoading : 1;
bool GotoUnloading : 1;
bool S_stop : 1;
bool Reqloading : 1;
bool ReqUnloading : 1;
bool AUTOHandSwitch : 1; //手自动切换 1手动 0自动
bool AGVpipelineReset : 1; //车载输送线复位
bool Force_Import : 1;
bool Reserve2 : 1;
bool Reserve3 : 1;
bool Reserve4 : 1;
bool Reserve5 : 1;
bool Reserve6 : 1;
bool Reserve7 : 1;
bool Reserve8 : 1;
} bits;
}RunStaControl_u;
int HeartBeat;
AGV_PLC_data()
{
AGVControl_u.data = 0;
PLCControl_u.data = 0;
RunStaControl_u.data = 0;
HeartBeat = 1;
}
}ST_AGVTOPLCDATA;
typedef struct PLC_AGV_data {
union AGVIntWithBools {
short data;
struct {
bool Reserve1 : 1;
bool Reserve2 : 1;
bool Reserve3 : 1;
bool Reserve4 : 1;
bool FdoorOpen_ste : 1;
bool FdoorClose_ste : 1;
bool BdoorOpen_ste : 1;
bool BdoorClose_ste : 1;
bool LFsensor_ste : 1;
bool LMsensor_ste : 1;
bool LBsensor_ste : 1;
bool Fdoorsenor_ste : 1;
bool RFsensor_ste : 1;
bool RMsensor_ste : 1;
bool RBsensor_ste : 1;
bool Bdoorsenor_ste : 1;
} bits;
}AGVstate_u;
union RollerIntWithBools {
short data;
struct {
bool IndoorLRoller_ste : 1;
bool IndoorRRoller_ste : 1;
bool OutdoorLRoller_ste : 1;
bool OutdoorRRoller_ste : 1;
bool OutdoorAGV_Estop : 1;
bool IndoorAGV_Estop : 1;
bool Reserve1 : 1;
bool Reserve2 : 1;
bool BarrierGateIsOpen : 1; //道闸开到位
bool BarrierGateIsClose : 1; //道闸关到位
bool ShopRollerdoorIsOpen : 1;//仓库卷帘门开到位
} bits;
}RollerState_u;
union StateIntWithBools {
short data;
struct {
bool Fsafeside : 1;
bool Bsafeside : 1;
bool Lsafeside : 1;
bool Rsafeside : 1;
bool Fradarslow : 1;
bool Fradarstop : 1;
bool Bradarslow : 1;
bool Bradarstop : 1;
bool AGVEstop : 1;
bool RadarShield : 1; //雷达屏蔽
bool SafeSideShield : 1; //触边屏蔽
bool Soaking : 1; //浸水传感器触发
} bits;
}SafeState_u;
union RemoteCIntWithBools {
short data;
struct {
bool RemoteControl : 1;
bool Forward : 1;
bool Backward : 1;
bool LeftRotation : 1;
bool RightRotation : 1;
bool ZeroHold : 1;
bool Reserve : 1;
} bits;
}RemoteControl_u;
union LoadStaIntWithBools {
short data;
struct {
bool Loading : 1;
bool LoadFinish : 1;
bool Unloading : 1;
bool UnloadFinish : 1;
bool LoadingErr : 1;
bool UnloadingErr : 1;
} bits;
}LoadState_u;
PLC_AGV_data()
{
AGVstate_u.data = 0;
RollerState_u.data = 0;
SafeState_u.data = 0;
RemoteControl_u.data = 0;
LoadState_u.data = 0;
}
}ST_PLCTOAGVDATA;
class CPlcMainDlg : public CDialogEx
{
DECLARE_DYNAMIC(CPlcMainDlg)
public:
CPlcMainDlg(CWnd* pParent = NULL); // 标准构造函数
virtual ~CPlcMainDlg();
// 对话框数据
#ifdef AFX_DESIGN_TIME
enum { IDD = IDD_DEV_PLC_DLG };
#endif
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
DECLARE_MESSAGE_MAP()
public:
virtual BOOL OnInitDialog();
void ReadConfigFromIni();
BOOL ConnectPlcController();
void MfcButtonInit();
void OpenFdoor();
void OpenBdoor();
void CloseFdoor();
void CloseBdoor();
void DisplayDLG();
CIPAddressCtrl m_ipAddrCtrl;
CMFCButton m_btnOpFdColor;
CMFCButton m_btnCoFdColor;
CMFCButton m_btnOpBdColor;
CMFCButton m_btnCoBdColor;
CMFCButton m_btnInDLRColor;
CMFCButton m_btnInDRRColor;
CMFCButton m_btnOutDLRColor;
CMFCButton m_btnOutDRRColor;
CMFCButton m_btnFsafeSColor;
CMFCButton m_btnBsafeSColor;
CMFCButton m_btnLsafeSColor;
CMFCButton m_btnRsafeSColor;
CMFCButton m_btnFradarSColor;
CMFCButton m_btnFradarTColor;
CMFCButton m_btnBradarSColor;
CMFCButton m_btnBradarTColor;
CMFCButton m_btnAGVEstopColor;
CMFCButton m_btnShieldRColor;
CMFCButton m_btnShieldSSColor;
CMFCButton m_btnLrollerFsenColor;
CMFCButton m_btnLrollerMsenColor;
CMFCButton m_btnLrollerBsenColor;
CMFCButton m_btnRrollerFsenColor;
CMFCButton m_btnRrollerMsenColor;
CMFCButton m_btnRrollerBsenColor;
CMFCButton m_btnFDloadSteColor;
CMFCButton m_btnBDloadSteColor;
CMFCButton m_btnOpenBarrierGate;
CMFCButton m_btnCloseBarrierGate;
CMFCButton m_btnOpenShopRollDoor;
CStatic m_txRemoteControl;
CString m_strIpAddr;
int m_nPort;
BOOL m_bConnectServer;
afx_msg void OnBnClickedBtnSet();
afx_msg void OnBnClickedBtnOpenFdoor();
afx_msg void OnBnClickedBtnCloseFdoor();
afx_msg void OnBnClickedBtnOpenBdoor();
afx_msg void OnBnClickedBtnCloseBdoor();
afx_msg void OnTimer(UINT_PTR nIDEvent);
LRESULT OnNetMsg(WPARAM wparam, LPARAM lparam);
public:
CModbusClient *m_pModbusClient;
//CPluginMainDialog *m_pMainWnd;
void OnDevReadRspDataFromPlc(BYTE nDevId, ST_MODBUS_SERVER_RSPREAD_FRAME stReadFrame);
void OnDevWrtRspDataFromPlc(BYTE nDevId, ST_MODBUS_SERVER_RSPWRT_FRAME stWriteFrame);
afx_msg void OnBnClickedBtnRdReg();
afx_msg void OnBnClickedBtnWrReg();
afx_msg void OnBnClickedMfcbutton1();
afx_msg void OnBnClickedBtnLrollerF();
afx_msg void OnBnClickedBtnLrollerB();
afx_msg void OnBnClickedBtnLrollerStop();
afx_msg void OnBnClickedBtnRrollerF();
afx_msg void OnBnClickedBtnRrollerB();
afx_msg void OnBnClickedBtnRrollerStop();
afx_msg void OnBnClickedBtnIndoorlsta();
afx_msg void OnBnClickedBtnIndoorrsta();
afx_msg void OnBnClickedBtnOutdoorlsta();
afx_msg void OnBnClickedBtnOutdoorrsta();
afx_msg void OnBnClickedBtnIndoorstop();
afx_msg void OnBnClickedBtnOutdoorstop();
afx_msg void OnBnClickedBtnShiedradar();
afx_msg void OnBnClickedBtnShieldsafedside();
ST_AGVTOPLCDATA m_stAGVTOPLCDATA;
ST_PLCTOAGVDATA m_stPLCTOAGVDATA;
afx_msg void OnBnClickedBtnOpenbarriergate();
afx_msg void OnBnClickedBtnClosebarriergate();
afx_msg void OnBnClickedBtnOpenshoprolldoor();
};