AG250CNC
- frezeryga
- Почётный участник

- Сообщения: 13712
- Зарегистрирован: 18 авг 2013, 16:08
- Репутация: 5069
- Откуда: Жуковский
- Контактная информация:
Re: AG250CNC
Ну на хорошем жестком станке линейка это хорошо. Но народ часто на станок из профилей линейки желает пихать.
email frezeryga@yandex.ru
instagram https://www.instagram.com/frezeryga
telegram https://t.me/md_cnc_frezeryga https://t.me/frezeryga
instagram https://www.instagram.com/frezeryga
telegram https://t.me/md_cnc_frezeryga https://t.me/frezeryga
- Lafayette
- Мастер
- Сообщения: 3514
- Зарегистрирован: 11 фев 2017, 21:25
- Репутация: 445
- Настоящее имя: Михаил
- Контактная информация:
Re: AG250CNC
Да ладно, можно и запихнуть китайскую за 4к деревянныхfrezeryga писал(а):Ну на хорошем жестком станке линейка это хорошо. Но народ часто на станок из профилей линейки желает пихать.
-
botcman
- Мастер
- Сообщения: 557
- Зарегистрирован: 04 мар 2016, 20:22
- Репутация: 1
- Настоящее имя: Андрей
- Контактная информация:
Re: AG250CNC
Код: Выделить всё
Код: Выделить всё
# ################################################
# THREADS
# ################################################
addf to_pci.1.update servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf pid.x.do-pid-calcs servo-thread
addf pid.z.do-pid-calcs servo-thread
addf pid.y.do-pid-calcs servo-thread
addf ag250-lubricator.processing servo-thread
# -------E-STOP--------
net estop-ext iocontrol.0.emc-enable-in <= iocontrol.0.user-enable-out
# ---motion control signals---
net in-position <= motion.in-position
net machine-is-enabled <= motion.motion-enabled
# external output signals
net machine-is-enabled to_pci.1.pins.pin-00-out
net lubrication-spindle-head-enable to_pci.1.pins.pin-08-out
net lubrication-rail-enable to_pci.1.pins.pin-09-out
# external input signals
# --- MAX-X ---
#net max-x <= to_pci.1.pins.pin-00-in-n
# --- MIN-X ---
#net min-x <= to_pci.1.pins.pin-01-in-n
# --- HOME-X ---
net home-x <= to_pci.1.pins.pin-02-in-n
# --- MAX-Y ---
#net max-y <= to_pci.1.pins.pin-03-in-n
# --- MIN-Y ---
#net min-y <= to_pci.1.pins.pin-04-in-n
# --- HOME-Y ---
net home-y <= to_pci.1.pins.pin-05-in-n
# --- MAX-Z ---
#net max-z <= to_pci.1.pins.pin-06-in-n
# --- MIN-Z ---
#net min-z <= to_pci.1.pins.pin-07-in-n
# --- HOME-Z ---
net home-z <= to_pci.1.pins.pin-08-in-n
net spindle-inverter-at-speed <= to_pci.1.pins.pin-09-in
net lubrication-rail-oil-level <= to_pci.1.pins.pin-10-in
net lubrication-rail-pressure <= to_pci.1.pins.pin-11-in
net lubrication-activate-request <= to_pci.1.pins.pin-12-in
#--------------------------------
net spindle-on => ag250-lubricator.s-spindle-on
# in sec
setp ag250-lubricator.s-lub-interval 800
setp ag250-lubricator.s-lub-work-time 15
# in sec
setp ag250-lubricator.r-lub-interval 900
# in ms
setp ag250-lubricator.r-lub-overtime 1000
setp ag250-lubricator.r-lub-etimeout 5000
net machine-is-on => ag250-lubricator.r-lub-enable
net lubrication-activate-request => ag250-lubricator.lub-request
net lubrication-rail-pressure => ag250-lubricator.r-lub-pressure-sensor
net lubrication-rail-enable <= ag250-lubricator.r-lub-control
net lubrication-spindle-head-enable <= ag250-lubricator.s-lub-control
#*******************
# AXIS X
#*******************
setp pid.x.Pgain [AXIS_0]P
setp pid.x.Igain [AXIS_0]I
setp pid.x.Dgain [AXIS_0]D
setp pid.x.bias [AXIS_0]BIAS
setp pid.x.FF0 [AXIS_0]FF0
setp pid.x.FF1 [AXIS_0]FF1
setp pid.x.FF2 [AXIS_0]FF2
setp pid.x.deadband [AXIS_0]DEADBAND
setp pid.x.maxoutput [AXIS_0]MAX_OUTPUT
net x-enable => pid.x.enable
net x-output => pid.x.output
net x-pos-cmd => pid.x.command
net x-pos-fb => pid.x.feedback
# --------fb--------------
setp to_pci.1.feedback.enc_scale0 [AXIS_0]ENCODER_SCALE
net x-pos-fb <= to_pci.1.feedback.encoder0
net x-pos-fb => axis.0.motor-pos-fb
# ------PWM Generator signals/setup--------
net x-enable axis.0.amp-enable-out
net x-enable => to_pci.1.enable_drive
setp to_pci.1.out_scale0 [AXIS_0]OUTPUT_SCALE
net x-output => to_pci.1.dcontrol0
net x-pos-cmd <= axis.0.motor-pos-cmd
# ---setup home / limit switch signals---
#net home-x => axis.0.home-sw-in
#net min-x => axis.0.neg-lim-sw-in
#net max-x => axis.0.pos-lim-sw-in
#*******************
# AXIS Y
#*******************
setp pid.y.Pgain [AXIS_1]P
setp pid.y.Igain [AXIS_1]I
setp pid.y.Dgain [AXIS_1]D
setp pid.y.bias [AXIS_1]BIAS
setp pid.y.FF0 [AXIS_1]FF0
setp pid.y.FF1 [AXIS_1]FF1
setp pid.y.FF2 [AXIS_1]FF2
setp pid.y.deadband [AXIS_1]DEADBAND
setp pid.y.maxoutput [AXIS_1]MAX_OUTPUT
net y-enable => pid.y.enable
net y-output => pid.y.output
net y-pos-cmd => pid.y.command
net y-pos-fb => pid.y.feedback
# --------fb--------------
setp to_pci.1.feedback.enc_scale1 [AXIS_1]ENCODER_SCALE
net y-pos-fb <= to_pci.1.feedback.encoder1
net y-pos-fb => axis.1.motor-pos-fb
# ------PWM Generator signals/setup--------
net y-enable axis.1.amp-enable-out
setp to_pci.1.out_scale1 [AXIS_1]OUTPUT_SCALE
net y-output => to_pci.1.dcontrol1
net y-pos-cmd <= axis.1.motor-pos-cmd
# ---setup home / limit switch signals---
#net home-y => axis.1.home-sw-in
#net min-y => axis.1.neg-lim-sw-in
#net max-y => axis.1.pos-lim-sw-in
#*******************
# AXIS Z
#*******************
setp pid.z.Pgain [AXIS_2]P
setp pid.z.Igain [AXIS_2]I
setp pid.z.Dgain [AXIS_2]D
setp pid.z.bias [AXIS_2]BIAS
setp pid.z.FF0 [AXIS_2]FF0
setp pid.z.FF1 [AXIS_2]FF1
setp pid.z.FF2 [AXIS_2]FF2
setp pid.z.deadband [AXIS_2]DEADBAND
setp pid.z.maxoutput [AXIS_2]MAX_OUTPUT
net z-enable => pid.z.enable
net z-output => pid.z.output
net z-pos-cmd => pid.z.command
net z-pos-fb => pid.z.feedback
# --------fb--------------
setp to_pci.1.feedback.enc_scale2 [AXIS_2]ENCODER_SCALE
net z-pos-fb <= to_pci.1.feedback.encoder2
net z-pos-fb => axis.2.motor-pos-fb
# ------PWM Generator signals/setup--------
net z-enable axis.2.amp-enable-out
setp to_pci.1.out_scale2 [AXIS_2]OUTPUT_SCALE
net z-output => to_pci.1.dcontrol2
net z-pos-cmd <= axis.2.motor-pos-cmd
# ---setup home / limit switch signals---
#net home-z => axis.2.home-sw-in
#net min-z => axis.2.neg-lim-sw-in
#net max-z => axis.2.pos-lim-sw-in
#----------- SIGNALS ---------------
#net buton_test => to_pci.1.feedback.index_en0
net buton_test => to_pci.1.pins.pin-01-out[code]
Последний раз редактировалось botcman 19 мар 2017, 17:57, всего редактировалось 2 раза.
-
botcman
- Мастер
- Сообщения: 557
- Зарегистрирован: 04 мар 2016, 20:22
- Репутация: 1
- Настоящее имя: Андрей
- Контактная информация:
Re: AG250CNC
Части файла, касающиеся смазки брал из Хал файла аналогичного станка. Там есть еще компоненты смазки, переключения КПП. Подскажите, как эти компоненты привязать к моему Хал файлу. Компонент смазки лежит в той же папке, что и Хал и Ини файлы.
-
Фрост
- Мастер
- Сообщения: 393
- Зарегистрирован: 28 окт 2013, 00:18
- Репутация: 23
- Настоящее имя: Сергей
- Контактная информация:
Re: AG250CNC
а что это за модуль? ag250-lubricator
-
botcman
- Мастер
- Сообщения: 557
- Зарегистрирован: 04 мар 2016, 20:22
- Репутация: 1
- Настоящее имя: Андрей
- Контактная информация:
Re: AG250CNC
Модуль смазки направляющих и шпиндельной бабки.
-
botcman
- Мастер
- Сообщения: 557
- Зарегистрирован: 04 мар 2016, 20:22
- Репутация: 1
- Настоящее имя: Андрей
- Контактная информация:
Re: AG250CNC
Вот
Код: Выделить всё
component ag250_lubricator "AG 250 lubricator";
description """
Usage: loadrt ag250_lubricator >
""";
pin in bit s_spindle_on = 0 "Spindle on signal";
pin in bit r_lub_enable = 0 "Rail lubrication enable";
pin in bit lub_request = 0 "Manual request lubrication";
pin in bit r_lub_pressure_sensor = 0 "Pressure sensor input";
pin out bit r_lub_control = 0 "Pump control out rail";
pin out bit s_lub_control = 0 "Pump control out spindle";
param rw u32 r_lub_interval = 1000 "Rail lubricant interval (sec)";
param rw u32 r_lub_overtime = 1000 "Rail lubricant overtime (ms)";
param rw u32 r_lub_etimeout = 5000 "Rail error timeout (ms)";
param rw u32 s_lub_interval = 600 "Spindle lubricant interval (sec)";
param rw u32 s_lub_work_time = 15 "Spindle lubricant work time (sec)";
option singleton;
option extra_setup;
option extra_cleanup;
function processing "Main function";
license "GPL";
author "Artsemi Veras";
;;
EXTRA_SETUP()
{
return 0;
}
EXTRA_CLEANUP()
{
}
int s_lub_state=0;
int s_lub_time=0;
int r_lub_state=0;
int r_lub_time=0;
int r_error=0;
int r_overtime=0;
//int r_time1=0;
FUNCTION(processing)
{
/*SPINDLE LUBRICATOR*/
if(s_spindle_on)
{
s_lub_time++;
if (s_lub_state==0)
{
if ((s_lub_time/1000>s_lub_interval) || (lub_request))
{
s_lub_time=0;
s_lub_state=1;
s_lub_control=1;
}
}else
{
if (s_lub_time/1000>s_lub_work_time)
{
s_lub_time=0;
s_lub_state=0;
s_lub_control=0;
}
}
}else
{
s_lub_control=0;
s_lub_state=0;
}
/*RAIL LUBRICATOR*/
if (r_lub_enable==0)
{
r_lub_control=0;
r_lub_state=0;
r_overtime=0;
r_lub_time=0;
return ;
}
r_lub_time++;
if (r_lub_state==0)
{
if ((r_lub_time/1000>r_lub_interval) || (lub_request))
{
r_lub_state=1;
r_lub_time=0;
r_lub_control=1;
}
}else
{
if (r_lub_pressure_sensor)
{
r_overtime++;
if (r_overtime>r_lub_overtime)
{
r_lub_control=0;
r_lub_state=0;
r_overtime=0;
r_lub_time=0;
}
}
if (r_lub_time>r_lub_etimeout)
{
r_lub_control=0;
r_lub_state=0;
r_error=1;
r_lub_time=0;
r_overtime=0;
}
}
}-
Фрост
- Мастер
- Сообщения: 393
- Зарегистрирован: 28 окт 2013, 00:18
- Репутация: 23
- Настоящее имя: Сергей
- Контактная информация:
Re: AG250CNC
Нет такой буквы в этом слове
проверил у себя
т.е. нет такого стандартного модуля в Linuxcnc, это наверно самопал и его надо как-то подключать сначала, очень может быть только в dev-версии
т.е. нет такого стандартного модуля в Linuxcnc, это наверно самопал и его надо как-то подключать сначала, очень может быть только в dev-версии
-
botcman
- Мастер
- Сообщения: 557
- Зарегистрирован: 04 мар 2016, 20:22
- Репутация: 1
- Настоящее имя: Андрей
- Контактная информация:
Re: AG250CNC
Черт! Что делать-то? Как по-простому запилить смазку шпиндельной бабки и направляющих? За это отвечают 2 разных масляных насоса.
Смазка шпиндельной бабки активируется с интервалом в 15минут, активируется на 10 секунд, со смазкой направляющих сложнее. Читал тут, что можно считать пробег осей и отталкиваться от этого.
Смазка шпиндельной бабки активируется с интервалом в 15минут, активируется на 10 секунд, со смазкой направляющих сложнее. Читал тут, что можно считать пробег осей и отталкиваться от этого.
-
Фрост
- Мастер
- Сообщения: 393
- Зарегистрирован: 28 окт 2013, 00:18
- Репутация: 23
- Настоящее имя: Сергей
- Контактная информация:
Re: AG250CNC
А стоит считать пробег? А если например деталь мелкая и сложная, так станок и раз в 5 часов не смажется? Может лучше по таймеру тоже раз в Х минут после machine.is-on сделать и не париться с доп.модулями?
- Lafayette
- Мастер
- Сообщения: 3514
- Зарегистрирован: 11 фев 2017, 21:25
- Репутация: 445
- Настоящее имя: Михаил
- Контактная информация:
Re: AG250CNC
Недавно разбирал ГФ, там смазка направляющих по паспорту при включении станка и каждый час работы, насос включается на время около 6 секундbotcman писал(а):Черт! Что делать-то? Как по-простому запилить смазку шпиндельной бабки и направляющих? За это отвечают 2 разных масляных насоса.
Смазка шпиндельной бабки активируется с интервалом в 15минут, активируется на 10 секунд, со смазкой направляющих сложнее. Читал тут, что можно считать пробег осей и отталкиваться от этого.
-
Фрост
- Мастер
- Сообщения: 393
- Зарегистрирован: 28 окт 2013, 00:18
- Репутация: 23
- Настоящее имя: Сергей
- Контактная информация:
Re: AG250CNC
Мне тоже кажется так правильнее.
Использовал пример отсюда, вроде 7 страница
Использовал пример отсюда, вроде 7 страница
- Вложения
-
- Разработка_ИТ_42_на_основе_Mesa_5i20_версия_3.pdf
- (172.28 КБ) 272 скачивания
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: AG250CNC
http://www.cnc-club.ru/forum/viewtopic.php?f=146&t=3369
Как я понимаю всё растёт из этой древней темы...
Тут вроде всё давно и подробно расписано, но никто ж не пользуется поиском...
Смазка шпиндельной бабки (шестерёнок и подшипников) включается одновременно со шпинделем. Какие-либо паузы и алгоритмы там не имеют смысла, ибо механически реализована подача нужного количества масла ко всем узлам, излишки тупо сливаются в исходную ёмкость.
Смазка направляющих в оригинале сделана по таймеру - раз в 15 минут, я сделал в зависимости от количества смены направлений движения по каждой оси. По пробегу не годится - можно "протереть дырку" при большом количестве коротких перемещений туда-сюда...
Как я понимаю всё растёт из этой древней темы...
Тут вроде всё давно и подробно расписано, но никто ж не пользуется поиском...
Смазка шпиндельной бабки (шестерёнок и подшипников) включается одновременно со шпинделем. Какие-либо паузы и алгоритмы там не имеют смысла, ибо механически реализована подача нужного количества масла ко всем узлам, излишки тупо сливаются в исходную ёмкость.
Смазка направляющих в оригинале сделана по таймеру - раз в 15 минут, я сделал в зависимости от количества смены направлений движения по каждой оси. По пробегу не годится - можно "протереть дырку" при большом количестве коротких перемещений туда-сюда...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
botcman
- Мастер
- Сообщения: 557
- Зарегистрирован: 04 мар 2016, 20:22
- Репутация: 1
- Настоящее имя: Андрей
- Контактная информация:
Re: AG250CNC
По поводу смазки шпиндельной бабки- она включается периодически. Если включать ее на постоянную вместе со шпинделем, то масла просто не хватит и насос будет качать воздух. Штатный маслобак насос выкачивает секунд за 10-15.
-
botcman
- Мастер
- Сообщения: 557
- Зарегистрирован: 04 мар 2016, 20:22
- Репутация: 1
- Настоящее имя: Андрей
- Контактная информация:
Re: AG250CNC
Вот на Чипмейкере нашел. http://www.chipmaker.ru/topic/156225/
Как его переделать , чтоб по времени включалась?
Как его переделать , чтоб по времени включалась?
-
Фрост
- Мастер
- Сообщения: 393
- Зарегистрирован: 28 окт 2013, 00:18
- Репутация: 23
- Настоящее имя: Сергей
- Контактная информация:
Re: AG250CNC
а это не смущает?
чем такое решение не понравилось?надо добавить в систему пакет linuxcnc-dev
Код: Выделить всё
# --- Смазка направляющих импульсная ---
# смазка при включении длительностью 10 секунд
setp oneshot.0.width 10
net machine-is-on oneshot.0.in
net delay oneshot.0.out => or2.1.in0
net timer-delay => or2.1.in1
net bed-lube => or2.1.out
net bed-lube => to_pci.1.pins.pin-12-out
# интервал смазки 600 секунд длительностью 5 секунд
setp timedelay.0.on-delay 600
setp timedelay.0.off-delay 5
net machine-is-on => and2.4.in0
net timer-in => and2.4.in1
net timer-in-1 => and2.4.out
net timer-in-1 => timedelay.0.in
net timer-delay => timedelay.0.out
net timer-delay => not.0.in
net timer-in <= not.0.out-
botcman
- Мастер
- Сообщения: 557
- Зарегистрирован: 04 мар 2016, 20:22
- Репутация: 1
- Настоящее имя: Андрей
- Контактная информация:
Re: AG250CNC
Чет не видел этого решения...Подскажите теперь как его вставить в мой Хал. И можно ли на этой основе сделать компонент для смазки шпиндельной бабки?
-
Фрост
- Мастер
- Сообщения: 393
- Зарегистрирован: 28 окт 2013, 00:18
- Репутация: 23
- Настоящее имя: Сергей
- Контактная информация:
Re: AG250CNC
73 сообщение, не поленись открыть pdf
если надо 2 разных процесса смазки, делать timedelay.0 и timedelay.1, ну и соответственно для них разные or2, and2 и т.д.
если надо 2 разных процесса смазки, делать timedelay.0 и timedelay.1, ну и соответственно для них разные or2, and2 и т.д.
-
botcman
- Мастер
- Сообщения: 557
- Зарегистрирован: 04 мар 2016, 20:22
- Репутация: 1
- Настоящее имя: Андрей
- Контактная информация:
Re: AG250CNC
Вроде открывал, невнимательно смотрел. Завтра попробую сварганить сначала для направляющих. А можете прокомментировать как этот компонент работает? Не пойму, откуда там взялась цифра 4. Спасибо!