Changes between Version 1 and Version 2 of Examples3uRs485OverEth


Ignore:
Timestamp:
Feb 28, 2025, 12:47:42 PM (10 days ago)
Author:
roman_zhur
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Examples3uRs485OverEth

    v1 v2  
    66**Схема:**
    77
    8 [[Image(1-scheme.png, align=center, title=схема_блоков)]]
     8[[Image(1-scheme.png, align=center, title=схема_блоков, 98%)]]
    99 
    1010IP-адрес платы VE-02 Блок 1: 192.168.20.75\\
     
    4545
    4646В настройках канального окончания указываются следующие параметры:
    47 Скорость, Число бит данных, Контроль четности, Число стоповых бит – указываются в соответствии с параметрами оборудования, которое будет подключено к окончанию. Также эти параметры должны совпадать на обоих окончаниях.
    48 Режим работы – сервер или клиент. В режиме «сервер» канальное окончание ожидает установки входящего соединения от другого хоста в сети, в режиме «клиент» канальное окончание само делает попытки подключения к удаленному хосту. \\ Соответственно, окончание на первом блоке мы сделаем сервером, на втором блоке – клиентом.
    49 Сервер – указывается IP-адрес платы VE-02, с которым будет устанавливать соединение канальное окончание, работающее в режиме «клиент».\\Если режим окончания «сервер», то поле неактивно.
    50 Порт – параметр устанавливает номер порта TCP, на который канальное окончание R485 будет принимать соединение в режиме «сервер» или на который канальное окончание R485 будет устанавливать соединение в режиме «клиент».
    51 Таймаут неактивности – параметр устанавливает время, в течение которого при отсутствии данных, принимаемых из соединения TCP, канальное окончание разрывает соединение. Может использоваться для контроля целостности соединения, но лучше использовать следующий параметр «TCP keep-alive».
    52 TCP keep-alive – устанавливает время, в течение которого при отсутствии активности соединения канальное окончание отправляет пакет TCP ACK. В ответ на этот пакет ожидается пакет ACK.\\ Этот параметр нужен для того, чтобы поддерживать соединение между хостами в актуальном состоянии. Например, сервер и клиент успешно установили соединение, после чего на стороне сервера было отключено питание устройства. После включения питания на стороне сервера соединение TCP отсутствует, однако клиент будет по-прежнему считать, что соединение установлено, так как не получал от сервера пакетов, свидетельствующих о разрыве соединения.
    53 Таймаут передачи – параметр устанавливает время, в течение которого принимаемые из интерфейса RS-485 данные накапливаются во временном буфере.\\При нулевом значении параметра принятые из интерфейса RS-485 данные немедленно передаются в сеть удаленному хосту (записываются в сокет).\\При ненулевом значении параметра при приеме из интерфейса RS-485 первого октета данных принятый октет помещается во временный буфер, при этом запускается таймер передачи на значение таймаута, установленное конфигурационным параметром.\\До истечения заданного таймаута все принимаемые из интерфейса RS-485 данные дописываются во временный буфер. При истечении заданного таймаута все накопленные во временном буфере данные передаются в сеть удаленному хосту. Таким образом, установка ненулевого значения таймаута передачи позволяет снизить частоту передаваемых через соединение TCP сегментов данных и тем самым сократить накладные расходы и уменьшить общий объем данных, передаваемых по сети, ценой некоторого увеличения задержки передачи. Это может быть полезно, например, в случае передачи через широкополосный канал с оплатой по объему трафика.
     47**Скорость**, **Число бит данных**, **Контроль четности**, **Число стоповых бит** – указываются в соответствии с параметрами оборудования, которое будет подключено к окончанию. Эти параметры должны совпадать на обоих окончаниях.
     48**Режим работы** – сервер или клиент. В режиме «сервер» канальное окончание ожидает установки входящего соединения от другого хоста в сети, в режиме «клиент» канальное окончание само делает попытки подключения к удаленному хосту. \\ Соответственно, окончание на первом блоке мы сделаем сервером, на втором блоке – клиентом.
     49**Сервер** – указывается IP-адрес платы VE-02, с которым будет устанавливать соединение канальное окончание, работающее в режиме «клиент».\\Если режим окончания «сервер», то поле неактивно.
     50**Порт** – параметр устанавливает номер порта TCP, на который канальное окончание R485 будет принимать соединение в режиме «сервер» или на который канальное окончание R485 будет устанавливать соединение в режиме «клиент».
     51**Таймаут неактивности** – параметр устанавливает время, в течение которого при отсутствии данных, принимаемых из соединения TCP, канальное окончание разрывает соединение. Может использоваться для контроля целостности соединения, но лучше использовать следующий параметр «TCP keep-alive».
     52**TCP keep-alive** – устанавливает время, в течение которого при отсутствии активности соединения канальное окончание отправляет пакет TCP ACK. В ответ на этот пакет ожидается пакет ACK.\\ Этот параметр нужен для того, чтобы поддерживать соединение между хостами в актуальном состоянии. Например, сервер и клиент успешно установили соединение, после чего на стороне сервера было отключено питание устройства. После включения питания на стороне сервера соединение TCP отсутствует, однако клиент будет по-прежнему считать, что соединение установлено, так как не получал от сервера пакетов, свидетельствующих о разрыве соединения.
     53**Таймаут передачи** – параметр устанавливает время, в течение которого принимаемые из интерфейса RS-485 данные накапливаются во временном буфере.\\При нулевом значении параметра принятые из интерфейса RS-485 данные немедленно передаются в сеть удаленному хосту (записываются в сокет).\\При ненулевом значении параметра при приеме из интерфейса RS-485 первого октета данных принятый октет помещается во временный буфер, при этом запускается таймер передачи на значение таймаута, установленное конфигурационным параметром.\\До истечения заданного таймаута все принимаемые из интерфейса RS-485 данные дописываются во временный буфер. При истечении заданного таймаута все накопленные во временном буфере данные передаются в сеть удаленному хосту. Таким образом, установка ненулевого значения таймаута передачи позволяет снизить частоту передаваемых через соединение TCP сегментов данных и тем самым сократить накладные расходы и уменьшить общий объем данных, передаваемых по сети, ценой некоторого увеличения задержки передачи. Это может быть полезно, например, в случае передачи через широкополосный канал с оплатой по объему трафика.
    5454
    5555==== Настройка «сервера»:
    56 Скорость, Число бит данных, Контроль четности, Число стоповых бит – мы оставим все параметры по умолчанию.
    57 Режим работы – выбираем «сервер».
    58 Порт – можно указать любой свободный порт, мы укажем «708».
    59 Таймаут неактивности – не будет использован, поэтому оставим по умолчанию «0».
    60 TCP keep-alive – для контроля соединения укажем «10 сек».
    61 Таймаут передачи – оставим нулевое значение, чтобы данные сразу передавались в сеть. Так как ширина канала у нас ничем не ограничена и не тарифицируется, то можно «не экономить» на накладных расходах. В противном случае следует вычислить оптимальное время таймаута таким образом, чтобы один IP пакет содержал один пакет данных RS-485.
     56**Скорость**, **Число бит данных**, **Контроль четности**, **Число стоповых бит** – мы оставим все параметры по умолчанию.
     57**Режим работы** – выбираем «сервер».
     58**Порт** – можно указать любой свободный порт, мы укажем «708».
     59**Таймаут неактивности** – не будет использован, поэтому оставим по умолчанию «0».
     60**TCP keep-alive** – для контроля соединения укажем «10 сек».
     61**Таймаут передачи** – оставим нулевое значение, чтобы данные сразу передавались в сеть. Так как ширина канала у нас ничем не ограничена и не тарифицируется, то можно «не экономить» на накладных расходах. В противном случае следует вычислить оптимальное время таймаута таким образом, чтобы один IP пакет содержал один пакет данных RS-485.
    6262
    6363Настройка канального окончания R485 на первом блоке:
     
    6666
    6767==== Настройка «клиента»:
    68 Скорость, Число бит данных, Контроль четности, Число стоповых бит – также оставим все параметры по умолчанию.
    69 Режим работы – выбираем «клиент».
    70 Сервер – напишем IP-адрес платы VE-02, установленной в первом блоке.
    71 Порт – напишем порт, который указывали для «сервера» – «708».
    72 Таймаут неактивности – не используется.
    73 TCP keep-alive – также укажем «10 сек».
    74 Таймаут передачи – оставим нулевое значение, чтобы данные сразу передавались в сеть.
     68**Скорость**, **Число бит данных**, **Контроль четности**, **Число стоповых бит** – также оставим все параметры по умолчанию.
     69**Режим работы** – выбираем «клиент».
     70**Сервер** – напишем IP-адрес платы VE-02, установленной в первом блоке.
     71**Порт** – напишем порт, который указывали для «сервера» – «708».
     72**Таймаут неактивности** – не используется.
     73**TCP keep-alive** – также укажем «10 сек».
     74**Таймаут передачи** – оставим нулевое значение, чтобы данные сразу передавались в сеть.
    7575
    7676Настройка канального окончания R485 на втором блоке:
     
    9595[[Image(10-scheme.png, align=center, title=схема_проверки)]]
    9696
    97 С помощью конвертеров `Ethernet <--> RS485` подключим ПК к обоим портам плат VE-02, в которых установлены субмодули R485. Затем через программу генерируем и отправляем данные на порт платы VE-02 первого блока и получаем данные с порта платы VE-02 второго блока. После успешной проверки прохождения данных в одну сторону поменяем в программе направление данных в другую сторону (данные шли `Блок 1 -> Блок 2`, теперь `Блок 1 <- Блок 2`). Как показано ниже, полученные данные соответствуют отправленным, число отправленных/полученных пакетов совпадает, ошибок не обнаружено.
     97С помощью конвертеров `Ethernet <--> RS485` подключим ПК к обоим портам плат VE-02, в которых установлены субмодули R485. Затем через программу генерируем и отправляем данные на порт платы VE-02 первого блока и получаем данные с порта платы VE-02 второго блока. После успешной проверки прохождения данных в одну сторону поменяем в программе направление данных в другую сторону (данные шли `Блок 1 -> Блок 2`, теперь `Блок 1 <- Блок 2`).\\Как показано ниже, полученные данные соответствуют отправленным, число отправленных/полученных пакетов совпадает, ошибок не обнаружено.
    9898
    9999