powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как работать с IOPCHDA_Server из проекта opcdelphi
25 сообщений из 79, страница 3 из 4
Как работать с IOPCHDA_Server из проекта opcdelphi
    #37631665
for_kav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GrozaUmnikam aka tarasdjОРС сервера есть разных категорий. Есть OPC HDA.1, OPC HDA.2. Так вот они чемто различаються. И все что я могуВам подзказать это то что у Вас ОРС HDA.1 , а этот код работает, почему то только с OPC HDA.2. Почему так я не знаю. Проблема в том что функция GetItemServerHandle не может получить хэндл итема. ТОчно такая же ситуация у меня с WinCC. И до сих пор я не выяснил почему.
Сервер на котором я отлаживал прогу: Logika.HDA.2 - работает, а с PCS.OPCHDAServer.1 не работает. Разница в том что логиковский ОРС второй категории, а wincc - первой.
Вот и б тоже очень хотел выяснить в чем проблема, но не могу, нет возможности!!!!
тут с вами не соглашусь.
есть один стандарт на текущий момент это 1.2 и все его поддерживают, были ещё 1.0, 1.1,
делфийские библиотечки по моему на 1.2 основанны.
...
Рейтинг: 0 / 0
Как работать с IOPCHDA_Server из проекта opcdelphi
    #37631672
for_kav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да и по поводу переменной vt - я так понял что это максимальное количество запрашиваемых данных, можно поставить и 100000000000000 ))
а вот в цикле по выборке данных - да нужно вычислять количество пришедших строк.
так же выяснил что последней строкой приходит какой-то символ окончания, его нужно исключать из выборки.
...
Рейтинг: 0 / 0
Как работать с IOPCHDA_Server из проекта opcdelphi
    #37632178
for_kav,

Ну сейчас Ваш клиент работает нормально?
...
Рейтинг: 0 / 0
Как работать с IOPCHDA_Server из проекта opcdelphi
    #37632188
for_kav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну вот после недели мучений ОРС HDA клиент готов, пока реализована возможность считывания 1-Й переменной, но начинаю делать считывание нескольких переменных, ну и в последующем выгрузку данных в БД.
...
Рейтинг: 0 / 0
Как работать с IOPCHDA_Server из проекта opcdelphi
    #37632435
for_kav,

Ну я делал так:
Отображаю все теги в Тривейв. Сохраняю их в инифайле. При открытии программы загружаю с ини обратно в тривейв. Ну иканешно же автосчитывание.
Мой клиент выглядет вот так:

...
Рейтинг: 0 / 0
Как работать с IOPCHDA_Server из проекта opcdelphi
    #37632670
for_kavGrozaUmnikam aka tarasdj,

Спасибо тебе огромное товарищ!!!!!!
вот код поиска ОРС серверов на машинах:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
var
  i: integer;
  CATIDs: array of TGUID;
begin
  ListOPCServers.Clear;
  ServerNames := TStringList.Create;
  try
    //SetLength(CATIDs, 0);
    //OPCServerList := TOPCServerList.Create(Edit1.Text, true, CATIDs);
    SetLength(CATIDs, 1);
    CATIDs[0] := CATID_OPCHDAServer10;
    OPCServerList := TOPCServerList.Create(Edit1.Text, false, CATIDs);

    OPCServerList.Update;
    ServerNames.AddStrings(OPCServerList.Items);

    for i := 0 to ServerNames.count - 1 do
      begin
        ListOPCServers.Items.Add(ServerNames[i]);
      end;
  finally
    ServerNames.Free;
  end;
  ConnectOPCServer.SetFocus;
end;



вот как то так)
да и ещё приведу:
Код: pascal
1.
2.
3.
4.
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ActiveX, ComObj, CheckLst,
  OPCHDA, OPCtypes, OPCCOMN, OPCenum, ExtCtrls;



А это точно весь код для определения серверов? А то чёт не работает)))
...
Рейтинг: 0 / 0
Как работать с IOPCHDA_Server из проекта opcdelphi
    #37632728
for_kav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GrozaUmnikam aka tarasdj,

OPCServerList - тут все сервера - переменная глобальная

потом
CLSIDServer := OPCServerList.CLSID[count];
count - выбранный сервер в listbox
CLSIDServer: TGUID;
...
Рейтинг: 0 / 0
Как работать с IOPCHDA_Server из проекта opcdelphi
    #37633486
for_kav,

Приведите пожалуйста полный правильный код нажатия на кнопку. При котором будет определяться список ОРС серверов и помещаться в StringList. Если можно со всема переменными. Спасибо)))
...
Рейтинг: 0 / 0
Как работать с IOPCHDA_Server из проекта opcdelphi
    #37633585
Фотография Feg16
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Простите что вмешаюсь, а клиенты время от времени не отваливаются при длительной работе?
...
Рейтинг: 0 / 0
Как работать с IOPCHDA_Server из проекта opcdelphi
    #37633599
Feg16Простите что вмешаюсь, а клиенты время от времени не отваливаются при длительной работе?

Что Вы имеете ввиду "отваливаются" ?
...
Рейтинг: 0 / 0
Как работать с IOPCHDA_Server из проекта opcdelphi
    #37633650
Фотография Feg16
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GrozaUmnikam aka tarasdjЧто Вы имеете ввиду "отваливаются" ?Раньше, когда передача была через OPC клиент, который постоянно считывал данные, раз в пару дней - а иногда пару раз в сутки тупо отваливался и не мог больше законнектиться без перезагрузки сервера
...
Рейтинг: 0 / 0
Как работать с IOPCHDA_Server из проекта opcdelphi
    #37633718
Feg16,

Вначале каждого считывания сервер загружается, а конце считывания тот сервер надо програмно выгружать.
Кароче в конце считывания надо делать вот так и тогда ничего не отвалится, бо и не будет чему отваливаться:

Код: pascal
1.
2.
3.
   HDASyncRead._AddRef;
   Res := HDASyncRead._Release;
   HDASyncRead := nil;
...
Рейтинг: 0 / 0
Как работать с IOPCHDA_Server из проекта opcdelphi
    #37633762
for_kav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GrozaUmnikam aka tarasdjfor_kav,

Приведите пожалуйста полный правильный код нажатия на кнопку. При котором будет определяться список ОРС серверов и помещаться в StringList. Если можно со всема переменными. Спасибо)))
сейчас дома уже. завтре на работу моё тело приползёт, утром глаз откроется и начеркаю что и как.
...
Рейтинг: 0 / 0
Как работать с IOPCHDA_Server из проекта opcdelphi
    #37633786
for_kav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GrozaUmnikam aka tarasdjfor_kav,

Приведите пожалуйста полный правильный код нажатия на кнопку. При котором будет определяться список ОРС серверов и помещаться в StringList. Если можно со всема переменными. Спасибо)))

поиск ОРС серверов на машинах, так же требует правильно настроенного DCOM)) та ещё собака. за несколько лет работы столкнулся с тем, что находились такие сервера которые отказывались по сети передавать данные.
...
Рейтинг: 0 / 0
Как работать с IOPCHDA_Server из проекта opcdelphi
    #37634333
for_kav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GrozaUmnikam aka tarasdjfor_kav,

Приведите пожалуйста полный правильный код нажатия на кнопку. При котором будет определяться список ОРС серверов и помещаться в StringList. Если можно со всема переменными. Спасибо)))

1 - посмотри файлик OPCHDA, там должна быть такая структура:
начало файла:
// *********************************************************************//
// GUIDS declared in the TypeLibrary //
// *********************************************************************//
const
LIBID_OPCHDA: TGUID = '{1F1217BA-DEE0-11D2-A5E5-000086339399}';
IID_IOPCHDA_Server: TGUID = '{1F1217B0-DEE0-11D2-A5E5-000086339399}';
IID_IOPCHDA_Browser: TGUID = '{1F1217B1-DEE0-11D2-A5E5-000086339399}';
IID_IOPCHDA_SyncRead: TGUID = '{1F1217B2-DEE0-11D2-A5E5-000086339399}';
IID_IOPCHDA_SyncUpdate: TGUID = '{1F1217B3-DEE0-11D2-A5E5-000086339399}';
IID_IOPCHDA_SyncAnnotations: TGUID = '{1F1217B4-DEE0-11D2-A5E5-000086339399}';
IID_IOPCHDA_AsyncRead: TGUID = '{1F1217B5-DEE0-11D2-A5E5-000086339399}';
IID_IOPCHDA_AsyncUpdate: TGUID = '{1F1217B6-DEE0-11D2-A5E5-000086339399}';
IID_IOPCHDA_AsyncAnnotations: TGUID =
'{1F1217B7-DEE0-11D2-A5E5-000086339399}';
IID_IOPCHDA_Playback: TGUID = '{1F1217B8-DEE0-11D2-A5E5-000086339399}';
IID_IOPCHDA_DataCallback: TGUID = '{1F1217B9-DEE0-11D2-A5E5-000086339399}';

CATID_OPCHDAServer10: TGUID = '{7DE5B060-E089-11d2-A5E6-000086339399}'; ---- вот эта строка должна присутствовать

// *********************************************************************//
// Declaration of Enumerations defined in Type Library //
// *********************************************************************//
...
Рейтинг: 0 / 0
Как работать с IOPCHDA_Server из проекта opcdelphi
    #37634340
for_kav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
процедура поиска:

procedure TForm1.EnumOPCServerClick(Sender: TObject);
var
i: integer;
begin
ListOPCServers.Clear;
ServerNames := TStringList.Create;
try
SetLength(CATIDs, 1);
CATIDs[0] := CATID_OPCHDAServer10;
OPCServerList := TOPCServerList.Create(Edit1.Text, false, CATIDs);

OPCServerList.Update;
ServerNames.AddStrings(OPCServerList.Items);

for i := 0 to ServerNames.count - 1 do
begin
ListOPCServers.Items.Add(ServerNames[i]);
end;
if ServerNames.count = 0 then
Log('Сервера необнаружены!')
else
Log('Сервера обнаружены!')
finally
ServerNames.Free;
end;
ConnectOPCServer.SetFocus; ---- это можешь убрать , это просто фокус на другую кнопочку
end;
...
Рейтинг: 0 / 0
Как работать с IOPCHDA_Server из проекта opcdelphi
    #37634600
for_kav,

ListOPCServers - что за переменная? TStrings?
...
Рейтинг: 0 / 0
Как работать с IOPCHDA_Server из проекта opcdelphi
    #37634626
Все получилось!!!! Спасибо))
...
Рейтинг: 0 / 0
Как работать с IOPCHDA_Server из проекта opcdelphi
    #37634701
for_kav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GrozaUmnikam aka tarasdjВсе получилось!!!! Спасибо))
ну вот и я рад)
http://www.sql.ru/forum/images/happy.gif
...
Рейтинг: 0 / 0
Как работать с IOPCHDA_Server из проекта opcdelphi
    #37634703
for_kav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GrozaUmnikam aka tarasdj,

чтение всех переменных сделал в цикле?
просто из списка?
...
Рейтинг: 0 / 0
Как работать с IOPCHDA_Server из проекта opcdelphi
    #37635418
for_kavGrozaUmnikam aka tarasdjОРС сервера есть разных категорий. Есть OPC HDA.1, OPC HDA.2. Так вот они чемто различаються. И все что я могуВам подзказать это то что у Вас ОРС HDA.1 , а этот код работает, почему то только с OPC HDA.2. Почему так я не знаю. Проблема в том что функция GetItemServerHandle не может получить хэндл итема. ТОчно такая же ситуация у меня с WinCC. И до сих пор я не выяснил почему.
Сервер на котором я отлаживал прогу: Logika.HDA.2 - работает, а с PCS.OPCHDAServer.1 не работает. Разница в том что логиковский ОРС второй категории, а wincc - первой.
Вот и б тоже очень хотел выяснить в чем проблема, но не могу, нет возможности!!!!
тут с вами не соглашусь.
есть один стандарт на текущий момент это 1.2 и все его поддерживают, были ещё 1.0, 1.1,
делфийские библиотечки по моему на 1.2 основанны.

ТОесть Вы хотите сказать что если ОРС сервер будет 1.0 спецификации, то клиент написан по этим библиотекам работать не будет ??????
...
Рейтинг: 0 / 0
Как работать с IOPCHDA_Server из проекта opcdelphi
    #37635488
for_kav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GrozaUmnikam aka tarasdj,

не могу сказать со 100% уверенностью, что работать не будет, но возможно нужно проверять данные на принадлежность к типам стандарта ОРС.
а в стандарте 1.2 есть пункт Revision 1.2 Highlights, там есть изменения некоторые.
а вообще можете написать что за ошибку выдаёт ОРС сервер WinCC?
на какой функции затыкается в дебагере?
как точно называется ОРС сервер? и если можно его GUID.
...
Рейтинг: 0 / 0
Как работать с IOPCHDA_Server из проекта opcdelphi
    #37635583
for_kav,
Вылетает на эту строку.

Код: pascal
1.
ppItemValuesItem:=ppItemValues^[0];



ОРС : PCS7.OPCHDAServer.1

А GUID смотреть в реестре?
...
Рейтинг: 0 / 0
Как работать с IOPCHDA_Server из проекта opcdelphi
    #37635625
Походу нашел:

GUID (PCS7.OPCHDAServer.1) - {CB05BEA1-AB41-4eb3-BCC7-615337880D27}
...
Рейтинг: 0 / 0
Как работать с IOPCHDA_Server из проекта opcdelphi
    #37635659
for_kavGrozaUmnikam aka tarasdj,
а в стандарте 1.2 есть пункт Revision 1.2 Highlights, там есть изменения некоторые.


Какие изменения? Можете показать?
...
Рейтинг: 0 / 0
25 сообщений из 79, страница 3 из 4
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как работать с IOPCHDA_Server из проекта opcdelphi
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]