Jump to content
Форум по продукции MOXA

Проблема с Nport 5430i UDP


Guest Анатолий

Recommended Posts

Guest Анатолий

Здравствуйте! Помогите разобраться.

Проблема такая.

Схема подключения следующая:

 

1.PC XP,Proga1 - RS232(COM1,9600 ) - MOXA TCC-80i,RS422 - RS422,Port1,MOXA 5430i,Ethernet IP1 - switch1.

RS232(COM2,19200) - MOXA TCC-80i,RS422 - RS422,Port2,MOXA 5430i,Ethernet IP1 - switch1.

 

2.Device WinCE,Proga2 - Ethernet IP2:NetPort1,NetPort2 - switch1.

 

Т.е. Proga1 через 2 СОМ порта соединяется с Proga2 через Ethernet IP2,NetPort1,NetPort2 - 2 канала связи.

Обмен между MOXA 5430i и Proga2 - в UDP mode.

 

Значит, как это работает.

1.Proga1 по 1-му каналу связи(СОМ1) каждые 500мс посылает пакет размером 211байт. MOXA 5430i,получив пакет, разбивает его на три датаграммы(104+104+3) и отправляет их последовательно Proga2. Proga2 получив датаграммы, отправляет квитанцию.

2.Proga2 по 2-му каналу связи каждые 100мс шлет пакеты размером 28байт в Proga1(СОМ1). Proga1 отвечает, но не на каждый пакет.

 

Сначала все это работает нормально. Потом периодически(никакой закономерности нет: через 2,5,10,... минут) начинают проскакивать искажения на нулевом байте 2-й или 3-й датаграммы в 1-ом канале связи. Только 1 байт. Причем, если прервать 2 канал связи, все работает нормально.

 

Спасибо.

Link to comment
Guest Alekseev

Добрый день! Попробуйте поэкспериментировать со значениями параметров Force Transmit ( в данном режиме пакет будет упаковываться после возникновения паузы между полученными данными) и Packet Length (пакеты фиксированной длины). Функции можно комбинировать и упаковка пакета будет наступать по тому что наступит раньше, пауза или пакеты фиксированной длины.

Link to comment
Guest Анатолий

Спасибо, Александр Алексеев!

 

Извиняюсь за задержку с ответом - пробую варианты.Пока ничего не помогает.

 

1.Packet length = 211 - в этом случае, сначала все нормально(8мин),затем искажается последний байт пакета и все следующие пакеты так и идут с искаженным последним байтом.

 

2.Изменения Force Tx приводят к тому, что датаграмм становится 2 и рано или поздно появляются те же ошибки.

Link to comment
Guest Alekseev

Попробуйте переключить нагрузочные резисторы порта 485 при помощи DIP переключателей на нижней стороне Nport. Переключатели 1 и 2 в положение ON.

Link to comment
Guest Анатолий

В моем понимании, эти настройки и являются оптимальными.

Можете даже попробовать Force Transmit уменьшить до 5 миллисекунд. Хотя, если и так всё работает, то может лучше не трогать? :rolleyes:

Если указываете 2 правила упаковки данных, то срабатывает та ситуация, которая возникнет первой.

В Вашем случае дейтаграмма отправится в случае, если:


  •  
  • придет 211 символов
  • или наступит пауза во входящем потоке данных

На скорости 9600 бит/сек время передачи 1 байта примерно равно 1 мсек. Т.е. паузы в 5 мсек вполне хватит, чтобы понять, что входной пакет закончен.

Edited by Komantsev
Упс.... Сорри, случайно затер сообщение автора и вместо него написал свой комментарий. Команцев.
Link to comment
Guest Анатолий

Добрый день!

Прошу прощения за столь длительную паузу.

Пробовал и, в конце концов, нашел, к своему стыду, ошибку в программе.

Я дико извиняюсь, что отнял у вас время. Все стало работать несравнимо стабильней, хотя и проскочила 1 ошибка на 1.5 часа нормальной работы, при Force Tx=0 и Packet length=0.

Но что-то мне не дает покоя.

В Вашем случае дейтаграмма отправится в случае, если:

•придет 211 символов

•или наступит пауза во входящем потоке данных

При Force Tx=10 и Packet length=211 я стал получать 2 датаграммы - 104+107 байт. Пакет отправляется целиком -211 байт. Значит он и должен целиком прийти, без пауз. Но где-то возникает пауза больше 10мс, если пакет разбивается на 2 датаграммы. Где и почему это может происходить?

Link to comment

Знаете, очень странно.

А можете посмотреть, большая ли получается пауза между отправленными датаграммами? (просто хочу понять, действительно ли NPort получает сообщение 2 частями или же получает сообщение целиком, но отправляет 2-мя датаграммами)? "Большая" пауза - имеется ввиду порядка 100 мсек. Небольшая - в пределах 10 мсек.

Кстати, попробуйте вообще Packet Length (и Delimiter) не ставить. Оставьте только Force TX. Что-то изменится?

Link to comment

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...