Но иногда панель МОЖЕТ формировать групповые запросы к слейву с количеством регистров больше чем 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 регистров в запросе)
и т.д.





Ответить с цитированием