Современные технологии автоматизации» («СТА») —  журнал для квалифицированных специалистов по промышленной автоматизации Форум СТА — современные технологии автоматизации Домашняя страница
Домашняя страница форума CTA Домашняя страница форума CTA > II. АСУТП и SCADA > Промышленные сети и коммуникации
  Активные темы Активные темы
  FAQ FAQ  Искать в форуме   Зарегистрироваться Зарегистрироваться  Вход в систему Вход в систему

нужен ли ОРС-драйвер?

 Ответить Ответить
Автор
Сообщение
АлексПолянски Смотреть выпадающим
Новичок
Новичок
Аватар

Присоединился: 30 Июль 2008
Online Status: Offline
Публикации: 3
Свойства публикации Свойства публикации   Ответить, цитируя автора - АлексПолянски Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Тема сообщения: нужен ли ОРС-драйвер?
    Опубликовано: 30 Июль 2008 16:38
Господа! Подскажите пожалуйста новичку! Для того, чтобы подключить устройство к компьютеру через ОРС сервер нужен специальный ОРС-драйвер для данного устройства или нет?
Просто необходимо написать прогу для работы с преобразователем частоты Веспер (протокол Modbus rtu)
Наверх
Petrov Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 15 Январь 2004
Категория: Russian Federation
Online Status: Offline
Публикации: 805
Свойства публикации Свойства публикации   Ответить, цитируя автора - Petrov Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 30 Июль 2008 16:47

Нужен любой специальный OPC-драйвер для работы с Modbus.

и от стальной его груди отскакивают стрелы.
Наверх
Vald Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 02 Октябрь 2007
Категория: Russian Federation
Online Status: Offline
Публикации: 427
Свойства публикации Свойства публикации   Ответить, цитируя автора - Vald Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 30 Июль 2008 16:53

OPC  сервер - это драйвер который работает с устройством и передает данные потом программам внутри компа по технологии  OLE.

 

Если вы пишите прогу сами, то вполне можете написать ее безо всяких драйверов, а так чтобы она напрямую обменивалась с вашим устройством. 

 OPC  используют тогда, когда хотят чтобы вместе работатли программы от разных производителей разработанные в разное время .  В скаде сама скада - средства отображения, архивирования , отчеты - написано одними людьми.  А чтобы со всеми приборами все работало на все времена и их больше не тревожили, получение данных делается по технологии OPC. А вот уже под каждый прибор пишется OPC  драйвер который с прибором работает и данные скаде передает.

 

Так что, если программа ваша и прибор ваш, или чужой, но вы знаете как с ним работать и его систему команд и не предполагается частая смена прибора, то можете не морочить себе голову, а писать обмен в своей программе сами.

При этом вам придется только написать и отладить обмен и не надо разбираться с  OLE.

При экспериментах ни один чайник не пострадал

-----------
Плохому системному интегратору всегда OPC сервер мешает.
______________
Пишу на C++ за еду
Наверх
АлексПолянски Смотреть выпадающим
Новичок
Новичок
Аватар

Присоединился: 30 Июль 2008
Online Status: Offline
Публикации: 3
Свойства публикации Свойства публикации   Ответить, цитируя автора - АлексПолянски Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 31 Июль 2008 09:39
Большое спасибо за советы!
Я решил сделать переходник на Атмеле между преобразователем и компьютером, микроконтроллер будет формировать и отслеживать 3.5 символа тишины до и после каждого пакета(стандарт Modbus), и передавать данные в ПК в "чистом виде".
Такое решение пришло в результате долгих и безуспешных попыток сформировать "тишину" на выходе com-порта своими силами. Буду признателен, если кто-то подскажет как это можно сделать.
Наверх
Petrov Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 15 Январь 2004
Категория: Russian Federation
Online Status: Offline
Публикации: 805
Свойства публикации Свойства публикации   Ответить, цитируя автора - Petrov Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 31 Июль 2008 10:26

Алекс, мне кажется, что вы решаете не ту проблему. 3,5 символа тишины! Проблема-то в чем?  Зачем это устройство?

и от стальной его груди отскакивают стрелы.
Наверх
Vald Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 02 Октябрь 2007
Категория: Russian Federation
Online Status: Offline
Публикации: 427
Свойства публикации Свойства публикации   Ответить, цитируя автора - Vald Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 31 Июль 2008 11:07

Первоначально опубликовано АлексПолянски

Большое спасибо за советы!
Я решил сделать переходник на Атмеле между преобразователем и компьютером, микроконтроллер будет формировать и отслеживать 3.5 символа тишины до и после каждого пакета(стандарт Modbus), и передавать данные в ПК в "чистом виде".
Такое решение пришло в результате долгих и безуспешных попыток сформировать "тишину" на выходе com-порта своими силами. Буду признателен, если кто-то подскажет как это можно сделать.

Дело не в тишине как я понимаю , а в том как в винде принять  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;


ct.WriteTotalTimeoutConstant=0;
ct.WriteTotalTimeoutMultiplier=0;

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++ за еду
Наверх
Petrov Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 15 Январь 2004
Категория: Russian Federation
Online Status: Offline
Публикации: 805
Свойства публикации Свойства публикации   Ответить, цитируя автора - Petrov Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 31 Июль 2008 11:13

Хе-хм. :)

В модбасе всегда только один мастер. И много слейвов.

мастер - только спрашивает, слейвы - только отвечают.

Мастер спрашивает  - посылает пакет конечной длины. Слейв - принимает пакет, при этом сам же эти 3,5 символа отрабатывает. Тут проблем нет.

Обработав пакет, слейв посылает ответ мастеру. Один единственный пакет. Больше в сети ничего нет, поскольку мастер ждет ответа именно от этого слейва. Пакет пришел - все что есть упало к нам, а есть там 3,5 символа или нет - это уже не важно, потому что они есть ВСЕГДА.

 

и от стальной его груди отскакивают стрелы.
Наверх
Petrov Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 15 Январь 2004
Категория: Russian Federation
Online Status: Offline
Публикации: 805
Свойства публикации Свойства публикации   Ответить, цитируя автора - Petrov Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 31 Июль 2008 11:22

Что-то вспомнилось...

Давным-давно приходил как-то устраиваться к нам на работу один товарищ. Придумал я ему задание - послать в ком-порт запрос на чтение одного дискретного входа на устройстве модбас. и получить ответ.

Понял? Понял. Вот возьми это, это и вот это - все необходимая информация - по ком-портам, по модбасу, по тому как порт программировать. Ушел.

Через две недели пришел показать - что получилось - мама дорогая!  Он на каждую ножку ком-порта пытался выставлять напряжения - там по 5 вольт что-ли и таким образом опросить устройство.

и от стальной его груди отскакивают стрелы.
Наверх
АлексПолянски Смотреть выпадающим
Новичок
Новичок
Аватар

Присоединился: 30 Июль 2008
Online Status: Offline
Публикации: 3
Свойства публикации Свойства публикации   Ответить, цитируя автора - АлексПолянски Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 31 Июль 2008 15:36
Vald, Timofey, огромное спасибо за помощь и поддержку.
Vald, как раз то что нужно! Буду пробовать!
Наверх
Vald Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 02 Октябрь 2007
Категория: Russian Federation
Online Status: Offline
Публикации: 427
Свойства публикации Свойства публикации   Ответить, цитируя автора - Vald Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 31 Июль 2008 15:50

Загляните на  www.codenet.ru  в ветки  win 32 API и  Borland Builder.  В последние 3-4 месяца там несколько раз вопросы порта всплывали а в ветке  win 32 api  я подробно расписал что за что отвечает в  commtimeout:

http://forum.codenet.ru/showthread.php?t=45563

При экспериментах ни один чайник не пострадал

-----------
Плохому системному интегратору всегда OPC сервер мешает.
______________
Пишу на C++ за еду
Наверх
 Ответить Ответить

Переход на форум Права доступа на форуме Смотреть выпадающим

Bulletin Board Software by Web Wiz Forums® version 9.64
Powered by Web Wiz Forums Free Express Edition
Copyright ©2001-2009 Web Wiz