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

MOXA 5150 в качестве TCP сервера и 2 TCP клиента


Recommended Posts

Имеем одно устройство телемеханики, которое передает данные на верхний уровень через последовательный интерфейс RSR-232. Необходимо передать данные телемеханики по сети Ethernet на две приемопередающие станции. Т.е. MOXA со стороны устройства телемеханики настроена как TCP сервер (Max connections = 2), MOXA со стороны каждой приемопередающей станции настроена как TCP клиент. Когда обе клиентские MOXA подключены к серверной MOXA, с одной из клиентских MOXA постоянно обрывается связь и данные передаюися с ошибками. Если в единицу времени соединение установлено только с одной клиентской MOXA связь стабильна и пропаданий данных телемеханики нет. Как заставить серверную MOXA работать без ошибок?

Link to comment

Добрый день,

Как заставить серверную MOXA работать без ошибок?

Боюсь, что никак.

Когда к NPort-серверу подключено 2 клиента, получается следующая ситуация:


     
  • всё, что передают клиенты, "вываливается" на COM-порт сервера
  • всё, что приходит к серверу по COM-порту, передается на 2 клиента одновременно
     

В итоге, возможны следующие ошибки:


     
  • Если 2 клиента дали запрос одновременно, данные в COM-порте могут просто перемешаться
  • Если один клиент что-то запросил и серверное устройство ему ответило, то NPort Server перешлет ответ обоим клиентам одновременно. В итоге второй клиент, ничего не запросив, получит ответ и может интерпретировать его как ошибку.

Наверное, единственный вариант исправить ситуацию - это заменить NPort 5150 на NPort 6150. У него есть функция "command-by-command", которая "разруливает" одновременные подключения 2 клиентов таким образом, что пока один клиент не обслужен, все запросы другого клиента будут задерживаться в буфере. И ответы в таком случае будут отсылаться только тому клиенту, который их ждёт.

Link to comment

В итоге, возможны следующие ошибки:

 

[*]Если 2 клиента дали запрос одновременно, данные в COM-порте могут просто перемешаться

[*]Если один клиент что-то запросил и серверное устройство ему ответило, то NPort Server перешлет ответ обоим клиентам одновременно. В итоге второй клиент, ничего не запросив, получит ответ и может интерпретировать его как ошибку.

 

Хочу уточнить один момент. В нашем случае данные телемеханики передаются по простейшему протоколу ТМ800А - это однонаправленный протокол передачи данных без подтверждения получения данных принимающей стороной. Т.е. клиентская MOXA опрашивает серверную только в момент установления TCP соединения. После установления TCP соединения передачу данных инициирует серверная МОХА. Серверная МОХА, по логике вещей, лишь ожидает подтверждения получения TCP пакетов. Попробуем сегодня "снифером" посмотреть что к чему :-).

Link to comment

То есть от "сервера" идут сообщения только однонаправленно двоим "клиентам" и всё? Тогда странно.

Попробуйте в NPort выставить галочку "Ignore Jammed IP" (находится рядом с Max. Connection). Иногда помогает. (если галочка не стоит, то NPort при возникновении ошибки по TCP-протоколу не передаст данные ни на один удаленный клиент. А если поставить галочку, то каждое подключение будет обрабатываться независимо, и даже при возникновения сбоя на одном соединении, второе будет обслужено полностью).

Link to comment
  • 7 months later...

Здравствуйте у меня такая ситуация настроили МОХА подключаем её но она просто занимает канал но не ведет передачи данных выявляется везде в чём может быть проблема ?

Link to comment

Добрый день!

Большая просьба:

1) Подробно укажите используемые модели, приведите настройки устройств и опишите характер проблемы.

2) Пожалуйста, соблюдайте пунктуацию русского языка, а то очень сложно читать сообщение.

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...