净化器参数修改等
This commit is contained in:
parent
38c80446cb
commit
29769e5268
@ -83,7 +83,7 @@ protected:
|
|||||||
BaseStat m_BaseStat;
|
BaseStat m_BaseStat;
|
||||||
|
|
||||||
unordered_map<std::string, BaseData*> m_baseMp; //大部分使用这个
|
unordered_map<std::string, BaseData*> m_baseMp; //大部分使用这个
|
||||||
unordered_map<std::string, AlarmCfg*> m_alarmCfgMp; //
|
unordered_map<std::string, AlarmCfg*> m_alarmCfgMp;
|
||||||
};
|
};
|
||||||
|
|
||||||
class S7Client :public BaseClient
|
class S7Client :public BaseClient
|
||||||
|
@ -14,12 +14,6 @@ public:
|
|||||||
virtual void SetValue(bool b) {}
|
virtual void SetValue(bool b) {}
|
||||||
virtual void SetValue(const string& str) {}
|
virtual void SetValue(const string& str) {}
|
||||||
|
|
||||||
//virtual void GetValue(DATATYPE& dataType, float& f) {}
|
|
||||||
//virtual void GetValue(DATATYPE& dataType, int& i) {}
|
|
||||||
//virtual void GetValue(DATATYPE& dataType, unsigned short& us) {}
|
|
||||||
//virtual void GetValue(DATATYPE& dataType, short& s) {}
|
|
||||||
//virtual void GetValue(DATATYPE& dataType, bool& b) {}
|
|
||||||
|
|
||||||
std::string GetCode() { return m_code; }
|
std::string GetCode() { return m_code; }
|
||||||
virtual std::string GetValueStr() { return ""; }
|
virtual std::string GetValueStr() { return ""; }
|
||||||
virtual DATATYPE GetDataType() { return UNKNOW; }
|
virtual DATATYPE GetDataType() { return UNKNOW; }
|
||||||
@ -31,19 +25,12 @@ private:
|
|||||||
|
|
||||||
class FloatData : public BaseData {
|
class FloatData : public BaseData {
|
||||||
public:
|
public:
|
||||||
FloatData(const std::string& code, const std::string& context/*, float val*/)
|
FloatData(const std::string& code, const std::string& context, float val = 0.0f)
|
||||||
: BaseData(code, context), m_value(0.0f) {
|
: BaseData(code, context), m_value(val) {
|
||||||
//if (m_baseMp.find(code) != m_baseMp.end()) {
|
|
||||||
// printf("%s is repeated...", code.c_str());
|
|
||||||
//}
|
|
||||||
//else {
|
|
||||||
// m_baseMp.insert(make_pair(code, this));
|
|
||||||
//}
|
|
||||||
}
|
}
|
||||||
~FloatData() {}
|
~FloatData() {}
|
||||||
|
|
||||||
void SetValue(float f) { m_value = f; }
|
void SetValue(float f) { m_value = f; }
|
||||||
//void GetValue(DATATYPE& dataType, float& f) { dataType = iFLOAT; f = m_value; }
|
|
||||||
DATATYPE GetDataType() { return iFLOAT; }
|
DATATYPE GetDataType() { return iFLOAT; }
|
||||||
float GetValue() { return m_value; }
|
float GetValue() { return m_value; }
|
||||||
virtual std::string GetValueStr() { return to_string(m_value); }
|
virtual std::string GetValueStr() { return to_string(m_value); }
|
||||||
@ -54,8 +41,8 @@ private:
|
|||||||
|
|
||||||
class IntData : public BaseData {
|
class IntData : public BaseData {
|
||||||
public:
|
public:
|
||||||
IntData(const std::string& code, const std::string& context/*, int val*/)
|
IntData(const std::string& code, const std::string& context, int val = 0)
|
||||||
: BaseData(code, context), m_value(0) {
|
: BaseData(code, context), m_value(val) {
|
||||||
//if (m_baseMp.find(code) != m_baseMp.end()) {
|
//if (m_baseMp.find(code) != m_baseMp.end()) {
|
||||||
// printf("%s is repeated...", code.c_str());
|
// printf("%s is repeated...", code.c_str());
|
||||||
//}
|
//}
|
||||||
@ -77,8 +64,8 @@ private:
|
|||||||
|
|
||||||
class ShortData : public BaseData {
|
class ShortData : public BaseData {
|
||||||
public:
|
public:
|
||||||
ShortData(const std::string& code, const std::string& context/*, short val*/)
|
ShortData(const std::string& code, const std::string& context, short val = 0)
|
||||||
: BaseData(code, context), m_value(0) {
|
: BaseData(code, context), m_value(val) {
|
||||||
//if (m_baseMp.find(code) != m_baseMp.end()) {
|
//if (m_baseMp.find(code) != m_baseMp.end()) {
|
||||||
// printf("%s is repeated...", code.c_str());
|
// printf("%s is repeated...", code.c_str());
|
||||||
//}
|
//}
|
||||||
@ -99,8 +86,8 @@ private:
|
|||||||
|
|
||||||
class UShortData : public BaseData {
|
class UShortData : public BaseData {
|
||||||
public:
|
public:
|
||||||
UShortData(const std::string& code, const std::string& context/*, unsigned short val*/)
|
UShortData(const std::string& code, const std::string& context, unsigned short val = 0)
|
||||||
: BaseData(code, context), m_value(0) {
|
: BaseData(code, context), m_value(val) {
|
||||||
//if (m_baseMp.find(code) != m_baseMp.end()) {
|
//if (m_baseMp.find(code) != m_baseMp.end()) {
|
||||||
// printf("%s is repeated...", code.c_str());
|
// printf("%s is repeated...", code.c_str());
|
||||||
//}
|
//}
|
||||||
@ -122,8 +109,8 @@ private:
|
|||||||
|
|
||||||
class BoolData : public BaseData {
|
class BoolData : public BaseData {
|
||||||
public:
|
public:
|
||||||
BoolData(const std::string& code, const std::string& context/*, bool val*/)
|
BoolData(const std::string& code, const std::string& context, bool val = false)
|
||||||
: BaseData(code, context), m_value(0) {
|
: BaseData(code, context), m_value(val) {
|
||||||
//if (m_baseMp.find(code) != m_baseMp.end()) {
|
//if (m_baseMp.find(code) != m_baseMp.end()) {
|
||||||
// printf("%s is repeated...", code.c_str());
|
// printf("%s is repeated...", code.c_str());
|
||||||
//}
|
//}
|
||||||
@ -145,8 +132,8 @@ private:
|
|||||||
|
|
||||||
class UcharData : public BaseData {
|
class UcharData : public BaseData {
|
||||||
public:
|
public:
|
||||||
UcharData(const std::string& code, const std::string& context/*, bool val*/)
|
UcharData(const std::string& code, const std::string& context, UCHAR val = 0)
|
||||||
: BaseData(code, context), m_value(0) {
|
: BaseData(code, context), m_value(val) {
|
||||||
//if (m_baseMp.find(code) != m_baseMp.end()) {
|
//if (m_baseMp.find(code) != m_baseMp.end()) {
|
||||||
// printf("%s is repeated...", code.c_str());
|
// printf("%s is repeated...", code.c_str());
|
||||||
//}
|
//}
|
||||||
@ -167,8 +154,8 @@ private:
|
|||||||
|
|
||||||
class StrData : public BaseData {
|
class StrData : public BaseData {
|
||||||
public:
|
public:
|
||||||
StrData(const std::string& code, const std::string& context)
|
StrData(const std::string& code, const std::string& context,const string& val = "")
|
||||||
: BaseData(code, context), m_value("") {
|
: BaseData(code, context), m_value(val) {
|
||||||
}
|
}
|
||||||
~StrData() {}
|
~StrData() {}
|
||||||
|
|
||||||
|
@ -198,67 +198,67 @@ void G4PurifierClient::G4ProcReadInfoXT(void* pobject, Command* pcommand)
|
|||||||
unsigned char* arr = (unsigned char*)pCtrl.pdata;
|
unsigned char* arr = (unsigned char*)pCtrl.pdata;
|
||||||
|
|
||||||
bitset<8> M0(arr[0]);
|
bitset<8> M0(arr[0]);
|
||||||
ppw->m_Stat.isDedusting = M0[2];
|
ppw->m_Stat.isDedusting->SetValue(M0[2]);
|
||||||
ppw->m_Stat.isBoxCleaning = M0[6];
|
ppw->m_Stat.isBoxCleaning->SetValue(M0[6]);
|
||||||
|
|
||||||
bitset<8> M1(arr[1]);
|
bitset<8> M1(arr[1]);
|
||||||
ppw->m_Stat.isBlowBack = M1[1];
|
ppw->m_Stat.isBlowBack->SetValue(M1[1]);
|
||||||
ppw->m_Stat.isFilterDiscarding = M1[4];
|
ppw->m_Stat.isFilterDiscarding->SetValue(M1[4]);
|
||||||
ppw->m_Stat.isFilterCleaning = M1[7];
|
ppw->m_Stat.isFilterCleaning->SetValue(M1[7]);
|
||||||
|
|
||||||
bitset<8> M2(arr[2]);
|
bitset<8> M2(arr[2]);
|
||||||
ppw->m_Stat.isHopperCleaning = M2[5];
|
ppw->m_Stat.isHopperCleaning->SetValue(M2[5]);
|
||||||
|
|
||||||
bitset<8> M5(arr[5]);
|
bitset<8> M5(arr[5]);
|
||||||
ppw->m_Stat.isPurifying = M5[0];
|
ppw->m_Stat.isPurifying->SetValue(M5[0]);
|
||||||
}
|
}
|
||||||
if (pPresure.Result == 0) {
|
if (pPresure.Result == 0) {
|
||||||
unsigned char* pchar = (unsigned char*)pPresure.pdata;
|
unsigned char* pchar = (unsigned char*)pPresure.pdata;
|
||||||
ppw->m_Stat.midPressureValue = FLOATDATA(false, &pchar[0]).fValue;
|
ppw->m_Stat.midPressureValue->SetValue(FLOATDATA(false, &pchar[0]).fValue);
|
||||||
ppw->m_Stat.midPressureDifValue = FLOATDATA(false, &pchar[4]).fValue;
|
ppw->m_Stat.midPressureDifValue->SetValue(FLOATDATA(false, &pchar[4]).fValue);
|
||||||
ppw->m_Stat.midTemperatureValue = FLOATDATA(false, &pchar[8]).fValue;
|
ppw->m_Stat.midTemperatureValue->SetValue(FLOATDATA(false, &pchar[8]).fValue);
|
||||||
ppw->m_Stat.highPressureDifValue = FLOATDATA(false, &pchar[12]).fValue;
|
ppw->m_Stat.highPressureDifValue->SetValue(FLOATDATA(false, &pchar[12]).fValue);
|
||||||
//ppw->m_Stat.anemometerActualValue = FLOATDATA(false, &pchar[16]).fValue;
|
//ppw->m_Stat.anemometerActualValue ->SetValue( FLOATDATA(false, &pchar[16]).fValue;
|
||||||
ppw->m_Stat.printPressureValue = FLOATDATA(false, &pchar[20]).fValue;
|
ppw->m_Stat.printPressureValue->SetValue(FLOATDATA(false, &pchar[20]).fValue);
|
||||||
ppw->m_Stat.boxPressureUpLimit = FLOATDATA(false, &pchar[28]).fValue;
|
ppw->m_Stat.boxPressureUpLimit->SetValue(FLOATDATA(false, &pchar[28]).fValue);
|
||||||
ppw->m_Stat.boxPressureDownLimit = FLOATDATA(false, &pchar[32]).fValue;
|
ppw->m_Stat.boxPressureDownLimit->SetValue(FLOATDATA(false, &pchar[32]).fValue);
|
||||||
ppw->m_Stat.filterOxygenValue = FLOATDATA(false, &pchar[48]).fValue;
|
ppw->m_Stat.filterOxygenValue->SetValue(FLOATDATA(false, &pchar[48]).fValue);
|
||||||
ppw->m_Stat.printOxygenValue = FLOATDATA(false, &pchar[60]).fValue;
|
ppw->m_Stat.printOxygenValue->SetValue(FLOATDATA(false, &pchar[60]).fValue);
|
||||||
ppw->m_Stat.midPressureDifAlarmValue = FLOATDATA(false, &pchar[64]).fValue;
|
ppw->m_Stat.midPressureDifAlarmValue->SetValue(FLOATDATA(false, &pchar[64]).fValue);
|
||||||
ppw->m_Stat.highPressureDifAlarmValue = FLOATDATA(false, &pchar[68]).fValue;
|
ppw->m_Stat.highPressureDifAlarmValue->SetValue(FLOATDATA(false, &pchar[68]).fValue);
|
||||||
ppw->m_Stat.printOxygenUpSetValue = FLOATDATA(false, &pchar[76]).fValue;
|
ppw->m_Stat.printOxygenUpSetValue->SetValue(FLOATDATA(false, &pchar[76]).fValue);
|
||||||
ppw->m_RunCfg->m_WarnOxygen = ppw->m_Stat.printOxygenUpSetValue;
|
ppw->m_RunCfg->m_WarnOxygen = ppw->m_Stat.printOxygenUpSetValue->GetValue();
|
||||||
|
|
||||||
ppw->m_Stat.boxWashTime = ((pchar[110] & 0xff) << 8) + (pchar[111] & 0xff);
|
ppw->m_Stat.boxWashTime->SetValue(((pchar[110] & 0xff) << 8) + (pchar[111] & 0xff));
|
||||||
ppw->m_Stat.filterWashTime = ((pchar[112] & 0xff) << 8) + (pchar[113] & 0xff);
|
ppw->m_Stat.filterWashTime->SetValue(((pchar[112] & 0xff) << 8) + (pchar[113] & 0xff));
|
||||||
ppw->m_Stat.boxWashDelayTime = ((pchar[114] & 0xff) << 8) + (pchar[115] & 0xff);
|
ppw->m_Stat.boxWashDelayTime->SetValue(((pchar[114] & 0xff) << 8) + (pchar[115] & 0xff));
|
||||||
ppw->m_Stat.dedustingWashDelayTime = ((pchar[116] & 0xff) << 8) + (pchar[117] & 0xff);
|
ppw->m_Stat.dedustingWashDelayTime->SetValue(((pchar[116] & 0xff) << 8) + (pchar[117] & 0xff));
|
||||||
ppw->m_Stat.hopperCleanRemind = ((pchar[118] & 0xff) << 8) + (pchar[119] & 0xff);
|
ppw->m_Stat.hopperCleanRemind->SetValue(((pchar[118] & 0xff) << 8) + (pchar[119] & 0xff));
|
||||||
|
|
||||||
ppw->m_Stat.printCleanOxygenSetValue = FLOATDATA(false, &pchar[142]).fValue;
|
ppw->m_Stat.printCleanOxygenSetValue->SetValue(FLOATDATA(false, &pchar[142]).fValue);
|
||||||
ppw->m_Stat.windSetValue = FLOATDATA(false, &pchar[146]).fValue;
|
ppw->m_Stat.windSetValue->SetValue(FLOATDATA(false, &pchar[146]).fValue);
|
||||||
ppw->m_Stat.windActualValue = FLOATDATA(false, &pchar[150]).fValue;
|
ppw->m_Stat.windActualValue->SetValue(FLOATDATA(false, &pchar[150]).fValue);
|
||||||
ppw->m_Stat.filterCleanOxygenSetValue = FLOATDATA(false, &pchar[158]).fValue;
|
ppw->m_Stat.filterCleanOxygenSetValue->SetValue(FLOATDATA(false, &pchar[158]).fValue);
|
||||||
ppw->m_Stat.midTempHighSetValue = FLOATDATA(false, &pchar[166]).fValue;
|
ppw->m_Stat.midTempHighSetValue->SetValue(FLOATDATA(false, &pchar[166]).fValue);
|
||||||
ppw->m_Stat.midTempUltraSetValue = FLOATDATA(false, &pchar[170]).fValue;
|
ppw->m_Stat.midTempUltraSetValue->SetValue(FLOATDATA(false, &pchar[170]).fValue);
|
||||||
ppw->m_Stat.oxygenAlarmValue = FLOATDATA(false, &pchar[190]).fValue;
|
ppw->m_Stat.oxygenAlarmValue->SetValue(FLOATDATA(false, &pchar[190]).fValue);
|
||||||
ppw->m_RunCfg->SetOxygenAlarmValue(ppw->m_Stat.oxygenAlarmValue);
|
ppw->m_RunCfg->SetOxygenAlarmValue(ppw->m_Stat.oxygenAlarmValue->GetValue());
|
||||||
ppw->m_RunCfg->SetOxygenTargeValue(ppw->m_Stat.printCleanOxygenSetValue);
|
ppw->m_RunCfg->SetOxygenTargeValue(ppw->m_Stat.printCleanOxygenSetValue->GetValue());
|
||||||
|
|
||||||
FanFit* al = ppw->m_ExtCfg->m_FanWindFit[ppw->m_ExtCfg->m_SelectedFanWindFit];
|
FanFit* al = ppw->m_ExtCfg->m_FanWindFit[ppw->m_ExtCfg->m_SelectedFanWindFit];
|
||||||
if (al->alarmWind > ppw->m_Stat.windSetValue) {
|
if (al->alarmWind > ppw->m_Stat.windSetValue->GetValue()) {
|
||||||
al->alarmWind = (ppw->m_Stat.windSetValue > 50.0f) ? (ppw->m_Stat.windSetValue - 50.0f) : 1.0f;
|
al->alarmWind = (ppw->m_Stat.windSetValue->GetValue() > 50.0f) ? (ppw->m_Stat.windSetValue->GetValue() - 50.0f) : 1.0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
ppw->m_Stat.filterTotalUseTime = ((pchar[194] & 0xff) << 8) + (pchar[195] & 0xff);
|
ppw->m_Stat.filterTotalUseTime->SetValue(((pchar[194] & 0xff) << 8) + (pchar[195] & 0xff));
|
||||||
ppw->m_Stat.usedTimeFromlastBowBack = ((pchar[196] & 0xff) << 8) + (pchar[197] & 0xff);
|
ppw->m_Stat.usedTimeFromlastBowBack->SetValue(((pchar[196] & 0xff) << 8) + (pchar[197] & 0xff));
|
||||||
ppw->m_Stat.bowBackTimes = ((pchar[198] & 0xff) << 8) + (pchar[199] & 0xff);
|
ppw->m_Stat.bowBackTimes->SetValue(((pchar[198] & 0xff) << 8) + (pchar[199] & 0xff));
|
||||||
ppw->m_Stat.hopperTimeLastClean = ((pchar[204] & 0xff) << 8) + (pchar[205] & 0xff);
|
ppw->m_Stat.hopperTimeLastClean->SetValue(((pchar[204] & 0xff) << 8) + (pchar[205] & 0xff));
|
||||||
|
|
||||||
if (ppw->m_AlarmCfgWrapper->m_PurifierOxygenAlarm) {
|
if (ppw->m_AlarmCfgWrapper->m_PurifierOxygenAlarm) {
|
||||||
if (ppw->m_Stat.filterOxygenValue > ppw->m_RunCfg->m_FilterOxygenAlarmValue) {
|
if (ppw->m_Stat.filterOxygenValue->GetValue()> ppw->m_RunCfg->m_FilterOxygenAlarmValue) {
|
||||||
if (ppw->m_AlarmCfgWrapper->m_PurifierOxygenAlarm->m_AlarmContinueTick > ppw->m_AlarmCfgWrapper->m_PurifierOxygenAlarm->m_CheckAlarmSetTick) {
|
if (ppw->m_AlarmCfgWrapper->m_PurifierOxygenAlarm->m_AlarmContinueTick > ppw->m_AlarmCfgWrapper->m_PurifierOxygenAlarm->m_CheckAlarmSetTick) {
|
||||||
ppw->m_AlarmCfgWrapper->m_PurifierOxygenAlarm->m_AlarmInfo = to_string(ppw->m_Stat.filterOxygenValue);
|
ppw->m_AlarmCfgWrapper->m_PurifierOxygenAlarm->m_AlarmInfo = to_string(ppw->m_Stat.filterOxygenValue->GetValue());
|
||||||
SignalService::GetInstance().SetAlarm(ppw->m_AlarmCfgWrapper->m_PurifierOxygenAlarm, true);
|
SignalService::GetInstance().SetAlarm(ppw->m_AlarmCfgWrapper->m_PurifierOxygenAlarm, true);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -273,8 +273,8 @@ void G4PurifierClient::G4ProcReadInfoXT(void* pobject, Command* pcommand)
|
|||||||
}
|
}
|
||||||
if (ppCtrl.Result == 0) {
|
if (ppCtrl.Result == 0) {
|
||||||
unsigned char* arr = (unsigned char*)ppCtrl.pdata;
|
unsigned char* arr = (unsigned char*)ppCtrl.pdata;
|
||||||
ppw->m_Stat.ProtectionPressuring = ((arr[0] & 0x10) > 0 ? true : false);
|
ppw->m_Stat.ProtectionPressuring->SetValue((arr[0] & 0x10) > 0 ? true : false);
|
||||||
ppw->m_Stat.protectionPressureEnable = ((arr[0] & 0x40) > 0 ? true : false);
|
ppw->m_Stat.protectionPressureEnable->SetValue((arr[0] & 0x40) > 0 ? true : false);
|
||||||
}
|
}
|
||||||
|
|
||||||
LeaveCriticalSection(&ppw->m_ValueCS);
|
LeaveCriticalSection(&ppw->m_ValueCS);
|
||||||
@ -307,115 +307,115 @@ void G4PurifierClient::G4ProcReadInfoXT_2(void* pobject, Command* pcommand)
|
|||||||
unsigned char pdata3 = arr[2];
|
unsigned char pdata3 = arr[2];
|
||||||
|
|
||||||
bitset<8> V389(arr[0]);
|
bitset<8> V389(arr[0]);
|
||||||
ppw->m_Stat.midTempOverLimitAlarm = V389[0]; //中效高温报警,请注意
|
ppw->m_Stat.midTempOverLimitAlarm->SetValue(V389[0]); //中效高温报警,请注意
|
||||||
ppw->m_Stat.midHighTempOverLimitAlarm = V389[1]; //中效超高温报警,已经很危险请停机检查
|
ppw->m_Stat.midHighTempOverLimitAlarm->SetValue(V389[1]); //中效超高温报警,已经很危险请停机检查
|
||||||
ppw->m_Stat.hopperUseLongTimeAlarm = V389[2]; //料斗使用时间过长,请进行清理
|
ppw->m_Stat.hopperUseLongTimeAlarm->SetValue(V389[2]); //料斗使用时间过长,请进行清理
|
||||||
ppw->m_Stat.highPressureLackValveAlarm = V389[3]; //高压气气压不足,导致阀门异常关闭,请使用稳定气压
|
ppw->m_Stat.highPressureLackValveAlarm->SetValue(V389[3]); //高压气气压不足,导致阀门异常关闭,请使用稳定气压
|
||||||
ppw->m_Stat.protectionTestFail = V389[4];
|
ppw->m_Stat.protectionTestFail->SetValue(V389[4]);
|
||||||
ppw->m_Stat.inverterAlarm = V389[5]; //变频器报警,请检查电机是否正常
|
ppw->m_Stat.inverterAlarm->SetValue(V389[5]); //变频器报警,请检查电机是否正常
|
||||||
ppw->m_Stat.whirlwindJarIsFull = V389[6];
|
ppw->m_Stat.whirlwindJarIsFull->SetValue(V389[6]);
|
||||||
ppw->m_Stat.midInValveOpenAlarm = V389[7];
|
ppw->m_Stat.midInValveOpenAlarm->SetValue(V389[7]);
|
||||||
|
|
||||||
bitset<8> V390(arr[1]);
|
bitset<8> V390(arr[1]);
|
||||||
ppw->m_Stat.cycleInValveOpenAlarm = V390[0]; //循环进气阀打开异常,请检查阀门与感应器是否正常
|
ppw->m_Stat.cycleInValveOpenAlarm->SetValue(V390[0]); //循环进气阀打开异常,请检查阀门与感应器是否正常
|
||||||
ppw->m_Stat.cycleOutValueOpenAlarm = V390[1]; //循环出气阀打开异常,请检查阀门与感应器是否正常
|
ppw->m_Stat.cycleOutValueOpenAlarm->SetValue(V390[1]); //循环出气阀打开异常,请检查阀门与感应器是否正常
|
||||||
ppw->m_Stat.highPressureLackAlarm = V390[2]; //高压气气压不足,无法启动设备请补充压力
|
ppw->m_Stat.highPressureLackAlarm->SetValue(V390[2]); //高压气气压不足,无法启动设备请补充压力
|
||||||
ppw->m_Stat.protectedPressureLackAlarm = V390[3]; //保护气气压不足,无法启动设备请补充压力
|
ppw->m_Stat.protectedPressureLackAlarm->SetValue(V390[3]); //保护气气压不足,无法启动设备请补充压力
|
||||||
ppw->m_Stat.midConnectException = V390[4]; //中效室连接异常,请检查是否连接完毕
|
ppw->m_Stat.midConnectException->SetValue(V390[4]); //中效室连接异常,请检查是否连接完毕
|
||||||
ppw->m_Stat.carbinDoorOpenException = V390[5]; //舱门打开异常,请检查关闭好舱门与舱门感应器
|
ppw->m_Stat.carbinDoorOpenException->SetValue(V390[5]); //舱门打开异常,请检查关闭好舱门与舱门感应器
|
||||||
ppw->m_Stat.midFilterBlockAlarm = V390[6]; //中效滤芯堵塞严重,请执行清理工作
|
ppw->m_Stat.midFilterBlockAlarm->SetValue(V390[6]); //中效滤芯堵塞严重,请执行清理工作
|
||||||
ppw->m_Stat.busOutValveNotOpenAlarm = V390[7]; //总排气阀未打开,请检查总排气阀工作状态
|
ppw->m_Stat.busOutValveNotOpenAlarm->SetValue(V390[7]); //总排气阀未打开,请检查总排气阀工作状态
|
||||||
|
|
||||||
bitset<8> V391(arr[2]);
|
bitset<8> V391(arr[2]);
|
||||||
ppw->m_Stat.busOutValveNotCloseAlarm = V391[0]; //总排气阀未关闭,请检查总排气阀工作状态
|
ppw->m_Stat.busOutValveNotCloseAlarm->SetValue(V391[0]); //总排气阀未关闭,请检查总排气阀工作状态
|
||||||
ppw->m_Stat.busOutValveNotInPosAlarm = V391[1]; //总排气阀处于不到位状态,请检查总排气阀工作状态
|
ppw->m_Stat.busOutValveNotInPosAlarm->SetValue(V391[1]); //总排气阀处于不到位状态,请检查总排气阀工作状态
|
||||||
ppw->m_Stat.printOutValveNotOpenAlarm = V391[2]; //打印室排气阀未打开,请检查打印室排气阀工作状态
|
ppw->m_Stat.printOutValveNotOpenAlarm->SetValue(V391[2]); //打印室排气阀未打开,请检查打印室排气阀工作状态
|
||||||
ppw->m_Stat.printOutValveNotCloseAlarm = V391[3]; //打印室排气阀未关闭,请检查打印室排气阀工作状态
|
ppw->m_Stat.printOutValveNotCloseAlarm->SetValue(V391[3]); //打印室排气阀未关闭,请检查打印室排气阀工作状态
|
||||||
ppw->m_Stat.printOutValveNotInPosAlarm = V391[4]; //打印室排气阀处于不到位状态,请检查打印室排气阀工作状态
|
ppw->m_Stat.printOutValveNotInPosAlarm->SetValue(V391[4]); //打印室排气阀处于不到位状态,请检查打印室排气阀工作状态
|
||||||
ppw->m_Stat.inverterComException = V391[5];
|
ppw->m_Stat.inverterComException->SetValue(V391[5]);
|
||||||
ppw->m_Stat.anemometerException = V391[6];
|
ppw->m_Stat.anemometerException->SetValue(V391[6]);
|
||||||
ppw->m_Stat.midOutValveOpenAlarm = V391[7];
|
ppw->m_Stat.midOutValveOpenAlarm->SetValue(V391[7]);
|
||||||
|
|
||||||
bitset<8> V393(arr[4]);
|
bitset<8> V393(arr[4]);
|
||||||
ppw->m_Stat.oxygenSelfTestFail = V393[0];
|
ppw->m_Stat.oxygenSelfTestFail->SetValue(V393[0]);
|
||||||
ppw->m_Stat.purifierSevereAbnormalExhaust = V393[1];
|
ppw->m_Stat.purifierSevereAbnormalExhaust->SetValue(V393[1]);
|
||||||
if (ppw->m_AlarmCfgWrapper->m_PurifierMidTempAlarm)
|
if (ppw->m_AlarmCfgWrapper->m_PurifierMidTempAlarm)
|
||||||
SignalService::GetInstance().SetAlarm(ppw->m_AlarmCfgWrapper->m_PurifierMidTempAlarm, ppw->m_Stat.midTempOverLimitAlarm);
|
SignalService::GetInstance().SetAlarm(ppw->m_AlarmCfgWrapper->m_PurifierMidTempAlarm, ppw->m_Stat.midTempOverLimitAlarm);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pMaxWind.Result == 0) {
|
if (pMaxWind.Result == 0) {
|
||||||
unsigned char* pchar = (unsigned char*)pMaxWind.pdata;
|
unsigned char* pchar = (unsigned char*)pMaxWind.pdata;
|
||||||
ppw->m_Stat.maxWindSetValue = FLOATDATA(false, &pchar[0]).fValue;
|
ppw->m_Stat.maxWindSetValue->SetValue(FLOATDATA(false, &pchar[0]).fValue);
|
||||||
|
|
||||||
bitset<8> V557(pchar[7]);
|
bitset<8> V557(pchar[7]);
|
||||||
ppw->m_Stat.shieldMonitorPrintPressure = V557[0];
|
ppw->m_Stat.shieldMonitorPrintPressure->SetValue(V557[0]);
|
||||||
|
|
||||||
ppw->m_Stat.useArgon = V557[1];
|
ppw->m_Stat.useArgon->SetValue(V557[1]);
|
||||||
ppw->m_ExtCfg->m_SelectedFanWindFit = ppw->m_Stat.useArgon ? 1 : 0;
|
ppw->m_ExtCfg->m_SelectedFanWindFit = ppw->m_Stat.useArgon ? 1 : 0;
|
||||||
ppw->m_Stat.isCoverWind = V557[4];
|
ppw->m_Stat.isCoverWind->SetValue(V557[4]);
|
||||||
|
|
||||||
bitset<8> V558(pchar[8]);
|
bitset<8> V558(pchar[8]);
|
||||||
ppw->m_Stat.inverterDonotWorkWhenDedust = V558[0];
|
ppw->m_Stat.inverterDonotWorkWhenDedust->SetValue(V558[0]);
|
||||||
ppw->m_Stat.printOxygenExceptWhenDedust = V558[1];
|
ppw->m_Stat.printOxygenExceptWhenDedust->SetValue(V558[1]);
|
||||||
ppw->m_Stat.tempExceptWhenDedust = V558[2];
|
ppw->m_Stat.tempExceptWhenDedust->SetValue(V558[2]);
|
||||||
ppw->m_Stat.highPressureExceptWhenDedust = V558[3];
|
ppw->m_Stat.highPressureExceptWhenDedust->SetValue(V558[3]);
|
||||||
ppw->m_Stat.windExceptWhenDedust = V558[4];
|
ppw->m_Stat.windExceptWhenDedust->SetValue(V558[4]);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pCoverWindOffset.Result == 0) {
|
if (pCoverWindOffset.Result == 0) {
|
||||||
unsigned char* pchar = (unsigned char*)pCoverWindOffset.pdata;
|
unsigned char* pchar = (unsigned char*)pCoverWindOffset.pdata;
|
||||||
ppw->m_Stat.coverWindSpeedOffset = FLOATDATA(false, &pchar[0]).fValue;
|
ppw->m_Stat.coverWindSpeedOffset->SetValue(FLOATDATA(false, &pchar[0]).fValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pWindAct.Result == 0)
|
if (pWindAct.Result == 0)
|
||||||
{
|
{
|
||||||
unsigned char* pchar = (unsigned char*)pWindAct.pdata;
|
unsigned char* pchar = (unsigned char*)pWindAct.pdata;
|
||||||
ppw->m_Stat.anemometerActualValue = FLOATDATA(false, &pchar[0]).fValue;
|
ppw->m_Stat.anemometerActualValue->SetValue(FLOATDATA(false, &pchar[0]).fValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pKeepAlive.Result == 0)
|
if (pKeepAlive.Result == 0)
|
||||||
{
|
{
|
||||||
char* pchar = (char*)pKeepAlive.pdata;
|
char* pchar = (char*)pKeepAlive.pdata;
|
||||||
ppw->m_Stat.purifierType = ((pchar[0] & 0xff) << 8) + (pchar[1] & 0xff);
|
ppw->m_Stat.purifierType->SetValue(((pchar[0] & 0xff) << 8) + (pchar[1] & 0xff));
|
||||||
ppw->m_Stat.keepAlive = ((pchar[2] & 0xff) << 8) + (pchar[3] & 0xff);
|
ppw->m_Stat.keepAlive->SetValue(((pchar[2] & 0xff) << 8) + (pchar[3] & 0xff));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pFreq.Result == 0)
|
if (pFreq.Result == 0)
|
||||||
{
|
{
|
||||||
unsigned char* pchar = (unsigned char*)pFreq.pdata;
|
unsigned char* pchar = (unsigned char*)pFreq.pdata;
|
||||||
ppw->m_Stat.fanFreq = FLOATDATA(false, &pchar[0]).fValue;
|
ppw->m_Stat.fanFreq->SetValue(FLOATDATA(false, &pchar[0]).fValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pSignal.Result == 0)
|
if (pSignal.Result == 0)
|
||||||
{
|
{
|
||||||
char* pchar = (char*)pSignal.pdata;
|
char* pchar = (char*)pSignal.pdata;
|
||||||
bitset<8> V594(pchar[0]);
|
bitset<8> V594(pchar[0]);
|
||||||
ppw->m_Stat.coverWindSlowFinish = V594[6];
|
ppw->m_Stat.coverWindSlowFinish->SetValue(V594[6]);
|
||||||
ppw->m_Stat.coverWindResumeFinish = V594[7];
|
ppw->m_Stat.coverWindResumeFinish->SetValue(V594[7]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (testRel.Result == 0)
|
if (testRel.Result == 0)
|
||||||
{
|
{
|
||||||
unsigned char* arr = (unsigned char*)testRel.pdata;
|
unsigned char* arr = (unsigned char*)testRel.pdata;
|
||||||
ppw->m_Stat.ProtectionPressureSetTime = ((arr[0] & 0xff) << 8) + (arr[1] & 0xff);
|
ppw->m_Stat.ProtectionPressureSetTime->SetValue(((arr[0] & 0xff) << 8) + (arr[1] & 0xff));
|
||||||
if (arr[2] == 2) {
|
if (arr[2] == 2) {
|
||||||
ppw->m_Stat.ProtectionPressureTestRelFail = true;
|
ppw->m_Stat.ProtectionPressureTestRelFail->SetValue(true);
|
||||||
}
|
}
|
||||||
else ppw->m_Stat.ProtectionPressureTestRelFail = false;
|
else ppw->m_Stat.ProtectionPressureTestRelFail->SetValue(false);
|
||||||
|
|
||||||
if (arr[3] == 2) {
|
if (arr[3] == 2) {
|
||||||
ppw->m_Stat.oxygenSelfTestRelFail = true;
|
ppw->m_Stat.oxygenSelfTestRelFail->SetValue(true);
|
||||||
}
|
}
|
||||||
else ppw->m_Stat.oxygenSelfTestRelFail = false;
|
else ppw->m_Stat.oxygenSelfTestRelFail->SetValue(false);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pBlowRel.Result == 0)
|
if (pBlowRel.Result == 0)
|
||||||
{
|
{
|
||||||
unsigned char* arr = (unsigned char*)pBlowRel.pdata;
|
unsigned char* arr = (unsigned char*)pBlowRel.pdata;
|
||||||
ppw->m_Stat.blowBackBlowTime = ((arr[0] & 0xff) << 8) + (arr[1] & 0xff);
|
ppw->m_Stat.blowBackBlowTime->SetValue(((arr[0] & 0xff) << 8) + (arr[1] & 0xff));
|
||||||
ppw->m_Stat.blowBackSetTimes = ((arr[4] & 0xff) << 8) + (arr[5] & 0xff);
|
ppw->m_Stat.blowBackSetTimes->SetValue(((arr[4] & 0xff) << 8) + (arr[5] & 0xff));
|
||||||
}
|
}
|
||||||
LeaveCriticalSection(&ppw->m_ValueCS);
|
LeaveCriticalSection(&ppw->m_ValueCS);
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#include "HBDPurifierG3Client.h"
|
#include "HBDPurifierG3Client.h"
|
||||||
#include "S7Command.h"
|
#include "S7Command.h"
|
||||||
#include "../SystemInfo.h"
|
#include "../SystemInfo.h"
|
||||||
#include "../utils/DataByte.h"
|
#include "../utils/DataByte.h"
|
||||||
@ -27,7 +27,7 @@ void HBDPurifierG3Client::InitCommand()
|
|||||||
items[itemFlag].Amount = 6;
|
items[itemFlag].Amount = 6;
|
||||||
items[itemFlag].pdata = new unsigned char[6];
|
items[itemFlag].pdata = new unsigned char[6];
|
||||||
|
|
||||||
//VD_中效过滤器压力实值
|
//VD_中效过滤器压力实值
|
||||||
itemFlag = 1;
|
itemFlag = 1;
|
||||||
items[itemFlag].Area = S7AreaDB;
|
items[itemFlag].Area = S7AreaDB;
|
||||||
items[itemFlag].WordLen = S7WLByte;
|
items[itemFlag].WordLen = S7WLByte;
|
||||||
@ -52,7 +52,7 @@ void HBDPurifierG3Client::InitCommand()
|
|||||||
S7Command* pcommand2 = new S7Command(S7_COMMAND_READ_INFO, READ_ITEM_COUNT_2);
|
S7Command* pcommand2 = new S7Command(S7_COMMAND_READ_INFO, READ_ITEM_COUNT_2);
|
||||||
TS7DataItem* items2 = pcommand2->getDataItems();
|
TS7DataItem* items2 = pcommand2->getDataItems();
|
||||||
itemFlag = 0;
|
itemFlag = 0;
|
||||||
//报警信息
|
//报警信息
|
||||||
items2[itemFlag].Area = S7AreaDB;
|
items2[itemFlag].Area = S7AreaDB;
|
||||||
items2[itemFlag].WordLen = S7WLByte;
|
items2[itemFlag].WordLen = S7WLByte;
|
||||||
items2[itemFlag].DBNumber = 1;
|
items2[itemFlag].DBNumber = 1;
|
||||||
@ -61,7 +61,7 @@ void HBDPurifierG3Client::InitCommand()
|
|||||||
items2[itemFlag].pdata = new unsigned char[5];
|
items2[itemFlag].pdata = new unsigned char[5];
|
||||||
|
|
||||||
itemFlag = 1;
|
itemFlag = 1;
|
||||||
//最大风速
|
//最大风速
|
||||||
items2[itemFlag].Area = S7AreaDB;
|
items2[itemFlag].Area = S7AreaDB;
|
||||||
items2[itemFlag].WordLen = S7WLByte;
|
items2[itemFlag].WordLen = S7WLByte;
|
||||||
items2[itemFlag].DBNumber = 1;
|
items2[itemFlag].DBNumber = 1;
|
||||||
@ -130,7 +130,7 @@ void HBDPurifierG3Client::InitCommand()
|
|||||||
pcommand2->m_Fun = &HBDPurifierG3Client::G3ProcReadInfoXT_2;
|
pcommand2->m_Fun = &HBDPurifierG3Client::G3ProcReadInfoXT_2;
|
||||||
pcommand2->isNeedDel = false;
|
pcommand2->isNeedDel = false;
|
||||||
|
|
||||||
//写测氧值
|
//写测氧值
|
||||||
S7Command* oxygenPressureCom = new S7Command(S7_COMMAND_WRITE, 2);
|
S7Command* oxygenPressureCom = new S7Command(S7_COMMAND_WRITE, 2);
|
||||||
TS7DataItem* dataItem = oxygenPressureCom->getDataItems();
|
TS7DataItem* dataItem = oxygenPressureCom->getDataItems();
|
||||||
dataItem[0].Area = S7AreaDB;
|
dataItem[0].Area = S7AreaDB;
|
||||||
@ -203,61 +203,61 @@ void HBDPurifierG3Client::G3ProcReadInfoXT(void *pobject, Command* pcommand)
|
|||||||
unsigned char mdata3 = arr[3];
|
unsigned char mdata3 = arr[3];
|
||||||
unsigned char mdata4 = arr[4];
|
unsigned char mdata4 = arr[4];
|
||||||
unsigned char mdata5 = arr[5];
|
unsigned char mdata5 = arr[5];
|
||||||
ppw->m_Stat.isPurifying = ((mdata5 & 0x1)>0 ? true : false);
|
ppw->m_Stat.isPurifying ->SetValue ((mdata5 & 0x1)>0 ? true : false);
|
||||||
ppw->m_Stat.isDedusting = ((mdata0 & 0x4) ? true : false);
|
ppw->m_Stat.isDedusting ->SetValue ((mdata0 & 0x4) ? true : false);
|
||||||
ppw->m_Stat.isBoxCleaning = ((mdata0 & 0x40) ? true : false);
|
ppw->m_Stat.isBoxCleaning ->SetValue ((mdata0 & 0x40) ? true : false);
|
||||||
ppw->m_Stat.isBlowBack = ((mdata1 & 0x2) ? true : false);
|
ppw->m_Stat.isBlowBack ->SetValue ((mdata1 & 0x2) ? true : false);
|
||||||
ppw->m_Stat.isFilterDiscarding = ((mdata1 & 0x10) ? true : false);
|
ppw->m_Stat.isFilterDiscarding ->SetValue ((mdata1 & 0x10) ? true : false);
|
||||||
ppw->m_Stat.isFilterCleaning = ((mdata1 & 0x80) ? true : false);
|
ppw->m_Stat.isFilterCleaning ->SetValue ((mdata1 & 0x80) ? true : false);
|
||||||
ppw->m_Stat.isHopperCleaning = ((mdata2 & 0x20) ? true : false);
|
ppw->m_Stat.isHopperCleaning ->SetValue ((mdata2 & 0x20) ? true : false);
|
||||||
}
|
}
|
||||||
if (pPresure.Result == 0) {
|
if (pPresure.Result == 0) {
|
||||||
unsigned char* pchar = (unsigned char*)pPresure.pdata;
|
unsigned char* pchar = (unsigned char*)pPresure.pdata;
|
||||||
ppw->m_Stat.midPressureValue = FLOATDATA(false, &pchar[0]).fValue;
|
ppw->m_Stat.midPressureValue->SetValue(FLOATDATA(false, &pchar[0]).fValue);
|
||||||
ppw->m_Stat.midPressureDifValue = FLOATDATA(false, &pchar[4]).fValue;
|
ppw->m_Stat.midPressureDifValue->SetValue(FLOATDATA(false, &pchar[4]).fValue);
|
||||||
ppw->m_Stat.midTemperatureValue = FLOATDATA(false, &pchar[8]).fValue;
|
ppw->m_Stat.midTemperatureValue->SetValue(FLOATDATA(false, &pchar[8]).fValue);
|
||||||
ppw->m_Stat.highPressureDifValue = FLOATDATA(false, &pchar[12]).fValue;
|
ppw->m_Stat.highPressureDifValue->SetValue(FLOATDATA(false, &pchar[12]).fValue);
|
||||||
//ppw->m_Stat.anemometerActualValue = FLOATDATA(false, &pchar[16]).fValue;
|
//ppw->m_Stat.anemometerActualValue ->SetValue( FLOATDATA(false, &pchar[16]).fValue;
|
||||||
ppw->m_Stat.printPressureValue = FLOATDATA(false, &pchar[20]).fValue;
|
ppw->m_Stat.printPressureValue->SetValue(FLOATDATA(false, &pchar[20]).fValue);
|
||||||
ppw->m_Stat.boxPressureUpLimit = FLOATDATA(false, &pchar[28]).fValue;
|
ppw->m_Stat.boxPressureUpLimit->SetValue(FLOATDATA(false, &pchar[28]).fValue);
|
||||||
ppw->m_Stat.boxPressureDownLimit = FLOATDATA(false, &pchar[32]).fValue;
|
ppw->m_Stat.boxPressureDownLimit->SetValue(FLOATDATA(false, &pchar[32]).fValue);
|
||||||
ppw->m_Stat.filterOxygenValue = FLOATDATA(false, &pchar[48]).fValue;
|
ppw->m_Stat.filterOxygenValue->SetValue(FLOATDATA(false, &pchar[48]).fValue);
|
||||||
ppw->m_Stat.printOxygenValue = FLOATDATA(false, &pchar[60]).fValue;
|
ppw->m_Stat.printOxygenValue->SetValue(FLOATDATA(false, &pchar[60]).fValue);
|
||||||
ppw->m_Stat.midPressureDifAlarmValue = FLOATDATA(false, &pchar[64]).fValue;
|
ppw->m_Stat.midPressureDifAlarmValue->SetValue(FLOATDATA(false, &pchar[64]).fValue);
|
||||||
ppw->m_Stat.highPressureDifAlarmValue = FLOATDATA(false, &pchar[68]).fValue;
|
ppw->m_Stat.highPressureDifAlarmValue->SetValue(FLOATDATA(false, &pchar[68]).fValue);
|
||||||
ppw->m_Stat.printOxygenUpSetValue = FLOATDATA(false, &pchar[76]).fValue;
|
ppw->m_Stat.printOxygenUpSetValue->SetValue(FLOATDATA(false, &pchar[76]).fValue);
|
||||||
ppw->m_RunCfg->m_WarnOxygen = ppw->m_Stat.printOxygenUpSetValue;
|
ppw->m_RunCfg->m_WarnOxygen = ppw->m_Stat.printOxygenUpSetValue->GetValue();
|
||||||
|
|
||||||
ppw->m_Stat.boxWashTime = ((pchar[110] & 0xff) << 8) + (pchar[111] & 0xff);
|
ppw->m_Stat.boxWashTime->SetValue(((pchar[110] & 0xff) << 8) + (pchar[111] & 0xff));
|
||||||
ppw->m_Stat.filterWashTime = ((pchar[112] & 0xff) << 8) + (pchar[113] & 0xff);
|
ppw->m_Stat.filterWashTime->SetValue(((pchar[112] & 0xff) << 8) + (pchar[113] & 0xff));
|
||||||
ppw->m_Stat.boxWashDelayTime = ((pchar[114] & 0xff) << 8) + (pchar[115] & 0xff);
|
ppw->m_Stat.boxWashDelayTime->SetValue(((pchar[114] & 0xff) << 8) + (pchar[115] & 0xff));
|
||||||
ppw->m_Stat.dedustingWashDelayTime = ((pchar[116] & 0xff) << 8) + (pchar[117] & 0xff);
|
ppw->m_Stat.dedustingWashDelayTime->SetValue(((pchar[116] & 0xff) << 8) + (pchar[117] & 0xff));
|
||||||
ppw->m_Stat.hopperCleanRemind = ((pchar[118] & 0xff) << 8) + (pchar[119] & 0xff);
|
ppw->m_Stat.hopperCleanRemind->SetValue(((pchar[118] & 0xff) << 8) + (pchar[119] & 0xff));
|
||||||
|
|
||||||
ppw->m_Stat.printCleanOxygenSetValue = FLOATDATA(false, &pchar[142]).fValue;
|
ppw->m_Stat.printCleanOxygenSetValue->SetValue(FLOATDATA(false, &pchar[142]).fValue);
|
||||||
ppw->m_Stat.windSetValue = FLOATDATA(false, &pchar[146]).fValue;
|
ppw->m_Stat.windSetValue->SetValue(FLOATDATA(false, &pchar[146]).fValue);
|
||||||
ppw->m_Stat.windActualValue = FLOATDATA(false, &pchar[150]).fValue;
|
ppw->m_Stat.windActualValue->SetValue(FLOATDATA(false, &pchar[150]).fValue);
|
||||||
ppw->m_Stat.filterCleanOxygenSetValue = FLOATDATA(false, &pchar[158]).fValue;
|
ppw->m_Stat.filterCleanOxygenSetValue->SetValue(FLOATDATA(false, &pchar[158]).fValue);
|
||||||
ppw->m_Stat.midTempHighSetValue = FLOATDATA(false, &pchar[166]).fValue;
|
ppw->m_Stat.midTempHighSetValue->SetValue(FLOATDATA(false, &pchar[166]).fValue);
|
||||||
ppw->m_Stat.midTempUltraSetValue = FLOATDATA(false, &pchar[170]).fValue;
|
ppw->m_Stat.midTempUltraSetValue->SetValue(FLOATDATA(false, &pchar[170]).fValue);
|
||||||
ppw->m_Stat.oxygenAlarmValue = FLOATDATA(false, &pchar[190]).fValue;
|
ppw->m_Stat.oxygenAlarmValue->SetValue(FLOATDATA(false, &pchar[190]).fValue);
|
||||||
ppw->m_RunCfg->SetOxygenAlarmValue(ppw->m_Stat.oxygenAlarmValue);
|
ppw->m_RunCfg->SetOxygenAlarmValue(ppw->m_Stat.oxygenAlarmValue->GetValue());
|
||||||
ppw->m_RunCfg->SetOxygenTargeValue(ppw->m_Stat.printCleanOxygenSetValue);
|
ppw->m_RunCfg->SetOxygenTargeValue(ppw->m_Stat.printCleanOxygenSetValue->GetValue());
|
||||||
|
|
||||||
FanFit* al = ppw->m_ExtCfg->m_FanWindFit[ppw->m_ExtCfg->m_SelectedFanWindFit];
|
FanFit* al = ppw->m_ExtCfg->m_FanWindFit[ppw->m_ExtCfg->m_SelectedFanWindFit];
|
||||||
if (al->alarmWind > ppw->m_Stat.windSetValue) {
|
if (al->alarmWind > ppw->m_Stat.windSetValue->GetValue()) {
|
||||||
al->alarmWind = (ppw->m_Stat.windSetValue > 50.0f) ? (ppw->m_Stat.windSetValue - 50.0f) : 1.0f;
|
al->alarmWind = (ppw->m_Stat.windSetValue->GetValue() > 50.0f) ? (ppw->m_Stat.windSetValue->GetValue() - 50.0f) : 1.0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
ppw->m_Stat.filterTotalUseTime = ((pchar[194] & 0xff) << 8) + (pchar[195] & 0xff);
|
ppw->m_Stat.filterTotalUseTime->SetValue(((pchar[194] & 0xff) << 8) + (pchar[195] & 0xff));
|
||||||
ppw->m_Stat.usedTimeFromlastBowBack = ((pchar[196] & 0xff) << 8) + (pchar[197] & 0xff);
|
ppw->m_Stat.usedTimeFromlastBowBack->SetValue(((pchar[196] & 0xff) << 8) + (pchar[197] & 0xff));
|
||||||
ppw->m_Stat.bowBackTimes = ((pchar[198] & 0xff) << 8) + (pchar[199] & 0xff);
|
ppw->m_Stat.bowBackTimes->SetValue(((pchar[198] & 0xff) << 8) + (pchar[199] & 0xff));
|
||||||
ppw->m_Stat.hopperTimeLastClean = ((pchar[204] & 0xff) << 8) + (pchar[205] & 0xff);
|
ppw->m_Stat.hopperTimeLastClean->SetValue(((pchar[204] & 0xff) << 8) + (pchar[205] & 0xff));
|
||||||
|
|
||||||
if (ppw->m_AlarmCfgWrapper->m_PurifierOxygenAlarm) {
|
if (ppw->m_AlarmCfgWrapper->m_PurifierOxygenAlarm) {
|
||||||
if (ppw->m_Stat.filterOxygenValue > ppw->m_RunCfg->m_FilterOxygenAlarmValue) {
|
if (ppw->m_Stat.filterOxygenValue->GetValue() > ppw->m_RunCfg->m_FilterOxygenAlarmValue) {
|
||||||
if (ppw->m_AlarmCfgWrapper->m_PurifierOxygenAlarm->m_AlarmContinueTick > ppw->m_AlarmCfgWrapper->m_PurifierOxygenAlarm->m_CheckAlarmSetTick) {
|
if (ppw->m_AlarmCfgWrapper->m_PurifierOxygenAlarm->m_AlarmContinueTick > ppw->m_AlarmCfgWrapper->m_PurifierOxygenAlarm->m_CheckAlarmSetTick) {
|
||||||
ppw->m_AlarmCfgWrapper->m_PurifierOxygenAlarm->m_AlarmInfo = to_string(ppw->m_Stat.filterOxygenValue);
|
ppw->m_AlarmCfgWrapper->m_PurifierOxygenAlarm->m_AlarmInfo = to_string(ppw->m_Stat.filterOxygenValue->GetValue());
|
||||||
SignalService::GetInstance().SetAlarm(ppw->m_AlarmCfgWrapper->m_PurifierOxygenAlarm, true);
|
SignalService::GetInstance().SetAlarm(ppw->m_AlarmCfgWrapper->m_PurifierOxygenAlarm, true);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -272,8 +272,8 @@ void HBDPurifierG3Client::G3ProcReadInfoXT(void *pobject, Command* pcommand)
|
|||||||
}
|
}
|
||||||
if (ppCtrl.Result == 0) {
|
if (ppCtrl.Result == 0) {
|
||||||
unsigned char* arr = (unsigned char*)ppCtrl.pdata;
|
unsigned char* arr = (unsigned char*)ppCtrl.pdata;
|
||||||
ppw->m_Stat.ProtectionPressuring = ((arr[0] & 0x10) > 0 ? true : false);
|
ppw->m_Stat.ProtectionPressuring->SetValue((arr[0] & 0x10) > 0 ? true : false);
|
||||||
ppw->m_Stat.protectionPressureEnable = ((arr[0] & 0x40) > 0 ? true : false);
|
ppw->m_Stat.protectionPressureEnable ->SetValue((arr[0] & 0x40) > 0 ? true : false);
|
||||||
}
|
}
|
||||||
|
|
||||||
LeaveCriticalSection(&ppw->m_ValueCS);
|
LeaveCriticalSection(&ppw->m_ValueCS);
|
||||||
@ -305,33 +305,33 @@ void HBDPurifierG3Client::G3ProcReadInfoXT_2(void* pobject, Command* pcommand)
|
|||||||
unsigned char pdata2 = arr[1];
|
unsigned char pdata2 = arr[1];
|
||||||
unsigned char pdata3 = arr[2];
|
unsigned char pdata3 = arr[2];
|
||||||
|
|
||||||
ppw->m_Stat.midTempOverLimitAlarm = ((pdata1 & 0x1) > 0 ? true : false); //中效高温报警,请注意
|
ppw->m_Stat.midTempOverLimitAlarm->SetValue(((pdata1 & 0x1) > 0 ? true : false)); //中效高温报警,请注意
|
||||||
ppw->m_Stat.midHighTempOverLimitAlarm = ((pdata1 & 0x2) > 0 ? true : false); //中效超高温报警,已经很危险请停机检查
|
ppw->m_Stat.midHighTempOverLimitAlarm->SetValue(((pdata1 & 0x2) > 0 ? true : false)); //中效超高温报警,已经很危险请停机检查
|
||||||
ppw->m_Stat.hopperUseLongTimeAlarm = ((pdata1 & 0x4) > 0 ? true : false); //料斗使用时间过长,请进行清理
|
ppw->m_Stat.hopperUseLongTimeAlarm->SetValue(((pdata1 & 0x4) > 0 ? true : false)); //料斗使用时间过长,请进行清理
|
||||||
ppw->m_Stat.highPressureLackValveAlarm = ((pdata1 & 0x8) > 0 ? true : false); //高压气气压不足,导致阀门异常关闭,请使用稳定气压
|
ppw->m_Stat.highPressureLackValveAlarm->SetValue(((pdata1 & 0x8) > 0 ? true : false)); //高压气气压不足,导致阀门异常关闭,请使用稳定气压
|
||||||
ppw->m_Stat.protectionTestFail = ((pdata1 & 0x10) > 0 ? true : false);
|
ppw->m_Stat.protectionTestFail->SetValue(((pdata1 & 0x10) > 0 ? true : false));
|
||||||
ppw->m_Stat.inverterAlarm = ((pdata1 & 0x20) > 0 ? true : false); //变频器报警,请检查电机是否正常
|
ppw->m_Stat.inverterAlarm->SetValue(((pdata1 & 0x20) > 0 ? true : false)); //变频器报警,请检查电机是否正常
|
||||||
ppw->m_Stat.whirlwindJarIsFull = ((pdata1 & 0x40) > 0 ? true : false);
|
ppw->m_Stat.whirlwindJarIsFull->SetValue(((pdata1 & 0x40) > 0 ? true : false));
|
||||||
ppw->m_Stat.midInValveOpenAlarm = ((pdata1 & 0x80) > 0 ? true : false);
|
ppw->m_Stat.midInValveOpenAlarm->SetValue(((pdata1 & 0x80) > 0 ? true : false));
|
||||||
|
|
||||||
ppw->m_Stat.cycleInValveOpenAlarm = ((pdata2 & 0x1) > 0 ? true : false); //循环进气阀打开异常,请检查阀门与感应器是否正常
|
ppw->m_Stat.cycleInValveOpenAlarm->SetValue((pdata2 & 0x1) > 0 ? true : false); //循环进气阀打开异常,请检查阀门与感应器是否正常
|
||||||
ppw->m_Stat.cycleOutValueOpenAlarm = ((pdata2 & 0x2) > 0 ? true : false); //循环出气阀打开异常,请检查阀门与感应器是否正常
|
ppw->m_Stat.cycleOutValueOpenAlarm->SetValue((pdata2 & 0x2) > 0 ? true : false); //循环出气阀打开异常,请检查阀门与感应器是否正常
|
||||||
ppw->m_Stat.highPressureLackAlarm = ((pdata2 & 0x4) > 0 ? true : false); //高压气气压不足,无法启动设备请补充压力
|
ppw->m_Stat.highPressureLackAlarm->SetValue((pdata2 & 0x4) > 0 ? true : false); //高压气气压不足,无法启动设备请补充压力
|
||||||
ppw->m_Stat.protectedPressureLackAlarm = ((pdata2 & 0x8) > 0 ? true : false); //保护气气压不足,无法启动设备请补充压力
|
ppw->m_Stat.protectedPressureLackAlarm->SetValue((pdata2 & 0x8) > 0 ? true : false); //保护气气压不足,无法启动设备请补充压力
|
||||||
ppw->m_Stat.midConnectException = ((pdata2 & 0x10) > 0 ? true : false); //中效室连接异常,请检查是否连接完毕
|
ppw->m_Stat.midConnectException->SetValue((pdata2 & 0x10) > 0 ? true : false); //中效室连接异常,请检查是否连接完毕
|
||||||
ppw->m_Stat.carbinDoorOpenException = ((pdata2 & 0x20) > 0 ? true : false); //舱门打开异常,请检查关闭好舱门与舱门感应器
|
ppw->m_Stat.carbinDoorOpenException ->SetValue((pdata2 & 0x20) > 0 ? true : false); //舱门打开异常,请检查关闭好舱门与舱门感应器
|
||||||
ppw->m_Stat.midFilterBlockAlarm = ((pdata2 & 0x40) > 0 ? true : false); //中效滤芯堵塞严重,请执行清理工作
|
ppw->m_Stat.midFilterBlockAlarm ->SetValue((pdata2 & 0x40) > 0 ? true : false); //中效滤芯堵塞严重,请执行清理工作
|
||||||
ppw->m_Stat.busOutValveNotOpenAlarm = ((pdata2 & 0x80) > 0 ? true : false); //总排气阀未打开,请检查总排气阀工作状态
|
ppw->m_Stat.busOutValveNotOpenAlarm ->SetValue((pdata2 & 0x80) > 0 ? true : false); //总排气阀未打开,请检查总排气阀工作状态
|
||||||
|
|
||||||
ppw->m_Stat.busOutValveNotCloseAlarm = ((pdata3 & 0x01) > 0 ? true : false); //总排气阀未关闭,请检查总排气阀工作状态
|
ppw->m_Stat.busOutValveNotCloseAlarm->SetValue((pdata3 & 0x01) > 0 ? true : false); //总排气阀未关闭,请检查总排气阀工作状态
|
||||||
ppw->m_Stat.busOutValveNotInPosAlarm = ((pdata3 & 0x02) > 0 ? true : false); //总排气阀处于不到位状态,请检查总排气阀工作状态
|
ppw->m_Stat.busOutValveNotInPosAlarm->SetValue((pdata3 & 0x02) > 0 ? true : false); //总排气阀处于不到位状态,请检查总排气阀工作状态
|
||||||
ppw->m_Stat.printOutValveNotOpenAlarm = ((pdata3 & 0x04) > 0 ? true : false); //打印室排气阀未打开,请检查打印室排气阀工作状态
|
ppw->m_Stat.printOutValveNotOpenAlarm->SetValue((pdata3 & 0x04) > 0 ? true : false); //打印室排气阀未打开,请检查打印室排气阀工作状态
|
||||||
ppw->m_Stat.printOutValveNotCloseAlarm = ((pdata3 & 0x08) > 0 ? true : false); //打印室排气阀未关闭,请检查打印室排气阀工作状态
|
ppw->m_Stat.printOutValveNotCloseAlarm->SetValue((pdata3 & 0x08) > 0 ? true : false); //打印室排气阀未关闭,请检查打印室排气阀工作状态
|
||||||
ppw->m_Stat.printOutValveNotInPosAlarm = ((pdata3 & 0x10) > 0 ? true : false); //打印室排气阀处于不到位状态,请检查打印室排气阀工作状态
|
ppw->m_Stat.printOutValveNotInPosAlarm->SetValue((pdata3 & 0x10) > 0 ? true : false); //打印室排气阀处于不到位状态,请检查打印室排气阀工作状态
|
||||||
ppw->m_Stat.inverterComException = ((pdata3 & 0x20) > 0 ? true : false);
|
ppw->m_Stat.inverterComException->SetValue((pdata3 & 0x20) > 0 ? true : false);
|
||||||
ppw->m_Stat.anemometerException = ((pdata3 & 0x40) > 0 ? true : false);
|
ppw->m_Stat.anemometerException->SetValue((pdata3 & 0x40) > 0 ? true : false);
|
||||||
ppw->m_Stat.midOutValveOpenAlarm = ((pdata3 & 0x80) > 0 ? true : false); //打印室排气阀处于不到位状态,请检查打印室排气阀工作状态
|
ppw->m_Stat.midOutValveOpenAlarm->SetValue((pdata3 & 0x80) > 0 ? true : false); //打印室排气阀处于不到位状态,请检查打印室排气阀工作状态
|
||||||
ppw->m_Stat.oxygenSelfTestFail = ((arr[4] & 0x01) > 0 ? true : false);
|
ppw->m_Stat.oxygenSelfTestFail->SetValue((arr[4] & 0x01) > 0 ? true : false);
|
||||||
|
|
||||||
if (ppw->m_AlarmCfgWrapper->m_PurifierMidTempAlarm)
|
if (ppw->m_AlarmCfgWrapper->m_PurifierMidTempAlarm)
|
||||||
SignalService::GetInstance().SetAlarm(ppw->m_AlarmCfgWrapper->m_PurifierMidTempAlarm, ppw->m_Stat.midTempOverLimitAlarm);
|
SignalService::GetInstance().SetAlarm(ppw->m_AlarmCfgWrapper->m_PurifierMidTempAlarm, ppw->m_Stat.midTempOverLimitAlarm);
|
||||||
@ -344,12 +344,12 @@ void HBDPurifierG3Client::G3ProcReadInfoXT_2(void* pobject, Command* pcommand)
|
|||||||
maxWindSetValue.data[1] = pchar[2];
|
maxWindSetValue.data[1] = pchar[2];
|
||||||
maxWindSetValue.data[2] = pchar[1];
|
maxWindSetValue.data[2] = pchar[1];
|
||||||
maxWindSetValue.data[3] = pchar[0];
|
maxWindSetValue.data[3] = pchar[0];
|
||||||
ppw->m_Stat.maxWindSetValue = maxWindSetValue.fValue;
|
ppw->m_Stat.maxWindSetValue->SetValue(maxWindSetValue.fValue);
|
||||||
ppw->m_Stat.shieldMonitorPrintPressure = ((pchar[7] & 0x1) > 0 ? true : false);
|
ppw->m_Stat.shieldMonitorPrintPressure->SetValue((pchar[7] & 0x1) > 0 ? true : false);
|
||||||
ppw->m_Stat.useArgon = ((pchar[7] & 0x2) > 0 ? true : false);
|
ppw->m_Stat.useArgon->SetValue((pchar[7] & 0x2) > 0 ? true : false);
|
||||||
ppw->m_ExtCfg->m_SelectedFanWindFit = ppw->m_Stat.useArgon ? 1 : 0;
|
ppw->m_ExtCfg->m_SelectedFanWindFit = ppw->m_Stat.useArgon ? 1 : 0;
|
||||||
|
|
||||||
ppw->m_Stat.isCoverWind = ((pchar[7] & 0x10) > 0 ? true : false);
|
ppw->m_Stat.isCoverWind->SetValue((pchar[7] & 0x10) > 0 ? true : false);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pCoverWindOffset.Result == 0) {
|
if (pCoverWindOffset.Result == 0) {
|
||||||
@ -361,20 +361,20 @@ void HBDPurifierG3Client::G3ProcReadInfoXT_2(void* pobject, Command* pcommand)
|
|||||||
coverWindOffset.data[1] = pchar[2];
|
coverWindOffset.data[1] = pchar[2];
|
||||||
coverWindOffset.data[2] = pchar[1];
|
coverWindOffset.data[2] = pchar[1];
|
||||||
coverWindOffset.data[3] = pchar[0];
|
coverWindOffset.data[3] = pchar[0];
|
||||||
ppw->m_Stat.coverWindSpeedOffset = coverWindOffset.fValue;
|
ppw->m_Stat.coverWindSpeedOffset->SetValue(coverWindOffset.fValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pWindAct.Result == 0)
|
if (pWindAct.Result == 0)
|
||||||
{
|
{
|
||||||
unsigned char* pchar = (unsigned char*)pWindAct.pdata;
|
unsigned char* pchar = (unsigned char*)pWindAct.pdata;
|
||||||
ppw->m_Stat.anemometerActualValue = FLOATDATA(false, &pchar[0]).fValue;
|
ppw->m_Stat.anemometerActualValue->SetValue(FLOATDATA(false, &pchar[0]).fValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pKeepAlive.Result == 0)
|
if (pKeepAlive.Result == 0)
|
||||||
{
|
{
|
||||||
char* pchar = (char*)pKeepAlive.pdata;
|
char* pchar = (char*)pKeepAlive.pdata;
|
||||||
ppw->m_Stat.purifierType = ((pchar[0] & 0xff) << 8) + (pchar[1] & 0xff);
|
ppw->m_Stat.purifierType->SetValue(((pchar[0] & 0xff) << 8) + (pchar[1] & 0xff));
|
||||||
ppw->m_Stat.keepAlive = ((pchar[2] & 0xff) << 8) + (pchar[3] & 0xff);
|
ppw->m_Stat.keepAlive->SetValue(((pchar[2] & 0xff) << 8) + (pchar[3] & 0xff));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pFreq.Result == 0)
|
if (pFreq.Result == 0)
|
||||||
@ -385,37 +385,37 @@ void HBDPurifierG3Client::G3ProcReadInfoXT_2(void* pobject, Command* pcommand)
|
|||||||
freq.data[1] = pchar[2];
|
freq.data[1] = pchar[2];
|
||||||
freq.data[2] = pchar[1];
|
freq.data[2] = pchar[1];
|
||||||
freq.data[3] = pchar[0];
|
freq.data[3] = pchar[0];
|
||||||
ppw->m_Stat.fanFreq = freq.fValue;
|
ppw->m_Stat.fanFreq->SetValue(freq.fValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pSignal.Result == 0)
|
if (pSignal.Result == 0)
|
||||||
{
|
{
|
||||||
char* pchar = (char*)pSignal.pdata;
|
char* pchar = (char*)pSignal.pdata;
|
||||||
ppw->m_Stat.coverWindSlowFinish = ((pchar[0] & 0x1) > 0 ? true : false);
|
ppw->m_Stat.coverWindSlowFinish->SetValue((pchar[0] & 0x1) > 0 ? true : false);
|
||||||
ppw->m_Stat.coverWindResumeFinish = ((pchar[0] & 0x2) > 0 ? true : false);
|
ppw->m_Stat.coverWindResumeFinish->SetValue((pchar[0] & 0x2) > 0 ? true : false);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (testRel.Result == 0)
|
if (testRel.Result == 0)
|
||||||
{
|
{
|
||||||
unsigned char* arr = (unsigned char*)testRel.pdata;
|
unsigned char* arr = (unsigned char*)testRel.pdata;
|
||||||
ppw->m_Stat.ProtectionPressureSetTime = ((arr[0] & 0xff) << 8) + (arr[1] & 0xff);
|
ppw->m_Stat.ProtectionPressureSetTime->SetValue(((arr[0] & 0xff) << 8) + (arr[1] & 0xff));
|
||||||
if (arr[2] == 2) {
|
if (arr[2] == 2) {
|
||||||
ppw->m_Stat.ProtectionPressureTestRelFail = true;
|
ppw->m_Stat.ProtectionPressureTestRelFail->SetValue(true);
|
||||||
}
|
}
|
||||||
else ppw->m_Stat.ProtectionPressureTestRelFail = false;
|
else ppw->m_Stat.ProtectionPressureTestRelFail->SetValue(false);
|
||||||
|
|
||||||
if (arr[3] == 2) {
|
if (arr[3] == 2) {
|
||||||
ppw->m_Stat.oxygenSelfTestRelFail = true;
|
ppw->m_Stat.oxygenSelfTestRelFail->SetValue(true);
|
||||||
}
|
}
|
||||||
else ppw->m_Stat.oxygenSelfTestRelFail = false;
|
else ppw->m_Stat.oxygenSelfTestRelFail->SetValue(false);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pBlowRel.Result == 0)
|
if (pBlowRel.Result == 0)
|
||||||
{
|
{
|
||||||
unsigned char* arr = (unsigned char*)pBlowRel.pdata;
|
unsigned char* arr = (unsigned char*)pBlowRel.pdata;
|
||||||
ppw->m_Stat.blowBackBlowTime = ((arr[0] & 0xff) << 8) + (arr[1] & 0xff);
|
ppw->m_Stat.blowBackBlowTime->SetValue(((arr[0] & 0xff) << 8) + (arr[1] & 0xff));
|
||||||
ppw->m_Stat.blowBackSetTimes = ((arr[4] & 0xff) << 8) + (arr[5] & 0xff);
|
ppw->m_Stat.blowBackSetTimes->SetValue(((arr[4] & 0xff) << 8) + (arr[5] & 0xff));
|
||||||
}
|
}
|
||||||
LeaveCriticalSection(&ppw->m_ValueCS);
|
LeaveCriticalSection(&ppw->m_ValueCS);
|
||||||
}
|
}
|
||||||
|
@ -100,7 +100,7 @@ public:
|
|||||||
IPGLaserStateV1()
|
IPGLaserStateV1()
|
||||||
: currentSetpoint(new FloatData("currentSetpoint", u8"激光二极管电流设置"))
|
: currentSetpoint(new FloatData("currentSetpoint", u8"激光二极管电流设置"))
|
||||||
, laserTemperature(new FloatData("laserTemperature", u8"内部实际温度"))
|
, laserTemperature(new FloatData("laserTemperature", u8"内部实际温度"))
|
||||||
, outputPower(new StrData("outputPower", u8"输出功率W"))
|
, outputPower(new StrData("outputPower", u8"输出功率W","OFF"))
|
||||||
, moduleErrorCode(new IntData("moduleErrorCode", u8"模块错误代码"))
|
, moduleErrorCode(new IntData("moduleErrorCode", u8"模块错误代码"))
|
||||||
, isCommandBufferOverload(new BoolData("isCommandBufferOverload", u8"指令溢出"))
|
, isCommandBufferOverload(new BoolData("isCommandBufferOverload", u8"指令溢出"))
|
||||||
, isOverheat(new BoolData("isOverheat", u8"温度过热"))
|
, isOverheat(new BoolData("isOverheat", u8"温度过热"))
|
||||||
|
@ -11,7 +11,7 @@ public:
|
|||||||
explicit Oxygenstat()
|
explicit Oxygenstat()
|
||||||
: concentrationValue(new FloatData("concentrationValue",u8"浓度值"))
|
: concentrationValue(new FloatData("concentrationValue",u8"浓度值"))
|
||||||
, valueUnit(new StrData("valueUnit",u8"浓度单位"))
|
, valueUnit(new StrData("valueUnit",u8"浓度单位"))
|
||||||
, scale(new IntData("scale",u8"数值放大倍数"))
|
, scale(new IntData("scale",u8"数值放大倍数",1))
|
||||||
, tempValue(new FloatData("tempValue",u8"温度值"))
|
, tempValue(new FloatData("tempValue",u8"温度值"))
|
||||||
, humidityValue(new FloatData("humidityValue",u8"湿度值"))
|
, humidityValue(new FloatData("humidityValue",u8"湿度值"))
|
||||||
, concentrationAgValue(new FloatData("concentrationAgValue",u8"模拟量"))
|
, concentrationAgValue(new FloatData("concentrationAgValue",u8"模拟量"))
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#include "PurifierClient.h"
|
#include "PurifierClient.h"
|
||||||
#include "S7Command.h"
|
#include "S7Command.h"
|
||||||
#include "../global.h"
|
#include "../global.h"
|
||||||
#include "../SystemInfo.h"
|
#include "../SystemInfo.h"
|
||||||
@ -29,7 +29,7 @@ void PurifierClient::InitCommand()
|
|||||||
items[itemFlag].Amount = 6;
|
items[itemFlag].Amount = 6;
|
||||||
items[itemFlag].pdata = new unsigned char[6];
|
items[itemFlag].pdata = new unsigned char[6];
|
||||||
|
|
||||||
//VD_中效过滤器压力实值
|
//VD_中效过滤器压力实值
|
||||||
itemFlag = 1;
|
itemFlag = 1;
|
||||||
items[itemFlag].Area = S7AreaDB;
|
items[itemFlag].Area = S7AreaDB;
|
||||||
items[itemFlag].WordLen = S7WLByte;
|
items[itemFlag].WordLen = S7WLByte;
|
||||||
@ -44,10 +44,10 @@ void PurifierClient::InitCommand()
|
|||||||
|
|
||||||
S7Command* pcommand2 = new S7Command(S7_COMMAND_READ_INFO, READ_ITEM_COUNT2);
|
S7Command* pcommand2 = new S7Command(S7_COMMAND_READ_INFO, READ_ITEM_COUNT2);
|
||||||
TS7DataItem* items2 = pcommand2->getDataItems();
|
TS7DataItem* items2 = pcommand2->getDataItems();
|
||||||
//报警信息
|
//报警信息
|
||||||
itemFlag = 0;
|
itemFlag = 0;
|
||||||
|
|
||||||
//报警信息
|
//报警信息
|
||||||
items2[itemFlag].Area = S7AreaDB;
|
items2[itemFlag].Area = S7AreaDB;
|
||||||
items2[itemFlag].WordLen = S7WLByte;
|
items2[itemFlag].WordLen = S7WLByte;
|
||||||
items2[itemFlag].DBNumber = 1;
|
items2[itemFlag].DBNumber = 1;
|
||||||
@ -55,7 +55,7 @@ void PurifierClient::InitCommand()
|
|||||||
items2[itemFlag].Amount = 2;
|
items2[itemFlag].Amount = 2;
|
||||||
items2[itemFlag].pdata = new unsigned char[2];
|
items2[itemFlag].pdata = new unsigned char[2];
|
||||||
|
|
||||||
//最大风速
|
//最大风速
|
||||||
itemFlag = 1;
|
itemFlag = 1;
|
||||||
items2[itemFlag].Area = S7AreaDB;
|
items2[itemFlag].Area = S7AreaDB;
|
||||||
items2[itemFlag].WordLen = S7WLByte;
|
items2[itemFlag].WordLen = S7WLByte;
|
||||||
@ -100,7 +100,7 @@ void PurifierClient::InitCommand()
|
|||||||
pcommand2->isNeedDel = false;
|
pcommand2->isNeedDel = false;
|
||||||
|
|
||||||
|
|
||||||
//写测氧值
|
//写测氧值
|
||||||
S7Command* oxygenPressureCom = new S7Command(S7_COMMAND_WRITE,2);
|
S7Command* oxygenPressureCom = new S7Command(S7_COMMAND_WRITE,2);
|
||||||
TS7DataItem* dataItem = oxygenPressureCom->getDataItems();
|
TS7DataItem* dataItem = oxygenPressureCom->getDataItems();
|
||||||
dataItem[0].Area = S7AreaDB;
|
dataItem[0].Area = S7AreaDB;
|
||||||
@ -174,64 +174,64 @@ void PurifierClient::ProcReadInfoXT(void *pobject, Command* pcommand)
|
|||||||
unsigned char mdata3 = arr[3];
|
unsigned char mdata3 = arr[3];
|
||||||
unsigned char mdata4 = arr[4];
|
unsigned char mdata4 = arr[4];
|
||||||
unsigned char mdata5 = arr[5];
|
unsigned char mdata5 = arr[5];
|
||||||
ppw->m_Stat.isPurifying =((mdata5 & 0x1)>0?true:false);
|
ppw->m_Stat.isPurifying->SetValue(((mdata5 & 0x1) > 0 ? true : false));
|
||||||
ppw->m_Stat.isDedusting = ((mdata0 & 0x4) ? true : false);
|
ppw->m_Stat.isDedusting->SetValue(((mdata0 & 0x4) ? true : false));
|
||||||
ppw->m_Stat.isBoxCleaning = ((mdata0 & 0x40) ? true : false);
|
ppw->m_Stat.isBoxCleaning->SetValue(((mdata0 & 0x40) ? true : false));
|
||||||
ppw->m_Stat.isBlowBack = ((mdata1 & 0x2) ? true : false);
|
ppw->m_Stat.isBlowBack->SetValue(((mdata1 & 0x2) ? true : false));
|
||||||
ppw->m_Stat.isFilterDiscarding = ((mdata1 & 0x10) ? true : false);
|
ppw->m_Stat.isFilterDiscarding->SetValue(((mdata1 & 0x10) ? true : false));
|
||||||
ppw->m_Stat.isFilterCleaning = ((mdata1 & 0x80) ? true : false);
|
ppw->m_Stat.isFilterCleaning->SetValue(((mdata1 & 0x80) ? true : false));
|
||||||
ppw->m_Stat.isHopperCleaning = ((mdata2 & 0x20 )?true:false);
|
ppw->m_Stat.isHopperCleaning->SetValue(((mdata2 & 0x20) ? true : false));
|
||||||
}
|
}
|
||||||
if (pPresure.Result == 0) {
|
if (pPresure.Result == 0) {
|
||||||
unsigned char* pchar = (unsigned char*)pPresure.pdata;
|
unsigned char* pchar = (unsigned char*)pPresure.pdata;
|
||||||
ppw->m_Stat.midPressureValue = FLOATDATA(false, &pchar[0]).fValue;
|
ppw->m_Stat.midPressureValue->SetValue(FLOATDATA(false, &pchar[0]).fValue);
|
||||||
ppw->m_Stat.midPressureDifValue = FLOATDATA(false, &pchar[4]).fValue;
|
ppw->m_Stat.midPressureDifValue->SetValue(FLOATDATA(false, &pchar[4]).fValue);
|
||||||
ppw->m_Stat.midTemperatureValue = FLOATDATA(false, &pchar[8]).fValue;
|
ppw->m_Stat.midTemperatureValue->SetValue(FLOATDATA(false, &pchar[8]).fValue);
|
||||||
ppw->m_Stat.highPressureDifValue = FLOATDATA(false, &pchar[12]).fValue;
|
ppw->m_Stat.highPressureDifValue->SetValue(FLOATDATA(false, &pchar[12]).fValue);
|
||||||
ppw->m_Stat.anemometerActualValue = FLOATDATA(false, &pchar[16]).fValue;
|
ppw->m_Stat.anemometerActualValue->SetValue(FLOATDATA(false, &pchar[16]).fValue);
|
||||||
ppw->m_Stat.printPressureValue = FLOATDATA(false, &pchar[20]).fValue;
|
ppw->m_Stat.printPressureValue->SetValue(FLOATDATA(false, &pchar[20]).fValue);
|
||||||
ppw->m_Stat.boxPressureUpLimit = FLOATDATA(false, &pchar[28]).fValue;
|
ppw->m_Stat.boxPressureUpLimit->SetValue(FLOATDATA(false, &pchar[28]).fValue);
|
||||||
ppw->m_Stat.boxPressureDownLimit = FLOATDATA(false, &pchar[32]).fValue;
|
ppw->m_Stat.boxPressureDownLimit->SetValue(FLOATDATA(false, &pchar[32]).fValue);
|
||||||
ppw->m_Stat.filterOxygenValue = FLOATDATA(false, &pchar[48]).fValue;
|
ppw->m_Stat.filterOxygenValue->SetValue(FLOATDATA(false, &pchar[48]).fValue);
|
||||||
ppw->m_Stat.printOxygenValue = FLOATDATA(false, &pchar[60]).fValue;
|
ppw->m_Stat.printOxygenValue->SetValue(FLOATDATA(false, &pchar[60]).fValue);
|
||||||
ppw->m_Stat.midPressureDifAlarmValue = FLOATDATA(false, &pchar[64]).fValue;
|
ppw->m_Stat.midPressureDifAlarmValue->SetValue(FLOATDATA(false, &pchar[64]).fValue);
|
||||||
ppw->m_Stat.highPressureDifAlarmValue = FLOATDATA(false, &pchar[68]).fValue;
|
ppw->m_Stat.highPressureDifAlarmValue->SetValue(FLOATDATA(false, &pchar[68]).fValue);
|
||||||
ppw->m_Stat.printOxygenUpSetValue = FLOATDATA(false, &pchar[76]).fValue;
|
ppw->m_Stat.printOxygenUpSetValue->SetValue(FLOATDATA(false, &pchar[76]).fValue);
|
||||||
ppw->m_RunCfg->m_WarnOxygen = ppw->m_Stat.printOxygenUpSetValue;
|
ppw->m_RunCfg->m_WarnOxygen = ppw->m_Stat.printOxygenUpSetValue->GetValue();
|
||||||
|
|
||||||
ppw->m_Stat.boxWashTime = ((pchar[110] & 0xff) << 8) + (pchar[111] & 0xff);
|
ppw->m_Stat.boxWashTime->SetValue(((pchar[110] & 0xff) << 8) + (pchar[111] & 0xff));
|
||||||
ppw->m_Stat.filterWashTime = ((pchar[112] & 0xff) << 8) + (pchar[113] & 0xff);
|
ppw->m_Stat.filterWashTime->SetValue(((pchar[112] & 0xff) << 8) + (pchar[113] & 0xff));
|
||||||
ppw->m_Stat.boxWashDelayTime = ((pchar[114] & 0xff) << 8) + (pchar[115] & 0xff);
|
ppw->m_Stat.boxWashDelayTime->SetValue(((pchar[114] & 0xff) << 8) + (pchar[115] & 0xff));
|
||||||
ppw->m_Stat.dedustingWashDelayTime = ((pchar[116] & 0xff) << 8) + (pchar[117] & 0xff);
|
ppw->m_Stat.dedustingWashDelayTime->SetValue(((pchar[116] & 0xff) << 8) + (pchar[117] & 0xff));
|
||||||
ppw->m_Stat.hopperCleanRemind = ((pchar[118] & 0xff) << 8) + (pchar[119] & 0xff);
|
ppw->m_Stat.hopperCleanRemind->SetValue(((pchar[118] & 0xff) << 8) + (pchar[119] & 0xff));
|
||||||
|
|
||||||
ppw->m_Stat.printCleanOxygenSetValue = FLOATDATA(false, &pchar[142]).fValue;
|
ppw->m_Stat.printCleanOxygenSetValue->SetValue(FLOATDATA(false, &pchar[142]).fValue);
|
||||||
ppw->m_Stat.windSetValue = FLOATDATA(false, &pchar[146]).fValue;
|
ppw->m_Stat.windSetValue->SetValue(FLOATDATA(false, &pchar[146]).fValue);
|
||||||
ppw->m_Stat.windActualValue = FLOATDATA(false, &pchar[150]).fValue;
|
ppw->m_Stat.windActualValue->SetValue(FLOATDATA(false, &pchar[150]).fValue);
|
||||||
ppw->m_Stat.filterCleanOxygenSetValue = FLOATDATA(false, &pchar[158]).fValue;
|
ppw->m_Stat.filterCleanOxygenSetValue->SetValue(FLOATDATA(false, &pchar[158]).fValue);
|
||||||
ppw->m_Stat.midTempHighSetValue = FLOATDATA(false, &pchar[166]).fValue;
|
ppw->m_Stat.midTempHighSetValue->SetValue(FLOATDATA(false, &pchar[166]).fValue);
|
||||||
ppw->m_Stat.midTempUltraSetValue = FLOATDATA(false, &pchar[170]).fValue;
|
ppw->m_Stat.midTempUltraSetValue->SetValue(FLOATDATA(false, &pchar[170]).fValue);
|
||||||
ppw->m_Stat.oxygenAlarmValue = FLOATDATA(false, &pchar[190]).fValue;
|
ppw->m_Stat.oxygenAlarmValue->SetValue(FLOATDATA(false, &pchar[190]).fValue);
|
||||||
|
|
||||||
//ppw->m_RunCfg->SetOxygenAlarmValue(ppw->m_Stat.oxygenAlarmValue);
|
//ppw->m_RunCfg->SetOxygenAlarmValue(ppw->m_Stat.oxygenAlarmValue);
|
||||||
//ppw->m_RunCfg->SetOxygenTargeValue(ppw->m_Stat.printCleanOxygenSetValue);
|
//ppw->m_RunCfg->SetOxygenTargeValue(ppw->m_Stat.printCleanOxygenSetValue);
|
||||||
ppw->m_RunCfg->m_AlarmOxygen = ppw->m_Stat.oxygenAlarmValue;
|
ppw->m_RunCfg->m_AlarmOxygen = ppw->m_Stat.oxygenAlarmValue->GetValue();
|
||||||
ppw->m_RunCfg->m_TargeOxygen = ppw->m_Stat.printCleanOxygenSetValue + 50;
|
ppw->m_RunCfg->m_TargeOxygen = ppw->m_Stat.printCleanOxygenSetValue->GetValue() + 50;
|
||||||
|
|
||||||
|
|
||||||
FanFit* al = ppw->m_ExtCfg->m_FanWindFit[ppw->m_ExtCfg->m_SelectedFanWindFit];
|
FanFit* al = ppw->m_ExtCfg->m_FanWindFit[ppw->m_ExtCfg->m_SelectedFanWindFit];
|
||||||
al->alarmWind = (ppw->m_Stat.windSetValue > 10.0f) ? (ppw->m_Stat.windSetValue - 10.0f) : 0.0f;
|
al->alarmWind = (ppw->m_Stat.windSetValue->GetValue() > 10.0f) ? (ppw->m_Stat.windSetValue->GetValue() - 10.0f) : 0.0f;
|
||||||
|
|
||||||
ppw->m_Stat.filterTotalUseTime = ((pchar[194] & 0xff) << 8) + (pchar[195] & 0xff);
|
ppw->m_Stat.filterTotalUseTime->SetValue(((pchar[194] & 0xff) << 8) + (pchar[195] & 0xff));
|
||||||
ppw->m_Stat.usedTimeFromlastBowBack = ((pchar[196] & 0xff) << 8) + (pchar[197] & 0xff);
|
ppw->m_Stat.usedTimeFromlastBowBack->SetValue(((pchar[196] & 0xff) << 8) + (pchar[197] & 0xff));
|
||||||
ppw->m_Stat.bowBackTimes = ((pchar[198] & 0xff) << 8) + (pchar[199] & 0xff);
|
ppw->m_Stat.bowBackTimes->SetValue(((pchar[198] & 0xff) << 8) + (pchar[199] & 0xff));
|
||||||
ppw->m_Stat.hopperTimeLastClean = ((pchar[204] & 0xff) << 8) + (pchar[205] & 0xff);
|
ppw->m_Stat.hopperTimeLastClean->SetValue(((pchar[204] & 0xff) << 8) + (pchar[205] & 0xff));
|
||||||
|
|
||||||
|
|
||||||
if (ppw->m_AlarmCfgWrapper->m_PurifierOxygenAlarm) {
|
if (ppw->m_AlarmCfgWrapper->m_PurifierOxygenAlarm) {
|
||||||
if (ppw->m_Stat.filterOxygenValue > ppw->m_RunCfg->m_FilterOxygenAlarmValue) {
|
if (ppw->m_Stat.filterOxygenValue->GetValue() > ppw->m_RunCfg->m_FilterOxygenAlarmValue) {
|
||||||
if (ppw->m_AlarmCfgWrapper->m_PurifierOxygenAlarm->m_AlarmContinueTick > ppw->m_AlarmCfgWrapper->m_PurifierOxygenAlarm->m_CheckAlarmSetTick) {
|
if (ppw->m_AlarmCfgWrapper->m_PurifierOxygenAlarm->m_AlarmContinueTick > ppw->m_AlarmCfgWrapper->m_PurifierOxygenAlarm->m_CheckAlarmSetTick) {
|
||||||
ppw->m_AlarmCfgWrapper->m_PurifierOxygenAlarm->m_AlarmInfo = to_string(ppw->m_Stat.filterOxygenValue);
|
ppw->m_AlarmCfgWrapper->m_PurifierOxygenAlarm->m_AlarmInfo = to_string(ppw->m_Stat.filterOxygenValue->GetValue());
|
||||||
SignalService::GetInstance().SetAlarm(ppw->m_AlarmCfgWrapper->m_PurifierOxygenAlarm, true);
|
SignalService::GetInstance().SetAlarm(ppw->m_AlarmCfgWrapper->m_PurifierOxygenAlarm, true);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -249,22 +249,22 @@ void PurifierClient::ProcReadInfoXT(void *pobject, Command* pcommand)
|
|||||||
unsigned char* arr = (unsigned char*)pAlarm.pdata;
|
unsigned char* arr = (unsigned char*)pAlarm.pdata;
|
||||||
unsigned char pdata1 = arr[0];
|
unsigned char pdata1 = arr[0];
|
||||||
unsigned char pdata2 = arr[1];
|
unsigned char pdata2 = arr[1];
|
||||||
ppw->m_Stat.midTempOverLimitAlarm = ((pdata1 & 0x1) > 0 ? true : false);
|
ppw->m_Stat.midTempOverLimitAlarm->SetValue(((pdata1 & 0x1) > 0 ? true : false));
|
||||||
ppw->m_Stat.midHighTempOverLimitAlarm = ((pdata1 & 0x2) > 0 ? true : false);
|
ppw->m_Stat.midHighTempOverLimitAlarm->SetValue(((pdata1 & 0x2) > 0 ? true : false));
|
||||||
ppw->m_Stat.hopperUseLongTimeAlarm = ((pdata1 & 0x4) > 0 ? true : false);
|
ppw->m_Stat.hopperUseLongTimeAlarm->SetValue(((pdata1 & 0x4) > 0 ? true : false));
|
||||||
ppw->m_Stat.highPressureLackValveAlarm = ((pdata1 & 0x8) > 0 ? true : false);
|
ppw->m_Stat.highPressureLackValveAlarm->SetValue(((pdata1 & 0x8) > 0 ? true : false));
|
||||||
ppw->m_Stat.inverterPowerBreak = ((pdata1 & 0x10) > 0 ? true : false);
|
ppw->m_Stat.inverterPowerBreak->SetValue(((pdata1 & 0x10) > 0 ? true : false));
|
||||||
ppw->m_Stat.inverterAlarm = ((pdata1 & 0x20) > 0 ? true : false);
|
ppw->m_Stat.inverterAlarm->SetValue(((pdata1 & 0x20) > 0 ? true : false));
|
||||||
ppw->m_Stat.innerfilterOpenAlarm = ((pdata1 & 0x40) > 0 ? true : false);
|
ppw->m_Stat.innerfilterOpenAlarm->SetValue(((pdata1 & 0x40) > 0 ? true : false));
|
||||||
ppw->m_Stat.inverterComException = ((pdata1 & 0x80) > 0 ? true : false);
|
ppw->m_Stat.inverterComException->SetValue(((pdata1 & 0x80) > 0 ? true : false));
|
||||||
ppw->m_Stat.cycleInValveOpenAlarm = ((pdata2 & 0x1) > 0 ? true : false);
|
ppw->m_Stat.cycleInValveOpenAlarm->SetValue(((pdata2 & 0x1) > 0 ? true : false));
|
||||||
ppw->m_Stat.cycleOutValueOpenAlarm = ((pdata2 & 0x2) > 0 ? true : false);
|
ppw->m_Stat.cycleOutValueOpenAlarm->SetValue(((pdata2 & 0x2) > 0 ? true : false));
|
||||||
ppw->m_Stat.midHighValveOpenAlarm = ((pdata2 & 0x4) > 0 ? true : false);
|
ppw->m_Stat.midHighValveOpenAlarm->SetValue(((pdata2 & 0x4) > 0 ? true : false));
|
||||||
ppw->m_Stat.innerFilterInValveException = ((pdata2 & 0x8) > 0 ? true : false);
|
ppw->m_Stat.innerFilterInValveException->SetValue(((pdata2 & 0x8) > 0 ? true : false));
|
||||||
ppw->m_Stat.midUnionValveException = ((pdata2 & 0x10) > 0 ? true : false);
|
ppw->m_Stat.midUnionValveException->SetValue(((pdata2 & 0x10) > 0 ? true : false));
|
||||||
ppw->m_Stat.innerFilterOutValveException = ((pdata2 & 0x20) > 0 ? true : false);
|
ppw->m_Stat.innerFilterOutValveException->SetValue(((pdata2 & 0x20) > 0 ? true : false));
|
||||||
ppw->m_Stat.midFilterBlockAlarm = ((pdata2 & 0x40) > 0 ? true : false);
|
ppw->m_Stat.midFilterBlockAlarm->SetValue(((pdata2 & 0x40) > 0 ? true : false));
|
||||||
ppw->m_Stat.highFilterBlockAlarm = ((pdata2 & 0x80) > 0 ? true : false);
|
ppw->m_Stat.highFilterBlockAlarm->SetValue(((pdata2 & 0x80) > 0 ? true : false));
|
||||||
|
|
||||||
if (ppw->m_AlarmCfgWrapper->m_PurifierMidTempAlarm)
|
if (ppw->m_AlarmCfgWrapper->m_PurifierMidTempAlarm)
|
||||||
SignalService::GetInstance().SetAlarm(ppw->m_AlarmCfgWrapper->m_PurifierMidTempAlarm, ppw->m_Stat.midTempOverLimitAlarm);
|
SignalService::GetInstance().SetAlarm(ppw->m_AlarmCfgWrapper->m_PurifierMidTempAlarm, ppw->m_Stat.midTempOverLimitAlarm);
|
||||||
@ -307,52 +307,52 @@ void PurifierClient::ProcReadInfoXT2(void *pobject, Command* pcommand)
|
|||||||
unsigned char* arr = (unsigned char*)pAlarm.pdata;
|
unsigned char* arr = (unsigned char*)pAlarm.pdata;
|
||||||
unsigned char pdata1 = arr[0];
|
unsigned char pdata1 = arr[0];
|
||||||
unsigned char pdata2 = arr[1];
|
unsigned char pdata2 = arr[1];
|
||||||
ppw->m_Stat.midTempOverLimitAlarm = ((pdata1 & 0x1) > 0 ? true : false);
|
ppw->m_Stat.midTempOverLimitAlarm->SetValue(((pdata1 & 0x1) > 0 ? true : false));
|
||||||
ppw->m_Stat.midHighTempOverLimitAlarm = ((pdata1 & 0x2) > 0 ? true : false);
|
ppw->m_Stat.midHighTempOverLimitAlarm->SetValue(((pdata1 & 0x2) > 0 ? true : false));
|
||||||
ppw->m_Stat.hopperUseLongTimeAlarm = ((pdata1 & 0x4) > 0 ? true : false);
|
ppw->m_Stat.hopperUseLongTimeAlarm->SetValue(((pdata1 & 0x4) > 0 ? true : false));
|
||||||
ppw->m_Stat.highPressureLackValveAlarm = ((pdata1 & 0x8) > 0 ? true : false);
|
ppw->m_Stat.highPressureLackValveAlarm->SetValue(((pdata1 & 0x8) > 0 ? true : false));
|
||||||
ppw->m_Stat.inverterPowerBreak = ((pdata1 & 0x10) > 0 ? true : false);
|
ppw->m_Stat.inverterPowerBreak->SetValue(((pdata1 & 0x10) > 0 ? true : false));
|
||||||
ppw->m_Stat.inverterAlarm = ((pdata1 & 0x20) > 0 ? true : false);
|
ppw->m_Stat.inverterAlarm->SetValue(((pdata1 & 0x20) > 0 ? true : false));
|
||||||
ppw->m_Stat.innerfilterOpenAlarm = ((pdata1 & 0x40) > 0 ? true : false);
|
ppw->m_Stat.innerfilterOpenAlarm->SetValue(((pdata1 & 0x40) > 0 ? true : false));
|
||||||
ppw->m_Stat.inverterComException = ((pdata1 & 0x80) > 0 ? true : false);
|
ppw->m_Stat.inverterComException->SetValue(((pdata1 & 0x80) > 0 ? true : false));
|
||||||
ppw->m_Stat.cycleInValveOpenAlarm = ((pdata2 & 0x1) > 0 ? true : false);
|
ppw->m_Stat.cycleInValveOpenAlarm->SetValue(((pdata2 & 0x1) > 0 ? true : false));
|
||||||
ppw->m_Stat.cycleOutValueOpenAlarm = ((pdata2 & 0x2) > 0 ? true : false);
|
ppw->m_Stat.cycleOutValueOpenAlarm->SetValue(((pdata2 & 0x2) > 0 ? true : false));
|
||||||
ppw->m_Stat.midHighValveOpenAlarm = ((pdata2 & 0x4) > 0 ? true : false);
|
ppw->m_Stat.midHighValveOpenAlarm->SetValue(((pdata2 & 0x4) > 0 ? true : false));
|
||||||
ppw->m_Stat.innerFilterInValveException = ((pdata2 & 0x8) > 0 ? true : false);
|
ppw->m_Stat.innerFilterInValveException->SetValue(((pdata2 & 0x8) > 0 ? true : false));
|
||||||
ppw->m_Stat.midUnionValveException = ((pdata2 & 0x10) > 0 ? true : false);
|
ppw->m_Stat.midUnionValveException->SetValue(((pdata2 & 0x10) > 0 ? true : false));
|
||||||
ppw->m_Stat.innerFilterOutValveException = ((pdata2 & 0x20) > 0 ? true : false);
|
ppw->m_Stat.innerFilterOutValveException->SetValue(((pdata2 & 0x20) > 0 ? true : false));
|
||||||
ppw->m_Stat.midFilterBlockAlarm = ((pdata2 & 0x40) > 0 ? true : false);
|
ppw->m_Stat.midFilterBlockAlarm->SetValue(((pdata2 & 0x40) > 0 ? true : false));
|
||||||
ppw->m_Stat.highFilterBlockAlarm = ((pdata2 & 0x80) > 0 ? true : false);
|
ppw->m_Stat.highFilterBlockAlarm->SetValue(((pdata2 & 0x80) > 0 ? true : false));
|
||||||
}
|
}
|
||||||
if (pMaxWind.Result == 0) {
|
if (pMaxWind.Result == 0) {
|
||||||
unsigned char* pchar = (unsigned char*)pMaxWind.pdata;
|
unsigned char* pchar = (unsigned char*)pMaxWind.pdata;
|
||||||
ppw->m_Stat.maxWindSetValue = FLOATDATA(false, &pchar[0]).fValue;
|
ppw->m_Stat.maxWindSetValue->SetValue(FLOATDATA(false, &pchar[0]).fValue);
|
||||||
ppw->m_Stat.useArgon = ((pchar[7] & 0x2) > 0 ? true : false);
|
ppw->m_Stat.useArgon->SetValue((pchar[7] & 0x2) > 0 ? true : false);
|
||||||
ppw->m_ExtCfg->m_SelectedFanWindFit = ppw->m_Stat.useArgon ? 1 : 0;
|
ppw->m_ExtCfg->m_SelectedFanWindFit = ppw->m_Stat.useArgon->GetValue() ? 1 : 0;
|
||||||
ppw->m_Stat.isCoverWind = ((pchar[7] & 0x40) > 0 ? true : false);
|
ppw->m_Stat.isCoverWind->SetValue(((pchar[7] & 0x40) > 0 ? true : false));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pSignal.Result == 0)
|
if (pSignal.Result == 0)
|
||||||
{
|
{
|
||||||
unsigned char* pchar = (unsigned char*)pSignal.pdata;
|
unsigned char* pchar = (unsigned char*)pSignal.pdata;
|
||||||
ppw->m_Stat.coverWindSlowFinish = ((pchar[0] & 0x40) > 0 ? true : false);
|
ppw->m_Stat.coverWindSlowFinish->SetValue(((pchar[0] & 0x40) > 0 ? true : false));
|
||||||
ppw->m_Stat.coverWindResumeFinish = ((pchar[0] & 0x80) > 0 ? true : false);
|
ppw->m_Stat.coverWindResumeFinish->SetValue(((pchar[0] & 0x80) > 0 ? true : false));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pType.Result == 0) {
|
if (pType.Result == 0) {
|
||||||
unsigned char* pchar = (unsigned char*)pType.pdata;
|
unsigned char* pchar = (unsigned char*)pType.pdata;
|
||||||
ppw->m_Stat.purifierType = ((pchar[0] & 0xff) << 8) + (pchar[1] & 0xff);
|
ppw->m_Stat.purifierType->SetValue(((pchar[0] & 0xff) << 8) + (pchar[1] & 0xff));
|
||||||
ppw->m_Stat.keepAlive = ((pchar[2] & 0xff) << 8) + (pchar[3] & 0xff);
|
ppw->m_Stat.keepAlive->SetValue(((pchar[2] & 0xff) << 8) + (pchar[3] & 0xff));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pCoverWindOffset.Result == 0) {
|
if (pCoverWindOffset.Result == 0) {
|
||||||
unsigned char* pchar = (unsigned char*)pCoverWindOffset.pdata;
|
unsigned char* pchar = (unsigned char*)pCoverWindOffset.pdata;
|
||||||
ppw->m_Stat.coverWindSpeedOffset = FLOATDATA(false, &pchar[0]).fValue;
|
ppw->m_Stat.coverWindSpeedOffset->SetValue(FLOATDATA(false, &pchar[0]).fValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pFreq.Result == 0) {
|
if (pFreq.Result == 0) {
|
||||||
unsigned char* pchar = (unsigned char*)pFreq.pdata;
|
unsigned char* pchar = (unsigned char*)pFreq.pdata;
|
||||||
ppw->m_Stat.fanFreq = FLOATDATA(false, &pchar[0]).fValue;
|
ppw->m_Stat.fanFreq->SetValue(FLOATDATA(false, &pchar[0]).fValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
LeaveCriticalSection(&ppw->m_ValueCS);
|
LeaveCriticalSection(&ppw->m_ValueCS);
|
||||||
@ -426,7 +426,7 @@ void PurifierClient::SetMKBit(int dindex, unsigned int waittime)
|
|||||||
void PurifierClient::SetDedust(bool bvalue)
|
void PurifierClient::SetDedust(bool bvalue)
|
||||||
{
|
{
|
||||||
if (g_isDebug) {
|
if (g_isDebug) {
|
||||||
m_Stat.isDedusting = bvalue;
|
m_Stat.isDedusting->SetValue(bvalue);
|
||||||
}
|
}
|
||||||
if (!IsServerConnected())return;
|
if (!IsServerConnected())return;
|
||||||
if (bvalue)SetMKBit(10 * 8 + 0,500);
|
if (bvalue)SetMKBit(10 * 8 + 0,500);
|
||||||
@ -472,7 +472,7 @@ void PurifierClient::SetHopperClean(bool bvalue)
|
|||||||
void PurifierClient::SetPurify(bool bvalue)
|
void PurifierClient::SetPurify(bool bvalue)
|
||||||
{
|
{
|
||||||
if (g_isDebug) {
|
if (g_isDebug) {
|
||||||
m_Stat.isPurifying = bvalue;
|
m_Stat.isPurifying->SetValue(bvalue);
|
||||||
}
|
}
|
||||||
if (!IsServerConnected())return;
|
if (!IsServerConnected())return;
|
||||||
if (bvalue)SetMKBit(4 * 8 + 6, 3000);
|
if (bvalue)SetMKBit(4 * 8 + 6, 3000);
|
||||||
@ -568,7 +568,7 @@ void PurifierClient::SetPrintCleanOxygenSetValue(float fvalue)
|
|||||||
|
|
||||||
void PurifierClient::SetWindValue(float fvalue)
|
void PurifierClient::SetWindValue(float fvalue)
|
||||||
{
|
{
|
||||||
if (g_isDebug)m_Stat.windActualValue = fvalue;
|
if (g_isDebug)m_Stat.windActualValue->SetValue(fvalue);
|
||||||
if (!IsServerConnected())return;
|
if (!IsServerConnected())return;
|
||||||
SetDBFloat(146, fvalue);
|
SetDBFloat(146, fvalue);
|
||||||
}
|
}
|
||||||
@ -686,7 +686,110 @@ void PurifierClient::SetDedustingWashDelayTime(unsigned short value)
|
|||||||
void PurifierClient::GetStat(Purifierstat_XT& stat)
|
void PurifierClient::GetStat(Purifierstat_XT& stat)
|
||||||
{
|
{
|
||||||
EnterCriticalSection(&m_ValueCS);
|
EnterCriticalSection(&m_ValueCS);
|
||||||
memcpy_s(&stat, sizeof(Purifierstat_XT), &m_Stat, sizeof(Purifierstat_XT));
|
//memcpy_s(&stat, sizeof(Purifierstat_XT), &m_Stat, sizeof(Purifierstat_XT));
|
||||||
|
stat.isPurifying = m_Stat.isPurifying->GetValue();
|
||||||
|
stat.isDedusting = m_Stat.isDedusting->GetValue();
|
||||||
|
stat.isBoxCleaning = m_Stat.isBoxCleaning->GetValue();
|
||||||
|
stat.isBlowBack = m_Stat.isBlowBack->GetValue();
|
||||||
|
stat.isFilterDiscarding = m_Stat.isFilterDiscarding->GetValue();
|
||||||
|
stat.isFilterCleaning = m_Stat.isFilterCleaning->GetValue();
|
||||||
|
stat.isHopperCleaning = m_Stat.isHopperCleaning->GetValue();
|
||||||
|
|
||||||
|
stat.midPressureValue = m_Stat.midPressureValue->GetValue();
|
||||||
|
stat.midPressureDifValue = m_Stat.midPressureDifValue->GetValue();
|
||||||
|
stat.midTemperatureValue = m_Stat.midTemperatureValue->GetValue();
|
||||||
|
stat.highPressureDifValue = m_Stat.highPressureDifValue->GetValue();
|
||||||
|
stat.anemometerActualValue = m_Stat.anemometerActualValue->GetValue();
|
||||||
|
stat.printPressureValue = m_Stat.printPressureValue->GetValue();
|
||||||
|
stat.boxPressureUpLimit = m_Stat.boxPressureUpLimit->GetValue();
|
||||||
|
stat.boxPressureDownLimit = m_Stat.boxPressureDownLimit->GetValue();
|
||||||
|
stat.filterOxygenValue = m_Stat.filterOxygenValue->GetValue();
|
||||||
|
stat.printOxygenValue = m_Stat.printOxygenValue->GetValue();
|
||||||
|
stat.midPressureDifAlarmValue = m_Stat.midPressureDifAlarmValue->GetValue();
|
||||||
|
stat.highPressureDifAlarmValue = m_Stat.highPressureDifAlarmValue->GetValue();
|
||||||
|
|
||||||
|
stat.filterTotalUseTime = m_Stat.filterTotalUseTime->GetValue();
|
||||||
|
stat.usedTimeFromlastBowBack = m_Stat.usedTimeFromlastBowBack->GetValue();
|
||||||
|
stat.bowBackTimes = m_Stat.bowBackTimes->GetValue();
|
||||||
|
stat.hopperTimeLastClean = m_Stat.hopperTimeLastClean->GetValue();
|
||||||
|
|
||||||
|
stat.boxWashTime = m_Stat.boxWashTime->GetValue();
|
||||||
|
stat.filterWashTime = m_Stat.filterWashTime->GetValue();
|
||||||
|
stat.boxWashDelayTime = m_Stat.boxWashDelayTime->GetValue();
|
||||||
|
stat.dedustingWashDelayTime = m_Stat.dedustingWashDelayTime->GetValue();
|
||||||
|
stat.hopperCleanRemind = m_Stat.hopperCleanRemind->GetValue();
|
||||||
|
stat.printCleanOxygenSetValue = m_Stat.printCleanOxygenSetValue->GetValue();
|
||||||
|
stat.windSetValue = m_Stat.windSetValue->GetValue();
|
||||||
|
stat.windActualValue = m_Stat.windActualValue->GetValue();
|
||||||
|
stat.maxWindSetValue = m_Stat.maxWindSetValue->GetValue();
|
||||||
|
stat.useArgon = m_Stat.useArgon->GetValue();
|
||||||
|
stat.printOxygenUpSetValue = m_Stat.printOxygenUpSetValue->GetValue();
|
||||||
|
stat.oxygenAlarmValue = m_Stat.oxygenAlarmValue->GetValue();
|
||||||
|
stat.filterCleanOxygenSetValue = m_Stat.filterCleanOxygenSetValue->GetValue();
|
||||||
|
stat.midTempHighSetValue = m_Stat.midTempHighSetValue->GetValue();
|
||||||
|
stat.midTempUltraSetValue = m_Stat.midTempUltraSetValue->GetValue();
|
||||||
|
stat.pressureRangeUpLimit = m_Stat.pressureRangeUpLimit->GetValue();
|
||||||
|
stat.pressureRangeDownLimit = m_Stat.pressureRangeDownLimit->GetValue();
|
||||||
|
stat.fanFreq = m_Stat.fanFreq->GetValue();
|
||||||
|
stat.midTempOverLimitAlarm = m_Stat.midTempOverLimitAlarm->GetValue();
|
||||||
|
stat.midHighTempOverLimitAlarm = m_Stat.midHighTempOverLimitAlarm->GetValue();
|
||||||
|
stat.hopperUseLongTimeAlarm = m_Stat.hopperUseLongTimeAlarm->GetValue();
|
||||||
|
stat.highPressureLackValveAlarm = m_Stat.highPressureLackValveAlarm->GetValue();
|
||||||
|
stat.protectionTestFail = m_Stat.protectionTestFail->GetValue();
|
||||||
|
stat.inverterPowerBreak = m_Stat.inverterPowerBreak->GetValue();
|
||||||
|
stat.inverterAlarm = m_Stat.inverterAlarm->GetValue();
|
||||||
|
stat.whirlwindJarIsFull = m_Stat.whirlwindJarIsFull->GetValue();
|
||||||
|
stat.midInValveOpenAlarm = m_Stat.midInValveOpenAlarm->GetValue();
|
||||||
|
stat.midOutValveOpenAlarm = m_Stat.midOutValveOpenAlarm->GetValue();
|
||||||
|
stat.anemometerException = m_Stat.anemometerException->GetValue();
|
||||||
|
stat.oxygenSelfTestFail = m_Stat.oxygenSelfTestFail->GetValue();
|
||||||
|
stat.innerfilterOpenAlarm = m_Stat.innerfilterOpenAlarm->GetValue();
|
||||||
|
stat.inverterComException = m_Stat.inverterComException->GetValue();
|
||||||
|
stat.purifierSevereAbnormalExhaust = m_Stat.purifierSevereAbnormalExhaust->GetValue();
|
||||||
|
|
||||||
|
stat.cycleInValveOpenAlarm = m_Stat.cycleInValveOpenAlarm->GetValue();
|
||||||
|
stat.cycleOutValueOpenAlarm = m_Stat.cycleOutValueOpenAlarm->GetValue();
|
||||||
|
stat.midHighValveOpenAlarm = m_Stat.midHighValveOpenAlarm->GetValue();
|
||||||
|
stat.innerFilterInValveException = m_Stat.innerFilterInValveException->GetValue();
|
||||||
|
stat.midUnionValveException = m_Stat.midUnionValveException->GetValue();
|
||||||
|
stat.innerFilterOutValveException = m_Stat.innerFilterOutValveException->GetValue();
|
||||||
|
stat.midFilterBlockAlarm = m_Stat.midFilterBlockAlarm->GetValue();
|
||||||
|
stat.highFilterBlockAlarm = m_Stat.highFilterBlockAlarm->GetValue();
|
||||||
|
stat.highPressureLackAlarm = m_Stat.highPressureLackAlarm->GetValue();
|
||||||
|
stat.protectedPressureLackAlarm = m_Stat.protectedPressureLackAlarm->GetValue();
|
||||||
|
stat.midConnectException = m_Stat.midConnectException->GetValue();
|
||||||
|
stat.carbinDoorOpenException = m_Stat.carbinDoorOpenException->GetValue();
|
||||||
|
stat.busOutValveNotOpenAlarm = m_Stat.busOutValveNotOpenAlarm->GetValue();
|
||||||
|
|
||||||
|
stat.busOutValveNotCloseAlarm = m_Stat.busOutValveNotCloseAlarm->GetValue();
|
||||||
|
stat.busOutValveNotInPosAlarm = m_Stat.busOutValveNotInPosAlarm->GetValue();
|
||||||
|
stat.printOutValveNotOpenAlarm = m_Stat.printOutValveNotOpenAlarm->GetValue();
|
||||||
|
stat.printOutValveNotCloseAlarm = m_Stat.printOutValveNotCloseAlarm->GetValue();
|
||||||
|
stat.printOutValveNotInPosAlarm = m_Stat.printOutValveNotInPosAlarm->GetValue();
|
||||||
|
|
||||||
|
stat.inverterDonotWorkWhenDedust = m_Stat.inverterDonotWorkWhenDedust->GetValue();
|
||||||
|
stat.printOxygenExceptWhenDedust = m_Stat.printOxygenExceptWhenDedust->GetValue();
|
||||||
|
stat.tempExceptWhenDedust = m_Stat.tempExceptWhenDedust->GetValue();
|
||||||
|
stat.highPressureExceptWhenDedust = m_Stat.highPressureExceptWhenDedust->GetValue();
|
||||||
|
stat.windExceptWhenDedust = m_Stat.windExceptWhenDedust->GetValue();
|
||||||
|
|
||||||
|
stat.coverWindSpeedOffset = m_Stat.coverWindSpeedOffset->GetValue();
|
||||||
|
stat.isCoverWind = m_Stat.isCoverWind->GetValue();
|
||||||
|
stat.shieldMonitorPrintPressure = m_Stat.shieldMonitorPrintPressure->GetValue();
|
||||||
|
|
||||||
|
stat.coverWindSlowFinish = m_Stat.coverWindSlowFinish->GetValue();
|
||||||
|
stat.coverWindResumeFinish = m_Stat.coverWindResumeFinish->GetValue();
|
||||||
|
stat.purifierType = m_Stat.purifierType->GetValue();
|
||||||
|
stat.keepAlive = m_Stat.keepAlive->GetValue();
|
||||||
|
stat.protectionPressureEnable = m_Stat.protectionPressureEnable->GetValue();
|
||||||
|
|
||||||
|
stat.ProtectionPressureTestRelFail = m_Stat.ProtectionPressureTestRelFail->GetValue();
|
||||||
|
stat.oxygenSelfTestRelFail = m_Stat.oxygenSelfTestRelFail->GetValue();
|
||||||
|
stat.ProtectionPressuring = m_Stat.ProtectionPressuring->GetValue();
|
||||||
|
stat.ProtectionPressureSetTime = m_Stat.ProtectionPressureSetTime->GetValue();
|
||||||
|
stat.blowBackSetTimes = m_Stat.blowBackSetTimes->GetValue();
|
||||||
|
stat.blowBackBlowTime = m_Stat.blowBackBlowTime->GetValue();
|
||||||
|
|
||||||
memcpy_s(&stat.baseStat, sizeof(BaseStat), &m_BaseStat, sizeof(BaseStat));
|
memcpy_s(&stat.baseStat, sizeof(BaseStat), &m_BaseStat, sizeof(BaseStat));
|
||||||
LeaveCriticalSection(&m_ValueCS);
|
LeaveCriticalSection(&m_ValueCS);
|
||||||
}
|
}
|
||||||
@ -746,7 +849,7 @@ void PurifierClient::SetCoverWindOffset(float offset)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void PurifierClient::SetShieldMonitorPrintPressure(bool bvalue) {
|
void PurifierClient::SetShieldMonitorPrintPressure(bool bvalue) {
|
||||||
if (g_isDebug)m_Stat.shieldMonitorPrintPressure = bvalue;
|
if (g_isDebug)m_Stat.shieldMonitorPrintPressure->SetValue(bvalue);
|
||||||
if (!IsServerConnected())return;
|
if (!IsServerConnected())return;
|
||||||
SetBit(557 * 8, bvalue);
|
SetBit(557 * 8, bvalue);
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
#include "BaseClient.h"
|
#include "BaseClient.h"
|
||||||
#include "../config/ConfigManager.h"
|
#include "../config/ConfigManager.h"
|
||||||
#include "Snap7/s7_client.h"
|
#include "Snap7/s7_client.h"
|
||||||
@ -64,16 +64,16 @@ public:
|
|||||||
keepAlive = 0;
|
keepAlive = 0;
|
||||||
|
|
||||||
|
|
||||||
cycleInValveOpenAlarm = false; //循环进气阀打开异常,请检查阀门与感应器是否正常
|
cycleInValveOpenAlarm = false; //循环进气阀打开异常,请检查阀门与感应器是否正常
|
||||||
cycleOutValueOpenAlarm = false; //循环出气阀打开异常,请检查阀门与感应器是否正常
|
cycleOutValueOpenAlarm = false; //循环出气阀打开异常,请检查阀门与感应器是否正常
|
||||||
highPressureLackAlarm = false; //高压气气压不足,无法启动设备请补充压力
|
highPressureLackAlarm = false; //高压气气压不足,无法启动设备请补充压力
|
||||||
protectedPressureLackAlarm = false; //保护气气压不足,无法启动设备请补充压力
|
protectedPressureLackAlarm = false; //保护气气压不足,无法启动设备请补充压力
|
||||||
midFilterBlockAlarm = false; //中效滤芯堵塞严重,请执行清理工作
|
midFilterBlockAlarm = false; //中效滤芯堵塞严重,请执行清理工作
|
||||||
midTempOverLimitAlarm = false; //中效高温报警,请注意
|
midTempOverLimitAlarm = false; //中效高温报警,请注意
|
||||||
midHighTempOverLimitAlarm = false; //中效超高温报警,已经很危险请停机检查
|
midHighTempOverLimitAlarm = false; //中效超高温报警,已经很危险请停机检查
|
||||||
hopperUseLongTimeAlarm = false; //料斗使用时间过长,请进行清理
|
hopperUseLongTimeAlarm = false; //料斗使用时间过长,请进行清理
|
||||||
highPressureLackValveAlarm = false; //高压气气压不足,导致阀门异常关闭,请使用稳定气压
|
highPressureLackValveAlarm = false; //高压气气压不足,导致阀门异常关闭,请使用稳定气压
|
||||||
inverterAlarm = false; //变频器报警,请检查电机是否正常
|
inverterAlarm = false; //变频器报警,请检查电机是否正常
|
||||||
protectionTestFail = false;
|
protectionTestFail = false;
|
||||||
inverterPowerBreak = false;
|
inverterPowerBreak = false;
|
||||||
shieldMonitorPrintPressure = false;
|
shieldMonitorPrintPressure = false;
|
||||||
@ -92,23 +92,23 @@ public:
|
|||||||
coverWindSlowFinish = false;
|
coverWindSlowFinish = false;
|
||||||
coverWindResumeFinish = true;
|
coverWindResumeFinish = true;
|
||||||
anemometerException = false;
|
anemometerException = false;
|
||||||
midConnectException = false; //中效室连接异常,请检查是否连接完毕
|
midConnectException = false; //中效室连接异常,请检查是否连接完毕
|
||||||
carbinDoorOpenException = false; //舱门打开异常,请检查关闭好舱门与舱门感应器
|
carbinDoorOpenException = false; //舱门打开异常,请检查关闭好舱门与舱门感应器
|
||||||
busOutValveNotOpenAlarm = false; //总排气阀未打开,请检查总排气阀工作状态
|
busOutValveNotOpenAlarm = false; //总排气阀未打开,请检查总排气阀工作状态
|
||||||
|
|
||||||
busOutValveNotCloseAlarm = false; //总排气阀未关闭,请检查总排气阀工作状态
|
busOutValveNotCloseAlarm = false; //总排气阀未关闭,请检查总排气阀工作状态
|
||||||
busOutValveNotInPosAlarm = false; //总排气阀处于不到位状态,请检查总排气阀工作状态
|
busOutValveNotInPosAlarm = false; //总排气阀处于不到位状态,请检查总排气阀工作状态
|
||||||
printOutValveNotOpenAlarm = false; //打印室排气阀未打开,请检查打印室排气阀工作状态
|
printOutValveNotOpenAlarm = false; //打印室排气阀未打开,请检查打印室排气阀工作状态
|
||||||
printOutValveNotCloseAlarm = false; //打印室排气阀未关闭,请检查打印室排气阀工作状态
|
printOutValveNotCloseAlarm = false; //打印室排气阀未关闭,请检查打印室排气阀工作状态
|
||||||
printOutValveNotInPosAlarm = false; //打印室排气阀处于不到位状态,请检查打印室排气阀工作状态
|
printOutValveNotInPosAlarm = false; //打印室排气阀处于不到位状态,请检查打印室排气阀工作状态
|
||||||
//fanFrequency = 0.0f;
|
//fanFrequency = 0.0f;
|
||||||
purifierSevereAbnormalExhaust = false;
|
purifierSevereAbnormalExhaust = false;
|
||||||
|
|
||||||
inverterDonotWorkWhenDedust = false; //循环过程,变频器不运行异常
|
inverterDonotWorkWhenDedust = false; //循环过程,变频器不运行异常
|
||||||
printOxygenExceptWhenDedust = false; //循环过程,打印室氧含量超限异常
|
printOxygenExceptWhenDedust = false; //循环过程,打印室氧含量超限异常
|
||||||
tempExceptWhenDedust = false; //循环过程,中高效超温异常
|
tempExceptWhenDedust = false; //循环过程,中高效超温异常
|
||||||
highPressureExceptWhenDedust = false; //循环过程,中高效超温异常
|
highPressureExceptWhenDedust = false; //循环过程,中高效超温异常
|
||||||
windExceptWhenDedust = false; //循环过程,风速异常报警
|
windExceptWhenDedust = false; //循环过程,风速异常报警
|
||||||
|
|
||||||
protectionPressureEnable = false;
|
protectionPressureEnable = false;
|
||||||
ProtectionPressureTestRelFail = false;
|
ProtectionPressureTestRelFail = false;
|
||||||
@ -126,99 +126,99 @@ public:
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
BaseStat baseStat;
|
BaseStat baseStat;
|
||||||
bool isPurifying; //在一键清洗
|
bool isPurifying; //在一键清洗
|
||||||
bool isDedusting; //在除尘
|
bool isDedusting; //在除尘
|
||||||
bool isBoxCleaning; //箱体在清洗
|
bool isBoxCleaning; //箱体在清洗
|
||||||
bool isBlowBack; //在反吹
|
bool isBlowBack; //在反吹
|
||||||
bool isFilterDiscarding; //滤芯废处理
|
bool isFilterDiscarding; //滤芯废处理
|
||||||
bool isFilterCleaning; //过滤器在清洗
|
bool isFilterCleaning; //过滤器在清洗
|
||||||
bool isHopperCleaning; //料斗在清洗
|
bool isHopperCleaning; //料斗在清洗
|
||||||
|
|
||||||
float midPressureValue; //中效过滤器压力实值
|
float midPressureValue; //中效过滤器压力实值
|
||||||
float midPressureDifValue; //中效过滤器压差值
|
float midPressureDifValue; //中效过滤器压差值
|
||||||
float midTemperatureValue; //中效过滤器温度值
|
float midTemperatureValue; //中效过滤器温度值
|
||||||
float highPressureDifValue; //高效过滤器压差值
|
float highPressureDifValue; //高效过滤器压差值
|
||||||
float anemometerActualValue; //风速计实际值
|
float anemometerActualValue; //风速计实际值
|
||||||
float printPressureValue; //打印室压力
|
float printPressureValue; //打印室压力
|
||||||
float boxPressureUpLimit; //箱体压力上限设定
|
float boxPressureUpLimit; //箱体压力上限设定
|
||||||
float boxPressureDownLimit; //箱体压力下限设定
|
float boxPressureDownLimit; //箱体压力下限设定
|
||||||
float filterOxygenValue; //过滤器氧含量 实际值
|
float filterOxygenValue; //过滤器氧含量 实际值
|
||||||
float printOxygenValue; //打印室氧含量
|
float printOxygenValue; //打印室氧含量
|
||||||
float midPressureDifAlarmValue; //中效过滤器压差报警设
|
float midPressureDifAlarmValue; //中效过滤器压差报警设
|
||||||
float highPressureDifAlarmValue; //高效过滤器压差报警设
|
float highPressureDifAlarmValue; //高效过滤器压差报警设
|
||||||
|
|
||||||
unsigned short filterTotalUseTime; //滤芯使用总时间
|
unsigned short filterTotalUseTime; //滤芯使用总时间
|
||||||
unsigned short usedTimeFromlastBowBack; //上次反吹后已使用时间
|
unsigned short usedTimeFromlastBowBack; //上次反吹后已使用时间
|
||||||
unsigned short bowBackTimes; //反吹总次数
|
unsigned short bowBackTimes; //反吹总次数
|
||||||
unsigned short hopperTimeLastClean; //料斗上次清理后已使用时间
|
unsigned short hopperTimeLastClean; //料斗上次清理后已使用时间
|
||||||
|
|
||||||
unsigned short boxWashTime; //箱体本次清洗时间
|
unsigned short boxWashTime; //箱体本次清洗时间
|
||||||
unsigned short filterWashTime; //过滤器清洗时间
|
unsigned short filterWashTime; //过滤器清洗时间
|
||||||
unsigned short boxWashDelayTime; // 打印机清洗滞后分钟
|
unsigned short boxWashDelayTime; // 打印机清洗滞后分钟
|
||||||
unsigned short dedustingWashDelayTime; //除尘系统清洗滞后分钟
|
unsigned short dedustingWashDelayTime; //除尘系统清洗滞后分钟
|
||||||
unsigned short hopperCleanRemind; //清理料斗提醒设定
|
unsigned short hopperCleanRemind; //清理料斗提醒设定
|
||||||
|
|
||||||
float printCleanOxygenSetValue; //打印室氧清洗氧含量设
|
float printCleanOxygenSetValue; //打印室氧清洗氧含量设
|
||||||
float windSetValue; //风速设定
|
float windSetValue; //风速设定
|
||||||
float windActualValue; //风速实际值
|
float windActualValue; //风速实际值
|
||||||
float maxWindSetValue; //风速最大值
|
float maxWindSetValue; //风速最大值
|
||||||
bool useArgon; //使用氩气
|
bool useArgon; //使用氩气
|
||||||
|
|
||||||
float printOxygenUpSetValue; //打印氧上限设定
|
float printOxygenUpSetValue; //打印氧上限设定
|
||||||
float oxygenAlarmValue; //打印氧超上限设定
|
float oxygenAlarmValue; //打印氧超上限设定
|
||||||
float filterCleanOxygenSetValue; //过滤器清洗氧含量设定
|
float filterCleanOxygenSetValue; //过滤器清洗氧含量设定
|
||||||
float midTempHighSetValue; //中效高温报警设定
|
float midTempHighSetValue; //中效高温报警设定
|
||||||
float midTempUltraSetValue; //中效超高温报警设定
|
float midTempUltraSetValue; //中效超高温报警设定
|
||||||
float pressureRangeUpLimit; //压力量程上限设定
|
float pressureRangeUpLimit; //压力量程上限设定
|
||||||
float pressureRangeDownLimit; //压力量程下限设定
|
float pressureRangeDownLimit; //压力量程下限设定
|
||||||
|
|
||||||
float fanFreq; //风机频率
|
float fanFreq; //风机频率
|
||||||
|
|
||||||
bool midTempOverLimitAlarm; //中效高温报警,请注意
|
bool midTempOverLimitAlarm; //中效高温报警,请注意
|
||||||
bool midHighTempOverLimitAlarm; //中效超高温报警,已经很危险请停机检查
|
bool midHighTempOverLimitAlarm; //中效超高温报警,已经很危险请停机检查
|
||||||
bool hopperUseLongTimeAlarm; //料斗使用时间过长,请进行清理
|
bool hopperUseLongTimeAlarm; //料斗使用时间过长,请进行清理
|
||||||
bool highPressureLackValveAlarm; //高压气气压不足,导致阀门异常关闭,请使用稳定气压
|
bool highPressureLackValveAlarm; //高压气气压不足,导致阀门异常关闭,请使用稳定气压
|
||||||
bool protectionTestFail; //保压测试失败
|
bool protectionTestFail; //保压测试失败
|
||||||
bool inverterPowerBreak; //变频器电源断开
|
bool inverterPowerBreak; //变频器电源断开
|
||||||
bool inverterAlarm; //变频器报警,请检查电机是否正常
|
bool inverterAlarm; //变频器报警,请检查电机是否正常
|
||||||
bool whirlwindJarIsFull; //旋风罐装满粉,请清理
|
bool whirlwindJarIsFull; //旋风罐装满粉,请清理
|
||||||
bool midInValveOpenAlarm; //中效进气阀打开异常
|
bool midInValveOpenAlarm; //中效进气阀打开异常
|
||||||
bool midOutValveOpenAlarm; //中效出气阀打开异常
|
bool midOutValveOpenAlarm; //中效出气阀打开异常
|
||||||
bool anemometerException; //风速仪异常
|
bool anemometerException; //风速仪异常
|
||||||
bool oxygenSelfTestFail; //氧自测试失败
|
bool oxygenSelfTestFail; //氧自测试失败
|
||||||
bool innerfilterOpenAlarm; //内过滤打印室废气阀打开异常,请检查阀门与感应器是否正常
|
bool innerfilterOpenAlarm; //内过滤打印室废气阀打开异常,请检查阀门与感应器是否正常
|
||||||
bool inverterComException; //变频器通讯异常
|
bool inverterComException; //变频器通讯异常
|
||||||
bool purifierSevereAbnormalExhaust; //净化器排气严重异常
|
bool purifierSevereAbnormalExhaust; //净化器排气严重异常
|
||||||
|
|
||||||
bool cycleInValveOpenAlarm; //循环进气阀打开异常,请检查阀门与感应器是否正常
|
bool cycleInValveOpenAlarm; //循环进气阀打开异常,请检查阀门与感应器是否正常
|
||||||
bool cycleOutValueOpenAlarm; //循环出气阀打开异常,请检查阀门与感应器是否正常
|
bool cycleOutValueOpenAlarm; //循环出气阀打开异常,请检查阀门与感应器是否正常
|
||||||
bool midHighValveOpenAlarm; //中高效阀打开异常,请检查阀门与感应器是否正常
|
bool midHighValveOpenAlarm; //中高效阀打开异常,请检查阀门与感应器是否正常
|
||||||
bool innerFilterInValveException; //内过滤循环进气阀门异常,请检查阀门与感应器是否正常
|
bool innerFilterInValveException; //内过滤循环进气阀门异常,请检查阀门与感应器是否正常
|
||||||
bool midUnionValveException; //内过滤中效联通阀打开异常,请检查阀门与感应器是否正常
|
bool midUnionValveException; //内过滤中效联通阀打开异常,请检查阀门与感应器是否正常
|
||||||
bool innerFilterOutValveException; //内过滤循环出气阀打开异常,请检查阀门与感应器是否正常
|
bool innerFilterOutValveException; //内过滤循环出气阀打开异常,请检查阀门与感应器是否正常
|
||||||
bool midFilterBlockAlarm; //中效滤芯堵塞严重,请执行清理工作
|
bool midFilterBlockAlarm; //中效滤芯堵塞严重,请执行清理工作
|
||||||
bool highFilterBlockAlarm; //高效滤芯堵塞严重,请执行清理工作
|
bool highFilterBlockAlarm; //高效滤芯堵塞严重,请执行清理工作
|
||||||
bool highPressureLackAlarm; //高压气气压不足,无法启动设备请补充压力
|
bool highPressureLackAlarm; //高压气气压不足,无法启动设备请补充压力
|
||||||
bool protectedPressureLackAlarm; //保护气气压不足,无法启动设备请补充压力
|
bool protectedPressureLackAlarm; //保护气气压不足,无法启动设备请补充压力
|
||||||
bool midConnectException; //中效室连接异常,请检查是否连接完毕
|
bool midConnectException; //中效室连接异常,请检查是否连接完毕
|
||||||
bool carbinDoorOpenException; //舱门打开异常,请检查关闭好舱门与舱门感应器
|
bool carbinDoorOpenException; //舱门打开异常,请检查关闭好舱门与舱门感应器
|
||||||
bool busOutValveNotOpenAlarm; //总排气阀未打开,请检查总排气阀工作状态
|
bool busOutValveNotOpenAlarm; //总排气阀未打开,请检查总排气阀工作状态
|
||||||
|
|
||||||
bool busOutValveNotCloseAlarm; //总排气阀未关闭,请检查总排气阀工作状态
|
bool busOutValveNotCloseAlarm; //总排气阀未关闭,请检查总排气阀工作状态
|
||||||
bool busOutValveNotInPosAlarm; //总排气阀处于不到位状态,请检查总排气阀工作状态
|
bool busOutValveNotInPosAlarm; //总排气阀处于不到位状态,请检查总排气阀工作状态
|
||||||
bool printOutValveNotOpenAlarm; //打印室排气阀未打开,请检查打印室排气阀工作状态
|
bool printOutValveNotOpenAlarm; //打印室排气阀未打开,请检查打印室排气阀工作状态
|
||||||
bool printOutValveNotCloseAlarm; //打印室排气阀未关闭,请检查打印室排气阀工作状态
|
bool printOutValveNotCloseAlarm; //打印室排气阀未关闭,请检查打印室排气阀工作状态
|
||||||
bool printOutValveNotInPosAlarm; //打印室排气阀处于不到位状态,请检查打印室排气阀工作状态
|
bool printOutValveNotInPosAlarm; //打印室排气阀处于不到位状态,请检查打印室排气阀工作状态
|
||||||
|
|
||||||
bool inverterDonotWorkWhenDedust; //循环过程,变频器不运行异常
|
bool inverterDonotWorkWhenDedust; //循环过程,变频器不运行异常
|
||||||
bool printOxygenExceptWhenDedust; //循环过程,打印室氧含量超限异常
|
bool printOxygenExceptWhenDedust; //循环过程,打印室氧含量超限异常
|
||||||
bool tempExceptWhenDedust; //循环过程,中高效超温异常
|
bool tempExceptWhenDedust; //循环过程,中高效超温异常
|
||||||
bool highPressureExceptWhenDedust; //循环过程,中高效超温异常
|
bool highPressureExceptWhenDedust; //循环过程,中高效超温异常
|
||||||
bool windExceptWhenDedust; //循环过程,风速异常报警
|
bool windExceptWhenDedust; //循环过程,风速异常报警
|
||||||
|
|
||||||
float coverWindSpeedOffset; //铺粉风速差值
|
float coverWindSpeedOffset; //铺粉风速差值
|
||||||
bool isCoverWind; //铺粉骤降风速
|
bool isCoverWind; //铺粉骤降风速
|
||||||
bool shieldMonitorPrintPressure; //屏蔽监测打印压力
|
bool shieldMonitorPrintPressure; //屏蔽监测打印压力
|
||||||
|
|
||||||
bool coverWindSlowFinish;
|
bool coverWindSlowFinish;
|
||||||
bool coverWindResumeFinish;
|
bool coverWindResumeFinish;
|
||||||
@ -235,6 +235,344 @@ public:
|
|||||||
unsigned short blowBackBlowTime;
|
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
|
class PurifierClient :public S7Client
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@ -243,36 +581,36 @@ public:
|
|||||||
|
|
||||||
void GetStat(Purifierstat_XT& stat);
|
void GetStat(Purifierstat_XT& stat);
|
||||||
|
|
||||||
void SetDedust(bool bvalue); //除尘启动或停止
|
void SetDedust(bool bvalue); //除尘启动或停止
|
||||||
void SetBlowBack(bool bvalue); //反吹启动或停止
|
void SetBlowBack(bool bvalue); //反吹启动或停止
|
||||||
void SetFilterDiscard(bool bvalue); //滤芯废处理
|
void SetFilterDiscard(bool bvalue); //滤芯废处理
|
||||||
void SetFilterClean(bool bvalue); //滤芯清洗
|
void SetFilterClean(bool bvalue); //滤芯清洗
|
||||||
void SetHopperClean(bool bvalue); //料斗清洗启动或停止
|
void SetHopperClean(bool bvalue); //料斗清洗启动或停止
|
||||||
void SetPurify(bool bvalue); //一键清洗(除氧)
|
void SetPurify(bool bvalue); //一键清洗(除氧)
|
||||||
void SetBoxClean(bool bvalue);
|
void SetBoxClean(bool bvalue);
|
||||||
void ResetFilterTime();
|
void ResetFilterTime();
|
||||||
void ClearHopperAlarm();
|
void ClearHopperAlarm();
|
||||||
|
|
||||||
void SetBoxPressureUpLimit(float fvalue); //箱体压力上限设定
|
void SetBoxPressureUpLimit(float fvalue); //箱体压力上限设定
|
||||||
void SetBoxPressureDownLimit(float fvalue); //箱体压力下限设定
|
void SetBoxPressureDownLimit(float fvalue); //箱体压力下限设定
|
||||||
void SetMidPressureDifAlarmValue(float fvalue); //中效过滤器压差报警设
|
void SetMidPressureDifAlarmValue(float fvalue); //中效过滤器压差报警设
|
||||||
void SetHighPressureDifAlarmValue(float fvalue); //高效过滤器压差报警设
|
void SetHighPressureDifAlarmValue(float fvalue); //高效过滤器压差报警设
|
||||||
void SetPrintCleanOxygenSetValue(float fvalue); //打印室氧清洗氧含量设
|
void SetPrintCleanOxygenSetValue(float fvalue); //打印室氧清洗氧含量设
|
||||||
void SetWindValue(float fvalue); //风速设定
|
void SetWindValue(float fvalue); //风速设定
|
||||||
void SetMaxWindValue(float fvalue); //最大风速设定
|
void SetMaxWindValue(float fvalue); //最大风速设定
|
||||||
void SetPrintOxygenDownSetValue(float fvalue); //打印氧下限设定
|
void SetPrintOxygenDownSetValue(float fvalue); //打印氧下限设定
|
||||||
void SetPrintOxygenUpSetValue(float fvalue); //打印氧上限设定
|
void SetPrintOxygenUpSetValue(float fvalue); //打印氧上限设定
|
||||||
void SetfilterCleanOxygenSetValue(float fvalue); //过滤器清洗氧含量设定
|
void SetfilterCleanOxygenSetValue(float fvalue); //过滤器清洗氧含量设定
|
||||||
void SetMidTempHighSetValue(float fvalue); //中效高温报警设定
|
void SetMidTempHighSetValue(float fvalue); //中效高温报警设定
|
||||||
void SetMidTempUltraSetValue(float fvalue); //中效超高温报警设定
|
void SetMidTempUltraSetValue(float fvalue); //中效超高温报警设定
|
||||||
void SetHighTempHighSetValue(float fvalue); //高效高温报警设定
|
void SetHighTempHighSetValue(float fvalue); //高效高温报警设定
|
||||||
// void SetHighTempUltraSetValue(float fvalue); //高效超高温报警设定
|
// void SetHighTempUltraSetValue(float fvalue); //高效超高温报警设定
|
||||||
void SetHopperCleanRemind(unsigned short value); //清理料斗提醒设定
|
void SetHopperCleanRemind(unsigned short value); //清理料斗提醒设定
|
||||||
void SetBoxWashDelayTime(unsigned short value);
|
void SetBoxWashDelayTime(unsigned short value);
|
||||||
void SetDedustingWashDelayTime(unsigned short value);
|
void SetDedustingWashDelayTime(unsigned short value);
|
||||||
void SetPressureRangeUpLimit(float value); //压力量程上限设定
|
void SetPressureRangeUpLimit(float value); //压力量程上限设定
|
||||||
void SetPressureRangeDownLimit(float value); //压力量程下限设定
|
void SetPressureRangeDownLimit(float value); //压力量程下限设定
|
||||||
void SetOxygenAlarmValue(float value); //打印氧超上限设定
|
void SetOxygenAlarmValue(float value); //打印氧超上限设定
|
||||||
void SetUseArgon(bool buse);
|
void SetUseArgon(bool buse);
|
||||||
|
|
||||||
void SetBlowBackBlowTime(unsigned short value);
|
void SetBlowBackBlowTime(unsigned short value);
|
||||||
@ -305,7 +643,8 @@ protected:
|
|||||||
protected:
|
protected:
|
||||||
unsigned char* m_OxygenWriteValue;
|
unsigned char* m_OxygenWriteValue;
|
||||||
unsigned char* m_PressureWriteValue;
|
unsigned char* m_PressureWriteValue;
|
||||||
Purifierstat_XT m_Stat;
|
//Purifierstat_XT m_Stat;
|
||||||
|
PurifierParam m_Stat;
|
||||||
RunCfg* m_RunCfg;
|
RunCfg* m_RunCfg;
|
||||||
ExtCfg* m_ExtCfg;
|
ExtCfg* m_ExtCfg;
|
||||||
AlarmCfgWrapper* m_AlarmCfgWrapper;
|
AlarmCfgWrapper* m_AlarmCfgWrapper;
|
||||||
|
@ -10,12 +10,12 @@ class ScannerPowerBean {
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
ScannerPowerBean()
|
ScannerPowerBean()
|
||||||
|
: m_Voltage(new FloatData("Voltage", u8"电压值"))
|
||||||
|
, m_Current(new FloatData("Current", u8"电流值"))
|
||||||
|
, m_VoltageAlarm(new BoolData("VoltageAlarm", u8"电压报警"))
|
||||||
{
|
{
|
||||||
m_Log = new ScannerPowerLog();
|
m_Log = new ScannerPowerLog();
|
||||||
m_LogTick = GetTickCount64();
|
m_LogTick = GetTickCount64();
|
||||||
m_Voltage = new FloatData("Voltage",u8"电压值");
|
|
||||||
m_Current = new FloatData("Current",u8"电流值");
|
|
||||||
m_VoltageAlarm = new BoolData("VoltageAlarm", u8"电压报警");
|
|
||||||
m_VoltageAlarmTick = m_LogTick;
|
m_VoltageAlarmTick = m_LogTick;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -13,13 +13,16 @@ Controller::Controller()
|
|||||||
, m_StateCtrlWrapper(nullptr)
|
, m_StateCtrlWrapper(nullptr)
|
||||||
, m_SysParamWrapper(nullptr)
|
, m_SysParamWrapper(nullptr)
|
||||||
, m_AxisRecordWrapper(nullptr)
|
, m_AxisRecordWrapper(nullptr)
|
||||||
, m_SignalStateWrapper(nullptr){
|
, m_SignalStateWrapper(nullptr)
|
||||||
|
, m_sendTdExitFlag(false){
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Controller::~Controller() {
|
Controller::~Controller() {
|
||||||
|
StopSend();
|
||||||
|
|
||||||
DELP(m_CoreCommunication);
|
DELP(m_CoreCommunication);
|
||||||
DELP(m_Axis);
|
DELP(m_Axis);
|
||||||
DELP(m_StateCtrlWrapper);
|
DELP(m_StateCtrlWrapper);
|
||||||
@ -30,6 +33,9 @@ Controller::~Controller() {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void Controller::Init(){
|
void Controller::Init(){
|
||||||
BaseCtrl::SInit();
|
BaseCtrl::SInit();
|
||||||
jc.SInit();
|
jc.SInit();
|
||||||
@ -98,4 +104,30 @@ void Controller::Init(){
|
|||||||
m_Purifier = new XTPurifier(m_ScannerCtrl);
|
m_Purifier = new XTPurifier(m_ScannerCtrl);
|
||||||
}
|
}
|
||||||
m_Purifier->Init();
|
m_Purifier->Init();
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void Controller::StartSend() {
|
||||||
|
|
||||||
|
if (!m_sendParamThread.joinable()) {
|
||||||
|
m_sendParamThread = std::thread([this] {
|
||||||
|
while (!m_sendTdExitFlag) {
|
||||||
|
m_ComServer->SendToClients();
|
||||||
|
|
||||||
|
int count = 8;
|
||||||
|
while (!m_sendTdExitFlag && count--) {
|
||||||
|
this_thread::sleep_for(std::chrono::milliseconds(10));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void Controller::StopSend() {
|
||||||
|
m_sendTdExitFlag = true;
|
||||||
|
if (m_sendParamThread.joinable()) m_sendParamThread.join();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -7,6 +7,7 @@
|
|||||||
#include "../Communication/ComServer.h"
|
#include "../Communication/ComServer.h"
|
||||||
#include "../remote/RemoteClient.h"
|
#include "../remote/RemoteClient.h"
|
||||||
#include "../Purifier/BasePurifier.h"
|
#include "../Purifier/BasePurifier.h"
|
||||||
|
#include <thread>
|
||||||
|
|
||||||
class Controller {
|
class Controller {
|
||||||
public:
|
public:
|
||||||
@ -15,7 +16,8 @@ public:
|
|||||||
|
|
||||||
void Init();
|
void Init();
|
||||||
|
|
||||||
|
void StartSend();
|
||||||
|
void StopSend();
|
||||||
public:
|
public:
|
||||||
Machine* m_Machine;
|
Machine* m_Machine;
|
||||||
CoreCommunication* m_CoreCommunication;
|
CoreCommunication* m_CoreCommunication;
|
||||||
@ -34,4 +36,9 @@ public:
|
|||||||
ScannerCtrl* m_ScannerCtrl;
|
ScannerCtrl* m_ScannerCtrl;
|
||||||
|
|
||||||
MachineCfg* m_MachineCfg;
|
MachineCfg* m_MachineCfg;
|
||||||
|
|
||||||
|
|
||||||
|
private:
|
||||||
|
bool m_sendTdExitFlag;
|
||||||
|
thread m_sendParamThread;
|
||||||
};
|
};
|
@ -62,12 +62,13 @@ void DataHandle::Init() {
|
|||||||
void DataHandle::Run() {
|
void DataHandle::Run() {
|
||||||
if (m_streamServer) m_streamServer->Run();
|
if (m_streamServer) m_streamServer->Run();
|
||||||
|
|
||||||
|
if(m_controller) m_controller->StartSend();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void DataHandle::Stop() {
|
void DataHandle::Stop() {
|
||||||
if(m_streamServer) m_streamServer->Stop();
|
if(m_streamServer) m_streamServer->Stop();
|
||||||
|
if (m_controller) m_controller->StopSend();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -67,3 +67,15 @@ void BasePurifier::WorkRun()
|
|||||||
Sleep(m_CycleTick);
|
Sleep(m_CycleTick);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void BasePurifier::InsertMp(void* startPtr, size_t count, const string& suff) {
|
||||||
|
size_t ptrSize = sizeof(nullptr); //指针大小
|
||||||
|
for (size_t i = 0; i < count; ++i) {
|
||||||
|
BaseData* bd = *((BaseData**)((char*)startPtr + ptrSize * i));
|
||||||
|
string key = bd->GetCode() + suff;
|
||||||
|
if (m_baseMp.find(key) != m_baseMp.end()) {
|
||||||
|
printf("%s is repeated...\n", key.data());
|
||||||
|
}
|
||||||
|
else { m_baseMp.insert(make_pair(key, bd)); }
|
||||||
|
}
|
||||||
|
}
|
@ -4,6 +4,8 @@
|
|||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
#include "../config/bean/IOCfg.h"
|
#include "../config/bean/IOCfg.h"
|
||||||
#include "../config/bean/AlarmCfg.h"
|
#include "../config/bean/AlarmCfg.h"
|
||||||
|
#include "../Communication/BaseData.h"
|
||||||
|
|
||||||
|
|
||||||
class BasePurifier
|
class BasePurifier
|
||||||
{
|
{
|
||||||
@ -50,6 +52,8 @@ public:
|
|||||||
|
|
||||||
virtual void DrawFinishReportRel() {}
|
virtual void DrawFinishReportRel() {}
|
||||||
virtual int GetFilterUseTime() { return 0; }
|
virtual int GetFilterUseTime() { return 0; }
|
||||||
|
|
||||||
|
void SendToClients(WRITETYPE type, const string& addKey = "");
|
||||||
private:
|
private:
|
||||||
static DWORD WINAPI WorkProc(BasePurifier* _this);
|
static DWORD WINAPI WorkProc(BasePurifier* _this);
|
||||||
void WorkRun();
|
void WorkRun();
|
||||||
@ -57,6 +61,9 @@ private:
|
|||||||
public:
|
public:
|
||||||
bool m_PurifierWinShow;
|
bool m_PurifierWinShow;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
void InsertMp(void* startPtr, size_t count, const string& suff);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
ExtCfg* m_ExtCfg;
|
ExtCfg* m_ExtCfg;
|
||||||
HANDLE m_Thread;
|
HANDLE m_Thread;
|
||||||
@ -65,5 +72,8 @@ protected:
|
|||||||
AlarmCfgWrapper* m_AlarmCfgWrapper;
|
AlarmCfgWrapper* m_AlarmCfgWrapper;
|
||||||
int m_CycleTick;
|
int m_CycleTick;
|
||||||
//MachineCfg::PulifierType m_Type;
|
//MachineCfg::PulifierType m_Type;
|
||||||
|
|
||||||
|
unordered_map<std::string, BaseData*> m_baseMp; //大部分使用这个
|
||||||
|
//unordered_map<std::string, AlarmCfg*> m_alarmCfgMp; //
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int main(int argc, char** argv) {
|
int main(int argc, char** argv) {
|
||||||
HBDSystem* hbd = new HBDSystem();
|
HBDSystem* hbd = new HBDSystem();
|
||||||
hbd->Init();
|
hbd->Init();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user