#pragma once #include "BaseClient.h" #include "../config/ConfigManager.h" #include "Snap7/s7_client.h" class Purifierstat_XT { public: Purifierstat_XT() { isPurifying = false; isDedusting = false; isBoxCleaning = false; isBlowBack = false; isFilterDiscarding = false; isFilterCleaning = false; isHopperCleaning = false; midPressureValue = 0; midPressureDifValue = 0; midTemperatureValue = 0; highPressureDifValue = 0; anemometerActualValue = 0.0f; printPressureValue = 0; boxPressureUpLimit = 0; boxPressureDownLimit = 0; filterOxygenValue = 0; printOxygenValue = 0; midPressureDifAlarmValue = 0; highPressureDifAlarmValue = 0; filterTotalUseTime = 0; bowBackTimes = 0; usedTimeFromlastBowBack = 0; boxWashTime = 0; filterWashTime = 0; boxWashDelayTime = 0; dedustingWashDelayTime = 0; hopperCleanRemind = 0; hopperTimeLastClean = 0; printCleanOxygenSetValue = 0; windSetValue = 0; maxWindSetValue = 0.0f; windActualValue = 0; // printOxygenDownSetValue=0; printOxygenUpSetValue = 0; filterCleanOxygenSetValue = 0; //highTempValue=0; midTempHighSetValue = 0; midTempUltraSetValue = 0; //highTempHighSetValue=0; //highTempUltraSetValue = 0; pressureRangeUpLimit = 0; pressureRangeDownLimit = 0; oxygenAlarmValue = 0; useArgon = false; fanFreq = 0.0f; coverWindSpeedOffset = 0.0f; isCoverWind = false; purifierType = 0; keepAlive = 0; cycleInValveOpenAlarm = false; //循环进气阀打开异常,请检查阀门与感应器是否正常 cycleOutValueOpenAlarm = false; //循环出气阀打开异常,请检查阀门与感应器是否正常 highPressureLackAlarm = false; //高压气气压不足,无法启动设备请补充压力 protectedPressureLackAlarm = false; //保护气气压不足,无法启动设备请补充压力 midFilterBlockAlarm = false; //中效滤芯堵塞严重,请执行清理工作 midTempOverLimitAlarm = false; //中效高温报警,请注意 midHighTempOverLimitAlarm = false; //中效超高温报警,已经很危险请停机检查 hopperUseLongTimeAlarm = false; //料斗使用时间过长,请进行清理 highPressureLackValveAlarm = false; //高压气气压不足,导致阀门异常关闭,请使用稳定气压 inverterAlarm = false; //变频器报警,请检查电机是否正常 protectionTestFail = false; inverterPowerBreak = false; shieldMonitorPrintPressure = false; innerfilterOpenAlarm = false; inverterComException = false; midHighValveOpenAlarm = false; innerFilterInValveException = false; midUnionValveException = false; innerFilterOutValveException = false; highFilterBlockAlarm = false; whirlwindJarIsFull = false; midInValveOpenAlarm = false; midOutValveOpenAlarm = false; oxygenSelfTestFail = false; coverWindSlowFinish = false; coverWindResumeFinish = true; anemometerException = false; midConnectException = false; //中效室连接异常,请检查是否连接完毕 carbinDoorOpenException = false; //舱门打开异常,请检查关闭好舱门与舱门感应器 busOutValveNotOpenAlarm = false; //总排气阀未打开,请检查总排气阀工作状态 busOutValveNotCloseAlarm = false; //总排气阀未关闭,请检查总排气阀工作状态 busOutValveNotInPosAlarm = false; //总排气阀处于不到位状态,请检查总排气阀工作状态 printOutValveNotOpenAlarm = false; //打印室排气阀未打开,请检查打印室排气阀工作状态 printOutValveNotCloseAlarm = false; //打印室排气阀未关闭,请检查打印室排气阀工作状态 printOutValveNotInPosAlarm = false; //打印室排气阀处于不到位状态,请检查打印室排气阀工作状态 //fanFrequency = 0.0f; //purifierSevereAbnormalExhaust = false; //inverterDonotWorkWhenDedust = false; //循环过程,变频器不运行异常 //printOxygenExceptWhenDedust = false; //循环过程,打印室氧含量超限异常 //tempExceptWhenDedust = false; //循环过程,中高效超温异常 //highPressureExceptWhenDedust = false; //循环过程,中高效超温异常 //windExceptWhenDedust = false; //循环过程,风速异常报警 protectionPressureEnable = false; ProtectionPressureTestRelFail = false; oxygenSelfTestRelFail = false; ProtectionPressuring = false; ProtectionPressureSetTime = 1; blowBackSetTimes = 1; blowBackBlowTime = 10; } ~Purifierstat_XT() {} virtual bool IsAlarm() { return false; } public: BaseStat baseStat; bool isPurifying; //在一键清洗 bool isDedusting; //在除尘 bool isBoxCleaning; //箱体在清洗 bool isBlowBack; //在反吹 bool isFilterDiscarding; //滤芯废处理 bool isFilterCleaning; //过滤器在清洗 bool isHopperCleaning; //料斗在清洗 float midPressureValue; //中效过滤器压力实值 float midPressureDifValue; //中效过滤器压差值 float midTemperatureValue; //中效过滤器温度值 float highPressureDifValue; //高效过滤器压差值 float anemometerActualValue; //风速计实际值 float printPressureValue; //打印室压力 float boxPressureUpLimit; //箱体压力上限设定 float boxPressureDownLimit; //箱体压力下限设定 float filterOxygenValue; //过滤器氧含量 实际值 float printOxygenValue; //打印室氧含量 float midPressureDifAlarmValue; //中效过滤器压差报警设 float highPressureDifAlarmValue; //高效过滤器压差报警设 unsigned short filterTotalUseTime; //滤芯使用总时间 unsigned short usedTimeFromlastBowBack; //上次反吹后已使用时间 unsigned short bowBackTimes; //反吹总次数 unsigned short hopperTimeLastClean; //料斗上次清理后已使用时间 unsigned short boxWashTime; //箱体本次清洗时间 unsigned short filterWashTime; //过滤器清洗时间 unsigned short boxWashDelayTime; // 打印机清洗滞后分钟 unsigned short dedustingWashDelayTime; //除尘系统清洗滞后分钟 unsigned short hopperCleanRemind; //清理料斗提醒设定 float printCleanOxygenSetValue; //打印室氧清洗氧含量设 float windSetValue; //风速设定 float windActualValue; //风速实际值 float maxWindSetValue; //风速最大值 bool useArgon; //使用氩气 float printOxygenUpSetValue; //打印氧上限设定 float oxygenAlarmValue; //打印氧超上限设定 float filterCleanOxygenSetValue; //过滤器清洗氧含量设定 float midTempHighSetValue; //中效高温报警设定 float midTempUltraSetValue; //中效超高温报警设定 float pressureRangeUpLimit; //压力量程上限设定 float pressureRangeDownLimit; //压力量程下限设定 float fanFreq; //风机频率 bool midTempOverLimitAlarm; //中效高温报警,请注意 bool midHighTempOverLimitAlarm; //中效超高温报警,已经很危险请停机检查 bool hopperUseLongTimeAlarm; //料斗使用时间过长,请进行清理 bool highPressureLackValveAlarm; //高压气气压不足,导致阀门异常关闭,请使用稳定气压 bool protectionTestFail; //保压测试失败 bool inverterPowerBreak; //变频器电源断开 bool inverterAlarm; //变频器报警,请检查电机是否正常 bool whirlwindJarIsFull; //旋风罐装满粉,请清理 bool midInValveOpenAlarm; //中效进气阀打开异常 bool midOutValveOpenAlarm; //中效出气阀打开异常 bool anemometerException; //风速仪异常 bool oxygenSelfTestFail; //氧自测试失败 bool innerfilterOpenAlarm; //内过滤打印室废气阀打开异常,请检查阀门与感应器是否正常 bool inverterComException; //变频器通讯异常 //bool purifierSevereAbnormalExhaust; //净化器排气严重异常 bool cycleInValveOpenAlarm; //循环进气阀打开异常,请检查阀门与感应器是否正常 bool cycleOutValueOpenAlarm; //循环出气阀打开异常,请检查阀门与感应器是否正常 bool midHighValveOpenAlarm; //中高效阀打开异常,请检查阀门与感应器是否正常 bool innerFilterInValveException; //内过滤循环进气阀门异常,请检查阀门与感应器是否正常 bool midUnionValveException; //内过滤中效联通阀打开异常,请检查阀门与感应器是否正常 bool innerFilterOutValveException; //内过滤循环出气阀打开异常,请检查阀门与感应器是否正常 bool midFilterBlockAlarm; //中效滤芯堵塞严重,请执行清理工作 bool highFilterBlockAlarm; //高效滤芯堵塞严重,请执行清理工作 bool highPressureLackAlarm; //高压气气压不足,无法启动设备请补充压力 bool protectedPressureLackAlarm; //保护气气压不足,无法启动设备请补充压力 bool midConnectException; //中效室连接异常,请检查是否连接完毕 bool carbinDoorOpenException; //舱门打开异常,请检查关闭好舱门与舱门感应器 bool busOutValveNotOpenAlarm; //总排气阀未打开,请检查总排气阀工作状态 bool busOutValveNotCloseAlarm; //总排气阀未关闭,请检查总排气阀工作状态 bool busOutValveNotInPosAlarm; //总排气阀处于不到位状态,请检查总排气阀工作状态 bool printOutValveNotOpenAlarm; //打印室排气阀未打开,请检查打印室排气阀工作状态 bool printOutValveNotCloseAlarm; //打印室排气阀未关闭,请检查打印室排气阀工作状态 bool printOutValveNotInPosAlarm; //打印室排气阀处于不到位状态,请检查打印室排气阀工作状态 //bool inverterDonotWorkWhenDedust; //循环过程,变频器不运行异常 //bool printOxygenExceptWhenDedust; //循环过程,打印室氧含量超限异常 //bool tempExceptWhenDedust; //循环过程,中高效超温异常 //bool highPressureExceptWhenDedust; //循环过程,中高效超温异常 //bool windExceptWhenDedust; //循环过程,风速异常报警 float coverWindSpeedOffset; //铺粉风速差值 bool isCoverWind; //铺粉骤降风速 bool shieldMonitorPrintPressure; //屏蔽监测打印压力 bool coverWindSlowFinish; bool coverWindResumeFinish; short purifierType; short keepAlive; bool protectionPressureEnable; bool ProtectionPressureTestRelFail; bool oxygenSelfTestRelFail; bool ProtectionPressuring; short ProtectionPressureSetTime; unsigned short blowBackSetTimes; unsigned short blowBackBlowTime; }; #pragma pack(1) class PurifierParam { public: PurifierParam() : isPurifying(new BoolData("isPurifying", u8"在一键清洗")) , isDedusting(new BoolData("isDedusting", u8"在除尘")) , isBoxCleaning(new BoolData("isBoxCleaning", u8"箱体在清洗")) , isBlowBack(new BoolData("isBlowBack", u8"在反吹")) , isFilterDiscarding(new BoolData("isFilterDiscarding", u8"滤芯废处理")) , isFilterCleaning(new BoolData("isFilterCleaning", u8"过滤器在清洗")) , isHopperCleaning(new BoolData("isHopperCleaning", u8"料斗在清洗")) , midPressureValue(new FloatData("midPressureValue", u8"中效过滤器压力实值")) , midPressureDifValue(new FloatData("midPressureDifValue", u8"中效过滤器压差值")) , midTemperatureValue(new FloatData("midTemperatureValue", u8"中效过滤器温度值")) , highPressureDifValue(new FloatData("highPressureDifValue", u8"高效过滤器压差值")) , anemometerActualValue(new FloatData("anemometerActualValue", u8"风速计实际值")) , printPressureValue(new FloatData("printPressureValue", u8"打印室压力")) , boxPressureUpLimit(new FloatData("boxPressureUpLimit", u8"箱体压力上限设定")) , boxPressureDownLimit(new FloatData("boxPressureDownLimit", u8"箱体压力下限设定")) , filterOxygenValue(new FloatData("filterOxygenValue", u8"过滤器氧含量 实际值")) , printOxygenValue(new FloatData("printOxygenValue", u8"打印室氧含量")) , midPressureDifAlarmValue(new FloatData("midPressureDifAlarmValue", u8"中效过滤器压差报警设")) , highPressureDifAlarmValue(new FloatData("highPressureDifAlarmValue", u8"高效过滤器压差报警设")) , filterTotalUseTime(new UShortData("filterTotalUseTime", u8"滤芯使用总时间")) , usedTimeFromlastBowBack(new UShortData("usedTimeFromlastBowBack", u8"上次反吹后已使用时间")) , bowBackTimes(new UShortData("bowBackTimes", u8"反吹总次数")) , hopperTimeLastClean(new UShortData("hopperTimeLastClean", u8"料斗上次清理后已使用时间")) , boxWashTime(new UShortData("boxWashTime", u8"箱体本次清洗时间")) , filterWashTime(new UShortData("filterWashTime", u8"过滤器清洗时间")) , boxWashDelayTime(new UShortData("boxWashDelayTime", u8"打印机清洗滞后分钟")) , dedustingWashDelayTime(new UShortData("dedustingWashDelayTime", u8"除尘系统清洗滞后分钟")) , hopperCleanRemind(new UShortData("hopperCleanRemind", u8"清理料斗提醒设定")) , printCleanOxygenSetValue(new FloatData("printCleanOxygenSetValue", u8"打印室氧清洗氧含量设")) , windSetValue(new FloatData("windSetValue", u8"风速设定")) , windActualValue(new FloatData("windActualValue", u8"风速实际值")) , maxWindSetValue(new FloatData("maxWindSetValue", u8"风速最大值")) , useArgon(new BoolData("useArgon", u8"使用氩气")) , printOxygenUpSetValue(new FloatData("printOxygenUpSetValue", u8"打印氧上限设定")) , oxygenAlarmValue(new FloatData("oxygenAlarmValue", u8"打印氧超上限设定")) , filterCleanOxygenSetValue(new FloatData("filterCleanOxygenSetValue", u8"过滤器清洗氧含量设定")) , midTempHighSetValue(new FloatData("midTempHighSetValue", u8"中效高温报警设定")) , midTempUltraSetValue(new FloatData("midTempUltraSetValue", u8"中效超高温报警设定")) , pressureRangeUpLimit(new FloatData("pressureRangeUpLimit", u8"压力量程上限设定")) , pressureRangeDownLimit(new FloatData("pressureRangeDownLimit", u8"压力量程下限设定")) , fanFreq(new FloatData("fanFreq", u8"风机频率")) , midTempOverLimitAlarm(new BoolData("midTempOverLimitAlarm", u8"中效高温报警,请注意")) , midHighTempOverLimitAlarm(new BoolData("midHighTempOverLimitAlarm", u8"中效超高温报警,已经很危险请停机检查")) , hopperUseLongTimeAlarm(new BoolData("hopperUseLongTimeAlarm", u8"料斗使用时间过长,请进行清理")) , highPressureLackValveAlarm(new BoolData("highPressureLackValveAlarm", u8"高压气气压不足,导致阀门异常关闭,请使用稳定气压")) , protectionTestFail(new BoolData("protectionTestFail", u8"保压测试失败")) , inverterPowerBreak(new BoolData("inverterPowerBreak", u8"变频器电源断开")) , inverterAlarm(new BoolData("inverterAlarm", u8"变频器报警,请检查电机是否正常")) , whirlwindJarIsFull(new BoolData("whirlwindJarIsFull", u8"旋风罐装满粉,请清理")) , midInValveOpenAlarm(new BoolData("midInValveOpenAlarm", u8"中效进气阀打开异常")) , midOutValveOpenAlarm(new BoolData("midOutValveOpenAlarm", u8"中效出气阀打开异常")) , anemometerException(new BoolData("anemometerException", u8"风速仪异常")) , oxygenSelfTestFail(new BoolData("oxygenSelfTestFail", u8"氧自测试失败")) , innerfilterOpenAlarm(new BoolData("innerfilterOpenAlarm", u8"内过滤打印室废气阀打开异常,请检查阀门与感应器是否正常")) , inverterComException(new BoolData("inverterComException", u8"变频器通讯异常")) //, purifierSevereAbnormalExhaust(new BoolData("purifierSevereAbnormalExhaust", u8"净化器排气严重异常")) , cycleInValveOpenAlarm(new BoolData("cycleInValveOpenAlarm", u8"循环进气阀打开异常,请检查阀门与感应器是否正常")) , cycleOutValueOpenAlarm(new BoolData("cycleOutValueOpenAlarm", u8"循环出气阀打开异常,请检查阀门与感应器是否正常")) , midHighValveOpenAlarm(new BoolData("midHighValveOpenAlarm", u8"中高效阀打开异常,请检查阀门与感应器是否正常")) , innerFilterInValveException(new BoolData("innerFilterInValveException", u8"内过滤循环进气阀门异常,请检查阀门与感应器是否正常")) , midUnionValveException(new BoolData("midUnionValveException", u8"内过滤中效联通阀打开异常,请检查阀门与感应器是否正常")) , innerFilterOutValveException(new BoolData("innerFilterOutValveException", u8"内过滤循环出气阀打开异常,请检查阀门与感应器是否正常")) , midFilterBlockAlarm(new BoolData("midFilterBlockAlarm", u8"中效滤芯堵塞严重,请执行清理工作")) , highFilterBlockAlarm(new BoolData("highFilterBlockAlarm", u8"高效滤芯堵塞严重,请执行清理工作")) , highPressureLackAlarm(new BoolData("highPressureLackAlarm", u8"高压气气压不足,无法启动设备请补充压力")) , protectedPressureLackAlarm(new BoolData("protectedPressureLackAlarm", u8"保护气气压不足,无法启动设备请补充压力")) , midConnectException(new BoolData("midConnectException", u8"中效室连接异常,请检查是否连接完毕")) , carbinDoorOpenException(new BoolData("carbinDoorOpenException", u8"舱门打开异常,请检查关闭好舱门与舱门感应器")) , busOutValveNotOpenAlarm(new BoolData("busOutValveNotOpenAlarm", u8"总排气阀未打开,请检查总排气阀工作状态")) , busOutValveNotCloseAlarm(new BoolData("busOutValveNotCloseAlarm", u8"总排气阀未关闭,请检查总排气阀工作状态")) , busOutValveNotInPosAlarm(new BoolData("busOutValveNotInPosAlarm", u8"总排气阀处于不到位状态,请检查总排气阀工作状态")) , printOutValveNotOpenAlarm(new BoolData("printOutValveNotOpenAlarm", u8"打印室排气阀未打开,请检查打印室排气阀工作状态")) , printOutValveNotCloseAlarm(new BoolData("printOutValveNotCloseAlarm", u8"打印室排气阀未关闭,请检查打印室排气阀工作状态")) , printOutValveNotInPosAlarm(new BoolData("printOutValveNotInPosAlarm", u8"打印室排气阀处于不到位状态,请检查打印室排气阀工作状态")) //, inverterDonotWorkWhenDedust(new BoolData("inverterDonotWorkWhenDedust", u8"循环过程,变频器不运行异常")) //, printOxygenExceptWhenDedust(new BoolData("printOxygenExceptWhenDedust", u8"循环过程,打印室氧含量超限异常")) //, tempExceptWhenDedust(new BoolData("tempExceptWhenDedust", u8"循环过程,中高效超温异常")) //, highPressureExceptWhenDedust(new BoolData("highPressureExceptWhenDedust", u8"循环过程,中高效超温异常")) //, windExceptWhenDedust(new BoolData("windExceptWhenDedust", u8"循环过程,风速异常报警")) , coverWindSpeedOffset(new FloatData("coverWindSpeedOffset", u8"铺粉风速差值")) , isCoverWind(new BoolData("isCoverWind", u8"铺粉骤降风速")) , shieldMonitorPrintPressure(new BoolData("shieldMonitorPrintPressure", u8"屏蔽监测打印压力")) , coverWindSlowFinish(new BoolData("coverWindSlowFinish", u8"")) , coverWindResumeFinish(new BoolData("coverWindResumeFinish", u8"")) , purifierType(new ShortData("purifierType", u8"")) , keepAlive(new ShortData("keepAlive", u8"")) , protectionPressureEnable(new BoolData("protectionPressureEnable", u8"protectionPressureEnable")) , ProtectionPressureTestRelFail(new BoolData("ProtectionPressureTestRelFail", u8"ProtectionPressureTestRelFail")) , oxygenSelfTestRelFail(new BoolData("oxygenSelfTestRelFail", u8"oxygenSelfTestRelFail")) , ProtectionPressuring(new BoolData("ProtectionPressuring", u8"ProtectionPressuring")) , ProtectionPressureSetTime(new ShortData("ProtectionPressureSetTime", u8"保护压力设定时间", 1)) , blowBackSetTimes(new UShortData("blowBackSetTimes", u8"反吹设置时间", 1)) , blowBackBlowTime(new UShortData("blowBackBlowTime", u8"保护压力设定时间", 10)) { //isPurifying = false; //isDedusting = false; //isBoxCleaning = false; //isBlowBack = false; //isFilterDiscarding = false; //isFilterCleaning = false; //isHopperCleaning = false; //midPressureValue = 0; //midPressureDifValue = 0; //midTemperatureValue = 0; //highPressureDifValue = 0; //anemometerActualValue = 0.0f; //printPressureValue = 0; //boxPressureUpLimit = 0; //boxPressureDownLimit = 0; //filterOxygenValue = 0; //printOxygenValue = 0; //midPressureDifAlarmValue = 0; //highPressureDifAlarmValue = 0; //filterTotalUseTime = 0; //bowBackTimes = 0; //usedTimeFromlastBowBack = 0; //boxWashTime = 0; //filterWashTime = 0; //boxWashDelayTime = 0; //dedustingWashDelayTime = 0; //hopperCleanRemind = 0; //hopperTimeLastClean = 0; //printCleanOxygenSetValue = 0; //windSetValue = 0; //maxWindSetValue = 0.0f; //windActualValue = 0; //// printOxygenDownSetValue=0; //printOxygenUpSetValue = 0; //filterCleanOxygenSetValue = 0; ////highTempValue=0; //midTempHighSetValue = 0; //midTempUltraSetValue = 0; ////highTempHighSetValue=0; ////highTempUltraSetValue = 0; //pressureRangeUpLimit = 0; //pressureRangeDownLimit = 0; //oxygenAlarmValue = 0; //useArgon = false; //fanFreq = 0.0f; //coverWindSpeedOffset = 0.0f; //isCoverWind = false; //purifierType = 0; //keepAlive = 0; //cycleInValveOpenAlarm = false; //循环进气阀打开异常,请检查阀门与感应器是否正常 //cycleOutValueOpenAlarm = false; //循环出气阀打开异常,请检查阀门与感应器是否正常 //highPressureLackAlarm = false; //高压气气压不足,无法启动设备请补充压力 //protectedPressureLackAlarm = false; //保护气气压不足,无法启动设备请补充压力 //midFilterBlockAlarm = false; //中效滤芯堵塞严重,请执行清理工作 //midTempOverLimitAlarm = false; //中效高温报警,请注意 //midHighTempOverLimitAlarm = false; //中效超高温报警,已经很危险请停机检查 //hopperUseLongTimeAlarm = false; //料斗使用时间过长,请进行清理 //highPressureLackValveAlarm = false; //高压气气压不足,导致阀门异常关闭,请使用稳定气压 //inverterAlarm = false; //变频器报警,请检查电机是否正常 //protectionTestFail = false; //inverterPowerBreak = false; //shieldMonitorPrintPressure = false; //innerfilterOpenAlarm = false; //inverterComException = false; //midHighValveOpenAlarm = false; //innerFilterInValveException = false; //midUnionValveException = false; //innerFilterOutValveException = false; //highFilterBlockAlarm = false; //whirlwindJarIsFull = false; //midInValveOpenAlarm = false; //midOutValveOpenAlarm = false; //oxygenSelfTestFail = false; //coverWindSlowFinish = false; //coverWindResumeFinish = true; //anemometerException = false; //midConnectException = false; //中效室连接异常,请检查是否连接完毕 //carbinDoorOpenException = false; //舱门打开异常,请检查关闭好舱门与舱门感应器 //busOutValveNotOpenAlarm = false; //总排气阀未打开,请检查总排气阀工作状态 //busOutValveNotCloseAlarm = false; //总排气阀未关闭,请检查总排气阀工作状态 //busOutValveNotInPosAlarm = false; //总排气阀处于不到位状态,请检查总排气阀工作状态 //printOutValveNotOpenAlarm = false; //打印室排气阀未打开,请检查打印室排气阀工作状态 //printOutValveNotCloseAlarm = false; //打印室排气阀未关闭,请检查打印室排气阀工作状态 //printOutValveNotInPosAlarm = false; //打印室排气阀处于不到位状态,请检查打印室排气阀工作状态 ////fanFrequency = 0.0f; //purifierSevereAbnormalExhaust = false; //inverterDonotWorkWhenDedust = false; //循环过程,变频器不运行异常 //printOxygenExceptWhenDedust = false; //循环过程,打印室氧含量超限异常 //tempExceptWhenDedust = false; //循环过程,中高效超温异常 //highPressureExceptWhenDedust = false; //循环过程,中高效超温异常 //windExceptWhenDedust = false; //循环过程,风速异常报警 //protectionPressureEnable = false; //ProtectionPressureTestRelFail = false; //oxygenSelfTestRelFail = false; //ProtectionPressuring = false; //ProtectionPressureSetTime = 1; //blowBackSetTimes = 1; //blowBackBlowTime = 10; } ~PurifierParam() {} virtual bool IsAlarm() { return false; } public: BaseStat baseStat; char m_startFlag; BoolData* isPurifying; //在一键清洗 BoolData* isDedusting; //在除尘 BoolData* isBoxCleaning; //箱体在清洗 BoolData* isBlowBack; //在反吹 BoolData* isFilterDiscarding; //滤芯废处理 BoolData* isFilterCleaning; //过滤器在清洗 BoolData* isHopperCleaning; //料斗在清洗 FloatData* midPressureValue; //中效过滤器压力实值 FloatData* midPressureDifValue; //中效过滤器压差值 FloatData* midTemperatureValue; //中效过滤器温度值 FloatData* highPressureDifValue; //高效过滤器压差值 FloatData* anemometerActualValue; //风速计实际值 FloatData* printPressureValue; //打印室压力 FloatData* boxPressureUpLimit; //箱体压力上限设定 FloatData* boxPressureDownLimit; //箱体压力下限设定 FloatData* filterOxygenValue; //过滤器氧含量 实际值 FloatData* printOxygenValue; //打印室氧含量 FloatData* midPressureDifAlarmValue; //中效过滤器压差报警设 FloatData* highPressureDifAlarmValue; //高效过滤器压差报警设 UShortData* filterTotalUseTime; //滤芯使用总时间 UShortData* usedTimeFromlastBowBack; //上次反吹后已使用时间 UShortData* bowBackTimes; //反吹总次数 UShortData* hopperTimeLastClean; //料斗上次清理后已使用时间 UShortData* boxWashTime; //箱体本次清洗时间 UShortData* filterWashTime; //过滤器清洗时间 UShortData* boxWashDelayTime; // 打印机清洗滞后分钟 UShortData* dedustingWashDelayTime; //除尘系统清洗滞后分钟 UShortData* hopperCleanRemind; //清理料斗提醒设定 FloatData* printCleanOxygenSetValue; //打印室氧清洗氧含量设 FloatData* windSetValue; //风速设定 FloatData* windActualValue; //风速实际值 FloatData* maxWindSetValue; //风速最大值 BoolData* useArgon; //使用氩气 FloatData* printOxygenUpSetValue; //打印氧上限设定 FloatData* oxygenAlarmValue; //打印氧超上限设定 FloatData* filterCleanOxygenSetValue; //过滤器清洗氧含量设定 FloatData* midTempHighSetValue; //中效高温报警设定 FloatData* midTempUltraSetValue; //中效超高温报警设定 FloatData* pressureRangeUpLimit; //压力量程上限设定 FloatData* pressureRangeDownLimit; //压力量程下限设定 FloatData* fanFreq; //风机频率 BoolData* midTempOverLimitAlarm; //中效高温报警,请注意 BoolData* midHighTempOverLimitAlarm; //中效超高温报警,已经很危险请停机检查 BoolData* hopperUseLongTimeAlarm; //料斗使用时间过长,请进行清理 BoolData* highPressureLackValveAlarm; //高压气气压不足,导致阀门异常关闭,请使用稳定气压 BoolData* protectionTestFail; //保压测试失败 BoolData* inverterPowerBreak; //变频器电源断开 BoolData* inverterAlarm; //变频器报警,请检查电机是否正常 BoolData* whirlwindJarIsFull; //旋风罐装满粉,请清理 BoolData* midInValveOpenAlarm; //中效进气阀打开异常 BoolData* midOutValveOpenAlarm; //中效出气阀打开异常 BoolData* anemometerException; //风速仪异常 BoolData* oxygenSelfTestFail; //氧自测试失败 BoolData* innerfilterOpenAlarm; //内过滤打印室废气阀打开异常,请检查阀门与感应器是否正常 BoolData* inverterComException; //变频器通讯异常 //BoolData* purifierSevereAbnormalExhaust; //净化器排气严重异常 BoolData* cycleInValveOpenAlarm; //循环进气阀打开异常,请检查阀门与感应器是否正常 BoolData* cycleOutValueOpenAlarm; //循环出气阀打开异常,请检查阀门与感应器是否正常 BoolData* midHighValveOpenAlarm; //中高效阀打开异常,请检查阀门与感应器是否正常 BoolData* innerFilterInValveException; //内过滤循环进气阀门异常,请检查阀门与感应器是否正常 BoolData* midUnionValveException; //内过滤中效联通阀打开异常,请检查阀门与感应器是否正常 BoolData* innerFilterOutValveException; //内过滤循环出气阀打开异常,请检查阀门与感应器是否正常 BoolData* midFilterBlockAlarm; //中效滤芯堵塞严重,请执行清理工作 BoolData* highFilterBlockAlarm; //高效滤芯堵塞严重,请执行清理工作 BoolData* highPressureLackAlarm; //高压气气压不足,无法启动设备请补充压力 BoolData* protectedPressureLackAlarm; //保护气气压不足,无法启动设备请补充压力 BoolData* midConnectException; //中效室连接异常,请检查是否连接完毕 BoolData* carbinDoorOpenException; //舱门打开异常,请检查关闭好舱门与舱门感应器 BoolData* busOutValveNotOpenAlarm; //总排气阀未打开,请检查总排气阀工作状态 BoolData* busOutValveNotCloseAlarm; //总排气阀未关闭,请检查总排气阀工作状态 BoolData* busOutValveNotInPosAlarm; //总排气阀处于不到位状态,请检查总排气阀工作状态 BoolData* printOutValveNotOpenAlarm; //打印室排气阀未打开,请检查打印室排气阀工作状态 BoolData* printOutValveNotCloseAlarm; //打印室排气阀未关闭,请检查打印室排气阀工作状态 BoolData* printOutValveNotInPosAlarm; //打印室排气阀处于不到位状态,请检查打印室排气阀工作状态 //BoolData* inverterDonotWorkWhenDedust; //循环过程,变频器不运行异常 //BoolData* printOxygenExceptWhenDedust; //循环过程,打印室氧含量超限异常 //BoolData* tempExceptWhenDedust; //循环过程,中高效超温异常 //BoolData* highPressureExceptWhenDedust; //循环过程,中高效超温异常 //BoolData* windExceptWhenDedust; //循环过程,风速异常报警 FloatData* coverWindSpeedOffset; //铺粉风速差值 BoolData* isCoverWind; //铺粉骤降风速 BoolData* shieldMonitorPrintPressure; //屏蔽监测打印压力 BoolData* coverWindSlowFinish; BoolData* coverWindResumeFinish; ShortData* purifierType; ShortData* keepAlive; BoolData* protectionPressureEnable; BoolData* ProtectionPressureTestRelFail; BoolData* oxygenSelfTestRelFail; BoolData* ProtectionPressuring; ShortData* ProtectionPressureSetTime; UShortData* blowBackSetTimes; UShortData* blowBackBlowTime; char m_endFlag; }; #pragma pack() class PurifierClient :public S7Client { //typedef std::function SetParamFun; //m_funMap["SetDedust"] = std::bind(&PurifierClient::SetDedustFun,this, std::placeholders::_1, std::placeholders::_2); //unordered_map m_funMap; public: PurifierClient(CommunicationCfg* pconfig); ~PurifierClient(); void GetStat(Purifierstat_XT& stat); void SetParamByKey(const ReadData& rd); void SetDedust(bool bvalue); //除尘启动或停止 void SetBlowBack(bool bvalue); //反吹启动或停止 void SetFilterDiscard(bool bvalue); //滤芯废处理 void SetFilterClean(bool bvalue); //滤芯清洗 void SetHopperClean(bool bvalue); //料斗清洗启动或停止 void SetPurify(bool bvalue); //一键清洗(除氧) void SetBoxClean(bool bvalue); void ResetFilterTime(); void ClearHopperAlarm(); //void SetDedustFun(const string& val, DATATYPE type) { // if (iBOOL == type) SetDedust(atoi(val.c_str())); //} //void SetBlowBackFun(const string& val, DATATYPE type) { // if (iBOOL == type) SetBlowBack(atoi(val.c_str())); //} //void SetFilterDiscardFun(const string& val, DATATYPE type) { // if (iBOOL == type) SetFilterDiscard(atoi(val.c_str())); //} //void SetFilterCleanFun(const string& val, DATATYPE type) { // if (iBOOL == type) SetFilterClean(atoi(val.c_str())); //} //void SetHopperCleanFun(const string& val, DATATYPE type) { // if (iBOOL == type) SetHopperClean(atoi(val.c_str())); //} //void SetPurifyFun(const string& val, DATATYPE type) { // if (iBOOL == type) SetPurify(atoi(val.c_str())); //} //void SetBoxCleanFun(const string& val, DATATYPE type) { // if (iBOOL == type) SetBoxClean(atoi(val.c_str())); //} void SetBoxPressureUpLimit(float fvalue); //箱体压力上限设定 void SetBoxPressureDownLimit(float fvalue); //箱体压力下限设定 void SetMidPressureDifAlarmValue(float fvalue); //中效过滤器压差报警设 void SetHighPressureDifAlarmValue(float fvalue); //高效过滤器压差报警设 void SetPrintCleanOxygenSetValue(float fvalue); //打印室氧清洗氧含量设 //void SetBoxPressureUpLimitFun(const string& val, DATATYPE type) { // if (iFLOAT == type) SetBoxPressureUpLimit(atof(val.c_str())); //} //void SetBoxPressureDownLimitFun(const string& val, DATATYPE type) { // if (iFLOAT == type) SetBoxPressureDownLimit(atof(val.c_str())); //} //void SetMidPressureDifAlarmValueFun(const string& val, DATATYPE type) { // if (iFLOAT == type) SetMidPressureDifAlarmValue(atof(val.c_str())); //} //void SetHighPressureDifAlarmValueFun(const string& val, DATATYPE type) { // if (iFLOAT == type) SetHighPressureDifAlarmValue(atof(val.c_str())); //} //void SetPrintCleanOxygenSetValueFun(const string& val, DATATYPE type) { // if (iFLOAT == type) SetPrintCleanOxygenSetValue(atof(val.c_str())); //} void SetWindValue(float fvalue); //风速设定 void SetMaxWindValue(float fvalue); //最大风速设定 void SetPrintOxygenDownSetValue(float fvalue); //打印氧下限设定 void SetPrintOxygenUpSetValue(float fvalue); //打印氧上限设定 void SetfilterCleanOxygenSetValue(float fvalue); //过滤器清洗氧含量设定 void SetMidTempHighSetValue(float fvalue); //中效高温报警设定 void SetMidTempUltraSetValue(float fvalue); //中效超高温报警设定 void SetHighTempHighSetValue(float fvalue); //高效高温报警设定 //void SetWindValueFun(const string& val, DATATYPE type) { // if (iFLOAT == type) SetWindValue(atof(val.c_str())); //} //void SetMaxWindValueFun(const string& val, DATATYPE type) { // if (iFLOAT == type) SetMaxWindValue(atof(val.c_str())); //} //void SetPrintOxygenDownSetValueFun(const string& val, DATATYPE type) { // if (iFLOAT == type) SetPrintOxygenDownSetValue(atof(val.c_str())); //} //void SetPrintOxygenUpSetValueFun(const string& val, DATATYPE type) { // if (iFLOAT == type) SetPrintOxygenUpSetValue(atof(val.c_str())); //} //void SetfilterCleanOxygenSetValueFun(const string& val, DATATYPE type) { // if (iFLOAT == type) SetfilterCleanOxygenSetValue(atof(val.c_str())); //} //void SetMidTempHighSetValueFun(const string& val, DATATYPE type) { // if (iFLOAT == type) SetMidTempHighSetValue(atof(val.c_str())); //} //void SetMidTempUltraSetValueFun(const string& val, DATATYPE type) { // if (iFLOAT == type) SetMidTempUltraSetValue(atof(val.c_str())); //} //void SetHighTempHighSetValueFun(const string& val, DATATYPE type) { // if (iFLOAT == type) SetHighTempHighSetValue(atof(val.c_str())); //} // void SetHighTempUltraSetValue(float fvalue); //高效超高温报警设定 void SetHopperCleanRemind(unsigned short value); //清理料斗提醒设定 void SetBoxWashDelayTime(unsigned short value); void SetDedustingWashDelayTime(unsigned short value); void SetPressureRangeUpLimit(float value); //压力量程上限设定 void SetPressureRangeDownLimit(float value); //压力量程下限设定 void SetOxygenAlarmValue(float value); //打印氧超上限设定 void SetUseArgon(bool buse); void SetBlowBackBlowTime(unsigned short value); void SetBlowBackSetTimes(unsigned short value); void SetProtectionPressureSetTime(unsigned short value); void SetUnLock(); virtual void SetCoverWind(bool bvalue); virtual void SetCoverWindOffset(float offset); virtual void SetWindSlowFinishSignal(bool bvalue); virtual void SetWindResumeFinishSignal(bool bvalue); virtual void SetShieldMonitorPrintPressure(bool bvalue); virtual void SetProtectionPressure(bool bvalue) {} //virtual void ResetWindSlowFinishSignal(); //virtual void ResetWindResumeFinishSignal(); //void SetAirRenewalCtrl(bool bctrl); protected: void InitCommand(); //static DWORD WINAPI ThreadProc(PurifierClient* pclient); static void ProcReadInfoXT(void *pobject,Command* pcommand); static void ProcReadInfoXT2(void *pobject, Command* pcommand); static void ProcWriteValueXT(void *pobject, Command* pcommand); void SetMKBit(int dindex,unsigned int waittime=0); void SetDBFloat(int dindex,float fvalue); void SetBit(int dindex, bool v); static void ProcSetOxygenValue(void *pobject, Command* pcommand); protected: unsigned char* m_OxygenWriteValue; unsigned char* m_PressureWriteValue; //Purifierstat_XT m_Stat; PurifierParam m_Stat; RunCfg* m_RunCfg; ExtCfg* m_ExtCfg; AlarmCfgWrapper* m_AlarmCfgWrapper; private: static const unsigned int READ_ITEM_COUNT = 2; static const unsigned int READ_ITEM_COUNT2 = 6; };