Страница 1 из 2
Один штурвал на две оси (ClassicLadder)
Добавлено: 19 сен 2014, 00:15
Lexxa
привет всем.
При написании куска электроавтоматики для коммутации маховичка к своему токарному станку я столкнулся проблемой - не получается использовать больше двух S32out.
По схеме галетник будет переключать режим jog: continius, 0.001мм, 0.01мм, 0.1мм. Тумблер переключает какая ось (X или Z) будет двигаться от маховичка. Маховичек - инкрементальный энкодер.
Пытаюсь описать такую логику: Когда выбран continius - маховичек не работает, когда один из инкрементов, то маховичек на соответствующем инкременте.
Код: Выделить всё
loadrt classicladder_rt numRungs=12 numBits=20 numWords=20 numTimers=5 numMonostables=2 numPhysInputs=50 numPhysOutputs=10 numArithmExpr=20 numSections=7 numS32in=13 numS32out=14
addf classicladder.0.refresh servo-thread 1
loadusr -w classicladder --nogui lathe.clp
#Входы для штурвала
net jog-whell-continius machine.jog.continius => classicladder.0.in-25 # (JWC) - безразмерные перемещения
net jog-whell-100 machine.jog.100um => classicladder.0.in-26 # (JW-100) - перемещение 100 микрон
net jog-whell-10 machine.jog.10um => classicladder.0.in-27 # (JW-10) - перемещение 10 микрон
net jog-whell-1 machine.jog.1um => classicladder.0.in-28 #f (JW-1) - перемещение 1 микрон
net jog-whell-axis-x machine.jog-whell-axis.x => classicladder.0.in-29 # (JW-AX) - выбрана ось X
net jog-whell-axis-z machine.jog-whell-axis.z => classicladder.0.in-30 # (JW-AZ) - выбрана ось Z
net jog-whell-count jogwheel.jog-wheel => classicladder.0.s32in-01 # (JW-counts) - счетчик энкодера
#Выходы для штурвала
net jog-whell-x classicladder.0.out-05 => axis.0.jog-enable # (JWX) - маховичек для X включен
net jog-whell-z classicladder.0.out-06 => axis.1.jog-enable # (JWZ) - маховичек для Z включен
net jog-whell-scale axis.1.jog-scale <= axis.0.jog-scale <= classicladder.0.floatout-00 # (JWS) выход масштаба энкодера
net jog-whell-counts-x classicladder.0.s32out-01 => axis.0.jog-counts # (JWCX) - выход счетчика энкодера для оси X
net jog-whell-counts-z classicladder.0.s32out-02 => axis.1.jog-counts # (JWCZ) - выход счетчика энкодера для оси Z
# JW-ena - %B0
На картинке кусок ладдера, который в общем-то худо-бедно работает,но...
не получается сделать в операторе ASSIGNMENT JCW
X=JW-count и JCW
Z=JW-count.
Т.е. как только я меняю выражение в одном операторе, сразу меняется и в другом((((
В чем косяк?
Re: Один штурвал на две оси (ClassicLadder)
Добавлено: 19 сен 2014, 02:06
Serg
А нафик тут ладдер нужен? Оно на HAL делается легко:
Код: Выделить всё
net encoder.0.phase-A <= сюда подать фазу A штурвала
net encoder.0.phase-B <= сюда подать фазу B штурвала
net joint-select-x <= сюда подать сигнал с тумблера выбора оси
net sw-jogincr.0 <= сюда подать сигнал с галетника в двоичном виде (bit0)
net sw-jogincr.1 <= сюда подать сигнал с галетника в двоичном виде (bit1)
setp encoder.0.counter-mode 0
net joint-selected-count <= encoder.0.counts
net joint-select-x => not.0.in
net joint-select-z <= not.0.out
# выбор шага
net sw-jogincr.0 => mux4.0.sel0
net sw-jogincr.1 => mux4.0.sel1
net selected-jog-incr <= mux4.0.out
setp mux4.0.in0 0.0
setp mux4.0.in1 0.001
setp mux4.0.in2 0.01
setp mux4.0.in3 0.1
# Axis X
setp axis.0.jog-vel-mode 0
net selected-jog-incr => axis.0.jog-scale
net joint-select-x => axis.0.jog-enable
net joint-selected-count => axis.0.jog-counts
# Axis Z
setp axis.1.jog-vel-mode 0
net selected-jog-incr => axis.1.jog-scale
net joint-select-z => axis.1.jog-enable
net joint-selected-count => axis.1.jog-counts
Re: Один штурвал на две оси (ClassicLadder)
Добавлено: 19 сен 2014, 06:30
nkp
UAVpilot прав - в хал это пишется компактней ...
когда то мы такое уже
рассматривали
===========
но если есть желание на ладдере - то тоже можно...
выложи файл CL (рисовать самому лениво))
может :
Re: Один штурвал на две оси (ClassicLadder)
Добавлено: 19 сен 2014, 08:19
Lexxa
В ладдере нагляднее при ПНР,да и потом при эксплуатации.
nkp, вот туда то и не получается подставить Z. Т.е. как только я там меняю выражение, оно меняется и сверху(
clp в прицепе
Re: Один штурвал на две оси (ClassicLadder)
Добавлено: 19 сен 2014, 18:06
nkp
Lexxa писал(а):nkp, вот туда то и не получается подставить Z. Т.е. как только я там меняю выражение, оно меняется и сверху(
да - действительно ...
лечится в данном файле удалением и прорисовкой заново ступени(rung) (нижней)...
по крайней мере у меня всё вышло...
Re: Один штурвал на две оси (ClassicLadder)
Добавлено: 19 сен 2014, 23:15
Lexxa
агаааа, попробую))) вельми понеже)
Re: Один штурвал на две оси (ClassicLadder)
Добавлено: 22 сен 2014, 14:11
Nick
Кстати только сейчас сделал один штурвал на две оси на токарку. На все несколько строчек в hal.
Плюс, для инкрементов у меня стоят кнопочки - 4 кнопки с диодами на выбор инкрементов - они в Classic Ladder:
И еще две кнопки с диодами на выбор оси - тоже ladder.
(Сейчас файлы добавлю)
------------
Собственно сам jog с выбором оси:
Код: Выделить всё
# --- Jog MPG ---
net selected-x => axis.0.jog-enable
net jog-counts => axis.0.jog-counts
net jog-increment-scaled => axis.0.jog-scale
net selected-z => axis.2.jog-enable
net jog-counts => axis.2.jog-counts
net jog-increment-scaled => axis.2.jog-scale
А вот весь ладдер - в основном, он нужен для зажигания светодиодов.
И привязка ладдера
Код: Выделить всё
net jog-incr-0 => classicladder.0.in-10
net jog-incr-1 => classicladder.0.in-11
net jog-incr-2 => classicladder.0.in-12
net jog-incr-3 => classicladder.0.in-13
net jog-incr-0-out <= classicladder.0.out-10
net jog-incr-1-out <= classicladder.0.out-11
net jog-incr-2-out <= classicladder.0.out-12
net jog-incr-3-out <= classicladder.0.out-13
net jog-increment <= classicladder.0.floatout-00
net select-x => classicladder.0.in-17
net select-z => classicladder.0.in-18
net selected-x <= classicladder.0.out-17
net selected-z <= classicladder.0.out-18
Re: Один штурвал на две оси (ClassicLadder)
Добавлено: 22 сен 2014, 15:40
nkp
на леды нужно много выходов (если по максимуму подсвечивать кнопки на стойке)...
ты "месовские" выходы используешь? какой набор для токарки в данном случае используется?
Re: Один штурвал на две оси (ClassicLadder)
Добавлено: 22 сен 2014, 15:43
Nick
nkp писал(а):на леды нужно много выходов (если по максимуму подсвечивать кнопки на стойке)...
ты "месовские" выходы используешь? какой набор для токарки в данном случае используется?
Ага, пока все леды в 7i73 умещаются.
Набор большой - 5i25, 7i73, 7i77, 7i66-2шт, 7i64 и 7i74...
Надо отдельную тему по ней создавать

Re: Один штурвал на две оси (ClassicLadder)
Добавлено: 22 сен 2014, 16:10
nkp
Nick писал(а):Набор большой - 5i25, 7i73, 7i77, 7i66-2шт, 7i64 и 7i74...
ох ничё себе!
а зачем так много?)
=========
на "обычную" токарку стойка "влезает" в 5i25+7i77+7i70
хорошая подвеска стойки исключает потребность в выносном пульте(имхо)
Re: Один штурвал на две оси (ClassicLadder)
Добавлено: 22 сен 2014, 19:13
Lexxa
nkp писал(а):на "обычную" токарку стойка "влезает" в 5i25+7i77+7i70
Turret with 12 tools + hadrkeys gmocappy + operator panel + encoders, homes and limits.
Re: Один штурвал на две оси (ClassicLadder)
Добавлено: 22 сен 2014, 19:33
nkp
nkp писал(а):на "обычную" токарку стойка "влезает" в 5i25+7i77+7i70
Lexxa писал(а):Turret with 12 tools + hadrkeys gmocappy + operator panel + encoders, homes and limits.
эта фраза в подтверждение или сомнение ? )
Re: Один штурвал на две оси (ClassicLadder)
Добавлено: 22 сен 2014, 19:45
Lexxa
podtverjdenie))
Re: Один штурвал на две оси (ClassicLadder)
Добавлено: 22 сен 2014, 19:51
Lexxa
(cменил комп) кстати, 7i70 к связке 7i77+5i25 сама подцепится?
Re: Один штурвал на две оси (ClassicLadder)
Добавлено: 22 сен 2014, 22:44
Lexxa
Lexxa писал(а):7i70 к связке 7i77+5i25 сама подцепится?
Подцепилась сама.
мало того я наконец разобрался с параметром
sserial_port_0
итак, sserial_port_0 может передавать дочке 5i25 в каком режиме работать.
Это параметр имеет 6 позиций, назову их битами. Младший, т.е. нулевой, слева.
Каждый бит устанавливает режим, на котором будет работать дочка на соответствующем sserial порту, у 5i25 на прошивке 2x7I77 их 6 y, на сколько я понимаю по три на каждый разъем.
Сама по себе плата 7i77 логически разделена на три части: входы-выходы(конфигурируется нулевым битом), аналоговая часть (конфигурируется первым битом) и rs-422, который конфигурируется вторым битом.
Т.о. связка 5i25(P2)->7i77+7i70 по RS-422 для работы с аналоговыми входами на входах_0-3, без аналоговой части и с 6 аналоговыми входами на 7i70 в параметр sserial_port_0 следует записать 1x1xxx.
Тоже самое, но с аналоговой частью - sserial_port_0=101xxx.
И родилась разумеется масса вопросов.
1) что за режим MODE 2?
Код: Выделить всё
I/O plus analog input and field voltage mode
(32 bits of input data, 16 bits of
output data, 4 analog input channels (on inputs 0..
3) and field voltage analog
in)
2) Почему нельзя напрямую в 5i25 на все ее sserial порты понавешать просто sserial дочки без промежуточной 7i74, или она как развязка просто...
upd: по поводу mode 2. Можно мониторить напряжение питания части входов-выходов?
Re: Один штурвал на две оси (ClassicLadder)
Добавлено: 23 сен 2014, 00:16
Serg
Lexxa писал(а):1) что за режим MODE 2?
4 входа становятся аналоговыми.
Lexxa писал(а):2) Почему нельзя напрямую в 5i25 на все ее sserial порты понавешать просто sserial дочки без промежуточной 7i74, или она как развязка просто...
sserial != rs-422
Lexxa писал(а):upd: по поводу mode 2. Можно мониторить напряжение питания части входов-выходов?
Можно.
Re: Один штурвал на две оси (ClassicLadder)
Добавлено: 23 сен 2014, 08:12
Nick
Lexxa писал(а):2) Почему нельзя напрямую в 5i25 на все ее sserial порты понавешать просто sserial дочки без промежуточной 7i74, или она как развязка просто...
можно.
Lexxa писал(а):Т.о. связка 5i25(P2)->7i77+7i70 по RS-422 для работы с аналоговыми входами на входах_0-3, без аналоговой части и с 6 аналоговыми входами на 7i70 в параметр sserial_port_0 следует записать 1x1xxx.
Тоже самое, но с аналоговой частью - sserial_port_0=101xxx.
ЗЫ там вроде не по 6 бит на каждый порт, а по 8. В каждом порту по 8 каналов.
Re: Один штурвал на две оси (ClassicLadder)
Добавлено: 23 сен 2014, 08:32
Lexxa
Nick писал(а): В каждом порту по 8 каналов
все же 6
7I77X2 is a configuration intended to work with the 7I77 six axis analog servo
daughtercard. It will support two 7I77 daughtercards. It includes twelve encoder inputs, six
smart serial interfaces (four used locally on the 7I77s and two fed through for additional
remotes), a watchdog timer and GPIO.
Re: Один штурвал на две оси (ClassicLadder)
Добавлено: 23 сен 2014, 08:37
Lexxa
UAVpilot писал(а):4 входа становятся аналоговыми.
UAVpilot, а в чем отличие тогда от MODE 1?
Re: Один штурвал на две оси (ClassicLadder)
Добавлено: 23 сен 2014, 09:08
Nick
Нене, это не то.
sserial_port_0=101xxxxx настраивает sserial порты 5i25, т.е. говорит устройству на определенном канале порта sserial_port_0 что у него режим 0,1,2 или x (т.е. канал выключен).