Страница 2 из 2 ПерваяПервая 12
Показано с 11 по 20 из 22

Тема: Modbus.lib портиться команда при таймауте

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Вы думаете от 100 метров или 5 метров что-то зависит? Во всех примерах стоит 50 мс, и всё работает даже с тысячами переменных. Тут всё от программиста зависит.

    Вот вы пишите 4 ПЛК слейвы и 1 ПР. ПР мастером будет? И какой ПР вы хотите мастером сделать?
    Нет, мастером будет именно ПЛК150, на шине еще 4 ПЛК150 и ПР - они слейвы. Их у меня физически нет для тестирования modbus обмена использую МВА8. Здесь я просто демонстрирую проблему с библиотекой Modbus.lib. Я не понимаю, или я упускаю какое-то действие (например очистки буфера), либо с библиотекой какая-то проблема. Неужели это нормально, если ответ пришел вне периода тайм аута, то следующий вызов этого ФБ в библиотеке будет некорректным. Все показано на скриншотах. Дело не в неправильно подобранном периоде тайм аута. Он намеренно выставлен низким, дело в том как обмен рушится, если один из ответов пришел поздно. Если это так и работает, то я просил бы поделиться опытом, как с этим работать, если это зависит только от программиста.

  2. #2

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Начнём с того, что для вашей задачи вообще не нужны библиотеки, освойте сначала конфигурацию. Для ускорения обмена, сгруппируйте подряд регистры.
    Разнесите чтение и запись в отдельные UMD (универсал модбас девайс), чтение сделайте циклически, а запись по изменению. Время опроса 10 мс вместо 100.
    Ещё для ускорения обмена почитайте пост # 396 petera https://owen.ru/forum/showthread.php?t=22915&page=180
    а по поводу опроса МВА8 почитайте тут и мой пост тоже https://owen.ru/forum/showthread.php?t=35094

    А по поводу библиотеки, примите за аксиому 50 мс и всё! Что касается ускорения обмена, группировка регистров и чтение циклически, запись по событию. Берёте пример, корректируете регистры и не парьте себе мозг!
    Использую библиотеку именно по тому, что не устраивает обмен через конфигурацию: смотрел Serial Port Monitor'ом как работает через конфигурацию: отдельный запрос на каждый регистр - это категорически не устраивает, потому что любой из ПЛК-слейвов может быть отключен, и это не должно сильно влиять на систему в целом, если регистры запрашиваются по одному, то и таймаута ждать от каждого.
    Спасибо, советами воспользуюсь, 50 мс не должно быть критично, если для каждого девайса я делаю одну групповую запись и один групповой запрос. Но хотелось бы все-таки услышать мнение по поводу поведения библиотеки modbus.lib.

  3. #3

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    И у меня не опечатка про "dp1MVA8". МВ8A - 50мс. Таймаут - индивидуальная настройка конкретного девайса. Некоторым 0*мс нормуль.
    *У меня другое от этой либы трактование таймаута.
    Я согласен. Но, учитывая специфику задачи, хотелось бы во-первых выставить таймауты как можно меньшие, а во-вторых таймаут ответа - величина случайная и легко может может изредка превышать даже установленные с большим запасом пределы, и тогда при использовании этой библиотеки мы получаем вот что. Или это я делаю что-то не так. Мне никто так и не может пояснить. А какое у вас трактование таймаута в этой библиотеке?

    Либа позволит легко изменить цикличность "обнаруживающих" запросов.
    Т.е. я в программе могу по обнаружению ошибки 255 MB блока уменьшить частоту опроса этим блоком? Да это удобно.

    Она ведет себя хорошо и моет руки перед едой. Но как-то раз попросил её сходить за пивом. Отвратительно повела себя - пришла без водки.
    Поведение программного компонента описана в документации к библиотеке modbus.lib и порождает ожидания своего поведения исходя из входных и выходных данных своих блоков. Увидеть поведение, описанное мной, программист не ожидает.

  4. #4

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    если задача стоит в том чтобы со слейвов прочитать пачкой примерно одинаковый набор данных, то лучше создать фиксированный набор байт, повторяющий пакет запроса модбас и слать его в установленное время в порт, а потом разбирать пришедшие данные без всяких библиотек
    Возможно, но это сложнее. Хотелось бы воспользоваться библиотекой - проще сделать, проще модифицировать. Неужели никто не сталкивался с такой проблемой, ведь насколько я сужу по форуму, ее достаточно широко исползуют.

  5. #5

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    Ну и долго эти стоны будут продолжаться ?
    Если нечего сказать, то можно просто промолчать. Здесь идет дискуссия, я задал вопрос, форумчане дают комментарии (спасибо им за это), я отвечаю на них.
    Откройте либу, разберите код и найдете сами все проблемные моменты (ессно они есть).
    Код библиотеки закрыт.

    Еще раз - я её не использую хотя авторам огромное спасибо. Но даже когда юзал хватало мозгов выяснять индивидуальные особенности девайсов, учитывать их и не заниматься хренью в виде 'а давай заместо доски бревно сунем'.
    Несмотря на эльфийские хотелки никуда не уйдете от индивидуальных таймаутов.
    Или из тех кому нужно прописывать что горячий кофий не нужно лить на себя ?
    А может вести разговор по теме дискуссии. Или из тех, кому нужно выглядеть самым умным, по факту таким не являясь?

  6. #6
    Пользователь
    Регистрация
    10.11.2014
    Адрес
    Санкт-Петербург
    Сообщений
    1,063

    По умолчанию

    Цитата Сообщение от Ovtia Посмотреть сообщение
    Если нечего сказать, то можно просто промолчать. Здесь идет дискуссия, я задал вопрос, форумчане дают комментарии (спасибо им за это), я отвечаю на них.
    Код библиотеки закрыт.
    А может вести разговор по теме дискуссии. Или из тех, кому нужно выглядеть самым умным, по факту таким не являясь?
    Ovtia, Вы по-аккуратнее с корефеями)))

    Код библиотеки Modbus.lib открыт. Нужно просто снять галочки в кодесисе (потыкайтесь).

    Ну, и уж раз Вы решили использовать библиотеку, то можете ознакомиться с универсальным диспетчером:
    https://owen.ru/forum/showthread.php...E5%F2%F7%E5%F0

  7. #7

    По умолчанию

    Цитата Сообщение от Спорягин Кирилл Посмотреть сообщение
    Код библиотеки Modbus.lib открыт. Нужно просто снять галочки в кодесисе (потыкайтесь).

    Ну, и уж раз Вы решили использовать библиотеку, то можете ознакомиться с универсальным диспетчером:
    https://owen.ru/forum/showthread.php...E5%F2%F7%E5%F0
    Спасибо за наводку. Посмотрю вашу библиотеку, покопаюсь в codesys.

Страница 2 из 2 ПерваяПервая 12

Похожие темы

  1. Ответов: 5
    Последнее сообщение: 20.01.2021, 11:45
  2. Команда APLY
    от Тоха в разделе Сетевые технологии
    Ответов: 0
    Последнее сообщение: 15.05.2015, 06:51
  3. ТРМ - 138 и команда 'Aply'
    от alexei73p в разделе Помощь Разработчикам
    Ответов: 0
    Последнее сообщение: 24.04.2009, 19:10
  4. групповая команда для мдвв
    от Радик в разделе ПЛК1хх
    Ответов: 3
    Последнее сообщение: 27.12.2007, 07:48

Ваши права

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