нужен ли ОРС-драйвер? |
Ответить |
Автор | |
Новичок Присоединился: 30 Июль 2008 Online Status: Offline Публикации: 3 |
Опубликовано: 30 Июль 2008 16:38 |
Господа! Подскажите пожалуйста новичку! Для того, чтобы подключить устройство к компьютеру через ОРС сервер нужен специальный ОРС-драйвер для данного устройства или нет?
Просто необходимо написать прогу для работы с преобразователем частоты Веспер (протокол Modbus rtu) |
|
Действительный член Присоединился: 15 Январь 2004 Категория: Russian Federation Online Status: Offline Публикации: 805 |
|
Нужен любой специальный OPC-драйвер для работы с Modbus. |
|
и от стальной его груди отскакивают стрелы.
|
|
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 02 Октябрь 2007 Категория: Russian Federation Online Status: Offline Публикации: 427 |
|
OPC сервер - это драйвер который работает с устройством и передает данные потом программам внутри компа по технологии OLE.
Если вы пишите прогу сами, то вполне можете написать ее безо всяких драйверов, а так чтобы она напрямую обменивалась с вашим устройством. OPC используют тогда, когда хотят чтобы вместе работатли программы от разных производителей разработанные в разное время . В скаде сама скада - средства отображения, архивирования , отчеты - написано одними людьми. А чтобы со всеми приборами все работало на все времена и их больше не тревожили, получение данных делается по технологии OPC. А вот уже под каждый прибор пишется OPC драйвер который с прибором работает и данные скаде передает.
Так что, если программа ваша и прибор ваш, или чужой, но вы знаете как с ним работать и его систему команд и не предполагается частая смена прибора, то можете не морочить себе голову, а писать обмен в своей программе сами. При этом вам придется только написать и отладить обмен и не надо разбираться с OLE. |
|
При экспериментах ни один чайник не пострадал
----------- Плохому системному интегратору всегда OPC сервер мешает. ______________ Пишу на C++ за еду |
|
Новичок Присоединился: 30 Июль 2008 Online Status: Offline Публикации: 3 |
|
Большое спасибо за советы!
Я решил сделать переходник на Атмеле между преобразователем и компьютером, микроконтроллер будет формировать и отслеживать 3.5 символа тишины до и после каждого пакета(стандарт Modbus), и передавать данные в ПК в "чистом виде". Такое решение пришло в результате долгих и безуспешных попыток сформировать "тишину" на выходе com-порта своими силами. Буду признателен, если кто-то подскажет как это можно сделать. |
|
Действительный член Присоединился: 15 Январь 2004 Категория: Russian Federation Online Status: Offline Публикации: 805 |
|
Алекс, мне кажется, что вы решаете не ту проблему. 3,5 символа тишины! Проблема-то в чем? Зачем это устройство? |
|
и от стальной его груди отскакивают стрелы.
|
|
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 02 Октябрь 2007 Категория: Russian Federation Online Status: Offline Публикации: 427 |
|
Дело не в тишине как я понимаю , а в том как в винде принять MODBUS RTU. Я правильно понимаю? При передаче с компа все символы идут подряд - между ними нет промежутка, это если отправлять API функцией WriteFile. При приеме компом от устройства нужно просто указать все тайм ауты аккуратно аккуратно и тогда прием можно сделать в одну строчку на API: bool rt_bool=ReadFile(port,rx_pre,(5+2*val_reg+2),&cur_rx_byte,NULL); вот у меня кусок из приемника. Прием ведется синхронно : послали запрос и тут же вот эта строчка в программе. Надо перед посылкой сделать вот так: PurgeComm(port,PURGE_TXCLEAR|PURGE_RXCLEAR); //Для 19200 вот так: ct.ReadTotalTimeoutMultiplier=12;ct.ReadIntervalTimeout=12;// ct.ReadTotalTimeoutConstant=300;//Time_out;
SetCommTimeouts(port,&ct); WriteFile(port,tx_pre,8,&tx_bytes,NULL); bool rt_bool=ReadFile(port,rx_pre,(5+2*val_reg+2),&cur_rx_byte,NULL);
|
|
При экспериментах ни один чайник не пострадал
----------- Плохому системному интегратору всегда OPC сервер мешает. ______________ Пишу на C++ за еду |
|
Действительный член Присоединился: 15 Январь 2004 Категория: Russian Federation Online Status: Offline Публикации: 805 |
|
Хе-хм. :) В модбасе всегда только один мастер. И много слейвов. мастер - только спрашивает, слейвы - только отвечают. Мастер спрашивает - посылает пакет конечной длины. Слейв - принимает пакет, при этом сам же эти 3,5 символа отрабатывает. Тут проблем нет. Обработав пакет, слейв посылает ответ мастеру. Один единственный пакет. Больше в сети ничего нет, поскольку мастер ждет ответа именно от этого слейва. Пакет пришел - все что есть упало к нам, а есть там 3,5 символа или нет - это уже не важно, потому что они есть ВСЕГДА.
|
|
и от стальной его груди отскакивают стрелы.
|
|
Действительный член Присоединился: 15 Январь 2004 Категория: Russian Federation Online Status: Offline Публикации: 805 |
|
Что-то вспомнилось... Давным-давно приходил как-то устраиваться к нам на работу один товарищ. Придумал я ему задание - послать в ком-порт запрос на чтение одного дискретного входа на устройстве модбас. и получить ответ. Понял? Понял. Вот возьми это, это и вот это - все необходимая информация - по ком-портам, по модбасу, по тому как порт программировать. Ушел. Через две недели пришел показать - что получилось - мама дорогая! Он на каждую ножку ком-порта пытался выставлять напряжения - там по 5 вольт что-ли и таким образом опросить устройство. |
|
и от стальной его груди отскакивают стрелы.
|
|
Новичок Присоединился: 30 Июль 2008 Online Status: Offline Публикации: 3 |
|
Vald, Timofey, огромное спасибо за помощь и поддержку.
Vald, как раз то что нужно! Буду пробовать! |
|
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 02 Октябрь 2007 Категория: Russian Federation Online Status: Offline Публикации: 427 |
|
Загляните на www.codenet.ru в ветки win 32 API и Borland Builder. В последние 3-4 месяца там несколько раз вопросы порта всплывали а в ветке win 32 api я подробно расписал что за что отвечает в commtimeout: |
|
При экспериментах ни один чайник не пострадал
----------- Плохому системному интегратору всегда OPC сервер мешает. ______________ Пишу на C++ за еду |
|
Ответить |
Переход на форум | Права доступа на форуме Вы не можете публиковать новые темы в этом форуме Вы не можете отвечать на сообщения в этом форуме Вы не можете удалять Ваши сообщения на этом форуме Вы не можете редактировать Ваши сообщения на этом форуме Вы не можете создавать голосования на этом форуме Вы не можете выражать своё мнение в голосованиях на этом форуме |