On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение



ссылка на сообщение  Отправлено: 21.08.16 09:59. Заголовок: Задание параметров из интерфейса


Добрый день!
Такой вопрос - вот, например, у Analog Initialize есть его собственный параметр величины (доустим 22000d). Можно ли как-то сделать, чтобы я мог менять именно его из интерфейса?
Например, я предполагаю его как уставку срабатывания - но надо чтобы пользователь мог менять его сам, без перепрограммирования?
Спасибо

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 4 [только новые]







ссылка на сообщение  Отправлено: 21.08.16 10:09. Заголовок: Нет. А смысл? Если н..


Нет. А смысл? Если нужна аналоговая переменная с возможностью изменения ее значения силами пользователя, Analog Ramp или Analog Increment решают.

Спасибо: 1 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 21.08.16 13:42. Заголовок: marty_iron можете. ..


marty_iron можете.

Напрямую параметр передать в функциональный блок нельзя, но если засунуть этот функциональный блок в модуль, и назвать один из входов, скажем Parametr_1 то в поле параметра куда его нужно передать пишется не число а #Parametr_1.

Не уверен что это хорошая идея, но передать можно, проверял.

Но для сохранения пользовательских настроек я бы использовал Analog RAM или работу с файлами конфигурации.

Спасибо: 1 
ПрофильЦитата Ответить
постоянный участник




ссылка на сообщение  Отправлено: 21.08.16 13:49. Заголовок: Модуль..


Я использую подход, как в модуле по ссылке ниже:

Модуль

Как было указано выше, начинается все в Analog Ramp, а дальше задаются границы изменения, шаг и блок памяти настроек.
После перезапусков и тд все параметры выставляются на крайние заданные автоматически.

Спасибо: 1 
ПрофильЦитата Ответить





ссылка на сообщение  Отправлено: 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; //восстанавливаем значение из энергонезависимой памяти при запуске контроллера
}

Если не используются отрицательные числа, модуль будет еще проще.


+79161734005 Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 72
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет