private PvData CreatePvData(DaegunPacketClass _packet)
        {
            DaegunMeterPacket pv_pack = _packet.Packet.Pv;
            PvData            pv      = new PvData();

            pv.deviceId             = $"DS{_packet.Packet.sSiteId}_PV{pv_pack.DeviceIndex}";
            pv.groupId              = 3;
            pv.siteId               = _packet.Packet.sSiteId;
            pv.groupName            = "PV_SYSTEM";
            pv.TotalActivePower     = pv_pack.TotalActivePower;
            pv.TotalReactivePower   = pv_pack.TotalReactivePower;
            pv.ReverseActivePower   = pv_pack.ReverseActivePower;
            pv.ReverseReactivePower = pv_pack.ReverseReactivePower;
            pv.vltR      = pv_pack.Voltage.R;
            pv.vltS      = pv_pack.Voltage.S;
            pv.vltT      = pv_pack.Voltage.T;
            pv.crtR      = pv_pack.Current.R;
            pv.crtS      = pv_pack.Current.S;
            pv.crtT      = pv_pack.Current.T;
            pv.Frequency = pv_pack.Frequency;
            pv.EnergyTotalActivePower        = pv_pack.EnergyTotalActivePower;
            pv.EnergyTotalReactivePower      = pv_pack.EnergyTotalReactivePower;
            pv.EnergyTotalReverseActivePower = pv_pack.EnergyTotalReverseActivePower;
            pv.timestamp = _packet.Timestamp;
            return(pv);
        }
예제 #2
0
        public static bool ConvertPcs(DaegunPacket packet, DateTime timestamp, ref string pcs_string, ref string bms_string, ref string pv_string)
        {
            DaegunPcsPacket   pcsPacket        = packet.Pcs;
            DaegunBSCPacket   bmsPacket        = packet.Bsc;
            DaegunMeterPacket bms_meter_packet = packet.Ess;
            DaegunMeterPacket pv_pack          = packet.Pv;
            JObject           obj = CreateTemporary(1, "PCS_SYSTEM", $"PCS{pcsPacket.PcsNumber}", packet.sSiteId, timestamp);

            obj.Add("freq", pcsPacket.Frequency);
            obj.Add("acGridVlt", 0);
            obj.Add("acGridCrtLow", 0);
            obj.Add("acGridCrtHigh", 0);
            obj.Add("acGridPwr", 0);
            obj.Add("actPwrKw", pcsPacket.ActivePower);
            obj.Add("rctPwrKw", pcsPacket.ReactivePower);
            obj.Add("pwrFact", pcsPacket.PowerFactor);
            obj.Add("acGridVltR", pcsPacket.AC_phase_voltage.R);
            obj.Add("acGridVltS", pcsPacket.AC_phase_voltage.S);
            obj.Add("acGridVltT", pcsPacket.AC_phase_voltage.T);
            obj.Add("acGridCrtR", pcsPacket.AC_phase_current.R);
            obj.Add("acGridCrtS", pcsPacket.AC_phase_current.S);
            obj.Add("acGridCrtT", pcsPacket.AC_phase_current.T);
            obj.Add("actCmdLimitLowChg", 0);
            obj.Add("actCmdLimitLowDhg", 0);
            obj.Add("actCmdLimitHighChg", bmsPacket.ChargePowerLimit);
            obj.Add("actCmdLimitHighDhg", bmsPacket.DischargePowerLimit);
            pcs_string = obj.ToString();

            obj = CreateTemporary(2, "PCS_BATTERY", $"BMS{bmsPacket.PcsIndex}", packet.sSiteId, timestamp);
            obj.Add("bms_soc", bmsPacket.Soc);
            obj.Add("bms_soh", bmsPacket.Soh);
            obj.Add("dcCellPwr", packet.Pcs.Dc_battery_power);
            obj.Add("dcCellVlt", packet.Pcs.Dc_battery_voltage);
            obj.Add("dcCellCrt", packet.Pcs.Dc_battery_current);
            obj.Add("dcCellTmpMx", packet.Bsc.ModuleTempRange.Max);
            obj.Add("dcCellTmpMn", packet.Bsc.ModuleTempRange.Min);
            obj.Add("dcCellVltMx", packet.Bsc.CellVoltageRange.Max);
            obj.Add("dcCellVltMn", packet.Bsc.CellVoltageRange.Min);
            bms_string = obj.ToString();

            obj = CreateTemporary(4, "PV_SYSTEM", $"PV{pv_pack.PmsIndex}", packet.sSiteId, timestamp);
            obj.Add("TotalActivePower", pv_pack.TotalActivePower);
            obj.Add("TotalReactivePower", pv_pack.TotalReactivePower);
            obj.Add("ReverseActivePower", pv_pack.ReverseActivePower);
            obj.Add("ReverseReactivePower", pv_pack.ReverseReactivePower);
            obj.Add("vltR", pv_pack.Voltage.R);
            obj.Add("vltS", pv_pack.Voltage.S);
            obj.Add("vltT", pv_pack.Voltage.T);
            obj.Add("crtR", pv_pack.Current.R);
            obj.Add("crtS", pv_pack.Current.S);
            obj.Add("crtT", pv_pack.Current.T);
            obj.Add("Frequency", pv_pack.Frequency);
            if (pv_pack.EnergyTotalActivePower != 0)
            {
            }
            obj.Add("EnergyTotalActivePower", pv_pack.EnergyTotalActivePower);
            obj.Add("EnergyTotalReactivePower", pv_pack.EnergyTotalReactivePower);
            obj.Add("EnergyTotalReverseActivePower", pv_pack.EnergyTotalReverseActivePower);
            pv_string = obj.ToString();
            return(true);
        }