Главная   Downloads   Разное  
FAQ     Поиск   Регистрация   Вход 
Текущее время: Чт июн 20, 2024 07:37

Часовой пояс: UTC + 3 часа (Russia: MSK)




Начать новую тему Ответить на тему  [ 6 сообщений ] 
Автор Сообщение
 Заголовок сообщения: Подсчет импульсов от энкодера в прерываниях
СообщениеДобавлено: Пн янв 23, 2012 15:47 
Не в сети

Регистрация: Пн ноя 14, 2011 13:21
Сообщения: 7
Возможно ли подсчитать импульсы от энкодера в прерываниях по времени и определить нулевую скорость? Какую длительность прерывания при этом нужно установить? ПЛК - СР1Е-N30DR-D.


В начало
 Профиль  
 
 Заголовок сообщения: Re: Подсчет импульсов от энкодера в прерываниях
СообщениеДобавлено: Пн янв 23, 2012 18:31 
Не в сети
Site Admin
Аватара пользователя

Регистрация: Вт сен 19, 2006 21:13
Сообщения: 3526
Откуда: Москва
При чём тут прерывания, сравнивайте текущее значение счётчика с значением в прошлом цикле, если значение не меняется (равно прошлому циклу) некоторое время, значит энкодер не крутится.


В начало
 Профиль  
 
 Заголовок сообщения: Re: Подсчет импульсов от энкодера в прерываниях
СообщениеДобавлено: Вт янв 24, 2012 08:12 
Не в сети

Регистрация: Пн ноя 14, 2011 13:21
Сообщения: 7
Что даст подсчет импульсов энкодера в прерываниях по времени (даст ли какие преимущества по сравнению с определением нулевой скорости в теле программы)? Scheduled interrupt interval =0,1ms, Interrupt sourse=4, время прерываний &100. Подсчет импульсов энкодера идет в теле прерываний. Определение нулевой скорости тоже в теле прерываний.


В начало
 Профиль  
 
 Заголовок сообщения: Re: Подсчет импульсов от энкодера в прерываниях
СообщениеДобавлено: Вт янв 24, 2012 08:46 
Не в сети
Site Admin
Аватара пользователя

Регистрация: Вт сен 19, 2006 21:13
Сообщения: 3526
Откуда: Москва
Вы случайно не на овене начинали? наверно только там такие выкрутасы со счётом в прерывании по таймеру.

счётчик контроллера отлично считает сам по себе без дополнительных усилий с нашей стороны. и можно получить данные счёта в области памяти A270 DINT на начало цикла программы, или можно немедленно считать свежинькие функцией PRV.

для определения скорости в любом случае нужно время, от этого никуда не дется.
определить то что энкодер не крутится очень просто.


У вас нет необходимых прав для просмотра вложений в этом сообщении.


В начало
 Профиль  
 
 Заголовок сообщения: Re: Подсчет импульсов от энкодера в прерываниях
СообщениеДобавлено: Вт янв 24, 2012 09:06 
Не в сети

Регистрация: Вт окт 18, 2011 11:26
Сообщения: 37
Так вот тут в качестве таймера и используется прерывание 0,1ms. В программе по условию демаскируем прерывание, в прерывании пишем: -L|Значение счетчика|А270|Разница|; в конце проги |MOVL|A270|Значение счетчика. Разница - это скорость движения счетчика. Как я думаю здесь прерывание будет опрашиваться через 0,1ms (или другую, какую в настройках поставишь), т.е. будет работать вместо таймера.
Мы хотим уменьшить время цикла программы и если использовать прерывание надеемся что оно сократится.


В начало
 Профиль  
 
 Заголовок сообщения: Re: Подсчет импульсов от энкодера в прерываниях
СообщениеДобавлено: Вт янв 24, 2012 11:00 
Не в сети
Site Admin
Аватара пользователя

Регистрация: Вт сен 19, 2006 21:13
Сообщения: 3526
Откуда: Москва
прерывание по таймеру увеличит а не сократит общее время цикла контроллера. Вы просто пытаетесь запустить критичную по времени задачу независимо от цикла контроллера, в вашем случае пожалуй нет смысла, прерывание можно вызвать по значению счётчика. скорость считать одной командой.

для оптимизации времени цикла разбейте всю прогу на подпрограммы и включайте только те подпрограммы которые нужны в данный момент.
если не получается и время цикла многовато для точного определения нужного значения счётчика, как я понял для остановки, используйте прерывание по счётчику, в нём включайте, выключайте нужный выход с немедленной регенерацией. в этом случае у вас будет постоянная и почти стабильная задержка (кажется в сотню мкс) между заданным значением счётчика и отработкой выхода

ну а после остановки спокойно посмотрите в цикле, перестал энкодер крутится или нет.

если вам ещё нужна скорость с которой энкодер крутится, просто считайте частоту со счётчика, у этого контроллера эта фича только для счётчика 0, считать можно с помощью PRV, если не путаю.

что за задачка то? может под неё уже есть решения?


В начало
 Профиль  
 
Показать сообщения за:  Сортировка  
Начать новую тему Ответить на тему  [ 6 сообщений ] 

Часовой пояс: UTC + 3 часа (Russia: MSK)


Кто сейчас на конференции

Сейчас этот форум просматривают: в настоящее время на конференции нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Переход:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская документация по phpBB 3