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

NPort 5210-проблемы с конвертацией данных с 8-N-1 в 7-E-1


Recommended Posts

Проблема в следующем:

Есть счетчики Landis с интерфейсом (7-E-1). К нему через преобразователь CL(токовая петля)-RS-232 подключена Moxa NPort 5210. Проброс данных осуществляется по локальной сети на сервер. На сервере стоит программа обмена для опроса этих счетчиков, которая выдает команды опроса в 8-N-1.

Как не крутил с настройками NPort 5210 (Real-COM, TCP-Server) не хочет конвертировать посылаемую посылку с (8-N-1) в (7-E-1) в результате чего счетчик не понимает команду. 7-E-1 настраивал на Serial-интерфейсе NPort 5210.

Такое впечатление, что NPort 5210 понимает только принимаемые данные с Serial-интерфейса согласно настроек (7-E-1).

Пробовал вместо NPort 5210 подключить IP-модем(по GPRS) SPRUT M2M в режиме ТСР-сервера к счетчику с конвертором по RS-232 в режиме (7-E-1) - все работает (посылаемые команды 8-N-1 удачно конвертируются в 7-E-1)

Подключаешь к ПК на прямую счетчик через конвертер, с той же программой обмена (команды опроса в 8-N-1), но интерфейс ПК настраиваешь на (7-E-1) - тоже все работает.

Может я делаю что-то не так, либо как-то настроить проброс данных по-другому. Конечно не пробовал Pair Connection - но не знаю, а что это изменит.

Заранее благодарен.

Link to comment

Добрый день,

 

Да, описанный Вами эффект будет наблюдаться. Если Вы работаете с NPort в режиме RealCOM, то приоритет будет отдаваться тем параметрам COM-порта, с которыми Вы откроете порт (т.е. настройкам Вашей программы). Настройки самого NPort в данном случае будут проигнорированы.

 

Чтобы это изменить, надо в настройках режима работы поставить (см. на рисунке):


     
  • Max Connection = 2
  • Allow driver control = No

(если настраиваете через утилиту NPort Administrator, то там всё аналогично)

 

"Allow driver control" как раз и указывает, будет ли скорость задаваться драйвером или NPort'ом. При Max Connection = 1 настройки порта всегда будут задаваться драйвером. При Max Connection > 1 есть возможность выбора.

2011-02-10_0908.png

Link to comment

Заработало только в данной схеме:

В режиме Pair Connection (master-slave)

Счетчик -- конвертер (CL-RS232) -- NPort---ethernet---NPort -- ПК(RS232)

Если Serial-интерфейсы обоих Nport - настраивать на 7-E-1, и RS232 ПК на 7-E-1 не работает.

Если Serial-интерфейсы обоих Nport - настроил на 8-N-1, а RS232 ПК на 7-E-1. Тогда получился проброс команд формата (8-N-1) в формат (7-E-1).

Самое главное получилось, но хотелось бы реализовать на одном NPort`е.

Link to comment

Добрый день,

 

А не получилось сделать так, как я предложил в предыдущем посте?

 

А по "парному соединению" корректной будет следующая схема:


     
  • Счетчик: 7-E-1
  • NPort 1 (ближе к счетчику): 7-E-1
  • NPort 2 (ближе к ПК): 8-N-1
  • ПК: 8-N-1
     

Тогда получится, что на каждом участке RS-232 у оборудования стоят одинаковые скорости.

Link to comment

Пробовал и так и так, как Вы описывали. Не работает.

Вот именно, как я описал схему - так работает.

Формат команд (8-N-1) в формат (7-E-1) имелось в виду например запрос

команда выдаваемая с ПК к счетчику - 2F 3F 37 33 31 31 33 32 37 32 21 0D 0A - /?73113272! - (8-N-1)

команду которую должен получить сам счетчик - AF 3F B7 33 B1 B1 33 B2 B7 B2 21 8D 0A - /?73113272! - (7-E-1)

где 73113272 - номер счетчика

 

Либо NPort не корректно передает коды 0D 0A (возврат каретки и перевод каретки CR/LF), либо игнорируются при передачи на Serial-интерфейс NPort`а биты паритета.

Link to comment

Стойте, ничего не понял.

команду которую должен получить сам счетчик - AF 3F B7 33 B1 B1 33 B2 B7 B2 21 8D 0A - /?73113272! - (7-E-1)

Посмотрим, например, первый байт в двоичном коде:

AF = 10101111

Получается 8 бит. Его же 7-битной посылкой не передать.

Link to comment

Возможно я не так высказался.

Имелось ввиду AF = 10101111, это 2F = 00101111 только с дополнительным битом (битом четности) в старшем разряде. 10101111 - формат данных с битом четности в интерфейсе RS-232

(|старт бит |бит0|бит1|бит2|бит3|бит4|бит5|бит6|бит7|бит четности|стоп. бит).

Кстати, если NPort настроить (8-N-1) и RS-232 ПК (8-N-1) и посылать счетчика данную команду через терминалку - AF 3F B7 33 B1 B1 33 B2 B7 B2 21 8D 0A - то он отвечает, но тогда приходящие ответы уже не понимает программа на ПК.

Link to comment

Извиняюсь, ошибся количеством битов данных

(|старт бит |бит0|бит1|бит2|бит3|бит4|бит5|бит6|бит четности|стоп. бит)

1 1 1 1 0 1 0 1

или 10101111(перевернутое 11110101) = AF

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