? ODK : Linking Tag Connections
Шимолин Сергей, ОАО "УМЗ"; 16.4.03

Кто-нибудь работал с ODK-ми функциями для реализации команды Linking Tag Connections.

Задача : В базе список тегов, по ним в картинке pdl нужно создать индикаторы (заданные групповые объекты) и автоматически привязать теги из базы. Копирование, привязка получается. Не получается сделать функцию замены, как в Linking Tag Connection. Может кто делал что-нибудь похожее.. и поделится... :)
Re: ? ODK : Linking Tag Connections
Лев Шерешевский; 18.4.03

Если я правильно понял Вашу задачу, необходимо использовать функцию ODK PDLRTSetLink или использовать макрос LinkInstance. Оба эти варианта работают нормально, но с ними достаточно много возни. Если есть возможность, удобнее использовать TagPrefix, хотя и с ним есть свои сложности.


Re: ? ODK : Linking Tag Connections
Прокопенко Вера; 8.5.03

Аналогичная проблема. Нужно скопировать объект , в котором изменение свойства (цвет) привязано к тегу через Dynamic Dialog и поменять имя тега. Функция PDLCSSetLink в данном случае имя тега меняет, но сбрасывает динамические привязки. Я допускаю ошибку, или PDLCSSetLink работает только с тегами, привязанными напрямую? Что такое макрос LinkInstance и как он использеутся?

Re: ? ODK : Linking Tag Connections
Лев Шерешевский; 10.5.03

Давайте четко определимся с поставленной задачей. Суда по тому, что Вы пытаетесь использовать функции CS, цель состоит в создании в design-time идентичных копий объектов, привязанных к разным тегам. Если число дубликатов, которые необходимо создать, не чрезмерно, проще всего ограничиться стандартным методом: создать копии и перепривязать их используя Edit->Linking->Tag Connections. Этот способ корректно меняет теги, динамические привязки и даже привязку к тегам в скриптах (если все сделать правильно). С функцией же PDLCSSetLink, скорее всего, Вы не сможете создать копию привязки Dynamic Dialog, т.к. это сгенерированный с помощью wizard-а скрипт.


Второй вариант действий - это использовать перепривязывание во время исполнения. Здесь, как я уже писал, можно применять TagPrefix (работает и с привязками Dynamic Dialog), функцию PDLRTSetLink и макрос LinkInstance.
Альтернативный вариант - использовать технологию Picture Module (см. одноименную закладку Dynamic Wizard)

По поводу LinkInstance. Это макрос, определенный в файле WinCC\aplib\PicBlck.h. Принципиальных преимуществ он не дает, но может быть удобен при большом количестве связей. Как он действует Вы сможете понять, изучив результаты работы wizard-ов Picture Module.
Re: ? ODK : Linking Tag Connections
Владимир; 12.5.03

Интересует функция PDLRTSetLink.

Можно примерчик, как это прилепить к какому-либо свойству объекта ?



Re: ? ODK : Linking Tag Connections
Лев Шерешевский; 12.5.03

Эта функция достаточно подробно описана в ODK. Особых неожиданностей при ее использовании вроде бы не возникает, но если будут проблемы, пишите по электронной почте, будем разбираться.

Re: ? ODK : Linking Tag Connections
Владимир; 14.5.03

PDLRTSetLink не работает с привязками Dynamic Dialog. Какие еще есть варианты чтобы работало с Dynamic Dialog?

Re: ? ODK : Linking Tag Connections
Лев Шерешевский; 15.5.03

Вы можете использовать TagPrefix, он распространяется и на связи, созданные Dynamic Dialog. Есть и другие способы, но они уж слишком трудоемкие и медленно работающие.

Re: ? ODK : Linking Tag Connections
Владимир; 15.5.03

Кстати о TAG Prefix. Уже обсуждался вопрос о том, как избавиться на некоторых объектах в Picture Window от этого свойства. Кроме связей Indirect я ничего не смог применить. Есть ли еще способы?