#pragma once #include "BaseClient.h" #include "../config/bean/RunCfg.h" #include "../config/bean/ExtCfg.h" #include "../config/bean/AlarmCfg.h" class M1Info { public: M1Info() { m_ShowCode = ""; //界面代码 m_AppCode = 0; //程序代数 m_InnerCode = 0; //内部代数 m_CoverWindSlowStartup = false; //铺粉减风速启动 m_CoverWindResumeStartup = false; //铺粉风速恢复启动 m_CoverWindSlowFinish = false; //铺粉减风速完成 m_CoverWindResumeFinish = false; //铺粉风速恢复完成 m_IsOneKeyDeoxygen = false; //一键除氧标志 m_IsPuriferDeoxygen = false; //净化箱除氧标志 m_IsPrintMachinieDeoxygen = false; //打印室除氧洗标志 m_IsCycleDedust = false; //循环除尘标志 m_IsBlowback = false; //反吹标志 m_IsPowderJarClean = false; //废粉罐清理中 m_IsHopperClean = false; //旋风漏斗清理中 m_IsAddInertingAgent = false; //惰化器加惰化剂中 m_IsPurifierRequestBlowback = false; //净化器请求介入反吹 m_IsPrintPause = false; //打印已暂停 m_IsPurifierBlowbackFinish = false; //净化器介入反吹完成 m_UseArgon = false; m_OneKeyDeoxygenCtrl = false; m_DedustCtrl = false; m_BlowbackCtrl = false; m_PrintRoomDeoxygenCtrl = false; m_PurifierDeoxygenCtrl = false; m_AlarmResetCtrl = false; m_ProtectionTestFail = false; //保压测试失败 m_MidFilterBlockAlarm = false; //中效滤芯堵塞 m_MidTempOverLimitAlarm = false; //中效高温报警 m_MidHighTempOverLimitAlarm = false; //中效超高温报警 m_InertingValveOpenAlarm = false; //惰化阀打开失败报警 m_InertingValveCloseAlarm = false; //惰化阀关闭失败报警 m_InertingValveMidPos = false; //惰化阀处于中间位 m_InverterAlarm = false; //变频器报警 m_UselessPowderValveOpenAlarm = false; //废粉下粉阀打开失败报警 m_UselessPowderValveCloseAlarm = false; //废粉下粉阀关闭失败报警 m_UselessPowderValveMidPos = false; //废粉下粉阀处于中位 m_CycleInValveOpenAlarm = false; //循环进气阀打开失败报警 m_CycleInValveCloseAlarm = false; //循环进气阀打关闭败报警 m_CycleInValveMidPos = false; //循环进气阀处于中位 m_CycleOutValueOpenAlarm = false; //循环出气阀打开失败报警 m_CycleOutValueCloseAlarm = false; //循环出气阀关闭失败报警 m_CycleOutValueMidPos = false; //循环出气阀处于中位 m_WorkGasPressureLowAlarm = false; //工作气过低报警 m_CompressedGasPressureLowAlarm = false; //压缩气过低报警 m_StandbyStateExceptionAlarm = false; //待机状态异常报警 m_InertingExhaustValveOpenAlarm = false; //惰化排气阀打开失败报警 m_InertingExhaustValveCloseAlarm = false; //惰化排气阀关闭失败报警 m_InertingExhaustValveMidPos = false; //惰化排气阀处于中位 m_CyclonePowderValveOpenAlarm = false; //旋风下粉阀打开失败 m_CyclonePowderValveCloseAlarm = false; //旋风下粉阀关闭失败 m_CyclonePowderValveMidPos = false; //旋风下粉阀处于中位 m_WastePowderBucketNeedClean = false; //废粉桶需要清理 m_WastePowderBucketSetupException = false; //废粉桶安装异常 m_InertingAgentNeeedFill = false; //惰化剂需要填充 m_AnemometerExceptionAlarm = false; //风速仪异常报警 m_HopperNeedClean = false; //旋风漏斗需要清理 m_FilterNeedBlowback = false; //滤芯需要反吹 m_InertizerSafetyLockSetupException = false; //惰化器安全锁安装异常 m_MidPressureValue = 0.0f; //中效压力值 m_FilterDifValue = 0.0f; //滤芯压差值 m_MidTemperatureValue = 0.0f; //中效温度值 m_WindSpeedValue = 0.0f; //当前风速值 m_WindQuantityValue = 0.0f; //当前风量值 m_PurifierOxygenValue = 0.0f; //净化箱氧含量 m_PrintRoomOxygenValue = 0.0f; //打印室氧含量 m_RealFreq = 0.0f; //变频器实际频率 m_TheoryFreq = 0.0f; //变频器理论频率 m_PrintPressure = 0.0f; //打印室压力 m_WorkGasPressureValue = 0.0f; //工作气压力值 m_CompressedGasPressureValue = 0.0f; //压缩气压力值 m_BlowbackAirPocketPressureValue = 0.0f; //反吹气包压力值 m_WastePowderBucketPowderHigh = 0.0f; //废粉桶粉量高度 m_InertingAgentWeight = 0.0f; //惰化剂重量 m_OffgasPressureValue = 0.0f; //尾气压力值 m_OffgasDifPressureValue = 0.0f; //尾气压差值 m_PuriferUseTime = 0; //净化箱使用时间 m_FilterUseTime = 0; //滤芯使用总时间 m_AftBlowbackFilterUseTime = 0; //反吹后滤芯使用时间 m_HopperUseTime = 0; //旋风料斗使用时间 m_KeepAlive = 0; //网络心跳 m_PuriferPressureReleaseValue = 0.0f; //净化箱泄压值 m_FilterBlockValue = 0.0f; //滤芯堵塞值 m_SettingWindSpeed = 0.0f; //设定风速 m_SettingWindQuantity = 0.0f; //设定风量 m_PurifierDeoxygenTargeValue = 0.0f; //净化箱除氧目标值 m_PrintRoomDeoxygenTargeValue = 0.0f; //打印室除氧目标值 m_PrintRoomDeoxygenWarnValue = 0.0f; //打印室除氧预警值 m_PrintRoomDeoxygenAlarmValue = 0.0f; //打印室除氧报警值 m_PrintRoomPressureDownLimit = 0.0f; //打印室压力下限 m_PrintRoomPressureUpLimit = 0.0f; //打印室压力上限 m_BlowbackTimes = 0; //反吹次数 m_FilterBlowbackNotifyTime = 0; //滤芯反吹提示时间 m_PrintRoomDeoxygenTime = 0; //打印室除氧时间 m_PurifireDeoxygenTime = 0; //净化器除氧时间 m_OffgasPressureReleaseValue = 0.0f; //尾气泄压值 m_OffgasFilterBlockValue = 0.0f; //尾气滤芯堵塞值 m_CoverWindDropRate = 0.0f; //铺粉风速下降比例 } ~M1Info() {} public: BaseStat m_BaseStat; string m_ShowCode; //界面代码 int m_AppCode; //程序代数 int m_InnerCode; //内部代数 bool m_CoverWindSlowStartup; //铺粉减风速启动 bool m_CoverWindResumeStartup; //铺粉风速恢复启动 bool m_CoverWindSlowFinish; //铺粉减风速完成 bool m_CoverWindResumeFinish; //铺粉风速恢复完成 bool m_IsOneKeyDeoxygen; //一键除氧标志 bool m_IsPuriferDeoxygen; //净化箱除氧标志 bool m_IsPrintMachinieDeoxygen; //打印机部除氧洗标志 bool m_IsCycleDedust; //循环除尘标志 bool m_IsBlowback; //反吹标志 bool m_IsPowderJarClean; //废粉罐清理中 bool m_IsHopperClean; //旋风漏斗清理中 bool m_IsAddInertingAgent; //惰化器加惰化剂中 bool m_IsPurifierRequestBlowback; //净化器请求介入反吹 bool m_IsPrintPause; //打印已暂停 bool m_IsPurifierBlowbackFinish; //净化器介入反吹完成 bool m_UseArgon; //使用氩气 bool m_OneKeyDeoxygenCtrl; bool m_DedustCtrl; bool m_BlowbackCtrl; bool m_PrintRoomDeoxygenCtrl; bool m_PurifierDeoxygenCtrl; bool m_AlarmResetCtrl; bool m_ProtectionTestFail; //保压测试失败 bool m_MidFilterBlockAlarm; //中效滤芯堵塞 bool m_MidTempOverLimitAlarm; //中效高温报警 bool m_MidHighTempOverLimitAlarm; //中效超高温报警 bool m_InertingValveOpenAlarm; //惰化阀打开失败报警 bool m_InertingValveCloseAlarm; //惰化阀关闭失败报警 bool m_InertingValveMidPos; //惰化阀处于中间位 bool m_InverterAlarm; //变频器报警 bool m_UselessPowderValveOpenAlarm; //废粉下粉阀打开失败报警 bool m_UselessPowderValveCloseAlarm; //废粉下粉阀关闭失败报警 bool m_UselessPowderValveMidPos; //废粉下粉阀处于中位 bool m_CycleInValveOpenAlarm; //循环进气阀打开失败报警 bool m_CycleInValveCloseAlarm; //循环进气阀打开失败报警 bool m_CycleInValveMidPos; //循环进气阀处于中位 bool m_CycleOutValueOpenAlarm; //循环出气阀打开失败报警 bool m_CycleOutValueCloseAlarm; //循环出气阀打开失败报警 bool m_CycleOutValueMidPos; //循环出气阀处于中位 bool m_WorkGasPressureLowAlarm; //工作气过低报警 bool m_CompressedGasPressureLowAlarm; //压缩气过低报警 bool m_StandbyStateExceptionAlarm; //待机状态异常报警 bool m_InertingExhaustValveOpenAlarm; //惰化排气阀打开失败报警 bool m_InertingExhaustValveCloseAlarm; //惰化排气阀关闭失败报警 bool m_InertingExhaustValveMidPos; //惰化排气阀处于中位 bool m_CyclonePowderValveOpenAlarm; //旋风下粉阀打开失败 bool m_CyclonePowderValveCloseAlarm; //旋风下粉阀关闭失败 bool m_CyclonePowderValveMidPos; //旋风下粉阀处于中位 bool m_WastePowderBucketNeedClean; //废粉桶需要清理 bool m_WastePowderBucketSetupException; //废粉桶安装异常 bool m_InertingAgentNeeedFill; //惰化剂需要填充 bool m_AnemometerExceptionAlarm; //风速仪异常报警 bool m_HopperNeedClean; //旋风漏斗需要清理 bool m_FilterNeedBlowback; //滤芯需要反吹 bool m_InertizerSafetyLockSetupException; //惰化器安全锁安装异常 float m_MidPressureValue; //中效压力值 float m_FilterDifValue; //滤芯压差值 float m_MidTemperatureValue; //中效温度值 float m_WindSpeedValue; //当前风速值 float m_WindQuantityValue; //当前风量值 float m_PurifierOxygenValue; //净化箱氧含量 float m_PrintRoomOxygenValue; //打印室氧含量 float m_RealFreq; //变频器实际频率 float m_TheoryFreq; //变频器理论频率 float m_PrintPressure; //打印室压力 float m_WorkGasPressureValue; //工作气压力值 float m_CompressedGasPressureValue; //压缩气压力值 float m_BlowbackAirPocketPressureValue; //反吹气包压力值 float m_WastePowderBucketPowderHigh; //废粉桶粉量高度 float m_InertingAgentWeight; //惰化剂重量 float m_OffgasPressureValue; //尾气压力值 float m_OffgasDifPressureValue; //尾气压差值 uint16_t m_PuriferUseTime; //净化箱使用时间 uint16_t m_FilterUseTime; //滤芯使用总时间 uint16_t m_AftBlowbackFilterUseTime; //反吹后滤芯使用时间 uint16_t m_HopperUseTime; //旋风料斗使用时间 uint16_t m_KeepAlive; //网络心跳 float m_PuriferPressureReleaseValue; //净化箱泄压值 float m_FilterBlockValue; //滤芯堵塞值 float m_SettingWindSpeed; //设定风速 float m_SettingWindQuantity; //设定风量 float m_PurifierDeoxygenTargeValue; //净化箱除氧目标值 float m_PrintRoomDeoxygenTargeValue; //打印室除氧目标值 float m_PrintRoomDeoxygenWarnValue; //打印室除氧预警值 float m_PrintRoomDeoxygenAlarmValue; //打印室除氧报警值 float m_PrintRoomPressureDownLimit; //打印室压力下限 float m_PrintRoomPressureUpLimit; //打印室压力上限 uint16_t m_BlowbackTimes; //反吹次数 uint16_t m_FilterBlowbackNotifyTime; //滤芯反吹提示时间 uint16_t m_PrintRoomDeoxygenTime; //打印室除氧时间 uint16_t m_PurifireDeoxygenTime; //净化器除氧时间 float m_OffgasPressureReleaseValue; //尾气泄压值 float m_OffgasFilterBlockValue; //尾气滤芯堵塞值 float m_CoverWindDropRate; //铺粉风速下降比例 }; class M1PurifierClient :public S7Client { public: M1PurifierClient(CommunicationCfg* pconfig); ~M1PurifierClient(); void GetInfo(M1Info& info); void SetCoverWindDropRate(float fvalue); void SetOneKeyDeoxygen(bool bvalue); void SetDedust(bool bvalue); void SetBlowBack(bool bvalue); void SetPrintRoomDeoxygen(bool bvalue); void SetPurifierDeoxygen(bool bvalue); void SetUseArgon(bool bvalue); void SetPuriferPressureReleaseValue(float fvalue); void SetFilterBlockValue(float fvalue); void SetSettingWindSpeed(float fvalue); void SetSettingWindQuantity(float fvalue); void SetPurifierDeoxygenTargeValue(float fvalue); void SetPrintRoomDeoxygenTargeValue(float fvalue); void SetPrintRoomDeoxygenWarnValue(float fvalue); void SetPrintRoomDeoxygenAlarmValue(float fvalue); void SetPrintRoomPressureDownLimit(float fvalue); void SetPrintRoomPressureUpLimit(float fvalue); void SetBlowbackTimes(uint16_t uvalue); void SetFilterBlowbackNotifyTime(uint16_t uvalue); void SetOffgasPressureReleaseValue(float fvalue); void SetOffgasFilterBlockValue(float fvalue); void SetCoverWindSlow(bool bvalue); void SetCoverWindResume(bool bvalue); void ResetCoverWindSlowFinish(); void ResetCoverWindResumeFinish(); protected: virtual void InitCommand(); private: static void ProcReadInfo(void* pobject, Command* pcommand); static void ProcWriteValue(void* pobject, Command* pcommand); void SetDBFloat(int dindex, float fvalue); void SetBit(int dindex, bool v); void SetDBU16(int dindex, uint16_t uvalue); static void ProcSetOxygenValue(void* pobject, Command* pcommand); private: M1Info m_Info; unsigned char* m_OxygenWriteValue; unsigned char* m_PressureWriteValue; RunCfg* m_RunCfg; ExtCfg* m_ExtCfg; AlarmCfgWrapper* m_AlarmCfgWrapper; static const unsigned int READ_ITEM_COUNT = 4; };