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

Тема: Modbus TCP опрос устройств последовательный?

  1. #1

    По умолчанию Modbus TCP опрос устройств последовательный?

    Добрый день. Изучая документацию по настройке связи в СПК по Modbus TCP наткнулся на слудующее:
    Таймаут ответа – время, которое master дает slave-устройству на ответ. По истечению этого времени, master переходит к опросу следующего slave-устройства
    Правильно ли я понимаю, что опрос устройств по TCP/IP производится последовательно? То есть если у меня 20 устройств подключенных через свич к СПК, то опрашиваться они будут последовательно по кругу? О_О Возможно я неуч, но мне кажется, что одно из преимуществ использования TCP/IP - это как раз общение с каждым устройством в сети независимо и асинхронно.

    Мне очень важно знать как всё таки в итоге будет работать связь с подчинёнными устройствами. И если да, то существует ли проверенная библиотека, через которую можно работать с каждым устройством независимо?
    Чтобы понять рекурсию нужно понять рекурсию

  2. #2
    Пользователь Аватар для uni
    Регистрация
    01.03.2016
    Адрес
    Екатеринбург
    Сообщений
    17

    По умолчанию

    Если посмотреть на временную диаграмму работы приложения в теории, то можно заметить, что параллельно ничего не работает. Т.е. если, к примеру, у ПЛК несколько RS'ов, то обмен по ним будет последовательный или, на крайний случай, квазипараллельный.

    plccoder2.jpg

    Литература:

    1. Coder's Corner: The IEC 61131-3 Software Model.

  3. #3

    По умолчанию

    вот эта самая квазипараллельность и интересует. Понятно, что поток выполнения один и процессорное время просто дробиться переключаясь между задачами. Например при работе с файлами заявлена асинхронная работа. Не уверен насколько хорошо оно работает, но по крайней мере оно точно в какой-то степени улучшает отзывчивость программы. Просто я боюсь, что отсутствие асинхронного опроса устройств убьёт выгоду от использования Modbus TCP. Сейчас этот обмен с другими ПЛК происходит посредством UDP через сетевые переменные. Хотим заменить ПЛК100 на СПК207, и заменить подчинённые устройства. Но беспокоит, что быстродействие связи не увеличится относительно сетевых переменных, где устройства как известно нужно разводить по времени опроса.
    Чтобы понять рекурсию нужно понять рекурсию

  4. #4

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    доплню, касательно документации, данная фраза относится к разделу 4.2. Настройка СПК в режиме Modbus RTU Master
    собственно ни какого отношения к ТСР не имеющего
    да нет. Как раз к TCP.
    п 8.2 Страница 149:
    Вложения Вложения
    Чтобы понять рекурсию нужно понять рекурсию

  5. #5
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,060

    По умолчанию

    Как было верно замечено - параллельно ничего не работает.
    Убедиться в этом несложно:

    15-09-2018 19-42-51.png

    А почему не рассматриваете вариант продолжить использовать сетевые переменные с СПК?

  6. #6
    Пользователь Аватар для uni
    Регистрация
    01.03.2016
    Адрес
    Екатеринбург
    Сообщений
    17

    По умолчанию

    Что касается родных драйверов Codesys, то, думается мне, там всё последовательно. Когда вы вставляете устройство в дерево оно будет опрашиваться скорее всего последовательно. Если в драйвере есть ожидание таймаута ответа, то все будут этого ответа дожидаться. Поэтому немного есть ПЛК с кучей RS'ов, а также широким набором разнообразных последовательных интерфейсов, которые теоретически могут работать параллельно.

    Для "квазипараллельности" нужно написать алгоритм самостоятельно. Я делал подобное для RS'ов, это сложное и неблагодарное занятие.

  7. #7

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Как было верно замечено - параллельно ничего не работает.
    Убедиться в этом несложно:

    15-09-2018 19-42-51.png

    А почему не рассматриваете вариант продолжить использовать сетевые переменные с СПК?
    потому что планируется серьёзно переработать аппаратную часть системы и "ведомые" устройства будут не Овен
    То есть получается в моём случае особого прироста скорости от использования Modbus TCP вместо Modbus RTU по сути не будет? Ведомых устройств порядка 10-15 шт, по каждому из которых нужно гонять туда-сюда порядка 400байт информации (может чуть меньше, но примерно так). Спрашиваю потому что интересно узнать у более опытных коллег практический опыт.
    Последний раз редактировалось S.A.D.; 15.09.2018 в 20:50.
    Чтобы понять рекурсию нужно понять рекурсию

  8. #8
    Пользователь Аватар для uni
    Регистрация
    01.03.2016
    Адрес
    Екатеринбург
    Сообщений
    17

    По умолчанию

    Тут всё зависит от многих факторов. Что считать вообще скоростью работы? Это минимальный цикл между опросами или доля времени обмена в общем цикле приложения? Первое зависит от времени задач приложения, второе в случае TCP явно будет меньше, т.е. TCP обмен на порядки быстрее должно быть. Нужно прикинуть отношение времени задач приложения к времени обмена. Если время задач много больше времени обмена, то уменьшения времени реакции (отклика) можно и не увидеть. Если обмен по времени сравним или больше длительности задач, то можно что-то и получить.
    Если есть возможность перехода на TCP при прочих равных, думается, лучше использовать его.

  9. #9

    По умолчанию

    Цитата Сообщение от uni Посмотреть сообщение
    Тут всё зависит от многих факторов. Что считать вообще скоростью работы? Это минимальный цикл между опросами или доля времени обмена в общем цикле приложения? Первое зависит от времени задач приложения, второе в случае TCP явно будет меньше, т.е. TCP обмен на порядки быстрее должно быть. Нужно прикинуть отношение времени задач приложения к времени обмена. Если время задач много больше времени обмена, то уменьшения времени реакции (отклика) можно и не увидеть. Если обмен по времени сравним или больше длительности задач, то можно что-то и получить.
    Если есть возможность перехода на TCP при прочих равных, думается, лучше использовать его.
    понятно. Спасибо, будем иметь ввиду.
    Чтобы понять рекурсию нужно понять рекурсию

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

    По умолчанию

    Ответ куда проще, СПК умеет работать в многопоточном режиме как ПК ?
    В любом случае интерфейс один и все пакеты будут отправлены по очереди.

    Просто на ПК можно отправить кучу запросов и ответы получать не в той же последовательности.

    Если СПК можно использовать так же, то прирост получите

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

Похожие темы

  1. Опрос нескольких устройств по modbus
    от gias67 в разделе Сетевые технологии
    Ответов: 5
    Последнее сообщение: 26.11.2018, 15:48
  2. Ответов: 10
    Последнее сообщение: 10.06.2018, 16:36
  3. Ответов: 7
    Последнее сообщение: 12.04.2018, 17:17
  4. Ответов: 11
    Последнее сообщение: 25.01.2016, 10:36
  5. Ответов: 3
    Последнее сообщение: 13.09.2011, 10:45

Ваши права

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