Serjio Posted March 16, 2010 Share Posted March 16, 2010 Для работы с устройством NPort 5630 используется ПК с ОС Ubuntu 8.10 Server и библиотека boost 1.38(для передачи по сети Ethernet). Все порты у Moxa настроены как rs485 скорость 57600, 8 бит данных 1 стоповый бит и без бита четности. Operation mode - UDP Mode. При force transmit = 0 ответ от устройства приходит где-то через 5мсек и сообщение(размер ответа не больше 7 байт) разбивается на несколько частей. При force transmit = от 1 до 10 ответ от устройства приходит где-то через 50мсек (стабильно) и сообщение приходит полностью. В чем могут проблемы либо в библиотеке boost либо в Moxa? Link to comment
Komantsev Posted March 16, 2010 Share Posted March 16, 2010 Для работы с устройством NPort 5630 используется ПК с ОС Ubuntu 8.10 Server и библиотека boost 1.38(для передачи по сети Ethernet). Все порты у Moxa настроены как rs485 скорость 57600, 8 бит данных 1 стоповый бит и без бита четности. Operation mode - UDP Mode. При force transmit = 0 ответ от устройства приходит где-то через 5мсек и сообщение(размер ответа не больше 7 байт) разбивается на несколько частей. При force transmit = от 1 до 10 ответ от устройства приходит где-то через 50мсек (стабильно) и сообщение приходит полностью. В чем могут проблемы либо в библиотеке boost либо в Moxa? Добрый день, ситуация вот какая: При Force Transmit = 0: - NPort считывает данные из COM-порта по нескольку символов (сколько именно - решает он сам) - упаковывает их в TCP (процесс упаковки занимает порядка 5~10 мсек) и передает в Ethernet в итоге данные отсылаются оперативно, короткими порциями. 5 мсек, которые Вы видите, - это задержка, вызванная упаковкой данных в TCP-пакет. Вот что происходит при установке Force Transmit > 0: - пока на COM-порт приходят данные, NPort их сохраняет в своем буфере - если во входном потоке данных возникла пауза, указанная в параметре Force Transmit, то NPort считает пакет завершенным и упаковывает его в TCP - далее упаковка пакета в TCP занимает опять же порядка 5~10 мсек. Если Вы, например, указали ForceTX = 8 мсек, то общая задержка будет складываться из: - дождаться приема сообщения целиком - подождать указанный Вами период времени (8 мсек) и убедиться, что пакет действительно закончен - упаковать данные в TCP (5 ~ 10 мсек) Т.е. резюме: 1. Видимо, Ваши входящие пакеты достаточно длинные, и их получение занимает много времени 2. Для уменьшения общей задержки параметр Force Transmit не следует указывать очень большим. Как правило, значение 2~3 мсек является достаточным. 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