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

Опять RS-485 в Advanteh РСА 6154

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


Присоединился: 18 Ноябрь 2003
Online Status: Offline
Публикации: 9
Свойства публикации Свойства публикации   Ответить, цитируя автора - Alex_L Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Тема сообщения: Опять RS-485 в Advanteh РСА 6154
    Опубликовано: 24 Ноябрь 2003 14:25

Привет всем. Опять обращаюсь  с вопросом о RS-485 в РСА 6154. Написал на С++ прогу по работе с СОМ2, кторая посылает туда строку (для примера) не обращая внимания на сигналы RTS и т.п. Тоже самое и сталось, при установленных перемыках в положение RS-232, все работает как надо а, при установленных перемыках в положение RS-485, нифига не хочет . нашел в описании языка структуру _COMMPROP которая возвращает сведения о свойствах порта, так вот она выдает параметр ProvSubType соответствующий RS-232 для СОМ2 вне зависимости от положения перемычек RS-232/422/485. Может в BIOSе есть переключатель, или еще одна перемычка? Но я их не нашел. Подскажите что можно попробовать еще.  По поводу длины линий связи то в моем конкретном случае машина используется для проверки  и настройки приборов оснащенных RS-485 ( Это ответ на предыдущие вопросы). Заранее спасибо Алексей.

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

Присоединился: 14 Май 2003
Online Status: Offline
Публикации: 770
Свойства публикации Свойства публикации   Ответить, цитируя автора - Максим Ананских Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 24 Ноябрь 2003 20:30
Перед посылкой данных в порт надо выставить сигнал RTS и убрать его сразу по завершении передачи. Тем самым передатчик будет сперва включен, а затем выключен. Если на время передачи не отключать приемник, следует ожидать приема эхо (тех же символов, что и передавались).
Инженер-системотехник
+7 (916) 477 3925
Наверх
Alex_L Смотреть выпадающим
Новичок
Новичок


Присоединился: 18 Ноябрь 2003
Online Status: Offline
Публикации: 9
Свойства публикации Свойства публикации   Ответить, цитируя автора - Alex_L Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 25 Ноябрь 2003 12:38
Не врубился. При 232 все работает отлично , по осциллаку наблюдал, а при включении 485 на экране осциллографа прямая линия на уровне 0 вольт (GND). По поводу эха, ведь я ничего не читаю из порта , или это делает аппаратная часть? Но тогда при первом посыле данных в порт на выходе должно же хоть что то быть, хотябы сигнал "подрыгался" (я так считаю) , а то как было так все и осталось. ТИШИНА.
Наверх
KozlovKS Смотреть выпадающим
Prosoft.ru
Prosoft.ru


Присоединился: 21 Июнь 2003
Online Status: Offline
Публикации: 432
Свойства публикации Свойства публикации   Ответить, цитируя автора - KozlovKS Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 25 Ноябрь 2003 12:55

Проверьте положение перемычек JР8 и настройте на интерфейс RS-485.

Осциллографом надо смотреть сигнал между +DATA и -DATA, так как это сигнал дифференциальный.

Наверх
Alex_L Смотреть выпадающим
Новичок
Новичок


Присоединился: 18 Ноябрь 2003
Online Status: Offline
Публикации: 9
Свойства публикации Свойства публикации   Ответить, цитируя автора - Alex_L Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 25 Ноябрь 2003 18:25

О-О-О-О! Положение перемычек JP8 уже запарился менять. Сначала сам думал что не так их натыкал, вынул опять вставил - ничего. Пригласил коллег чтобы они проделали туже опперацию - результат тотже. Залез на сайт производителя , скачал все ДОКи просмотрел их и обнаружил что есть кое какие различия:

--В одной указаны положения перемычек JP8 : 5-6,7-8,10-12;

--В другой : 3-4,5-6,7-8,10-12;

Что является правдой не знаю так как результат одинаковый. По поводу наблюдения сигнала на выходе смотрел по разному:

--И между +DATA и -DATA,

-- И +DATA и -DATA относительно корпуса (GND),

--И впаивал резистор 120 Ом между +DATA и -DATA пытался увидеть на нем падение напряжения,

Пусто.  Кстати если у Вас 485 работает чирканите пожалуйста правильное положение перемычек и номера pin-ов на разъеме СОМ2 находящемся на планке (У меня на CN10 1- -DATA,3- +DATА,следовательно на CОМ2 1- -DATA,2- +DATА). Спасибо.

 

Наверх
M_i_c_h_a_e_l Смотреть выпадающим
Новичок
Новичок


Присоединился: 14 Март 2005
Категория: Russian Federation
Online Status: Offline
Публикации: 2
Свойства публикации Свойства публикации   Ответить, цитируя автора - M_i_c_h_a_e_l Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 14 Март 2005 19:59

Здравствуйте,

Можно узнать состояние дел по данному вопросу на сегодняшний день?

У меня похожая ситуация с панельным компьютером Advantech IPPC-9120 (материнская плата PCM-9571B). Экспериментально установил, что RTS управляет передатчиком. Вижу по осциллографу, что передача есть (когда RTS установлен). Но в программе на приемной стороне - тишина (использовалась тестовая прога от стороннего производителя). Уровни сигнала: 0В - лог. 0, +4В - лог. 1. Казалось-бы - никакого криминала... Для сравнения, в ADAM 4520: -2В - лог. 0, +2В - лог. 1. Экперимент ставил на 2х вышеуказанных компах, соединенных 3х - метровым кабелем.

Собственно, проблемы две:

- связь не работает даже с задействованием RTS;

- появились, наконец, драйвера (мне надо для Windows 2000), чтоб мне, как пользователю продуктов Advantech, не париться с RTS?

 

Best regards,
Michael
Наверх
KozlovKS Смотреть выпадающим
Prosoft.ru
Prosoft.ru


Присоединился: 21 Июнь 2003
Online Status: Offline
Публикации: 432
Свойства публикации Свойства публикации   Ответить, цитируя автора - KozlovKS Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 15 Март 2005 10:17

Собственно вся проблема в том, что передатчик RS-485 управляется сигналом RTS на всех платах Адвантека. Соответственно, ПО стороннего производителя должно это уметь делать само. И все... Вопрос можно закрывать. Можно попробовать задать в настройках Windows "Flow control" как "Xon/Xoff" или 'Hardware" для СОМ2.

Для своего ПО (GeniDAQ, AStudio) Адвантек имеет такую поддержку через 32-бит DLL библиотеки и драйверы.

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

Присоединился: 14 Май 2003
Online Status: Offline
Публикации: 770
Свойства публикации Свойства публикации   Ответить, цитируя автора - Максим Ананских Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 15 Март 2005 13:47

Указывать Hardware Flow Control не поможет. Если вы работаете с портом через Win32 API, то есть возможностьуправлять сигналом RTS. Но только в WinNT/2K/XP. Вот фрагмент кода, любезно предоставленный мне программистами из фирмы Fastwel, где заполняется структура параметров порта:

if(! GetCommState(hPort,&Params) )

{

   DWORD err=GetLastError();

   throw("Can not get DCB");

}

if(FirstTimeInit) // if first time

   memcpy(&oldParams,&Params, sizeof(Params));

Params.BaudRate = BaudRate;

Params.fBinary = TRUE;

Params.fParity = FALSE;

Params.fNull = FALSE;

Params.fAbortOnError=TRUE;  // !!! ClearCommError on any error!

Params.ByteSize = 8;

Params.StopBits=0;

Params.Parity = NOPARITY;

Params.fRtsControl = RTS_CONTROL_TOGGLE;

if( !SetCommState( hPort, &Params ) )

{

throw "can not set commstate";

};

// далее идет заполнение таймаутов

Установка параметра RTS_CONTROL_TOGGLE позволила решить похожую проблему с платами PCI-16xx. По крайней мере, у меня на стенде обмен по RS-485 выполнялся. 

Инженер-системотехник
+7 (916) 477 3925
Наверх
M_i_c_h_a_e_l Смотреть выпадающим
Новичок
Новичок


Присоединился: 14 Март 2005
Категория: Russian Federation
Online Status: Offline
Публикации: 2
Свойства публикации Свойства публикации   Ответить, цитируя автора - M_i_c_h_a_e_l Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 16 Март 2005 20:15

Спасибо, Максим!

Ваша информация помогла устранить программную часть проблемы.

Справка из MSDN:

fRtsControl

RTS (request-to-send) flow control. This member can be one of the following values.

Value

Meaning

RTS_CONTROL_DISABLE

Disables the RTS line when the device is opened and leaves it disabled.

RTS_CONTROL_ENABLE

Enables the RTS line when the device is opened and leaves it on.

RTS_CONTROL_HANDSHAKE

Enables RTS handshaking. The driver raises the RTS line when the "type-ahead" (input) buffer is less than one-half full and lowers the RTS line when the buffer is more than three-quarters full. If handshaking is enabled, it is an error for the application to adjust the line by using the EscapeCommFunction function.

RTS_CONTROL_TOGGLE

Windows NT/2000/XP: Specifies that the RTS line will be high if bytes are available for transmission. After all buffered bytes have been sent, the RTS line will be low.

 

Осталось решить аппаратную проблему - приемная сторона не принимает.

Best regards,
Michael
Наверх
 Ответить Ответить

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

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