This is topic Ускорить обмен по ModBus in forum TRACE MODE 7 профессиональная версия / TRACE MODE 7 professional version at Форум TRACE MODE: техническая поддержка.
Здравствуйте. У меня в проекте используется примерно под 200 ModBus контроллеров. Все идут через преобразователи из RTU в TCP (icp con tgw-735). При чтении (период пересчета в системе 500 мс) ответ приходит примерно в течении 2 минут (т.е. я что-то включил, а статус о том что включилось приходит почти через 2 минуты). Подскажите как-то можно ускорить чтение? Что дает активация параметра RTU_OVER_TCP [341.3]?
Posted by Nico (Участник № / Member № 5342) on :
- RTU_OVER_TCP - по TCPсоединению обмен идет пакетами совпадающими с ModBus RTU - где находятся преобразователи( у контроллера или у компа где TM7) ? - какой реально протокол у контроллера?
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
Узкое место - обмен между конвертером и контроллером по RS. Надо для этого места просчитать время обмена с каждым конвертером. Возможно перейти на групповые запросы, где это возможно, установить больше конвертеров, увеличить скорость. Проверить нет ли ошибок в обмене. Учитывайте, что конвертер тоже вносит задержки.
RTU_OVER_TCP [341.3] – этот флаг нужно установить при использовании конвертера «сеть – RS» (конвертора интерфейсов), а у Вас используется конвертер протоколов, он сам добавляет контрольную сумму. В этом случае ставить эту галочку не надо.
Posted by ViktorMaleika (Участник № / Member № 9669) on :
Преобразователи находятся в некоторых местах возле контроллеров, в некоторых в отдельных шкафах, куда сводятся несколько контроллеров. У контроллеров протокол ModBus RTU. Судя по всему в ТМ нет каких-то специфических настроек для опроса контроллеров, о которых я по неопытности не знаю, при этом везде где возможно использую групповые запросы. Я еще грешил на параметр RTU_OVER_TCP [341.3], но раз в моем случае он не принципиален, значит следующим шагом буду увеличивать скорость сети
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
Понятно. Преобразователи расположены около контроллеров (т.е., связь между "ПК<->Преобразователь" по TCP, а "Преобразователь<->УСО" по RS).
При наличии 200 устройств по RS, если одно (или более из них) не отвечает по какой либо причине, то все последующие устройства будут опрашиваться с задержкой (ожидание ответа от не отвечающего).
Для проверки все ли устройства отвечают, предлагаю сделать тестовый проект, в котором с каждого УСО запрашивается на чтение ОДИН сигнал (регистр). Запускаете проект и, при проверяете атрибут 4,FA у всех каналов. Если F, то проблема с данным устройством.
Если чтение проходит успешно, то добавляем еще по одному каналу записи. И последовательно производим запись. И так же контролируем значение атрибута 4, FA каждого канала записи.
Так же, 200 устройств можно разбить по разным потокам (атрибут 330 в настройках подключения устройтсва)