Не может.
(Из технического описания): Панель автоматически формирует групповые запросы к slave-устройствам. Если в
групповой запрос входит номер регистра, который отсутствует в slave-устройстве (что характерно
для устройств с «рваными» или формируемыми пользователем картами регистров), то в ответ
вместо данных приходит сообщение с кодом ошибки. Максимальное число опрашиваемых
регистров в одном групповом запросе – 16.
В моем случае были рванные регистры. Перелопатил все карты регистров, проблема ушла но вопросы остались.
Выстроил на экране все в ряд и получил новую проблему. Данные DWORD перестали отображаться. При подсчете выяснилось, что крайний регистр оказывается 17-ым, соответственно при опросе дробится элемент DWORD и рушит весь опрос. Пришлось сделать отмену группового опроса (Из технического описания): Во время опроса регистров (3x и 4x) панель создает групповые запросы, если разрыв между
опрашиваемыми регистрами не превышает 4. Иными словами, регистры 4x0 и 4x5 будут считаны
одним групповым запросом (6 регистров с 4x0), а 4x0 и 4x6 – двумя одиночными.
Чтобы отключить автоформирование групповых запросов следует в настройках каждого из
элементов, участвующих в опросе, поставить галочку Дин. адр. и указать регистр, который не
используется панелью (т. е. его значение всегда равно 0).
После этих манипуляций все заработало, но танцы с бубном еще те.
Решил описать ситуацию, может кому пригодится.
Но иногда панель МОЖЕТ формировать групповые запросы к слейву с количеством регистров больше чем 16.
Это тот случай, когда на экране есть таблица
Таблицы в группировке с другими элементами экрана не участвуют. Для таблиц всегда будут свои групповые(если столбцов несколько) или одиночные(если только один столбец) запросы к слейву.
Таблица представлена массивом структур.
Формат структуры и количество регистров в ней определяется количество столбцов и типом данных в каждом столбце.
Таблицы читаются построчно. Причем второе правило "максимальное число регистров в групповой команде чтения не может превышать 16" на таблицы не распространяется, в одной группе будет столько регистров, сколько нужно для одной строки, хоть 125!
Запросы на чтение строк разнесены по разным циклам выполнения программы.
В каждом цикле читаются все регистры только одной строки
Например
Дисплей и таблица 1 столбец 3 строки
Захват-1.png Захват-2.png
1. чтение 4х0 (дисплей)
2. чтение 4х2 (первая строка таблицы)
3. чтение 4х0 (дисплей)
4. чтение 4х3 (вторая строка таблицы)
5. чтение 4х0 (дисплей)
6. чтение 4х4 (третья строка таблицы)
и т.д.
Дисплей и таблица 10 столбцов DWORD 3 строки
Захват-6.png
1. чтение 4х0 (дисплей)
2. чтение группы 4х2, 4х3...4х21 (первая строка таблицы 20 регистров в запросе)
3. чтение 4х0 (дисплей)
4. чтение группы 4х22, 4х23...4х41 (вторая строка таблицы 20 регистров в запросе)
5. чтение 4х0 (дисплей)
6. чтение группы 4х42, 4х43...4х61 (третья строка таблицы 20 регистров в запросе)
и т.д.
Последний раз редактировалось petera; 03.04.2025 в 11:11.
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Мой канал на РУТУБЕ
https://rutube.ru/channel/23641433/
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg