Страница 1 из 1
Ссылки на удаленные теги

Добавлено:
Чт авг 30, 2007 9:22 am
Igor V. Zhdanov
Изучил механизм ссылок на удаленные теги. Оказывается, можно серьезно съэкономить на тегах. Нет ли каких-либо "подводных камней", ограничений? Спецы, монтировавшие нашу АСУ ТП, когда возник вопрос ужать теги, сильно урезали функциональность, но удаленные ссылки не применяли. Кто-нибудь пользует сабж?

Добавлено:
Чт авг 30, 2007 12:52 pm
Admin
Уважаемый Igor,
с точки зрения лицензии, нет разницы между тем,
используете ли Вы удаленную ссылку или I/O тэг.
В любом случае выполняется условие,что
Число тэгов + число удаленных ссылок <= Число тэгов в лицензии.

Добавлено:
Пн сен 03, 2007 6:52 pm
Igor V. Zhdanov
Уважаемый Admin!
Мой вопрос о работе: одинаковые ли механизмы использует InTouch для отображения параметра при использовании тега и ссылки на удаленный тег?
Тренды и т.п. в расчет не берем, только визуализация.

Добавлено:
Вт сен 04, 2007 1:52 pm
Admin
Уважаемый Igor,
В смысле, "используемый механизм отображения"? - отображается все пикселями, знаете ли )
Тэг предполагает запись в словарь, а ссылка - нет.
С помощью ссылок можно реализовать в клиентском приложении механизм динамической адресации с помощью полей .Reference, .ReferenceComplete и функции IOSetAccessNаme

Добавлено:
Ср сен 05, 2007 9:41 am
Igor V. Zhdanov
Уважаемый Admin!
Я имел в виду внутренние механизмы InTouch, его программный код.
Задача такова: имеем какой-либо аналоговый параметр. Требуется отображать его значение в InTouch. Имеем 2 варианта - создать тег в словаре тегов или ссылку на удаленный тег. Есть ли разница во внутренней реализации InTouch'а механизма отображения значений параметра? Если отображать 1-2 параметра, то, думаю, при любой реализации разницы не будет. А если параматров несколько сотен? Не возникнут ли глюки и "тормоза"?
Скорее всего, я зря беспокоюсь, но сейчас переделываю проект на удаленные ссылки и хотел бы обезопасить себя от возможных проблем.

Добавлено:
Ср сен 05, 2007 12:22 pm
Admin
Послушайте Игорь, программный код Интача это закрытый код, то есть существует явная аналогия с Windows. Более того, фактически код недокументирован (например порядок вызова процедур, какой он?) Отсюда Ваше недоверие?
Но постараюсь Вас успокоить - если сама система (нижний уровень) построена разумно, то и с InTouch проблем не должно быть. При этом без разницы каким методом Вы воспользуетесь:
Механизм удаленных ссылок использует технологию Dynamic Data Exchange, которая позволяет достаточно быстро передавать большие объемы информации. И такой же механизм используется для обновления текущего значения тэга в словаре.
Единственное, чего делать нельзя - это реализовывать управляющую логику средствами QuickScript! А для отображения InTouch хорошо подходит.

Добавлено:
Пт сен 07, 2007 9:57 am
Igor V. Zhdanov
Да нет никакого недоверия, просто интересует практический опыт. Я пытаюсь понять, зачем создавать тег в словаре, если можно создать удаленную ссылку. Да и интачу полегче - не надо обрабатывать лишние теги.

Добавлено:
Пт сен 07, 2007 2:35 pm
Admin
Ну это то просто объясняется просто

Иногда полезно иметь словарь переменных.
Допустим, Вам нужно создать 500 одинаковых переменных.
Тогда Вы с помощью Application Manager (используя DBDump)
выгружаете словарь тэгов в файл csv, редактируете его в Excel
и подгружаете в приложение с помощью DBLoad.

Добавлено:
Пт сен 07, 2007 3:25 pm
Igor V. Zhdanov
А зачем создавать 500 одинаковых переменных?
Мне требуется для каждого аналогового сигнала:
1. Создать архивный тренд;
2. Вести базу тревог и событий;
3. Отображать дополнительные параметры сигнала и выполнять управление(токовое значение, диапазон ит.д.)
Если в первых 2 случаях без создания тега не обойтись, то в 3 вполне возможно. Тем более, что таких переменных побольше.

Добавлено:
Пт сен 07, 2007 3:57 pm
Admin
Я согласен с Вами. Просто хотел пояснить, что бывает удобнее
редактировать массив переменных в Excel чем по отдельности в словаре тэгов.
А удаленные ссылки - это тема.

Добавлено:
Пт сен 07, 2007 5:47 pm
Igor V. Zhdanov
Тема:
смогу ли я сохранять тревоги и события с помощью Alarm Printer'а, используя удаленные ссылки. Примерно так: существует дискретный сигнал, который меняет свое состояние при достижении аналоговым параметром аварийного порога. Alarm Printer должен фиксировать изменение состояния дискретного сигнала и сохранять значение на данный момент аналогового.
Или Alarm Printer работает только с тегами?

Добавлено:
Пн сен 10, 2007 2:37 pm
Admin
Alarm Printer работает только с тэгами. Remote References используются как правило, в клиентских приложениях.
Любое серверное приложение, такое как архив или работа с алармами,
должно иметь базу тэгов.
1) Насколько я понял, Alarm Printer работает с группами алармов. Это удобно поскольку для различных тэгов задаются разные группы. Alarm Groups настраиваются в Configure-> Alarm Groups
2)Каждый тэг относится к некоторой группе алармов, по умолчанию это $System. Также, но независимо от Alarm Groups, каждый тэг относится к какому-нибудь Access Name, по умолчанию это Galaxy.
3)Поскольку для Remote Reference нельзя определить Alarm Group,
то они не будут обрабатываться Alarm Printer.

Добавлено:
Вт окт 09, 2007 12:00 pm
Dimitor
Уважаемый Igor,
Не экономьте на тегах! Экономьте на времени разработки!
Я использую следующую схему организации тегов (кстати она совпадает с тем, что вы указывали в одном из постов):
1. Если для параметра требуется предыстория - создать отдельный тег
2. Если для параметра нужен аларм - создать отдельный тег
3. Редко используемые параметры, для которых нет необходимости в предыстории, аларминге и постоянном отображении на экране, создаются на лету (ваш случай)
4. Метаинформацию по объекту храню упакованной в текстовом теге (один на объект)
PS 2 Admin: csv-файл, сгенерированный DBDump, не всегда обрабатывается DBLoad даже в неизмененном виде, не говоря уже об файле измененном Excel-ем (там глюков еще больше).
Когда мне приходится обрабатывать большие объемы тегов (изменение и создание) я использую Python. Могу поделиться примерами.
Думал об конвертации дампа в какую-нибудь БД с последующей обработкой sql-запросами, но острая необходимость в этом так и не созрела.

Добавлено:
Вт окт 09, 2007 6:31 pm
Igor V. Zhdanov
А мне не надо время экономить, я не разработчик. Я оптимизирую. Проект с глюками, ошибками и, как уже говорил, сильно урезан. К тому же добавляется новое оборудование.
А что за метаинформация по объекту?

Добавлено:
Ср окт 10, 2007 10:22 am
Dimitor
А мне не надо время экономить, я не разработчик. Я оптимизирую.
Если вы не разработчик, то бросьте заниматься оптимизированием программы, т.к. вы не имеете реальных средств внедрения ваших "оптимизаций" в жизнь и просто мелете воду в ступе.
А что за метаинформация по объекту?
Это дополнительная информация, которая не оказывает влияния на текущее состояние программы, но бывает нужна от случая к случаю.
Например, в случае объекта "Аналоговый датчик", я сюда отношу
Позиционное обозначение,
Минимум и максимум физической величины,
физический адрес точки ввода в контроллере
и еще какую-то мелочевку, на которую жалко тратить теги.
Для этих целей вроде как можно использовать средство InTouch - Recipe, но мне что-то лень с ним разбираться, тем более выигрыша не предвидится никакого.

Добавлено:
Ср окт 10, 2007 6:39 pm
Igor V. Zhdanov
Я оптимизирую проект на своем объекте. Внедрять куда-то на сторону ничего не собираюсь, а хочу, чтобы все было красиво и не было никакого геммороя


Добавлено:
Пн фев 11, 2008 4:12 pm
Fallout13
Igor V. Zhdanov писал(а):А зачем создавать 500 одинаковых переменных?
Мне требуется для каждого аналогового сигнала:
1. Создать архивный тренд;
2. Вести базу тревог и событий;
3. Отображать дополнительные параметры сигнала и выполнять управление(токовое значение, диапазон ит.д.)
Если в первых 2 случаях без создания тега не обойтись, то в 3 вполне возможно. Тем более, что таких переменных побольше.
Здравствуйте.
Давайте обо всем по порядку.
1. Архивный тренд на удаленный тег сделать можно. Вернее можно вывести тренд переменной архивируемой на другой машине. Все настраивается в Configure\Historical Logging. Тут есть свои камни, но если выбирать не из чего....
2. Зачем вам на каждой машине вести базу тревог и событий? Считывайте все из общего SQL сервера... Если вам нужно отображать текущие аварии а не архив то в компонентах alarmviewer и alarmdiplays есть соответствующая настройка Query, где через пробел прописываете все машины и группы алармов, которые хотите показать.
А теперь вопрос к администрации ).
Вы ранее упоминали что ссылки все равно идут в подсчет лицензии как обычные теги или я не правильно понял?

Добавлено:
Чт фев 28, 2008 11:07 am
Admin
Ссылки тоже идут в счет, каждая уникальная ссылка как за один тэг.

Добавлено:
Чт фев 28, 2008 12:13 pm
Fallout13
Admin писал(а):Ссылки тоже идут в счет, каждая уникальная ссылка как за один тэг.
ну да, согласен так написано в юзер мануале.
Однако можете проверить счетчик не считает ссылки за теги.
Вполне рабочая ситуация. На машине лицензия на 500 тегов. Занято ~450 тегами + ~150 ссылок работает как часики и про лицензию ничего не спрашивает.

Добавлено:
Пт мар 14, 2008 5:13 pm
Igor V. Zhdanov
Ну вы даете!!!
По моему, в мануале достаточно очевидно написано, что лицензируются только теги, описанные в словаре тегов. Следовательно, удаленные ссылки не входят в список лицензирования. Единственное ограничение, чтобы сумма тегов и ссылок не была больше 61000. Сам экспериментировал, прекрасно все работает.
Более того, в английском мануале нашел, правда еще не пробовал:
By default, remote referenced tagnames are not logged to the Historical Log file. To log remote referenced tagnames, you must enable Historical Logging and then, add the following line to the InTouch.INI file in the application directory:
RemoteTagsLogEvents=1
To exclude I/O tagnames from being logged, add the following line to the
InTouch.INI file in the application directory:
RemoteTagsNoIOEvents=1
Note The RemoteTagsNoIOEvents setting only applies if
RemoteTagsLogEvents is set to 1.