package dataStruct type CollectData struct { Slave *DtuSlave MeterRef *MeterRef //电表参数 PT int //电压变比 CT int //电流变比 //电表参数 P float32 Pa float32 Pb float32 Pc float32 Q float32 Qa float32 Qb float32 Qc float32 Pf float32 Pfa float32 Pfb float32 Pfc float32 Ia float32 Ib float32 Ic float32 Iz float32 Ua float32 Ub float32 Uc float32 Uab float32 Ubc float32 Uca float32 Uaw float32 Ubw float32 Ucw float32 Uabw float32 Ubcw float32 Ucaw float32 Pv float32 Freq float32 Fw float32 Dp float32 //需量负荷 IUnbalance float32 //电流不平衡度 UUnbalance float32 //电压不平衡度 TemperatureA float32 TemperatureB float32 TemperatureC float32 TemperatureZ float32 Tps float32 Tqs float32 Fps float32 Fqs float32 Tpe float32 Tqe float32 Fpe float32 Fqe float32 BaseIa float32 BaseIb float32 BaseIc float32 BaseUa float32 BaseUb float32 BaseUc float32 HarIa float32 HarIb float32 HarIc float32 HarUa float32 HarUb float32 HarUc float32 IaHar float32 IbHar float32 IcHar float32 UaHar float32 UbHar float32 UcHar float32 Hia [15]float32 //A相3-31奇次电流谐波 Hib [15]float32 //B相3-31奇次电流谐波 Hic [15]float32 //C相3-31奇次电流谐波 Hua [15]float32 //A相3-31奇次电压谐波 Hub [15]float32 //B相3-31奇次电压谐波 Huc [15]float32 //C相3-31奇次电压谐波 } // CalcDiff 计算偏差 func (d *CollectData) CalcDiff() { ref := d.MeterRef d.Fw = d.Freq - float32(50.0) d.Uaw = (d.Ua - ref.LvRef) * float32(100.0) / ref.LvRef d.Ubw = (d.Ub - ref.LvRef) * float32(100.0) / ref.LvRef d.Ucw = (d.Uc - ref.LvRef) * float32(100.0) / ref.LvRef d.Uabw = (d.Uab - ref.PvRef) * float32(100.0) / ref.PvRef d.Ubcw = (d.Ubc - ref.PvRef) * float32(100.0) / ref.PvRef d.Ucaw = (d.Uca - ref.PvRef) * float32(100.0) / ref.PvRef } // CalcWithParam 计算电表部分数据 func (d *CollectData) CalcWithParam(m *MeterCalcParam) { m.CalcAndSetPowerRate(d) m.CalcAndSetDayEnergy(d) m.SetTotalEnergy(d) d.Tpe = m.DayTotalEnergy.Tp d.Tqe = m.DayTotalEnergy.Tq d.Fpe = m.DayTotalEnergy.Fp d.Fqe = m.DayTotalEnergy.Fq d.Pv = m.CalcRate() }