Один штурвал на две оси (ClassicLadder)

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Один штурвал на две оси (ClassicLadder)

Сообщение 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 JCWX=JW-count и JCWZ=JW-count.
Т.е. как только я меняю выражение в одном операторе, сразу меняется и в другом((((
В чем косяк?
Вложения
jogwhell.jpg (2918 просмотров) <a class='original' href='./download/file.php?id=33410&mode=view' target=_blank>Загрузить оригинал (87.21 КБ)</a>
:bender:
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Один штурвал на две оси (ClassicLadder)

Сообщение 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
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Один штурвал на две оси (ClassicLadder)

Сообщение nkp »

UAVpilot прав - в хал это пишется компактней ...
когда то мы такое уже рассматривали
===========
но если есть желание на ладдере - то тоже можно...
выложи файл CL (рисовать самому лениво))
может :
Выделение_075.png (2894 просмотра) <a class='original' href='./download/file.php?id=33414&mode=view' target=_blank>Загрузить оригинал (197.55 КБ)</a>
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Один штурвал на две оси (ClassicLadder)

Сообщение Lexxa »

В ладдере нагляднее при ПНР,да и потом при эксплуатации.
nkp, вот туда то и не получается подставить Z. Т.е. как только я там меняю выражение, оно меняется и сверху(
clp в прицепе
Вложения
lathe.clp
(7.47 КБ) 1213 скачиваний
:bender:
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Один штурвал на две оси (ClassicLadder)

Сообщение nkp »

Lexxa писал(а):nkp, вот туда то и не получается подставить Z. Т.е. как только я там меняю выражение, оно меняется и сверху(
да - действительно ...
лечится в данном файле удалением и прорисовкой заново ступени(rung) (нижней)...
по крайней мере у меня всё вышло...
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Один штурвал на две оси (ClassicLadder)

Сообщение Lexxa »

агаааа, попробую))) вельми понеже)
:bender:
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Один штурвал на две оси (ClassicLadder)

Сообщение 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
А вот весь ладдер - в основном, он нужен для зажигания светодиодов.
classic ladder mpg.png (2828 просмотров) <a class='original' href='./download/file.php?id=33606&mode=view' target=_blank>Загрузить оригинал (61.3 КБ)</a>
И привязка ладдера

Код: Выделить всё

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
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Один штурвал на две оси (ClassicLadder)

Сообщение nkp »

на леды нужно много выходов (если по максимуму подсвечивать кнопки на стойке)...
ты "месовские" выходы используешь? какой набор для токарки в данном случае используется?
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Один штурвал на две оси (ClassicLadder)

Сообщение Nick »

nkp писал(а):на леды нужно много выходов (если по максимуму подсвечивать кнопки на стойке)...
ты "месовские" выходы используешь? какой набор для токарки в данном случае используется?
Ага, пока все леды в 7i73 умещаются.
Набор большой - 5i25, 7i73, 7i77, 7i66-2шт, 7i64 и 7i74...
Надо отдельную тему по ней создавать :)
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Один штурвал на две оси (ClassicLadder)

Сообщение nkp »

Nick писал(а):Набор большой - 5i25, 7i73, 7i77, 7i66-2шт, 7i64 и 7i74...
ох ничё себе!
а зачем так много?)
=========
на "обычную" токарку стойка "влезает" в 5i25+7i77+7i70
хорошая подвеска стойки исключает потребность в выносном пульте(имхо)
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Один штурвал на две оси (ClassicLadder)

Сообщение Lexxa »

nkp писал(а):на "обычную" токарку стойка "влезает" в 5i25+7i77+7i70
Turret with 12 tools + hadrkeys gmocappy + operator panel + encoders, homes and limits.
:bender:
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Один штурвал на две оси (ClassicLadder)

Сообщение nkp »

nkp писал(а):на "обычную" токарку стойка "влезает" в 5i25+7i77+7i70
Lexxa писал(а):Turret with 12 tools + hadrkeys gmocappy + operator panel + encoders, homes and limits.
эта фраза в подтверждение или сомнение ? )
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Один штурвал на две оси (ClassicLadder)

Сообщение Lexxa »

podtverjdenie))
:bender:
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Один штурвал на две оси (ClassicLadder)

Сообщение Lexxa »

(cменил комп) кстати, 7i70 к связке 7i77+5i25 сама подцепится?
:bender:
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Один штурвал на две оси (ClassicLadder)

Сообщение 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. Можно мониторить напряжение питания части входов-выходов?
:bender:
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Один штурвал на две оси (ClassicLadder)

Сообщение Serg »

Lexxa писал(а):1) что за режим MODE 2?
4 входа становятся аналоговыми.
Lexxa писал(а):2) Почему нельзя напрямую в 5i25 на все ее sserial порты понавешать просто sserial дочки без промежуточной 7i74, или она как развязка просто...
sserial != rs-422
Lexxa писал(а):upd: по поводу mode 2. Можно мониторить напряжение питания части входов-выходов?
Можно.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Один штурвал на две оси (ClassicLadder)

Сообщение 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 каналов.
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Один штурвал на две оси (ClassicLadder)

Сообщение 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.
:bender:
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Один штурвал на две оси (ClassicLadder)

Сообщение Lexxa »

UAVpilot писал(а):4 входа становятся аналоговыми.
UAVpilot, а в чем отличие тогда от MODE 1?
:bender:
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Один штурвал на две оси (ClassicLadder)

Сообщение Nick »

Нене, это не то.

sserial_port_0=101xxxxx настраивает sserial порты 5i25, т.е. говорит устройству на определенном канале порта sserial_port_0 что у него режим 0,1,2 или x (т.е. канал выключен).
Ответить

Вернуться в «LinuxCNC»