Можно. Если не забывать, что соответствующий ему тип данных занимает вдвое больше пространства, чем целочисленный. В каких-то проектах на ПЛК с лицензией L (лимит 360 байт на ввод-вывод - оставим за рамками причины, по которым в каждом частном случае оказалось невозможно заменить ПЛК на "безлимитный") этот перерасход может оказаться критичным.можно честно сделать параметр флоат
По части того, как Float поступает с положением десятичной точки - не пробовал использовать его на практике. Но вроде бы, если эту галочку поставить, то поля форматирования остаются активными - т.е. должно подчиняться заданному положению точки...
Ну, полагаю, примерно так.а дальше? юзер нажимает кнопку работы с параметрами, и...?
Мы неким образом (неважно каким, через построенные в проекте панели экранные меню/кнопки/поля ввода) выбрали условный порядковый номер параметра для редактирования. И записали его в специально отведенный регистр.
ПЛК читает этот регистр. Его ответные действия по ненулевому значению регистра: заслать порядковые номера строк динамического текста для этой формы в другие (отведенные вами для этой цели) регистры и установить в регистре "Авт.смена экрана" номер экрана, содержащего подходящую для этого параметра форму ввода. Откуда он эти номера строк и прочие "атрибуты" возьмет - ваше дело. Можете CASE использовать, или выбор констант из массивов, как вам будет угодно и удобно.
Панель переходит на заданный в "Авт.смене" экран и заполняет текстовые поля в нем "динамическим текстом", дорисовывая окончательный вид формы. ПЛК в это время дожидается, пока регистр "Текущий экран" не будет равен "Авт. смене", после чего пишет в "Авт. смену" ноль (команда перехода на заданный экран выполнена, и незачем принудительно удерживать панель на этом экране).
Юзер выполняет ввод новых уставок, штатными средствами панели. ПЛК читает их из регистров (т.е. полей ввода формы) и переписывает во внутренние переменные программы, ориентируясь на номер параметра, который использовался выше.
Далее юзер жмет кнопку ESC и вываливается на предыдущий уровень (откуда он попал в форму редактирования). ПЛК по изменившемуся номеру "Текущего экрана" обнаруживает это событие и записывает в регистр с номером редактируемого параметра ноль (точнее говоря, значение, имеющее смысл "ни хрена пока что не выбрано"). Или, если надо, может принудительно инициировать переход панели на какой-то иной экран (механизм описан выше).
В принципе, все. Сейчас можно выбрать параметр с другим порядковым номером и повторить процесс.
Обращаю внимание, что это все "черновик", предназначенный для общего понимания, и отнюдь не оптимизированный. Наверняка, чуть подумав, многие места можно сделать красивее. Мне просто сейчас думать лень.
Полностью согласен с Валенок, что при большом количестве редактируемых параметров это самый экономный способ по ресурсам как области ввода-вывода, так и памяти, занимаемой проектом в панели...
PLC_Configuration_OWEN.pdf, страница 7 (сколько занимает тот или иной тип данных) и 50..52 (как они располагаются в области ввода-вывода). На 52-й странице полезная картинка, иллюстрирующая все это. Обращайте внимание на выравнивание переменных при расчете их адресов - при желании можно сгруппировать регистры так, чтобы обойтись без "дыр", используемых на выравнивание. Например, не раскидывать четыре 8-битных регистра в живописном беспорядке среди регистров REAL (или WORD), а собрать их рядышком.Создаю таблицу регистров и не понимаю, как они реально сохраняются, сколько места занимают.





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