Класс инкапсулирующий сложность OPC обмена |
Ответить |
Автор | |
Действительный член Присоединился: 01 Июнь 2006 Категория: Russian Federation Online Status: Offline Публикации: 464 |
Опубликовано: 23 Июль 2007 11:02 |
Экспериментировал со связкой DDE сервер CoDeSys и DDE клиентом Excel. В случае использования консоли только для чтения, получается не особо трудоемкое решение, прямо скажем. Область применения естественно ограничена, но определенный интерес представляет. Реализовывать DDE в собственной программе ИМХО бесперспективно, думаю лучше добивать OPC обмен Собственно и писать возможно не стоило об этом, но появилась неплохая, на мой взгляд идейка, хочу поделиться. Под CS написал класс, который осуществляет запуск DDE серверов CoDeSys и скрыто открывает файл Excel дожидается начала обмена и затем предоставляет теги в виде значения своих полей. Оповещение клиентов класса о необходимости перечитать поля реализовано в виде события класса подключения. (GetNewDataComplit) В конечном итоге мы имеем с программным интерфейсом класс поддерживающий DDE обмен и инкапсулирующий сложность его реализации. Собственно многие хотели бы иметь некий инструмент позволяющий, будучи включенным в проект программы, прозрачно использовать OPC обмен. Я не претендую на то что все подобного рода продукты видел ибо это дорого ;-). Могу сказать, что в Genesis32 есть нечто подобное, но требует создания объекта на каждый тег. Имхо это расточительно. В общем интересно мнение форума. 1. Теги в классе для доступа на чтение\запсиь должный быть представлены в виде коллекции. Освоить работу с коллекцией не сложно на мой взгляд. 2. Класс должен иметь методы для останова\запуска OPC обмена 3. Класс должен иметь только конструктор по умолчанию. 4. Класс должен содержать события оповещения о завершении операции записи, а также о завершении цикла синхронного чтения тегов для обновления клиентом членов коллекции. 5. Информации о подписке на теги должна лежать в отдельной базе конфигурируемой графической консолью. В результате, мы конфигурим теги, затем включаем класс (или сборку) в проект, создаем объект. На стадии инициализации объект нашего класса считывает базу, создает коллекцию тегов (подписываеться на них), затем поддерживает обмен и обеспечивая доступ к членам коллекции. |
|
Действительный член Присоединился: 08 Март 2006 Категория: Russian Federation Online Status: Offline Публикации: 440 |
|
Мое почтение. Я не совсем въехал. Вы сотворитли Класс, или предлагаете этим заняться ? Какова общая схема интеграции, взаимодействия этого Класса с приложениями ? С уважением, SAN |
|
Действительный член Присоединился: 01 Июнь 2006 Категория: Russian Federation Online Status: Offline Публикации: 464 |
|
Класс на пробу я сделал под DDE обмен, хочу заморочиться с OPC обменом. Есть рабочий пример, подписка чтение и запись в нем реализованы через массив тегов. Это дает возможность использовать коллекцию. Интеграция состоит в простом подключении сборки, в пространстве имен которой описан класс, экземпляр этого класса будет обеспечивать требуемую функциональность, я так это вижу (зима длинная у нас время типа есть) |
|
Действительный член Присоединился: 08 Март 2006 Категория: Russian Federation Online Status: Offline Публикации: 440 |
|
Взглянуть бы. С уважением, SAN |
|
Действительный член Присоединился: 01 Июнь 2006 Категория: Russian Federation Online Status: Offline Публикации: 464 |
|
Да собственно вот ... 7Z6Z8_OPC.rar RSDN предложил, думаю можно со временем забороть
|
|
Ответить |
Переход на форум | Права доступа на форуме Вы не можете публиковать новые темы в этом форуме Вы не можете отвечать на сообщения в этом форуме Вы не можете удалять Ваши сообщения на этом форуме Вы не можете редактировать Ваши сообщения на этом форуме Вы не можете создавать голосования на этом форуме Вы не можете выражать своё мнение в голосованиях на этом форуме |