Поворотная ось (статуэтки, балясины).

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
MihailCarib
Новичок
Сообщения: 19
Зарегистрирован: 22 июл 2013, 15:31
Репутация: 0
Контактная информация:

Re: Поворотная ось (статуэтки, балясины).

Сообщение MihailCarib »

Ну, считаем, что диаметр уменьшается, а потому скорость должна возрастать, но в целом интересное решение. Ограничение по параметрам срабатывало в МАЧЕ. Там у меня скорость по линейным была 600, по ангулярной 7000, и F5000 прекрасно работало - ангулярка с постоянной скоростью 5000, а линейные с ограничением 600... А тут работать будет, но плохо, (если как писалось, скорость поворотной оси выставляется автоматом, чтобы только успеть за линейными...). Медленно будет.
Простите, Nick, а можно мне как новичку ткнуть носом, как "Завести пин положения по оси Y на пин feedoverride - тогда скорость подачи будет сама уменьшаться пророцционально диаметру... ", ну или хотя бы пример решенной задачи: куда лезть, чего править. Я так понимаю, пины тут программные, в железо лезть не придется. Хотя и это не проблема, важно понять, о чем речь.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Поворотная ось (статуэтки, балясины).

Сообщение Nick »

MihailCarib писал(а):Ну, считаем, что диаметр уменьшается, а потому скорость должна возрастать, но в целом интересное решение
Это можно и в обратную сторону настроить, не вопрос. Главное, чтобы идея сама подошла.

Да, все просто... более менее :hehehe:

пины все программные - пины это пины hal.
В общем надо сделать отдельный hal файл, точнее лучше просто поправить custom.hal

Да, будем использовать пин:
motion.adaptive-feed IN FLOAT
When adaptive feed is enabled with M52 P1, the commanded velocity is multiplied by this value. This effect is multiplicative with the NML-level feed override value and motion.feed-hold.
Итак, надо добавить следующее:

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

# загружаем компоненты
loadrt scale count=1 
loadrt invert count=1

# добавляем функции в серво поток, чтобы компоненты работали 
addf invert.0 servo-thread
addf scale.0 servo-thread

# подключаем пины
net y-pos <= axis.1.joint-pos-cmd 
net y-pos => invert.0.in 
# теперь у нас положение по y инвертировано

net y-pos-i <= invert.0.out 
net y-pos-i => scale.0.in

# теперь подключаем пин scale к adaptive feed
net y-pos-s <= scale.0.out 
net y-pos-s => motion.adaptive-feed

# осталось настроить параметры scale
setp scale.0.offset 0.1 # минимальное значение (1/10 подачи)
setp scale.0.scale 0.1 # это дополнительный множитель, т.к. adaptive-feed должен быть где-то в пределах 0..1
Как-то так...


ЗЫ со мной можно "на ты", надеюсь взаимно :)
MihailCarib
Новичок
Сообщения: 19
Зарегистрирован: 22 июл 2013, 15:31
Репутация: 0
Контактная информация:

Re: Поворотная ось (статуэтки, балясины).

Сообщение MihailCarib »

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

Re: Поворотная ось (статуэтки, балясины).

Сообщение Nick »

Как где - на оф сайте linuxcnc :)
http://linuxcnc.org/index.php/english/documentation
Integrators manual - настоятельно к прочтению, также можно hal manual почитать.

Мы тут своими силами какое-то количество от integrators manual перевели, правда, многое вышло коряво, если с английским дружишь - лучше оригиналы читать: EMC2 Integrators Manual Перевод на русский язык #1
Или http://cnc-club.ru/wiki/index.php/%D0%A ... ranslation, кстати, в wiki можно присоединиться к переводу ;).

Также несколько страниц к изучению:
1. Gкод - очень большой и подробный справочник http://linuxcnc.org/docs/html/gcode.html
2. Практически все компоненты linuxcnc: http://linuxcnc.org/docs/html/ (очень полезная страничка!)
3. одни из самых важных компонентов, чаще всего в них лажу: motion и halui http://linuxcnc.org/docs/html/man/man9/motion.9.html http://linuxcnc.org/docs/html/man/man1/halui.1.html

Кстати, в linux есть встроенная система справки, в консоле напиши man motion и получишь полную справку как по ссылке выше, фактически по ссылке и есть страничка из man.
MihailCarib
Новичок
Сообщения: 19
Зарегистрирован: 22 июл 2013, 15:31
Репутация: 0
Контактная информация:

Re: Поворотная ось (статуэтки, балясины).

Сообщение MihailCarib »

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

Re: Поворотная ось (статуэтки, балясины).

Сообщение Nick »

MihailCarib писал(а):но если разобраться, то возможности этого HAL практически безграничны...
Во-во, вот это мне в linuxcnc и нравится больше всего :).
MihailCarib
Новичок
Сообщения: 19
Зарегистрирован: 22 июл 2013, 15:31
Репутация: 0
Контактная информация:

Re: Поворотная ось (статуэтки, балясины).

Сообщение MihailCarib »

Nick! Прости, что надоедаю, но я тут немного поразбирался с твоим кодом, как оно работать будет проверю только послезавтра, но у меня вопросы по синтаксису:
# подключаем пины
net y-pos <= axis.1.joint-pos-cmd
net y-pos => invert.0.in
# теперь у нас положение по y инвертировано
переменной (ну или ячейке памяти, не важно) y-pos присваиваем значение axis.1.joint-pos-cmd, здесь 1 номер оси? Тогда, если надо Z, то 2, так?
затем значение переменной y-pos записываем в (куда? invert - функция, на выходе из нее должна быть переменная) в результат функции. Циферка 0 - не соображу...

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

Re: Поворотная ось (статуэтки, балясины).

Сообщение Nick »

MihailCarib писал(а):переменной (ну или ячейке памяти, не важно)
сигналу y-pos
MihailCarib писал(а):axis.1.joint-pos-cmd, здесь 1 номер оси?
да, (оси нумеруются начиная с 0).
MihailCarib писал(а):затем значение переменной y-pos записываем в
затем присоединяем к сигналу пин invert.in цифра 0 - это номер компонента, нам может понадобится 100 invert для разных переменных, тогда пишем loadrt invert count=100
и они будут нумероваться invert.0 ... invert.99
MihailCarib писал(а):y-pos-i, y-pos-s - тоже просто переменные?
Сигналы.
Вообще в hal есть пины, параметры и сигналы. Пины - часто меняющиеся значения. Параметры - статичные значения. Сигналы могут связывать пины и некоторые параметры.
команда net <сигнал> <пин> <пин> <пин>... делает следующее:
1. смотрит, если нет сигнала <сигнал>, то создает новый сигнал.
2. присоединяет к сигналу пины.

Значки <= => нужны только для более простого чтения hal файлов, они могут показать в каком направлении идут данные.

При этом к сигналу можно присоединить только 1 пин OUT, и сколько угодно IN, т.е. данные берутся из пина OUT, и пишутся в пины IN. Все. Больше ничего эти сигналы не делают. :)
MihailCarib
Новичок
Сообщения: 19
Зарегистрирован: 22 июл 2013, 15:31
Репутация: 0
Контактная информация:

Re: Поворотная ось (статуэтки, балясины).

Сообщение MihailCarib »

Nick, спасибо большое за пояснения, извини, сечас цейт-нот маленький образовался, не могу оперативно отвечать.
MihailCarib
Новичок
Сообщения: 19
Зарегистрирован: 22 июл 2013, 15:31
Репутация: 0
Контактная информация:

Re: Поворотная ось (статуэтки, балясины).

Сообщение MihailCarib »

Nick, даже при добавлении только
loadrt scale count=1
loadrt invert count=1
в custom.hal машина ругается, ЕМС не запускается. Что может быть?
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Поворотная ось (статуэтки, балясины).

Сообщение nkp »

MihailCarib писал(а):Что может быть?
ускорит решение вопроса сам файл .hal и текст ошибки...
причин может быть много...
даже пробел ,вот здесь например loadrt scale count = 1 (между count и знаком равно) ,не дает запустить емс...
MihailCarib
Новичок
Сообщения: 19
Зарегистрирован: 22 июл 2013, 15:31
Репутация: 0
Контактная информация:

Re: Поворотная ось (статуэтки, балясины).

Сообщение MihailCarib »

nkp писал(а):ускорит решение вопроса сам файл .hal и текст ошибки...причин может быть много...даже пробел ,вот здесь например loadrt scale count = 1 (между count и знаком равно) ,не дает запустить емс...
Кхе... А ведь правда, пробел... Спасибо большое, синтаксис языка не знаю, попался на мелочи...Буду дальше копать.
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Поворотная ось (статуэтки, балясины).

Сообщение nkp »

MihailCarib писал(а):синтаксис языка не знаю,
это не синтаксис - это просто недоработка парсера...
MihailCarib
Новичок
Сообщения: 19
Зарегистрирован: 22 июл 2013, 15:31
Репутация: 0
Контактная информация:

Re: Поворотная ось (статуэтки, балясины).

Сообщение MihailCarib »

Теперь ругается на крайнюю нижнюю строчку. В дебаге пишет, что такой параметр или пин scale.0.scale не найден. Текст hal

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

# Include your customized HAL commands here
# This file will not be overwritten when you run stepconf again
loadrt scale count=1
loadrt invert count=1
#
addf invert.0 servo-thread
addf scale.0 servo-thread
#
net z-pos <= axis.2.joint-pos-cmd
net z-pos => invert.0.in
#
net z-pos-i <= invert.0.out
net z-pos-i => scale.0.in
#
net z-pos-s <= scale.0.out
net z-pos-s => motion.adaptive-feed
#
setp scale.0.offset 0.1
setp scale.0.scale 0.1
Текст обиды:

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

Print file information:
RUN_IN_PLACE=no
LINUXCNC_DIR=
LINUXCNC_BIN_DIR=/usr/bin
LINUXCNC_TCL_DIR=/usr/lib/tcltk/linuxcnc
LINUXCNC_SCRIPT_DIR=
LINUXCNC_RTLIB_DIR=/usr/realtime-2.6.32-122-rtai/modules/linuxcnc
LINUXCNC_CONFIG_DIR=
LINUXCNC_LANG_DIR=/usr/share/linuxcnc/tcl/msgs
INIVAR=inivar
HALCMD=halcmd
LINUXCNC_EMCSH=/usr/bin/wish8.5
LINUXCNC - 2.5.0
Machine configuration directory is '/home/ubuntu/linuxcnc/configs/мой-станок'
Machine configuration file is 'мой-станок.ini'
INIFILE=/home/ubuntu/linuxcnc/configs/мой-станок/мой-станок.ini
PARAMETER_FILE=linuxcnc.var
TASK=milltask
HALUI=
DISPLAY=axis
Starting LinuxCNC...
Starting LinuxCNC server program: linuxcncsvr
Loading Real Time OS, RTAPI, and HAL_LIB modules
Starting LinuxCNC IO program: io
Shutting down and cleaning up LinuxCNC...
Killing task linuxcncsvr, PID=6800
Removing HAL_LIB, RTAPI, and Real Time OS modules
Removing NML shared memory segments
Cleanup done

Debug file information:
Can not find -sec MOT -var MOT -num 1 
Can not find -sec IO -var IO -num 1 
Can not find -sec LINUXCNC -var NML_FILE -num 1 
Can not find -sec EMC -var NML_FILE -num 1 
custom.hal:19: parameter or pin 'scale.0.scale' not found
6800
  PID TTY      STAT   TIME COMMAND
Stopping realtime threads
Unloading hal components

Kernel message information:
[12869.341675] I-pipe: Domain RTAI registered.
[12869.341697] RTAI[hal]: <3.8.1> mounted over IPIPE-NOTHREADS 2.6-03.
[12869.341706] RTAI[hal]: compiled with gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5) .
[12869.341725] RTAI[hal]: mounted (IPIPE-NOTHREADS, IMMEDIATE (INTERNAL IRQs DISPATCHED), ISOL_CPUS_MASK: 0).
[12869.341733] PIPELINE layers:
[12869.341742] f8c6de20 9ac15d93 RTAI 200
[12869.341750] c085cb20 0 Linux 100
[12869.423733] RTAI[malloc]: global heap size = 2097152 bytes, <BSD>.
[12869.423962] RTAI[sched]: IMMEDIATE, MP, USER/KERNEL SPACE: <with RTAI OWN KTASKs>, kstacks pool size = 524288 bytes.
[12869.423979] RTAI[sched]: hard timer type/freq = APIC/6250189(Hz); default timing: periodic; linear timed lists.
[12869.423991] RTAI[sched]: Linux timer freq = 250 (Hz), TimeBase freq = 600079000 hz.
[12869.424002] RTAI[sched]: timer setup = 999 ns, resched latency = 2942 ns.
[12869.424193] RTAI[usi]: enabled.
[12869.622410] RTAI[math]: loaded.
[12869.796679] config string '0x378 out  '
[12871.836684] RTAI[math]: unloaded.
[12871.939296] SCHED releases registered named ALIEN RTGLBH
[12871.952654] RTAI[malloc]: unloaded.
[12872.052032] RTAI[sched]: unloaded (forced hard/soft/hard transitions: traps 0, syscalls 0).
[12872.058766] I-pipe: Domain RTAI unregistered.
[12872.058792] RTAI[hal]: unmounted.
Последний раз редактировалось MihailCarib 30 июл 2013, 22:08, всего редактировалось 1 раз.
MihailCarib
Новичок
Сообщения: 19
Зарегистрирован: 22 июл 2013, 15:31
Репутация: 0
Контактная информация:

Re: Поворотная ось (статуэтки, балясины).

Сообщение MihailCarib »

Просветите неуча, "парсер" - это что за зверь?
Ну и по смыслу, вроде, (поправь меня, Nick), там должно быть

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

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

Re: Поворотная ось (статуэтки, балясины).

Сообщение Nick »

MihailCarib писал(а):Просветите неуча, "парсер" - это что за зверь?
Ну это такая штука, которая читает этот hal файл и пытается его разбить на что-то значащие куски. Вот она разбивает count = 1 на три отдельных куска "count", "=", "1" и пытается их по отдельности интерпретировать, когда надо было "count=1" целиком брать.
Хотя, в принципе это подходит под парсинг командной строки. Пробел это переход к следующему параметру...
В общем, это наверное не парсер, это наверное синтаксис :)
MihailCarib писал(а):Ну и по смыслу, вроде, (поправь меня, Nick), там должно быть
Ага, он самый.
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Поворотная ось (статуэтки, балясины).

Сообщение nkp »

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

Re: Поворотная ось (статуэтки, балясины).

Сообщение Nick »

Это там просто "=" не ставится...
MihailCarib
Новичок
Сообщения: 19
Зарегистрирован: 22 июл 2013, 15:31
Репутация: 0
Контактная информация:

Re: Поворотная ось (статуэтки, балясины).

Сообщение MihailCarib »

Так, ну, сегодня код не с первого раза, но таки запустился на машине. Все как бы хорошо, параметры удалось подобрать, при увеличении Z скорость падает, но вот засада: мне надо, чтобы падала только скорость поворотной оси, а он зараза режет скорость по всем сразу. Нет ли возможности это поправить?
Ответить

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