PDA

Просмотр полной версии : Контроль работы энкодера



B.S.V
21.04.2021, 15:09
День добрый.
Двигатель катает каретку туда-сюда. Все контролируется по энкодеру. Если энкодер отвалиться - будут неприятности.
Вопрос: Как лаконично контролировать работу энкодера ?
Энкодер опрашивается в главном цикле, прерывание не используется, 6 имп на оборот, частота маленькая. Примерно 6 - 8 циклов программы на импульс... Для опроса энкодера использую INC_DEC из OSCAT.LIB
Пропуск 5 - 10 имп - терпимо, 200 - дорогостоящий ремонт и простой.
Концевик поставить - нет технической возможности.
Как то таймер задействовать ?

PS: ПЛК110 первой версии.

Заранее благодарен.

melky
21.04.2021, 15:24
у вас ездит туда-сюда + на пропуск не более 10 импульсов. Зная сколько от самого начала импульсов + допустимая погрешность можно контролировать положение +- на этом и строить защиту.

а, энкодер отвалился - стоп машина :)

B.S.V
21.04.2021, 15:39
Как контролировать положение ? Скорость каретки 10 м/сек. Между крайней точкой и тупиком - 20 метров. Оператор отвернулся и коретка влетела в шкиф.
Да и оператор не видит точно конечную точку, до нее 200 метров от него.

И да, системный таймер - вроде идеальное решение, но у меня так и не получилось его задействовать. Как только его вызываю - сразу перезапускается контроллер...

Sergey666
21.04.2021, 16:08
По таймеру отсчитывать время периода контроля движения (сэмпла) (напр. 1сек) и производить контроль, сравнивая текущее положение с предыдущим с учетом предполагаемой скорости.
Но это все ерунда, надо ставить концевик

B.S.V
21.04.2021, 16:13
И он по циклу будет работать постоянно или его надо перезапускать ?

Sergey666
21.04.2021, 16:51
И он по циклу будет работать постоянно или его надо перезапускать ?

Кто ОН? Если таймер -да.

Конструевина простейшая:

Ton_1s(In:=Go and(not Ton1s.Q),Pt:=t#1s);

if Ton_1s.Q then
;(* Тут проверяем изменился счетчик или нет *)
end_if;

B.S.V
21.04.2021, 16:59
Я считал будет сложнее. Сейчас попробую.
Благодарю.

B.S.V
21.04.2021, 20:14
Да, с TONом работает, но оказалось что INC_DEC до ума не реализован. Если откидываю один канал с энкодера, он продолжает считать причем на вычитание... Надо свой обработчик энкодера придумывать с контролем работоспособности обоих каналов...

Sergey666
21.04.2021, 21:29
Да, с TONом работает, но оказалось что INC_DEC до ума не реализован. Если откидываю один канал с энкодера, он продолжает считать причем на вычитание... Надо свой обработчик энкодера придумывать с контролем работоспособности обоих каналов...

Надо очень внимательно подходить к выбору библиотек oscat.
Обработчик энкодера настраивается в конфигураторе для входов 1-4. Только там счетчик 16 бит, вот его тоже выхватывать кусками и...и далее определяем уменьшение, аль увеличение или переход ч-з 65535. Тот, кто придумал на энкодер счетчик 16 бит поставить- брат Тобиаса, наверное...

B.S.V
21.04.2021, 21:41
Плохо что у аппаратного обработчика нельзя обнулять счетчик... Приходиться костыли делать, счетчик на счетчик... А еще интересно как он отреагирует на проподание одной фазы...

Sergey666
21.04.2021, 21:57
Плохо что у аппаратного обработчика нельзя обнулять счетчик... Приходиться костыли делать, счетчик на счетчик... А еще интересно как он отреагирует на проподание одной фазы...

Тут какое дело- по любому счетчик на счетчик лепить надо. ...При пропадании одной фазы правильный энкодер должен перестать считать...
Делать это все в чем-то кроме ST,IL,LD - убийство мозга особо извращенным способом

B.S.V
21.04.2021, 22:10
Завтра проверю как он реагирует на проподание фазы...

B.S.V
22.04.2021, 11:33
Ну да, перестает считать... Щас попробую на нем реализовать...