Оживление 16А20Ф3!
-
Leo_1943
- Мастер
- Сообщения: 875
- Зарегистрирован: 03 май 2014, 07:24
- Репутация: 250
- Настоящее имя: Леонид
- Откуда: Харьков
Re: Оживление 16А20Ф3!
Распаковать не дает, пишет "Тип архива не поддерживается".
-
nkp
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Оживление 16А20Ф3!
эти архиваторы должны быть в системе:
зы
чтоб распаковывать rar архивы в линукс:
sudo apt-get install unrar
или
sudo apt-get install unrar-free
pps
на крайний
случай - содержимое файла:
чтоб распаковывать rar архивы в линукс:
sudo apt-get install unrar
или
sudo apt-get install unrar-free
pps
на крайний
Код: Выделить всё
/* Autogenerated by ../bin/halcompile on Sat Jun 18 10:37:26 2016 -- do not edit */
#include "rtapi.h"
#ifdef RTAPI
#include "rtapi_app.h"
#endif
#include "rtapi_string.h"
#include "rtapi_errno.h"
#include "hal.h"
#include "rtapi_math64.h"
static int comp_id;
#ifdef MODULE_INFO
MODULE_INFO(linuxcnc, "component:lincurve:one-dimensional lookup table");
MODULE_INFO(linuxcnc, "descr:This component can be used to map any floating-point input to a\nfloating-point output. Typical uses would include linearisation of\nthermocouples, defining PID gains that vary with external factors or to\nsubstitute for any mathematical function where absolute accuracy is not\nrequired.\n\nThe component can be thought of as a 2-dimensional graph of points in (x,y)\nspace joined by straight lines. The input value is located on the x axis,\nfollowed up until it touches the line, and the output of the component is set\nto the corresponding y-value.\n\nThe (x,y) points are defined by the x-val-NN and y-val-NN parameters which need\nto be set in the HAL file using \"setp\" commands.\n\nThe maximum number if (x,y) points supported is 16.\n\nFor input values less than the x-val-00 breakpoint the y-val-00 is returned. \nFor x greater than the largest x-val-NN the yval corresponding to x-max is\nreturned (ie, no extrapolation is performed.)\n\nSample usage: loadrt lincurve count=3 personality=4,4,4 \nfor a set of three 4-element graphs.\n ");
MODULE_INFO(linuxcnc, "param:x-val-##:float:(16, 'personality'):rw:axis breakpoints:None:None");
MODULE_INFO(linuxcnc, "param:y-val-##:float:(16, 'personality'):rw:output values to be interpolated:None:None");
MODULE_INFO(linuxcnc, "pin:in_:float:0:in:The input value:None:None");
MODULE_INFO(linuxcnc, "pin:out_:float:0:out:The output value:None:None");
MODULE_INFO(linuxcnc, "pin:out-io:float:0:io:The output value, compatible with PID gains:None:None");
MODULE_INFO(linuxcnc, "author:Andy Pugh");
MODULE_INFO(linuxcnc, "license:GPL");
MODULE_INFO(linuxcnc, "funct:_:1:");
MODULE_LICENSE("GPL");
#endif // MODULE_INFO
struct __comp_state {
struct __comp_state *_next;
int _personality;
hal_float_t *in_;
hal_float_t *out_;
hal_float_t *out_io;
hal_float_t x_val[16];
hal_float_t y_val[16];
unsigned i;
};
struct __comp_state *__comp_first_inst=0, *__comp_last_inst=0;
static void _(struct __comp_state *__comp_inst, long period);
static int __comp_get_data_size(void);
static int extra_setup(struct __comp_state *__comp_inst, char *prefix, long extra_arg);
#undef TRUE
#define TRUE (1)
#undef FALSE
#define FALSE (0)
#undef true
#define true (1)
#undef false
#define false (0)
static int export(char *prefix, long extra_arg, long personality) {
char buf[HAL_NAME_LEN + 1];
int r = 0;
int j = 0;
int sz = sizeof(struct __comp_state) + __comp_get_data_size();
struct __comp_state *inst = hal_malloc(sz);
memset(inst, 0, sz);
inst->_personality = personality;
r = extra_setup(inst, prefix, extra_arg);
if(r != 0) return r;
personality = inst->_personality;
r = hal_pin_float_newf(HAL_IN, &(inst->in_), comp_id,
"%s.in", prefix);
if(r != 0) return r;
r = hal_pin_float_newf(HAL_OUT, &(inst->out_), comp_id,
"%s.out", prefix);
if(r != 0) return r;
r = hal_pin_float_newf(HAL_IO, &(inst->out_io), comp_id,
"%s.out-io", prefix);
if(r != 0) return r;
for(j=0; j < personality; j++) {
r = hal_param_float_newf(HAL_RW, &(inst->x_val[j]), comp_id,
"%s.x-val-%02d", prefix, j);
if(r != 0) return r;
}
for(j=0; j < personality; j++) {
r = hal_param_float_newf(HAL_RW, &(inst->y_val[j]), comp_id,
"%s.y-val-%02d", prefix, j);
if(r != 0) return r;
}
inst->i = 0.0;
rtapi_snprintf(buf, sizeof(buf), "%s", prefix);
r = hal_export_funct(buf, (void(*)(void *inst, long))_, inst, 1, 0, comp_id);
if(r != 0) return r;
if(__comp_last_inst) __comp_last_inst->_next = inst;
__comp_last_inst = inst;
if(!__comp_first_inst) __comp_first_inst = inst;
return 0;
}
static int default_count=1, count=0;
char *names[16] = {0,};
RTAPI_MP_INT(count, "number of lincurve");
RTAPI_MP_ARRAY_STRING(names, 16, "names of lincurve");
static int personality[16] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
RTAPI_MP_ARRAY_INT(personality, 16, "personality of each lincurve");
int rtapi_app_main(void) {
int r = 0;
int i;
comp_id = hal_init("lincurve");
if(comp_id < 0) return comp_id;
if(count && names[0]) {
rtapi_print_msg(RTAPI_MSG_ERR,"count= and names= are mutually exclusive\n");
return -EINVAL;
}
if(!count && !names[0]) count = default_count;
if(count) {
for(i=0; i<count; i++) {
char buf[HAL_NAME_LEN + 1];
rtapi_snprintf(buf, sizeof(buf), "lincurve.%d", i);
r = export(buf, i, personality[i%16]);
if(r != 0) break;
}
} else {
int max_names = sizeof(names)/sizeof(names[0]);
for(i=0; (i < max_names) && names[i]; i++) {
if (strlen(names[i]) < 1) {
rtapi_print_msg(RTAPI_MSG_ERR, "names[%d] is invalid (empty string)\n", i);
r = -EINVAL;
break;
}
r = export(names[i], i, personality[i%16]);
if(r != 0) break;
}
}
if(r) {
hal_exit(comp_id);
} else {
hal_ready(comp_id);
}
return r;
}
void rtapi_app_exit(void) {
hal_exit(comp_id);
}
#undef FUNCTION
#define FUNCTION(name) static void name(struct __comp_state *__comp_inst, long period)
#undef EXTRA_SETUP
#define EXTRA_SETUP() static int extra_setup(struct __comp_state *__comp_inst, char *prefix, long extra_arg)
#undef EXTRA_CLEANUP
#define EXTRA_CLEANUP() static void extra_cleanup(void)
#undef fperiod
#define fperiod (period * 1e-9)
#undef in_
#define in_ (0+*__comp_inst->in_)
#undef out_
#define out_ (*__comp_inst->out_)
#undef out_io
#define out_io (*__comp_inst->out_io)
#undef x_val
#define x_val(i) (__comp_inst->x_val[i])
#undef y_val
#define y_val(i) (__comp_inst->y_val[i])
#undef i
#define i (__comp_inst->i)
#undef personality
#define personality (__comp_inst->_personality)
#line 43 "hal/components/lincurve.comp"
FUNCTION(_){
double f, x;
x = in_;
if (x >= x_val(personality-1)) {
out_ = y_val(personality-1);
out_io = out_;
return;
}
if (x <= x_val(0)) {
out_ = y_val(0);
out_io = out_;
return;
}
while (x > x_val(i+1)) { i++;}
while (x < (x_val(i))) { i--;}
f = (x - x_val(i))/(x_val(i+1)-x_val(i));
out_ = y_val(i) + f * (y_val(i+1) - y_val(i));
out_io = out_;
}
EXTRA_SETUP(){
if (personality > 16) personality = 16;
if (personality < 2) personality = 2;
return 0;
}
static int __comp_get_data_size(void) { return 0; }-
Leo_1943
- Мастер
- Сообщения: 875
- Зарегистрирован: 03 май 2014, 07:24
- Репутация: 250
- Настоящее имя: Леонид
- Откуда: Харьков
Re: Оживление 16А20Ф3!
Распаковал и...
sss@sss-desktop:~$ sudo comp --install lincurve.c
[sudo] password for sss:
make KBUILD_EXTRA_SYMBOLS=/usr/realtime-2.6.32-122-rtai/modules/linuxcnc/Module.symvers -C /usr/src/linux-headers-2.6.32-122-rtai SUBDIRS=`pwd` CC=gcc V=0 modules
make[1]: Вход в каталог `/usr/src/linux-headers-2.6.32-122-rtai'
CC [M] /tmp/tmpU8j5_4/lincurve.o
/tmp/tmpU8j5_4/lincurve.c:9:26: error: rtapi_math64.h: Нет такого файла или каталога
make[2]: *** [/tmp/tmpU8j5_4/lincurve.o] Ошибка 1
make[1]: *** [_module_/tmp/tmpU8j5_4] Ошибка 2
make[1]: Выход из каталога `/usr/src/linux-headers-2.6.32-122-rtai'
make: *** [modules] Ошибка 2
sss@sss-desktop:~$
sss@sss-desktop:~$ sudo comp --install lincurve.c
[sudo] password for sss:
make KBUILD_EXTRA_SYMBOLS=/usr/realtime-2.6.32-122-rtai/modules/linuxcnc/Module.symvers -C /usr/src/linux-headers-2.6.32-122-rtai SUBDIRS=`pwd` CC=gcc V=0 modules
make[1]: Вход в каталог `/usr/src/linux-headers-2.6.32-122-rtai'
CC [M] /tmp/tmpU8j5_4/lincurve.o
/tmp/tmpU8j5_4/lincurve.c:9:26: error: rtapi_math64.h: Нет такого файла или каталога
make[2]: *** [/tmp/tmpU8j5_4/lincurve.o] Ошибка 1
make[1]: *** [_module_/tmp/tmpU8j5_4] Ошибка 2
make[1]: Выход из каталога `/usr/src/linux-headers-2.6.32-122-rtai'
make: *** [modules] Ошибка 2
sss@sss-desktop:~$
-
nkp
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Оживление 16А20Ф3!
тут уж звиняйтеLeo_1943 писал(а):c:9:26: error: rtapi_math64.h: Нет такого файла или каталога
в 2.5 наверно еще нет файла rtapi_math64.h либо обновлять емс, либо попробовать подсунуть этот файл в папку
/usr/include/linuxcnc/
(под рутом)
распаковать архив rtapi_math64.h.tar
в терминале:
sudo nautilus
в открывшемся окне открыть папку /usr/include/linuxcnc/
и положить туда файл rtapi_math64.h
-------------
мало шансов ,что заработает , но все же...
-
Leo_1943
- Мастер
- Сообщения: 875
- Зарегистрирован: 03 май 2014, 07:24
- Репутация: 250
- Настоящее имя: Леонид
- Откуда: Харьков
Re: Оживление 16А20Ф3!
После всех рекомендаций...
не заработало
sss@sss-desktop:~$ sudo comp --install lincurve.c
[sudo] password for sss:
make KBUILD_EXTRA_SYMBOLS=/usr/realtime-2.6.32-122-rtai/modules/linuxcnc/Module.symvers -C /usr/src/linux-headers-2.6.32-122-rtai SUBDIRS=`pwd` CC=gcc V=0 modules
make[1]: Вход в каталог `/usr/src/linux-headers-2.6.32-122-rtai'
CC [M] /tmp/tmpOoDPPW/lincurve.o
In file included from /tmp/tmpOoDPPW/lincurve.c:9:
/usr/include/linuxcnc/rtapi_math64.h:21:26: error: rtapi_stdint.h: Нет такого файла или каталога
make[2]: *** [/tmp/tmpOoDPPW/lincurve.o] Ошибка 1
make[1]: *** [_module_/tmp/tmpOoDPPW] Ошибка 2
make[1]: Выход из каталога `/usr/src/linux-headers-2.6.32-122-rtai'
make: *** [modules] Ошибка 2
sss@sss-desktop:~$
Буду переставлять на более высокую версию
не заработало
sss@sss-desktop:~$ sudo comp --install lincurve.c
[sudo] password for sss:
make KBUILD_EXTRA_SYMBOLS=/usr/realtime-2.6.32-122-rtai/modules/linuxcnc/Module.symvers -C /usr/src/linux-headers-2.6.32-122-rtai SUBDIRS=`pwd` CC=gcc V=0 modules
make[1]: Вход в каталог `/usr/src/linux-headers-2.6.32-122-rtai'
CC [M] /tmp/tmpOoDPPW/lincurve.o
In file included from /tmp/tmpOoDPPW/lincurve.c:9:
/usr/include/linuxcnc/rtapi_math64.h:21:26: error: rtapi_stdint.h: Нет такого файла или каталога
make[2]: *** [/tmp/tmpOoDPPW/lincurve.o] Ошибка 1
make[1]: *** [_module_/tmp/tmpOoDPPW] Ошибка 2
make[1]: Выход из каталога `/usr/src/linux-headers-2.6.32-122-rtai'
make: *** [modules] Ошибка 2
sss@sss-desktop:~$
Буду переставлять на более высокую версию
-
Leo_1943
- Мастер
- Сообщения: 875
- Зарегистрирован: 03 май 2014, 07:24
- Репутация: 250
- Настоящее имя: Леонид
- Откуда: Харьков
Re: Оживление 16А20Ф3!
Всем доброго дня!
Была такая тема,не нашёл.
Суть: умер Тахо на двигателе, но помню- можно выход месы аналоговый завести вместо Тахо.
Напомнить пожалуйста где искать, или новую тему заряжать?
Была такая тема,не нашёл.
Суть: умер Тахо на двигателе, но помню- можно выход месы аналоговый завести вместо Тахо.
Напомнить пожалуйста где искать, или новую тему заряжать?
-
Duhas
- Мастер
- Сообщения: 1961
- Зарегистрирован: 10 окт 2015, 23:25
- Репутация: 285
- Настоящее имя: Андрей
- Откуда: Красноярск
- Контактная информация:
Re: Оживление 16А20Ф3!
Какой движек? у меня лежит пара болгар на опыты, тахо мне не нужны с них... правда в какой они состоянии тоже вопрос.
- N1X
- Мастер
- Сообщения: 3653
- Зарегистрирован: 16 фев 2015, 21:19
- Репутация: 1646
- Настоящее имя: Владимир
- Откуда: Беларусь, Гомель
- Контактная информация:
Re: Оживление 16А20Ф3!
Регулирование ухудшится... А чистка коллектора родного Тахо не помогла? Или сопротивление на ламелях скачет?
-
Leo_1943
- Мастер
- Сообщения: 875
- Зарегистрирован: 03 май 2014, 07:24
- Репутация: 250
- Настоящее имя: Леонид
- Откуда: Харьков
Re: Оживление 16А20Ф3!
Умер вашпе, сопротивление бесконечность.N1X писал(а):Регулирование ухудшится... А чистка коллектора родного Тахо не помогла? Или сопротивление на ламелях скачет?
- N1X
- Мастер
- Сообщения: 3653
- Зарегистрирован: 16 фев 2015, 21:19
- Репутация: 1646
- Настоящее имя: Владимир
- Откуда: Беларусь, Гомель
- Контактная информация:
Re: Оживление 16А20Ф3!
Просто спрошу, чтобы исключить недоразумение: сопротивление между ламелями коллектора, или на выходе?
-
Leo_1943
- Мастер
- Сообщения: 875
- Зарегистрирован: 03 май 2014, 07:24
- Репутация: 250
- Настоящее имя: Леонид
- Откуда: Харьков
Re: Оживление 16А20Ф3!
Между ламелями. Уже запустил через Месу, все замечательно. Можно и без Тахо работать.
- N1X
- Мастер
- Сообщения: 3653
- Зарегистрирован: 16 фев 2015, 21:19
- Репутация: 1646
- Настоящее имя: Владимир
- Откуда: Беларусь, Гомель
- Контактная информация:
Re: Оживление 16А20Ф3!
Никаких проблем не вылезло? По идее же задержка в цепи ОС увеличилась...
-
Leo_1943
- Мастер
- Сообщения: 875
- Зарегистрирован: 03 май 2014, 07:24
- Репутация: 250
- Настоящее имя: Леонид
- Откуда: Харьков
Re: Оживление 16А20Ф3!
На доли секунды, я не заметил.
- N1X
- Мастер
- Сообщения: 3653
- Зарегистрирован: 16 фев 2015, 21:19
- Репутация: 1646
- Настоящее имя: Владимир
- Откуда: Беларусь, Гомель
- Контактная информация:
Re: Оживление 16А20Ф3!
Главное, что привод не заметил )
Полезный опыт!
Полезный опыт!
-
agt
- Новичок
- Сообщения: 17
- Зарегистрирован: 06 окт 2016, 18:06
- Репутация: 0
- Настоящее имя: Александр Геннадьевич
- Контактная информация:
Re: Оживление 16А20Ф3!
Извините что вмешиваюсь.Хотел бы пообщаться об модернизации 16А20. Купили осевые привода GD35 (по вашей рекомендации).Уже две недели пытаюсь их как-то привязать на Размеровские двигатели. Первая проблема на приводе нет понятия сигнала ON (разблокировка,работа),можно только с пуском вперёд или назад.Во вторых нелинейная характеристика Uвх (+-10В) и вых частоты.На Uзад. меньше 0,2 вольта почти не реагирует ,потом обороты очень резко возрастают .Хотелось бы как нибудь проконсультироваться .Судя по фото вы как-то сумели привязать GD100, а они ещё тупее ,судя по описанию.Leo_1943 писал(а):На доли секунды, я не заметил.
-
Leo_1943
- Мастер
- Сообщения: 875
- Зарегистрирован: 03 май 2014, 07:24
- Репутация: 250
- Настоящее имя: Леонид
- Откуда: Харьков
Re: Оживление 16А20Ф3!
Есть сигнал ON, даете к примеру вперёд, остальное сделает полярность задания. Можно сделать сигнал Готовность.Почитайте внимательно параметры, я неделю назад два таких же взамен Размера поставил. Ровно три дня от начала до детали.
-
agt
- Новичок
- Сообщения: 17
- Зарегистрирован: 06 окт 2016, 18:06
- Репутация: 0
- Настоящее имя: Александр Геннадьевич
- Контактная информация:
Re: Оживление 16А20Ф3!
Если даю вперед ,то он и едет вперед, если назад -то назад .Измерительной системе это не нравиться ,выбивает по рассогласованию.Но основная проблема ни в этом.Главное он не едет на маленьких подачах .Режим Р00.00-3 (векторное с датчиком) и ещё на входе AI3 всегда торчит 0,1В если смотреть Р17.21.Пробовал смещать ЦАПом ЧПУ и параметром Р05.43 все равно получается не симметричное задание .Подозреваю что у меня просто неисправные привода ( 4 КВт ) .Кстати третий привод для шпинделя (11 КВт ) ведет себя нормально.Буду признателен если поможете подбором параметров.
-
Leo_1943
- Мастер
- Сообщения: 875
- Зарегистрирован: 03 май 2014, 07:24
- Репутация: 250
- Настоящее имя: Леонид
- Откуда: Харьков
Re: Оживление 16А20Ф3!
Какое ЧПУ? У меня до включения слежения показания 0.4, 0.7 по Х и Z соответственно. После включения слежения, и приводов все около нуля- без движения. ЧПУ не выбивает на ходах до 10 м/мин. С параметрами дистанционно тяжело помочь. Во-первых как подключен энкодер? Количество меток? И т.п.?
-
agt
- Новичок
- Сообщения: 17
- Зарегистрирован: 06 окт 2016, 18:06
- Репутация: 0
- Настоящее имя: Александр Геннадьевич
- Контактная информация:
Re: Оживление 16А20Ф3!
ЧПУ -FMS 3000. Энкодеры взади двигателя ЛИР 0,5 ПИ 2500 с одной меткой.В принципе я добился чтобы при 0 рассогл. привод стоял. Но даю маховиком задание по 0,01-привод начинает импульсно дергаться где-то от 0,07 .Потом от 0,1 вроде нормально двигается , а больше 0,25 он уже едет с подачей примерно 400 мм/мин.Привязать измерительную при таких характеристиках практически невозможно.Пробовал параметрами привода (Ki,Kd)пусковая частота -0,частота останова 0.Различные варианты пуска и останова двигателя - становиться только хуже.