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


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

Авторизация

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



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


Подписка

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

Hits 66852826
8929
Hosts 3525266
1406
Visitors 53088985
8696

56


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

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

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

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


Тема: «макрос для оборудования рустаба » в форуме: Макро   Просмотров: 7855
 
ale
Заслуженный посетитель
 
Всего сообщений: 298
Дата регистрации: 31.03.2009
Создано: 19.09.2017 16:17:20
 
 
Добрый день. Помогите пожалуйста с макросом для Рустаба. задача: включение/отключение навесного оборудования у генератора в зависимости от его состояния. Генератор отключил, запускаем макрос, и автоматом запускается отключение АРВ, возбудителя, РС,.... И наоборот. Скорее всего можно доработать макрос по отметке ветвей, связанных с отмеченным узлом. Сам к сожалению пока не осилю (.
 
Профиль
Наверх
Евгений Машалов
Администратор

 
Всего сообщений: 1042
Дата регистрации: 23.04.2007
Создано: 20.09.2017 01:07:56
 
 
Ну вот в качестве заготовки можно такое что-нибудь

Код
Set spTableAndLinks = CreateObject("Scripting.D­ictionary")
Set spGeneratorTable = Rastr.Tables("Generator")­

' Заполняем карту переходов между таблицами
' Первый параметр - имя таблицы, из которой будут делаться переходы
' Второй - список пар имя таблицы : имя ключевого поля, разделенных запятыми
' Пример:
spTableAndLinks.Add "Generator", "Exciter:Exciter,ARS:ARS,­DFWIVActuator:IVActuator,­DFWIEEE421:Exciter"
' Из таблицы Generator можно попасть в таблицу Exciter, по ключевому полю ExciterId (Id добавляется автоматически)
' а также в таблицу ARS, по полю ARSId,
' в таблицу DFWIVActuator по полю IVActuatorId
' и в таблицу DFWIEEE421 по полю ExciterId

' Все переходы между таблицами обрабатываются рекурсивно

spTableAndLinks.Add "Exciter", "Forcer::Forcer,ExcContro­l::ExcControl"
spTableAndLinks.Add "ARS", "DFWGovernorIV:Governor"
spTableAndLinks.Add "DFWGovernorIV", "DFWTGovernor:TGovernor"
spTableAndLinks.Add "DFWIEEE421", "DFW421UEL:UEL,DFWOELUNIT­ROL:OEL,DFWIEEE421PSS13:P­SS,DFWIEEE421PSS4B:PSS"

Sub SwitchEquipment(TableName­,Id, State)
    Set spTable = Rastr.Tables(TableName)
    Set spSta = spTable.Cols("sta")
    spTable.SetSel "Id=" & Id

    'Rastr.PrintP spTable.Name & "-" & Id

    nObjectIndex = spTable.FindNextSel(-1)

    if nObjectIndex >= 0 Then
        Rastr.PrintP spTable.Name & "-" & Id & "-" & nObjectIndex

        spSta.Z(nObjectIndex) = State
        if spTableAndLinks.Exists(Ta­bleName) Then
            Links = spTableAndLinks.Item(Tabl­eName)
            LinksArray = Split(Links,",")

            For Each Link in LinksArray
                LinkPair = Split(Link,":")
                Set spTargetId = spTable.Cols(LinkPair(1) + "Id")
                SwitchEquipment LinkPair(0), spTargetId.Z(nObjectIndex­), State
            next

        End If
    End If
End Sub

Sub SwitchGeneratorEquipment(­GeneratorId)
        spGeneratorTable.SetSel "Id=" & GeneratorId
        nObjectIndex = spGeneratorTable.FindNext­Sel(-1)
' Тут чтобы видно было что работает состояние генератора инвертируется
        if nObjectIndex >= 0 Then SwitchEquipment spGeneratorTable.Name, GeneratorId, Not spGeneratorTable.Cols("st­a").Z(nObjectIndex)
        'if nObjectIndex >= 0 Then SwitchEquipment spGeneratorTable.Name, GeneratorId, spGeneratorTable.Cols("st­a").Z(nObjectIndex)
End Sub


' Указать номер генератора, состояние оборудования которого нужно изменить
SwitchGeneratorEquipment 40807023
 
Профиль
Наверх
ale
Заслуженный посетитель
 
Всего сообщений: 298
Дата регистрации: 31.03.2009
Создано: 20.09.2017 09:42:24
 
 
Спасибо, потом поэксперементирую)
 
Профиль
Наверх
ale
Заслуженный посетитель
 
Всего сообщений: 298
Дата регистрации: 31.03.2009
Создано: 09.01.2020 14:57:27
 
 
Добрый день. Подобный вопрос. Как сделать макрос зачистки всего оборудования, связанного с удаляемым узлом? Т.е удаляем просто узел (можно + ветви) и чтобы все оборудование, связанное с этим узлом тоже удалялось (арв,арс,возбудитель, турбина......)
 
Профиль
Наверх
ale
Заслуженный посетитель
 
Всего сообщений: 298
Дата регистрации: 31.03.2009
Создано: 12.11.2021 14:12:02
 
 
Добрый день. Попробовал протестить этот макрос, изменений в работе нет, оборудование не отключает. Подскажите пожалуйста, как его подправить. Как вариант еще предложение, может предусмотреть данную настройку в УР или ДУ? чтобы у пользователя была возможность выбора, отключать все оборудование в отключенных узлах или нет. Будет достаточно удобная функция.
 
Профиль
Наверх
Евгений Машалов
Администратор

 
Всего сообщений: 1042
Дата регистрации: 23.04.2007
Создано: 12.11.2021 19:50:59
 
 
Здравствуйте. Прошу обратить внимание что макрос, который Вы попробовали потестировать спустя 4 года и 2 месяца после публикации, является заготовкой, как указано в посте. Его надо настроить и вызывать для заданных генераторов.
 
Профиль
Наверх
ale
Заслуженный посетитель
 
Всего сообщений: 298
Дата регистрации: 31.03.2009
Создано: 29.11.2021 09:26:27
 
 
Доброе утро. В то время получилось без макроса обойтись, мельком его глянул и забылось. Подскажите пожалуйста, как можно его настроить? можно просто без вызова генераторов, чтобы состояние всего навесного соответствовало состоянию ТГ. Тем более сейчас в протоколе выводится информация по не связанным устройствам.
 
Профиль
Наверх
Евгений Машалов
Администратор

 
Всего сообщений: 1042
Дата регистрации: 23.04.2007
Создано: 29.11.2021 10:59:34
 
 
Да можно. Обойти циклом все отключенные генераторы и вызывать для каждого SwitchGeneratorEquipment.­

Вроде бы внутри для всего кроме пользовательских моделей так делается автоматически, за редким исключением.
 
Профиль
Наверх
ale
Заслуженный посетитель
 
Всего сообщений: 298
Дата регистрации: 31.03.2009
Создано: 02.12.2021 16:37:54
 
 
своими силами пока не получается осилить макросы( может если время будет, у Вас получится сделать для общего доступа данный макрос? Можно даже в составе растра его потом включить, думаю будет востребован у пользователей со временем. Спасибо.
 
Профиль
Наверх



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


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







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