las68 Posted September 6, 2013 Share Posted September 6, 2013 Добрый день! У нас есть два устройства работающих по RS-485 2-wire. По кабелю работают просто замечательно. Скорости 9600 и 57600, приемопередатчики MAX485 Есть два MOXA Nport N5150A, включенные в pair connection. Устройства пингуются, скорости выставлены правильно. Байты в серийном интерфейсе по обе стороны какие-то передаются, но устройства не работают. Включали их А-А В-В, и А-В, А-В и всяко разно, но обмена нет. Куда копать, и самое главное, чем посмотреть и убедиться что то, что у нас выходит с одного порта правильно приходит во второй. Link to comment
las68 Posted September 9, 2013 Author Share Posted September 9, 2013 Коллеги, выручайте, проект под угрозой срыва. MOXA заявлен как прозрачный удлинитель интерфейса. Получается, не такой он и прозрачный! Какие будут идеи? Link to comment
Timoshuk Posted September 9, 2013 Share Posted September 9, 2013 Здравствуйте! При соединении устройств по RS-485 лучше ориентироваться не по буквенным обозначениям A и B, а по "+" и "-", так как некоторые производители отклоняются от общепринятого обозначения. Чтобы проверить, правильную передачу данных, воспользуйтесь, пожалуйста, данным руководством по поиску неисправностей. Link to comment
las68 Posted September 9, 2013 Author Share Posted September 9, 2013 Включали и так и эдак. Какие-то байты ходят, но нормального обмена нет - устройства через moxa nport n5150a друг друга не видят. Стоит соединить кабелем - всё работает. Как можно посмотреть обмен на 485 портах? какие байты приходят и какие уходят? Link to comment
Timoshuk Posted September 9, 2013 Share Posted September 9, 2013 Судя по счетчикам принятых/отправленных байт на прикрепленном Вами изображении, обмен данными происходит успешно. Чтобы посмотреть обмен данными на 485 портах, необходимо настроить NPort'ы в режим UDP Mode. При этом нужно указать в списке адресатов IP-адрес и номер порта (например, 4001) парного NPort и IP-адрес с номером порта компьютера (например, 1-й NPort будет отправлять данные на 4002 порт ПК, а 2-й на 4003). Также нужно указать локальный порт прослушки (можно тот же, что и для отправки - 4001). Затем с помощью утилиты PComm Terminal Emulator нужно открыть 2 UDP-сокета с номерами портов 4002 и 4003. В каждый из них будут дублироваться данные, посылаемыe NPort'ами, при этом NPort продолжат работу в режиме парного соединения. Link to comment
las68 Posted September 11, 2013 Author Share Posted September 11, 2013 (edited) Фаервол на компьютере отключен. настройки сделаны по Вашим предложениям. в итоге получается, что явно есть разница в приемо-передаче. Где её ловить, если настройки на Nport идентичны? Кроме того, можно ли в порт-мониторе как-то идентифицировать информацию принимаемую и передаваемую? Edited September 11, 2013 by las68 Link to comment
las68 Posted September 13, 2013 Author Share Posted September 13, 2013 так всё-таки, как идентифицировать rx/tx дата передаваемые с Nport? Link to comment
las68 Posted September 16, 2013 Author Share Posted September 16, 2013 Еще такой вопрос, какова латентность вносимая Nport 5150A?. Мне удалось связаться с разработчиками оборудования, работающего по RS-485, у него при обмене оказывается есть два времени ожидания - 2 мс и 6 мс, если вторая сторона не укладывается в эти интервалы, то связь не устанавливается. Если Nport нельзя заставить работать с соблюдением временных интервалов, то ничего не выйдет. Подтвердите или развейте мои подозрения. Link to comment
las68 Posted September 17, 2013 Author Share Posted September 17, 2013 Коллеги, вы можете мне дать хоть какую-то информацию? У меня завален проект, фактически. Я понимаю, что здесь никто никому ничего не должен, но получается, что ваше оборудование не соответствует заявленным характеристикам - в роли "прозрачного" удлинителя RS-485 интерфейса оно не работает. Link to comment
Komantsev Posted September 18, 2013 Share Posted September 18, 2013 Добрый день, Извините за поздний ответ. Задержка, вносимая устройством NPort, составляет 2-3 мс. Т.е. в Вашем случае данная задержка будет умножаться на 4 (данные проходят через два устройства NPort в одну сторону и через два устройства в обратную сторону) и составит 10-15 мс. Нет ли никакой возможности поговорить с производителем подключаемого оборудования об уменьшении времени таймаута? И ещё пара вопросов: 1. Что за оборудование Вы подключаете к NPort? Может быть, у нас есть опыт работы с ним. 2. Есть ли у Вас вариант воспользоваться устроствами NPort в режиме виртуального COM-порта, а не парного соединения? В таком случае время задержки сократится вдвое. 3. По Вашим последним логами (которые Вы делали в протоколе UDP) - данные логи "набежали" за какой период времени? Это пара секунд или минуты? Link to comment
las68 Posted September 20, 2013 Author Share Posted September 20, 2013 Пока могу сказать, что moxa добавляет лишний 4-й байт к трёхбайтовой посылке (он каждый раз разный F0, FB иногда F1) и почему-то перевираются некоторые биты в третьем байте ответа. должно приходить A1 19 01 45, приходит A1 15 01 86. Мониторинг простого соединения кабелем эти биты не показывает. Скорость 9600 8,N,1. С изготовителем оборудования я связался, он пообещал подумать над ситуацией. Link to comment
las68 Posted September 23, 2013 Author Share Posted September 23, 2013 Добрый день еще раз. Вот что мне написал разработчик оборудования, Хотелось бы услышать ваши комментарии по организации работы nport 5150A через RS-485 при наличии нескольких приемников RS-485 на линии (множественное соединение). При работе чисто в локалке особых проблем не будет, но если удлинятся через интернет, то возникнут следующие проблемы: 1. Так как линия RS485 общая, то Nport будет транслировать через ethernet все что на ней творится - опросы и ответы остальных приемников на линии. Трафик будет большой, т.к. опрос идет десятки раз в секунду 2. Задержка при работе через интернет будет уже исчислятся до единиц секунд, зависит конечно от канала. Но дело в том, что при большой задержке задающему устройству (пульт) все равно придется ждать ответа, и в это время полностью будет вставать RS485 линия, потому что производить опрос других приемников будет нельзя. Для начала нужно бы выяснить у производителя Nport есть ли у него какая-нибудь логика при отправке принятых по ethernet пакетов в линию RS485. т.е. мониторит ли он активность линии, дожидается ли пока она освободится, или тупо сразу вываливает все что пришло? Если логика какая-то есть, можно будет попробовать реализовать такой алгоритм опроса приемников по ethernet при котором ответ от приемника будет ожидаться без остановки опроса других приемников на линии. т.е. отправили запрос по ethernet и начинаем опрашивать следующие приемники в обычном режиме, при этом ответ Nport сможет вставить в паузах между нашими опросами, и мы это зафиксируем. Link to comment
Komantsev Posted September 24, 2013 Share Posted September 24, 2013 Здравствуйте, moxa добавляет лишний 4-й байт к трёхбайтовой посылке (он каждый раз разный F0, FB иногда F1) и почему-то перевираются некоторые биты в третьем байте ответа.должно приходить A1 19 01 45, приходит A1 15 01 86. Попробуйе "подрегулировать" напряжение на линии RS-485. Для этого снимите крышку корпуса устройства NPort и закоротите перемычки JP3 и JP4, находящиеся рядом с разъемом последовательного порта. Это изменит номиналы резисторов подтяжки RS-485 к напряжению 5 В. Отразится ли это на обмене данными? По поводу ответа разработчика оборудования - с пунктом (2) полностью согласен, задержки при передаче через Интернет увеличиваются, и это зависит от конкретного канала. А вот пункт (1) некорректен. Данные с устройства NPort передаются по отдельному TCP-сокету, и вмешательство каких-то посторонних данных исключено. Я в таких случаях всегда привожу пример Web-браузера: Вы же зачастую открываете в браузере несколько страниц параллельно в разных вкладках, а также другие пользователи Интернет смотрят другие сайты. Но данные ведь никогда не перемешиваются, Вы же не получаете чужие данные. Так и при работе с NPort, ничего постороннего он получать не будет. Попробуйте реализовать мой первый совет. Есть ощущение, что должно заработать. И ещё при настройке режимов TCP Server / TCP Client (или UDP) поставьте в параметрах Force Transmit - 2 мс. Это должно предотвратить возможную фрагментацию пакетов при передаче из 485 в Ethernet Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now