This is topic ModBUS_TCP: опрос по нескольким портам in forum Мониторы Реального Времени / Real Time Monitors at Форум TRACE MODE: техническая поддержка.
Здравствуйте. Можно ли заставить Trace Mode распределять запросы к одному ModBUS-Slave устройству по нескольким портам, например 502, 503, 504, 505? Можно ли предопределить, какие регистры, по каким портам будут опрашиваться? Как это сделать?
Спасибо за поддержку.
Posted by Nico (Участник № / Member № 5342) on :
-одному устройству в один момент времени один номер порта -для каких целей нужна такая специфика
Posted by Alexander_ (Участник № / Member № 7778) on :
Хочу ускорить скорость обмена по сети за счет того, что ПЛК будет параллельно вести обработку запросов по каждому порту: таким образом, количество задействуемых портов становится почти обратно пропорционально периоду полного цикла опроса.
Возиться с групповыми запросами хочется не особо. У меня тот случай, когда запрашиваемые регистры сильно рассредоточены по области памяти, причем типы хранимых данных идут вперемежку. Это, во-первых, усложняет организацию групповых запросов (в плане разработки), а во-вторых (что более важно) дает весьма скудный выигрыш по сравнению с работой по нескольким портам. К тому же, обрабатывая запросы от ТМ вручную, через контроллер, я заметил, что она сама старается оптимизировать трафик и объединяет запросы по смежным регистрам, хранящим переменные одного типа, хотя в Источниках/приёмниках по каждой переменной создан отдельный канал Modbus. Так что частично групповое чтение уже реализуется, и эффект от моего вмешательства будет того меньше.
Для чтения везде использую функцию (0х3).
Posted by Nico (Участник № / Member № 5342) on :
быстрей не будет. гораздо проще групповой запрос или по авто-группировке каналов или через CALL.ChGreq
Posted by Alexander_ (Участник № / Member № 7778) on :
Я представляю, как работает программа целевого ПЛК, и воспроизвел ее в лабораторных условиях: быстрее будет! Протокол там обрабатывается "вручную", доля загрузки ПЛК на предоставление данных ТМ пренебрежимо мала. ПЛК за один цикл по одному порту принимает (или не принимает) один и только один запрос на чтение/запись данных. Касательно чтения этот запрос может требовать от 1 до 128 регистров данных (согласно Modbus). Да, увеличение количества запрашиваемых регистров в одном пакете Modbus -- это один путь к ускорению обмена. Но группы регистров разрознены, и, кроме того, групповые запросы уже сами по себе частично реализуются ТМ. Гораздо разумней использовать то, что целевой ПЛК ведет мониторинг сетевого обмена по 5 сокетам, соответствующих 5 портам. Тогда за один цикл могут быть приняты до 5 запросов. И хотя цикл ТМ у меня много больше цикла ПЛК, недостатка в запросах от ТМ нет: переменных куча. И даже за сравнительно огромный цикл ТМ -- ПЛК не успевает отработать весь список и полностью "разгрести" буфер.
Все еще жду конструктивного ответа от техподдержки.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Такой режим Modbus-обмена в Trace Mode 6 не поддерживается.
Мы рассмотрим возможность и целесообразность введения такого режима в последующих версиях Trace Mode.