PDA

Просмотр полной версии : ПЛК110-60 и "ручной" энкодер



-=Vovka=-
22.10.2018, 14:04
Необходимо к ПЛК подключить такой энкодер:
39390
Возникли вопросы
1. Как его подключать к ПЛК? Средний вывод к 0, два остальных к DI1 и DI2. Подтяжка к +24В нужна? Если да, то каков номинал резисторов?
2. По поводу конфигурирования. Какой тип выбирать?
3. В программе на ST где брать значение, направление?

Newcomer
22.10.2018, 14:34
Необходимо к ПЛК подключить такой энкодер:
39390
Возникли вопросы
1. Как его подключать к ПЛК? Средний вывод к 0, два остальных к DI1 и DI2. Подтяжка к +24В нужна? Если да, то каков номинал резисторов?
2. По поводу конфигурирования. Какой тип выбирать?
3. В программе на ST где брать значение, направление?

Ты бы тип энкодера назвал, от картинки толку мало. И скорее всего на картинке не энкодер, а потенциометр.

Алексей Геннадьевич
22.10.2018, 14:36
Средний - к +24в
остальные к DI1, DI2 с подтяжкой к 0 (резистор 1-1,5ком) Желательно ещё RC цепочку на входа замутить, т.к. энкодер механический-дребезжать будет.

Алексей Геннадьевич
22.10.2018, 14:37
Ты бы тип энкодера назвал, от картинки толку мало. И скорее всего на картинке не энкодер, а потенциометр.
Энкодер это. Шатлом зовут в народе. В магнитолах ставят.

Мимоход
22.10.2018, 14:37
Средний вывод - к +24В, -24(0)В к входу SS
два остальных к DI1 и DI2

-=Vovka=-
23.10.2018, 14:10
Средний - к +24в
остальные к DI1, DI2 с подтяжкой к 0 (резистор 1-1,5ком) Желательно ещё RC цепочку на входа замутить, т.к. энкодер механический-дребезжать будет.
Этот вариант заработал!
RC цепочку энкодеру не нужна - дребезг обычно решается на программном уровне. Возможно в этом контроллере и на аппаратном уровне.

Если уменьшаю показания, то после 0 появляется число 65535. А есть какая-нибудь настройка, чтобы с 0 не перескакивала в 65535, а при уменьшении всегда был 0?
А как изменить шаг приращения значения энкодера? А то у меня он изменяет на 4 единицы
А как задать начальное значение энкодеру? Пробовал напрямую и через указатель - не работает:


pI :POINTER TO INT;
....

encod := 10; <- не меняет

pI := ADR(encod);
pI^ :=20; <- не меняет

Мимоход
23.10.2018, 15:06
Этот вариант заработал!
RC цепочку энкодеру не нужна - дребезг обычно решается на программном уровне. Возможно в этом контроллере и на аппаратном уровне.

Если уменьшаю показания, то после 0 появляется число 65535. А есть какая-нибудь настройка, чтобы с 0 не перескакивала в 65535, а при уменьшении всегда был 0?
А как изменить шаг приращения значения энкодера? А то у меня он изменяет на 4 единицы
А как задать начальное значение энкодеру? Пробовал напрямую и через указатель - не работает:


pI :POINTER TO INT;
....

encod := 10; <- не меняет

pI := ADR(encod);
pI^ :=20; <- не меняет

Если уменьшаю показания, то после 0 появляется число 65535 - потому, что 65535 это дополнительный код числа (-1)
VAR
count: INT;
END_VAR
count:= WORD_TO_INT(MyEnc);
Где MyEnc - имя для энкодера в конфигурации
39408

чтобы с 0 не перескакивала в 65535, а при уменьшении всегда был 0
отрицательные значения обрежет оператор MAX(0, count)
count:= MAX(0, WORD_TO_INT(MyEnc));

-=Vovka=-
23.10.2018, 15:34
чтобы с 0 не перескакивала в 65535, а при уменьшении всегда был 0
отрицательные значения обрежет оператор MAX(0, count)
count:= MAX(0, WORD_TO_INT(MyEnc));
В итоге что имеем: допустим крутанул я энкодер на уменьшение до 65000. переменная count равна 0 - замечательно!
Кручу на увеличение, а count все равно 0!!! И будет 0, пока не "выкручу" больше 65535 ;)
Как обнулить энкодер?

-=Vovka=-
23.10.2018, 16:12
По поводу обнуления энкодера, походу эту ошибку так и не исправили:
http://www.owen.ru/forum/showthread.php?t=6895

http://www.owen.ru/forum/showthread.php?t=11434&highlight=%E8%E7%EC%E5%ED%E8%F2%FC+%E7%ED%E0%F7%E5 %ED%E8%E5+%FD%ED%EA%EE%E4%E5%F0%E0

Трофимов Артем
23.10.2018, 16:33
сделайте по сигналу запоминание числа , где у Вас нулевая метка. а потом просто вычитайте его из актуальных данных