На главную страницу
Русский English
 


Поддержка
Форум
Техподдержка
Закрытый разделПерсональная

Авторизация

Запомнить меня на этом компьютере
  Забыли свой пароль?
  Регистрация



Поиск по сайту


Подписка

Изменение параметров

Hits 67418851
10201
Hosts 3609093
2130
Visitors 53571379
9849

105


Главная / Поддержка / Форумы / Макро

Форум «Макро»

Версия для печати Версия для печати

Список форумов
Новые темы
Список тем
Поиск по форумам
Помощь
Войти
Регистрация


Тема: «Расчет режима с учетом работы АВР » в форуме: Макро   Просмотров: 4196
 
Михаил Реутов
Постоянный посетитель
 
Всего сообщений: 224
Дата регистрации: 21.11.2007
Создано: 23.12.2013 18:52:47
 
 
Приветствую.

С помощью автоматики "трудно" смоделировать работу АВР, так как придется описывать очень много пусковых органов (факт 0 напряжения в отключенных узлах) и управляющих воздействий (обратное включение всех ветвей и узлов).

Предлагаю простой вариант работы АВР, в котором лишь надо указать ветви, на которых установлен АВР.

Код

Set tnode = Rastr.Tables("node")
Set tvetv = rastr.Tables("vetv")

On Error Resume Next
tvetv.Cols.Remove "sta_base"
tnode.Cols.Remove "sta_base"
On Error Goto 0

flag_avr = false

tvetv.Cols.Add "sta_base", 3: tnode.Cols.Add "sta_base", 3

'например, ветвь, на которой установлен АВР
vetv_avr = "ip=361&iq=362&np=0"

save_regim: Rastr.rgm "p"

tnode.SetSel "sta!=sta_base"

i = tnode.FindNextSel(-1)
Do While i <> -1   'имеются отключенные узлы
   ny = tnode.Cols("ny").Z(i)
   tvetv.SetSel "(ip=" & ny & "|iq=" & ny & ")&sta!=0"
   j = tvetv.FindNextSel(-1)
   Do While j <> -1
      If tvetv.SelString(j) = vetv_avr Then   'найдена ветвь АВР
            load_regim: msgbox "АВР: " & tvetv.Cols("dname").Z(j)
            tvetv.SetSel vetv_avr:   tvetv.Cols("sta").Calc "0"
            Rastr.rgm "p"
            flag_avr = true
            Exit Do
      End If
      j = tvetv.FindNextSel(j)
   loop
   If flag_avr = True Then Exit Do
   i = tnode.FindNextSel(i)
loop

Sub save_regim()
   Set tn = Rastr.Tables("node"):   Set tv = rastr.Tables("vetv")
   tn.SetSel "":   tv.SetSel ""
   tv.Cols("sta_base").Calc "sta":   tn.Cols("sta_base").Calc "sta"
End Sub
Sub load_regim()
   Set tn = Rastr.Tables("node"):   Set tv = rastr.Tables("vetv")
   tn.SetSel "":   tv.SetSel ""
   tv.Cols("sta").Calc "sta_base":   tn.Cols("sta").Calc "sta_base"
End Sub

 
Профиль
Наверх



Читают тему
гостей: 1, пользователей: 0, из них скрытых: 0


Список форумов
Новые темы
Список тем
Поиск по форумам
Помощь
Войти
Регистрация







Программный комплекс «RasrWin»
Программный комплекс «RastrWin»
© «RastrWin», 1988-2019