Просмотр полной версии : плк 110 и ABZ-энкодер
Александр Ушаков
29.08.2012, 05:59
Уважаемые спецы, помогите разобраться с работой ABZ энкодера.
Есть несколько вопросов:
1.сколько единиц счёта на один импульс энкодера, хотелось уточнить
2.откуда считывать Z-импульс
3.нельзя-ли увеличить значение диапазона счёта
Спасибо
А как понять ABZ ??? Может быть ABS т.е. абсолютный энкодер. Или вы имеете в виду инкрементный, имеющий две фазы А и В , смещённые на 90 градусов? И выход Z, выдающий один импульс после каждого целого оборота.
Александр Ушаков
29.08.2012, 09:56
Да, фазы А,В и Z импульс
Z-сигнал - на 3 быстрый вход плк. Число импульсов на входе плк "Z-encoder" будет обнуляться каждый оборот вала энкодера.
Александр Ушаков
29.08.2012, 13:16
Это не есть хорошо.
Я расчитывал использовать его для калибровки координаты,может посоветуете что.
А про расширение диапазона счета тогда и говорить неприходится.
Александр Ушаков
29.08.2012, 13:18
Это не есть хорошо.
Я расчитывал использовать его для калибровки координаты,может посоветуете что.
А про расширение диапазона счета тогда и говорить неприходится.
Вы можете отключить z-сигнал, тогда плк будет считать до своего максимума (65000 импульсов, настраивается) и потом только обнулит это значение.
Можете организовать в программе переменную, хранящую число импульсов от энкодера, и сбрасывать её, когда нужно.
Александр Ушаков
29.08.2012, 18:11
Мне нужен импульс для калибровки,т.е.исполнительный механизм, на небольшой скорости, проходит по конечнику ; ПЛК ловит Z импульс и обнуляет координату. Простой импульс будет сбоить,ну там дребезг на конечнике и прочее.
Если организовать счет из прерываний таймера, счетчик будет обрабатывать оба фронта импульса?
Александр Ушаков
31.08.2012, 06:06
Всем доброго времени суток.
Неужели никто так мне и не поможет.
Я думаю так, что в POU, вызываемому по прерыванию,
обрабатываются "изменения" состояния "быстрых" входов ПЛК, значит по идее обрабатываться должны оба фронта.
Но у меня по неопытности есть сомнения, а нужно заказывать энкодер.
Помогите ПЛИЗ
В конфигурации обл. ввода-вывода вместо 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. Может неправильно ставлю вопрос тогда поправте.
Как я понял, Вам нужно обнулять значение счётчика в заданный момент, а не каждый оборот - тогда не подключайте выход z энкодера к плк. Вместо этого, заведите на 3 вход нужный Вам сигнал - от другого датчика.
Возможно, проще будет организовать в программе переменную большого размера,которая будет сохранять значение счётчика (из области ввода-вывода) независимо от аппаратного сброса. Сбрасывайте её когда захотите.
Александр Ушаков
31.08.2012, 16:07
К сожелению датчик только один, и всетаки хочется разобраться так сколько же единиц счета на импульс энкодера, неужели никто несможет разьяснить мне неразумному.
Никак не пойму вопрос. Если у Вас энкодер, к примеру, 200 имп./об., то после одного оборота вала энкодера в счётном регистре плк окажется 200 единиц.
К сожелению датчик только один, и всетаки хочется разобраться так сколько же единиц счета на импульс энкодера, неужели никто несможет разьяснить мне неразумному.
Приведите в порядок свои мысли и грамотно сформулируйте вопрос.
Никак не пойму вопрос. Если у Вас энкодер, к примеру, 200 имп./об., то после одного оборота вала энкодера в счётном регистре плк окажется 200 единиц.
Если Александр работал с другими контроллерами, он наверняка знает что счётчик контроллера может насчитать и 200 и 400 (Дельта например) и 800 (стандарт) импульсов. И скорее всего он ещё знает что на некоторых контроллерах по Z можно сбросить не на каждом обороте, а когда захочется.
Ответте парню на вопросы, они вполне понятно сформулированы, или хотя бы отправте его в темы где это с криками обсуждалось. Я сам не смогу ответить, нет такой практики с Овеном.
Александр Ушаков
03.09.2012, 06:08
Никак не пойму вопрос. Если у Вас энкодер, к примеру, 200 имп./об., то после одного оборота вала энкодера в счётном регистре плк окажется 200 единиц.
К сожалению это не факт, например программный модуль Fast Encoder от ОВЕН считает 4 дискреты на 1 импульс, это происходит потому,что обрабатываются 2 фронта по обоим фазам (АиВ).
Если знаешь об этом заранее то выбираешь соответствующий энкодер.
При организации счета из прерываний таймера, мы обращаемся ко входу напрямую минуя область ввода-вывода ПЛК (я так понимаю,а то поправьте)обрабатывая изменения состояния входа.
Так вот я и спрашиваю, чтобы не ошибиться с выбором энкодера,сколько ед. мы получим за 1 импульс энкодера.
С уважением Александр.
РС Если кто не уверен то не отвечайте.
А не проще будет вывести полное количество оборотов плюс значение неполного оборота? Полный оборот подсчитывать по импульсу 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).
Пора брать инициативу в свои руки и не сидеть тут до посинения! :)
Уважаемые модераторы, может быть кто нибудь из Вас ответит, сколько фронтов импульса на быстрых входах ПЛК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 ?
вроде бы должно оказаться 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;
умножения не будет.
Первая версия медленная, для низкооборотистых применений, вторая быстрая. Оба алгоритма работают на реальных машинах, если что.
Powered by vBulletin® Version 4.2.3 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot