Страница 1 из 3 123 ПоследняяПоследняя
Показано с 1 по 10 из 26

Тема: Modbus.lib

  1. #1

    По умолчанию Modbus.lib

    прошу помощи в решении вопроса
    в проекте использую библиотеку modbus.lib тестирую на железе.
    1. Когда все устройства подключены (опрос идёт последовательно с интервалом 250 мс), всё замечательно работает,
    но стоит одно из устройств отключить (или адресовать не существующее устройство в сети в качестве тестирования)
    как начинаются таймауты от других slave устройств.
    2. Если адресовать устройство находящееся в сети с адресом 32 (по другому адресу -42 ) иногда приходят пакеты с кодом ошибки
    от устройства с адресом 32.

    где то читал - есть глюк библиотеки, что то правят. но не могу найти оригинал статьи.

    Спасибо большое.

  2. #2

    По умолчанию

    Цитата Сообщение от Васильев Посмотреть сообщение
    прошу помощи в решении вопроса
    в проекте использую библиотеку modbus.lib тестирую на железе.
    1. Когда все устройства подключены (опрос идёт последовательно с интервалом 250 мс), всё замечательно работает,
    но стоит одно из устройств отключить (или адресовать не существующее устройство в сети в качестве тестирования)
    как начинаются таймауты от других slave устройств.
    2. Если адресовать устройство находящееся в сети с адресом 32 (по другому адресу -42 ) иногда приходят пакеты с кодом ошибки
    от устройства с адресом 32.

    где то читал - есть глюк библиотеки, что то правят. но не могу найти оригинал статьи.

    Спасибо большое.
    Во первых по Модбас можно сделать интервалы 100- 50 и даже 10 ms. В отличие от TCP всё будет работать.
    Во вторых ошибки надо просто отсекать в коде. Это есть даже в примерах на сайте.
    И ещё ради теста проверьте групповой опрос через конфигурацию, через String. Сильно удивитесь. https://owen.ru/forum/showthread.php...l=1#post244022
    200-300 переменных туда сюда за 50-70 ms легко и без ошибок.
    Последний раз редактировалось kondor3000; 17.09.2023 в 23:13.

  3. #3

    По умолчанию

    Посмотрите тему Диспетчер модбас.
    Работа с этой библиотекой становится гораздо удобней, и будут данные по статистике и работе с отключенными устройствами

  4. #4

    По умолчанию

    Благодарю, очень интересная статья. Требует детального изучения.
    скорее всего буду переписывать проект под эту библиотеку.

  5. #5

    По умолчанию

    Друзья,
    помогите разобраться с проектом - совсем запутался в трех соснах
    не могу понять чём дело. в проекте всё убрал, оставил только работу с МВ110-8А и МВ110-6у
    использую стандартную библиотеку ModBus.lib

    при циклическом чтении всё отлично - данные передаются
    при включении записи в МВ110-6у начинают ссыпаться ошибки
    (то по таймауту, то ошибка в протоколе модбус код 3 - неверный параметр)


    по индикации на МВ110-8А видно, что ему отправляется 2 пакета вместо одного
    а пакет с ошибкой 03 получает МВ110-8А
    точно глюк программы.. но не вижу где - глаза замылились

    сейчас посмотрел на выходе прибора, данные выгружены как в буфере
    значит в МВ110-8А отправляется ещё один пакет - ошибочный, но откуда он берётся?

    Спасибо большое.
    Изображения Изображения
    • Тип файла: png 2.PNG (169.8 Кб, Просмотров: 16)
    Вложения Вложения
    Последний раз редактировалось Васильев; 18.09.2023 в 14:42.

  6. #6

    По умолчанию

    Цитата Сообщение от Васильев Посмотреть сообщение
    Друзья,
    помогите разобраться с проектом - совсем запутался в трех соснах
    не могу понять чём дело. в проекте всё убрал, оставил только работу с МВ110-8А и МВ110-6у
    использую стандартную библиотеку ModBus.lib
    Спасибо большое.
    Эту программу можно выкинуть, взять пример на сайте Модбас чтение и Модбас запись на ST, чуть подправить адреса и регистры и всё будет работать.

    Примеры / Примеры сетевого обмена
    5 Обмен через библиотеки Modbus и OwenNet https://owen.ru/product/codesys_v2/example_program
    Всё можно поместить в одну, разделив по шагам или максимум в 2 программы.

    ЗЫ Вот реально на 2-3 String это всё бы работало через конфиг. Вот мой пример чтения всех 48 регистров МВ110-8А через String
    https://owen.ru/forum/showthread.php?t=35094#10
    Последний раз редактировалось kondor3000; 18.09.2023 в 15:36.

  7. #7

    По умолчанию

    Цитата Сообщение от Васильев Посмотреть сообщение
    Друзья,
    помогите разобраться с проектом - совсем запутался в трех соснах
    не могу понять чём дело. в проекте всё убрал, оставил только работу с МВ110-8А и МВ110-6у
    использую стандартную библиотеку ModBus.lib

    при циклическом чтении всё отлично - данные передаются
    при включении записи в МВ110-6у начинают ссыпаться ошибки
    (то по таймауту, то ошибка в протоколе модбус код 3 - неверный параметр)


    по индикации на МВ110-8А видно, что ему отправляется 2 пакета вместо одного
    а пакет с ошибкой 03 получает МВ110-8А
    точно глюк программы.. но не вижу где - глаза замылились

    сейчас посмотрел на выходе прибора, данные выгружены как в буфере
    значит в МВ110-8А отправляется ещё один пакет - ошибочный, но откуда он берётся?

    Спасибо большое.
    Вы реально усложняете себе жизнь. Голый Modbus.lib можно использовать когда 1-2 устройства и это нужно единственный и неповторимый раз.
    Потратьте несколько дней на разбор работы с Диспетчером и ваш код обмена по модбас сократится до десятка строк, нескольких типовых файлов с типами и функциями для используемых устройств и с возможностью их комбинации в любых сочетаниях

  8. #8

    По умолчанию

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

    в проекте несколько разных устройств и обмениваться через регистры не удобно
    (4 МВ110-8А, 2 МВ110-6у, 4 частотника VF51) вот поэтому был выбран вариант обмена через modbus.lib

  9. #9

    По умолчанию

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

    в проекте несколько разных устройств и обмениваться через регистры не удобно
    (4 МВ110-8А, 2 МВ110-6у, 4 частотника VF51) вот поэтому был выбран вариант обмена через modbus.lib
    Вот на 5-7 страницах обсуждение чтения 7 модулей 8АС ( можно уменьшить или увеличить) с примерами и проектами https://owen.ru/forum/showthread.php?t=10555&page=987
    А так же вывод всех переменных массивом структур на панель
    Последний раз редактировалось kondor3000; 18.09.2023 в 16:44.

  10. #10

    По умолчанию

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

    в проекте несколько разных устройств и обмениваться через регистры не удобно
    (4 МВ110-8А, 2 МВ110-6у, 4 частотника VF51) вот поэтому был выбран вариант обмена через modbus.lib
    Так там тоже обмен идёт через блоки библиотеки modbus.lib. Единственное отличие - механизм вызова блоков организуется не в самой программе, а в коде диспетчера. А в функциях для устройств используются те-же блоки из modbus.lib, что и у вас сейчас

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

Похожие темы

  1. Ответов: 26
    Последнее сообщение: 31.01.2023, 17:42
  2. Ответов: 2
    Последнее сообщение: 04.06.2019, 16:55
  3. Ответов: 10
    Последнее сообщение: 10.06.2018, 16:36
  4. Ответов: 4
    Последнее сообщение: 18.09.2012, 22:16
  5. Ответов: 5
    Последнее сообщение: 14.10.2010, 14:42

Ваши права

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