И так в предыдущем посте я показал самое простое решение динамического изменения пределов для цифрового ввода.
Недостаток этого решения в том, что значения Макс и Мин на клавиатуре будут "левые". Можно ли это исправить?
Сами значения Мин и Макс у нас теперь хранятся в двух выделенных регистрах, но они в цифровом виде, а для клавиатуры нужны строки.
Т.е. придется перевести цифровые значения в коды ASCII. Возможно ли это сделать средствами панели? Да и очень просто, причем без всякой математики.
Сделаем ГМ с таким хитрым цифровым вводом. Зададим некоторые исходные данные для него.
Пусть требуется цифровой ввод в регистр PSW256.
-формат -десятичный;
-длина всего 5 знаков, 2 из них после запятой;
-верхний предел будет храниться в энергонезависимом регистре PFW256;
-нижний предел будет храниться в энергонезависимом регистре PFW257;
В дальнейшем заданные параметры можно будет менять уже в готовом ГМ.
Нам потребуются
Захват-1.png
-три стандартных цифровых ввода в регистр PSW256 для ввода в заданный регистр, PFW256 для ввода Макс предела, PFW257 для ввода Мин предела. У всех одинаковый формат, десятичное число, всего 5 знаков, 2 знака после запятой. Для перврого цифрового ввода в настройках разрешена проверка Макс и Мин значений;
-два элемента READ для чтения регистров PWF256(макс) и PFW257(мин);
-два элемента "Базовый текст". Для текста настройки совпадают с настройками дисплеев -десятичное число, всего 5 знаков, 2 знака после запятой. Размер шрифта как можно меньший.
Захват-2.png
Создание ГМ начнем с того, что сделаем у цифрового ввода внешними(Property Float) свойства:
-Input Value элементов WRITE(PSW112) и WRITE(PSW120).
-Максимальное значение и Минимальное значение элемента Range Check.
Захват-3.png
Анимация:
Для удобства последующего редактирования часть получившихся Float Property я переименовал.
Назовем данный этап Шаг 1.