Страница 1 из 1

Добавлено: 29 июн 2009, 16:07
Faster
Доброе , можно ли туда добавить вычитывание по ID значения пути ОПЦ, когда его задаю делаю ID =20 Name = 0:Analog:100
Теперь обратное , я знаю ид в группе мне надо знать что за сигнал


так же пример работы с архивами такой же, былобы просто супер.

Добавлено: 29 июн 2009, 16:45
Dino
Опишите подробнее, что Вы подразумеваете под "ID".

Добавлено: 30 июн 2009, 06:47
Faster
В описанном вами классе, фактически вызов функции TopcGroup.AddItems (Name,id)

Так далее когда присходит постановка на мониторинг мы задаём OPC путь (0:Analog:1 к примеру) а в другой ID++ котороепостоянно прибьавляется , таким образом колгда возникает в форме событие OnChange нам передаётся тока параметр с ID ...


мен теперь надо знать
как удалить из группы по ID
как узнать какой сигнал скрыт за этим ID в группе


Я уж не знаю куда понятнее написать

Добавлено: 30 июн 2009, 13:21
Dino
Faster писал(а):как удалить из группы по ID

Используйте функцию IOPCItemMgt::RemoveItems (описание можно найти в OPC Data Access Custom Interface Specification Version 3.0), только братите внимание на то что удаление элементов из группы происходит не по ID, который задал клиент, а по ID, который возратил OPC сервер при вызове IOPCItemMgt::AddItem, в возвращаемом параметре OPCITEMRESULT ** ppAddResults.

Faster писал(а):как узнать какой сигнал скрыт за этим ID в группе

OPC сервер данную информацию не возвращает, клиент должен сам помнить какой сигнал какому ID соответствует. Для этого проще всего использовать словарь или хэш для быстрого поиска, если сигналов много.

Добавлено: 02 июл 2009, 03:50
Faster
вообще пример бы ...



а насчёт возврата, неужели нет метода получить обратно инфу сигнал:ID ? это же бред ?


и ещё вопрос если в моём приложении возникает Crash и оно падает не закрывая классы , так сказать экстренно , OPC см высвобождает память из под групп и прочего ?

Добавлено: 02 июл 2009, 04:03
Faster
А ещё бы хотелось пример работы с архивами таким же способом, чтобы уйти от компонентов!

Добавлено: 07 июл 2009, 00:53
Faster
прошла неделя, а ответа нет и нет

Добавлено: 17 сен 2009, 19:18
Dino
Faster писал(а):вообще пример бы ...
а насчёт возврата, неужели нет метода получить обратно инфу сигнал:ID ? это же бред ?

нет
Faster писал(а):и ещё вопрос если в моём приложении возникает Crash и оно падает не закрывая классы , так сказать экстренно , OPC см высвобождает память из под групп и прочего ?

да, должен освобождать

Добавлено: 18 сен 2009, 04:21
Faster
Используйте функцию IOPCItemMgt::RemoveItems (описание можно найти в OPC Data Access Custom Interface Specification Version 3.0), только братите внимание на то что удаление элементов из группы происходит не по ID, который задал клиент, а по ID, который возратил OPC сервер при вызове IOPCItemMgt::AddItem, в возвращаемом параметре OPCITEMRESULT ** ppAddResults.


А я сохраняю абор соответствия с своими ID что я давал в OPC сервер , и когда происходит изменение , он какраз выдаёт мои ID
сейчас попробую подругому ...


ещё вопрос , если я создам вторую группу сигналов, то ID должны быть уникальны в пределах группы или уникальность в приделах всего OPC

Добавлено: 18 сен 2009, 13:37
Dino
Faster писал(а):ещё вопрос , если я создам вторую группу сигналов, то ID должны быть уникальны в пределах группы или уникальность в приделах всего OPC

должны быть уникальны в пределах группы