Показать сообщение отдельно
Старый 18.06.2014, 16:43   #6
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 085
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: Плавное переключение

Цитата:
Сообщение от viper Посмотреть сообщение
Скорость ЕС двигателю задается через AOUT. В меню две уставки первая и вторая скорость. DIN пеключает их.
Ваша задача чисто математическая и никак не связана с языком программирования контроллера.

Вычисляете дельту между скоростями, далее делите эту дельту на время смены скорости, получив шаг изменения скорости.

Когда придёт сигнал смены скорости, запускаете отсчёт времени. Отсчитанное время умножаете на шаг изменения скорости и добавляете полученное значение к исходной скорости. Либо вычитаете, если скорость нужно снижать.

Полностью отсчитанное время будет давать исходную скорость + дельту. Ну или исходную - дельту, если была игра на понижение.

Из особенностей, считать нужно в рилах. В интах ошибки будут чудовищны.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием