Страница 6 из 8
Re: Поворотная ось (статуэтки, балясины).
Добавлено: 23 июл 2013, 14:33
MihailCarib
Ну, считаем, что диаметр уменьшается, а потому скорость должна возрастать, но в целом интересное решение. Ограничение по параметрам срабатывало в МАЧЕ. Там у меня скорость по линейным была 600, по ангулярной 7000, и F5000 прекрасно работало - ангулярка с постоянной скоростью 5000, а линейные с ограничением 600... А тут работать будет, но плохо, (если как писалось, скорость поворотной оси выставляется автоматом, чтобы только успеть за линейными...). Медленно будет.
Простите, Nick, а можно мне как новичку ткнуть носом, как "Завести пин положения по оси Y на пин feedoverride - тогда скорость подачи будет сама уменьшаться пророцционально диаметру... ", ну или хотя бы пример решенной задачи: куда лезть, чего править. Я так понимаю, пины тут программные, в железо лезть не придется. Хотя и это не проблема, важно понять, о чем речь.
Re: Поворотная ось (статуэтки, балясины).
Добавлено: 23 июл 2013, 17:30
Nick
MihailCarib писал(а):Ну, считаем, что диаметр уменьшается, а потому скорость должна возрастать, но в целом интересное решение
Это можно и в обратную сторону настроить, не вопрос. Главное, чтобы идея сама подошла.
Да, все просто... более менее
пины все программные - пины это пины 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
Как-то так...
ЗЫ со мной можно "на ты", надеюсь взаимно

Re: Поворотная ось (статуэтки, балясины).
Добавлено: 23 июл 2013, 18:31
MihailCarib
Nick писал(а):ЗЫ со мной можно "на ты", надеюсь взаимно
Конечно! Спасибо большое, сейчас полезу разбираться.... А, не полезу - дома винда, а диск с линуксом я на работе оставил. Ну хоть твой код разберу. Nick, а откуда это буржуйское описание команд , можно где-нибудь его тиснуть?
Re: Поворотная ось (статуэтки, балясины).
Добавлено: 23 июл 2013, 18:55
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.
Re: Поворотная ось (статуэтки, балясины).
Добавлено: 23 июл 2013, 19:04
MihailCarib
Спасибо, описание HAL уже нашел сам. Удивляюсь - конечно, вникать долго, система команд новая для меня, но если разобраться, то возможности этого HAL практически безграничны...
Re: Поворотная ось (статуэтки, балясины).
Добавлено: 23 июл 2013, 19:19
Nick
MihailCarib писал(а):но если разобраться, то возможности этого HAL практически безграничны...
Во-во, вот это мне в linuxcnc и нравится больше всего

.
Re: Поворотная ось (статуэтки, балясины).
Добавлено: 23 июл 2013, 22:31
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 - тоже просто переменные?
Re: Поворотная ось (статуэтки, балясины).
Добавлено: 24 июл 2013, 09:46
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. Все. Больше ничего эти сигналы не делают.

Re: Поворотная ось (статуэтки, балясины).
Добавлено: 25 июл 2013, 11:50
MihailCarib
Nick, спасибо большое за пояснения, извини, сечас цейт-нот маленький образовался, не могу оперативно отвечать.
Re: Поворотная ось (статуэтки, балясины).
Добавлено: 30 июл 2013, 18:59
MihailCarib
Nick, даже при добавлении только
loadrt scale count=1
loadrt invert count=1
в custom.hal машина ругается, ЕМС не запускается. Что может быть?
Re: Поворотная ось (статуэтки, балясины).
Добавлено: 30 июл 2013, 20:22
nkp
MihailCarib писал(а):Что может быть?
ускорит решение вопроса сам файл .hal и текст ошибки...
причин может быть много...
даже пробел ,вот здесь например loadrt scale count = 1 (между count и знаком равно) ,не дает запустить емс...
Re: Поворотная ось (статуэтки, балясины).
Добавлено: 30 июл 2013, 21:26
MihailCarib
nkp писал(а):ускорит решение вопроса сам файл .hal и текст ошибки...причин может быть много...даже пробел ,вот здесь например loadrt scale count = 1 (между count и знаком равно) ,не дает запустить емс...
Кхе... А ведь правда, пробел... Спасибо большое, синтаксис языка не знаю, попался на мелочи...Буду дальше копать.
Re: Поворотная ось (статуэтки, балясины).
Добавлено: 30 июл 2013, 21:32
nkp
MihailCarib писал(а):синтаксис языка не знаю,
это не синтаксис - это просто недоработка парсера...
Re: Поворотная ось (статуэтки, балясины).
Добавлено: 30 июл 2013, 21:54
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.
Re: Поворотная ось (статуэтки, балясины).
Добавлено: 30 июл 2013, 22:04
nkp
такого пина вроде бы нет- scale.0.scale
зы пользуй тэг "Code"
Re: Поворотная ось (статуэтки, балясины).
Добавлено: 30 июл 2013, 22:13
MihailCarib
Просветите неуча, "парсер" - это что за зверь?
Ну и по смыслу, вроде, (поправь меня, Nick), там должно быть
На этот код не ругается, а как работает поглядим завтра на станке.
Re: Поворотная ось (статуэтки, балясины).
Добавлено: 31 июл 2013, 18:22
Nick
MihailCarib писал(а):Просветите неуча, "парсер" - это что за зверь?
Ну это такая штука, которая читает этот hal файл и пытается его разбить на что-то значащие куски. Вот она разбивает count = 1 на три отдельных куска "count", "=", "1" и пытается их по отдельности интерпретировать, когда надо было "count=1" целиком брать.
Хотя, в принципе это подходит под парсинг командной строки. Пробел это переход к следующему параметру...
В общем, это наверное не парсер, это наверное синтаксис
MihailCarib писал(а):Ну и по смыслу, вроде, (поправь меня, Nick), там должно быть
Ага, он самый.
Re: Поворотная ось (статуэтки, балясины).
Добавлено: 31 июл 2013, 18:27
nkp
Nick писал(а):это наверное не парсер, это наверное синтаксис
можно было бы согласиться - если б так было для всех случаев , а так в других местах сколько не ставь пробелов - все работает

Re: Поворотная ось (статуэтки, балясины).
Добавлено: 31 июл 2013, 18:37
Nick
Это там просто "=" не ставится...
Re: Поворотная ось (статуэтки, балясины).
Добавлено: 31 июл 2013, 19:50
MihailCarib
Так, ну, сегодня код не с первого раза, но таки запустился на машине. Все как бы хорошо, параметры удалось подобрать, при увеличении Z скорость падает, но вот засада: мне надо, чтобы падала только скорость поворотной оси, а он зараза режет скорость по всем сразу. Нет ли возможности это поправить?