1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

RS 485 почти разобрался

RS-485, ProfiBUS, 4-20 mA, Wi-Fi, GSM и так далее
Ответить

Автор темы
VladLVO
здесь недавно
здесь недавно
Сообщения: 7
Зарегистрирован: 03 авг 2012, 11:01
Имя: Лобов Владислав Олегович
Страна: Россия
город/регион: Тула

Проблемы с RS 485

Сообщение VladLVO »

Доброго времени суток.
Была написана программа передающая данные по сети RS 485. Писалась она на обычном компьютере, в который была вставлена плата PCI-1602. После написания была произведена отладка. Все работало нормально.
После этого программа была перенесена на промышленный компьютер, на который была установлена плата RIO58601/03. После настроек платы в BIOS было подключено тоже оборудование. В итоге поменялось только компьютер и плата, а все остальное осталось тоже (кабеля, принимающие устройства …). Проблема заключается в том, что данные, которые я отправляю на линию 485, я получаю на принимающих устройствах и на промышленном компьютере, с которого были отправлены эти данные (что отправил, то и получил, а также отправил другим). А также данные на эту плану с других устройств не доходят. В настройках BIOS покопался и ничего найти не смог.

Подскажите, пожалуйста, в чем проблема. На плате есть перемычка, но она включают только терминирующий резистор 120 Ом.
Аватара пользователя

Serex
эксперт
эксперт
Сообщения: 2091
Зарегистрирован: 15 авг 2011, 21:36
Имя: Пупков Сергей Викторович
Страна: Россия
город/регион: Москва
Благодарил (а): 135 раз
Поблагодарили: 174 раза

Re: Проблемы с RS 485

Сообщение Serex »

Понял вопрос только после третьего прочтения :)
что отправил, то и получил
Ну это не проблема, а фича полудуплексного двухпроводного интерфейса RS-485. Обычно приемник отключается, когда идет передача, но может быть на плате наоборот такая опция есть для контроля отправляемого пакета.
Может быть у вас плата настроена на 4-х проводку, а присоединена 2-х проводка. Нарисуйте схему, того что у вас есть.
На плате есть перемычка, но она включают только терминирующий резистор 120 Ом.
Компьютер скорее всего стоит в конце и поэтому надо включать эту перемычку. Опять же нарисуйте схему, чтобы не заниматься гаданием.

Автор темы
VladLVO
здесь недавно
здесь недавно
Сообщения: 7
Зарегистрирован: 03 авг 2012, 11:01
Имя: Лобов Владислав Олегович
Страна: Россия
город/регион: Тула

Re: Проблемы с RS 485

Сообщение VladLVO »

схема подключения от обычного компа (все работает). Adam - преобразователь из 485 в 232.
Вот картинка с подключением, но там все просто 2 data кабеля и все.
http://narod.ru/disk/58808052001.f0d464 ... 2.jpg.html

Вот еще одна интересная вещь. Из промышленного компьютера (на котором неправильно работает) я вытащил провод 485. Теперь он ни к чему не включен. Запускаю программу, и опять на вход приходят данные которые я отправил на отправку.

Автор темы
VladLVO
здесь недавно
здесь недавно
Сообщения: 7
Зарегистрирован: 03 авг 2012, 11:01
Имя: Лобов Владислав Олегович
Страна: Россия
город/регион: Тула

Re: Проблемы с RS 485

Сообщение VladLVO »

Также я попробовал включить на компе разные программы (сторонние, скачанные из инета) отправлял данные по порту и также получал их. К порту не было ничего подключено.

В свою программу было добавлены свойства в структуру DCB (без этих свойств ком порт не работал вообще)

m_DCB.fDtrControl = DTR_CONTROL_ENABLE;
m_DCB.fRtsControl = RTS_CONTROL_ENABLE;
m_DCB.XonLim = 2048;
m_DCB.XoffLim = 512;

Может еще какое-нибудь свойство нужно добавить.


Плата которую использую: Процессорная плата CompactPCI 6U http://fastwel.ru/products/356046/21665 ... 40094.html
У них есть несколько видов моя RIO58601/03

alex_ugrumov
почётный участник форума
почётный участник форума
Сообщения: 626
Зарегистрирован: 29 сен 2008, 17:05
Имя: Алексей Угрюмов
Страна: Россия
город/регион: СПб
Благодарил (а): 8 раз
Поблагодарили: 23 раза

Re: Проблемы с RS 485

Сообщение alex_ugrumov »

В Настройках платы в "Диспетчере устройств" посмотрите. Может там есть настройка 422 или 485. Или может утилита какая-то настоечная есть для плат. Скорее всего она у Вас в режиме 422 и плата не отключает приёмник при передаче и не отключает передатчик при приёме. С этими платами не работал, но если кабеля связи точно не переделывали, то смотреть нужно в этом направлении.
Alex.

Автор темы
VladLVO
здесь недавно
здесь недавно
Сообщения: 7
Зарегистрирован: 03 авг 2012, 11:01
Имя: Лобов Владислав Олегович
Страна: Россия
город/регион: Тула

Re: Проблемы с RS 485

Сообщение VladLVO »

В мануале точно написано что это 485 порт. Про 422, даже слова не было. В диспетчере устройств все выглядит, как для обычного rs-232 устройства.

leon78
эксперт
эксперт
Сообщения: 1031
Зарегистрирован: 25 июл 2008, 10:06
Имя: Леонид
Страна: РФ
Благодарил (а): 34 раза
Поблагодарили: 110 раз

Re: Проблемы с RS 485

Сообщение leon78 »

m_DCB.fDtrControl = DTR_CONTROL_DISABLE;
m_DCB.fRtsControl = RTS_CONTROL_DISABLE;
не пробовали?
С эхом связанных свойств нет?
Кстати, у Moxa 1150 (преобразователь USB-RS232/422/485) в диспетчере устройств, кроме нового COM-порта в "Порты (LPT и COM)", появляется новая папка, в которой настраивается режим.
Хард - это то, что можно швырнуть об стенку, а софт - это то, что можно лишь обматерить.

alex_ugrumov
почётный участник форума
почётный участник форума
Сообщения: 626
Зарегистрирован: 29 сен 2008, 17:05
Имя: Алексей Угрюмов
Страна: Россия
город/регион: СПб
Благодарил (а): 8 раз
Поблагодарили: 23 раза

Re: Проблемы с RS 485

Сообщение alex_ugrumov »

VladLVO писал(а):В мануале точно написано что это 485 порт. Про 422, даже слова не было. В диспетчере устройств все выглядит, как для обычного rs-232 устройства.
http://www.prosoft.ru/products/brands/a ... 61942.html

я ж не с потолка взял

Есть два варианта: либо отключением приёмников/передатчиков занимается программист принудительно, например, через RTS. Либо это делает само устройство. Топикстартер слышит, что передаётся в сеть, значит приёмник не отключается от линии при передачи. На той же странице у Прософта сказано "Автоматическое управление направлением передачи для RS-485". Значит переключением приёмо\передачи занимается не программа, при этом устройство и не пытается отключать приёмник. И это может быть если оно думает, что работает в 422 режиме (опять же не знаю Адвантек в курсе, что у них есть 422:) или только Прософту об это известно). Кроме материнки поменялась ещё и ОС, точнее конкретная инсталляция со всеми её настройками. В БИОСе точно искать нечего - остаётся настройки драйвера в Диспетчере устройств, как было правильно замечено сделано у МОХА. Или тулзень какая или ioctl, которую давно применили на тестовом компьютере, настроив плату, а на новом и забыли.
Alex.
Аватара пользователя

Никита
почётный участник форума
почётный участник форума
Сообщения: 3927
Зарегистрирован: 20 янв 2010, 22:23
Имя: Никита
Страна: РФ
город/регион: Мурманск
Благодарил (а): 20 раз
Поблагодарили: 220 раз

Re: Проблемы с RS 485

Сообщение Никита »

У адвантеков это проблема известная. Не знаю насчет плат, но и у MIC-2000 и у панельных с 485 портами с направлением всегда была проблема. И как ее решать - лично я не знаю. Да, честно говоря, особо и не старались в этом направлении. Выкрутились их же преобразователем ADAM-4520 и портами в режиме 232. Вроде чего-то обсуждалось по этой проблеме у них на сайте, но за давностью лет (не работал с адвантами лет восемь) не вспомню.
Опыт - это когда на смену вопросам: "Что? Где? Когда? Как? Почему?" приходит единственный вопрос: "Нахрена? "

alex_ugrumov
почётный участник форума
почётный участник форума
Сообщения: 626
Зарегистрирован: 29 сен 2008, 17:05
Имя: Алексей Угрюмов
Страна: Россия
город/регион: СПб
Благодарил (а): 8 раз
Поблагодарили: 23 раза

Re: Проблемы с RS 485

Сообщение alex_ugrumov »

по описанию http://www.prosoft.ru/cms/f/261941/PCIcomm+ed2.pdf.pdf есть на плате джамперы отвечающие за 485/422, а так же есть DIP переключатель автоматического переключения передачи. Проверьте их положение, может случайно сбросились при переносе платы (кстати по дефолту 422). Вам нужно доиться, чтобы при отключенном разъёме не было эха.
Alex.

Автор темы
VladLVO
здесь недавно
здесь недавно
Сообщения: 7
Зарегистрирован: 03 авг 2012, 11:01
Имя: Лобов Владислав Олегович
Страна: Россия
город/регион: Тула

RS 485 почти разобрался

Сообщение VladLVO »

Спасибо большое всем за ответы. Понял в чем была проблема, осталось ее решить :-).
Я связался с тех поддержкой, в которой мне сообщили что на моей плате RIO58601/03 для проверки работоспособности порта и линий соединений имеется эхо. Осталось только узнать как эту функцию отключить. Может быть кто-нибудь сталкивался с этим.

Еще раз всем огромное спасибо.

alex_ugrumov
почётный участник форума
почётный участник форума
Сообщения: 626
Зарегистрирован: 29 сен 2008, 17:05
Имя: Алексей Угрюмов
Страна: Россия
город/регион: СПб
Благодарил (а): 8 раз
Поблагодарили: 23 раза

Re: RS 485 почти разобрался

Сообщение alex_ugrumov »

И только сейчас до меня дошло, что PCI-1602 Вы на новой машине и не используете, а пользуетесь там портом, который на Фаствеловской материнке стоит..... Вот Вы говорили, что кабеля остались те же. Но распиновка разъёмов 485 на Фаствел и на Арвантек разная. Так что у Вас всё поменялось, со стороны мастера: и компьютер, и порт, и ОС, и кабель подходящий. Но в любом случае, как я уже говорил, Вам нужно избавиться от эха при не подключенных кабелях. Это проблема с направлением передачи.
Например в описании есть следующая фраза
Порты COM1 и COM2 имеют полудуплексный интерфейс RS485 со скоростью передачи
данных до 460,8 кбит/с. Режим переключения приема/передачи COM1 и COM2
(ручной/автоматический) задается с помощью джамперов J3 и J32* (см. таблицу ниже). Для
возможности выбора режима переключения следует в BIOS Setup в меню «Custom» выбрать
подменю «COM1, COM2 RS485 Driver Control», далее режим «Manual» или «Auto».
Вот понял кто-нибудь что тут написано? Auto/Manual задаётся джамперами, или через БИОС, или всё таки джамперами, но при определенных настройках в БИОС? Что из этого пробовали? Какие результаты?
Должен быть такой эффект.
Если автомат: кабель отключен, Вы шлёте с любого терминала в порт и эха нет. Вы подключаете любой источник трафика 485 и видите, как в терминал это приходит.
Если Мануал режим, то такой же должен быть эффект, но направление задаёте в ручную. Только я не знаю чем: это нужно у Фаствела спросить. Обычно RTS, но может и DTR.

Вообще нужно пинать Фаствел на предмет как это у них работает. Если совсем никак, так не мучайтесь: возьмите конвертер внешний 232/485 и используйте набортный 232.
Alex.

Автор темы
VladLVO
здесь недавно
здесь недавно
Сообщения: 7
Зарегистрирован: 03 авг 2012, 11:01
Имя: Лобов Владислав Олегович
Страна: Россия
город/регион: Тула

Re: RS 485 почти разобрался

Сообщение VladLVO »

alex_ugrumov спасибо Вам большое.
В настройках биоса все что можно перепробовал. Да там не так много вариантов. Я понял только одно что нужно отключить Serial Port А, что я успешно и сделал. Теперь осталось только комп вскрыть, но есть проблема, он очень хитро запрятан, и это хотелось-бы оставить на потом :-)

А в службу поддержки я уже написал. 1 раз ответили и сказали, что это эхо. Теперь спросил их как эхо отключить, теперь жду. Если нечего не ответят то полезу в комп. Но надеюсь не придется в него залезать.

Как вариант я уже рассмотрел возможность подключения приборчика от Telemecanique TSX C USB 485. Установил дрова, вставил в USB и все прекрасно заработало. Не гонял долго не знаю надежно все или нет. Но очень приятно что все заработало без проблем )).

Автор темы
VladLVO
здесь недавно
здесь недавно
Сообщения: 7
Зарегистрирован: 03 авг 2012, 11:01
Имя: Лобов Владислав Олегович
Страна: Россия
город/регион: Тула

Re: RS 485 почти разобрался

Сообщение VladLVO »

После переписки с представителем компании производителя платы я понял:

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

Вот переть буду думать как лучше ото сделать. Еще раз всем большое спасибо.
Последний раз редактировалось VladLVO 07 авг 2012, 14:41, всего редактировалось 1 раз.
Аватара пользователя

Serex
эксперт
эксперт
Сообщения: 2091
Зарегистрирован: 15 авг 2011, 21:36
Имя: Пупков Сергей Викторович
Страна: Россия
город/регион: Москва
Благодарил (а): 135 раз
Поблагодарили: 174 раза

Re: RS 485 почти разобрался

Сообщение Serex »

Не думаю, что эхо можно отключить. Можно отключить приемник на время, когда должно прийти эхо. Тогда речь будет о включении опции "игнорировать эхо"


P.S. Ну вот, пока писал, автор уже сам себе ответил :)
Ответить

Вернуться в «Интерфейсы, протоколы, связь»