|
Связь с внешним миром Modbus, RS232, RS485, Lon и другое. |
|
Опции темы | Поиск в этой теме |
02.12.2015, 16:19 | #1 |
Новичок
Регистрация: Jul 2015
Сообщения: 16
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Сетевой модуль Pixel сбрасывает соединение при неактивности
День добрый.
При доступе к Pixel как к слейву по Modbus/TCP выяснилось, что при отсутствии передачи данных около 2 секунд, Pixel закрывает соединение. Сейчас это не очень критично, но хотелось бы узнать, зачем так сделано, и как такое поведение изменить. |
02.12.2015, 16:58 | #2 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 180
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Диспетчеризация, OPC-сервер и modbus
Цитата:
Тайм-аут 5 секунд нужен для того, чтобы было невозможно блокировать работу сетевого модуля, т.к. он поддерживает единственное подключение. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
02.12.2015, 17:34 | #3 |
Новичок
Регистрация: Jul 2015
Сообщения: 16
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Сетевой модуль Pixel сбрасывает соединение при неактивности
Только скорее 2 секунды, а не 5.
Код:
kail$ time ncat 192.168.1.68 502 Ncat: Connection reset by peer. real 0m2.037s user 0m0.004s sys 0m0.008s |
12.10.2018, 13:38 | #4 |
Senior Member
Регистрация: Oct 2010
Адрес: Москва
Сообщения: 403
Благодарил(а): 29 раз(а)
Поблагодарили:
2 раз(а) в 2 сообщениях
|
Ответ: Сетевой модуль Pixel сбрасывает соединение при неактивности
Обновлю новым вопросом:
Я правильно понял, что нижеописанный алгоритм доступа к Pixel(Slave) по Modbus/TCP - будет работать: - сделать Master-запрос от 1-го контроллера верхнего уровня (который после получения ответа прекратит запросы на 10 секунд), - выждать 5 секунд (по истечении которых Pixel разорвет соединение), - сделать Master-запрос от 2-го контроллера верхнего уровня (и он после ответа также заткнется на 10 секунд), - выждать 5 секунд (по истечении которых Pixel разорвет соединение), - повторить цикл с начала. Если да, то вытекают два вопроса: 1) Будет ли алгоритм работать, если оба мастера будут долбиться постоянно до получения ответа (естественно, что после получения ответа запросы прекращаются на упомянутые 10 секунд - давая тем самым возможность "вклиниться" с запросом другому контроллеру)? 2) Если запрашивающих контроллеров будет много (естественно, "беззапросная пауза" после получения ответа будет увеличена до 5сек * число_мастеров), то до выстроения "очереди" запросы на IP-адрес пикселя будут валиться практически непрерывно - не повесит ли это модуль Ethernet и сам контроллер? UPD: задача реальная, нужно обеспечить передачу двух команд ("пуск" и "стоп") с квитированием из 8 территориально разнесенных точек. Все точки объединены локальной сетью, а вот с прокладкой дополнительных кабелей (для RS485 или "сухого контакта") - полная Ж... |
12.10.2018, 13:39 | #5 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 180
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Сетевой модуль Pixel сбрасывает соединение при неактивности
Цитата:
2) Сам модуль и контроллер не повесит, обмен - вполне может так сложиться __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
12.10.2018, 14:53 | #6 |
Senior Member
Регистрация: Oct 2010
Адрес: Москва
Сообщения: 403
Благодарил(а): 29 раз(а)
Поблагодарили:
2 раз(а) в 2 сообщениях
|
Ответ: Сетевой модуль Pixel сбрасывает соединение при неактивности
Спасибо!
Заложу минуту "тишины" после ответа (заведомо хватит на 8 мастеров), и тайм-аут запроса на 500 мс (чтоб пореже долбились повторно). |