|
|
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток всем!!! Подскажите пожалуйста как получить данные по OPC HDA с использованием IOPCHDA_Server из проекта opcdelphi ?? Файл OPCHDA.pas Я начал писать так: Код: plaintext 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. 26. 27. 28. 29. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2011, 08:01:00 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
Никто с OPC HDA не работал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2011, 07:55:56 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
renaton, это случаем не для iFix? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2011, 10:58:04 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
Набор документации по стандарту OPC http://pclib.in.ua/kompyuternye-video-uroki-i-knigi/programmirovanie/4840.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2011, 19:18:46 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
Люди помогите, кто - нибудь работал с HDA??? Тоже скачал этот паскаль файл (OPCHDA.pas) и теперь мучаюсь с ним. Как ним пользоваться??? Посмотреть бы хотть какойто пример. Буду рад любой консультации)))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2011, 16:42:59 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
не знаю, что это такое всё, но у них там на странице, на которую была ссылка, есть же какие то примеры ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2011, 17:04:34 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
Кроик Семён, Да я уже видел эти примеры. Там не рассматриваеться HDA ))) Задача построить программу которая будет считывать архивные данные через OPC HDA, а конкретно с приборов фирмы логика, OPC HDA - Logika.HDA.2 и значения запихнуть в TStringList. В инете полно примеров для DA, и даже компонеты есть бессплатные, а вот для HDA голяк полный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2011, 17:37:48 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
GrozaUmnikam aka tarasdj, HDA в твоей версии - History Data Access? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2011, 20:15:31 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
Feg16GrozaUmnikam aka tarasdj, HDA в твоей версии - History Data Access? ДА! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2011, 10:36:12 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
GrozaUmnikam aka tarasdjFeg16GrozaUmnikam aka tarasdj, HDA в твоей версии - History Data Access? ДА!Ищи по форуму, я выкладывал сырой интерфейс доступа ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2011, 13:38:57 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
Feg16, А ты можешь подсказать как ты делал? Спомощю каких библиотек??? Или может есть хароший компонент для этого интерфейса??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2011, 16:24:56 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2011, 16:32:29 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
Очень спасибо. Мне бы конечно очень помогли б хоть какие-нить исходнички, как работать с этими юнитами. Помогите что у кого есть))) Плз))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2011, 16:36:06 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
GrozaUmnikam aka tarasdjОчень спасибо. Мне бы конечно очень помогли б хоть какие-нить исходнички, как работать с этими юнитами. Помогите что у кого есть))) Плз)))Исходники есть только на Си, документация предоставляется с давно закрытого форума, не помню откуда я нарыл инфу. Это к чему.. с полпинка ты не сделаешь даже шалабушку. Могу посоветовать поковырять ODBC HDA источник данных, ставится при установке 4-го фикса. Я с ним пытался немного поработать - но он тормозил при выборке данных с интервалом в 100 мс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2011, 20:21:38 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
NeoalexUAНабор документации по стандарту OPC http://pclib.in.ua/kompyuternye-video-uroki-i-knigi/programmirovanie/4840.html Кстати чтобы ковырять OPC клиент/сервер нужно как минимум его изучить. И то, даже при правильной настройке он любит время от времени отваливаться. Для OPC HDA существует множество документации, осталось только почитать и вникнуть. Компонент / библиотек для быстрого программирования ты вряд-ли найдешь, слишком специфичная, бесполезная и неблагодарная работа :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2011, 20:24:30 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
Feg16, У меня получилось. Считываю данные через OPC HDA за любом промежуток времени и сохраняю их в БД SQLEXPRESS. Использовал библиотеки http://code.google.com/p/opcdelphi/ И за основу взял маленький примерчик http://www.delphimaster.ru/cgi-bin/forum.pl?id=1243844844&n=8 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2011, 17:18:33 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
GrozaUmnikam aka tarasdj, Уважаемый! я в программинге новичок, скажите каким образом отображаете список ОРС HDA серверов? через ОРС enum? или реестр шарите? какова работа вашей проги с удалёнными компами? если не корректен вопрос, сильно не пинайте! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2012, 23:22:35 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
for_kavGrozaUmnikam aka tarasdj, Уважаемый! я в программинге новичок, скажите каким образом отображаете список ОРС HDA серверов? через ОРС enum? или реестр шарите? какова работа вашей проги с удалёнными компами? если не корректен вопрос, сильно не пинайте! угумс , разобрались, сделали через OPCEnum, поиск всех HDA серверов, теперь в ComboBox выбираю сервер, и подключаюсь через IOPCHDA_server (CreateComObject(..................) as IOPCHDA_Server). Сервер например Matrikon поднимается, а дальше что-т не совсем понятно, через какие процедуры или функции выбрать весь список (пространство) Item???????? ( пока добиваюсь выборки всех Item ОРС сервера). Я так понимаю что необходимо тискать и дальше функции IOPCHDA_Server такие как GetItemHandle? Уважаемые форумчане подскажите пожалуйста! Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2012, 19:54:18 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
Название сервера к которому я хочу подключиться я беру с Matrikona , а также названия тегов. Тупо копирую их с матрикона. Но вот еще тут есть небольшой нюанс. если Вы хотите чтобы ваш клиент был оригинален и работал с разными видами тегов, то надо обязательно брать во внимание то как тег архивирован. Ведь интервалов вот сколько (500ms, 1s, 2s, 5s, 10s, 20s, 1 min, 2 min, 5 min, 10 min, 1h, 2h, 10h, 1day). С удаленными серверами тоже работает нормально, но надо сам сервер на удалённом компе загрузить. Сам не открывает. Может какието надо внести настройки, я не знаю, я делаю так. Кароче клиент отлажывал на ОРС - логики, как бы работает. И работает на сей день прекрасно. А и еще этот клиент не работает с WinCC, почему еще не знаю. Но очень хотел бы узнать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2012, 16:04:57 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
GrozaUmnikam aka tarasdj, простите за некорректный вопрос: а можете выложить или прислать наработки, что-то со временем у меня не понятки, хочу доработать прогу что бы она автоматом запросы делала к ОРС ну а дальше что угодно. пробовал делать прогу с применением библиотеки OPCHDAAuto.dll тоже самое застрял на времени, но там так же и не понятно работа с поиском хэнделов, примеров нет для делфи вообще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2012, 16:49:47 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
for_kav, Скажу сразу: использую библиотеку GrayBox OPCHDA (она полностью бесплатна). удалённые сервера и локальные опеделяются, содержимое вижу, получаю переменные, теперь не могу считать с них данные. вот кусок кода: ............. starttime := EncodeDate(2012, 1, 17) + EncodeTime(10, 00, 00, 00); endtime := EncodeDate(2012, 1, 17) + EncodeTime(11, 00, 00, 00); ItID := OPCHDABrows.GetItemID(ItemName); OPC_HDA_Items := HdaServ.OPCHDAItems; OPC_HDA_Item := OPC_HDA_Items.AddItem(ItID, ClientHandle); AllItems := OPC_HDA_Item.ReadRaw(starttime, endtime, 10, 1); получаем AllItems = $00f54ae0 , тип переменной =9 - varDispatch помогите пожалуйста разобраться что дальше то делать? как енту переменную то дальше использовать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2012, 17:09:21 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
начал делать ОРС HDA клиента на делфийских библиотечках. получилось считывать структуру ОРС, а вот чтение переменной по функции ReadRaw не получается, всё время массив = nil......... подскажите что не так. var ReadRawVal: IOPCHDA_SyncRead; Res: HRESULT; htStartTime: OPCHDA_TIME; htEndTime: OPCHDA_TIME; phClient: POPCHANDLEARRAY; arrClient: array [0 .. 0] of DWORD; phServer: POPCHANDLEARRAY; ppItemValues: POPCHDA_ITEMARRAY; ppErrors: PResultList; ppItemValuesItem: OPCHDA_ITEM; begin ReadRawVal := CreateRemoteComObject(Edit1.Text, CLSIDServer) as IOPCHDA_SyncRead; htStartTime.bString := False; htStartTime.ftTime := DateTimeToFileTime(Now - 1); htEndTime.bString := False; htEndTime.ftTime := DateTimeToFileTime(Now - 10); arrClient[0] := 1; phClient := @arrClient; Res := OPCServ.GetItemHandles(1, @pszItemID, phClient, phServer, ppErrors); // находим Хэндел сервера Res := ReadRawVal.ReadRaw(htStartTime, htEndTime, 10, False, 1, phServer, ppItemValues, ppErrors); end; ppItemValues = nil (((( т.е. ничего не приходит function DateTimeToFileTime(FileTime: TDateTime): TFileTime; var LocalFileTime, Ft: TFileTime; SystemTime: TSystemTime; begin Result.dwLowDateTime := 0; Result.dwHighDateTime := 0; DateTimeToSystemTime(FileTime, SystemTime); SystemTimeToFileTime(SystemTime, LocalFileTime); LocalFileTimeToFileTime(LocalFileTime, Ft); Result := Ft; end; на и с htStartTime не всё ясно = всегда в htStartTime.szTime появляются какие-то данные типа: Ё, '', '䶋诤졅䠁謨롅㭦࿃侅̙'#$FE02'ɿ蔏'#$1977#3'䗆ǣ嶉菼ﱍj' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2012, 14:43:22 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
for_kav, С каким сервером делаете отладку? Убедидесь что там точно есть данные!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2012, 17:59:22 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
GrozaUmnikam aka tarasdj, Сервер Теплокома, прибор ВКТ-5, данные есть проверял различными Explorer -ами, пробую с реальным каналом который имеет данные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2012, 07:26:46 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
for_kav, Я Вам даю рабочий кусочек кода которым можна считать тег: А Вас я хочу попросить кусочек кода которым Вы определяете список серверов на компьютере спомощю Enum. Если не жалко!!! Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Скормим тег чтобы получить СерверХандл Код: 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. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. Само считывание Код: 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. Ну а вот так завершить Сервер Код: pascal 1. 2. 3. Преображение: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Ну и чтобы вообще было щастье переменные. Тут должно быть для Вас есть лишние, я разбираться не буду. Это уж Вы сами уже!! Код: 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. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2012, 11:00:00 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
АААА и еще добавлю. Код: pascal 1. Этоа функция работает так. Переменная vt это количество считываемых елементов от выбраной даты. Тоесть если ваш тег заархивирован почасово, то чтобы получить данные за целые сутки вам надо считать 24 элемента. Все данные я запихиваю в стринглисты, тоесть сами данные и таймштамп. Потом их из стринглиста можна куда хочешь запихнуть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2012, 11:07:41 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
GrozaUmnikam 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. вот как то так) да и ещё приведу: Код: pascal 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2012, 14:00:27 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
GrozaUmnikam aka tarasdj, я извиняюсь а как vt находили? и что за функция такая - EncodeDateTime, сами написали? я на Делфи ХЕ пишу, такого нет есть просто EncodeDate и EncodeTime. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2012, 14:42:37 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
for_kav, Код: pascal 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2012, 15:04:13 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
GrozaUmnikam aka tarasdj, Res:=GetItemServerHandle(HDASyncRead ,'TagNAme',iServerH); - тут передаёте 3 переменные а в функции 4 (function GetItemServerHandle(ServerIf: IUnknown; sItem: string; iClient: DWORD; var iServer: DWORD): HRESULT;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2012, 15:04:32 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
Сорри: Код: pascal 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2012, 15:05:22 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
Сорри: Код: pascal 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2012, 15:07:20 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
GrozaUmnikam aka tarasdjСорри: Код: pascal 1. это понял я, но вот почему-то на чтении в ret ASM уходит? что-то не правильно ввожу походу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2012, 15:26:14 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
for_kav, Покажите что Вы прописываете в ReadRaw? Меня инетересует vt. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2012, 15:35:56 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
GrozaUmnikam aka tarasdjfor_kav, Покажите что Вы прописываете в ReadRaw? Меня инетересует vt. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2012, 15:40:54 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
for_kavGrozaUmnikam aka tarasdj, OPCServerList := TOPCServerList.Create(Edit1.Text, false, CATIDs); Тут Edit1.Text это имя компьютера? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2012, 15:41:58 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
for_kavGrozaUmnikam aka tarasdjfor_kav, Покажите что Вы прописываете в ReadRaw? Меня инетересует vt. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. Этот ОРС клиент я отлажывал с ОРС Сервером Логики, и у м еня все работало. А вот когда я попытался полуть данные с WinCC, то у меня тоже вылетало в АСМ на том самом месте. А вот почему так я не разобрался. Как называется ваш ОРС сервер??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2012, 15:47:48 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
Вы можете OPCEnum файл скинуть мне на почту. Пожалуйста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2012, 15:50:22 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
GrozaUmnikam aka tarasdjfor_kavGrozaUmnikam aka tarasdj, OPCServerList := TOPCServerList.Create(Edit1.Text, false, CATIDs); Тут Edit1.Text это имя компьютера? да тут IP адрес ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2012, 15:54:10 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
GrozaUmnikam aka tarasdjfor_kavпропущено... Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. Этот ОРС клиент я отлажывал с ОРС Сервером Логики, и у м еня все работало. А вот когда я попытался полуть данные с WinCC, то у меня тоже вылетало в АСМ на том самом месте. А вот почему так я не разобрался. Как называется ваш ОРС сервер??? InSAT.OPC.Teplocom_Hda ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2012, 15:55:33 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
GrozaUmnikam aka tarasdjВы можете OPCEnum файл скинуть мне на почту. Пожалуйста. http://opcdelphi.googlecode.com/files/delphiopcenum_2011-04-04.zip ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2012, 15:58:41 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
ОРС сервера есть разных категорий. Есть OPC HDA.1, OPC HDA.2. Так вот они чемто различаються. И все что я могуВам подзказать это то что у Вас ОРС HDA.1 , а этот код работает, почему то только с OPC HDA.2. Почему так я не знаю. Проблема в том что функция GetItemServerHandle не может получить хэндл итема. ТОчно такая же ситуация у меня с WinCC. И до сих пор я не выяснил почему. Сервер на котором я отлаживал прогу: Logika.HDA.2 - работает, а с PCS.OPCHDAServer.1 не работает. Разница в том что логиковский ОРС второй категории, а wincc - первой. Вот и б тоже очень хотел выяснить в чем проблема, но не могу, нет возможности!!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2012, 16:04:31 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
А OPCServerList есть Код: pascal 1. ???????????? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2012, 16:20:08 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
GrozaUmnikam aka tarasdjА OPCServerList есть Код: pascal 1. ???????????? OPCServerList: TOPCServerList; да кстате может проще по агенту общаться? или jabber? icq? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2012, 16:28:29 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
кстате могу сказать что: htStartTime.bString := false; htStartTime.ftTime := DateTimeToFileTime(EncodeDateTime(2012, 01, 25, 8, 0, 0, 0)); htEndTime.bString := false; htEndTime.ftTime := DateTimeToFileTime(EncodeDateTime(2012, 01, 25, 10, 0, 0, 0)); arrClient[0] := 1; phClient := @arrClient; Res := OPCServ.GetItemHandles(1, @pszItemID, phClient, pphServer, ppErrors); Res := ReadRawVal.ReadRaw(htStartTime, htEndTime, 50, false, 1, pphServer, ppItemValues, ppErrors); работает, т.к. наблюдаю в логе обмена данными ОРС сервера и прибора запросы идут и ответы есть но в какой-то момент времени выпадает в ret ASM........................................ печаль настала((( такое ощущение что-то с типами данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2012, 16:38:21 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
Я сейчас на работе. А там где я работаю нет ни айсикью не других торололо общалок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2012, 16:48:18 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
for_kavкстате могу сказать что: htStartTime.bString := false; htStartTime.ftTime := DateTimeToFileTime(EncodeDateTime(2012, 01, 25, 8, 0, 0, 0)); htEndTime.bString := false; htEndTime.ftTime := DateTimeToFileTime(EncodeDateTime(2012, 01, 25, 10, 0, 0, 0)); arrClient[0] := 1; phClient := @arrClient; Res := OPCServ.GetItemHandles(1, @pszItemID, phClient, pphServer, ppErrors); Res := ReadRawVal.ReadRaw(htStartTime, htEndTime, 50, false, 1, pphServer, ppItemValues, ppErrors); работает, т.к. наблюдаю в логе обмена данными ОРС сервера и прибора запросы идут и ответы есть но в какой-то момент времени выпадает в ret ASM........................................ печаль настала((( такое ощущение что-то с типами данных. к стате если запускать без дебаггера то данные считываются и выпадает ошибка: --------------------------- Debugger Exception Notification --------------------------- Project OPCHDAclient.exe raised exception class EVariantBadVarTypeError with message 'Invalid variant type'. --------------------------- Break Continue Help --------------------------- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2012, 16:55:22 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
GrozaUmnikam aka tarasdj, есть какие-нибудь мысли по этому поводу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2012, 16:56:54 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
for_kav, в трай я прописал Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. И ексцепт дает ошибку по спецификации ClassName Код: pascal 1. Спомощю гугла установил что мол программа пытается получить доступ до области памяти которая не существует. А что конкретно пока не знаю!!! Тоже думаю что можна было бы попробовать))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2012, 17:02:08 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
GrozaUmnikam aka tarasdjfor_kav, в трай я прописал Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. И ексцепт дает ошибку по спецификации ClassName Код: pascal 1. Спомощю гугла установил что мол программа пытается получить доступ до области памяти которая не существует. А что конкретно пока не знаю!!! Тоже думаю что можна было бы попробовать))) методом научного тыка определил, что необходимо каждый раз запускать с новой датой (видно этот массив сервер хранит), тогда прога запускается и работает, дальше можно выбрать любой параметр и считать с него любый данные за любое время. значит необходимо как то проверять переменные на тип. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2012, 18:01:41 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
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 основанны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2012, 20:46:20 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
да и по поводу переменной vt - я так понял что это максимальное количество запрашиваемых данных, можно поставить и 100000000000000 )) а вот в цикле по выборке данных - да нужно вычислять количество пришедших строк. так же выяснил что последней строкой приходит какой-то символ окончания, его нужно исключать из выборки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2012, 20:51:24 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
for_kav, Ну сейчас Ваш клиент работает нормально? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 10:34:20 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
ну вот после недели мучений ОРС HDA клиент готов, пока реализована возможность считывания 1-Й переменной, но начинаю делать считывание нескольких переменных, ну и в последующем выгрузку данных в БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 10:38:13 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
for_kav, Ну я делал так: Отображаю все теги в Тривейв. Сохраняю их в инифайле. При открытии программы загружаю с ини обратно в тривейв. Ну иканешно же автосчитывание. Мой клиент выглядет вот так: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 12:00:52 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
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. вот как то так) да и ещё приведу: Код: pascal 1. 2. 3. 4. А это точно весь код для определения серверов? А то чёт не работает))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 13:05:03 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
GrozaUmnikam aka tarasdj, OPCServerList - тут все сервера - переменная глобальная потом CLSIDServer := OPCServerList.CLSID[count]; count - выбранный сервер в listbox CLSIDServer: TGUID; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 13:23:32 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
for_kav, Приведите пожалуйста полный правильный код нажатия на кнопку. При котором будет определяться список ОРС серверов и помещаться в StringList. Если можно со всема переменными. Спасибо))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 17:28:19 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
Простите что вмешаюсь, а клиенты время от времени не отваливаются при длительной работе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 18:05:10 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
Feg16Простите что вмешаюсь, а клиенты время от времени не отваливаются при длительной работе? Что Вы имеете ввиду "отваливаются" ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 18:11:46 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
GrozaUmnikam aka tarasdjЧто Вы имеете ввиду "отваливаются" ?Раньше, когда передача была через OPC клиент, который постоянно считывал данные, раз в пару дней - а иногда пару раз в сутки тупо отваливался и не мог больше законнектиться без перезагрузки сервера ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 18:21:51 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
Feg16, Вначале каждого считывания сервер загружается, а конце считывания тот сервер надо програмно выгружать. Кароче в конце считывания надо делать вот так и тогда ничего не отвалится, бо и не будет чему отваливаться: Код: pascal 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 18:51:38 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
GrozaUmnikam aka tarasdjfor_kav, Приведите пожалуйста полный правильный код нажатия на кнопку. При котором будет определяться список ОРС серверов и помещаться в StringList. Если можно со всема переменными. Спасибо))) сейчас дома уже. завтре на работу моё тело приползёт, утром глаз откроется и начеркаю что и как. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 19:13:48 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
GrozaUmnikam aka tarasdjfor_kav, Приведите пожалуйста полный правильный код нажатия на кнопку. При котором будет определяться список ОРС серверов и помещаться в StringList. Если можно со всема переменными. Спасибо))) поиск ОРС серверов на машинах, так же требует правильно настроенного DCOM)) та ещё собака. за несколько лет работы столкнулся с тем, что находились такие сервера которые отказывались по сети передавать данные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 19:24:49 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
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 // // *********************************************************************// ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2012, 07:55:01 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
процедура поиска: 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; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2012, 08:08:22 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
for_kav, ListOPCServers - что за переменная? TStrings? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2012, 11:12:38 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
Все получилось!!!! Спасибо)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2012, 11:24:25 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
GrozaUmnikam aka tarasdjВсе получилось!!!! Спасибо)) ну вот и я рад) http://www.sql.ru/forum/images/happy.gif ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2012, 11:58:57 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
GrozaUmnikam aka tarasdj, чтение всех переменных сделал в цикле? просто из списка? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2012, 12:01:13 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
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 спецификации, то клиент написан по этим библиотекам работать не будет ?????? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2012, 16:54:00 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
GrozaUmnikam aka tarasdj, не могу сказать со 100% уверенностью, что работать не будет, но возможно нужно проверять данные на принадлежность к типам стандарта ОРС. а в стандарте 1.2 есть пункт Revision 1.2 Highlights, там есть изменения некоторые. а вообще можете написать что за ошибку выдаёт ОРС сервер WinCC? на какой функции затыкается в дебагере? как точно называется ОРС сервер? и если можно его GUID. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2012, 17:16:04 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
for_kav, Вылетает на эту строку. Код: pascal 1. ОРС : PCS7.OPCHDAServer.1 А GUID смотреть в реестре? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2012, 17:49:20 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
Походу нашел: GUID (PCS7.OPCHDAServer.1) - {CB05BEA1-AB41-4eb3-BCC7-615337880D27} ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2012, 18:02:41 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
for_kavGrozaUmnikam aka tarasdj, а в стандарте 1.2 есть пункт Revision 1.2 Highlights, там есть изменения некоторые. Какие изменения? Можете показать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2012, 18:16:47 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
GrozaUmnikam aka tarasdjfor_kav, Вылетает на эту строку. Код: pascal 1. ОРС : PCS7.OPCHDAServer.1 А GUID смотреть в реестре? из-за того что значение ppItemValues = nil ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2012, 18:25:20 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
GrozaUmnikam aka tarasdjfor_kavGrozaUmnikam aka tarasdj, а в стандарте 1.2 есть пункт Revision 1.2 Highlights, там есть изменения некоторые. Какие изменения? Можете показать? ну тут я думаю не стоит выкладывать, проще скачать документацию по версии ОРС HDA 1.2 хотя бы с сайта graybox, у той которая библиотечка есть бесплатная, с ней же и дёт и описалово. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2012, 17:05:45 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
В случае с OPC HDA необходимо чистить память по завершению, иначе будет утечка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2017, 12:38:33 |
|
||
|
Как работать с IOPCHDA_Server из проекта opcdelphi
|
|||
|---|---|---|---|
|
#18+
Еле нашел, пусть будет здесь на форуме. Утечка памяти при запросе OPC HDA в цикле. Если есть текстовые теги то память нужно чистить дополнительно функцией VariantClear Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2017, 12:41:52 |
|
||
|
|

start [/forum/topic.php?all=1&fid=58&tid=2041873]: |
0ms |
get settings: |
6ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
153ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
80ms |
get tp. blocked users: |
1ms |
| others: | 181ms |
| total: | 451ms |

| 0 / 0 |
