Вход на форум 
В начало e-Mail

Форум

Ресурсы Rockwell

Product Directory

Essential Components

Literature Library

Knowledge Base

Electronic News&Magazines

Блог

Encompass Program

Product Certification

  
Smart Solutions VDT :: Просмотр темы - VBA в RSView32
 FAQFAQ   ПоискПоиск   ГруппыГруппы   ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

VBA в RSView32
На страницу 1, 2, 3  След.
 
Начать новую тему   Ответить на тему    Список форумов Smart Solutions VDT -> Программные средства систем автоматизации
Предыдущая тема :: Следующая тема  
Автор Сообщение
scout
Новичок
Новичок


Зарегистрирован: Feb 18, 2009
Сообщения: 9
Рейтинг: +0/-0

СообщениеДобавлено: Ср 18 Фев, 2009 9:04:22    Заголовок сообщения: VBA в RSView32 Ответить с цитатой

Уважаемые знатоки RSView32, пожалуйста подскажите, кто знает, как решить данную проблемку:

// ЦЕЛЬ: при запущенном проекте RSView32 динамически генерировать сигналы тревоги


Последний раз редактировалось: scout (Чт 26 Фев, 2009 5:32:12), всего редактировалось 1 раз
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
dv_
Эксперт
Эксперт


Зарегистрирован: Sep 14, 2006
Сообщения: 776
Рейтинг: +41/-1
Откуда: Донецк

СообщениеДобавлено: Ср 18 Фев, 2009 13:09:27    Заголовок сообщения: Re: VBA в RSView32 Ответить с цитатой

Нет описания срабатывания, например:
Код:
tag.DigitalTagAlarmCfg.AlarmType = roAlarmTypeOn


scout писал(а):
Уважаемые знатоки RSView32, пожалуйста подскажите, кто знает, как решить данную проблемку:

// ЦЕЛЬ: при запущенном проекте RSView32 динамически генерировать сигналы тревоги

Чем штатные средства не устраивают?
Если будешь много работать с базой тегов (создавать, удалять, изменять теги) - получишь тормоз (смотри на процесс rtdsk40.exe в диспетчере задач).
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
scout
Новичок
Новичок


Зарегистрирован: Feb 18, 2009
Сообщения: 9
Рейтинг: +0/-0

СообщениеДобавлено: Чт 26 Фев, 2009 5:02:01    Заголовок сообщения: Ответить с цитатой

Все дело в том, что код, который я привел, замечательно работает (и tag.DigitalTagAlarmCfg.AlarmType = roAlarmTypeOn – не требуется, т.к. уже установлено по умолчанию, да и вообще в данном случае меня не интересует тип аларма), однако генерировать тревожные сигналы (т.е. типа: tag.Value = 1; tag.Value = 0Wink возможно только после перезагрузки проекта, что полностью противоречит поставленной цели.
Далее, почему не стандартными средствами? Конечно в рамках какого-либо проекта, вполне сойдут и стандартные средства RSView32, однако была сделана попытка, автоматизировать процесс проектирования различных проектов. К сожалению, создается впечатление, что ПО RSView32 оставляет желать лучшего…
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
dv_
Эксперт
Эксперт


Зарегистрирован: Sep 14, 2006
Сообщения: 776
Рейтинг: +41/-1
Откуда: Донецк

СообщениеДобавлено: Чт 26 Фев, 2009 8:52:01    Заголовок сообщения: Ответить с цитатой

scout писал(а):
... да и вообще в данном случае меня не интересует тип аларма...

Тогда зачем создавать Alarm? Sad
scout писал(а):
...однако генерировать тревожные сигналы (т.е. типа: tag.Value = 1; tag.Value = 0Wink возможно только после перезагрузки проекта, что полностью противоречит поставленной цели.

Непонятно к чему относится возможно.
scout писал(а):
Далее, почему не стандартными средствами? Конечно в рамках какого-либо проекта, вполне сойдут и стандартные средства RSView32, однако была сделана попытка, автоматизировать процесс проектирования различных проектов. К сожалению, создается впечатление, что ПО RSView32 оставляет желать лучшего…

Неужели каждый раз при пуске проекта идет создание базы данных тегов? Surprised
scout писал(а):
...сделана попытка, автоматизировать процесс проектирования различных проектов.

Автоматизировать можно и на VB6.
scout писал(а):
К сожалению, создается впечатление, что ПО RSView32 оставляет желать лучшего…

Используйте "современные" системы (не RS) в которых без программиста никуда. Razz
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
oldDad
Site Admin
Site Admin


Зарегистрирован: May 05, 2005
Сообщения: 2773
Рейтинг: +89/-5

СообщениеДобавлено: Чт 26 Фев, 2009 12:52:53    Заголовок сообщения: Ответить с цитатой

Цитата:
создается впечатление, что ПО RSView32 оставляет желать лучшего…


Хотя я и не совсем представляю себе, чего именно оставляет желать RSView32, хотелось бы обратить Ваше внимание на то, что RSView32 - это довольно уже пожилой продукт, который выпускается и с успехом применяется уже более 10 лет (с модификациями, опциями и дополнениями).

Возможно, Вас больше устроил бы такой современный продукт, как FactoryTalkSE (который тоже уже несколько лет выпускается)?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
scout
Новичок
Новичок


Зарегистрирован: Feb 18, 2009
Сообщения: 9
Рейтинг: +0/-0

СообщениеДобавлено: Пн 02 Мар, 2009 9:42:13    Заголовок сообщения: Ответить с цитатой

Уважаемые знатоки RSView32, вообще-то я просил помощи у тех, кто реально может помочь, в контексте сформулированной задачи, именно для этого я выкладывал фрагмент исходника, и совсем не просил мне указывать какой продукт мне использовать. Почему?: ПО RSView32 оставляет желать лучшего…, все очень просто Smile, если бы, тот кто, попытался понять, суть поставленной задачи, а также запустить мой фрагмент кода, то данная фраза стала бы ясней …
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
dv_
Эксперт
Эксперт


Зарегистрирован: Sep 14, 2006
Сообщения: 776
Рейтинг: +41/-1
Откуда: Донецк

СообщениеДобавлено: Пн 02 Мар, 2009 9:55:46    Заголовок сообщения: Ответить с цитатой

scout писал(а):
... если бы, тот кто, попытался понять, суть поставленной задачи, а также запустить мой фрагмент кода, то данная фраза стала бы ясней …

Зачем запускать фрагмент кода, когда понятно и без этого.
Мне непонятно - зачем динамически создавать теги в работающем проекте (одну цель знаю, пробовал - плохо), картинки динамически не создаются.
Ранее забыл сообщить, что после создания тега с тревогой (не важно как), надо перезапустить подсистему тревог:
Код:
AlarmOff
AlarmOn

Аналогично и для новых (или измененных) Derived Tag, Event Detector, DataLog.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
scout
Новичок
Новичок


Зарегистрирован: Feb 18, 2009
Сообщения: 9
Рейтинг: +0/-0

СообщениеДобавлено: Пн 02 Мар, 2009 11:36:56    Заголовок сообщения: Ответить с цитатой

да AlarmOff/AlarmOn помогает, но только при создании тега …

// а что делать с этим?, если далее мы хотим динамически менять Description у тега, НЕ ОСТАНАВЛИВАЯ проект:

RSView32.Tag tag = tags.GetTag("temp");
tag.Description = "--- NEW TEST ---";
tag.WriteConfiguration();

// все благополучно сохранилось в базе данных тегов, новую Description тега мы можем увидеть в Tag Monitor
// однако когда мы хотим tag.Value = 1, в журнале алармов получаем старое Description?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
dv_
Эксперт
Эксперт


Зарегистрирован: Sep 14, 2006
Сообщения: 776
Рейтинг: +41/-1
Откуда: Донецк

СообщениеДобавлено: Пн 02 Мар, 2009 12:20:43    Заголовок сообщения: Ответить с цитатой

scout писал(а):
да AlarmOff/AlarmOn помогает, но только при создании тега …

// а что делать с этим?, если далее мы хотим динамически менять Description у тега, НЕ ОСТАНАВЛИВАЯ проект:

RSView32.Tag tag = tags.GetTag("temp");
tag.Description = "--- NEW TEST ---";
tag.WriteConfiguration();

// все благополучно сохранилось в базе данных тегов, новую Description тега мы можем увидеть в Tag Monitor
// однако когда мы хотим tag.Value = 1, в журнале алармов получаем старое Description?

Опять применить AlarmOff/AlarmOn. Very Happy
Если есть большое желание делать все самостоятельно и динамически обрати внимание на команды AlarmEvent и AlarmLogRemark.
Кстати, при этом нагрузка на процессор от RTDSK40.EXE будет меньше.
Проведи экперимент: побалуйся с конфигурированием тегов, например 1000 шт. и при этом смотри в диспетчер задач.
Остаюсь в недоумении - зачем все это надо. Удаленная часть кода при "Последний раз редактировалось: scout (Чт 26 Фев, 2009 6:32:12), всего редактировалось 1 раз" ответа не давала.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
oldDad
Site Admin
Site Admin


Зарегистрирован: May 05, 2005
Сообщения: 2773
Рейтинг: +89/-5

СообщениеДобавлено: Пн 02 Мар, 2009 13:24:10    Заголовок сообщения: Ответить с цитатой

2 scout

Хм...

Обычно все тэги создаются не на ходу, во время работы аппликации, а на этапе создания проекта. Просто не представляю, почему бы не создать все тэги вместе с их описаниями и алармами на этапе проектирования аппликации. Какой в этом великий смысл? Возможно, если Вы рассказали бы нам, зачем это Вам нужно, мы смогли бы Вам посоветовать что-нибудь более эффективное?

Не покидает ощущение, что Ваша конечная цель может быть достигнута несколько иными средствами Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
scout
Новичок
Новичок


Зарегистрирован: Feb 18, 2009
Сообщения: 9
Рейтинг: +0/-0

СообщениеДобавлено: Вт 03 Мар, 2009 10:43:57    Заголовок сообщения: Ответить с цитатой

Уважаемые знатоки, постараюсь Вам объяснить, причины моих изысканий…
Разумеется, можно создать все тэги вместе с их описаниями и алармами на этапе проектирования, здесь бессмысленно спорить, НО вопрос можно задать и по-другому, ведь ПО RSView32 не дешевый коммерческий продукт (в своем составе имеет интегрированный VBA), и как было очень верно отмечено выше, уже давно присутствует на рынке…, и чуть ли не в каждом рекламном буклете разработчики заявляют об ОБЪЕКТНой МОДЕЛи RSView32 (Object Model), а в официальном руководстве, ей посвящены целые главы. Так какая ее практическая ценность? …, если на форумах мне говорят? – это “нештатные” средства, или это “нестандартные” методы, или обычно так с RSView32 не работают … - что это?, какие “штаты, стандарты, обычаи?” – в чем тут дело? А может все гораздо проще и, на мой взгляд, RSView32 Object Model недоработана, неверно документирована и ведет себя непредсказуемо. Поэтому я прошу Вас, пожалуйста, помогите мне изменить мнение о ней …, ведь я не могу понять, как она работает, на простом примере, и прошу Вас уважаемые знатоки RSView32 помочь мне. Вот элементарный пример:

//1.В RSView32 создал тег "temp" с Description = “TEST” и с сигналом тревоги.
//2.Создал процедуру, (к примеру наVBA), смысл которой:
RSView32.Tag tag = tags.GetTag("temp");
tag.Description = "??? NEW TEST ???";
tag.WriteConfiguration();
//3.Использую рекомендации форума, смысл которых:
Command.Execute("AlarmOff", RSView32.WaitConstants.roWait);
Command.Execute("AlarmOn", RSView32.WaitConstants.roWait);
//4.Запустил проект, запустил тестовую процедуру (пусть на VBA), смысл которой описан на шаге 2,3
//5.Все удачно сохранилось в базе данных тегов, новую Description = "??? NEW TEST ???" тега мы можем увидеть в Tag Monitor
//6.Убеждаюсь, что рекомендации НЕ РАБОТАЮТ, поскольку, когда мы хотим tag.Value = 1, в журнале тревог получаем старое Description = “TEST”

Так, где здесь здравый смысл? ... когда RSView32 Tag Monitor (как заявлено самим производителем, спец.инструмент для оперативного наблюдением за тегом), показывает нам одно значение Description = "??? NEW TEST ???", а в журнал тревог (который можно просмотреть с помощью др. спец.инструмента RSView32 Alarm Log Viewer), пишутся совершенно другие данные ТОГОЖЕ САМОГО ТЕГА, в нашем случае Description = “TEST”. ЭТО ведь АБСУРТ какой-то!

Надеюсь, что Ваши ответы более не будут выпадать из темы (а именно “VBA RSView32”), заранее Вам благодарен.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
dv_
Эксперт
Эксперт


Зарегистрирован: Sep 14, 2006
Сообщения: 776
Рейтинг: +41/-1
Откуда: Донецк

СообщениеДобавлено: Вт 03 Мар, 2009 14:05:46    Заголовок сообщения: Ответить с цитатой

VBA нужен для расширить возможности, когда не хватает штатных средств.
Может заменить штатные, только зачем?
EventDetector, DerivedTag - в работе до 20 шт. и до 1000 строк в каждом.
Сколько сценариев VBA можно запустить?
"В очередь, в очередь сучьи дети" (с) Шариков.

При этом есть механизм доступа в базу тегов.
Плохо это или хорошо, думаю что хорошо, т.к. пользовался при разработке для узких однократных целей с большим количеством тегов (например: проверить Node, изменить Min, Max...).
Злоупотреблять этим при работе не стоит, т.к. тормозит.
А, что будет, если все грохнется в момент работы с базой тегов?

Цель до сих пор не понятна.
Может надо иметь AlarmedTag больше ограничения?
Непохоже, т.к. тогда зачем менять Description.
Обойти ограничения… Какие не приведу, чтобы не иметь обвинений в нарушении.

Если кого обидел – приношу извинения, и в дальнейшей перепалке не участвую.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
DIMIOKS
Эксперт
Эксперт


Зарегистрирован: May 14, 2005
Сообщения: 290
Рейтинг: +9/-0
Откуда: г.Самара

СообщениеДобавлено: Вт 03 Мар, 2009 18:06:46    Заголовок сообщения: Ответить с цитатой

Привет всем!

Несколько раз прочитал тему, так и не понял в чем засада. Время было - проверил в Runtime:

1. С помощью VBA создал тэг типа Digital. Изменил св-ва по умолчанию. Сделал его Alarm. Перезапустил AlarmMonitor.
2. Проверил с помощью TagMonitor - все в порядке. С помощью VBA изменил Value.
3. С помощью VBA изменил Description. Перезапустил AlarmMonitor.
4. Проверил с помощью TagMonitor - Description изменился.
5. С помощью VBA изменил Value.
6. Проверил с помощью TagMonitor - Value изменился, цвет строки указал, что тег в состоянии Alarm.
7. Вышел в Desinger и посмотрел AlarmLogViewer - все записи в том виде, как сконфигурированы в проекте. Description отображаются в порядке их изменения.

Хотя хотелось бы узнать хоть одну причину необходимости делать это в VBA.

PS: Так Вы кошек не любите? Просто Вы их готовить не умеете!!!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
oldDad
Site Admin
Site Admin


Зарегистрирован: May 05, 2005
Сообщения: 2773
Рейтинг: +89/-5

СообщениеДобавлено: Вт 03 Мар, 2009 21:53:42    Заголовок сообщения: Ответить с цитатой

scout писал(а):
если на форумах мне говорят? – это “нештатные” средства или это “нестандартные” методы


Будьте добры, приведите цитату, пожалуйста, где написано, что VBA - это нештатные средства или нестандартные методы.

scout писал(а):
, или обычно так с RSView32 не работают … - что это?, какие “штаты, стандарты, обычаи?” – в чем тут дело?


Какие "обычаи"? Вот Вам тут, собственно, как раз и показали, какие.

Цитата:
А может все гораздо проще и, на мой взгляд, RSView32 Object Model недоработана, неверно документирована и ведет себя непредсказуемо.


Это всего лишь Ваше индивидуальное предположение. Object Model доработана, существует, работает, документирована. Она продана уже в тысчах тысяч копий, получила множество наград, и не в последней степени благодаря своей функциональности и встроенному VBA в том числе.

Другое дело, если Вы пока не вполне понимаете мехнаизмы её работы, это ничего, опыт - дело наживное. Уважаемый коллега DIMIOKS только что показал Вам, как, в частности, из VBA динамически меняется Description.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
scout
Новичок
Новичок


Зарегистрирован: Feb 18, 2009
Сообщения: 9
Рейтинг: +0/-0

СообщениеДобавлено: Ср 04 Мар, 2009 10:46:49    Заголовок сообщения: Ответить с цитатой

Уважаемые знатоки RSView32, прошу Вас не делать из форума SHOW, а руководствоваться фактами.
К примеру, мои утверждения основаны на фактах, что это значит? это значит что любому, пожелавшему проверить мои утверждения я готов предоставить тестовый проект. Проект выполнен в RSView32 v7.50 состоит из экрана, на котором 3 кнопки, а также элемент Alarm Summary, (К СОЖЕЛЕНИЮ, в пред. моем сообщении я опечатался, и вместо Alarm Log Viewer я имел ввиду Alarm Summary) и если запустить проект, то нажимая эти кнопки можно легко убедиться в правоте моих утверждений, поскольку в элементе Alarm Summary не меняется Description.
В проекте создан всего лишь один тег с тревогой: test
привязка для кнопки №1: VbaExec test "TEST #1"; test = 1; test = 0
привязка для кнопки №2: VbaExec test "TEST #2"; test = 1; test = 0
привязка для кнопки №3: VbaExec test "TEST #3"; test = 1; test = 0
процедура VBA:
Sub test(ByVal Descripotion As String)
Dim t As RSView32.Tag
Set t = gTagDb.GetTag("test")
t.Description = Descripotion
t.WriteConfiguration
gCommand.Execute "AlarmOff"
gCommand.Execute "AlarmOn"
End Sub

Теперь, на счет КОШЕК, я конечно признателен Вам, что Вы уделили время, и реально попытались проверить мою проблему, ОДНАКО не будем торопиться с “долгоиграющими” выводами, пожалуйста, посмотрите мой проект (готов выслать на любой e-Mail), ведь, как я отмечал Выше, для моей задачи ВАЖНО не перезапускать проект! и возможно тогда, ВЫ сможете мне пояснить, как все-таки этих КОШЕК готовить? (и только в этом случаи, я буду Вам очень признателен), а просто утверждать … ну, это неубедительно.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов Smart Solutions VDT -> Программные средства систем автоматизации Часовой пояс: GMT + 1
На страницу 1, 2, 3  След.
Страница 1 из 3

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах

Powered by phpBB © 2001, 2005 phpBB Group
Яндекс цитирования

Smart Solutions VDT GmbH | Friedrich-List-Allee 38, D-41844 Wegberg-Wildenrath, Germany
Tel.: +49 2432 933 57 83 | e-Mail: office@vdt-solutions.de
Все товарные знаки и торговые марки являются собственностью их владельцев.
При использовании материалов сайта ссылка на данный сайт обязательна.
Открытие страницы: 0.137 секунды
/n