Современные технологии автоматизации» («СТА») —  журнал для квалифицированных специалистов по промышленной автоматизации Форум СТА — современные технологии автоматизации Домашняя страница
Домашняя страница форума CTA Домашняя страница форума CTA > II. АСУТП и SCADA > Архив
  Активные темы Активные темы
  FAQ FAQ  Искать в форуме   Зарегистрироваться Зарегистрироваться  Вход в систему Вход в систему

опять OPC...

 Ответить Ответить Страница  123>
Автор
Сообщение
Veron Смотреть выпадающим
Новичок
Новичок


Присоединился: 14 Октябрь 2004
Категория: Russian Federation
Online Status: Offline
Публикации: 10
Свойства публикации Свойства публикации   Ответить, цитируя автора - Veron Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Тема сообщения: опять OPC...
    Опубликовано: 17 Октябрь 2004 00:35

Или я совсем дурной или ниче не понимаю (что почти одно и то же )

Я использую исходники с сайта www.opcconnect.com конкретно -  delphiopcclient. Вроде все понятно и просто, пример нормально компилируется, но во время работы выдает ошибки типа "незарегистрированный класс". Я проверил, оказалось, что ненайден интерфейс IDataObject из ... ActiveX.pas  - как так? Может, его надо как-то зарегистрировать??? В файле объявлен его GUID, но в реестре я такого не нашел. И остальные интерфейсы из этого файла также отсутствуют в реестре.

Может мне кто-нить объяснить это?

Прошу прощения за возможную тупость вопроса.

русский Иван
Наверх
uzga Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 07 Октябрь 2004
Категория: Russian Federation
Online Status: Offline
Публикации: 359
Свойства публикации Свойства публикации   Ответить, цитируя автора - uzga Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 17 Октябрь 2004 12:43

Я сам скачал данный компонент, но еще не проверял его. В файле readmi-client.html есть такое примечание: You will also need the Delphi conversion of the OPC custom interfaces, available separately from the Delphi page at OPC Programmers' Connection.

 

Возможно поможет.

Желаю успеха.

Наверх
Veron Смотреть выпадающим
Новичок
Новичок


Присоединился: 14 Октябрь 2004
Категория: Russian Federation
Online Status: Offline
Публикации: 10
Свойства публикации Свойства публикации   Ответить, цитируя автора - Veron Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 18 Октябрь 2004 11:19

Это было бы слишком просто =)

Я тоже читал этот файл, все необходимое (кроме упомянутых файлов еще нужна библиотека dll с сайта www.opcfoundation.com) скачал...

Опять же не находится не тот интерфейс, что описан в библиотеке OPC, а из файла ActiveX.pas, то есть он должен был бы работать и при использовании в каких-нибудь других приложениях, связанных с ActiveX, я так думаю... А дополнительные файлы определяют новые интерфейсы для OPC и только, старые типа IDataObject не затрагиваются. Вот такие у нас пироги. 

русский Иван
Наверх
Veron Смотреть выпадающим
Новичок
Новичок


Присоединился: 14 Октябрь 2004
Категория: Russian Federation
Online Status: Offline
Публикации: 10
Свойства публикации Свойства публикации   Ответить, цитируя автора - Veron Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 20 Октябрь 2004 13:16

Снова я...

Каким-то чудом разобрался с этими интерфейсами =)

Теперь другая проблема:

   В примере сервера есть такие функции как :

TAsyncIO2.HandleChange

TAsyncIO2.HandleRead

TAsyncIO2.HandleWrite

Они в принципе своем похожи, потому я их привел вместе. А дело в следующем коде:

  pVariants:=POleVariantArray(CoTaskMemAlloc(itemCount*sizeof(OleVariant))); 

// переменная типа POleVariant размером на itemCount элементов

... // какой-то код, заполнение и использование pVariants...

if pVariants <> nil then      CoTaskMemFree(pVariants);

Вот тут пояляются ошибки. Вообще при попытке присвоения переменной pVariants какого-то значения - РАЗ. Где-то в статьях прочитал, что надо при работе в вариантными типами использовать дополнительно Initialize(pVariants,sizeof(OleVariant));

Но тогда появляется ошибка при выполнении строки CoTaskMemFree(pVariants); Добавление строки типа Finalize(pVariants) не помогает...

Не знаю, что неправильного???

русский Иван
Наверх
kill Смотреть выпадающим
Новичок
Новичок


Присоединился: 22 Ноябрь 2004
Категория: Russian Federation
Online Status: Offline
Публикации: 36
Свойства публикации Свойства публикации   Ответить, цитируя автора - kill Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 29 Ноябрь 2004 15:52

А можно уточнить, каким чудом с интерфейсами разобрался? Дело в том, что у меня такая же ошибка вылезала не со всеми клиентами, а только с версии 1.0 ОРС. Я смотрел спецификацию и нашел там строчку, типа IDataObject - obsolete (эт, по-моему класс в IGroup, может и ошибаюсь, конечно...)

А вообще, щаз пользуюсь Fastwell UniOPC Server (в смысле, начинаю разбираться, и пока получается). - Там надо только длл-ку написать. Есть пример на сях, в делфи переносится без большого труда.

просто Шурик
Наверх
Serenum Смотреть выпадающим
Новичок
Новичок


Присоединился: 21 Июль 2004
Категория: Kazakhstan
Online Status: Offline
Публикации: 10
Свойства публикации Свойства публикации   Ответить, цитируя автора - Serenum Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 07 Январь 2005 13:13

kill, скинь, пожалуйста мне на мыло, saveliev_d@rambler.ru, исходник DLL-ки к UniOPC на сях? Только начинаю осваивать, понимаешь...

Наверх
ivsergey Смотреть выпадающим
Участник
Участник


Присоединился: 21 Июнь 2004
Категория: Russian Federation
Online Status: Offline
Публикации: 66
Свойства публикации Свойства публикации   Ответить, цитируя автора - ivsergey Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 11 Январь 2005 05:59

kill, а мне пожалуйста пример на DELPHI на gugoya@inbox.ru

Наверх
kill Смотреть выпадающим
Новичок
Новичок


Присоединился: 22 Ноябрь 2004
Категория: Russian Federation
Online Status: Offline
Публикации: 36
Свойства публикации Свойства публикации   Ответить, цитируя автора - kill Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 11 Январь 2005 08:31

to Serenum: писал на делфи, исходник на сях в примере к серверу

to ivsergey: пошлю.

просто Шурик
Наверх
Veron Смотреть выпадающим
Новичок
Новичок


Присоединился: 14 Октябрь 2004
Категория: Russian Federation
Online Status: Offline
Публикации: 10
Свойства публикации Свойства публикации   Ответить, цитируя автора - Veron Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 11 Январь 2005 23:20

Эх, давненько не залезал...

Каким чудом разобрался - и сам не помню, вроде бы просто пошел другим путем (там было 2 способа получения данных от сервера)

А насчет UniOPC - че енто за зверь? Тоже фри или один из полу-бесплатных продуктов? Только для серваков или и для клиентов? Как на нем пишется? Короче, стоит ли смотреть? Приму ссылки на исходники с благодарчиком...

Заранее спасибо!

русский Иван
Наверх
kill Смотреть выпадающим
Новичок
Новичок


Присоединился: 22 Ноябрь 2004
Категория: Russian Federation
Online Status: Offline
Публикации: 36
Свойства публикации Свойства публикации   Ответить, цитируя автора - kill Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 12 Январь 2005 08:20

Fastwel Universal OPC Server - небесплатная прога, к которой нужно написать длл, который и будет отвечать за функциональность сервера. Только для серваков. Легко ломается. 

Ввиду необходимости использования только лицензионного ПО на моем предприятии я перешел на prOPC - для делфей библиотечка(и) такая(ие). Тоже небесплатная, но можно найти, если поискать. Где-то, где точно, не помню.

просто Шурик
Наверх
 Ответить Ответить Страница  123>

Переход на форум Права доступа на форуме Смотреть выпадающим

Bulletin Board Software by Web Wiz Forums® version 9.64
Powered by Web Wiz Forums Free Express Edition
Copyright ©2001-2009 Web Wiz