Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 13

Тема: ПЛК73 MODBUS MASTER удерживает линию после передачи

  1. #1

    По умолчанию ПЛК73 MODBUS MASTER удерживает линию после передачи

    Здравствуйте, уважаемые коллеги.

    При работе ПЛК73 в режиме мастера, с помощью библиотеки Modbus.lib ПЛК удерживает шину после передачи сообщения. Время удержания зависит от скорости.
    Возникают ситуации, когда подчиненный отвечает раньше чем ПЛК отпустит шину, это происходит, например с датчики Пьезоэлектрик, и датчиком температуры и влажности Autonics THD.

    На осциллограммах изображено:
    1. Подчиненный ответил после отпускания шины, время удержания шины мастером выделено;
    2. Подчиненный ответил в момент отпускания шины, возможно сообщение будет принято;
    3. Подчиненный ответил раньше момента отпускания шины, сообщение будет утеряно.

    Как можно убрать эти моменты удержания? Ковырял библиотеку Modbus.lib, ничего не нашел. Снифил в слейв режиме ПЛК через конфигуратор. Эти удержания тоже присутствуют.
    Изображения Изображения

  2. #2

    По умолчанию

    Если slave отвечает раньше чем мастер отпустит шину (а это даже меньше 1 мс), это значит, что slave реализован не по стандарту ModBus RTU и не дожидаясь стандартной паузы в 3,5 символа (но не менее 1 мс) начинает передавать.
    К сожалению, тут ничего сделать нельзя.
    Тролль-наседка, добрый, нежный и ласковый

  3. #3

    По умолчанию

    Цитата Сообщение от shemanin Посмотреть сообщение
    Здравствуйте, уважаемые коллеги.

    При работе ПЛК73 в режиме мастера, с помощью библиотеки Modbus.lib ПЛК удерживает шину после передачи сообщения. Время удержания зависит от скорости.
    Возникают ситуации, когда подчиненный отвечает раньше чем ПЛК отпустит шину, это происходит, например с датчики Пьезоэлектрик, и датчиком температуры и влажности Autonics THD.

    На осциллограммах изображено:
    1. Подчиненный ответил после отпускания шины, время удержания шины мастером выделено;
    2. Подчиненный ответил в момент отпускания шины, возможно сообщение будет принято;
    3. Подчиненный ответил раньше момента отпускания шины, сообщение будет утеряно.

    Как можно убрать эти моменты удержания? Ковырял библиотеку Modbus.lib, ничего не нашел. Снифил в слейв режиме ПЛК через конфигуратор. Эти удержания тоже присутствуют.
    Slave после приема пакета от Master должен сразу захватить шину и выдержать паузу перед тем как начать передачу пакета отклика. Пауза должна быть не менее той, что указана в стандарте протокола. То что Master после передачи пакета сразу не отпускает шину - это правильно.
    Вывод: Master работает правильно, а ваш Slave - не правильно.
    Последний раз редактировалось Вольд; 04.10.2015 в 21:26.

  4. #4
    Пользователь
    Регистрация
    20.02.2008
    Адрес
    Тверь
    Сообщений
    501

    По умолчанию

    Цитата Сообщение от Вольд Посмотреть сообщение
    Slave после приема пакета от Master должен сразу захватить шину и выдержать паузу перед тем как начать передачу пакета отклика. Пауза должна быть не менее той, что указана в стандарте протокола. То что Master после передачи пакета сразу не отпускает шину - это правильно. Вывод: Master работает правильно, а ваш Slave - не правильно.
    Нигде не написано, что Master удерживать шину. Если бы Мастер не удерживал шину всё могло бы заработать даже при таких таймаутах. Так что виноваты оба. Про то, что "Slave после приема пакета от Master должен сразу захватить шину" - скорей всего опечатка. А минимальный таймаут от конца запроса до начала ответа, к моему огромному сожалению, 1,75 мсек. Что было вполне оправдано 50 лет назад но никак не оправдано сейчас. Если убрать это ограничение, протокол мог бы стать намного шустрее.
    Последний раз редактировалось rwg; 05.10.2015 в 00:18.

  5. #5
    Пользователь
    Регистрация
    13.10.2011
    Адрес
    Златоуст
    Сообщений
    1,021

    По умолчанию

    Нигде не написано, что Master удерживать шину.
    MODBUS over Serial Line
    2.5.1.1 <...> In RTU mode, message frames are separated by a silent interval of at least 3.5 character times. In the following sections, this timeinterval is called t3,5.

  6. #6
    Пользователь
    Регистрация
    20.02.2008
    Адрес
    Тверь
    Сообщений
    501

    По умолчанию

    Цитата Сообщение от Yegor Посмотреть сообщение
    Это про время переключения с передачи на приём, про немой интервал, когда все отключены, шина свободна, её удерживает только растяжка из резисторов по питанию. В это время мастер может остаться активным, если у него тормозной драйвер. А где про то, что он должен оставаться в активном состоянии и удерживать шину?
    Последний раз редактировалось rwg; 05.10.2015 в 06:58.

  7. #7

    По умолчанию

    Цитата Сообщение от rwg Посмотреть сообщение
    Нигде не написано, что Master удерживать шину. Если бы Мастер не удерживал шину всё могло бы заработать даже при таких таймаутах. Так что виноваты оба. Про то, что "Slave после приема пакета от Master должен сразу захватить шину" - скорей всего опечатка. А минимальный таймаут от конца запроса до начала ответа, к моему огромному сожалению, 1,75 мсек. Что было вполне оправдано 50 лет назад но никак не оправдано сейчас. Если убрать это ограничение, протокол мог бы стать намного шустрее.
    Ты никогда не делал сетевой драйвер для последовательного порта.

  8. #8

    По умолчанию

    Цитата Сообщение от Вольд Посмотреть сообщение
    Ты никогда не делал сетевой драйвер для последовательного порта.
    предлагаю не бряцать опытом, а технически обосновать

  9. #9

    По умолчанию

    Технически, между моментом окончания передачи и переключением линии всегда есть пауза, т.к. процессору есть ещё чем заняться.
    Грамотная поддержка режима 485 в процессорах встречается редко, приходится различными программными путями её эмулировать. Вот и пауза.
    Более того, даже если убрать задержку, ПЛК всё равно не будет реагировать на ответ, т.к. он не по стандарту и считается битым.
    Тролль-наседка, добрый, нежный и ласковый

  10. #10

    По умолчанию

    В версии прошивки 15 мастер вообще не отпускает линию. Придется делать промежуточный "тормоз" между повелителем и рабом. Раб Vacon20 не имеет настройки "задержка времени ответа".

Страница 1 из 2 12 ПоследняяПоследняя

Похожие темы

  1. Работа с ПЛК73 Modbus RTU Master
    от Jman в разделе ПЛК63/73
    Ответов: 30
    Последнее сообщение: 23.05.2022, 11:18
  2. Ответов: 2
    Последнее сообщение: 15.09.2014, 17:40
  3. Modbus RTU расчет скорости передачи данных
    от colorprint2008 в разделе Сетевые технологии
    Ответов: 2
    Последнее сообщение: 30.01.2014, 15:59
  4. Ответов: 5
    Последнее сообщение: 14.10.2010, 14:42
  5. Бит окончания передачи по Modbus RTU
    от Солнечный заяц в разделе Сетевые технологии
    Ответов: 11
    Последнее сообщение: 03.06.2010, 15:53

Ваши права

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