Здравствуйте, имеется большое количество однотипных контроллеров, с каждого нужно считывать от 20 до 100 регистров с разными адресами (например 8354, 9001,20201 и т.д.). При считывании каждого регистра отдельно через источники\приемники время опроса очень сильно возрастает. Можно ли считывать ChGrR разом все указанные! регистры разом, по идее должно уменьшиться время опроса? Если можно то как это правильно сделать?
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
Если имеется в виду Modbus, следует учитывать, что согласно протоколу, максимальный размер пакета - 256 байт. При групповом запросе регистры считываются последовательно.
Перепрограммируйте контроллеры таким образом, чтобы необходимые данные находились в последовательных регистрах.
Ускорить опрос можно разделив опрос по потокам (TCP) или устройства по разным портам (RTU).
Posted by kashpir88 (Участник № / Member № 8429) on :
1.Перепрограммировать контроллеры не представляется возможным. 2.Каким образом выполняется разделение опроса по потокам (TCP)? В самом TraceMode? 3.Сделал групповой опрос для нескольких регистров. В источниках\приемниках создал модбас функцию для первого регистра, в ChGrR создал 12 аргументов, привязал источник к ChGrR. Запускаю профайлер проходит опрос, опрашивает все 12 регистров и взводит бит достоверности в False, больше не опрашивает их, почему так происходит?
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
2) Всего можно задать 3 групповых потока и несколько потоков «один поток – одно устройство». В справке описано в разделе: Обмен с контроллерами и УСО -> Обмен по встроенным протоколам -> Обмен по встроенным протоколам по сети Описанные ключи задаются в строке Дополнительно в источнике/приемнике модбаса через точку с запятой после адреса. Все устройства разделите на 3 части с равными объемами обмена, 1й-ничего не меняйте, 2-й - TH14, 3-ей - TH15. Выделите несколько устройств (12 шт максимум), где идет самый ответственный обмен, например, нужен быстрый отклик, и им задайте THONE.
3) Надо смотреть диагностику. Рекомендуем сделать простой тестовый проект только с этим каналом и источником. Для диагностики используйте конфигурационный файл *.cnf с ключами: DEBUGON=F0000490 DBG_INFO_TCP=ON Как создать файл описано в http://forum.adastra.ru/ultimatebb.php/ubb/get_topic/f/55/t/000001.html Во время тестирования диагностическая информация будет писаться в текстовые логи в той же папке узла проекта. Если не получится самостоятельно расшифровать, пришлите проект и папку целиком после тестирования на адрес техподдержки.
Posted by kashpir88 (Участник № / Member № 8429) on :
2. Помогло ускорить опрос в 2 раза. 3.В дебаг логе писало "отключено by errors". Увеличил время опроса и задал ключ "THONE", сейчас все отлично опрашивается.