Вот пришёл и мой черёд стать участником вашего сообщества.
Долго читал форум. На "Чипмейкере" "ваши" (наши!) помогали. Приятно.
Ладно. Хватит лирики.
Так уж получилось, что ось Z на фрезерном у меня инвертирована (понятие, конечно, относительное).
Напрягало меня это лишь в одном случае: при вращении штурвала ручного энкодера его направление не совпадало с направлением движения оси.
Я, конечно, победил.
Но как!
Это же аппендицит какой-то...
Подскажите, попроще переменных не предусмотрено?
Код: Выделить всё
#Штурвал
loadrt mux4 count=1
addf mux4.0 servo-thread
#Тип энкодера 1-квадратурный, 0-импульсный
setp encoder.3.x4-mode 1
#Vel. mode - 1, pos. mode - 0
setp axis.0.jog-vel-mode 0
setp axis.1.jog-vel-mode 0
setp axis.2.jog-vel-mode 0
#Селектор шага энкодера (множитель) мм.
setp mux4.0.in0 0.00125
setp mux4.0.in1 0.0025
setp mux4.0.in2 0.025
#Пины селектора шага
net scale1 mux4.0.sel0 <= parport.2.pin-10-in-not
net scale2 mux4.0.sel1 <= parport.2.pin-11-in-not
#Передача из mux4 к оси
net mpg-scale <= mux4.0.out
net mpg-scale => axis.0.jog-scale
net mpg-scale => axis.1.jog-scale
net mpg-scale => axis.2.jog-scale
#Пины входа энкодера
net mpg-a encoder.3.phase-A <= parport.2.pin-08-in
net mpg-b encoder.3.phase-B <= parport.2.pin-09-in
#Пины выбора оси
net mpg-x axis.0.jog-enable <= parport.2.pin-12-in-not
net mpg-y axis.1.jog-enable <= parport.2.pin-13-in-not
net mpg-z axis.2.jog-enable <= parport.2.pin-15-in-not
#Подключение выхода счётчика к оси. Ось двигается только при выборе
net encoder-counts <= encoder.3.counts
net encoder-counts => axis.0.jog-counts
net encoder-counts => axis.1.jog-counts
#net encoder-counts => axis.2.jog-counts
#Здесь инвертируем encoder-counts для оси Z
loadrt conv_s32_float count=1
loadrt conv_float_s32 count=1
loadrt mult2 count=1
addf conv-s32-float.0 servo-thread
addf conv-float-s32.0 servo-thread
addf mult2.0 servo-thread
net encoder-counts => conv-s32-float.0.in
net ASD1 conv-s32-float.0.out => mult2.0.in0
setp mult2.0.in1 -1
net ZCOUNT mult2.0.out => conv-float-s32.0.in
net ZCOUNTINV conv-float-s32.0.out => axis.2.jog-counts

