PDA

Просмотр полной версии : нужна помощь!



Sasha
05.01.2010, 10:40
суть проблемы:
есть переменная х с значением, нужно чтобы при нажатии кнопки переменная изменялась на одинаковое значение в секунду – Y значений в секунду.

пример:
х=450, Y=500 значений в секунду
нажимаем кнопку и получаем:
ноль секунд – х=450;
первая секунда – х=950;
вторая секунда – х=1450;
третья секунда – х=1950;
и так дальше по нажата кнопка, отпускаем кнопку значение х возвращается к изначальному состоянию X=450.

как реализовать такой алгоритм???

lara197a
05.01.2010, 14:00
организуйте генератор 1герц. по фронту изменяйте значения на нужную величину.

Sasha
05.01.2010, 23:33
delay : TON;

..........
IF button THEN
delay( in := TRUE, pt := T#1s );
IF delay.Q THEN
delay( in := FALSE );
fr:=fr + 500;
END_IF
ELSE
fr:=450;
delay( in := FALSE ); (* необязательно *)
END_IF

По пробивал ваш код программы , не получается чтото , делает один, шаг прибавляет одно значение за одну секунду и останавливается.

magirus
06.01.2010, 01:27
хм...
может
delay : TON;
вставляется в текст программы?
это в область объявления переменных....

F button THEN
delay( in := TRUE, pt := T#1s );
IF delay.Q THEN
delay( in := FALSE );
fr:=fr + 500;
END_IF
ELSE
fr:=450;
delay( in := FALSE ); (* необязательно *)
END_IF
сам текст....

Sasha
06.01.2010, 11:03
наверно чой-то пропустили.внимательней копируйте.

большое спасибо! одну строчку не так записал, исправил, сейчас работает.:)