| | |
| | | #pragma comment(lib,"winmm") |
| | | |
| | | |
| | | #define ALARM_MONITOR _T("警告信息") |
| | | |
| | | typedef std::function<void(void* pFrom, int)> ONPLCSTATECHANGED; |
| | | typedef std::function<void(void* pFrom, int)> ONPLCMONITORDATA; |
| | | typedef std::function<void(void* pFrom, CAlarm*, int)> ONALARM; |
| | |
| | | ~CPLC(); |
| | | |
| | | public: |
| | | void setListener(PLCListener& listener); |
| | | void setWorkDir(const char* pszDir); |
| | | void init(); |
| | | void term(); |
| | |
| | | int writeDWord(MC::SOFT_COMPONENT softComponent, unsigned int addr, int value, ONWRITE funOnWrite); |
| | | int writeBit(MC::SOFT_COMPONENT softComponent, unsigned int addr, BOOL bValue, ONWRITE funOnWrite); |
| | | int writeData(MC::SOFT_COMPONENT softComponent, unsigned int addr, const char* pszData, unsigned int length, ONWRITE funOnWrite); |
| | | void readPLCDataRegularly(); |
| | | |
| | | public: |
| | | int getVelocityRatio(); |
| | | double getTackTime(); |
| | | int getDayShiftCapacity(); |
| | | int getNightShiftCapacity(); |
| | | |
| | | public: |
| | | HANDLE m_hTimeEvent; |
| | | |
| | | private: |
| | | inline void Lock() { EnterCriticalSection(&m_criticalSection); } |
| | | inline void Unlock() { LeaveCriticalSection(&m_criticalSection); } |
| | | void setState(PLCSTATE state); |
| | | void monitorReadData(MONITOR& monitor); |
| | | CString& dataToHexString(const char* pData, const int size, CString& strOut); |
| | | int onMonitorData(MONITOR& monitor); |
| | | |
| | | private: |
| | | std::string m_strWorkDir; |
| | |
| | | unsigned int m_nActionInterval; |
| | | unsigned int m_nUnHeartBeat; |
| | | std::vector<CComponent*> m_components; |
| | | char* m_pPlcData; |
| | | |
| | | private: |
| | | CRITICAL_SECTION m_criticalSection; |
| | | std::vector<MONITOR> m_monitors; |
| | | HANDLE m_hMcMonitorStop; |
| | | HANDLE m_hMcMonitorThreadHandle; |
| | | unsigned m_mcMonitorThrdaddr; |
| | | MMRESULT m_nTimerId; |
| | | bool m_bMute; |
| | | |
| | | private: |
| | | int m_nVelocityRatio; // 速度比 |
| | | double m_dTactTime; // 周期时间 |
| | | int m_nDayShiftCapacity; // 白班产能 |
| | | int m_nNightShiftCapacity; // 夜班产能 |
| | | bool m_bBlBtnsStates[7]; // PLC View按钮状态 |
| | | }; |
| | | |