Как автоматизировать разработку проекта в WinCC 6.0 SP2?
Эдуард; 13.9.04

Здравствуйте! Подскажите, пожалуйста, как в WinCC 6.0 + SP2 автоматизировать работу по привязке однотипных объектов (аналоговые сигналы, задвижки, насосы)? Чтобы был понятен вопрос, объясню как это делаю я в SCADA-пакете iFIX 3.0. Создаю базу данных в MS Access с описанием всех имеющихся объектов, например в таблице ZD этой БД содержится описание задвижек: номер задвижки, описание, номер по технологии, имена тегов.

У любого объекта в этой СКАДЕ есть два главных события OnEdit() и OnClick(). Первое событие вызывается в среде конфигурации во время щелчка мышью на объекте, второе – в среде исполнения во время щелчка мышью на объекте. В VBA (Visual Basic Application) этой СКАДЫ в событии OnEdit вызываем наше сконструированное окно. При открытии это окно связывается с БД с нужной таблицей, например, если объект – задвижка, то с таблицей ZD. В этом окне мы выбираем нужную запись и жмем ОК. Дальше скрипт VBA прописывает все теги выбранной задвижки в нужные свойства, анимируя их. При большом количестве объектов такая штука очень удобна: меньше движений – экономия времени, мала вероятность ошибочной привязки, удобство перепривязывания при пуско-наладке.
Я читал руководство пользователя WinCC 6.0, раздел VBA. Что-то такого я там не увидел, хотя там все в общих чертах написано.
Возможно ли подобное в WinCC? А какие способы автоматизации в WinCC?

С уважением, Эдуард.

Re: Как автоматизировать разработку проекта в WinCC 6.0 SP2?
Макс Прилепский; 14.9.04

Можно использовать структурные теги, при этом название механизма делать названием структурного тега, например Valve1 - задвижка №1, Valve2 - задвижка №2. Затем сделать один объект/группу объектов с привязкой к свойствам/событиям элементов структуры

Valve1.
Если не использовать структуры, то создавать теги для однотипных объектов надо в таком ключе:
Valve1_State , Valve1_Regime, Valve1_Alarm - для задвижки №1;

Valve2_State , Valve2_Regime, Valve2_Alarm - для задвижки №2 и т.д.

В actions объекта теги определять следующим образом :

для C-Action добавлять секцию внутри которой директивой #define определять теги и далее в action к ним обращаться по переопределённым именам

// WINCC:TAGNAME_SECTION_START
#define Tag1 "Valve1.State"
#define Tag2 "Valve1.Regime"
// WINCC:TAGNAME_SECTION_END

Для VBS секция имеет такой вид:

' WINCC:TAGNAME_SECTION_START
Const Tag1 = "Valve1.State"
Const Tag2 = "Valve1.Regime"
' WINCC:TAGNAME_SECTION_END

После создания объекта в Graphics Designer этот объект или группа дублируются, выделяются и вызывается контекстное меню Linking->Tag Connections в котором в закладке Find And Replace в поле Search For вводится Valve1 , а в поле Replace With вводится Valve2, затем последовательно нажимаются кнопки Select All и Replace. В результате все привязанные к объекту теги, в т.ч. и в actions , если объявлены так, как указано выше, имеющие в названии текст Valve1 изменятcя на теги Valve2. Заменять тексты типа Static Text и ToolTip можно подобным образом с помощью контекстного меню Linking->Texts.

Все вышенаписанное, за исключением использования VBS, актуально и для WinCC 5.x
Re: Как автоматизировать разработку проекта в WinCC 6.0 SP2?
Дмитрий; 14.9.04

Как часть концепции TIA (Полная интегрированная автоматизация) WinCC в связке с STEP7 позволяет автоматизировать большинство задач проектирования комплексных систем. К сожалению в рамках форума описывать все возможности и варианты долго. Лучше один раз показать.