Коробка шпинделя.. Нужны советы!)

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Аватара пользователя
Dmaster
Мастер
Сообщения: 1271
Зарегистрирован: 15 июл 2011, 13:36
Репутация: 476
Контактная информация:

Re: Коробка шпинделя.. Нужны советы!)

Сообщение Dmaster »

nkp писал(а):здесь даже может быть ошибка вызвана иной причиной:
classicladder.0.s32out-00 пин s32
а gearchange.0.min2 пин float
nkp писал(а): думаю MUXом
это то-же самое получится(((
" Linux CNC - наше всё"
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Коробка шпинделя.. Нужны советы!)

Сообщение nkp »

Dmaster писал(а):это то-же самое получится(((
если ты имеешь в виду несоответствие типов - то mux переключается пином bit
пин true - значение выхода одно
пин false - значение выхода другое
тип выхода - float
=========
или я не понял - что "это то-же самое получится((("
Аватара пользователя
Dmaster
Мастер
Сообщения: 1271
Зарегистрирован: 15 июл 2011, 13:36
Репутация: 476
Контактная информация:

Re: Коробка шпинделя.. Нужны советы!)

Сообщение Dmaster »

Выход Float можно получить и из ладдера.. Проблема заключается в том, что HAL не может соединить пин и параметр... (((
" Linux CNC - наше всё"
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Коробка шпинделя.. Нужны советы!)

Сообщение nkp »

Dmaster писал(а):не может соединить пин и параметр
должен мочь...)))
как же он RW ??
Аватара пользователя
Dmaster
Мастер
Сообщения: 1271
Зарегистрирован: 15 июл 2011, 13:36
Репутация: 476
Контактная информация:

Re: Коробка шпинделя.. Нужны советы!)

Сообщение Dmaster »

Мы пойдем другим путем!!!!! при команде m5 входной пин модуля плавного разгоназаменять с пина gearchage на другой, равный 0 и тут уже mux-ом
nkp писал(а):должен мочь...)))
как же он RW ??
а вот не могеёт
" Linux CNC - наше всё"
Аватара пользователя
Dmaster
Мастер
Сообщения: 1271
Зарегистрирован: 15 июл 2011, 13:36
Репутация: 476
Контактная информация:

Re: Коробка шпинделя.. Нужны советы!)

Сообщение Dmaster »

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

Re: Коробка шпинделя.. Нужны советы!)

Сообщение Nick »

Dmaster писал(а):Мы пойдем другим путем!!!!! при команде m5 входной пин модуля плавного разгоназаменять с пина gearchage на другой, равный 0 и тут уже mux-ом
А зачем ты выставляешь параметра min и max для limit2 ? Он же должен просто сглаживать, и ничего больше. ИМХО лучше использовать только 1 limit2 и ничего не mux-ить лучше пределы по абсолютным значениям контроллировать в том же ladder.
Dmaster писал(а):вопрос!... с какого пина взять заданное значение скорости шпинделя, которое выходит из интерпритатора s1000 к примеру.....мне нужно, что-б при jog шпинделя он не пытался переключать передачи..
А это не оно:
motion.spindle-speed-out OUT FLOAT
Desired spindle speed in rotations per minute

motion.spindle-speed-out-rps OUT float
Desired spindle speed in rotations per second
Аватара пользователя
Dmaster
Мастер
Сообщения: 1271
Зарегистрирован: 15 июл 2011, 13:36
Репутация: 476
Контактная информация:

Re: Коробка шпинделя.. Нужны советы!)

Сообщение Dmaster »

Nick писал(а):А зачем ты выставляешь параметра min и max для limit2 ? Он же должен просто сглаживать, и ничего больше. ИМХО лучше использовать только 1 limit2 и ничего не mux-ить лучше пределы по абсолютным значениям контроллировать в том же ladder.
что-то не понял)).... Тут была другая проблема... на выходе gearchange а (не limit2) была такая ситуация... я
задаю к примеру S2000 оборотов и это на второй передаче (1000-4000диапазон) скорости... на выходе из gearchange появляется 2000 ... кусок по плавному разгону набирает свои 2000.
задаю к примеру M5 на выходе из gearchange остается висеть 1000 ( нижний предел диапазона задается параметром gearchange.0.min2 ), а мне надо было что-б он плавно тормознул до нуля...)
тут я и сунул mux между gearchange и плавным разгоном.. который по команде m5 на вход плавного разгона сует значение 0 и тот в свою очередь плавно тормозит)
Nick писал(а):А это не оно:
motion.spindle-speed-out OUT FLOAT
Desired spindle speed in rotations per minute

motion.spindle-speed-out-rps OUT float
Desired spindle speed in rotations per second
Не.. они уже после множителя jog.

мне надо так.. задал я скорость в программе 900 к примеру ( перавая передача 0-1000 об) .. приспичило меня покрутить (jog 75%-125% так удобно для работы) так если я выйду за пределы 900*120% = 1080 .. он будет пытаться переключить передачу... мне этого не надо.... надо что-б выбор передачи основывался ТОЛЬКО на скорости заданной в программе.
" Linux CNC - наше всё"
Аватара пользователя
Dmaster
Мастер
Сообщения: 1271
Зарегистрирован: 15 июл 2011, 13:36
Репутация: 476
Контактная информация:

Re: Коробка шпинделя.. Нужны советы!)

Сообщение Dmaster »

можно конечно motion.spindle-speed-out поделить на halui.spindle-override.value и получить нужное значение.... как енто поделить?).. или откуда взять это значение, что-б колхоза по меньше

В ладдере делить не вариант.. lunuxcnc вылетает при значенни halui.spindle-override.value меньше 1
" Linux CNC - наше всё"
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Коробка шпинделя.. Нужны советы!)

Сообщение Nick »

Dmaster писал(а):мне надо так.. задал я скорость в программе 900 к примеру ( перавая передача 0-1000 об) .. приспичило меня покрутить (jog 75%-125% так удобно для работы) так если я выйду за пределы 900*120% = 1080 .. он будет пытаться переключить передачу... мне этого не надо.... надо что-б выбор передачи основывался ТОЛЬКО на скорости заданной в программе.
А понял, ты не jog имеешь в виду, а spindle-override...

Поделить... что-то ч ходу не нашел такого компонента... есть invert, если его c mult соединиь получится деление: http://linuxcnc.org/docs/html/man/man9/invert.9.html
Аватара пользователя
Dmaster
Мастер
Сообщения: 1271
Зарегистрирован: 15 июл 2011, 13:36
Репутация: 476
Контактная информация:

Re: Коробка шпинделя.. Нужны советы!)

Сообщение Dmaster »

такс, значит буду пытаться сделать 2 варианта автоматический и с М кодом ...... самый -самый вопрос.... M41 и M42 для задания диапазонов....
[RS274NGC]
REMAP=M41 modalgroup=7 ngc=m41
(Этого , как я понимаю хватит для исполнения по команде m41 файла m41.ngc который засунуть в [DISPLAY]NC_FILES или [RS274NGC]SUBROUTINE_PATH ...так?)
" Linux CNC - наше всё"
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Коробка шпинделя.. Нужны советы!)

Сообщение Nick »

ну примерно так... ты сам уже пробовал?
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Коробка шпинделя.. Нужны советы!)

Сообщение nkp »

Dmaster писал(а):как переключать значение параметра, когда мне надо?
все же напишу - мож пригодится не только в этом случае
(не знаю почему в емс это не исправят в принципе...)
чтоб менять значение параметра динамически - делаем его пином :shock:
делов - 40 секунд...
в коде компонента :
(для просмотра содержимого нажмите на ссылку)

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

component gearchange """Select from one two speed ranges
The output will be a value scaled for the selected gear, and clamped to
the min/max values for that gear.
The scale of gear 1 is assumed to be 1, so the output device scale
should be chosen accordingly.
The scale of gear 2 is relative to gear 1, so if gear 2 runs the spindle
2.5 times as fast as gear 1, scale2 should be set to 2.5.""";
pin in bit sel "Gear selection input";
pin in float speed_in "Speed command input";
pin out float speed_out "Speed command to DAC/PWM";
pin in bit dir_in "Direction command input";
pin out bit dir_out "Direction output - possibly inverted for second gear";
param rw float min1 = 0 "Minimum allowed speed in gear range 1";
param rw float max1 = 100000 "Maximum allowed speed in gear range 1";
param rw float min2 = 0 "Minimum allowed speed in gear range 2";
param rw float max2 = 100000 "Maximum allowed speed in gear range 2";
param rw float scale2 = 1.0 """Relative scale of gear 2 vs. gear 1
Since it is assumed that gear 2 is "high gear", \\fBscale2\\fR must be
greater than 1, and will be reset to 1 if set lower.""";
param rw bit reverse = 0 "Set to 1 to reverse the spindle in second gear";

function _;
license "GPL";
;;
FUNCTION(_) {
    hal_float_t temp_in = speed_in;
    hal_float_t sign=1;
    /* Assume that the output device is scaled so that gear 1 is "Pass-through" */
    /* the other gear(s) need to be scaled by the relative scale for that gear */
    if (scale2 < 1) scale2 = 1;
    if (temp_in < 0) {
	sign = -1;
	temp_in = -temp_in;
    }
    if(sel) {		/* gear 2 */
    	if (temp_in < min2) temp_in = min2;
    	else if (temp_in > max2) temp_in = max2;
    	temp_in /= scale2;		/* scale up to second gear output range */
	dir_out = dir_in ^ reverse;
    } else {
    	if (temp_in < min1) temp_in = min1;
    	else if (temp_in > max1) temp_in = max1;
	dir_out = dir_in;
    }
    speed_out = sign*temp_in;
}
меняем строку:

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

param rw float min1 = 0 "Minimum allowed speed in gear range 1";
на:

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

pin in float min1  "Minimum allowed speed in gear range 1";
исправленый файл ложим в домашнюю папку , открываем терминал и пишем:

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

sudo comp --install   gearchange.comp
вводим пароль
всё ;)
теперь наш параметр gearchange.0.min1 стал пином gearchange.0.min1
и мы можем ним управлять:
Выделение(019).jpg (2920 просмотров) <a class='original' href='./download/file.php?id=15492&mode=view' target=_blank>Загрузить оригинал (415.73 КБ)</a>
Выделение(020).jpg (2920 просмотров) <a class='original' href='./download/file.php?id=15493&mode=view' target=_blank>Загрузить оригинал (397.02 КБ)</a>
===========
оригинальный файл компонента gearchange:
gearchange.comp.tar
(10 КБ) 470 скачиваний
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Коробка шпинделя.. Нужны советы!)

Сообщение nkp »

все сказанное в предыдущем посте касается емс ,установленной в систему...
как использовать comp для внесений изменений в компоненты емс run-in-place (емс установленная из исходников в отдельную директорию)??
просматривал исходники утилиты comp:
comp.txt
(51.64 КБ) 1114 скачиваний
на предмет "нужных" для этого аргументов:

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

    for k, v in opts:
        if k in ("-u", "--userspace"):
            userspace = True
        if k in ("-i", "--install"):
            mode = INSTALL
        if k in ("-c", "--compile"):
            mode = COMPILE
        if k in ("-p", "--preprocess"):
            mode = PREPROCESS
        if k in ("-d", "--document"):
            mode = DOCUMENT
        if k in ("-j", "--install-doc"):
            mode = INSTALLDOC
        if k in ("-j", "--view-doc"):
            mode = VIEWDOC
        if k in ("--print-modinc",):
            mode = MODINC
        if k in ("-l", "--require-license"):
            require_license = True
        if k in ("-o", "--outfile"):
            if len(args) != 1:
                raise SystemExit, "Cannot specify -o with multiple input files"
            outfile = v 
        if k in ("-?", "-h", "--help"):
            usage(0)
пока просто вношу изменения в "основной" компонент (в системе) , а потом переношу его в папку с емс run-in-place...
Аватара пользователя
PKM
Почётный участник
Почётный участник
Сообщения: 4263
Зарегистрирован: 31 мар 2011, 18:11
Репутация: 705
Настоящее имя: Андрей
Откуда: Украина
Контактная информация:

Re: Коробка шпинделя.. Нужны советы!)

Сообщение PKM »

nkp писал(а):как использовать comp для внесений изменений в компоненты емс run-in-place (емс установленная из исходников в отдельную директорию)??
comp для этого совершенно не нужен:

cd src
make

nkp писал(а):пока просто вношу изменения в "основной" компонент (в системе) , а потом переношу его в папку с емс run-in-place...
А вот для компонентов, не входящих в оригинальную установку - приходится так делать...
Последний раз редактировалось PKM 17 июн 2013, 07:54, всего редактировалось 1 раз.
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Коробка шпинделя.. Нужны советы!)

Сообщение nkp »

PKM писал(а):cd srcmake
то есть в src ложу исправленный файл и выполняю make ?
Аватара пользователя
PKM
Почётный участник
Почётный участник
Сообщения: 4263
Зарегистрирован: 31 мар 2011, 18:11
Репутация: 705
Настоящее имя: Андрей
Откуда: Украина
Контактная информация:

Re: Коробка шпинделя.. Нужны советы!)

Сообщение PKM »

nkp писал(а):то есть в src ложу исправленный файл и выполняю make ?
Я их там на месте и исправляю :)

Причем установщик просматривает все файлы на предмет изменений и компилирует только нужный файл
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Коробка шпинделя.. Нужны советы!)

Сообщение nkp »

Спасибо за науку!! :beer_blow:
Аватара пользователя
PKM
Почётный участник
Почётный участник
Сообщения: 4263
Зарегистрирован: 31 мар 2011, 18:11
Репутация: 705
Настоящее имя: Андрей
Откуда: Украина
Контактная информация:

Re: Коробка шпинделя.. Нужны советы!)

Сообщение PKM »

На здоровье! ;)
А вот как сделать, чтобы comp файлы помещал в RIP - это вопрос любопытный. rip-environment не помогает
Аватара пользователя
Dmaster
Мастер
Сообщения: 1271
Зарегистрирован: 15 июл 2011, 13:36
Репутация: 476
Контактная информация:

Re: Коробка шпинделя.. Нужны советы!)

Сообщение Dmaster »

Ужасы то какие)!!! может пин заданной скорости, без учета override то-же найдется?
" Linux CNC - наше всё"
Ответить

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