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

Тема: Обмен через RS485 ModBus

  1. #1

    По умолчанию Обмен через RS485 ModBus

    Имеется система из мастера (СПК207) и четырёх слейвов (МВУ8-И - 1 шт., МВА8 - 2 шт., МУ110.16Р - 1 шт.)
    Связь через RS-485-9600-8-N-1 по ModBus-RTU.
    Настроен циклический опрос каждого слейва один раз в секунду.
    Связь с каждым из слейвов организована последовательностями слов. То есть со смещения 0х0000 читается/пишется сразу все регистры устройства скопом.
    Судя по лампочкам на устройствах - между обращениями к модулям остаётся ещё довольно прилично времени, так что коллизий быть вроде не должно.
    При этом наблюдаю странную картину.
    Иногда случаются ошибки связи. Они, конечно, обрабатываются, но хочется понять принципиально - откуда берутся эти ошибки!
    Анализ показал, что на ровном месте берутся следующие ошибки:
    RESPONSE_TIMEOUT 16#A1 (The was no response in time) [не было ответа в ожидаемое время]; (*получается что слейв был так занят в течение секунды, что не успел ответить? Но такая же ошибка возникает и при 3-х секундном цикле опроса!*)
    RESPONSE_WRONG_SLAVE 16#A3 (The response is not from the expected slave) [ответил не тот слейв, ответ от которого ожидался]. (*то есть запрос отправили уже следующему слейву, а ответил тот слейв, который сильно задержался в предыдущем цикле?*)
    Есть идеи, объясняющие данную ситуацию? А ещё лучше - идеи как устранить данное безобразие?
    ЗЫ: Если сделать на слейвах по нескольку каналов и каждый из них опрашивать/записывать отдельной переменной, то при ежесекундном опросе лампочка порта на СПК горит почти не потухая. Т.е. порт занят под завязку.
    ЗЗЫ: Как узнать гарантированное время ответа для вышеуказанных модулей, сконфигурённых на работу со всеми имеющимися входами/выходами???

  2. #2

    По умолчанию

    Ещё вопрос родился.
    У меня устройства на шине RS485 последовательно подключены в следующем порядке:
    Мастер -> МВА8 -> МВА8 -> МУ110 -> МВУ8.
    При этом адреса у них назначены следующим образом:
    Мастер -> 16 -----> 8 -----> 24 ------> 40.
    То, что адреса в цепочке в разнобой (не по ранжиру) для 485 интерфейса не проблема, случайно?

  3. #3

    По умолчанию

    то что адреса в разнобой - не проблема. длина линии связи какова? задержка ответа у модулей установлена сколько? можете выложить архив проекта?

  4. #4

    По умолчанию

    Длина линий итого меньше метра(макет на столе). Проект можно посмотреть по ссылке http://yadi.sk/d/s6FfTrn5PWWcH
    Задержку выставлял разную, 1-2-3 секунды. Без каких либо успехов.
    В последнем эксперименте поставил циклический опрос четырех слейвов с трехсекундным интервалом. Задержки всем поставил по 1000мс. Результат тот же.

  5. #5

    По умолчанию

    Дальнейшие исследования показали, что на возникновение ошибок явно влияют такие параметры, как тайм-аут отклика и время между фреймами Мастера, и тайм-аут ответа для слейвов.
    Какова в точности эта зависимость экспериментально мне установить пока не удалось, но обнаружились важные грабли!
    Грабли заключаются в том, что при определённых значениях, установленных в вышеуказанных параметрах, сначала может всё заработать и уже хочется воскликнуть УРА! [и, вероятно, многие неопытные новички типа меня так поначалу и делают] ... но потом, (иногда минут через 10 - 30!!!) вдруг начинают опять валиться ошибки 16#A1 и 16#A3.
    Причём при некоторых параметрах пересброс порта .xReset даже почему то не помогает, т.е. связь со слейвом не восстанавливается! А сделаешь сброс контроллера и опять минут 10-30 всё будет работать, но с тем же исходом.
    Всё это наводит на мысли о некорректных сетевых настройках всех участников коммуникации.
    И, возможно, неоптимальности работы планировщика связи через RS485 в самом мастере.
    Отсюда вопрос - какова методика настройки параметров связи через RS-485 всего зоопарка устройств в проекте??

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

    По умолчанию

    Так может пора уйти от конфигуратора и попробовать себя в роли программиста, написать свой код пл работе с портом, по работе с модбас, создать свой планировщик когда и сколько кого опоашивать
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  7. #7

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    Так может пора уйти от конфигуратора и попробовать себя в роли программиста, написать свой код пл работе с портом, по работе с модбас, создать свой планировщик когда и сколько кого опоашивать
    ... я б в программеры ком-портов пошёл, пусть меня научат! (*покажут пример как и с чего начать*)

    ... правда сразу пришла вторая мысль - а когда выбирал платформу, думал, что основные решения уже проработаны и тебе останется только разработать прикладную часть ... Видимо, это пока не так?

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

    По умолчанию

    Ищите на форуме ключевое слово comservice и появяться у Вас примеры работы с портом,
    для простых задач конфигуратора достаточно, а с таким набором у Вас будут проблемы и в КДС2.3
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  9. #9
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,317

    По умолчанию

    Мастер -> МВА8 -> МВА8 -> МУ110 -> МВУ8...
    работу со всеми имеющимися входами/выходами
    МВА8 обе, опрос через 3.2c
    МУ110, МВУ8 - запись по изменению + запись циклическая 1-2c (по человечьи "по изменению, но не реже чем") Таймаут в конфигураторе модулей 2-3с.

  10. #10

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    МВА8 обе, опрос через 3.2c
    МУ110, МВУ8 - запись по изменению + запись циклическая 1-2c (по человечьи "по изменению, но не реже чем") Таймаут в конфигураторе модулей 2-3с.
    Спасибо за расчеты и рекомендации! А можно узнать объяснение указанных периодов?

    Со своей стороны пока что доложу - задолбавшись исследовать "связь через RS-485-9600-8-N-1 по ModBus-RTU", решил поменять что нибудь в своей жизни более кардинально (*посмотрев на форуме общение про комсервис с сислибкомом, понял, что это дело, конечно, благодарное, но не настолько я богат временем, чтобы осваивать и эту тему*).
    Взял и стал исследовать "связь через RS-485-57600-8-N-1 по ModBus-RTU"
    Как ни странно - полёт нормальный уже как пол часа! )))
    Добавлю - таймауты мастера и всех слейвов установлены на 1000 мс, время между фреймами мастера - 10мс, ответы всех модулей через 2 мс (параметр RS.dl в их конфигураторах).
    Последний раз редактировалось RadistDog; 13.05.2014 в 12:31.

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

Похожие темы

  1. Ответов: 5
    Последнее сообщение: 20.06.2018, 15:09
  2. Обмен через UDP
    от maks-tver в разделе Сетевые технологии
    Ответов: 29
    Последнее сообщение: 01.01.2015, 03:04
  3. обмен через сетевые переменные в 2.07.02
    от SergeyNG в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 23.04.2009, 22:03
  4. Обмен данными через DDE
    от Faradox в разделе Разработки
    Ответов: 0
    Последнее сообщение: 27.10.2008, 23:06
  5. Обмен по сети RS485 с прибором ОВЕНа и со своим
    от незарегистрированный в разделе Сетевые технологии
    Ответов: 1
    Последнее сообщение: 19.10.2007, 22:13

Ваши права

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