Станок канатной резки камня с ЧПУ

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

Re: Станок канатной резки камня с ЧПУ

Сообщение Nick »

Только надо еще FERROR для этой оси сделать очень большой, чтобы не выскакивали постоянно ошибки. Или axis.2.motor-pos-cmd завести сразу обратно на axis.2.motor-pos-fb
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Станок канатной резки камня с ЧПУ

Сообщение nkp »

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

Re: Станок канатной резки камня с ЧПУ

Сообщение nkp »

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

Re: Станок канатной резки камня с ЧПУ

Сообщение Nick »

nkp писал(а):есть готовая кинематика на linuxcnc.org
Ты специально название не написал, чтобы интригу затянуть? :)
nkp писал(а):pid tuning не запускается на компе станка - еще завтра поразбираемся...
А что ты имеешь в виду под словос pid tuning?
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Станок канатной резки камня с ЧПУ

Сообщение nkp »

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

Re: Станок канатной резки камня с ЧПУ

Сообщение Nick »

tangentkins - а что, нормально. Все тоже самое, только в кинематике, и даже возможность управления осью через пин auto сделали.
А работать похоже будет 1 в 1 с нашим вариантом.
nkp писал(а): (для просмотра содержимого нажмите на ссылку)
А ты про это.
Так есть же Станок - Калибровка, я думал pid tuning после этого не актуален...
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Станок канатной резки камня с ЧПУ

Сообщение Serg »

Nick писал(а):Так есть же Станок - Калибровка, я думал pid tuning после этого не актуален...
А есть описание сего процесса? А то я запустил, увидел что можно менять параметры, нажал "Тест" - ничего не произошло... :thinking:
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Станок канатной резки камня с ЧПУ

Сообщение nkp »

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

Re: Станок канатной резки камня с ЧПУ

Сообщение nkp »

вот кстатии исходник самой кинематики tangentkins.c:

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

#include "kinematics.h"		/* these decls */
#include "hal.h"
#include "rtapi_math.h"

static PmCartesian old; // This structure stores the previous position
typedef struct { hal_bit_t *pin_auto ;} tangentkins_hal_t;
tangentkins_hal_t *data;

int kinematicsForward(const double *joints,
                      EmcPose * pos,
                      const KINEMATICS_FORWARD_FLAGS * fflags,
                      KINEMATICS_INVERSE_FLAGS * iflags)
{
    pos->tran.x = joints[0];
    pos->tran.y = joints[1];
    pos->tran.z = joints[2];
    pos->a = joints[3];
    pos->b = joints[4];
    pos->c = joints[5];
    pos->u = joints[6];
    pos->v = joints[7];
    pos->w = joints[8];
    
    return 0;
}

int kinematicsInverse(const EmcPose * pos,
                      double *joints,
                      const KINEMATICS_INVERSE_FLAGS * iflags,
                      KINEMATICS_FORWARD_FLAGS * fflags)
{
    
    static double dx = 0, dy = 0, A = 0;
    
    dy = pos->tran.y - old.y;
    dx = pos->tran.x - old.x;
    if (*data->pin_auto){
        if (dx != 0 || dy != 0) {
            A = atan2(dx, dy)*(180.0/3.141592);
        }
    }else{
        A=pos->a;
    }
    
    joints[0] = pos->tran.x;
    joints[1] = pos->tran.y;
    joints[2] = pos->tran.z;
    joints[3] = A;
    joints[4] = pos->b;
    joints[5] = pos->c;
    joints[6] = pos->u;
    joints[7] = pos->v;
    joints[8] = pos->w;
    
    
    old.x = pos->tran.x; // store previous value here to exclude kins-based movements
    old.y = pos->tran.y;
    
    return 0;
}

/* implemented for these kinematics as giving joints preference */
int kinematicsHome(EmcPose * world,
                   double *joint,
                   KINEMATICS_FORWARD_FLAGS * fflags,
                   KINEMATICS_INVERSE_FLAGS * iflags)
{
    *fflags = 0;
    *iflags = 0;
    
    return kinematicsForward(joint, world, fflags, iflags);
}

KINEMATICS_TYPE kinematicsType()
{
    return KINEMATICS_BOTH;
}

#include "rtapi.h"		/* RTAPI realtime OS API */
#include "rtapi_app.h"		/* RTAPI realtime module decls */
#include "hal.h"

EXPORT_SYMBOL(kinematicsType);
EXPORT_SYMBOL(kinematicsForward);
EXPORT_SYMBOL(kinematicsInverse);
MODULE_LICENSE("GPL");

int comp_id;
int rtapi_app_main(void) {
    comp_id = hal_init("tangentkins");
    if(comp_id > 0) {
	data = hal_malloc(sizeof(tangentkins_hal_t));
 	if(hal_pin_bit_new("tangentkins.auto", HAL_IN, &(data->pin_auto), comp_id) < 0 ){
            rtapi_print("Failed to create pin in tangentkins");
 	    return -EINVAL;
        }
 	hal_ready(comp_id);
 	return 0;
    }
    return comp_id;
}

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

Re: Станок канатной резки камня с ЧПУ

Сообщение Nick »

nkp писал(а):работает -только поворачивает по длинному пути ...
надо обязательно доработать ее до нормальной...
nkp писал(а):в кинематике мы задание (угол поворота) подаем в планировщик и далее на пид ...
если с atan подаем сразу на пид - так конечно работать не сможет...
Как я и говорил, надо сделать вывод по mod
http://ru.wikipedia.org/wiki/Mod_(%D0%B ... %B8%D1%8F)
Блин, вот поэтому я и не люблю углы, сколько я с ними намучился с gcodetools....

В общем надо сравнивать A mod 360 и (A-360) mod 360, и смотреть, что будет по модулю меньше...
или как-то так...
больше смогу сказать завтра или позже - сейчас я :beer: :halfbeer: :nobeer: :beer_blow: :mrgreen: :mrgreen: :mrgreen:
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Станок канатной резки камня с ЧПУ

Сообщение nkp »

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

Re: Станок канатной резки камня с ЧПУ

Сообщение nkp »

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

Re: Станок канатной резки камня с ЧПУ

Сообщение Nick »

Так вроде в любом режиме должно работать, главное пин tangentkins.auto в 1 поставить, т.е. наверное что-то вроде
setp tangentkins.auto 1 должно сработать...

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

Re: Станок канатной резки камня с ЧПУ

Сообщение nkp »

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

Re: Станок канатной резки камня с ЧПУ

Сообщение Nick »

nkp писал(а):работает в MDI и auto ...
пин tangentkins.auto конечно активируется - но тщетно...
О попробуй переключиться в режим world если такой есть.... может он джоггит только joints а не оси, и поэтому кинематика не работает...
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Станок канатной резки камня с ЧПУ

Сообщение nkp »

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

Re: Станок канатной резки камня с ЧПУ

Сообщение Nick »

Незнаю :), где-нибудь в linuxcnc, там вроде в gantry-kins было такое переключение...

может ну ее эту кинематику? :) Тем более ты уже пробовал, что там происходит при перескоке через 0?
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 »

Я боюсь, что в режиме manual может идпи управление непосредственно joint-ами... О кcтати посмотри в halui что на этих пинах:
halui.mode.is-joint bit out
pin showing joint by joint jog mode is on
halui.mode.is-teleop bit out
pin showing coordinated jog mode is on

halui.mode.joint bit in
pin for requesting joint by joint jog mode
halui.mode.teleop bit in
pin for requesting coordinated jog mode
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Станок канатной резки камня с ЧПУ

Сообщение nkp »

Выделение(037).jpg (4956 просмотров) <a class='original' href='./download/file.php?id=16501&sid=77e4e9a6e2a73cf8435eb68df548a9b0&mode=view' target=_blank>Загрузить оригинал (89.26 КБ)</a>
Ответить

Вернуться в «Прочие станки»