- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
RS 485 почти разобрался
Модератор: Глоб.модераторы
-
- здесь недавно
- Сообщения: 7
- Зарегистрирован: 03 авг 2012, 11:01
- Имя: Лобов Владислав Олегович
- Страна: Россия
- город/регион: Тула
Проблемы с RS 485
Доброго времени суток.
Была написана программа передающая данные по сети RS 485. Писалась она на обычном компьютере, в который была вставлена плата PCI-1602. После написания была произведена отладка. Все работало нормально.
После этого программа была перенесена на промышленный компьютер, на который была установлена плата RIO58601/03. После настроек платы в BIOS было подключено тоже оборудование. В итоге поменялось только компьютер и плата, а все остальное осталось тоже (кабеля, принимающие устройства …). Проблема заключается в том, что данные, которые я отправляю на линию 485, я получаю на принимающих устройствах и на промышленном компьютере, с которого были отправлены эти данные (что отправил, то и получил, а также отправил другим). А также данные на эту плану с других устройств не доходят. В настройках BIOS покопался и ничего найти не смог.
Подскажите, пожалуйста, в чем проблема. На плате есть перемычка, но она включают только терминирующий резистор 120 Ом.
Была написана программа передающая данные по сети RS 485. Писалась она на обычном компьютере, в который была вставлена плата PCI-1602. После написания была произведена отладка. Все работало нормально.
После этого программа была перенесена на промышленный компьютер, на который была установлена плата RIO58601/03. После настроек платы в BIOS было подключено тоже оборудование. В итоге поменялось только компьютер и плата, а все остальное осталось тоже (кабеля, принимающие устройства …). Проблема заключается в том, что данные, которые я отправляю на линию 485, я получаю на принимающих устройствах и на промышленном компьютере, с которого были отправлены эти данные (что отправил, то и получил, а также отправил другим). А также данные на эту плану с других устройств не доходят. В настройках BIOS покопался и ничего найти не смог.
Подскажите, пожалуйста, в чем проблема. На плате есть перемычка, но она включают только терминирующий резистор 120 Ом.
-
- эксперт
- Сообщения: 2099
- Зарегистрирован: 15 авг 2011, 21:36
- Имя: Пупков Сергей Викторович
- Страна: Россия
- город/регион: Москва
- Благодарил (а): 138 раз
- Поблагодарили: 174 раза
Re: Проблемы с RS 485
Понял вопрос только после третьего прочтения :)
Может быть у вас плата настроена на 4-х проводку, а присоединена 2-х проводка. Нарисуйте схему, того что у вас есть.
Ну это не проблема, а фича полудуплексного двухпроводного интерфейса RS-485. Обычно приемник отключается, когда идет передача, но может быть на плате наоборот такая опция есть для контроля отправляемого пакета.что отправил, то и получил
Может быть у вас плата настроена на 4-х проводку, а присоединена 2-х проводка. Нарисуйте схему, того что у вас есть.
Компьютер скорее всего стоит в конце и поэтому надо включать эту перемычку. Опять же нарисуйте схему, чтобы не заниматься гаданием.На плате есть перемычка, но она включают только терминирующий резистор 120 Ом.
-
- здесь недавно
- Сообщения: 7
- Зарегистрирован: 03 авг 2012, 11:01
- Имя: Лобов Владислав Олегович
- Страна: Россия
- город/регион: Тула
Re: Проблемы с RS 485
схема подключения от обычного компа (все работает). Adam - преобразователь из 485 в 232.
Вот картинка с подключением, но там все просто 2 data кабеля и все.
http://narod.ru/disk/58808052001.f0d464 ... 2.jpg.html
Вот еще одна интересная вещь. Из промышленного компьютера (на котором неправильно работает) я вытащил провод 485. Теперь он ни к чему не включен. Запускаю программу, и опять на вход приходят данные которые я отправил на отправку.
Вот картинка с подключением, но там все просто 2 data кабеля и все.
http://narod.ru/disk/58808052001.f0d464 ... 2.jpg.html
Вот еще одна интересная вещь. Из промышленного компьютера (на котором неправильно работает) я вытащил провод 485. Теперь он ни к чему не включен. Запускаю программу, и опять на вход приходят данные которые я отправил на отправку.
-
- здесь недавно
- Сообщения: 7
- Зарегистрирован: 03 авг 2012, 11:01
- Имя: Лобов Владислав Олегович
- Страна: Россия
- город/регион: Тула
Re: Проблемы с RS 485
Также я попробовал включить на компе разные программы (сторонние, скачанные из инета) отправлял данные по порту и также получал их. К порту не было ничего подключено.
В свою программу было добавлены свойства в структуру 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
В свою программу было добавлены свойства в структуру 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
-
- почётный участник форума
- Сообщения: 635
- Зарегистрирован: 29 сен 2008, 17:05
- Имя: Алексей Угрюмов
- Страна: Россия
- город/регион: СПб
- Благодарил (а): 13 раз
- Поблагодарили: 25 раз
Re: Проблемы с RS 485
В Настройках платы в "Диспетчере устройств" посмотрите. Может там есть настройка 422 или 485. Или может утилита какая-то настоечная есть для плат. Скорее всего она у Вас в режиме 422 и плата не отключает приёмник при передаче и не отключает передатчик при приёме. С этими платами не работал, но если кабеля связи точно не переделывали, то смотреть нужно в этом направлении.
Alex.
-
- здесь недавно
- Сообщения: 7
- Зарегистрирован: 03 авг 2012, 11:01
- Имя: Лобов Владислав Олегович
- Страна: Россия
- город/регион: Тула
Re: Проблемы с RS 485
В мануале точно написано что это 485 порт. Про 422, даже слова не было. В диспетчере устройств все выглядит, как для обычного rs-232 устройства.
-
- эксперт
- Сообщения: 1146
- Зарегистрирован: 25 июл 2008, 10:06
- Имя: Леонид
- Страна: РФ
- Благодарил (а): 49 раз
- Поблагодарили: 134 раза
Re: Проблемы с RS 485
m_DCB.fDtrControl = DTR_CONTROL_DISABLE;
m_DCB.fRtsControl = RTS_CONTROL_DISABLE;
не пробовали?
С эхом связанных свойств нет?
Кстати, у Moxa 1150 (преобразователь USB-RS232/422/485) в диспетчере устройств, кроме нового COM-порта в "Порты (LPT и COM)", появляется новая папка, в которой настраивается режим.
m_DCB.fRtsControl = RTS_CONTROL_DISABLE;
не пробовали?
С эхом связанных свойств нет?
Кстати, у Moxa 1150 (преобразователь USB-RS232/422/485) в диспетчере устройств, кроме нового COM-порта в "Порты (LPT и COM)", появляется новая папка, в которой настраивается режим.
Хард - это то, что можно швырнуть об стенку, а софт - это то, что можно лишь обматерить.
-
- почётный участник форума
- Сообщения: 635
- Зарегистрирован: 29 сен 2008, 17:05
- Имя: Алексей Угрюмов
- Страна: Россия
- город/регион: СПб
- Благодарил (а): 13 раз
- Поблагодарили: 25 раз
Re: Проблемы с RS 485
http://www.prosoft.ru/products/brands/a ... 61942.htmlVladLVO писал(а):В мануале точно написано что это 485 порт. Про 422, даже слова не было. В диспетчере устройств все выглядит, как для обычного rs-232 устройства.
я ж не с потолка взял
Есть два варианта: либо отключением приёмников/передатчиков занимается программист принудительно, например, через RTS. Либо это делает само устройство. Топикстартер слышит, что передаётся в сеть, значит приёмник не отключается от линии при передачи. На той же странице у Прософта сказано "Автоматическое управление направлением передачи для RS-485". Значит переключением приёмо\передачи занимается не программа, при этом устройство и не пытается отключать приёмник. И это может быть если оно думает, что работает в 422 режиме (опять же не знаю Адвантек в курсе, что у них есть 422:) или только Прософту об это известно). Кроме материнки поменялась ещё и ОС, точнее конкретная инсталляция со всеми её настройками. В БИОСе точно искать нечего - остаётся настройки драйвера в Диспетчере устройств, как было правильно замечено сделано у МОХА. Или тулзень какая или ioctl, которую давно применили на тестовом компьютере, настроив плату, а на новом и забыли.
Alex.
-
- почётный участник форума
- Сообщения: 3971
- Зарегистрирован: 20 янв 2010, 22:23
- Имя: Никита
- Страна: РФ
- город/регион: Мурманск
- Благодарил (а): 21 раз
- Поблагодарили: 229 раз
Re: Проблемы с RS 485
У адвантеков это проблема известная. Не знаю насчет плат, но и у MIC-2000 и у панельных с 485 портами с направлением всегда была проблема. И как ее решать - лично я не знаю. Да, честно говоря, особо и не старались в этом направлении. Выкрутились их же преобразователем ADAM-4520 и портами в режиме 232. Вроде чего-то обсуждалось по этой проблеме у них на сайте, но за давностью лет (не работал с адвантами лет восемь) не вспомню.
Опыт - это когда на смену вопросам: "Что? Где? Когда? Как? Почему?" приходит единственный вопрос: "Нахрена? "
-
- почётный участник форума
- Сообщения: 635
- Зарегистрирован: 29 сен 2008, 17:05
- Имя: Алексей Угрюмов
- Страна: Россия
- город/регион: СПб
- Благодарил (а): 13 раз
- Поблагодарили: 25 раз
Re: Проблемы с RS 485
по описанию http://www.prosoft.ru/cms/f/261941/PCIcomm+ed2.pdf.pdf есть на плате джамперы отвечающие за 485/422, а так же есть DIP переключатель автоматического переключения передачи. Проверьте их положение, может случайно сбросились при переносе платы (кстати по дефолту 422). Вам нужно доиться, чтобы при отключенном разъёме не было эха.
Alex.
-
- здесь недавно
- Сообщения: 7
- Зарегистрирован: 03 авг 2012, 11:01
- Имя: Лобов Владислав Олегович
- Страна: Россия
- город/регион: Тула
RS 485 почти разобрался
Спасибо большое всем за ответы. Понял в чем была проблема, осталось ее решить :-).
Я связался с тех поддержкой, в которой мне сообщили что на моей плате RIO58601/03 для проверки работоспособности порта и линий соединений имеется эхо. Осталось только узнать как эту функцию отключить. Может быть кто-нибудь сталкивался с этим.
Еще раз всем огромное спасибо.
Я связался с тех поддержкой, в которой мне сообщили что на моей плате RIO58601/03 для проверки работоспособности порта и линий соединений имеется эхо. Осталось только узнать как эту функцию отключить. Может быть кто-нибудь сталкивался с этим.
Еще раз всем огромное спасибо.
-
- почётный участник форума
- Сообщения: 635
- Зарегистрирован: 29 сен 2008, 17:05
- Имя: Алексей Угрюмов
- Страна: Россия
- город/регион: СПб
- Благодарил (а): 13 раз
- Поблагодарили: 25 раз
Re: RS 485 почти разобрался
И только сейчас до меня дошло, что PCI-1602 Вы на новой машине и не используете, а пользуетесь там портом, который на Фаствеловской материнке стоит..... Вот Вы говорили, что кабеля остались те же. Но распиновка разъёмов 485 на Фаствел и на Арвантек разная. Так что у Вас всё поменялось, со стороны мастера: и компьютер, и порт, и ОС, и кабель подходящий. Но в любом случае, как я уже говорил, Вам нужно избавиться от эха при не подключенных кабелях. Это проблема с направлением передачи.
Например в описании есть следующая фраза
Должен быть такой эффект.
Если автомат: кабель отключен, Вы шлёте с любого терминала в порт и эха нет. Вы подключаете любой источник трафика 485 и видите, как в терминал это приходит.
Если Мануал режим, то такой же должен быть эффект, но направление задаёте в ручную. Только я не знаю чем: это нужно у Фаствела спросить. Обычно RTS, но может и DTR.
Вообще нужно пинать Фаствел на предмет как это у них работает. Если совсем никак, так не мучайтесь: возьмите конвертер внешний 232/485 и используйте набортный 232.
Например в описании есть следующая фраза
Вот понял кто-нибудь что тут написано? Auto/Manual задаётся джамперами, или через БИОС, или всё таки джамперами, но при определенных настройках в БИОС? Что из этого пробовали? Какие результаты?Порты COM1 и COM2 имеют полудуплексный интерфейс RS485 со скоростью передачи
данных до 460,8 кбит/с. Режим переключения приема/передачи COM1 и COM2
(ручной/автоматический) задается с помощью джамперов J3 и J32* (см. таблицу ниже). Для
возможности выбора режима переключения следует в BIOS Setup в меню «Custom» выбрать
подменю «COM1, COM2 RS485 Driver Control», далее режим «Manual» или «Auto».
Должен быть такой эффект.
Если автомат: кабель отключен, Вы шлёте с любого терминала в порт и эха нет. Вы подключаете любой источник трафика 485 и видите, как в терминал это приходит.
Если Мануал режим, то такой же должен быть эффект, но направление задаёте в ручную. Только я не знаю чем: это нужно у Фаствела спросить. Обычно RTS, но может и DTR.
Вообще нужно пинать Фаствел на предмет как это у них работает. Если совсем никак, так не мучайтесь: возьмите конвертер внешний 232/485 и используйте набортный 232.
Alex.
-
- здесь недавно
- Сообщения: 7
- Зарегистрирован: 03 авг 2012, 11:01
- Имя: Лобов Владислав Олегович
- Страна: Россия
- город/регион: Тула
Re: RS 485 почти разобрался
alex_ugrumov спасибо Вам большое.
В настройках биоса все что можно перепробовал. Да там не так много вариантов. Я понял только одно что нужно отключить Serial Port А, что я успешно и сделал. Теперь осталось только комп вскрыть, но есть проблема, он очень хитро запрятан, и это хотелось-бы оставить на потом :-)
А в службу поддержки я уже написал. 1 раз ответили и сказали, что это эхо. Теперь спросил их как эхо отключить, теперь жду. Если нечего не ответят то полезу в комп. Но надеюсь не придется в него залезать.
Как вариант я уже рассмотрел возможность подключения приборчика от Telemecanique TSX C USB 485. Установил дрова, вставил в USB и все прекрасно заработало. Не гонял долго не знаю надежно все или нет. Но очень приятно что все заработало без проблем )).
В настройках биоса все что можно перепробовал. Да там не так много вариантов. Я понял только одно что нужно отключить Serial Port А, что я успешно и сделал. Теперь осталось только комп вскрыть, но есть проблема, он очень хитро запрятан, и это хотелось-бы оставить на потом :-)
А в службу поддержки я уже написал. 1 раз ответили и сказали, что это эхо. Теперь спросил их как эхо отключить, теперь жду. Если нечего не ответят то полезу в комп. Но надеюсь не придется в него залезать.
Как вариант я уже рассмотрел возможность подключения приборчика от Telemecanique TSX C USB 485. Установил дрова, вставил в USB и все прекрасно заработало. Не гонял долго не знаю надежно все или нет. Но очень приятно что все заработало без проблем )).
-
- здесь недавно
- Сообщения: 7
- Зарегистрирован: 03 авг 2012, 11:01
- Имя: Лобов Владислав Олегович
- Страна: Россия
- город/регион: Тула
Re: RS 485 почти разобрался
После переписки с представителем компании производителя платы я понял:
представитель - На данном модуле от эхо избавляются программно. Аппаратное отключение эхо не предусмотрено.
я - как программно это сделать?
представитель - Эхо на шине не мешает передаче, так как передатчик на шине в определенный момент времени только один. А в программе Вам необходимо просто игнорировать эхо - не считывать приемник порта во время передачи или делать временную задержку в зависимости от Вашей программы. Это уже Вам виднее.
Вот переть буду думать как лучше ото сделать. Еще раз всем большое спасибо.
представитель - На данном модуле от эхо избавляются программно. Аппаратное отключение эхо не предусмотрено.
я - как программно это сделать?
представитель - Эхо на шине не мешает передаче, так как передатчик на шине в определенный момент времени только один. А в программе Вам необходимо просто игнорировать эхо - не считывать приемник порта во время передачи или делать временную задержку в зависимости от Вашей программы. Это уже Вам виднее.
Вот переть буду думать как лучше ото сделать. Еще раз всем большое спасибо.
Последний раз редактировалось VladLVO 07 авг 2012, 14:41, всего редактировалось 1 раз.
-
- эксперт
- Сообщения: 2099
- Зарегистрирован: 15 авг 2011, 21:36
- Имя: Пупков Сергей Викторович
- Страна: Россия
- город/регион: Москва
- Благодарил (а): 138 раз
- Поблагодарили: 174 раза
Re: RS 485 почти разобрался
Не думаю, что эхо можно отключить. Можно отключить приемник на время, когда должно прийти эхо. Тогда речь будет о включении опции "игнорировать эхо"
P.S. Ну вот, пока писал, автор уже сам себе ответил :)
P.S. Ну вот, пока писал, автор уже сам себе ответил :)