282 lines
13 KiB
C
282 lines
13 KiB
C
|
#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;
|
|||
|
};
|
|||
|
|