PDA

Просмотр полной версии : плк 110 и ABZ-энкодер



Александр Ушаков
29.08.2012, 05:59
Уважаемые спецы, помогите разобраться с работой ABZ энкодера.
Есть несколько вопросов:
1.сколько единиц счёта на один импульс энкодера, хотелось уточнить
2.откуда считывать Z-импульс
3.нельзя-ли увеличить значение диапазона счёта
Спасибо

Safron
29.08.2012, 07:11
А как понять ABZ ??? Может быть ABS т.е. абсолютный энкодер. Или вы имеете в виду инкрементный, имеющий две фазы А и В , смещённые на 90 градусов? И выход Z, выдающий один импульс после каждого целого оборота.

Александр Ушаков
29.08.2012, 09:56
Да, фазы А,В и Z импульс

nikita
29.08.2012, 10:48
Z-сигнал - на 3 быстрый вход плк. Число импульсов на входе плк "Z-encoder" будет обнуляться каждый оборот вала энкодера.

Александр Ушаков
29.08.2012, 13:16
Это не есть хорошо.
Я расчитывал использовать его для калибровки координаты,может посоветуете что.
А про расширение диапазона счета тогда и говорить неприходится.

Александр Ушаков
29.08.2012, 13:18
Это не есть хорошо.
Я расчитывал использовать его для калибровки координаты,может посоветуете что.
А про расширение диапазона счета тогда и говорить неприходится.

nikita
29.08.2012, 15:23
Вы можете отключить z-сигнал, тогда плк будет считать до своего максимума (65000 импульсов, настраивается) и потом только обнулит это значение.
Можете организовать в программе переменную, хранящую число импульсов от энкодера, и сбрасывать её, когда нужно.

Александр Ушаков
29.08.2012, 18:11
Мне нужен импульс для калибровки,т.е.исполнительный механизм, на небольшой скорости, проходит по конечнику ; ПЛК ловит Z импульс и обнуляет координату. Простой импульс будет сбоить,ну там дребезг на конечнике и прочее.
Если организовать счет из прерываний таймера, счетчик будет обрабатывать оба фронта импульса?

Александр Ушаков
31.08.2012, 06:06
Всем доброго времени суток.
Неужели никто так мне и не поможет.
Я думаю так, что в POU, вызываемому по прерыванию,
обрабатываются "изменения" состояния "быстрых" входов ПЛК, значит по идее обрабатываться должны оба фронта.
Но у меня по неопытности есть сомнения, а нужно заказывать энкодер.
Помогите ПЛИЗ

nikita
31.08.2012, 12:47
В конфигурации обл. ввода-вывода вместо 4 быстрых входов ПЛК110 можно задать элемент Fast encoders или Fast Z-Encoder. После этого подключаете в быстрым входам энкодеры (z-энкодер) и всё.

Александр Ушаков
31.08.2012, 13:32
Уважаемый nikita, с этого я начал.
Проблемма в том, что мне нужен нулевой импульс для аттестации размерной системы,энкодер круговой z-импульс один на оборот, а оборотов будет 100.
Как выяснилось AB-Z энкодер будет обнулять значение
каждый оборот, креме того хотелось бы иметь на выходе слово из 200000 сосчитанных импульсов, так как длина 2000 мм с дискретностью 0.01 мм, апрограмныи модуль допускает только 65000.
Поэтому,как мне кажется выход только организации счета из прерываний таймера, хотя я могу и заблуждаться, есле кто нибудь подскожет другое решение буду крайне благодарен.
Пока вопрос остается преним: сколько фротов за один импульс обрабатывается вPOU из прерываний таймера.
Ps. Может неправильно ставлю вопрос тогда поправте.

nikita
31.08.2012, 14:27
Как я понял, Вам нужно обнулять значение счётчика в заданный момент, а не каждый оборот - тогда не подключайте выход z энкодера к плк. Вместо этого, заведите на 3 вход нужный Вам сигнал - от другого датчика.
Возможно, проще будет организовать в программе переменную большого размера,которая будет сохранять значение счётчика (из области ввода-вывода) независимо от аппаратного сброса. Сбрасывайте её когда захотите.

Александр Ушаков
31.08.2012, 16:07
К сожелению датчик только один, и всетаки хочется разобраться так сколько же единиц счета на импульс энкодера, неужели никто несможет разьяснить мне неразумному.

nikita
01.09.2012, 09:07
Никак не пойму вопрос. Если у Вас энкодер, к примеру, 200 имп./об., то после одного оборота вала энкодера в счётном регистре плк окажется 200 единиц.

IVM
01.09.2012, 14:29
К сожелению датчик только один, и всетаки хочется разобраться так сколько же единиц счета на импульс энкодера, неужели никто несможет разьяснить мне неразумному.
Приведите в порядок свои мысли и грамотно сформулируйте вопрос.

BETEP
01.09.2012, 21:42
Никак не пойму вопрос. Если у Вас энкодер, к примеру, 200 имп./об., то после одного оборота вала энкодера в счётном регистре плк окажется 200 единиц.

Если Александр работал с другими контроллерами, он наверняка знает что счётчик контроллера может насчитать и 200 и 400 (Дельта например) и 800 (стандарт) импульсов. И скорее всего он ещё знает что на некоторых контроллерах по Z можно сбросить не на каждом обороте, а когда захочется.

Ответте парню на вопросы, они вполне понятно сформулированы, или хотя бы отправте его в темы где это с криками обсуждалось. Я сам не смогу ответить, нет такой практики с Овеном.

Александр Ушаков
03.09.2012, 06:08
Никак не пойму вопрос. Если у Вас энкодер, к примеру, 200 имп./об., то после одного оборота вала энкодера в счётном регистре плк окажется 200 единиц.
К сожалению это не факт, например программный модуль Fast Encoder от ОВЕН считает 4 дискреты на 1 импульс, это происходит потому,что обрабатываются 2 фронта по обоим фазам (АиВ).
Если знаешь об этом заранее то выбираешь соответствующий энкодер.
При организации счета из прерываний таймера, мы обращаемся ко входу напрямую минуя область ввода-вывода ПЛК (я так понимаю,а то поправьте)обрабатывая изменения состояния входа.
Так вот я и спрашиваю, чтобы не ошибиться с выбором энкодера,сколько ед. мы получим за 1 импульс энкодера.
С уважением Александр.
РС Если кто не уверен то не отвечайте.

aserr
03.09.2012, 11:59
А не проще будет вывести полное количество оборотов плюс значение неполного оборота? Полный оборот подсчитывать по импульсу Z, а оставшуюся часть по значению из модуля "Энкодер".

Александр Ушаков
03.09.2012, 12:10
А не проще будет вывести полное количество оборотов плюс значение неполного оборота? Полный оборот подсчитывать по импульсу Z, а оставшуюся часть по значению из модуля "Энкодер".
А как минусовать z импульсы огород городить?

Александр Ушаков
04.09.2012, 06:36
Уважаемые модераторы, может быть кто нибудь из Вас ответит, сколько фронтов импульса на быстрых входах ПЛК110 обрабатываются из прерываний таймера. Уже заказаны ПЛК110-60,СП270,БП14Б и по мелочи остался в основном энкодер, но боюсь ошибиться с количеством импульсов на оборот.

Рабиндранат
04.09.2012, 15:43
Ув. Александр, предлагаю Вам не забывать о таких вещах, как:
тел: (495) 64-111-56,
Поддержка: support@owen.ru

И такой вещи, как Skype (http://www.owen.ru/text/25075419).

Пора брать инициативу в свои руки и не сидеть тут до посинения! :)

IVM
04.09.2012, 19:00
Уважаемые модераторы, может быть кто нибудь из Вас ответит, сколько фронтов импульса на быстрых входах ПЛК110 обрабатываются из прерываний таймера. Уже заказаны ПЛК110-60,СП270,БП14Б и по мелочи остался в основном энкодер, но боюсь ошибиться с количеством импульсов на оборот.
У импульса нет фронтов, а есть фронт импульса и срез импульса. Если хочешь узнать об обработке сигналов энкодера в ПЛК "ОВЕН" набери в Поиске по форуму слово энкодер. Много чего узнаешь, может, даже прослезишься. Эта тема обсуждалась многократно и бурно. Столько копий было сломано, просто жуть.

Александр Ушаков
05.09.2012, 05:49
Спасибо всем за участие, разобрался уууф.
В прерываниях из таймера отслеживается изменения состояния быстрых входов POU пользователя как в примере:
in:=SysPortIn(0);
IF (in<>last_in) THEN
t_count:=t_count+1;
Сказалось отсутствие опыта.
Тема закрыта

Виталий Андреев
17.11.2013, 02:21
В конфигурации обл. ввода-вывода вместо 4 быстрых входов ПЛК110 можно задать элемент Fast encoders или Fast Z-Encoder. После этого подключаете в быстрым входам энкодеры (z-энкодер) и всё.
Мне тоже очень актуально обеспечить 5кГц для АБ инкрементного энкодера. Как достичь ?

Виталий Андреев
17.11.2013, 02:25
Никак не пойму вопрос. Если у Вас энкодер, к примеру, 200 имп./об., то после одного оборота вала энкодера в счётном регистре плк окажется 200 единиц. вроде бы должно оказаться 200х4=800 ?

Sulfur
18.11.2013, 14:50
вроде бы должно оказаться 200х4=800 ?
Это зависит от программы обработки.
В этой:

Phase.0:=A;
Phase.1:=B;
CASE OldPhase OF
2: CASE Phase OF
3: NewEnc:=OldEnc + 1;
0: NewEnc:=OldEnc - 1;
END_CASE;
0: CASE Phase OF
2: NewEnc:=OldEnc + 1;
1: NewEnc:=OldEnc - 1;
END_CASE;
1: CASE Phase OF
0: NewEnc:=OldEnc + 1;
3: NewEnc:=OldEnc - 1;
END_CASE;
3: CASE Phase OF
1: NewEnc:=OldEnc + 1;
2: NewEnc:=OldEnc - 1;
END_CASE;
END_CASE;
OldPhase:=Phase;
OldEnc:=NewEnc;
IF Z =TRUE THEN Enc:=0; END_IF;
будет умножение разрешения энкодера на 4
В этой:

in:=SysPortIn(0);
IF in.0<>Old_in THEN
IF in.0=TRUE THEN
IF in.1=TRUE THEN
Enc:=Enc+1;
ELSE
Enc:=Enc-1;
END_IF;
END_IF;
END_IF;
Old_in:=in.0;
IF in.0=TRUE AND in.1=TRUE AND in.2=TRUE THEN Enc:=0; (*Сброс показаний энкодера*)
END_IF;
умножения не будет.
Первая версия медленная, для низкооборотистых применений, вторая быстрая. Оба алгоритма работают на реальных машинах, если что.