Стартовая страница › Форумы › Ошибки в работе › Ошибки Коммуникатора › Оставаться на связи V6
- В этой теме 10 ответов, 2 участника, последнее обновление 9 месяцев, 4 недели назад сделано
manjey73.
-
АвторСообщения
-
28.11.2022 в 09:36 #26285
manjey73
УчастникДобрый день, Михаил. Обнаружил ошибку при настройке «Оставаться на связи»
Такое ощущение, что срабатывает какой-то кольцевой буфер и ответы складываются типа в стек и после ошибки чтения начинается смещение ответов.Скрин где отметил, подловил вот после запуска линии.
2022-11-28 09:26:29 Запуск линии связи [7] Danfoss 2022-11-28 09:26:29 Соединение с 195.191.78.140:60080 2022-11-28 09:26:29 Сеанс связи с устройством [10] Danfoss ECL Отправка (5): CE 30 00 00 FE Приём (0/5): Ошибка связи Отправка (5): CE 30 00 00 FE Приём (0/5): Ошибка связи Отправка (5): CE 76 00 00 B8 Приём (5/5): 02 CE 60 00 AC OK Отправка (5): CE 78 00 00 B6 Приём (5/5): 02 CE 60 00 AC OK Отправка (5): CE C9 00 00 07 Приём (5/5): 02 CE FF D8 EB OK Отправка (5): CE CB 00 00 05 Приём (5/5): 02 CE 00 00 CC OK Отправка (5): CE C2 00 00 0C Приём (5/5): 02 CE 09 00 C5 OK Отправка (5): CE C3 00 00 0D Приём (5/5): 02 CE 2C 00 E0 OK Отправка (5): CE CA 00 00 04 Приём (5/5): 02 CE 13 13 CC OK Получено за 4321 мс 2022-11-28 09:27:00 Сеанс связи с устройством [10] Danfoss ECL Отправка (5): CE 30 00 00 FE Приём (5/5): 02 CE 13 00 DF OK Отправка (5): CE 76 00 00 B8 Приём (5/5): 02 CE 00 2C E0 OK Отправка (5): CE 78 00 00 B6 Приём (5/5): 02 CE 60 00 AC OK Отправка (5): CE C9 00 00 07 Приём (5/5): 02 CE FF D8 EB OK Отправка (5): CE CB 00 00 05 Приём (5/5): 02 CE 00 00 CC OK Отправка (5): CE C2 00 00 0C Приём (5/5): 02 CE 09 00 C5 OK Отправка (5): CE C3 00 00 0D Приём (5/5): 02 CE 2C 00 E0 OK Отправка (5): CE CA 00 00 04 Приём (5/5): 02 CE 13 13 CC OK Получено за 1639 мс 2022-11-28 09:27:09 Линия связи [7] Danfoss остановлена --------------------------------------------------------------------------------
-
Эта тема была изменена 9 месяцев, 4 недели назад от
manjey73.
28.11.2022 в 09:38 #26287manjey73
УчастникПроверить ответ на корректность не представляется возможным, у них у всех что он корректный и код CE в ответе.
28.11.2022 в 09:39 #26288manjey73
УчастникСобственно можно из кода драйвера в случае ошибки разорвать сессию режима «Оставаться на связи» и выполнить переподключение? Например это происходит при некорректной команде.
28.11.2022 в 12:13 #26297Mikhail
МодераторДобрый день!
Так и есть. Если часть ответа не считана, то она остаётся в буфере и будет считана при следующем чтении. После того, как сеанс связи окончится неудачей, соединение будет разорвано и переподключено, связь восстановится.
можно из кода драйвера в случае ошибки разорвать сессию режима «Оставаться на связи» и выполнить переподключение?
Закончить сеанс с ошибкой. Канал связи разорвёт соединение.
28.11.2022 в 12:13 #26298Mikhail
МодераторЕсли соединение ненадёжное, то желательно переподключаться каждый раз.
28.11.2022 в 12:43 #26304manjey73
Участникхм… Когда запросов несколько как-то не комильфо заканчивать весь сеанс с ошибкой.
Учитывая, что на остальные запросы могут дальше идти корректные ответы.Вот как сделать, чтобы если был один из ответов некорректным, даже хоть раз, только в конце сессии разорвать подключение, чтобы в новой сессии началось все заново?
28.11.2022 в 13:10 #26312manjey73
УчастникОтправка (5): CE 30 00 00 FE Приём (5/5): 02 CE 60 00 AC OK Отправка (5): CE 76 00 00 B8 Приём (0/5): Ошибка связи Отправка (5): CE 76 00 00 B8 Приём (5/5): 02 CE FF D8 EB OK Отправка (5): CE 78 00 00 B6 Приём (5/5): 02 CE FF D8 EB OK Отправка (5): CE C9 00 00 07 Приём (5/5): 02 CE 00 00 CC OK Отправка (5): CE CB 00 00 05 Приём (5/5): 02 CE 09 00 C5 OK Отправка (5): CE C2 00 00 0C Приём (5/5): 02 CE 2D 00 E1 OK Отправка (5): CE C3 00 00 0D Приём (5/5): 02 CE 13 13 CC OK Отправка (5): 80 73 00 00 F3 Приём (5/5): 02 CE 13 00 DF OK
Смещение происходит даже в рамках одной сессии при отключенной настройке «Оставаться на линии» — ну непорядок же ?
Как это избежать то? откуда оно берет предыдущий ответ в буфере????28.11.2022 в 13:11 #26313manjey73
УчастникЕсли я указываю Читать в буфер с 0 по Х каждый запрос ????
28.11.2022 в 14:10 #26317manjey73
УчастникНу вот опять 🙁
Отправка (5): CE 30 00 00 FE Приём (5/5): 02 CE 60 00 AC OK Отправка (5): CE 76 00 00 B8 Приём (5/5): 02 CE FF D8 EB OK Отправка (5): CE 78 00 00 B6 Приём (5/5): 02 CE 00 00 CC OK Отправка (5): CE C9 00 00 07 Приём (0/5): Ошибка связи Отправка (5): CE C9 00 00 07 Приём (5/5): 02 CE 09 00 C5 OK Отправка (5): CE CB 00 00 05 Приём (5/5): 02 CE 09 00 C5 OK Отправка (5): CE C2 00 00 0C Приём (5/5): 02 CE 2C 2C CC OK Отправка (5): CE C3 00 00 0D Приём (5/5): 02 CE 13 13 CC OK Отправка (5): 80 5E 00 00 DE Приём (5/5): 02 CE 13 00 DF OK Получено за 6084 мс
Теперь я понимаю, почему иногда значения в архивах скачут, Что-то надо делать с буфером приема, если у нас несколько запросов и нет необходимости прерывать всю сессию. Что-то тут не так в Датском королевстве.
28.11.2022 в 15:36 #26329manjey73
УчастникОтправка (5): CE C3 00 00 0D Приём (0/5): Ошибка связи Отправка (5): CE C3 00 00 0D Приём (5/5): 02 CE 13 00 DF OK Отправка (5): CE A8 00 00 66 Приём (5/5): 02 CE 13 00 DF OK
Вот аналогично, на запрос CE A8 прилетел откуда ни возьмись ответ от CE C3 который выше был с ошибкой один раз.
Подскажите где в коде это живет и можно ли как-то исправить проблему?
Или рубить сразу все, что ниже? так себе выход если ошибка произойдет в начале опроса28.11.2022 в 17:59 #26333manjey73
УчастникОтправка (5): CE 30 00 00 FE Приём (5/5): 02 CE 60 00 AC OK Отправка (5): CE 32 00 00 FC Приём (0/5): Ошибка связи Отправка (5): CE 32 00 00 FC Приём (0/5): Ошибка связи Отправка (5): CE 76 00 00 B8 Приём (5/5): 02 CE 60 00 AC OK Отправка (5): CE 78 00 00 B6 Приём (5/5): 02 CE 60 00 AC OK Отправка (5): CE C9 00 00 07 Приём (5/5): 02 CE FF D8 EB OK Отправка (5): CE CB 00 00 05 Приём (5/5): 02 CE 00 00 CC OK Отправка (5): CE C2 00 00 0C Приём (5/5): 02 CE 09 00 C5 OK Отправка (5): CE C3 00 00 0D Приём (5/5): 02 CE 2C 2C CC OK Отправка (5): CE A8 00 00 66 Приём (5/5): 02 CE 12 13 CD OK
Первый запрос ОК, второй два раза с ошибкой связи и далее 3-й и 4-й запросы почему-то данные первого запроса. Типа сколько ошибок связи в Сессии будет, столько раз откуда-то возьмется предыдущее значение и на столько же сместятся корректные ответы… видимо.
-
Эта тема была изменена 9 месяцев, 4 недели назад от
-
АвторСообщения
- Вы должны авторизироваться для ответа в этой теме.