SIEMENS, DF&PD

Предыдущее посещение: Вт июн 28, 2016 15:13 Текущее время: Вт июн 28, 2016 15:13

Часовой пояс: UTC + 3 часа




 [ Сообщений: 15 ] 
Автор Сообщение
 Заголовок сообщения: WinCC скрипты
СообщениеДобавлено: Ср июл 02, 2008 10:21 
Не в сети
Известный Писатель

Зарегистрирован: Чт дек 15, 2005 18:57
Сообщения: 308
Откуда: Одесса, Украина
Как можно получить доступ к компоненту другого экрана в проекте??
На определение вида

Dim obj
Set obj = HMIRuntime.Screens("Screen1").ScreenItems("Control1")

ругается, что Переменная Screens не определена. Что это такое??

http://i073.radikal.ru/0807/ad/51905b619dd9.jpg

PS:Это определено в евенте обьекта на другом экране. Разве нельзя получить ко всем обьектам доступ глобально из события??


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср июл 02, 2008 13:54 
Не в сети
Ведущий специалист

Зарегистрирован: Пт дек 31, 2004 13:25
Сообщения: 2248
Откуда: SIEMENS I IA AS Москва
Из VBS есть доступ только к активным объектам WinCC. Из Help'а:
By using the picture window technique, several windows can be opened simultaneously in WinCC Runtime but only one basic picture exists. The "Screens" list enables access to all open pictures in Runtime using the picture names. The Screens list contains all invisible pictures.
То есть, если Вы обращаетесь к pdl открытой в каком то picture window, то стоит разбираться дальше в скрипте что не так, но если это обращение к неактивной картинке, то заранее понятно, что ничего не будет работать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср июл 02, 2008 14:01 
Не в сети
Известный Писатель

Зарегистрирован: Чт дек 15, 2005 18:57
Сообщения: 308
Откуда: Одесса, Украина
Ок. Тoгда как получить доступ к обьекту неоткрытого в данный момент окна??
Спасибо.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср июл 02, 2008 14:08 
Не в сети
Ведущий специалист

Зарегистрирован: Пт дек 31, 2004 13:25
Сообщения: 2248
Откуда: SIEMENS I IA AS Москва
Никак. И это на мой взгляд правильно - доступ ко всем картинкам есть в среде разработки через ODK и VBA, а вот в скриптах рантайма давать такую возможность нельзя, да и не нужно, на мой взгляд.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср июл 02, 2008 14:35 
Не в сети
Известный Писатель

Зарегистрирован: Чт дек 15, 2005 18:57
Сообщения: 308
Откуда: Одесса, Украина
Спасибо


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср июл 02, 2008 14:42 
Не в сети
Известный Писатель

Зарегистрирован: Вт мар 18, 2008 9:18
Сообщения: 138
Мжно попробывать достучаться к компоненту экрана в проекте из Global Script так:

Код:
Function action
Dim s, Tag, f, tbl
Set s=HMIRuntime.Tags("Tag")
s.Read
f=s.Value
If HMIRuntime.ActiveScreen.ObjectName="Account" Then
Set tbl=HMIRuntime.ActiveScreen.ScreenItems("Account_table")
tbl.Filter=f
End If

Компонент Account_table - User Archive Table element находится в экране Account. В результате выполнения скрипта фильтруется таблица архивных значений Account_table по условию f, но фильтр выполняется только когда активный экран "Account".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср июл 02, 2008 14:53 
Не в сети
Известный Писатель

Зарегистрирован: Чт дек 15, 2005 18:57
Сообщения: 308
Откуда: Одесса, Украина
Да. Но тут есть необходимость заполнить 120 комбобоксов на разных экранах одним списком. И что - писать к каждому экрану свои обработчики OnShow???


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт июл 03, 2008 14:54 
Не в сети

Зарегистрирован: Сб апр 28, 2007 11:55
Сообщения: 9
Откуда: Днепропетровск, НИПИ САУ
На Си можно достучатся к любому графическому объекту проекта. Например задать свойство объекта:
SetPropWord(имя картинки,имя объекта, свойство объекта,значение);


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт июл 03, 2008 15:56 
Не в сети
Известный Писатель

Зарегистрирован: Чт дек 15, 2005 18:57
Сообщения: 308
Откуда: Одесса, Украина
Примерчик можно??
Спасибо большое.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт июл 04, 2008 4:06 
Не в сети
Известный Писатель

Зарегистрирован: Пт ноя 02, 2007 6:19
Сообщения: 458
Откуда: irk
gola писал(а):
На Си можно достучатся к любому графическому объекту проекта. Например задать свойство объекта:
SetPropWord(имя картинки,имя объекта, свойство объекта,значение);


а я всегда думал что если обратиться к объекту, который находится на не открытом в данный момент экране, то скрипт вылетит с ошибкой типа "object does not exist", будь то Си или vbs. разве нет?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт июл 04, 2008 8:13 
Не в сети
Известный Писатель

Зарегистрирован: Чт дек 15, 2005 18:57
Сообщения: 308
Откуда: Одесса, Украина
Как уже сказали - ВБС - однозначно вылетит. С С не пробовал еще.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт июл 04, 2008 8:30 
Не в сети
Ведущий специалист

Зарегистрирован: Пт дек 31, 2004 13:25
Сообщения: 2248
Откуда: SIEMENS I IA AS Москва
[quote="Andrey"]Как уже сказали - ВБС - однозначно вылетит. С С не пробовал еще.[/quote]
И не пробуйте, не теряйте время - вылетит и в С :-)
А потом как можно вообще пытаться работать с контролом (Combobox), которого нет в памяти - он динамически инициализируется при открытии pdl.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт июл 04, 2008 9:34 
Не в сети
Известный Писатель

Зарегистрирован: Чт дек 15, 2005 18:57
Сообщения: 308
Откуда: Одесса, Украина
Спасибо за советы. А есть ли у кого пример работы с тегами по ссылке. И вообще есть ли такая возможность в Сиське?? То есть использовать 1 экран настройки для нескольких отдельных обьектов, переключая указатель на тэги.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт июл 04, 2008 10:27 
Не в сети
Известный Писатель

Зарегистрирован: Пт ноя 02, 2007 6:19
Сообщения: 458
Откуда: irk
Andrey писал(а):
А есть ли у кого пример работы с тегами по ссылке. И вообще есть ли такая возможность в Сиське??.


помимо того что можно самому замутить изменение имен тэгов используемых в окне или воспользоваться indirect-адресацией (соответсвующая галочка в свойствах любого объекта - то есть для динамики какого то свойства указан не тэг со значением - а тэг содержащий имя тэга со значением ) - можно еще воспользоваться
свойством tag prefix объекта picture window (ну типа дочернего окна) - этот самый префикс будет добавлятся к имени каждого тега используемого в окне
Цитата:
То есть использовать 1 экран настройки для нескольких отдельных обьектов, переключая указатель на тэги

т.е к примеру по нажатию кнопки настройки одного объекта устанавливать один префикс для этого окна, по другой кнопке - менять префикс на нужный


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт июл 04, 2008 15:32 
Не в сети
Известный Писатель

Зарегистрирован: Чт дек 15, 2005 18:57
Сообщения: 308
Откуда: Одесса, Украина
Где поискать работут с указателями в С?? Подскажите пожалуйста. В VBS разобрался, вот для С не могу понять.
Спасибо.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
 [ Сообщений: 15 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения

Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group