Просмотр полной версии : Контроль работы энкодера
День добрый.
Двигатель катает каретку туда-сюда. Все контролируется по энкодеру. Если энкодер отвалиться - будут неприятности.
Вопрос: Как лаконично контролировать работу энкодера ?
Энкодер опрашивается в главном цикле, прерывание не используется, 6 имп на оборот, частота маленькая. Примерно 6 - 8 циклов программы на импульс... Для опроса энкодера использую INC_DEC из OSCAT.LIB
Пропуск 5 - 10 имп - терпимо, 200 - дорогостоящий ремонт и простой.
Концевик поставить - нет технической возможности.
Как то таймер задействовать ?
PS: ПЛК110 первой версии.
Заранее благодарен.
у вас ездит туда-сюда + на пропуск не более 10 импульсов. Зная сколько от самого начала импульсов + допустимая погрешность можно контролировать положение +- на этом и строить защиту.
а, энкодер отвалился - стоп машина :)
Как контролировать положение ? Скорость каретки 10 м/сек. Между крайней точкой и тупиком - 20 метров. Оператор отвернулся и коретка влетела в шкиф.
Да и оператор не видит точно конечную точку, до нее 200 метров от него.
И да, системный таймер - вроде идеальное решение, но у меня так и не получилось его задействовать. Как только его вызываю - сразу перезапускается контроллер...
Sergey666
21.04.2021, 16:08
По таймеру отсчитывать время периода контроля движения (сэмпла) (напр. 1сек) и производить контроль, сравнивая текущее положение с предыдущим с учетом предполагаемой скорости.
Но это все ерунда, надо ставить концевик
И он по циклу будет работать постоянно или его надо перезапускать ?
Sergey666
21.04.2021, 16:51
И он по циклу будет работать постоянно или его надо перезапускать ?
Кто ОН? Если таймер -да.
Конструевина простейшая:
Ton_1s(In:=Go and(not Ton1s.Q),Pt:=t#1s);
if Ton_1s.Q then
;(* Тут проверяем изменился счетчик или нет *)
end_if;
Я считал будет сложнее. Сейчас попробую.
Благодарю.
Да, с TONом работает, но оказалось что INC_DEC до ума не реализован. Если откидываю один канал с энкодера, он продолжает считать причем на вычитание... Надо свой обработчик энкодера придумывать с контролем работоспособности обоих каналов...
Sergey666
21.04.2021, 21:29
Да, с TONом работает, но оказалось что INC_DEC до ума не реализован. Если откидываю один канал с энкодера, он продолжает считать причем на вычитание... Надо свой обработчик энкодера придумывать с контролем работоспособности обоих каналов...
Надо очень внимательно подходить к выбору библиотек oscat.
Обработчик энкодера настраивается в конфигураторе для входов 1-4. Только там счетчик 16 бит, вот его тоже выхватывать кусками и...и далее определяем уменьшение, аль увеличение или переход ч-з 65535. Тот, кто придумал на энкодер счетчик 16 бит поставить- брат Тобиаса, наверное...
Плохо что у аппаратного обработчика нельзя обнулять счетчик... Приходиться костыли делать, счетчик на счетчик... А еще интересно как он отреагирует на проподание одной фазы...
Sergey666
21.04.2021, 21:57
Плохо что у аппаратного обработчика нельзя обнулять счетчик... Приходиться костыли делать, счетчик на счетчик... А еще интересно как он отреагирует на проподание одной фазы...
Тут какое дело- по любому счетчик на счетчик лепить надо. ...При пропадании одной фазы правильный энкодер должен перестать считать...
Делать это все в чем-то кроме ST,IL,LD - убийство мозга особо извращенным способом
Завтра проверю как он реагирует на проподание фазы...
Ну да, перестает считать... Щас попробую на нем реализовать...
Powered by vBulletin® Version 4.2.3 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot