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

Форум

Ресурсы Rockwell

Product Directory

Essential Components

Literature Library

Knowledge Base

Electronic News&Magazines

Блог

Encompass Program

Product Certification

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

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


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

СообщениеДобавлено: Вс 13 Июн, 2010 19:14:23    Заголовок сообщения: VBA FTView SE Ответить с цитатой

1.Подскажите как правильно обратится к тегам FTView из VBA. При наличии в текущем окне около 500 memory тегов TagGroup.add(tag name) напрочь вешает проект. Как быть?
2.В окне есть несколько ComboBox. Создаю массив CB_Mass(10) as combobox и сопоставляю его combobox в окне Set CB_Mass(0)=CB_name0 и т.д. А при использовании свойств массива, например CB_Mass.Item(0).text VBA вылетает. Как еще неявно обратится к элементам окна?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
oldDad
Site Admin
Site Admin


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

СообщениеДобавлено: Пн 14 Июн, 2010 7:45:01    Заголовок сообщения: Ответить с цитатой

Цитата:
При наличии в текущем окне около 500 memory тегов TagGroup.add(tag name) напрочь вешает проект. Как быть?


Не знаю, для чего Вам на экране 500 тэгов, и как Вы собираетесь их использовать, но что-то говорит мне, что Вам необходимо изменить системную концепцию.

Честно говоря, не представляю себе 500 тэгов на одном экране. Если предположить, что экран имеет разрешение 1024 на 768 пикселей, то 500 тэгов на экране - это полный экран прямоугольников размером примерно 40 на 40 пикселей, по одному на тэг, без промежутков. Ничто другое на экран больше не помещается. Что Вы такое проектируете?

Если же Вы используете экран просто для хранения и обработки тэгов, то не проще ли держать эти тэги в контроллере, и там же и обрабатывать?
_________________
Обращайтесь к профессионалам.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Sandy
Частый гость
Частый гость


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

СообщениеДобавлено: Пн 14 Июн, 2010 10:35:15    Заголовок сообщения: Ответить с цитатой

Экран предназначен для идентификации заготовок подвергаемых обработке. Всего 30 заготовок у которых 7 текстовых параметров и на этом же экране растаскивая мышкой задается положение заготовок на участке обработки - это еще 5 параметров для каждой из 30(ширина, высота, положение по Х , по Y, и rotation. Плюс теги для visible и теги для задания общих параметров для всех заготовок. Вот и набралось. Для ввода используются элементы Microsoft Forms, поэтому есть необходимость перебора их значений в цикле в VBA. После ввода задания на обработку данные вставляются в форму и сохраняются в графический файл. Вот такой подход. Вводить все это в контроллер смысла нет-для технологии эти параметры не нужны, только для отчета. Может что-то посоветуете. Заранее спасибо!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
dv_
Эксперт
Эксперт


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

СообщениеДобавлено: Пн 14 Июн, 2010 15:16:55    Заголовок сообщения: Ответить с цитатой

oldDad писал(а):
... но что-то говорит мне, что Вам необходимо изменить системную концепцию.
"Одобрям" Smile
Sandy, поставь себя на место пользователя - все ли параметры нужно видеть?

Sandy писал(а):
Экран предназначен для идентификации заготовок подвергаемых обработке. Всего 30 заготовок у которых 7 текстовых параметров и на этом же экране растаскивая мышкой задается положение заготовок на участке обработки...

Оставь один параметр, например номер в очереди на обработку.

Для ввода параметров создай отдельный экран и вызывай его с нужным файлом параметров.
Вызов этого экрана можно сделать по анимации Touch, но обязательно с горячей кнопкой (см. Client Key), чтобы не было конфликта с расстаскиванием мышкой.

Sandy писал(а):
Может что-то посоветуете.

Сведи к нулю использование: VBA и Microsoft Forms, все можно сделать штатными средствами.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Rolex
Частый гость
Частый гость


Зарегистрирован: Nov 01, 2011
Сообщения: 34
Рейтинг: +0/-0

СообщениеДобавлено: Вт 06 Мар, 2012 17:05:37    Заголовок сообщения: Ответить с цитатой

У меня задача попроще. В ftalk se есть два device тега op_man и op_auto.которые в контроллере устанавливают через rs триггер выходной тег auto. Те простая установка оператором ручного или автоматического режима работы, с запоминанием его в контроллере. Решил сделать так: предоставить оператору кнопку которая будетпоочередно по нажатию устанавливать op_man и сбрасывать op_auto, потом наоборот. Обратная связь : вывел на дисплей выходной тег auto. Использовал обычную кнопку и vba срипт, все работает. Но обращение к тегам через vba какое то не очевидное, можно ли сделать тоже самое с помощью стандартных средств ftalk?Спасибо.
П.с. Запоминать режим прямо в ftalk я не стал, хотя такая возможность разумеется есть(maintained push), тк при нештатной пере загрузке сервера все такие команды по идее обнулятся, вот и обрабатываю их в контроллере.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
dv_
Эксперт
Эксперт


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

СообщениеДобавлено: Ср 07 Мар, 2012 9:39:07    Заголовок сообщения: Ответить с цитатой

Rolex писал(а):
У меня задача попроще. В ftalk se есть два device тега op_man и op_auto.которые в контроллере устанавливают через rs триггер выходной тег auto. Те простая установка оператором ручного или автоматического режима работы, с запоминанием его в контроллере. Решил сделать так: предоставить оператору кнопку которая будетпоочередно по нажатию устанавливать op_man и сбрасывать op_auto, потом наоборот. Обратная связь : вывел на дисплей выходной тег auto. Использовал обычную кнопку и vba срипт, все работает. Но обращение к тегам через vba какое то не очевидное, можно ли сделать тоже самое с помощью стандартных средств ftalk?Спасибо.
П.с. Запоминать режим прямо в ftalk я не стал, хотя такая возможность разумеется есть(maintained push), тк при нештатной пере загрузке сервера все такие команды по идее обнулятся, вот и обрабатываю их в контроллере.

Смени подход:
1. В контроллере один тег auto
2. В FTView сделай две кнопки Interlocked на этот тег:
- первая устанавливает 0.
- вторая устанавливает 1.
- задай нужный цвет (текст) для State 0 и State 1.

Использовать одну (maintained) кнопку не рекомендую.

Rolex писал(а):
П.с. Запоминать режим прямо в ftalk я не стал, хотя такая возможность разумеется есть(maintained push), тк при нештатной пере загрузке сервера все такие команды по идее обнулятся, вот и обрабатываю их в контроллере.
Не бойся, FTView сам этого не сделает (для Device тегов - только контроллер помнит).
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Rolex
Частый гость
Частый гость


Зарегистрирован: Nov 01, 2011
Сообщения: 34
Рейтинг: +0/-0

СообщениеДобавлено: Ср 07 Мар, 2012 11:32:38    Заголовок сообщения: Ответить с цитатой

Спасибо, это всё упрощает.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Rolex
Частый гость
Частый гость


Зарегистрирован: Nov 01, 2011
Сообщения: 34
Рейтинг: +0/-0

СообщениеДобавлено: Ср 14 Мар, 2012 6:43:48    Заголовок сообщения: Ответить с цитатой

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


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

СообщениеДобавлено: Чт 15 Мар, 2012 12:13:08    Заголовок сообщения: Ответить с цитатой

Rolex писал(а):
А если я хочу послать импульсную команду??, можно использовать обычную кнопку -и в свойствах, обработчике нажатия- выставлять тег, при отжатии сбрасывать его..?вроде работает,но ведь я не могу быть уверенным что обработанный бит гарантированно дошел до контроллера, а потом сбросился.

См. на кнопки Latched.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Rolex
Частый гость
Частый гость


Зарегистрирован: Nov 01, 2011
Сообщения: 34
Рейтинг: +0/-0

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

Не получается заполнители тегов в глобальных объектах применять, например мне нужно десять пиктограмм задвижек, вместо того чтобы рисовать их в таком количестве по отдельности - делаю 1 глобальный базовый объект, прописываю нужное количество заместителей тегов(#1-#10) которые использую в скрипте, и после копирования в папку Displays и соответственно запуске, облом:
1. «expression contains a tag that has an error value: if (#9) then0! Errorselse if not (#1) and not (#2) then1…..» Это он ругается на скрипт прописанный в глобальном объекте пиктограммы задвижки, т.к. не может работать с тегами (device) которые я по наивности пытаюсь туда передать
2. Далее дебаггер пишет «Failed to resolve items ID #1 because it does not exists on any server»-и так про каждый… мне не ясно почему тег не найден, он доступен, если без танцев с базовыми объектами с ним можно работать.
Все глобальные заместители тегов объявляю как в мануале написано, потом после копирования привязываю к ним теги…, LinkAnimation - Link with expressions, LinkConnections - True. а он че то тупит и пишет что их нет…Как так, ну вот как??2?
Скрипт самый обычный, вкладка “Color”

Код:
if #9 then
0 ! Errors
else if not #1 and not #2 then
1 ! power off…..а так далее


Следующий вопрос – по Touch на каждой пиктограмке запускаю командой «Display <panel_name>....» панельку оборудования, с указанием файла параметров. Панелька это например простой дисплей с кнопками открыть закрыть и статусом. Так вот если все прописывать не в базовом объекте а копиях по отдельности– надо будет наверно ставить «Do not link» и так далее…а можно ли прописать вызов панели и файла параметров с помощью «display» в базовом глобальном объекте ? тогда не придется делать это из каждого объекта ссылки в отдельности. Много букв, если слишком много – то просто подскажите как это делается в этой среде по нормальному?) Question
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Rolex
Частый гость
Частый гость


Зарегистрирован: Nov 01, 2011
Сообщения: 34
Рейтинг: +0/-0

СообщениеДобавлено: Вт 20 Мар, 2012 19:52:47    Заголовок сообщения: Ответить с цитатой

Все заняты, понимаю,я вот тоже =) Перефразирую и уменьшу количество текста, может поможет:

шаг1. Созданию глобальный объект
шаг2.Определение заполнителей тегов глобального базового объекта (#1-#10)
шаг3. создание объекта-ссылки путем простого копирования базового объекта
шаг4.Задать значение заполнителей тега в объекте-ссылке (привязывание к тегам контроллера)
шаг5. Настройка свойств связи объектов-ссылок (LinkAnimation, LinkConnections....)
шаг6. Запуск на выполнение, облом : " «expression contains a tag that has an error value", "Failed to resolve items ID #1"....
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Rolex
Частый гость
Частый гость


Зарегистрирован: Nov 01, 2011
Сообщения: 34
Рейтинг: +0/-0

СообщениеДобавлено: Ср 04 Апр, 2012 13:04:48    Заголовок сообщения: Ответить с цитатой

Ясно, "С такими вопросами добро пожаловать на наши курсы Rockwell Automation" Smile
Ну а если мне просто нужно чтобы дисплей управления задвижкой появился по нажатию на картинку задвижки, НО рядом с курсором, а не в каком нить углу или посередине, как тут быть?в параметрах дисплеев или команды display можно задать лишь постоянное положение.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
oldDad
Site Admin
Site Admin


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

СообщениеДобавлено: Чт 05 Апр, 2012 8:23:43    Заголовок сообщения: Ответить с цитатой

Цитата:
нужно чтобы дисплей управления задвижкой появился по нажатию на картинку задвижки, НО рядом с курсором


Эта функциональность может быть относительно легко реализована с помощью несложного VBA-скрипта, принадлежащего дисплею на клиенте. Скажем, в общих чертах, как-то так:

Получите текущее положение курсора, например, используя user32:
Код:

Public Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Public Type POINTAPI
   X As Long
   Y As Long
End Type
Dim CursorPos As POINTAPI
Call GetCursorPos(CursorPos)
' --- "CursorPos.X" und "CursorPos.Y" содержат положение курсора


Затем можно, например, вычислить желаемые координаты окна DesiredTop и DesiredTop и передать эти значения окну, которое Вы откроете в этом месте, например:
Код:

Application.Height = 500
Application.Width = 600
Application.Top = DesiredTop
Application.Left = DesiredLeft

_________________
Обращайтесь к профессионалам.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Space
Новичок
Новичок


Зарегистрирован: Dec 08, 2006
Сообщения: 4
Рейтинг: +0/-0

СообщениеДобавлено: Ср 18 Апр, 2012 2:57:59    Заголовок сообщения: Ответить с цитатой

Rolex писал(а):
Все заняты, понимаю,я вот тоже =) Перефразирую и уменьшу количество текста, может поможет:

шаг1. Созданию глобальный объект
шаг2.Определение заполнителей тегов глобального базового объекта (#1-#10)
шаг3. создание объекта-ссылки путем простого копирования базового объекта
шаг4.Задать значение заполнителей тега в объекте-ссылке (привязывание к тегам контроллера)
шаг5. Настройка свойств связи объектов-ссылок (LinkAnimation, LinkConnections....)
шаг6. Запуск на выполнение, облом : " «expression contains a tag that has an error value", "Failed to resolve items ID #1"....


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


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

СообщениеДобавлено: Вс 20 Апр, 2014 16:16:17    Заголовок сообщения: Ответить с цитатой

Доброго времени суток всем!

Переношу проект из RSView32 в FTView SE 6.1.
Много кода написано на VBA, причём как процедуры, так и VBA-формы, вызываются в совершенно разных местах проекта, с разных дисплеев.

Вопрос по FTView SE 6.1:
1. Вызвать процедуру VBA, прописанную в др. дисплее, в коде VBA текущего дисплея.
2. Вызвать процедуру VBA, приписанную в одном из дисплеев, через макрос.
3. Есть ли возможность создания глобальных переменных/объектов/классов/отдельных процедур VBA, видимых и доступных из любого места проекта, будь то код VBA дисплея, макрос и прочее?
4. Куда делась команда VbaExec??? Shocked
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов Smart Solutions VDT -> Программные средства систем автоматизации Часовой пояс: GMT + 1
На страницу 1, 2  След.
Страница 1 из 2

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

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.131 секунды
/n