修改辅机功能
This commit is contained in:
parent
02f8764bf8
commit
4a9ae3ebf7
@ -128,7 +128,7 @@ void BaseClient::UpdateCycleCommands()
|
|||||||
|
|
||||||
void BaseClient::InsertMp(void* startPtr, size_t count) {
|
void BaseClient::InsertMp(void* startPtr, size_t count) {
|
||||||
size_t ptrSize = sizeof(nullptr); //指针大小
|
size_t ptrSize = sizeof(nullptr); //指针大小
|
||||||
for (int i = 0; i < count; ++i) {
|
for (size_t i = 0; i < count; ++i) {
|
||||||
BaseData* bd = *((BaseData**)((char*)startPtr + ptrSize * i));
|
BaseData* bd = *((BaseData**)((char*)startPtr + ptrSize * i));
|
||||||
if (m_baseMp.find(bd->GetCode()) != m_baseMp.end()) {
|
if (m_baseMp.find(bd->GetCode()) != m_baseMp.end()) {
|
||||||
printf("%s is repeated...\n", bd->GetCode().data());
|
printf("%s is repeated...\n", bd->GetCode().data());
|
||||||
|
@ -12,6 +12,7 @@ public:
|
|||||||
virtual void SetValue(unsigned short us) {}
|
virtual void SetValue(unsigned short us) {}
|
||||||
virtual void SetValue(short s) {}
|
virtual void SetValue(short s) {}
|
||||||
virtual void SetValue(bool b) {}
|
virtual void SetValue(bool b) {}
|
||||||
|
virtual void SetValue(const string& str) {}
|
||||||
|
|
||||||
//virtual void GetValue(DATATYPE& dataType, float& f) {}
|
//virtual void GetValue(DATATYPE& dataType, float& f) {}
|
||||||
//virtual void GetValue(DATATYPE& dataType, int& i) {}
|
//virtual void GetValue(DATATYPE& dataType, int& i) {}
|
||||||
@ -163,3 +164,18 @@ public:
|
|||||||
private:
|
private:
|
||||||
UCHAR m_value;
|
UCHAR m_value;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class StrData : public BaseData {
|
||||||
|
public:
|
||||||
|
StrData(const std::string& code, const std::string& context)
|
||||||
|
: BaseData(code, context), m_value("") {
|
||||||
|
}
|
||||||
|
~StrData() {}
|
||||||
|
|
||||||
|
void SetValue(const std::string& str) { m_value = str; }
|
||||||
|
DATATYPE GetDataType() { return iSTRING; }
|
||||||
|
//std::string GetValue() { return m_value; }
|
||||||
|
virtual std::string GetValueStr() { return m_value; }
|
||||||
|
private:
|
||||||
|
string m_value;
|
||||||
|
};
|
@ -195,3 +195,16 @@ void ComServer::Startup()
|
|||||||
if (m_PowerMeterClient->GetConfig()->m_Enable)m_PowerMeterClient->Startup();
|
if (m_PowerMeterClient->GetConfig()->m_Enable)m_PowerMeterClient->Startup();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void ComServer::SendToClients() {
|
||||||
|
m_LaserChillerClient->SendToClients();
|
||||||
|
m_UPSClient->SendToClients();
|
||||||
|
m_TempCtrlClient->SendToClients();
|
||||||
|
m_OxygenClient->SendToClients();
|
||||||
|
|
||||||
|
vector<IPGLaserClientV1*> m_LaserClients;
|
||||||
|
PowderSupplySimpleClient* m_SimpleSupplyClient;
|
||||||
|
ScannerPowerClient* m_ScannerPowerClient;
|
||||||
|
m_PowerMeterClient->SendToClients();
|
||||||
|
}
|
@ -23,6 +23,7 @@ public:
|
|||||||
void Init();
|
void Init();
|
||||||
void Startup();
|
void Startup();
|
||||||
|
|
||||||
|
void SendToClients();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
TempCtrlClient* m_TempCtrlClient;
|
TempCtrlClient* m_TempCtrlClient;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#include "OxygenClient.h"
|
#include "OxygenClient.h"
|
||||||
#include "Modbus.h"
|
#include "Modbus.h"
|
||||||
#include <shared_mutex>
|
#include <shared_mutex>
|
||||||
#include "../SystemInfo.h"
|
#include "../SystemInfo.h"
|
||||||
@ -8,6 +8,11 @@ OxygenClient::OxygenClient(CommunicationCfg* pconfig) :TcpClient(pconfig)
|
|||||||
{
|
{
|
||||||
m_Freq = 100;
|
m_Freq = 100;
|
||||||
m_ExtCfg = ConfigManager::GetInstance()->GetExtCfg();
|
m_ExtCfg = ConfigManager::GetInstance()->GetExtCfg();
|
||||||
|
|
||||||
|
//size_t ptrSize = sizeof(nullptr); //指针大小
|
||||||
|
//void* startPtr = &m_DoluyoChillerStat.m_startFlag + 1;
|
||||||
|
//size_t count = ((size_t)&m_DoluyoChillerStat.m_endFlag - (size_t)&startPtr) / ptrSize;
|
||||||
|
//InsertMp(startPtr, count);
|
||||||
}
|
}
|
||||||
|
|
||||||
OxygenClient::~OxygenClient()
|
OxygenClient::~OxygenClient()
|
||||||
@ -16,6 +21,22 @@ OxygenClient::~OxygenClient()
|
|||||||
//OutputDebugString("oxygen close\n");
|
//OutputDebugString("oxygen close\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void OxygenClient::AddToBaseMp(int i, Oxygenstat* stat) {
|
||||||
|
size_t ptrSize = sizeof(nullptr); //指针大小
|
||||||
|
void* startPtr = &stat->m_startFlag + 1;
|
||||||
|
size_t count = ((size_t)&stat->m_endFlag - (size_t)&startPtr) / ptrSize;
|
||||||
|
for (size_t i = 0; i < count; ++i) {
|
||||||
|
BaseData* bd = *((BaseData**)((char*)startPtr + ptrSize * i));
|
||||||
|
string code = bd->GetCode() + "_" + to_string(i); //区分key,添加上"_i"
|
||||||
|
if (m_baseMp.find(code) != m_baseMp.end()) {
|
||||||
|
printf("%s is repeated...\n", code.c_str());
|
||||||
|
}
|
||||||
|
else { m_baseMp.insert(make_pair(code, bd)); }
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
void OxygenClient::InitCommand()
|
void OxygenClient::InitCommand()
|
||||||
{
|
{
|
||||||
map<int, int> tref;
|
map<int, int> tref;
|
||||||
@ -25,6 +46,7 @@ void OxygenClient::InitCommand()
|
|||||||
tref[4] = m_ExtCfg->m_CleanBoxOxygenSensorType;
|
tref[4] = m_ExtCfg->m_CleanBoxOxygenSensorType;
|
||||||
for (int i = 1; i <= 4;i++) {
|
for (int i = 1; i <= 4;i++) {
|
||||||
Oxygenstat* stat = new Oxygenstat();
|
Oxygenstat* stat = new Oxygenstat();
|
||||||
|
AddToBaseMp(i, stat); //添加到map
|
||||||
m_Oxygens[i] = stat;
|
m_Oxygens[i] = stat;
|
||||||
switch (tref[i]) {
|
switch (tref[i]) {
|
||||||
case ExtCfg::MOT500_LOW: {
|
case ExtCfg::MOT500_LOW: {
|
||||||
@ -98,11 +120,11 @@ void OxygenClient::ProcPointInfo(void* pobject, Command* pcommand)
|
|||||||
Oxygenstat* stat = pOD->m_Oxygens[addr];
|
Oxygenstat* stat = pOD->m_Oxygens[addr];
|
||||||
|
|
||||||
EnterCriticalSection(&pOD->m_ValueCS);
|
EnterCriticalSection(&pOD->m_ValueCS);
|
||||||
stat->scale = scale;
|
stat->scale->SetValue(scale);
|
||||||
switch (unit) {
|
switch (unit) {
|
||||||
case 0:stat->valueUnit = "PPM"; break;
|
case 0:stat->valueUnit ->SetValue("PPM"); break;
|
||||||
case 1:stat->valueUnit = "VOL"; break;
|
case 1:stat->valueUnit->SetValue("VOL"); break;
|
||||||
case 2:stat->valueUnit = "LEL"; break;
|
case 2:stat->valueUnit->SetValue("LEL"); break;
|
||||||
}
|
}
|
||||||
LeaveCriticalSection(&pOD->m_ValueCS);
|
LeaveCriticalSection(&pOD->m_ValueCS);
|
||||||
}
|
}
|
||||||
@ -118,7 +140,7 @@ void OxygenClient::PorcConcentrationValue(void* pobject, Command* pcommand)
|
|||||||
Oxygenstat* stat = pOD->m_Oxygens[addr];
|
Oxygenstat* stat = pOD->m_Oxygens[addr];
|
||||||
if (stat->scale == 0)return;
|
if (stat->scale == 0)return;
|
||||||
EnterCriticalSection(&pOD->m_ValueCS);
|
EnterCriticalSection(&pOD->m_ValueCS);
|
||||||
stat->concentrationValue = (float)concentrationValue / stat->scale;
|
stat->concentrationValue->SetValue((float)concentrationValue / stat->scale->GetValue());
|
||||||
LeaveCriticalSection(&pOD->m_ValueCS);
|
LeaveCriticalSection(&pOD->m_ValueCS);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -133,8 +155,8 @@ void OxygenClient::ProcTempInfo(void* pobject, Command* pcommand)
|
|||||||
if (pOD->m_Oxygens.find(addr) == pOD->m_Oxygens.end())return;
|
if (pOD->m_Oxygens.find(addr) == pOD->m_Oxygens.end())return;
|
||||||
Oxygenstat* stat = pOD->m_Oxygens[addr];
|
Oxygenstat* stat = pOD->m_Oxygens[addr];
|
||||||
EnterCriticalSection(&pOD->m_ValueCS);
|
EnterCriticalSection(&pOD->m_ValueCS);
|
||||||
stat->tempValue = (float)tempValue / 10.0f;
|
stat->tempValue->SetValue((float)tempValue / 10.0f);
|
||||||
stat->humidityValue = (float)humidityValue / 100.0f;
|
stat->humidityValue->SetValue((float)humidityValue / 100.0f);
|
||||||
LeaveCriticalSection(&pOD->m_ValueCS);
|
LeaveCriticalSection(&pOD->m_ValueCS);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -252,7 +274,7 @@ void OxygenClient::PorcOxygenValue(void* pobject, Command* pcommand)
|
|||||||
if (pOD->m_Oxygens.find(addr) == pOD->m_Oxygens.end())return;
|
if (pOD->m_Oxygens.find(addr) == pOD->m_Oxygens.end())return;
|
||||||
int value = ((rseq[3] & 0xff) << 24) + ((rseq[4] & 0xff) << 16) + ((rseq[5] & 0xff) << 8) + (rseq[6] & 0xff);
|
int value = ((rseq[3] & 0xff) << 24) + ((rseq[4] & 0xff) << 16) + ((rseq[5] & 0xff) << 8) + (rseq[6] & 0xff);
|
||||||
EnterCriticalSection(&pOD->m_ValueCS);
|
EnterCriticalSection(&pOD->m_ValueCS);
|
||||||
pOD->m_Oxygens[addr]->concentrationValue= (float)value / 100.0f;
|
pOD->m_Oxygens[addr]->concentrationValue->SetValue((float)value / 100.0f);
|
||||||
LeaveCriticalSection(&pOD->m_ValueCS);
|
LeaveCriticalSection(&pOD->m_ValueCS);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -277,17 +299,17 @@ void OxygenClient::ProcNewVersion(void* pobject, Command* pcommand)
|
|||||||
}
|
}
|
||||||
Oxygenstat* stat = pOD->m_Oxygens[addr];
|
Oxygenstat* stat = pOD->m_Oxygens[addr];
|
||||||
EnterCriticalSection(&pOD->m_ValueCS);
|
EnterCriticalSection(&pOD->m_ValueCS);
|
||||||
stat->scale = scale;
|
stat->scale->SetValue(scale);
|
||||||
switch (unit) {
|
switch (unit) {
|
||||||
case 0:stat->valueUnit = "PPM"; break;
|
case 0:stat->valueUnit->SetValue("PPM"); break;
|
||||||
case 1:stat->valueUnit = "VOL"; break;
|
case 1:stat->valueUnit->SetValue("VOL"); break;
|
||||||
case 2:stat->valueUnit = "LEL"; break;
|
case 2:stat->valueUnit->SetValue("LEL"); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(stat->scale!=0)stat->concentrationValue = (float)concentrationValue / stat->scale;
|
if(stat->scale!=0)stat->concentrationValue->SetValue((float)concentrationValue / stat->scale->GetValue());
|
||||||
else stat->concentrationValue = (float)concentrationValue;
|
else stat->concentrationValue->SetValue((float)concentrationValue);
|
||||||
stat->concentrationAgValue = concentrationAgValue;
|
stat->concentrationAgValue->SetValue(concentrationAgValue);
|
||||||
stat->tempValue = (float)tempValue / 10.0f;
|
stat->tempValue->SetValue((float)tempValue / 10.0f);
|
||||||
stat->humidityValue = (float)humidityValue / 1000.0f;
|
stat->humidityValue->SetValue((float)humidityValue / 1000.0f);
|
||||||
LeaveCriticalSection(&pOD->m_ValueCS);
|
LeaveCriticalSection(&pOD->m_ValueCS);
|
||||||
}
|
}
|
@ -1,28 +1,41 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
#include "BaseClient.h"
|
#include "BaseClient.h"
|
||||||
//#include "../config/ConfigManager.h"
|
//#include "../config/ConfigManager.h"
|
||||||
#include <map>
|
#include <map>
|
||||||
#include "../config/bean/ExtCfg.h"
|
#include "../config/bean/ExtCfg.h"
|
||||||
|
|
||||||
|
#pragma pack(1)
|
||||||
class Oxygenstat
|
class Oxygenstat
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
explicit Oxygenstat() {
|
explicit Oxygenstat()
|
||||||
concentrationValue = 0.0f;
|
: concentrationValue(new FloatData("concentrationValue",u8"浓度值"))
|
||||||
valueUnit = "";
|
, valueUnit(new StrData("valueUnit",u8"浓度单位"))
|
||||||
scale = 1;
|
, scale(new IntData("scale",u8"数值放大倍数"))
|
||||||
tempValue = 0.0f;
|
, tempValue(new FloatData("tempValue",u8"温度值"))
|
||||||
humidityValue = 0.0f;
|
, humidityValue(new FloatData("humidityValue",u8"湿度值"))
|
||||||
concentrationAgValue = 0.0f;
|
, concentrationAgValue(new FloatData("concentrationAgValue",u8"模拟量"))
|
||||||
|
{
|
||||||
|
//concentrationValue = 0.0f;
|
||||||
|
//valueUnit = "";
|
||||||
|
//scale = 1;
|
||||||
|
//tempValue = 0.0f;
|
||||||
|
//humidityValue = 0.0f;
|
||||||
|
//concentrationAgValue = 0.0f;
|
||||||
}
|
}
|
||||||
public:
|
public:
|
||||||
BaseStat baseStat;
|
BaseStat baseStat;
|
||||||
float concentrationValue; //浓度值
|
|
||||||
string valueUnit; //浓度单位
|
char m_startFlag;
|
||||||
int scale; //数值放大倍数
|
FloatData* concentrationValue; //浓度值
|
||||||
float tempValue; //温度值
|
StrData* valueUnit; //浓度单位
|
||||||
float humidityValue; //湿度值
|
IntData* scale; //数值放大倍数
|
||||||
float concentrationAgValue; //模拟量
|
FloatData* tempValue; //温度值
|
||||||
|
FloatData* humidityValue; //湿度值
|
||||||
|
FloatData* concentrationAgValue; //模拟量
|
||||||
|
char m_endFlag;
|
||||||
};
|
};
|
||||||
|
#pragma pack()
|
||||||
|
|
||||||
class OxygenClient :public TcpClient
|
class OxygenClient :public TcpClient
|
||||||
{
|
{
|
||||||
@ -40,7 +53,7 @@ protected:
|
|||||||
virtual void ReadTimeoutProc(Command* pcommand);
|
virtual void ReadTimeoutProc(Command* pcommand);
|
||||||
virtual void ReadSuccessProc(int rlength, unsigned char* buffer, Command* pcommand);
|
virtual void ReadSuccessProc(int rlength, unsigned char* buffer, Command* pcommand);
|
||||||
|
|
||||||
|
void AddToBaseMp(int i, Oxygenstat* stat);
|
||||||
private:
|
private:
|
||||||
void static PorcOxygenValue(void* pobject, Command* pcommand);
|
void static PorcOxygenValue(void* pobject, Command* pcommand);
|
||||||
void static ProcPointInfo(void* pobject, Command* pcommand);
|
void static ProcPointInfo(void* pobject, Command* pcommand);
|
||||||
|
@ -73,8 +73,8 @@ void PowerMeterClient::ProcUnitValue(void* pobject, Command* pcommand)
|
|||||||
unsigned char* rseq = pcommand->m_RespSeq;
|
unsigned char* rseq = pcommand->m_RespSeq;
|
||||||
|
|
||||||
EnterCriticalSection(&pmc->m_ValueCS);
|
EnterCriticalSection(&pmc->m_ValueCS);
|
||||||
pmc->m_State.irAt =(float) ((rseq[3] & 0xff) << 8) + (rseq[4] & 0xff);
|
pmc->m_State.irAt ->SetValue((float) ((rseq[3] & 0xff) << 8) + (rseq[4] & 0xff));
|
||||||
pmc->m_State.urAt = (((rseq[5] & 0xff) << 8) + (rseq[6] & 0xff))*0.1f;
|
pmc->m_State.urAt->SetValue((((rseq[5] & 0xff) << 8) + (rseq[6] & 0xff)) * 0.1f);
|
||||||
LeaveCriticalSection(&pmc->m_ValueCS);
|
LeaveCriticalSection(&pmc->m_ValueCS);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -89,9 +89,10 @@ void PowerMeterClient::PorcPowerValue(void* pobject, Command* pcommand)
|
|||||||
q1Eq.Desc(&rseq[43]);
|
q1Eq.Desc(&rseq[43]);
|
||||||
|
|
||||||
EnterCriticalSection(&pmc->m_ValueCS);
|
EnterCriticalSection(&pmc->m_ValueCS);
|
||||||
pmc->m_State.impEp = impEp.fValue*pmc->m_State.urAt*pmc->m_State.irAt;
|
float urat = pmc->m_State.urAt->GetValue(), irat = pmc->m_State.irAt->GetValue();
|
||||||
pmc->m_State.expEp = expEp.fValue*pmc->m_State.urAt*pmc->m_State.irAt;
|
pmc->m_State.impEp->SetValue(impEp.fValue * urat * irat);
|
||||||
pmc->m_State.q1Eq = q1Eq.fValue*pmc->m_State.urAt*pmc->m_State.irAt;
|
pmc->m_State.expEp->SetValue(expEp.fValue * urat * irat);
|
||||||
|
pmc->m_State.q1Eq->SetValue(q1Eq.fValue * urat * irat);
|
||||||
LeaveCriticalSection(&pmc->m_ValueCS);
|
LeaveCriticalSection(&pmc->m_ValueCS);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -105,10 +106,12 @@ void PowerMeterClient::PorcPowerValue2(void* pobject, Command* pcommand)
|
|||||||
q3Eq.Desc(&rseq[23]);
|
q3Eq.Desc(&rseq[23]);
|
||||||
q4Eq.Desc(&rseq[43]);
|
q4Eq.Desc(&rseq[43]);
|
||||||
|
|
||||||
|
|
||||||
EnterCriticalSection(&pmc->m_ValueCS);
|
EnterCriticalSection(&pmc->m_ValueCS);
|
||||||
pmc->m_State.q2Eq = q2Eq.fValue*pmc->m_State.urAt*pmc->m_State.irAt;
|
float urat = pmc->m_State.urAt->GetValue(), irat = pmc->m_State.irAt->GetValue();
|
||||||
pmc->m_State.q3Eq = q3Eq.fValue*pmc->m_State.urAt*pmc->m_State.irAt;
|
pmc->m_State.q2Eq->SetValue(q2Eq.fValue * urat * irat);
|
||||||
pmc->m_State.q4Eq = q4Eq.fValue*pmc->m_State.urAt*pmc->m_State.irAt;
|
pmc->m_State.q3Eq->SetValue(q3Eq.fValue * urat * irat);
|
||||||
|
pmc->m_State.q4Eq->SetValue(q4Eq.fValue * urat * irat);
|
||||||
LeaveCriticalSection(&pmc->m_ValueCS);
|
LeaveCriticalSection(&pmc->m_ValueCS);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -146,29 +149,30 @@ void PowerMeterClient::PorcVoltageValue(void* pobject, Command* pcommand)
|
|||||||
qb.Desc(&rseq[flag += 4]);
|
qb.Desc(&rseq[flag += 4]);
|
||||||
qc.Desc(&rseq[flag += 4]);
|
qc.Desc(&rseq[flag += 4]);
|
||||||
|
|
||||||
|
EnterCriticalSection(&pmc->m_ValueCS); //wxxtest
|
||||||
|
float urat = pmc->m_State.urAt->GetValue();
|
||||||
|
float irat = pmc->m_State.irAt->GetValue();
|
||||||
|
float t_uab = uab.fValue * urat * 0.1f;
|
||||||
|
float t_ubc = ubc.fValue * urat * 0.1f;
|
||||||
|
float t_uca = uca.fValue * urat * 0.1f;
|
||||||
|
|
||||||
float t_uab = uab.fValue*pmc->m_State.urAt*0.1f;
|
pmc->m_State.uab->SetValue(t_uab);
|
||||||
float t_ubc = ubc.fValue*pmc->m_State.urAt*0.1f;
|
pmc->m_State.ubc->SetValue(t_ubc);
|
||||||
float t_uca = uca.fValue*pmc->m_State.urAt*0.1f;
|
pmc->m_State.uca->SetValue(t_uca);
|
||||||
|
pmc->m_State.ua->SetValue(ua.fValue * urat * 0.1f);
|
||||||
EnterCriticalSection(&pmc->m_ValueCS);
|
pmc->m_State.ub->SetValue(ub.fValue * urat * 0.1f);
|
||||||
pmc->m_State.uab = t_uab;
|
pmc->m_State.uc->SetValue(uc.fValue * urat * 0.1f);
|
||||||
pmc->m_State.ubc = t_ubc;
|
pmc->m_State.ia->SetValue(ia.fValue * irat * 0.001f);
|
||||||
pmc->m_State.uca = t_uca;
|
pmc->m_State.ib->SetValue(ib.fValue * irat * 0.001f);
|
||||||
pmc->m_State.ua = ua.fValue*pmc->m_State.urAt*0.1f;
|
pmc->m_State.ic->SetValue(ic.fValue * irat * 0.001f);
|
||||||
pmc->m_State.ub = ub.fValue*pmc->m_State.urAt*0.1f;
|
pmc->m_State.pt->SetValue(pt.fValue * urat * irat * 0.1f);
|
||||||
pmc->m_State.uc = uc.fValue*pmc->m_State.urAt*0.1f;
|
pmc->m_State.pa->SetValue(pa.fValue * urat * irat * 0.1f);
|
||||||
pmc->m_State.ia = ia.fValue*pmc->m_State.irAt*0.001f;
|
pmc->m_State.pb->SetValue(pb.fValue * urat * irat * 0.1f);
|
||||||
pmc->m_State.ib = ib.fValue*pmc->m_State.irAt*0.001f;
|
pmc->m_State.pc->SetValue(pc.fValue * urat * irat * 0.1f);
|
||||||
pmc->m_State.ic = ic.fValue*pmc->m_State.irAt*0.001f;
|
pmc->m_State.qt->SetValue(qt.fValue * urat * irat * 0.1f);
|
||||||
pmc->m_State.pt = pt.fValue*pmc->m_State.urAt*pmc->m_State.irAt*0.1f;
|
pmc->m_State.qa->SetValue(qa.fValue * urat * irat * 0.1f);
|
||||||
pmc->m_State.pa = pa.fValue*pmc->m_State.urAt*pmc->m_State.irAt*0.1f;
|
pmc->m_State.qb->SetValue(qb.fValue * urat * irat * 0.1f);
|
||||||
pmc->m_State.pb = pb.fValue*pmc->m_State.urAt*pmc->m_State.irAt*0.1f;
|
pmc->m_State.qc->SetValue(qc.fValue * urat * irat * 0.1f);
|
||||||
pmc->m_State.pc = pc.fValue*pmc->m_State.urAt*pmc->m_State.irAt*0.1f;
|
|
||||||
pmc->m_State.qt = qt.fValue*pmc->m_State.urAt*pmc->m_State.irAt*0.1f;
|
|
||||||
pmc->m_State.qa = qa.fValue*pmc->m_State.urAt*pmc->m_State.irAt*0.1f;
|
|
||||||
pmc->m_State.qb = qb.fValue*pmc->m_State.urAt*pmc->m_State.irAt*0.1f;
|
|
||||||
pmc->m_State.qc = qc.fValue*pmc->m_State.urAt*pmc->m_State.irAt*0.1f;
|
|
||||||
LeaveCriticalSection(&pmc->m_ValueCS);
|
LeaveCriticalSection(&pmc->m_ValueCS);
|
||||||
|
|
||||||
float umin = 380.0*(1.0f - pmc->m_RunCfg->m_VoltageAlarmOffset/100.0f);
|
float umin = 380.0*(1.0f - pmc->m_RunCfg->m_VoltageAlarmOffset/100.0f);
|
||||||
@ -204,11 +208,11 @@ void PowerMeterClient::PorcVoltageValue2(void* pobject, Command* pcommand)
|
|||||||
freq.Desc(&rseq[55]);
|
freq.Desc(&rseq[55]);
|
||||||
|
|
||||||
EnterCriticalSection(&pmc->m_ValueCS);
|
EnterCriticalSection(&pmc->m_ValueCS);
|
||||||
pmc->m_State.pft = pft.fValue*0.001f;
|
pmc->m_State.pft->SetValue(pft.fValue * 0.001f);
|
||||||
pmc->m_State.pfa = pfa.fValue*0.001f;
|
pmc->m_State.pfa->SetValue(pfa.fValue * 0.001f);
|
||||||
pmc->m_State.pfb = pfb.fValue*0.001f;
|
pmc->m_State.pfb->SetValue(pfb.fValue * 0.001f);
|
||||||
pmc->m_State.pfc = pfc.fValue*0.001f;
|
pmc->m_State.pfc->SetValue(pfc.fValue * 0.001f);
|
||||||
pmc->m_State.freq = freq.fValue*0.01f;
|
pmc->m_State.freq->SetValue(freq.fValue * 0.01f);
|
||||||
LeaveCriticalSection(&pmc->m_ValueCS);
|
LeaveCriticalSection(&pmc->m_ValueCS);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -7,73 +7,107 @@
|
|||||||
class PowerStat
|
class PowerStat
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
PowerStat() {
|
PowerStat()
|
||||||
uab = 0.0f ;
|
: uab(new FloatData("uab", u8"uab"))
|
||||||
ubc = 0.0f ;
|
, ubc(new FloatData("ubc", u8"ubc"))
|
||||||
uca = 0.0f ;
|
, uca(new FloatData("uca", u8"uca"))
|
||||||
ua = 0.0f ;
|
, ua(new FloatData("ua", u8"ua"))
|
||||||
ub = 0.0f ;
|
, ub(new FloatData("ub", u8"ub"))
|
||||||
uc = 0.0f ;
|
, uc(new FloatData("uc", u8"uc"))
|
||||||
ia = 0.0f ;
|
, ia(new FloatData("ia", u8"ia"))
|
||||||
ib = 0.0f ;
|
, ib(new FloatData("ib", u8"ib"))
|
||||||
ic = 0.0f ;
|
, ic(new FloatData("ic", u8"ic"))
|
||||||
pt = 0.0f ;
|
, pt(new FloatData("pt", u8"pt"))
|
||||||
pa = 0.0f ;
|
, pa(new FloatData("pa", u8"pa"))
|
||||||
pb = 0.0f ;
|
, pc(new FloatData("pc", u8"pc"))
|
||||||
pc = 0.0f ;
|
, qt(new FloatData("qt", u8"qt"))
|
||||||
qt = 0.0f ;
|
, qa(new FloatData("qa", u8"qa"))
|
||||||
qa = 0.0f ;
|
, qb(new FloatData("qb", u8"qb"))
|
||||||
qb = 0.0f ;
|
, qc(new FloatData("qc", u8"qc"))
|
||||||
qc = 0.0f ;
|
, pft(new FloatData("pft", u8"pft"))
|
||||||
pft = 0.0f ;
|
, pfa(new FloatData("pfa", u8"pfa"))
|
||||||
pfa = 0.0f ;
|
, pfb(new FloatData("pfb", u8"pfb"))
|
||||||
pfb = 0.0f ;
|
, pfc(new FloatData("pfc", u8"pfc"))
|
||||||
pfc = 0.0f ;
|
, freq(new FloatData("freq", u8"freq"))
|
||||||
freq = 0.0f ;
|
, impEp(new FloatData("impEp", u8"impEp"))
|
||||||
impEp=0.0f;
|
, expEp(new FloatData("expEp", u8"expEp"))
|
||||||
expEp = 0.0f;
|
, q1Eq(new FloatData("q1Eq", u8"q1Eq"))
|
||||||
q1Eq = 0.0f;
|
, q2Eq(new FloatData("q2Eq", u8"q2Eq"))
|
||||||
q2Eq = 0.0f;
|
, q3Eq(new FloatData("q3Eq", u8"q3Eq"))
|
||||||
q3Eq = 0.0f;
|
, q4Eq(new FloatData("q4Eq", u8"q4Eq"))
|
||||||
q4Eq = 0.0f;
|
, irAt(new FloatData("irAt", u8"irAt"))
|
||||||
|
, urAt(new FloatData("urAt", u8"urAt"))
|
||||||
|
|
||||||
irAt = 0.0f;
|
{
|
||||||
urAt = 0.0f;
|
//uab = 0.0f ;
|
||||||
|
//ubc = 0.0f ;
|
||||||
|
//uca = 0.0f ;
|
||||||
|
//ua = 0.0f ;
|
||||||
|
//ub = 0.0f ;
|
||||||
|
//uc = 0.0f ;
|
||||||
|
//ia = 0.0f ;
|
||||||
|
//ib = 0.0f ;
|
||||||
|
//ic = 0.0f ;
|
||||||
|
//pt = 0.0f ;
|
||||||
|
//pa = 0.0f ;
|
||||||
|
//pb = 0.0f ;
|
||||||
|
//pc = 0.0f ;
|
||||||
|
//qt = 0.0f ;
|
||||||
|
//qa = 0.0f ;
|
||||||
|
//qb = 0.0f ;
|
||||||
|
//qc = 0.0f ;
|
||||||
|
//pft = 0.0f ;
|
||||||
|
//pfa = 0.0f ;
|
||||||
|
//pfb = 0.0f ;
|
||||||
|
//pfc = 0.0f ;
|
||||||
|
//freq = 0.0f ;
|
||||||
|
//impEp=0.0f;
|
||||||
|
//expEp = 0.0f;
|
||||||
|
//q1Eq = 0.0f;
|
||||||
|
//q2Eq = 0.0f;
|
||||||
|
//q3Eq = 0.0f;
|
||||||
|
//q4Eq = 0.0f;
|
||||||
|
|
||||||
|
//irAt = 0.0f;
|
||||||
|
//urAt = 0.0f;
|
||||||
}
|
}
|
||||||
public:
|
public:
|
||||||
//BaseStat baseStat;
|
//BaseStat baseStat;
|
||||||
float uab;
|
char m_startFlag;
|
||||||
float ubc;
|
|
||||||
float uca;
|
|
||||||
float ua;
|
|
||||||
float ub;
|
|
||||||
float uc;
|
|
||||||
float ia;
|
|
||||||
float ib;
|
|
||||||
float ic;
|
|
||||||
float pt;
|
|
||||||
float pa;
|
|
||||||
float pb;
|
|
||||||
float pc;
|
|
||||||
float qt;
|
|
||||||
float qa;
|
|
||||||
float qb;
|
|
||||||
float qc;
|
|
||||||
float pft;
|
|
||||||
float pfa;
|
|
||||||
float pfb;
|
|
||||||
float pfc;
|
|
||||||
float freq;
|
|
||||||
|
|
||||||
float impEp;
|
FloatData* uab;
|
||||||
float expEp;
|
FloatData* ubc;
|
||||||
float q1Eq;
|
FloatData* uca;
|
||||||
float q2Eq;
|
FloatData* ua;
|
||||||
float q3Eq;
|
FloatData* ub;
|
||||||
float q4Eq;
|
FloatData* uc;
|
||||||
|
FloatData* ia;
|
||||||
|
FloatData* ib;
|
||||||
|
FloatData* ic;
|
||||||
|
FloatData* pt;
|
||||||
|
FloatData* pa;
|
||||||
|
FloatData* pb;
|
||||||
|
FloatData* pc;
|
||||||
|
FloatData* qt;
|
||||||
|
FloatData* qa;
|
||||||
|
FloatData* qb;
|
||||||
|
FloatData* qc;
|
||||||
|
FloatData* pft;
|
||||||
|
FloatData* pfa;
|
||||||
|
FloatData* pfb;
|
||||||
|
FloatData* pfc;
|
||||||
|
FloatData* freq;
|
||||||
|
FloatData* impEp;
|
||||||
|
FloatData* expEp;
|
||||||
|
FloatData* q1Eq;
|
||||||
|
FloatData* q2Eq;
|
||||||
|
FloatData* q3Eq;
|
||||||
|
FloatData* q4Eq;
|
||||||
|
FloatData* irAt;
|
||||||
|
FloatData* urAt;
|
||||||
|
|
||||||
|
char m_endFlag;
|
||||||
|
|
||||||
float irAt;
|
|
||||||
float urAt;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class PowerMeterClient:public TcpClient
|
class PowerMeterClient:public TcpClient
|
||||||
|
Loading…
x
Reference in New Issue
Block a user