| Предыдущая тема :: Следующая тема |
| Автор |
Сообщение |
s60 Эксперт


Зарегистрирован: Aug 17, 2007 Сообщения: 157 Рейтинг: +2/-0 Откуда: СПб
|
Добавлено: Пн 19 Апр, 2010 6:41:46 Заголовок сообщения: TrendX: изменение тегов в Tags To Monitor средствами VBA |
|
|
Дано: в Tags In Historical Tag Group выбрана нужная DataLogModel. Из нее в
поле Tags To Monitor можно выбирать теги.
Вопрос: как это сделать средствами VBA? Хочу использовать один экран с TrendX для разных данных и перед показом экрана с трендом скриптом выбирать из тех что есть в dataLogModel отображаемые на тренде теги. |
|
| Вернуться к началу |
|
 |
s60 Эксперт


Зарегистрирован: Aug 17, 2007 Сообщения: 157 Рейтинг: +2/-0 Откуда: СПб
|
Добавлено: Пн 19 Апр, 2010 8:03:19 Заголовок сообщения: |
|
|
или какими средствами можно реализовать подмену отображаемых тегов?
а-ля как #1 в trend с файлом-параметром
TrendX который на экране *.gfx через контенер Ctrl можно вставить имеет окно свойств по двойному щелчку, где можно выбрать DataLogModel и из это модели надергать тегов в поле Tags To Monitor - для TrendX который на МИФ форме нет такого окна свойств, негде выбрать DataLogModel
Получается из VBA нет доступа к тому TrendX, что на экране *.gfx - как тогда можно ему программно менять Tags To Monitor ? |
|
| Вернуться к началу |
|
 |
oldDad Site Admin


Зарегистрирован: May 05, 2005 Сообщения: 2773 Рейтинг: +89/-5
|
Добавлено: Пн 19 Апр, 2010 10:46:12 Заголовок сообщения: |
|
|
При создании тренда используйте вместо имён тэгов их плейсхолдеры #1, #2 и т.п.
При вызове экрана с трендом используйте команду Display c параметром вызова /Ttag_name, где в качестве tag_name перечислите через запятую все реальные тэги, которые должны быть на тренде в том порядке, в котором они перечислены при создании тренда. _________________ Обращайтесь к профессионалам. |
|
| Вернуться к началу |
|
 |
s60 Эксперт


Зарегистрирован: Aug 17, 2007 Сообщения: 157 Рейтинг: +2/-0 Откуда: СПб
|
Добавлено: Пн 19 Апр, 2010 11:16:55 Заголовок сообщения: |
|
|
| oldDad писал(а): | При создании тренда используйте вместо имён тэгов их плейсхолдеры #1, #2 и т.п.
При вызове экрана с трендом используйте команду Display c параметром вызова /Ttag_name, где в качестве tag_name перечислите через запятую все реальные тэги, которые должны быть на тренде в том порядке, в котором они перечислены при создании тренда. |
Это вы описали для trend, a я говорю о ActiveX элементе TrendX для которого описана объектная модель и есть метод RSTrendX1.Pens.Add ("TagName" и т.д.) - но так можно обратиться к TrendX который на VBA-форме, на экране *.gfx надо через Invoke ...
Но проверил и ваше предложение - чудес не произошло - #1 так и остался #1 |
|
| Вернуться к началу |
|
 |
s60 Эксперт


Зарегистрирован: Aug 17, 2007 Сообщения: 157 Рейтинг: +2/-0 Откуда: СПб
|
Добавлено: Пн 19 Апр, 2010 12:41:11 Заголовок сообщения: |
|
|
| вопрос упрощается: как в режиме Runtime менять отображаемые теги в TrendX ??? |
|
| Вернуться к началу |
|
 |
oldDad Site Admin


Зарегистрирован: May 05, 2005 Сообщения: 2773 Рейтинг: +89/-5
|
Добавлено: Пн 19 Апр, 2010 13:16:28 Заголовок сообщения: |
|
|
| s60 писал(а): | | вы описали для trend, a я говорю о ActiveX элементе TrendX | Но Вы нигде и не упоминали, что имеете в виду именно TrendX.
Возможно, Вам поможет KB8633 - RSView32 TrendX Wrapper ActiveX.
Цитата оттуда:
| Цитата: | Background:
When using the TrendX ActiveX control in RSView32, the properties for the Pens, XAxis, and YAxis return an object variable. This means that the RSView32 Invoke command can not access the properties and methods for the Pens, XAxis or YAxis. Additionally this prevents tags from being bound to the properties of the Pens, XAxis, or YAxis objects.
Solution:
The TrendXWrapper ActiveX control contains/hosts the installed RSView32 TrendX control and provides the lower level properties and methods of the TrendX control at the wrapper level so that these can be accessed in a RSView32 graphic.
Example: The TrendX ActiveX control has an XAxis object which has a property called DisplayGridLines. In RSView32 this property can not be accessed with the invoke command or be bound to a Tag. The TrendX Wrapper control exposes this property at its level as XAxis_DisplayGridLines(). This allows the Invoke command to set or read this property value, and allow binding a tag to this property. |
_________________ Обращайтесь к профессионалам. |
|
| Вернуться к началу |
|
 |
s60 Эксперт


Зарегистрирован: Aug 17, 2007 Сообщения: 157 Рейтинг: +2/-0 Откуда: СПб
|
Добавлено: Пн 19 Апр, 2010 13:33:05 Заголовок сообщения: |
|
|
| oldDad писал(а): | | s60 писал(а): | | вы описали для trend, a я говорю о ActiveX элементе TrendX | Но Вы нигде и не упоминали, что имеете в виду именно TrendX.
|
название темы: TrendX: изменение тегов...
пост №1
| s60 писал(а): |
...Хочу использовать один экран с TrendX для разных данных и перед показом экрана с трендом скриптом выбирать из тех что есть в dataLogModel отображаемые на тренде теги. |
пост №2
| s60 писал(а): |
TrendX который на экране *.gfx через контенер Ctrl можно
|
Последний раз редактировалось: s60 (Вт 20 Апр, 2010 6:20:09), всего редактировалось 1 раз |
|
| Вернуться к началу |
|
 |
oldDad Site Admin


Зарегистрирован: May 05, 2005 Сообщения: 2773 Рейтинг: +89/-5
|
Добавлено: Пн 19 Апр, 2010 13:56:48 Заголовок сообщения: |
|
|
Пардон, не заметил. _________________ Обращайтесь к профессионалам. |
|
| Вернуться к началу |
|
 |
s60 Эксперт


Зарегистрирован: Aug 17, 2007 Сообщения: 157 Рейтинг: +2/-0 Откуда: СПб
|
Добавлено: Пн 19 Апр, 2010 14:42:00 Заголовок сообщения: |
|
|
можно наделать n-ое количество шаблонов, отличающихся друг от друга только списком тегов для отображения... и открывать экран с Ivokу LoadTamplate($TagTmplPath$$TagTmplName$) и перед Invoke присваивать тегу TagTmplName имя нужного файла-шаблона..... но это не практично.... много лопатить руками при настройке и перенастройке....
С Враппером копаюсь..... |
|
| Вернуться к началу |
|
 |
s60 Эксперт


Зарегистрирован: Aug 17, 2007 Сообщения: 157 Рейтинг: +2/-0 Откуда: СПб
|
Добавлено: Вт 20 Апр, 2010 13:18:44 Заголовок сообщения: |
|
|
почти день экспериментов с trendXWrapper......
итоги:
1) вместо trendX использую TrendXWrapper
2) для добавления тега на тренд сделал макрос (файлы с расширением *.mcr), в котором написал
| Код: |
Invoke Me.TrendXW1.Pens_Add("M1_power","Мотор №1: Мощность", "кВт", 0.0, 2000.0, "DataLogModel1")
Invoke Me.TrendXW1.Pen_Set("M1_power", "Color", 16711680) |
3) для очистки тренда от перьев после закрытия экрана сделал макрос, в котором написал
| Код: |
Invoke Me.TrendXW1.Pens_RemoveAll() |
макрос поставил на закрытие экрана с трендом
4) изначально тренд сконфигурирован БЕЗ перьев-тегов, при вызове экрана "Тренд" - команды RSView32 показать экран с трендом и выполнить соответствующий макрос для выбранного агрегата.... получается экран один, а данные в него можно падавать разные....и править только текстовые файлы *.mcr
все работает даже с несколькими копиями экранов с трендом, хотя получается первый не закрывается и макрос очистки перьев не вызывается.... но но вый экран показывает только нужные теги - все ОК
Последний раз редактировалось: s60 (Вт 20 Апр, 2010 15:05:01), всего редактировалось 1 раз |
|
| Вернуться к началу |
|
 |
oldDad Site Admin


Зарегистрирован: May 05, 2005 Сообщения: 2773 Рейтинг: +89/-5
|
Добавлено: Вт 20 Апр, 2010 13:39:14 Заголовок сообщения: |
|
|
Поздравляю!  _________________ Обращайтесь к профессионалам. |
|
| Вернуться к началу |
|
 |
|