Профиль должен быть заполнен на русском языке кириллицей. Заполнение профиля заведомо ложными или некорректными данными - причина возможного отказа в регистрации на форуме.

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

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

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

Проблемы с RS 485

Сообщение VladLVO » 03 авг 2012, 10:40

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

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

Аватара пользователя

Serex
авторитет
авторитет
Сообщения: 875
Зарегистрирован: 15 авг 2011, 20:36
Ф.И.О.: Пупков Сергей Викторович
Благодарил (а): 7 раз
Поблагодарили: 12 раз

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

Сообщение Serex » 03 авг 2012, 10:53

Понял вопрос только после третьего прочтения :)
что отправил, то и получил

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

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

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


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

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

Сообщение VladLVO » 03 авг 2012, 12:02

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

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


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

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

Сообщение VladLVO » 03 авг 2012, 12:12

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

В свою программу было добавлены свойства в структуру 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
почётный участник форума
почётный участник форума
Сообщения: 556
Зарегистрирован: 29 сен 2008, 16:05
Ф.И.О.: Алексей Угрюмов
Благодарил (а): 5 раз
Поблагодарили: 15 раз

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

Сообщение alex_ugrumov » 03 авг 2012, 12:24

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


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

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

Сообщение VladLVO » 03 авг 2012, 12:39

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


leon78
завсегдатай
завсегдатай
Сообщения: 565
Зарегистрирован: 25 июл 2008, 09:06
Ф.И.О.: U.L.A.
Благодарил (а): 1 раз
Поблагодарили: 4 раза
Контактная информация:

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

Сообщение leon78 » 03 авг 2012, 15:57

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


alex_ugrumov
почётный участник форума
почётный участник форума
Сообщения: 556
Зарегистрирован: 29 сен 2008, 16:05
Ф.И.О.: Алексей Угрюмов
Благодарил (а): 5 раз
Поблагодарили: 15 раз

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

Сообщение alex_ugrumov » 03 авг 2012, 18:05

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


http://www.prosoft.ru/products/brands/a ... 61942.html

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

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

Аватара пользователя

Никита
почётный участник форума
почётный участник форума
Сообщения: 2499
Зарегистрирован: 20 янв 2010, 22:23
Ф.И.О.: Никита
Откуда: Мурманск
Благодарил (а): 3 раза
Поблагодарили: 13 раз
Контактная информация:

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

Сообщение Никита » 03 авг 2012, 23:37

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


alex_ugrumov
почётный участник форума
почётный участник форума
Сообщения: 556
Зарегистрирован: 29 сен 2008, 16:05
Ф.И.О.: Алексей Угрюмов
Благодарил (а): 5 раз
Поблагодарили: 15 раз

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

Сообщение alex_ugrumov » 04 авг 2012, 09:01

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


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

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

Сообщение VladLVO » 07 авг 2012, 07:26

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

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


alex_ugrumov
почётный участник форума
почётный участник форума
Сообщения: 556
Зарегистрирован: 29 сен 2008, 16:05
Ф.И.О.: Алексей Угрюмов
Благодарил (а): 5 раз
Поблагодарили: 15 раз

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

Сообщение alex_ugrumov » 07 авг 2012, 09:41

И только сейчас до меня дошло, что 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, 10:01
Ф.И.О.: Лобов Владислав Олегович

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

Сообщение VladLVO » 07 авг 2012, 10:25

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

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

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


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

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

Сообщение VladLVO » 07 авг 2012, 13:39

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

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

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

Аватара пользователя

Serex
авторитет
авторитет
Сообщения: 875
Зарегистрирован: 15 авг 2011, 20:36
Ф.И.О.: Пупков Сергей Викторович
Благодарил (а): 7 раз
Поблагодарили: 12 раз

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

Сообщение Serex » 07 авг 2012, 13:41

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


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


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



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей