
Сообщение от
krollcbas
Энкодер (если инкрементный) - это, грубо говоря, два быстрых дискретных выхода. В зависимости от частоты и направления вращения должен меняться меандр. У ПЛК110-30 есть два быстрых выхода. Уверен что можно сделать импульсы длиной 50мс TRUE и 50мс FALSE, но не чаще. Если это устроит (минимальная скорость), то заставить их так пульсировать и медленнее, в зависимости от уставки - можно.
50 миллисекунд?? Это при мин.цикле ПЛК 1мс?

Круто!
Для такой длительности и быстрые выходы не нужны, однако.
На обычных выходах (не быстрых) сделаю в десять раз быстрее.
На один оборот энкодера нужно 4 цикла ПЛК.
Захват-1.png
И того, если цикл ПЛК равен 1 мс, получится один оборот за 4 мс, а это 250 Гц. Или максимальная скорость вращения виртуального энкодера получится (250х60)=15 000 об/мин.
ЗЫ.
Код:
PROGRAM PLC_PRG
VAR
State: INT;
Start: BOOL; (*кнопка СТАРТ/СТОП*)
Run: BOOL;
A: BOOL; (*Выход А*)
B: BOOL; (*Выход B*)
END_VAR
CASE State OF
0:
A:=0;
B:=0;
IF Start THEN Run:=1; State:=10; END_IF
10: (*фаза 1*)
A:=1; B:=0; State:=11;
11: (*фаза 2*)
A:=1; B:=1; State:=12;
12: (*фаза 3*)
A:=0; B:=1; State:=13;
13: (*фаза 4*)
A:=0; B:=0; State:=10;
END_CASE
IF NOT Start AND Run THEN State:=0; Run:=0; END_IF
"Импульсы TRUE и FALSE" будут по 2 мс.
Захват-1.png Захват-2.png
UPD. Если делать правильный энкодер, то наверно нужен так же и референтный выход (нулевая отметка)
Код:
PROGRAM PLC_PRG
VAR
State: INT;
Start: BOOL; (*кнопка СТАРТ/СТОП*)
Run: BOOL;
A: BOOL; (*Выход А*)
B: BOOL; (*Выход B*)
Rz: BOOL; (*Референтный выход*)
END_VAR
CASE State OF
0:
A:=0;
B:=0;
IF Start THEN Run:=1; State:=10; END_IF
10: (*фаза 1*)
A:=1; B:=0; State:=11;
11: (*фаза 2*)
A:=1; B:=1; Rz:=1; State:=12;
12: (*фаза 3*)
A:=0; B:=1; Rz:=0; State:=13;
13: (*фаза 4*)
A:=0; B:=0; State:=10;
END_CASE
IF NOT Start AND Run THEN State:=0; Run:=0; END_IF
Захват-3.png
Конечно 15 000 об/мин справедливо для виртуального энкодера с 1 имп./оборот. Какой и показан в примере. Если нужно больше импульсов на один оборот, то максимальная скорость вращения будет уменьшаться пропорционально количеств импульсов на один оборот.