Автор | Сообщение |
|
Отправлено: 21.08.16 09:59. Заголовок: Задание параметров из интерфейса
Добрый день! Такой вопрос - вот, например, у Analog Initialize есть его собственный параметр величины (доустим 22000d). Можно ли как-то сделать, чтобы я мог менять именно его из интерфейса? Например, я предполагаю его как уставку срабатывания - но надо чтобы пользователь мог менять его сам, без перепрограммирования? Спасибо
|
|
|
Ответов - 4
[только новые]
|
|
|
Отправлено: 21.08.16 10:09. Заголовок: Нет. А смысл? Если н..
Нет. А смысл? Если нужна аналоговая переменная с возможностью изменения ее значения силами пользователя, Analog Ramp или Analog Increment решают.
|
|
|
|
Отправлено: 21.08.16 13:42. Заголовок: marty_iron можете. ..
marty_iron можете. Напрямую параметр передать в функциональный блок нельзя, но если засунуть этот функциональный блок в модуль, и назвать один из входов, скажем Parametr_1 то в поле параметра куда его нужно передать пишется не число а #Parametr_1. Не уверен что это хорошая идея, но передать можно, проверял. Но для сохранения пользовательских настроек я бы использовал Analog RAM или работу с файлами конфигурации.
|
|
|
|
| постоянный участник
|
|
|
Отправлено: 21.08.16 13:49. Заголовок: Модуль..
Я использую подход, как в модуле по ссылке ниже: Модуль Как было указано выше, начинается все в Analog Ramp, а дальше задаются границы изменения, шаг и блок памяти настроек. После перезапусков и тд все параметры выставляются на крайние заданные автоматически.
|
|
|
|
Отправлено: 21.08.16 23:56. Заголовок: Можно небольшой SIMP..
Можно небольшой SIMPL+ модуль использовать для преобразования из TextEntry в аналоговую величину: #DEFINE_CONSTANT min_temp -30 #DEFINE_CONSTANT max_temp 85 DIGITAL_INPUT SAVE_SETPOINT; STRING_INPUT SET_POINT$; //на этот вход заводим с join$ TextEntry ANALOG_OUTPUT ANALOG_OUT; nonvolatile signed_integer ANALOG_OUT_nv; PUSH SAVE_SETPOINT { signed_integer chk; chk=ATOI(SET_POINT$); if(find("-",SET_POINT$)>0){chk=not(chk)+1;} //преобразуем в отрицательное число, если в строке найден знак "минус" if ((chk>=min_temp)&&(chk<=max_temp)) //проверяем на корректность вводимого значения { ANALOG_OUT=chk; ANALOG_OUT_nv=chk;//это же значение сохраняем в энергонезависимой памяти } } Function Main() { ANALOG_OUT=ANALOG_OUT_nv; //восстанавливаем значение из энергонезависимой памяти при запуске контроллера } Если не используются отрицательные числа, модуль будет еще проще.
|
|
|
|