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

Тема: Как ускорить процесс опроса для мастера ModBus

  1. #1

    По умолчанию Как ускорить процесс опроса для мастера ModBus

    Добрый день, господа форум! Вопрос в следующем: возможно ли ускорить процесс опроса мастером своих слэйвов путем исключения из списка опрашиваемых отдельные (к примеру - неработающие в настоящий момент) приборы.
    К примеру: имеется 4 слэйва. Работают из них - 2. Чтобы не тратить время на опрос остальных (неработающих) делаю следующее:
    1. Если модуль выходной (Register output module), то есть мастер передает данные слэйву, параметр "Work Mode" я назначаю "By value change". При этом передача начинается только после изменения переменных в мастере.
    2. Если модуль входной (Register input module), то есть мастер принимает данные от слэйва, то...вот тут то я и завис.
    РЭ читал, примеры смотрел, по форуму лазал, инет исследовал - ничего конкретного (или что то пропустил). Должны же быть для данного случая какие то варианты? Наведите на умную мысль, господа, или примером поделитесь.
    Все-таки: как сделать так, что бы мастер ПРИНИМАЛ данные от слэйва ТОЛЬКО ТОГДА, когда он (слэйв) в работе или по какой-то определенной команде (условию)?

  2. #2

    По умолчанию

    Ищите режим мастера by command. Все-таки: как сделать так, что бы мастер ПРИНИМАЛ данные от слэйва ТОЛЬКО ТОГДА, когда он (слэйв) в работе или по какой-то определенной команде (условию)
    Мастер инициирует процесс обмена путем посылки команды. слейв отвечает на запрос.
    Часто задаваемые вопросы по кодесис
    1) Почему программа не работает - Следует выполнить "Онлайн ->Старт"
    2) Где скачать CoDeSys, таргеты, прошивки, библиотеки - http://www.owen.ru/catalog/codesys_v3/opisanie

  3. #3

    По умолчанию

    Спасибо за ответ. Я читал в РЭ про этот вариант, но там действие этого режима описано ТАК, что, честно говоря, я мало что понял.
    Мастер инициирует процесс обмена путем посылки команды. слейв отвечает на запрос.
    Получается следующее: если я назначаю параметру "Work Mode" модуля "Register input module" режим "by command", то он с периодичностью, равной значению "Polling Time ms" сам посылает некую команду слэйву. И, как только он получит от него определенный ответ, начинает опрос переменных (принимает значения). Я правильно Вас понял?

  4. #4

    По умолчанию

    Нет там написано то что написано. Т.е. Вы сами, без учета всяких polling by time определяете когда начать опрос. Т.е. опрос начинается в момент посылки в поле комманды значения FF
    Часто задаваемые вопросы по кодесис
    1) Почему программа не работает - Следует выполнить "Онлайн ->Старт"
    2) Где скачать CoDeSys, таргеты, прошивки, библиотеки - http://www.owen.ru/catalog/codesys_v3/opisanie

  5. #5

    По умолчанию

    сделал попытку перечитать рэ. наваял следующее: (см.вложение). при симуляции подачи команды для опроса с самого мастера вроде все получается. но можно ли подавать команду на начало опроса со слэйва? что то типа "плк появился в сети". "живых" контроллеров у меня под рукой сейчас нет, поэтому хотелось бы подготовиться теоретически, прежде чем мучить приборы.
    итак: на слэйве добавляю три 8-ми битовых модуля переменных (в реальности их будет на порядок больше). при этом мастер опрашивает только 16-ую (var2.0), которая переходит в состояние True сразу после загрузки плк-слэйв. после чего мастер начинает опрашивать все переменные этого слэйва.
    такой фокус возможен или команду на начало опроса предписано давать только самому мастеру?
    Вложения Вложения

  6. #6

    По умолчанию

    Цитата Сообщение от Малышев Олег Посмотреть сообщение
    Нет там написано то что написано. Т.е. Вы сами, без учета всяких polling by time определяете когда начать опрос. Т.е. опрос начинается в момент посылки в поле комманды значения FF
    А останавливается? Что замечено: при записи 254 обмен идет около 1с еще; если вешать пару протоколов на один порт - это грустно. Ибо не знаешь, в какой момент начинать обмен по новому протоколу. С доп. библиотеками-то понятно...

  7. #7

    По умолчанию

    данная ситуация возникает когда количество запросов превышает пропускную способность шины - иначе говоря пока очередь запросов не пуста - мастер будет запрашивать. шина перегружена увеличьте интервал между запросами.
    Часто задаваемые вопросы по кодесис
    1) Почему программа не работает - Следует выполнить "Онлайн ->Старт"
    2) Где скачать CoDeSys, таргеты, прошивки, библиотеки - http://www.owen.ru/catalog/codesys_v3/opisanie

  8. #8

    По умолчанию

    Постараюсь по-другому сформулировать вопрос.
    Можно ли сделать так, чтобы слэйв САМ дал разрешение мастеру на свой опрос (подача питания, состояние переменной и т.д.). Может ли мастер понять непосредственно ОТ СЛЭЙВА, что его уже пора опрашивать, т.е. режим "Command by" модуля работал бы по команде ИЗ СЛЭЙВА?
    Если "ДА", то как это реализовать. Если "НЕТ", то подскажите: как в коде изменить значение параметра "Polling Time" (примеров не нашел). Как вариант, хочу сделать так, чтобы период опроса в 1000ms (при отключенном слэйве) менялся при подаче на него питания (изменении переменной на TRUE) на 10 ms?

  9. #9

    По умолчанию

    Нельзя, это не соответствует концепции мастер-славе.
    Polling Time нехакерскими методами поменять нельзя.
    P.S. Как и описано в документации, при пропадании связи с устройством его опрос постепенно замедляется до 20 раз.
    При восстановлении связи темп опроса восстанавливается.

  10. #10

    По умолчанию

    не порадовали, владислав, но за конкретный ответ - спасибо.

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

Ваши права

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