You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

38 lines
1.4 KiB
C++

#pragma once
#include "module.h"
//通信端口信息
class CPlcIOPar
{
public:
CString m_Port;//端口号
CString m_CtrlContent;//控制内容
};
//plc 进行I/O 控制管理类
class CPlcIOMgr :public CModule
{
public:
CPlcIOMgr(void);
~CPlcIOMgr(void);
virtual MODULE GetModuleType(){return _PLC_IO_PROP;};
virtual CMFCPropertyGridProperty *CreatGridProperty();
virtual void Ini();
virtual void ExportPar(ofstream *pFile);
bool SwitchPort(CString CtrlContent,bool bOpen);
bool CheckPortState(CString PortNum,int WaitTime);
int GetComPort(){return m_ComPort;};
private:
CString GetPortNum(CString CtrlContent,vector<CPlcIOPar> &PortVec);
void ReadCtrlContentFile(vector<CPlcIOPar> &PortVec,CString FilePath);
private:
bool m_bUse;//是否使用PLC I/O控制
bool m_bShowLog;//是否显示日志
int m_BaudRate;//通信波特率
int m_ComPort;//通信串口号
int m_ExcuteTimes;//执行时间,直到返回OK
vector<CPlcIOPar> m_OutPortVec;//输出控制端口容器
vector<CPlcIOPar> m_InPortVec;//输入控制端口容器
};
extern CPlcIOMgr *gPlcIOMgr;