Макросы в RastrWin на языке C Sharp

Материал из Wiki Power System
Перейти к: навигация, поиск

Эта статья посвящена обзору программного интерфейса ПК RastrWin на языке C#.

Расчёт установившегося режима

Все расчётные методы и объекты связанные с расчётом установившегося режима ранятся в библиотеке ASTRALib.dll, которая находися в каталоге ПК RastrWin. Важно отметить, что для выполнения тех или иных расчётов требуется соответствующая лицензия.

Перед выполнением расчётов необходимо подключить к проекту библиотеку ASTRALib.dll, в разделе reference (ссылки).

Приведём пример загрузки файла с расчётной моделью в ПК RastrWin, записи мощности нагрузки в узел, находящийся во второй строке таблицы Узлы и запуск расчёта установившегося режима.

string PathFile = "Путь до файла с даными расчётной модели";
//Создание объекта 
ASTRALib.IRastr Rastr = new ASTRALib.Rastr();
//Загрузка файла с данными 
Rastr.Load(ASTRALib.RG_KOD.RG_REPL, PathFile, "");
//Объявление объекта, содержащего таблицу "Узлы"
ASTRALib.ITable Node = Rastr.Tables.Item("node"); 
//Создание объектов, содержащих информацию по каждой колонке
ASTRALib.ICol numberBus = Node.Cols.Item("ny"); //Номер Узла
ASTRALib.ICol powerActiveLoad = Node.Cols.Item("pn"); //активная мощность нагрузки.
ASTRALib.ICol powerRectiveLoad = Node.Cols.Item("qn"); //реактивная мощность нагрузки.
ASTRALib.ICol voltageCalc = Node.Cols.Item("vras"); //Расчётное напряжение.

Для того чтобы прочитать параметр из соответвующей колонки необходимо вызвать метод get_ZN:

//Считывание расчётного значения напряжения узла с индексом 2
int NubBus=2;
double volAuto = voltageCalc.get_ZN(NubBus);

Важно отмтеить, что номер узла не совпадает с его индексом в таблице.

Для записи какого-либо параметра в таблицу растра необходимо вызвать метод set_ZN для соответствующей колонки.

//Пример записи мощности нагрузки 2 + j1 МВА в строку 2, таблицы "Узлы"
int NubBus=2;
double P=2;
double Q=1;
powerActiveLoad.set_ZN(NumBus, P);
powerRectiveLoad.set_ZN(NumBus, Q);

Для запуска расчёта установившегося режима надо вызвать метод rgm экземпляра RastrWin. В кавычках указываются параметры расчёта.

Rastr.rgm(""); //Расчет режима

Статус расчёта режима можно посмотреть в таблице com_regim. В колонке status хранится информация о том как завершился расчёт режима: 0 - успех; 1 - аварийная остановка расчёта.

/// <summary>
/// Расчёт установившегося режима
/// </summary>
/// <returns>Возвращает: true - успешный расчёт, false - аварийная остановка расчета</returns>
bool calcRegim(ASTRALib.IRastr inRastr)
{
      ASTRALib.ITable ParamRgm = inRastr.Tables.Item("com_regim");
      ASTRALib.ICol statusRgm = ParamRgm.Cols.Item("status");
      inRastr.rgm(""); //Расчет режима 
      int a = statusRgm.get_ZN(0);
      if (a == 0) 
          return true;
      else
          return false;
        }

За сохранение результатов расчёта в расчётную модель отвечает метод Save.

Rastr.Save(PathFile, "");