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

Тема: восстановление связи по modbus СПК107

  1. #11
    Пользователь Аватар для Ефремов Николай
    Регистрация
    08.02.2008
    Адрес
    Кемерово
    Сообщений
    122

    По умолчанию

    Не совсем понял, что Вы не поняли поэтому объясняю как я понял работу Модбас-Мастера:Модбас-Мастер посылает запрос слейву с определенным адресом и ждет ответа, слэйв выдерживает паузу( в это время выполняет команду) и посылает ответ, что все в порядке и он выполнил команду или произошла какая-то ошибка. Если же Ваш Модбас-Мастер начинает слать команды всем подряд без перерыва, то скорее всего в памяти у него остался последний адрес слэйва, а ответ он принимает от другого слэйва выдержавшего паузу- поэтому Вы и получаете RESPONS_WRONG_SLAVE или WRONG CRC если отвечает тот же слэйв, но на старый запрос. Я назвал бы это эффектом пьяной компании- когда за столом все говорят, каждый о своем, но ничего понять не могут, так как разобрать слов в общем гаме невозможно.
    Поэтому, постарайтесь разделить запросы мастера (и на чтение и на запись) в разные рабочие циклы Вашей программы, уменьшите время задержки ответа слэйва в соответствие со скоростью обмена в Вашей сети и т.д.
    В соседней ветке речь идет о том же - прочитайте.http://www.owen.ru/forum/showthread....l=1#post157118
    Желаю успехов.
    Последний раз редактировалось Ефремов Николай; 02.01.2015 в 11:19.

  2. #12
    Пользователь
    Регистрация
    09.09.2011
    Адрес
    Ростовская обл.
    Сообщений
    138

    По умолчанию

    [QUOTE=Ефремов Николай;157622
    Поэтому, постарайтесь разделить запросы мастера (и на чтение и на запись) в разные рабочие циклы Вашей программы, .[/QUOTE]

    Как разделить в разные рабочие циклы? в конфигураторе что надо для этого сделать?..
    И совсем чайниковский вопрос: что есть рабочий цикл?
    В каждом канале Модбас слейва я устанавливаю своё время цикла. Например для МК110 в 0 канале на чтение 500мс, а в 1-м канале на запись тоже 500мс, время "таймаут ответа 50мс". Значит раз в 500мс мастер должен прочитать регистр подождав 50мс если надо, затем сделать запись регистра, а затем 50мс. ждать ответа с результатом записи. Получив ответ или через 50мс переходит к другим устройствам.
    Что тут можно улучшить? Если устройства "правильные" (а не выдают ответ с очень большой задержкой) всё должно работать без ошибок вообще. Может вообще для чтения и записи физически одного устройства имеет смысл создавать разные модбас слейвы? Не будет ли это совсем параноей?
    Когда спрашивают у меня каков у вас процент ошибок? я во-первых не заю где этот процент посмотреть, а во-вторых думаю почему эти ошибки вообще должны быть? (расстояние всего 150м и скорость 19.2)
    Последний раз редактировалось RomAl; 02.01.2015 в 12:37.

  3. #13
    Пользователь
    Регистрация
    10.04.2010
    Адрес
    Алтайский край,г.Рубцовск
    Сообщений
    963

    По умолчанию

    А время цикла менять пробовали, я так Модбас на СПК110 одолел

  4. #14

    По умолчанию

    Всех с Новым Годом!
    Спасибо за советы, но пока ничего не помогло продвинуться к нужному результату.
    - Перезапуск по .xRESET не помогает.
    - Увеличение времени цикла не помогает.
    - разделение запроса данных и передачи команд в разные циклы main_task (сделал принудительный запуск передачи) - не помогает.
    Вернусь немного назад:устройств в канале только 2 (мастер и слейв), все дело в том, что если slave готов к работе и мастер начинает обмен - то все очень даже отлично работает, а вот когда slave на некоторое время отключается, (и естественно возникают ошибки тайм аута), а затем slave снова включается то при записи данных в регистры slavе-а СПК выдает ошибку (или ошибку CRC или просто RESPONS_WRONG_SLAVE) , при этом команда чтения проходит безошибочно.
    Независимый тестер RS485 показывает, что информация в канале, в случае когда все работает и когда СПК дает ошибку АБСОЛЮТНО одинаковая.
    Еще есть ощущение, что тайм-ауты и время циклов тут не причем.
    Сам с этой техникой (СПК, ПЛК) работаю первый год, во многих вопросах плаваю, однако стаж в электронике, электротехнике уже более 20 лет, просто нужен дельный совет.

  5. #15
    Пользователь
    Регистрация
    09.09.2011
    Адрес
    Ростовская обл.
    Сообщений
    138

    По умолчанию

    Под воздействиием предыдущих постов решил проверить запись по Модбасу
    с использованием конфигуратора. Кодесис 3.5.5.0, панель СПК107. Под рукой только ТРМ138. И вот какие чудеса я обнаружил:
    Записывал уставку в 1-й канал ТРМ138, регистр 0х0011 и смотрел как она меняется.
    Паралельно читал все каналы командой 4 (с 3 аналогично).
    Начал записывать командой 16, но от неё всё поломалось и не работало даже чтение и даже
    не работало чтение на других учтройствах.. В паспорте указана команда 6 для записи и пусть бы запись по 16 не работала, но причём тут чтение?
    Затем проверил запись командой 6. В этом случае всё вроде бы работало и записывалось и читало.
    Но.. читало-то штатно согласно времени цикла (пробовал 1 и 3 сек), а вот запись проходила только через 30-60сек независимо от времени цикла, таймаута и времени между фреймами. Даже когда
    оставил только одно устройство и один канал на запись ничего не изменилось..
    PS. Пооже, что дело не в том что слишком "медленно" записывается параметр, а в том что отображаемое значение уставки после перезаписи на ТРМ138 обновляется только через 30-60 секунд ..странно конечно, но тем не менее сама запись идёт вроде нормально
    Последний раз редактировалось RomAl; 07.01.2015 в 18:18.

  6. #16
    Пользователь Аватар для Ефремов Николай
    Регистрация
    08.02.2008
    Адрес
    Кемерово
    Сообщений
    122

    По умолчанию

    Цитата Сообщение от RomAl Посмотреть сообщение
    Как разделить в разные рабочие циклы? в конфигураторе что надо для этого сделать?..
    И совсем чайниковский вопрос: что есть рабочий цикл?
    В каждом канале Модбас слейва я устанавливаю своё время цикла. Например для МК110 в 0 канале на чтение 500мс, а в 1-м канале на запись тоже 500мс, время "таймаут ответа 50мс". Значит раз в 500мс мастер должен прочитать регистр подождав 50мс если надо, затем сделать запись регистра, а затем 50мс. ждать ответа с результатом записи. Получив ответ или через 50мс переходит к другим устройствам.
    Что тут можно улучшить? Если устройства "правильные" (а не выдают ответ с очень большой задержкой) всё должно работать без ошибок вообще. Может вообще для чтения и записи физически одного устройства имеет смысл создавать разные модбас слейвы? Не будет ли это совсем параноей?
    Когда спрашивают у меня каков у вас процент ошибок? я во-первых не заю где этот процент посмотреть, а во-вторых думаю почему эти ошибки вообще должны быть? (расстояние всего 150м и скорость 19.2)
    Рабочий цикл в моём понимании - это время за которое ПЛК или СПК выполняет все задания, которые Вы задали в своей программе ( в зависимости от Вашего творчества это примеро от 1мс до 100 мс). Если у слэйва 10 каналов (например 8 чтение и 2 запись), то это означает, что Мастер обратится 10 раз к одному и тому же слэйву. Если Вы не разделите эти запросы, установив какой-нибудь селектор запросов от Мастера, то в результате получите только пьяный галдёж на RS-485.

  7. #17

    По умолчанию

    Аналогично столкнулся с подобной проблемой. СПК107 по RS485 Modbus производит опрос МВ110. КАртина такая: светодиод RS485 на МВ110 как добросовестно мигает, в CDS3.5 в дереве устройств показывает что связь есть, там же во вкладке МодбасСлэйв (ModbusGenericSerialSlaveIEC) переменные связи xDoInit, xInitDone = TRUE, xDone, xBusy попеременно мигают. ОДНАКО, соотнесенные переменные к каналу Модбас не меняются. Вытаскиваю провода из пинов - все перечисленное перестают подавать признаки жизни, вставляю назад возвращается... Дело было не в бобине... В настройках соотнесения канала связи и переменных проекта внизу справа необходимо выставить настройку обновления тэгов = 2. и о чудо...Причина необновления данных RS485.PNG

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

Похожие темы

  1. Потеря связи по Modbus
    от Deoxes в разделе СПК1хх
    Ответов: 18
    Последнее сообщение: 29.10.2014, 14:19
  2. Пропадание связи по ModBus
    от Лузин Владимир в разделе ПЛК1хх
    Ответов: 11
    Последнее сообщение: 06.03.2014, 12:44
  3. [ПЛК] Наличие связи по Modbus
    от Frayl в разделе ПЛК1хх
    Ответов: 8
    Последнее сообщение: 16.10.2012, 16:54
  4. МДВВ нет связи по MODBUS
    от serega_nf в разделе Сетевые технологии
    Ответов: 14
    Последнее сообщение: 23.10.2011, 10:35
  5. проблемы связи по Modbus
    от IvanM в разделе Панели оператора (HMI)
    Ответов: 38
    Последнее сообщение: 14.12.2010, 14:16

Ваши права

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