Страница 2 из 5
Re: Коробка шпинделя.. Нужны советы!)
Добавлено: 16 июн 2013, 12:48
Dmaster
nkp писал(а):здесь даже может быть ошибка вызвана иной причиной:
classicladder.0.s32out-00 пин s32
а gearchange.0.min2 пин float
nkp писал(а):
думаю MUXом
это то-же самое получится(((
Re: Коробка шпинделя.. Нужны советы!)
Добавлено: 16 июн 2013, 12:54
nkp
Dmaster писал(а):это то-же самое получится(((
если ты имеешь в виду несоответствие типов - то mux переключается пином
bit
пин true - значение выхода одно
пин false - значение выхода другое
тип выхода - float
=========
или я не понял - что "это то-же самое получится((("
Re: Коробка шпинделя.. Нужны советы!)
Добавлено: 16 июн 2013, 13:02
Dmaster
Выход Float можно получить и из ладдера.. Проблема заключается в том, что HAL не может соединить пин и параметр... (((
Re: Коробка шпинделя.. Нужны советы!)
Добавлено: 16 июн 2013, 13:07
nkp
Dmaster писал(а):не может соединить пин и параметр
должен мочь...)))
как же он
RW ??
Re: Коробка шпинделя.. Нужны советы!)
Добавлено: 16 июн 2013, 13:09
Dmaster
Мы пойдем другим путем!!!!! при команде m5 входной пин модуля плавного разгоназаменять с пина gearchage на другой, равный 0 и тут уже mux-ом
nkp писал(а):должен мочь...)))
как же он RW ??
а вот не могеёт
Re: Коробка шпинделя.. Нужны советы!)
Добавлено: 16 июн 2013, 14:58
Dmaster
вопрос!... с какого пина взять заданное значение скорости шпинделя, которое выходит из интерпритатора s1000 к примеру.....мне нужно, что-б при jog шпинделя он не пытался переключать передачи..
Re: Коробка шпинделя.. Нужны советы!)
Добавлено: 16 июн 2013, 15:24
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
Re: Коробка шпинделя.. Нужны советы!)
Добавлено: 16 июн 2013, 15:43
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 .. он будет пытаться переключить передачу... мне этого не надо.... надо что-б выбор передачи основывался ТОЛЬКО на скорости заданной в программе.
Re: Коробка шпинделя.. Нужны советы!)
Добавлено: 16 июн 2013, 15:48
Dmaster
можно конечно motion.spindle-speed-out поделить на halui.spindle-override.value и получить нужное значение.... как енто поделить?).. или откуда взять это значение, что-б колхоза по меньше
В ладдере делить не вариант.. lunuxcnc вылетает при значенни halui.spindle-override.value меньше 1
Re: Коробка шпинделя.. Нужны советы!)
Добавлено: 16 июн 2013, 20:38
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
Re: Коробка шпинделя.. Нужны советы!)
Добавлено: 16 июн 2013, 21:34
Dmaster
такс, значит буду пытаться сделать 2 варианта автоматический и с М кодом ...... самый -самый вопрос.... M41 и M42 для задания диапазонов....
[RS274NGC]
REMAP=M41 modalgroup=7 ngc=m41
(Этого , как я понимаю хватит для исполнения по команде m41 файла m41.ngc который засунуть в [DISPLAY]NC_FILES или [RS274NGC]SUBROUTINE_PATH ...так?)
Re: Коробка шпинделя.. Нужны советы!)
Добавлено: 16 июн 2013, 23:19
Nick
ну примерно так... ты сам уже пробовал?
Re: Коробка шпинделя.. Нужны советы!)
Добавлено: 17 июн 2013, 04:25
nkp
Dmaster писал(а):как переключать значение параметра, когда мне надо?
все же напишу - мож пригодится не только в этом случае
(не знаю почему в емс это не исправят в принципе...)
чтоб менять значение параметра динамически - делаем его пином
делов - 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";
исправленый файл ложим в домашнюю папку , открываем терминал и пишем:
вводим пароль
всё
теперь наш параметр
gearchange.0.min1 стал пином
gearchange.0.min1
и мы можем ним управлять:
===========
оригинальный файл компонента gearchange:
Re: Коробка шпинделя.. Нужны советы!)
Добавлено: 17 июн 2013, 06:25
nkp
все сказанное в предыдущем посте касается емс ,установленной в систему...
как использовать
comp для внесений изменений в компоненты емс run-in-place (емс установленная из исходников в отдельную директорию)??
просматривал исходники утилиты comp:
на предмет "нужных" для этого аргументов:
Код: Выделить всё
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...
Re: Коробка шпинделя.. Нужны советы!)
Добавлено: 17 июн 2013, 07:51
PKM
nkp писал(а):как использовать comp для внесений изменений в компоненты емс run-in-place (емс установленная из исходников в отдельную директорию)??
comp для этого совершенно не нужен:
cd src
make
nkp писал(а):пока просто вношу изменения в "основной" компонент (в системе) , а потом переношу его в папку с емс run-in-place...
А вот для компонентов, не входящих в оригинальную установку - приходится так делать...
Re: Коробка шпинделя.. Нужны советы!)
Добавлено: 17 июн 2013, 07:54
nkp
PKM писал(а):cd srcmake
то есть в src ложу исправленный файл и выполняю make ?
Re: Коробка шпинделя.. Нужны советы!)
Добавлено: 17 июн 2013, 07:55
PKM
nkp писал(а):то есть в src ложу исправленный файл и выполняю make ?
Я их там на месте и исправляю
Причем установщик просматривает все файлы на предмет изменений и компилирует только нужный файл
Re: Коробка шпинделя.. Нужны советы!)
Добавлено: 17 июн 2013, 08:00
nkp
Спасибо за науку!!

Re: Коробка шпинделя.. Нужны советы!)
Добавлено: 17 июн 2013, 08:15
PKM
На здоровье!

А вот как сделать, чтобы comp файлы помещал в RIP - это вопрос любопытный. rip-environment не помогает
Re: Коробка шпинделя.. Нужны советы!)
Добавлено: 17 июн 2013, 08:56
Dmaster
Ужасы то какие)!!! может пин заданной скорости, без учета override то-же найдется?