не... сама делфя работает. и проект (екзешник) на ХРюше работает без проблем. но в семерке не читает никаких переменных, хотя записывать- записывает.... думаю или dOPCServer,или Gateway глючит.....
не... сама делфя работает. и проект (екзешник) на ХРюше работает без проблем. но в семерке не читает никаких переменных, хотя записывать- записывает.... думаю или dOPCServer,или Gateway глючит.....
поставь совместимость - Xp сервис пак 3. все заработает!
ничего пока не помогает..... не происходит чтение ни по 232, ни по Ethernet![]()
Я на двух компах Win7 64 + DOPC Тыкал на иконку Delphi7 правой кнопкой мыши-свойства - совместимость.... Для EXEшника проэкта тоже.
можно немного подробнее по этому примеру?
1) V := CreateOleObject('OPC.Automation'); - что это за обьект, откуда он берется???
2) V.Connect('CoDeSys.OPC.02'); - откуда это имя, где его определять?
3) Этот пример требует работающего на ПК OPC-сервера или общается с контроллером вместо него?
4) какое отношение к обмену имеет CodeSys? Она так же должна быть установлена и запущена на этом ПК??
Простите за ламерские вопросы, они возникают из-за нехватки теории. Обещаю разобравшись выложить подробное описание с примером для остальных
1. Вы в коде создаете OLE объект, используя системную библиотеку Windows "OPCDAAuto". В свою очередь "OLE" или Object Linking and Embedding представляет собой способ обмена информацией между приложениями.
2. 'CoDeSys.OPC.02' - название OPC-сервера, устанавливаемого вместе с CoDeSys. "OPC" - это аббревиатура от OLE for Process Control, или OLE для Управления Процессами.
3. OPC-сервер нужен. В данном случае это - 'CoDeSys.OPC.02'.
4. CoDeSys в данном случае нужен, чтобы через него сконфигурировать и загрузить проект (даже с кодом ";") в ПЛК. Когда проект создан, то для того, чтобы перенести его на ПК клиента, CodeSys уже не нужен. Достаточно будет установить только OPC-сервер от него.
Вкратце так. Извините за сумбурность и запоздалость - загрузили выше крыши...
P.S. Немного поподробнее, пока время есть. OPC технология предусматривает обмен данными между двумя своими составными частями: ОРС-клиентом и ОРС-сервером для последующей передачи на исполнительный механизм. Т.е. для данного случая мы имеем следующую цепочку передачи данных: Скада (Delphi) <-> OPC-клиент(в данном случае созданный с помощью библиотеки Windows) <-> OPC-сервер (в данном случае CoDeSys OPC-сервер)<->Порт PC (COM1)<-> кабель (КС1 из комплекта ПЛК "ОВЕН")<-> Порт PLC (для ПЛК 110-60 Debug RS-232)<-> программа в ПЛК.
Поэтому:
1. V := CreateOleObject('OPC.Automation'); - так мы создаем ОРС-клиента.
2. V.Connect('CoDeSys.OPC.02'); - так мы соединяем его (ОРС-клиента) с ОРС-сервером, который у нас установлен (не обязательно CoDeSys, но как составная часть обмена данными он все равно нужен);
3. Этот пример требует работающего на ПК OPC-сервера или общается с контроллером вместо него? - Для ОРС-технологии ОРС-Сервер необходим (см. выше).
4. Какое отношение к обмену имеет CodeSys? - В CoDeSys при создании проекта вы конфигурируете свои переменные (данные), т.е. указываете те из них, которые будут участвовать в обмене со Скада-системой и предоставляете OPC-серверу право их передавать (принимать). Непосредственно в самом обмене данными из всего комплекса CoDeSys, устанавливаемого по-умолчанию на ваш ПК, работает только CoDeSys OPC-сервер (тот самый, который мы подключали -'CoDeSys.OPC.02'). Поэтому при переносе программы на ПК заказчика, можно при установке убрать все галочки кроме серверов. Тогда CoDeSys там не будет, а, благодаря установленному OPC-серверу сконфигурированная ДЛЯ НЕГО программа спокойно будет передавать УКАЗАННЫЕ ВАМИ В КОНФИГУРАТОРЕ переменные для СОЗДАННОГО (ПОДКЛЮЧЕННОГО) ВАМИ ОРС-клиента.
Примерно так, надеюсь ничего не перепутал. В двух словах вряд ли получится все описать, но если заниматься ОРС - то скоро такие проблемы будете как орешки щелкать. Удачи!
Небольшой пример тут http://www.opcfoundation.org/forum/v...6f12f2bec6e8b2
Там же на сайте и информация про ОРС-технологии.
Последний раз редактировалось AWA1971; 21.05.2010 в 08:24.
спасибо за подробное описание.
Меня больше интересует откуда Вы узнали, что имя сервера 'CoDeSys.OPC.02', что нужно создать группу и для этого есть команда V.OPCGroups.Add('Group1'), потом в нее нужно внести переменные командой v.OPCGroups.GetOPCGroup('Group1').OPCItems.AddItem ('PLC1:.out1', 1) и т.д., какие есть еще команды и где об этом почитать? В данной вами ссылке подобной информации я не нашел. Может есть где-то вразумительное описание команд общения с OPC-сервером?