Опять RS-485 в Advanteh РСА 6154 |
Ответить |
Автор | ||||||||||
Новичок Присоединился: 18 Ноябрь 2003 Online Status: Offline Публикации: 9 |
Опубликовано: 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 |
||||||||||
Перед посылкой данных в порт надо выставить сигнал RTS и убрать его сразу по завершении передачи. Тем самым передатчик будет сперва включен, а затем выключен. Если на время передачи не отключать приемник, следует ожидать приема эхо (тех же символов, что и передавались).
|
||||||||||
Инженер-системотехник
+7 (916) 477 3925 |
||||||||||
Новичок Присоединился: 18 Ноябрь 2003 Online Status: Offline Публикации: 9 |
||||||||||
Не врубился. При 232 все работает отлично , по осциллаку наблюдал, а при включении 485 на экране осциллографа прямая линия на уровне 0 вольт (GND). По поводу эха, ведь я ничего не читаю из порта , или это делает аппаратная часть? Но тогда при первом посыле данных в порт на выходе должно же хоть что то быть, хотябы сигнал "подрыгался" (я так считаю) , а то как было так все и осталось. ТИШИНА.
|
||||||||||
Prosoft.ru Присоединился: 21 Июнь 2003 Online Status: Offline Публикации: 432 |
||||||||||
Проверьте положение перемычек JР8 и настройте на интерфейс RS-485. Осциллографом надо смотреть сигнал между +DATA и -DATA, так как это сигнал дифференциальный. |
||||||||||
Новичок Присоединился: 18 Ноябрь 2003 Online Status: Offline Публикации: 9 |
||||||||||
О-О-О-О! Положение перемычек 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А). Спасибо.
|
||||||||||
Новичок Присоединился: 14 Март 2005 Категория: Russian Federation Online Status: Offline Публикации: 2 |
||||||||||
Здравствуйте, Можно узнать состояние дел по данному вопросу на сегодняшний день? У меня похожая ситуация с панельным компьютером 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 |
||||||||||
Prosoft.ru Присоединился: 21 Июнь 2003 Online Status: Offline Публикации: 432 |
||||||||||
Собственно вся проблема в том, что передатчик RS-485 управляется сигналом RTS на всех платах Адвантека. Соответственно, ПО стороннего производителя должно это уметь делать само. И все... Вопрос можно закрывать. Можно попробовать задать в настройках Windows "Flow control" как "Xon/Xoff" или 'Hardware" для СОМ2. Для своего ПО (GeniDAQ, AStudio) Адвантек имеет такую поддержку через 32-бит DLL библиотеки и драйверы. |
||||||||||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 14 Май 2003 Online Status: Offline Публикации: 770 |
||||||||||
Указывать 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 |
||||||||||
Новичок Присоединился: 14 Март 2005 Категория: Russian Federation Online Status: Offline Публикации: 2 |
||||||||||
Спасибо, Максим! Ваша информация помогла устранить программную часть проблемы. Справка из MSDN: fRtsControl RTS (request-to-send) flow control. This member can be one of the following values.
|
||||||||||
Best regards,
Michael |
||||||||||
Ответить |
Переход на форум | Права доступа на форуме Вы не можете публиковать новые темы в этом форуме Вы не можете отвечать на сообщения в этом форуме Вы не можете удалять Ваши сообщения на этом форуме Вы не можете редактировать Ваши сообщения на этом форуме Вы не можете создавать голосования на этом форуме Вы не можете выражать своё мнение в голосованиях на этом форуме |