⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 calmulenergy.h

📁 计算电能的有功功率
💻 H
字号:

#ifndef calmulenergy_h
#define calmulenergy_h
#define DEFINE_VC
typedef unsigned char BYTE;
typedef unsigned long int DWORD;
typedef int INT;
typedef long int LINT;
//费率定义
#define FSDN_ALL     0
#define FSDN_SHARP   1
#define FSDN_PEAK    2
#define FSDN_FLAT    3
#define FSDN_VALLAY  4
//象限定义
#define  QUADRANT_I   0
#define  QUADRANT_IV  1
#define  QUADRANT_II  2
#define  QUADRANT_III 3

//输出脉冲定义
#define  PULSE_EP 0
#define  PULSE_EQ 1 

#ifdef DEFINE_VC
#define  POWER_FORMAT_SCALE (14077*12165)
typedef  double              S64;
#define  POWER_3N    33000
#define  POWER_N     11000
#endif

typedef struct {
	DWORD All;/*总电能*/
	DWORD Sharp;/*尖峰电能*/
	DWORD Peak;/*峰电能*/
	DWORD Flat;/*平电能*/
	DWORD Valley;/*谷电能*/
	//以下本次没有要求作为扩充
	//DWORD Rate5;/*费率5电能*/
	//DWORD Rate6;/*费率6电能*/
	//DWORD Rate7;/*费率7电能*/
	//DWORD Rate8;/*费率8电能*/	
} FSDN_TYPE;/*分时电能类型*/

typedef struct {
	struct ENERGY_DATA_TYPE {
		FSDN_TYPE Positive_Ep;   /*正向有功电能*/
		FSDN_TYPE Negative_Ep;   /*反向有功电能*/
		FSDN_TYPE QuadrantI_Eq;  /*第I象限无功电能*/
		FSDN_TYPE QuadrantIV_Eq; /*第IV象限无功电能*/
		FSDN_TYPE QuadrantII_Eq; /*第II象限无功电能*/
		FSDN_TYPE QuadrantIII_Eq;/*第III象限无功电能*/
		//以下本次没有要求作为扩充
		//FSDN_TYPE All_Eq;        /*总无功电能*/
		//FSDN_TYPE Positive_Eq;   /*正向无功电能*/
		//FSDN_TYPE Negative_Eq;   /*反向无功电能*/
	}Data; /*10*9*4=360字节*/
	struct ENERGY_PARA_TYPE {
		    short Reserve[6];
	} Para;/*96字节*/
}ENERGY_TYPE;/*电能类型*/

struct ENERGY_PRIVATE_PARA_TYPE {
	WORD ConstEp;/*电表有功常数*/
	WORD ConstEq;/*电表无功常数*/
	WORD WireMode;/*接线方式:0三相四线、1三相三线*/
	WORD Rate;    //当前的费率
	WORD PulseType;//脉冲口输出类型 0:有功 1:无功
    WORD Kp;/*每个有功字有Kp个有功脉冲*/
    WORD Kq;/*每个无功字有Kp个无功脉冲*/
};
struct ENERGY_PRIVATE_DATA_TYPE {
		BYTE Ep;    /*有功电能脉冲,单位:kwh/有功脉冲常数*/
		BYTE Eq;    /*无功电能脉冲,单位:kvarh/无功脉冲常数*/
		BYTE FastEp;/*有功快速电能脉冲,单位:kwh/有功脉冲常数/10*/
		BYTE FastEq;/*无功快速电能脉冲,单位:kvarh/无功脉冲常数/10*/
		BYTE Quadrant;/*象限,0I象限,1IV象限,2II象限,3III象限。等效意义:bit7:有功方向0正1负;bit6:无功方向0正1负*/
    	BYTE PieceEp;
  	    BYTE PieceEq;
 }; //

class  CalMulEnergy
{
public:
	 ENERGY_PRIVATE_PARA_TYPE  PrivatePara;
	 ENERGY_PRIVATE_DATA_TYPE  PrivateData;
	 S64 lp,lq;
public:
	 void GetRate(void);//取得当前的费率
public:
	 ENERGY_TYPE  EnergyData;
public:
    CalMulEnergy(void);
	~CalMulEnergy(void){;};
	void  CalcuPulse(long p,long q);
	void  PulseOut(short n);//输出 n个脉冲
	void  Init(void);
	void  Exec(void);
	void  Save(void);
	void  Transfer(void);
	void  Clear(void);
	void  Freeze(void); 	
};
extern CalMulEnergy MulEnergy;
#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -