tonyk_av 45 31 мая, 2022 Опубликовано 31 мая, 2022 · Жалоба 9 minutes ago, k155la3 said: Я бы посмотрел серверную часть. Потому как есть вероятность что идут очень частые запросы на клиента по каналу управления. И они "не сторговались" в этой части. Или вообще проблема не в W5500 а в работе софта-сервера (настройки). Серверная часть- это Винда 7. Этот каркас сервера уже несколько раз использовался в проектах с другими контроллерами, тем удивительней для меня столкнуться с такой проблемой. Куда рыть- не понятно. 2 minutes ago, tonyk_av said: Серверная часть- это Винда 7. Этот каркас сервера уже несколько раз использовался в проектах с другими контроллерами, тем удивительней для меня столкнуться с такой проблемой. Куда рыть- не понятно. А как они должны были "сторговаться"? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 27 31 мая, 2022 Опубликовано 31 мая, 2022 · Жалоба 8 minutes ago, tonyk_av said: Серверная часть- это Винда 7. Этот каркас сервера уже несколько раз использовался в проектах с другими контроллерами, тем удивительней для меня столкнуться с такой проблемой. Куда рыть- не понятно. Я не забыл, что выше было сказано (с остальными нормально). На этапе установления соединения сервер должен "договорится" с клиентом. С "другими контроллерами" он договорился успешно (потомукак они другие, а не W5500). Надо бы промониторить трафик на этапе установления соединения для "нормального" контроллера и в случае W5500 (канал управления) ps (повтор) по каналу передаются пакеты Modbus ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tonyk_av 45 31 мая, 2022 Опубликовано 31 мая, 2022 · Жалоба 7 minutes ago, k155la3 said: Я не забыл, что выше было сказано (с остальными нормально). На этапе установления соединения сервер должен "договорится" с клиентом. С "другими контроллерами" он договорился успешно (потомукак они другие, а не W5500). Надо бы промониторить трафик на этапе установления соединения для "нормального" контроллера и в случае W5500 (канал управления) ps (повтор) по каналу передаются пакеты Modbus ? Тех контроллеров у меня уже давно нет, работают на объектах. Каркас сервера в своё время делался для работы как раз с Модбас. Был зоопарк разных контроллеров, поэтому я написал каркасы сервера и клиента. Собирал их в разных вариантах для тестов. Тогда всё сходу завелось и заработало. А тут затык, и не понятно куда рыть. Just now, tonyk_av said: Надо бы промониторить трафик на этапе установления соединения для "нормального" контроллера и в случае W5500 (канал управления) А что это даст? Вроде, и так видно, что 5500 пилит сообщение и повторяет отправку, хотя его никто явно не просит это делать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 27 31 мая, 2022 Опубликовано 31 мая, 2022 · Жалоба 14 minutes ago, tonyk_av said: . . . Каркас сервера в своё время делался для работы как раз с Модбас. Был зоопарк разных контроллеров, поэтому я написал каркасы сервера и клиента. Собирал их в разных вариантах для тестов. Тогда всё сходу завелось и заработало. А тут затык, и не понятно куда рыть. А что это даст? Вроде, и так видно, что 5500 пилит сообщение и повторяет отправку, хотя его никто явно не просит это делать. C "зоопарком" понятно, сам нечто подобное до(раз)рабатывал, делал перенос системы с USART/GSM/итд физ. уровня на распределенную корп. интранет. Я пользовал UDP. В качестве клиентов были конверторы (Ethernet-->RS485) на базе PC104 (QNX). Умышленно не использовал TCP из-за сложности с "пакетизацией". А чем делались дампы (то что скрины выше) с трафиком ? >> Что даст Возможно отрицательный результат, но это тоже результат. Хотя есть шанс и на положительный. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tonyk_av 45 31 мая, 2022 Опубликовано 31 мая, 2022 · Жалоба 2 minutes ago, k155la3 said: А чем делались дампы (то что скрины выше) с трафиком ? Wireshark 1.10 Свежие версии не хотели работать, а эта легко и без вопросов завелась. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 27 31 мая, 2022 Опубликовано 31 мая, 2022 · Жалоба Я бы косвено (методом исключения) удостоверился, что виноват именно W5500, а не софт/настройка серверной части и "ньюансы" TCP. Для этого из "сервера" сделал бы эмулятор "клиента" или просто "ответчик" для проверки корректности передачи информации (без дробления) которую Вы запланировали. Лучше - физически соединить 2 PC (клиент-сервер). Хотя можно попробовать и через 127.0.0.1 сделать локально. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tonyk_av 45 31 мая, 2022 Опубликовано 31 мая, 2022 · Жалоба 2 hours ago, k155la3 said: Я бы косвено (методом исключения) удостоверился, что виноват именно W5500, а не софт/настройка серверной части и "ньюансы" TCP. Для этого из "сервера" сделал бы эмулятор "клиента" или просто "ответчик" для проверки корректности передачи информации (без дробления) которую Вы запланировали. Лучше - физически соединить 2 PC (клиент-сервер). Хотя можно попробовать и через 127.0.0.1 сделать локально. Это уже сделано и очень просто. Терминал переводится в RAW-режим и настраивается на отправку целой строки, а не каждого символа. При таком способе дробления строки нет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tonyk_av 45 31 мая, 2022 Опубликовано 31 мая, 2022 · Жалоба 5 hours ago, aaarrr said: Те же аккуратные 10мс между исходящими пакетами. Завтра ещё раз посмотрю осциллографом ноги у 5500. Может, где-то чё-то осталось, что дёргает ноги у 5500, вот он и дурит. Мне тут приходится прикручивать к проекту на ХАЛ свои наработки, возможно, где-то чё-то не доглядел, глаз замылился и на, получите-распишитесь. Я же помню, что года 3 назад, когда щупал 5500, у меня сообщения нормально передавались. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tonyk_av 45 27 июня, 2022 Опубликовано 27 июня, 2022 · Жалоба Разобрался с фрагментацией. Ошибка была у меня, причём на стороне сервера, работающего под Виндой. Вот описание буферов: char *inputMessage, *outputMessage; uint16 sizeOfInputMessage, sizeOfOutputMessage; Вот так получал сообщение: // Получаю данные от клиента. clientSockErr = \ recv( clientSock, inputMessage, sizeof( inputMessage ), 0 ); А вот так должен был: // Получаю данные от клиента. clientSockErr = \ recv( clientSock, inputMessage, sizeOfInputMessage, 0 ); Спасибо Ирине Ким с сайта Wiznet, котороя обратила моё внимание на то, что с сервера уходят подтверждения получения на части пакета от клиента, а не на весь пакет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 27 27 июня, 2022 Опубликовано 27 июня, 2022 · Жалоба 3 часа назад, tonyk_av сказал: . . . что с сервера уходят подтверждения получения на части пакета от клиента, а не на весь пакет. Уходят подтверждения о получении n-байт из приемной очереди. Никаких "пакетов" как небыло, так и нет. То что Вы называете "пакетом" - последовательность байт положенная или считанная в/из буфера потока. Стоит там затесаться или пропасть одному байту и вся "пакетная" синхронизация между клиентом и сервером теряется. Это будет не ошибка стека TCP. К примеру, Вы забыли синхронизировать размер Вашего "пакета" на клиенте и сервере после изменений в софте. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться