Глядя на таблицу
Вложение 86919
становится понятно, что задачу можно решить элементарно, в два действия, без макросов Си и без ГМ.
Вложение 86929
Нужно разместить таблицу в последовательных регистрах панели, например с PFW300 по PFW599, только в порядке увеличения уровня - от 1 до 300 см.
Действие первое
Если выполнить целочисленное деление значения уровня в мм, полученное из ПДУ, на 10, то получим номер строки в таблице, где находится искомое значение объема.
Номер строки будем хранить в индексном регистре PSW40. Это делает ф.область
Вложение 86921 Вложение 86922
маленькая хитрость. Чтобы эмулятор выполнил целочисленное деление, без округлениЯ результата, нужно делить на константу в формате Float. Как бы не казалось это странным.
Действие второе
Номер ячейки таблицы ( номер регистра PFW300..599) получим с помощью динамической адресации, прямо в цифровом дисплее.
Номер ячейки (номер регистра) = базовый адрес (начало таблицы) + индекс * коэфф., где коэфф. нужен равным 1
или PFW[300 + PSW40 * 1]
Вложение 86923 Вложение 86924
Как загрузить таблицу в панель.
1. Можно в проекте заполнить начальные значения нужной области PFW
Файл-->Создание рецептов
Вложение 86925
После этого таблица будет сразу в панели при загрузке проекта
2. Можно импортировать таблицу из файла, как в моем примере
Вложение 86926 Вложение 86927 Вложение 86928
------------------------------------------------------------------------------------
проект + файл csv с таблицей прилагаю
ЗЫ.
Для имитации датчика уровня используются два ГМ из моей библиотеки - авто декремент и авто инкремент.
Вложение 86931 Вложение 86932