Показано с 1 по 10 из 10

Тема: Попеременный опрос двух модулей МВ110 и МУ110

  1. #1

    По умолчанию Попеременный опрос двух модулей МВ110 и МУ110

    Здравствуйте.
    Перед наладкой большой схемы собрал уменьшенный вариант, состоящий из ПЛК 100, модуля МВ110-16 и МУ110-16. Контроллер опрашивает МВ110 и отправляет состояние входов МУ110, т.е. включение входа включает выход. Проект на вашей библиотеке ModBus.lib. Обмен идет, значения присваиваются, но все время происходит ошибка time-out модуля МУ110-16 и примерно каждые 2 минуты контроллер перезагружается. Если опрашивать модули по таймеру 100 ms все нормально, НО по задаче проекта обмен должен быть на максимально возможной скорости, т.к. модулей много, а использовать один большой контроллер не получится. Настройки: ModBus RTU, BaudRate 57600. У МВ110 адрес 5, у МУ110 адрес 9. Проект ПЛК прилагается.
    Как с этим делом побороться?
    Вложения Вложения
    Последний раз редактировалось VovkaK; 15.03.2011 в 07:48.

  2. #2

    По умолчанию

    Отвечу сам себе. Проблема исчезла после добавления триггера на переменную с выхода Complete блока MB_WR_REGS. Видимо блоку нужен цикл ПЛК для завершения своих дел.
    Вложения Вложения

  3. #3

    По умолчанию

    Цитата Сообщение от VovkaK Посмотреть сообщение
    Настройки: ModBus RTU, BaudRate 57600
    А почему скорость-то не 115200 - в два раза быстрее?

  4. #4

    По умолчанию

    На 115200 изредка проскакивает ошибка. Да и в два раза быстрее только "полет" посылки. Но на фоне цикла ПЛК будет этот "полет" 3 мс или 1,5 мс нет разницы, я думаю.

  5. #5

    По умолчанию

    Ошибка как проявляется и каким кабелем соединили? Есть-ли терминальные резисторы на концах линии? Потом, я заметил, что у Вас огромный таймаут, аж 150 мс выставлен, хотя рекомендуют 20 - это зачем?

  6. #6

    По умолчанию

    Ошибка таймаут, кабель марки "моток проводов". Терминальные резисторы есть, в модуле AC4. Но на этой скорости обмен нормально идёт и с отключенными резисторами. А насчет времени таймаута 150 мс, если ответ пришёл, ПЛК не будет ждать весь таймаут, вдруг ещё чего придёт. По условиям проекта, если появляется ошибка два раза подряд -> остановка линии и разбор полетов. Главное, чтобы время не было слишком малым (появится ошибка time-out, причем может появляться при стечении обстоятельств) или большим (пока пройдет два таймаута всё уже уедет).

  7. #7
    Пользователь
    Регистрация
    11.01.2009
    Адрес
    Кострома
    Сообщений
    3,144

    По умолчанию

    попробуйте увеличить цикл ПЛК. возможно ПЛК не успевает все сделать. Как следствие ошибка связи.
    Сильно увеличивает обмен данными, а как следствие и цикл режим Онлайн.
    При отключении Онлайн время цикла заметно снижается.
    В модуле статистик этого не видно. Если завести переменную через функцию MAX на время цикла, то обнаруживается , что максимальное время цикла в 3 раза больше, чем отображаемое в модуле статистик(для режима онлайн).
    А Время таймаута можно сделать поменьше, но добавить повторов при запросе(Amount Repeat).
    Последний раз редактировалось lara197a; 16.03.2011 в 15:59.

  8. #8

    По умолчанию

    С циклом игрался, не помогло. С циклом в режиме Онлайн тоже разбирался, только записывал значение в массив через 1 сек. Но это ладно. Кстати упомянули про число повторов, может знаете ответ на вопрос: давно интересует логическая обработка повторов. При передаче указывается, что будет столько-то повторов и они сличаются? Или просто отправляются подряд и выполняется последний правильный?

  9. #9

    По умолчанию

    Цитата Сообщение от VovkaK Посмотреть сообщение
    Ошибка таймаут, кабель марки "моток проводов". Терминальные резисторы есть, в модуле AC4. А насчет времени таймаута 150 мс, если ответ пришёл, ПЛК не будет ждать весь таймаут, вдруг ещё чего придёт. По условиям проекта, если появляется ошибка два раза подряд -> остановка линии и разбор полетов. Главное, чтобы время не было слишком малым (появится ошибка time-out, причем может появляться при стечении обстоятельств) или большим (пока пройдет два таймаута всё уже уедет).
    При большом времени таймаута у Вас все остальные модули, при отказе одного будут общаться медленнее на его величину, а именно на 150 мс, а если отвалилось 2 модуля, то на 300 и т. д. Это нормально разве?

  10. #10

    По умолчанию

    интересует логическая обработка повторов.

    Вы ж сказали что c modbus.lib работаете - все в ваших руках
    Если я правильно понял, при работе через конфигуратор с числом повторов допустим 3, отправляется 1-й, приходит ответ, отправляется 2-й и т.д. Модуль "не знает" сколько будет повторов. А ПЛК при работе через конфигуратор как-нибудь обрабатывает повторы?
    При большом времени таймаута у Вас все остальные модули, при отказе одного будут общаться медленнее на его величину, а именно на 150 мс, а если отвалилось 2 модуля, то на 300 и т. д. Это нормально разве?
    Вы правы, да я и не спорю, что его смело можно уменьшить. Но до скольки подгоню на полной схеме.

Ваши права

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