глобальные переменные/константы в WinCC
иван жуков; 28.4.03

В Си-actions меняю цвета элементов на экране. Чтобы легко изменить цвет всех элементов, завел макросы в своем файле определений (defines) который включаю в apdefap.h Предполагалось, что если я только в этом файле изменю определения, то при выполнении скриптов цвета будут заменены на новые. Конечно, этого не произошло: нужно перекомпилировать все скрипты на всех элементах. Так вот: можно ли эти цвета задавать глобально не defin'ами, а глобальными переменными или константами, так чтобы не требовалось перекомпиляции всех скриптов?

Re: глобальные переменные/константы в WinCC
Лев Шерешевский ; 28.4.03

С событием открытия стартовой экранной формы можно связать С-action, в котором создаются и инициализируются обычные переменные С, описывающие нужные цвета. Во всех остальных скриптах достаточно описать те же переменные с атрибутом extern.

Альтернативный способ - хранить цвета в тегах (работать будет медленнее).
Re: глобальные переменные/константы в WinCC
иван жуков; 29.4.03

> С событием открытия стартовой

> экранной формы можно связать С-
> action, в котором создаются и
> инициализируются обычные переменные
> С, описывающие нужные цвета. Во всех
> остальных скриптах достаточно описать
> те же переменные с атрибутом extern.

Это то что надо. Только где привязка таких actions производится? Вроде бы только по изменению тегов и по таймеру они запускаются. Или там какой-то специальный тег есть, который на старте изменяется? (Я конечно понимаю, что где-то в документации есть пояснения, но очень долго искать придется...)


Re: глобальные переменные/константы в WinCC
иван жуков; 29.4.03

вот я нашел событие Open Picture, оно определяется для каждого экрана. Получается переменные/константы надо в скрипте, прикрепленном к событию, определить? А не будут эти определения между собой конфликтовать?

Re: глобальные переменные/константы в WinCC
Лев Шерешевский; 29.4.03

Да, надо использовать событие OpenPicture и в связанном с ним скрипте определить и инициализировать переменные (без модификатора extern!). Как правило, в любом проекте есть стартовая экранная форма, которая открывается ОДНАЖДЫ в самом начале работы системы. Если в Вашем случае это не так, можно придумать еще какое-либо ухищрение.

Re: глобальные переменные/константы в WinCC
иван жуков; 29.4.03

вот я нашел событие Open Picture, оно определяется для каждого экрана. Получается переменные/константы надо в скрипте, прикрепленном к событию, определить? А не будут эти определения между собой конфликтовать?