Страница 3 из 7 ПерваяПервая 12345 ... ПоследняяПоследняя
Показано с 21 по 30 из 61

Тема: Поддержка Modbus UDP

  1. #21
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    10,646

    По умолчанию

    Tacio за все время встречалось только одно устройство, которое не работало без заполненного поля "Идентификатор транзакции"

  2. #22
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,276

    По умолчанию

    Цитата Сообщение от Tacio Посмотреть сообщение
    ..Групповые сообщения (multicast) по TCP?
    1.Если что, там еще речь была о инициирующей отправку данных стороне.
    2.А зачем нужна ненадежная форма отправки задач в промышленном оборудовании ?


    Цитата Сообщение от Tacio Посмотреть сообщение
    Использование протокола TCP ну никак не спасает и не страхует от ошибок в коде к.
    Проще логика (см. в конце поста) - проще сразу выявить все ошибки. Удивляет, да ?


    А вот если какой-то пакет с телеметрией потеряется и TCP начнёт процедуру отсчёта таймаута, затем повторную передачу потерянного пакета,...
    Можно с этого места поподробней ? Вы же разбираетесь с протоколами как я понял.


    до данные в этом пакете уже протухнут и, по-хорошему, надо бы уже запрашивать более свежие.
    Кто и как протухнет в TCP-потоке - интересуют подробности.
    И главное - как на фоне этого UDP сохраняет свежесть ?


    ..это приемлемо...уже неприемлемо.
    Определимся с "приемлимостью" ? Это что ?


    о восстановление TCP соединения в некоторых случаях может задержатся ещё на 5с..
    Т.е. присутствуют проблемы (физические/внешние на линии/местные внутрисистемные/...) приводящие к задержкам.
    А UDP приносят голуби и их это не касается ?


    Цитата Сообщение от Tacio Посмотреть сообщение
    ..
    В протоколе MODBUS есть специальное поле идентификатора транзакции...
    Для Модбас-TCP оно избыточно если что. Не ?


    Цитата Сообщение от Tacio Посмотреть сообщение
    ..
    В протоколе MODBUS есть специальное поле идентификатора транзакции, которое как раз и нужно для таких случаев в том числе. И должно оно обрабатываться всегда независимо от транспортного протокола, который может и сам умеет отслеживать и дубликаты, и неверный порядок.
    Так я же и просил Вас написать для вышеизложенного (с Модбас-UDP) простенький алгоритм обработки.
    Вот например для Модбас-TCP:
    1.Открыл коннект
    2.Отправил запрос
    3.Получил норм ответ - goto 2, таймаут/мусор - goto 4
    4.Закрыл коннект
    5.goto 1
    Последний раз редактировалось Валенок; 26.03.2023 в 11:23.

  3. #23
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    10,646

    По умолчанию

    Для Модбас-TCP оно избыточно если что. Не ?
    может и не избыточно, как раз говорит что ответ строго на данный запрос...

  4. #24
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,276

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    может и не избыточно, как раз говорит что ответ строго на данный запрос...
    А как это по tcp может быть другой ответ ?

    ----
    Вот что вы сделаете с девайсом (слейвом) с модбас-RTU которое иногда сохраняет запрос где-то в памяти и не отвечает, а после вдруг где-то между другими нормальными запросами/ответами вдруг вспоминает этот забытый/забитый запрос и внезапно отправляет ответ на него ?
    Последний раз редактировалось Валенок; 26.03.2023 в 11:34.

  5. #25
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    10,646

    По умолчанию

    Валенок это я не знаю, говорю же, встречал только одно устройство, которое не отвечало, если Идентификатор Транзакции был всегда 0 или он не менялся на следующем запросе.
    Слейв устройство просто игнорировало запрос.

    Какой-то весовой терминал Shenk, точную модель не знаю.
    Последний раз редактировалось melky; 26.03.2023 в 11:40.

  6. #26
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,276

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    Валенок это я не знаю, говорю же, встречал только одно устройство, которое не отвечало, если Идентификатор Транзакции был всегда 0 или он не менялся на следующем запросе.
    Слейв устройство просто игнорировало запрос.

    Какой-то весовой терминал Shenk, точную модель не знаю.
    Это было конкретное устройство с багом. Баг - т.к. протокол не требует какого-то особенного ide от клиента(мастера). Только от сервера - ide ответа должен совпадать с запросом. Как обойти этот баг - вам понятно. Какие проблемы ?

    Я спросили Вас про Вашу реакцию на девайс(слейв) с вышеописанным поведением по RTU

  7. #27
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    10,646

    По умолчанию

    Валенок это не баг, а функционал.

    Смотрите, обычно мы привыкли, что происходит запрос и мы ждем ответа. ВЫ не думали что может быть иная ситуация, запрос1, запрос2, запрос3 и просто ждем ответы в асинхронном режиме, причем ответ 3 придет первым, ответ 1 вторым, а ответ 2 третьим.

    Именно Modbus TCP это позволяет, другой вопрос что практически никто это не реализует в драйверах...

    Пример: например сформировать ответ на запрос №2 устройству требуется 20 секунд, а на запрос 3 всего 0,5 секунды.

  8. #28
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,276

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    .. это не баг, а функционал.
    Есть протокол. Всё вне этого - баг (добавил) если оно мешает работе по протоколу.

    Цитата Сообщение от melky Посмотреть сообщение
    ..ВЫ не думали что может быть иная ситуация, запрос1, запрос2, запрос3 и просто ждем ответы в асинхронном режиме, причем ответ 3 придет первым, ответ 1 вторым, а ответ 2 третьим.
    ...
    Вы так и не ответили про Вашу реакцию про вышеописанное поведение RTU-слейва.


    ++
    Пример: например сформировать ответ на запрос №2 устройству требуется 20 секунд, а на запрос 3 всего 0,5 секунды.
    Exception №5...6 - вот для такого.
    "другой вопрос что практически никто это не реализует в драйверах" (C) ))
    Последний раз редактировалось Валенок; 26.03.2023 в 14:53.

  9. #29
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    10,646

    По умолчанию

    Валенок Прочтите протокол в английском варианте, там как раз и указано что Transaction ID предусмотрен, если ответы поступают не последовательно во времени. Так что это протоколом предусмотрено. Только не первым от Modicon, а уже о последней редакции.

    У меня реакции никакой, с данным устройство обратился человек на форуме RapidScada, показав реальные посылки и ответы от родного ПО данного терминала. Как раз и определили, что у него меняются Transaction Id и со значением 0 устройство не отвечает. В результате разработчик доработал драйвер Modbus. Что абсолютно не противоречит протоколу. Тем более другие устройства это значение просто игнорируют.

  10. #30
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,276

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    ..Прочтите протокол в английском варианте, ...Только не первым от Modicon, а уже о последней редакции.
    А можно этот непоследний оригинал привести ? И указать на фразу со смыслом "ide запросов обязательно должны отличатся [не быть 0 и т.п.]" ?

    ...Transaction ID предусмотрен, если ответы поступают не последовательно во времени
    Это чему-то противоречит? Ключевое слово - "если". А много именно мастеров/клиентов готовы к этому динамическому списку текущих транзакций с индивидуальным контролем времени их жизни ? (было где-то - "другой вопрос что практически никто это не реализует в драйверах") Причем с четкими правилами-параметрами для конфигурации - ведь предполагается именно это, а не ручное руление.
    Уже двоих просил показать простенькую модель работы такого клиента)).

    Цитата Сообщение от melky Посмотреть сообщение
    .. с данным устройство обратился человек на форуме RapidScada, показав реальные посылки и ответы от родного ПО данного терминала...
    Я как-то спорю что этого не было ?

    Цитата Сообщение от melky Посмотреть сообщение
    .Как раз и определили, что у него меняются Transaction Id ..
    У кого - "у него" ? У клиента ? Так он хозяин ide.

    Цитата Сообщение от melky Посмотреть сообщение
    ...и со значением 0 устройство не отвечает..
    Я ж и говорю - баг устройства. Если он (баг) по каким-то причинам в устройстве вынужденный (всё может быть) - то должен быть описан в соотв.РЭ, тогда баг переходит в разряд специфицированных особенностей конкретного девайса.
    Вы действовали по протоколу, а оно не отвечало:
    -или Вы не читали РЭ
    -или это баг который вы ловили, поймали и описали как настоящие энтомологи следующие на Суматру.

    Вы всю жизнь пилотом летали на БоингеXXX, сели на БоингYYY, а заместо убрать шасси - стопкран. Прецеденты были же. Не радостные. Как вот это:
    ..показав реальные посылки и ответы от родного ПО данного терминала.
    изучать в воздухе, норм ?

    Цитата Сообщение от melky Посмотреть сообщение
    ..В результате разработчик доработал драйвер Modbus. ..
    Разработчик драйвера какой стороны ? Клиентской ? Запилил изменяемое и неравное нулю ide ? Так выше же - клиент хозяин ide, что хочет, то и ставит.

    Цитата Сообщение от melky Посмотреть сообщение
    .Что абсолютно не противоречит протоколу..
    Я где-то спорю ? Действия клиента абсолютно не противоречат протоколу ни в 1-ом ни во 2-ом случае. Проcто во 2-ом случае клиент еще и учел баг девайса(сервера)

    Цитата Сообщение от melky Посмотреть сообщение
    ... Тем более другие устройства это значение просто игнорируют.
    Другие устройства в модбас-tcp ответах пишут ide отличное от ide запроса ?
    Последний раз редактировалось Валенок; 26.03.2023 в 15:11.

Страница 3 из 7 ПерваяПервая 12345 ... ПоследняяПоследняя

Похожие темы

  1. Поддержка Modbus TCP
    от Солнечный заяц в разделе СПК2хх
    Ответов: 77
    Последнее сообщение: 23.04.2018, 02:12
  2. Поддержка МОДУС
    от CheeryNick в разделе Модус 5684-0
    Ответов: 14
    Последнее сообщение: 18.06.2015, 10:15
  3. Поддержка протокола ModBus ТРМ138
    от sega в разделе Помощь Разработчикам
    Ответов: 1
    Последнее сообщение: 27.07.2011, 08:52
  4. УВАЖАЕМАЯ ТЕХ. ПОДДЕРЖКА!!!
    от Лёша в разделе ПЛК1хх
    Ответов: 0
    Последнее сообщение: 25.08.2009, 11:03
  5. Поддержка OPM2 протокола ModBus
    от AndreyS в разделе Разработки
    Ответов: 2
    Последнее сообщение: 21.10.2007, 11:37

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •