Для изменения размера нажмите или перетащите

Получение данных по точке учета

Пример 1

Получение данных интегральной активной энергии в прямом направлении за 30 минут по точке учета, установленной на вводе указанной ТП.

C#
// Поиск ТП
var substation = LowVoltageSubstation.GetInstances().First(x => x.AttributeCaption == "ТП-1234");
// Поиск ячейки ввода Т-1
var cubicle = substation.AttributeSwitchgears.GetValues()
    .SelectMany(x => x.AttributeBusbarSections.GetValues())
    .SelectMany(x => x.AttributeCubicles.GetValues())
    .OfType<CubiclePowerTransformerLowSide>()
    .First(x => x.AttributeCaption == "Т-1");
// Поиск ТУ ячейки
var meterPoint = cubicle.AttributeMeterPoint;

// Вывод информации о получасовом потреблении активной энергии за вчерашний день 
foreach(var val in meterPoint.GetMeterPointFinalData(DirectionBasedParameter.Instances.EnergyActiveForward30Min, 
    new DayIntervalData { StartDt = DateTime.Today.AddDays(-1), EndDt = DateTime.Today } ))
    Console.WriteLine("{0} {1}", val.ValueDt.GetValueOrDefault(), val.Value);
Пример 2

Получение данных о текущих параметрах электрической сети по точке учёта.

C#
// Массив текущих параметров электрической сети
var momentParameters = new Parameter[] 
{
    ThreePhaseParameter.Instances.VoltagePhase1,
    ThreePhaseParameter.Instances.VoltagePhase2,
    ThreePhaseParameter.Instances.VoltagePhase3,

    ThreePhaseParameter.Instances.CurrentPhase1,
    ThreePhaseParameter.Instances.CurrentPhase2,
    ThreePhaseParameter.Instances.CurrentPhase3,

    ThreePhaseParameter.Instances.ActivePowerPhase1,
    ThreePhaseParameter.Instances.ActivePowerPhase2,
    ThreePhaseParameter.Instances.ActivePowerPhase3,
    ThreePhaseParameter.Instances.ActivePowerSummary,

    ThreePhaseParameter.Instances.ReactivePowerPhase1,
    ThreePhaseParameter.Instances.ReactivePowerPhase2,
    ThreePhaseParameter.Instances.ReactivePowerPhase3,
    ThreePhaseParameter.Instances.ReactivePowerSummary,

    ThreePhaseParameter.Instances.ApparentPowerPhase1,
    ThreePhaseParameter.Instances.ApparentPowerPhase2,
    ThreePhaseParameter.Instances.ApparentPowerPhase3,
    ThreePhaseParameter.Instances.ApparentPowerPhaseSummary,

    ThreePhaseParameter.Instances.PowerFactorPhase1,
    ThreePhaseParameter.Instances.PowerFactorPhase2,
    ThreePhaseParameter.Instances.PowerFactorPhase3,

    ThreePhaseParameter.Instances.VoltageCurrentAnglePhase1,
    ThreePhaseParameter.Instances.VoltageCurrentAnglePhase2,
    ThreePhaseParameter.Instances.VoltageCurrentAnglePhase3,

    InterphaseBasedParameter.Instances.VoltageAngle12,
    InterphaseBasedParameter.Instances.VoltageAngle23,
    InterphaseBasedParameter.Instances.VoltageAngle31,

    Parameter.Instances.Frequency
};
// Последовательный запрос данных по каждому из параметров сети
foreach(var val in momentParameters.Select(x => new { momentParameter = x, result = meterPoint.GetMeterPointFinalData(x).FirstOrDefault() } ))
{
    if (val.result == null)
        continue;
    // Вывод результатов
    Console.WriteLine(string.Format("{0} - {1}", val.momentParameter, val.result.Value));
}
Пример 3

Получение данных о зафиксированных показаниях активной энергии в прямом направлении по точке учета, включая суммарные показания и показания по тарифным зонам.

C#
// Вывод суточных показаний А+ за 10 дней, включая показания по тарифам
// Поиск параметров "Показания А+ на начало суток" по всем тарифным зонам
var tariffZonesParameters = TariffZoneBasedParameter.Instances.EnergyActiveForwardTotalFixDay.RelationsTariffZoneBasedParameterAttributeClonedFrom;
// Затем формирование итогового списка параметров
var totalParameters = tariffZonesParameters.Concat(new [] { TariffZoneBasedParameter.Instances.EnergyActiveForwardTotalFixDay });
// Последовательный запрос данных по каждому из параметров за 10 дней
foreach (var par in totalParameters)
{
    Console.WriteLine(par.Caption);
    foreach(var val in meterPoint.GetMeterPointFinalData(par, 
        new DayIntervalData { StartDt = DateTime.Today.AddDays(-10), EndDt = DateTime.Today } ))
        // Вывод результатов
        Console.WriteLine("{0} {1}", val.ValueDt.GetValueOrDefault(), val.Value);
}
См. также