Макросы в RastrWin на языке C Sharp — различия между версиями
Windsl (обсуждение | вклад) |
WindBot (обсуждение | вклад) м (→Расчёт установившегося режима: clean up, replaced: расчет → расчёт) |
||
Строка 56: | Строка 56: | ||
/// Расчёт установившегося режима | /// Расчёт установившегося режима | ||
/// </summary> | /// </summary> | ||
− | /// <returns>Возвращает: true - успешный расчёт, false - аварийная остановка | + | /// <returns>Возвращает: true - успешный расчёт, false - аварийная остановка расчёта</returns> |
bool calcRegim(ASTRALib.IRastr inRastr) | bool calcRegim(ASTRALib.IRastr inRastr) | ||
{ | { |
Версия 20:50, 6 ноября 2018
Эта статья посвящена обзору программного интерфейса ПК RastrWin на языке C#.
Расчёт установившегося режима
Все расчётные методы и объекты связанные с расчётом установившегося режима ранятся в библиотеке ASTRALib.dll, которая находися в каталоге ПК RastrWin. Важно отметить, что для выполнения тех или иных расчётов требуется соответствующая лицензия.
Перед выполнением расчётов необходимо подключить к проекту библиотеку ASTRALib.dll, в разделе reference (ссылки).
Приведём пример загрузки файла с расчётной моделью в ПК RastrWin, записи мощности нагрузки в узел, находящийся во второй строке таблицы Узлы и запуск расчёта установившегося режима.
string PathFile = "Путь до файла с даными расчётной модели";
//Создание указателя на экземпляр RastrWin и его запуск
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, "");
Примечания
Версия программы, используемая при инаписании статьи- RastrWin 3 v 1.80