27.06.2018, 10:33 | #1 |
Новичок
Регистрация: Jun 2018
Сообщения: 16
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
таймаут TCP соединения
Вопросы:
1) Можно как-то изменить такое поведение TRIM5, когда он сбрасывает (со стороны контроллера) TCP-соединение через 5 секунд неактивности со стороны клиента? 2) Если для такого поведения контроллера есть субъективные предпосылки, то могут ли быть проблемы с принудительным опросом TRIM5 с цикличностью менее 5 секунд для поддержания соединения постоянно открытым? |
27.06.2018, 10:52 | #2 |
Уволен из Сегнетикс
Регистрация: Nov 2015
Адрес: CПб/ВЛГ
Сообщения: 0
Благодарил(а): 0 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Ответ: Modbus TCP таймаут
1. Подозреваю, что можно, через линукс и конфиги, но это не точно... Спрошу у разработчиков, при случае.
2. Проблем возникать не должно. __________________ В сегнетиксе не работаю с самого начала 2019 года. |
27.06.2018, 11:35 | #3 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 112
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
Ответ: Modbus TCP таймаут
Цитата:
Минимально допустимая цикличность опроса Trim5 около 1 мсек. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
27.06.2018, 12:48 | #4 |
Новичок
Регистрация: Jun 2018
Сообщения: 16
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Modbus TCP таймаут
Не знаю, что вижу - о том пою. Т.е. сбрасывает.
Что такое "нормальные условия"? Для меня Trim5 - источник сигналов, не более. Подрядчик, который непосредственно программирует Trim5, говорит, что ничего сделать нельзя. В Manual_TRIM5_v1-15.pdf никакой информации по настройке тайаутов я не увидел. |
27.06.2018, 12:55 | #5 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 112
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
Ответ: Modbus TCP таймаут
Цитата:
Если TCP-стек linux'a сбрасывает соединение, значит в вашем случае сбросит соединение любой другой компьютер с этой операционной системой. Я почему несколько раз написал слово linux - мы никак не вмешиваемся в работу базовых драйверов. Да и не думаю, что это вообще возможно без их перекомпиляции и изменения исходного кода. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
27.06.2018, 13:52 | #6 | |
Новичок
Регистрация: Jun 2018
Сообщения: 16
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Modbus TCP таймаут
Цитата:
В том же ioLogoc "Modbus/TCP idle connection timeout interval" вполне себе настраивается. |
|
27.06.2018, 14:56 | #7 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 112
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
Ответ: Modbus TCP таймаут
Цитата:
Это точно имеет отношение к работа именно сокетов? __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
27.06.2018, 15:20 | #8 | |
Новичок
Регистрация: Jun 2018
Сообщения: 16
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Modbus TCP таймаут
Точно, проверено. Ну, и:
Цитата:
|
|
27.06.2018, 16:40 | #9 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 112
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
Ответ: Modbus TCP таймаут
Меня настораживает словосочетание "Modbus TCP", т.к. сокеты - это допротокольный уровень по отношению к модбасу.
Может так статься, что это обычный логический дисконнект по неактивности мастера. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
27.06.2018, 17:38 | #10 | |
Новичок
Регистрация: Jun 2018
Сообщения: 16
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Modbus TCP таймаут
Цитата:
Точно так же идет и отключение в случае с TRIM5, по крайней мере, как я это вижу. Только вот Вы утверждаете, что этого не может быть. Однако - есть. |
|
27.06.2018, 17:44 | #11 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 112
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
Ответ: Modbus TCP таймаут
Цитата:
Я крайне сомневаюсь, что если я пропингую 502 порт на этом устройстве, то оно покажет связь с мастером. Это глупо, как минимум. Поэтому я думаю, что это настройка верхнего уровня, а не уровня сырых сокетов. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
27.06.2018, 17:58 | #12 |
Новичок
Регистрация: Jun 2018
Сообщения: 16
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Modbus TCP таймаут
А как, по-Вашему, modbus tcp без транспорта работать может? Оно само не умеет ведь.
|
27.06.2018, 18:17 | #13 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 112
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
Ответ: Modbus TCP таймаут
Цитата:
Какое место в модели OSI они занимают и какое место там занимает modbus? __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
28.06.2018, 09:18 | #14 | |
Новичок
Регистрация: Jun 2018
Сообщения: 16
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Modbus TCP таймаут
Цитата:
Что касается Вашего пассажа про "пинг" на 502-ой порт. Смотрим картинку в аттаче. Установлено соединение с сервером (ioLogic), у которого период неактивности задан = 1 минуте. У клиента включена опция "Send Keepalives to server". Прочитали три регистра и стоим. Так вот, то, что красным обведено, это и есть "пинги", как Вы изволили выразиться, на 502-ой порт. И сервер соединение держит, не рвет через минуту, что видно по строке состояния, обведенной зеленым. Я бы и TRIM5 такое попробовал, но, к сожалению, Ananas не позволяет менять периодичность keepalives, а она у него порядка 30 секунд. С другой стороны, это ничем принципиально не отличается от цикличного опроса раз в 2.5 секунды одного из регистров TRIM5 в приложении SCADA. Последний раз редактировалось Arsie, 13.02.2020 в 16:43 |
|
28.06.2018, 09:57 | #15 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 112
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
Ответ: Modbus TCP таймаут
Цитата:
Спорить мы с вами можем очень долго. Я вам сказал свою точку зрения, повторю вам её ещё раз: правила игры в TCP для linux/windows одинаковы и миллиард устройств в мире работают по этим правилам. Трим5 - одно из этого миллиарда устройств. Правила для него абсолютно те же. И если сокет реально закрывается через 5 секунд, значит на этом же месте в этих же условиях сокет будет закрыт и любым другим компьютером или сервером в датацентре. Если вы желаете продолжить диалог и по настоящему докопаться до правды, то вам нужно промониторить сетевой трафик и подтвердить, что показанное на скриншоте реально является именно пингом, а сообщение "illegal value" всего лишь ошибка программистов iologic. Но, повторюсь, я уверен на 100%, что это не пинг (ICMP Echo-Request). __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
28.06.2018, 14:05 | #16 | |
Новичок
Регистрация: Jun 2018
Сообщения: 16
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Modbus TCP таймаут
Цитата:
Это сообщение утилиты ananas32, которой фирма Moxa (производитель ioLogic в т.ч.) не имеет никакого отношения. Это так, к слову. Да кто бы сомневался, я же не зря "пинг" в кавычки взял, мне бы и голову не пришло использовать этот термин в общеупотребительном смысле. Ладно, оставим эти пустые споры. Что имеем в сухом остатке: 1. TRIM5 закрывает ранее открытое соединение через 5 секунд неактивности. 2. Стек протоколов TCP/IP и TCP конкретно к этому безобразному (кмк) поведению не имеет никакого отношения. Не его это дело. 3. Соединение закрывается на стороне сервера по запросу службы, ранее открывшей это соединение. Т.е. модуля поддержки протокола modbas/tcp (не могу знать, как там это правильно в вашей архитектуре называется). Больше некому. 4. Служба поддержки Secnetics утверждает, что этого не может быть, потому, что не может быть никогда. Я ничего не упустил? |
|
28.06.2018, 14:41 | #17 | |||
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 112
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
Ответ: Modbus TCP таймаут
Цитата:
Цитата:
Цитата:
У меня на столе Trim5 не закрывает соединение через 5 секунд. Значит у нас с вами разные условия и я не знаю и не имею возможности выяснить, почему стек Trim5 так себя ведёт в ваших условиях. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|||
28.06.2018, 17:27 | #18 | |
Новичок
Регистрация: Jun 2018
Сообщения: 16
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Modbus TCP таймаут
Цитата:
Ладно, конструктива все равно не получается. На том и расстанемся. |
|
29.06.2018, 11:16 | #19 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 112
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
Ответ: Modbus TCP таймаут
Предложите ваш вариант конструктива. Что я могу сделать, если у меня на столе всё хорошо и я не могу добиться указанной вами ситуации?
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
02.07.2018, 09:35 | #20 | |
Новичок
Регистрация: Jun 2018
Сообщения: 16
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Modbus TCP таймаут
Цитата:
Чтобы Вы могли убедиться в наличии проблемы. Или убедить меня в отсутствии таковой - я ничего не хочу исключать. В дальнейшем мне нужно добро на более полный доступ к контроллеру со стороны разработчика. Думаю, что особых проблем не будет. |
|
02.07.2018, 11:31 | #21 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 112
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
Ответ: Modbus TCP таймаут
Цитата:
Величина этой проблемы достаточна, чтобы терять на неё ваше время? Поясню. По опыту использования сетевого модуля PNA-025, который действительно безальтернативно закрывает сокет через 5 секунд неактивности, проблемы с 2009 года пока что возникали исключительно с встроенным сервером трейсмода. Остальные серверы не брезгуют переоткрыть коннект, теряя на этом 1-2 мсек. В худшем случае 0.5 сек, что на фоне более, чем 5-секундных пауз всего 10% и менее. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
02.07.2018, 15:47 | #22 |
Новичок
Регистрация: Jun 2018
Сообщения: 16
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Modbus TCP таймаут
Да пока (подчеркиваю) проблемы особой нет. Может быть я бы и внимания даже не обратил, если бы тэги, получаемые с TRIM5, не были завязаны исключительно на отображаемые на страницах соответствующих объектов аналоговые значения. Т.е. данные с контроллера запрашиваются только тогда, когда активна страница объекта с данным конкретным контролером. А тут сразу стало заметно, т.к. SCADA тратит секунд 10-15 на восстановление связи с ушедшим в оффлайн устройством в/в. И в течении этого времени вместо значений отображается состояние #COM (ошибка коммуникации с устройством в/в). Если бы с TRIM5 опрашивались тэги, завязанные на алармы, например, то этого может быть даже бы и не заметили.
Однако в дальнейшем (на новых объектах) есть мысль получать всю необходимую информацию с TRIM5, раз уж он ее все равно собирает с SMH210 и ТРМ. Просто на этапе согласования проектов нам почему-то не было известно о наличии в стуктуре диспетчеризации такого устройства, как TRIM5. Обычная несогласованность, увы. Поскольку уже сейчас общее кол-во тэгов превышает 1800, а время таймаута для TRIM5 очень мало, то возникает подозрение, что этих самых 5-и секунд может и не хватить от одного цикла опроса до другого. Такие вот общие соображения. |
02.07.2018, 16:16 | #23 | ||
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 112
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
Ответ: Modbus TCP таймаут
Цитата:
Самое первое - это три попытки. Второе - время на возобновление 1 сек, для эзернета это нормально. Цитата:
Если у вас просто разрывается соединение посреди передачи, это уже никакого отношения к тайм-аутам не имеет. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
||
02.07.2018, 18:09 | #24 | |
Новичок
Регистрация: Jun 2018
Сообщения: 16
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Modbus TCP таймаут
Мимо кассы. Все настройки, что на картинке показаны, есть. Только они к делу отношения не имеют совсем. Есть несколько другая настройка, позволяющая отчасти решить вопрос. К сожалению, она применяется для протокола (modbus/tcp) в целом, а не к конкретному устройству i/o.
Цитата:
Ладно, хоть на 6-ой день обсуждения факт отвала после 5-и секунд простоя признали. |
|
02.07.2018, 18:27 | #25 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 112
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
Ответ: Modbus TCP таймаут
Цитата:
Пожалуйста, покажите конкретно мои слова, где я указал, что через 5 секунд никакого отвала нет. Может быть я неправильно выразился и буду формулировать свои мысли яснее? __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
03.07.2018, 09:36 | #26 | ||||||
Новичок
Регистрация: Jun 2018
Сообщения: 16
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Modbus TCP таймаут
Цитата:
Цитата:
Цитата:
Цитата:
Это вообще песня! Цитата:
Цитата:
ЗЫ: судя по описанию, видимо, все же не "просто сетевая карта". |
||||||
03.07.2018, 09:54 | #27 | |||
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 112
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
Ответ: Modbus TCP таймаут
Какая конкретно из перечисленных фраз у вас вызвала ощущение, что я сказал "Трим5 никогда не закрывает соединение"?
Цитата:
Мне не больше использовать аналогии в разговоре с вами? Добавлено через 10 минут Цитата:
Цитата:
Зачем вы даёте скаде тратить 10-15 секунд там, где можно потратить 1 сек? Зачем вы не разрешаете скаде сделать 1-2 попытки реконнекта, прежде чем присвоить устройству статус "оффлайн"? Как способ сокращения времени реконнекта может не иметь отношения к делу? __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. Последний раз редактировалось Arsie, 03.07.2018 в 10:09 |
|||
03.07.2018, 13:44 | #28 |
Senior Member
Регистрация: May 2009
Сообщения: 1 034
Благодарил(а): 9 раз(а)
Поблагодарили:
22 раз(а) в 22 сообщениях
|
Ответ: Modbus TCP таймаут
Вот это:действительно просто песня
__________________ RTFM |
03.07.2018, 18:00 | #29 | |||
Новичок
Регистрация: Jun 2018
Сообщения: 16
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Modbus TCP таймаут
Цитата:
Цитата:
Это когда контроллер опрашивают не реже 1 раза в 5 секунд? Не смешно, извините. И вместо внятного ответа пошла демагогия про линух, стек tcp/ip и т.п., непосредственно к делу не относящаяся. Эта аналогия к обсуждаемой теме отношение имеет? Нет? Тогда не надо. Цитата:
Параметр "Время возобновления опроса" с Вашей картинки мне не очень понятен и, думаю, в Citect SCADA не применим. Прямой аналогии, во всяком случае, не вижу. Опрос идет по требованию: нужны данные - опрашиваем, не нужны - не опрашиваем. Или кодируем, если уж сильно нужно отойти от стандартной схемы. |
|||
04.07.2018, 01:01 | #30 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 112
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
Ответ: Modbus TCP таймаут
Подскажите, пожалуйста, как мне построить диалог с вами, чтобы вы начали переспрашивать, если вы что-то не понимаете?
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |