EMC2+MESA+ГФ2171 программирование коробки скотостей

Работа с платами MESA, подключение, конфигурация.
Аватара пользователя
Urec
Мастер
Сообщения: 403
Зарегистрирован: 23 окт 2012, 11:32
Репутация: 92
Настоящее имя: Георгий
Откуда: г.Москва
Контактная информация:

EMC2+MESA+ГФ2171 программирование коробки скотостей

Сообщение Urec »

Всех приветствую.
Мое первое сообщение на форуме :D
Прошу помощи.
Купили ГФ2171 с 2С42, привода Мезоматик-К
Забирали на заводе рабочим, когда он к нам доехал- ЧПУ сказало :freak:
Ни самостоятельно, ни с мастером запустить станок не смог, приняли решение модернизировать.

На данный момент ситуация следующая:
Установлен ЕМЦ, платы МЕСА 7И37,7И33-для аналог управления сервами и 5И20+ самодельный ее аналог для входов-выходов.
Энкодеры в ЕМЦ завел, задание на привода подал, ПИД кое-как настроил, станок худо-бедно ездиет.
Для полного шика нехватает концевиков и вращающегося шпинделя.
На станке стоит гидростанция и автоматическая коробка которая управляется электромагнитными клапанами и гидравлика передвигает вилки в коробке.
Открутил разъем нужный по схеме.
На пинах разъема висят управляющие 27вольт, замыкая нужные пины на массу куском провода включаются нужные реле и замыкаются пускатели.
Мотор шпинделя включается в обе стороны, сам шпиндель не крутится- коробка в нейтральном положении, как я понимаю.
Для включения передачи нужно
1. Выбрать для двигателя режим шагов.
2. Раскачивать двигатель замыканием соответствующих пинов вправо-влево, чтобы шестерни могли войти в зацепление.
3. Включить соответствующие электромагнитные клапана.
4.Получить ответ от концевиков что передача включилась
5.Отключить режим шагов.
(честно говоря, не знаю, должно ли остаться напряжение на клапанах)
6. Пустить шпиндель.
Прикрепляю табличку клапанов которые нужно замкнуть чтобы включить нужную частоту шпинделя и отклик по концевикам.

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

       A1  A2  A3  A4  A5  A6  O11 O12 O13 O14 O15 O16
40     0   0   0   0   1   0   1   1   1   1   0   1
50     0   1   0   0   1   0   1   0   1   1   0   1
63     1   0   0   0   1   0   0   1   1   1   0   1
80     0   0   0   1   1   0   1   1   1   0   0   1
100    0   1   0   1   1   0   1   0   1   0   0   1
125    1   0   0   1   1   0   1   1   0   1   0   1
160    0   0   1   0   1   0   1   0   0   1   0   1
200    0   1   1   0   1   0   0   1   0   1   0   1
250    1   0   1   0   1   0   1   1   1   1   1   0
315    0   0   0   0   0   1   1   0   1   1   1   0
400    0   1   0   0   0   1   0   1   1   1   1   0
500    1   0   0   0   0   1   1   1   1   0   1   0
630    0   0   0   1   0   1   1   0   1   0   1   0
800    0   1   0   1   0   1   0   1   1   0   1   0
1000   1   0   0   1   0   1   1   1   0   1   1   0
1250   0   0   1   0   0   1   1   1   0   1   1   0
1600   0   1   1   0   0   1   1   0   0   1   1   0
2000   1   0   1   0   0   1   0   1   0   1   1   0
В ЕМЦ средствами pyVCP сделал кнопку:)
наверное, смогу подвязать к ней работу одного выхода gpio платы. Как все это организовать в слаженную работу-пока для меня туманно, обращаюсь к Вам за помощью.
С Уважением.
Аватара пользователя
Urec
Мастер
Сообщения: 403
Зарегистрирован: 23 окт 2012, 11:32
Репутация: 92
Настоящее имя: Георгий
Откуда: г.Москва
Контактная информация:

Re: EMC+MESA+ГФ2171 программирование коробки скотостей

Сообщение Urec »

Коробка скоростей
Вложения
КОРОБКА СКОРОСТЕЙ.pdf
(28.69 КБ) 938 скачиваний
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: EMC+MESA+ГФ2171 программирование коробки скотостей

Сообщение nkp »

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

Re: EMC+MESA+ГФ2171 программирование коробки скотостей

Сообщение Nick »

Urec писал(а):Для включения передачи нужно
1. Выбрать для двигателя режим шагов.
2. Раскачивать двигатель замыканием соответствующих пинов вправо-влево, чтобы шестерни могли войти в зацепление.
3. Включить соответствующие электромагнитные клапана.
4.Получить ответ от концевиков что передача включилась
5.Отключить режим шагов.
(честно говоря, не знаю, должно ли остаться напряжение на клапанах)
6. Пустить шпиндель.
Прикрепляю табличку клапанов которые нужно замкнуть чтобы включить нужную частоту шпинделя и отклик по концевикам.
Да все это лучше решать через ладдер.
А что значит режим шагов? С какой частотой надо шпиндель раскачивать?
Аватара пользователя
Urec
Мастер
Сообщения: 403
Зарегистрирован: 23 окт 2012, 11:32
Репутация: 92
Настоящее имя: Георгий
Откуда: г.Москва
Контактная информация:

Re: EMC+MESA+ГФ2171 программирование коробки скотостей

Сообщение Urec »

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

Re: EMC+MESA+ГФ2171 программирование коробки скотостей

Сообщение Nick »

Urec писал(а):что включается режим шагов,
Для этого отдельный пин есть?
Urec писал(а):Частоту не знаю, думаю, около 0,5Гц в одну сторону
Это можно на Ladder сделать.

Ты с ladder logic умеешь общаться?
Если нет, для начала надо написать все словами :
1. включаем такой то пин (включается режим шагов)
2. подаем сингалы на эти пины с интервалом 0.5 Гц
3. как только срабатывает такой-то концевик, выключаем такие-то пины.

Кстати, а как у тебя выполнено само переключение передач и как оно привязано к Gкоду? Через отдельные выходы, или через скорость вращения шпинделя?
Аватара пользователя
Rafiq
Мастер
Сообщения: 1053
Зарегистрирован: 28 сен 2012, 18:11
Репутация: 6
Откуда: Tatarstan Respublikası, Yar Çallı şəhəre
Контактная информация:

Re: EMC+MESA+ГФ2171 программирование коробки скотостей

Сообщение Rafiq »

Коробка скотостей? :D :D Хм, интересно :)
Аватара пользователя
Алексс
Почётный участник
Почётный участник
Сообщения: 2210
Зарегистрирован: 20 июл 2012, 15:49
Репутация: 266
Заслуга: IQ32
Настоящее имя: Алексей
Откуда: Прага
Контактная информация:

Re: EMC2+MESA+ГФ2171 программирование коробки скотостей

Сообщение Алексс »

видел процесс переключеия на harmle - частота около 1-2Hz, амплитуда совсем небольшая - градусов 30.
подозреваю, что режим шагов это типа jog на частотнике.
Последний раз редактировалось Алексс 23 окт 2012, 14:34, всего редактировалось 1 раз.
Каждая собака, бегущая на поводке впереди хозяина, думает, что ведет его за собой.
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: EMC2+MESA+ГФ2171 программирование коробки скотостей

Сообщение Lexxa »

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

Re: EMC2+MESA+ГФ2171 программирование коробки скотостей

Сообщение nkp »

вот в этой теме Dmaster сделал все на ладдере
работает 800 часов (думаю уже больше ;) )
там ,помнится, и схема разжована
Последний раз редактировалось nkp 23 окт 2012, 14:41, всего редактировалось 1 раз.
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: EMC2+MESA+ГФ2171 программирование коробки скотостей

Сообщение Lexxa »

Ссылоку забыл)
:bender:
Аватара пользователя
Urec
Мастер
Сообщения: 403
Зарегистрирован: 23 окт 2012, 11:32
Репутация: 92
Настоящее имя: Георгий
Откуда: г.Москва
Контактная информация:

Re: EMC2+MESA+ГФ2171 программирование коробки скотостей

Сообщение Urec »

Lexxa писал(а):Мне смутно помнится, что нет. Следоательно при переключении передач используется "толчек шпинделя".
То же самое что и у меня, но с автоматической коробкой.
Толчек шпинделя включает пучкатель Шпиндель вперед буквально на полсекунды. Ладдер и никакого геморра.
Да да! Все верно!
нужно чтобы именно так и работало.

На шпинделе привода нет. Асинхронник на 1250 об/мин с постоянной частотой вращения и коробка скоростей, диапазон на выходе от 40 до 2000 об.

С Ладдером еще не успел разобраться.
К Г-коду привязку оборотов делать не планировал, если поучится-то супер.
Планировал через PYVSP сделать кнопочки с значением оборотов, и чтобы оператор сам выбирал обороты, станок их включал, а в Г-коде просто М03 и М05.
Если можно отработать через S в Г-коде выбор оборотов-вообще супер, но пока можно без этого.
Еще на станке есть режим торможения шпинделя- на 2 обмотки асинхронника подается постоянка.
Для этого есть пин.

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

Re: EMC2+MESA+ГФ2171 программирование коробки скотостей

Сообщение nkp »

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

Re: EMC2+MESA+ГФ2171 программирование коробки скотостей

Сообщение Nick »

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

Re: EMC2+MESA+ГФ2171 программирование коробки скотостей

Сообщение Nick »

Вот примерный ladder для шагания вправо/влево по таймеру:
Только почему-то у меня на симуляторе не отображается ход выполнения, может я что-то не так настроил?
Вложения
Снимок-Section Display of spindle-gearbox.clp.png (9043 просмотра) <a class='original' href='./download/file.php?id=8650&mode=view' target=_blank>Загрузить оригинал (45.96 КБ)</a>
spindle-gearbox.clp
(4.9 КБ) 1274 скачивания
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: EMC2+MESA+ГФ2171 программирование коробки скотостей

Сообщение Nick »

Хотя вот так даже лучше, наверное:
Вложения
Снимок-Section Display of spindle-gearbox.clp-1.png (9043 просмотра) <a class='original' href='./download/file.php?id=8652&mode=view' target=_blank>Загрузить оригинал (41.77 КБ)</a>
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: EMC2+MESA+ГФ2171 программирование коробки скотостей

Сообщение Lexxa »

потому что 0мс. addf забыл
:bender:
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: EMC2+MESA+ГФ2171 программирование коробки скотостей

Сообщение Lexxa »

Нееее. Делать надо основательно и по уму. Есть концевик в коробасе - юзай. Ник дело говорит, это проще чем надеятьсч на то что типа включилось или нет.

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

Re: EMC2+MESA+ГФ2171 программирование коробки скотостей

Сообщение Nick »

Lexxa писал(а):И тут мы вновь возвращаемся к вопросу как как по м-команде дернуть пином?
Я же уже раз писал, M62-65: http://www.linuxcnc.org/docs/html/gcode ... ec:M62-M65
И ждать можно 1 на пине через M66 Wait on Input
Lexxa писал(а):потому что 0мс. addf забыл
+1 :good: addf забыл написать.

Кстати, все заново перерисовал, теперь работает как надо:
Вложения
spindle-gearbox.clp
(4.91 КБ) 1283 скачивания
Снимок-Section Display of spindle-gearbox.clp-2.png (9025 просмотров) <a class='original' href='./download/file.php?id=8660&mode=view' target=_blank>Загрузить оригинал (43.64 КБ)</a>
Аватара пользователя
Urec
Мастер
Сообщения: 403
Зарегистрирован: 23 окт 2012, 11:32
Репутация: 92
Настоящее имя: Георгий
Откуда: г.Москва
Контактная информация:

Re: EMC2+MESA+ГФ2171 программирование коробки скотостей

Сообщение Urec »

Всех приветствую.
Извиняюсь за долгое молчание,
продолжаю ковыряться.

При создании профиля ЕМЦ использовал готовый для Месы 5И20
В нем отключен PLC
Добавил строки из мануала

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

loadrt classicladder_rt
addf classicladder.0.refresh servo-thread
ЕМЦ начал ругаться сначала на переменную таймер при включении(я пытался описать количество переменных в HAl), потом на переменную servo-thread
(не знаю как правильно перевести thread)
Удалил 2 строку с привязкой к времени серво цикла, ЕМЦ запустился, ладдер открылся, пытаюсь повторить то что Nick нарисовал.
HAL прикрепляю.

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

# #######################################
#
# HAL file for HostMot2 with 3 servos
#
# Derived from Ted Hyde's original hm2-seloadrt classicladder_rt numRungs=12 numBits=100 
loadrt classicladder_rt
addf classicladder.0.refresh servo-thread
##numWords=10
##numTimers=10 numMonostables=10 numCounters=10 numPhysInputs=10
##numPhysOutputs=10 numArithmExpr=100 numSections=4 numSymbols=200
##numS32in=5 numS32out=5rvo config
#
# Based up work and discussion with Seb & Peter & Jeff
# GNU license references - insert here. www.linuxcnc.org
#
#
# ########################################
# Firmware files are in /lib/firmware/hm2/7i43/
# Must symlink the hostmot2 firmware directory of sanbox to
# /lib/firmware before running EMC2...
# sudo ln -s $HOME/emc2-sandbox/src/hal/drivers/mesa-hostmot2/firmware /lib/firmware/hm2
#
# See also:
# <http://www.linuxcnc.org/docs/devel/html/man/man9/hostmot2.9.html#config%20modparam>
# and http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?HostMot2
#
# #####################################################################


# ###################################
# Core EMC/HAL Loads
# ###################################

# kinematics
loadrt trivkins

# motion controller, get name and thread periods from ini file
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES

# standard components
loadrt pid num_chan=3 

# only the 7i43 needs this, but it doesnt hurt the others
loadrt probe_parport

# hostmot2 driver
# if you have any firmware trouble, enable the debug flags here and see what's going on in the syslog
#loadrt hostmot2 debug_idrom=1 debug_module_descriptors=1 debug_pin_descriptors=1 debug_modules=1
loadrt hostmot2

# load low-level driver
loadrt [HOSTMOT2](DRIVER) config=[HOSTMOT2](CONFIG)

setp hm2_[HOSTMOT2](BOARD).0.pwmgen.pwm_frequency 40000

setp hm2_[HOSTMOT2](BOARD).0.watchdog.timeout_ns 10000000


# ################################################
# THREADS
# ################################################

addf hm2_[HOSTMOT2](BOARD).0.read          servo-thread

addf motion-command-handler                servo-thread
addf motion-controller                     servo-thread

addf pid.0.do-pid-calcs                    servo-thread
addf pid.1.do-pid-calcs                    servo-thread
addf pid.2.do-pid-calcs                    servo-thread

addf hm2_[HOSTMOT2](BOARD).0.write         servo-thread
addf hm2_[HOSTMOT2](BOARD).0.pet_watchdog  servo-thread
       

# ######################################################
# Axis-of-motion Specific Configs (not the GUI)
# ######################################################


# ################
# X [0] Axis
# ################

# axis enable chain
newsig emcmot.00.enable bit
sets emcmot.00.enable FALSE
net emcmot.00.enable => pid.0.enable
net emcmot.00.enable => hm2_[HOSTMOT2](BOARD).0.pwmgen.00.enable
net emcmot.00.enable <= axis.0.amp-enable-out 

# encoder feedback
setp hm2_[HOSTMOT2](BOARD).0.encoder.00.counter-mode 0
setp hm2_[HOSTMOT2](BOARD).0.encoder.00.filter 1
setp hm2_[HOSTMOT2](BOARD).0.encoder.00.index-invert 0
setp hm2_[HOSTMOT2](BOARD).0.encoder.00.index-mask 0
setp hm2_[HOSTMOT2](BOARD).0.encoder.00.index-mask-invert 0

setp  hm2_[HOSTMOT2](BOARD).0.encoder.00.scale  [AXIS_0]INPUT_SCALE
net motor.00.pos-fb hm2_[HOSTMOT2](BOARD).0.encoder.00.position => pid.0.feedback
net motor.00.pos-fb => axis.0.motor-pos-fb #push copy back to Axis GUI

# set PID loop gains from inifile
setp pid.0.Pgain [AXIS_0]P
setp pid.0.Igain [AXIS_0]I
setp pid.0.Dgain [AXIS_0]D
setp pid.0.bias [AXIS_0]BIAS
setp pid.0.FF0 [AXIS_0]FF0
setp pid.0.FF1 [AXIS_0]FF1
setp pid.0.FF2 [AXIS_0]FF2
setp pid.0.deadband [AXIS_0]DEADBAND
setp pid.0.maxoutput [AXIS_0]MAX_OUTPUT

# position command signals
setp hm2_[HOSTMOT2](BOARD).0.pwmgen.00.output-type 1 #pwm on pin1, dir on pin2
setp hm2_[HOSTMOT2](BOARD).0.pwmgen.00.scale  [AXIS_0]OUTPUT_SCALE

net emcmot.00.pos-cmd axis.0.motor-pos-cmd => pid.0.command
net motor.00.command  pid.0.output  =>  hm2_[HOSTMOT2](BOARD).0.pwmgen.00.value


# ################
# Y [1] Axis
# ################

# axis enable chain
newsig emcmot.01.enable bit
sets emcmot.01.enable FALSE
net emcmot.01.enable => pid.1.enable
net emcmot.01.enable => hm2_[HOSTMOT2](BOARD).0.pwmgen.01.enable
net emcmot.01.enable <= axis.1.amp-enable-out 

# encoder feedback
setp hm2_[HOSTMOT2](BOARD).0.encoder.01.counter-mode 0
setp hm2_[HOSTMOT2](BOARD).0.encoder.01.filter 1
setp hm2_[HOSTMOT2](BOARD).0.encoder.01.index-invert 0
setp hm2_[HOSTMOT2](BOARD).0.encoder.01.index-mask 0
setp hm2_[HOSTMOT2](BOARD).0.encoder.01.index-mask-invert 0

setp  hm2_[HOSTMOT2](BOARD).0.encoder.01.scale  [AXIS_1]INPUT_SCALE
net motor.01.pos-fb hm2_[HOSTMOT2](BOARD).0.encoder.01.position => pid.1.feedback
net motor.01.pos-fb => axis.1.motor-pos-fb #push copy back to Axis GUI

# set PID loop gains from inifile
setp pid.1.Pgain [AXIS_1]P
setp pid.1.Igain [AXIS_1]I
setp pid.1.Dgain [AXIS_1]D
setp pid.1.bias [AXIS_1]BIAS
setp pid.1.FF0 [AXIS_1]FF0
setp pid.1.FF1 [AXIS_1]FF1
setp pid.1.FF2 [AXIS_1]FF2
setp pid.1.deadband [AXIS_1]DEADBAND
setp pid.1.maxoutput [AXIS_1]MAX_OUTPUT

# position command signals
setp hm2_[HOSTMOT2](BOARD).0.pwmgen.01.output-type 1 #pwm on pin1, dir on pin2
setp hm2_[HOSTMOT2](BOARD).0.pwmgen.01.scale [AXIS_1]OUTPUT_SCALE

net emcmot.01.pos-cmd axis.1.motor-pos-cmd => pid.1.command
net motor.01.command  pid.1.output  =>  hm2_[HOSTMOT2](BOARD).0.pwmgen.01.value


# ################
# Z [2] Axis
# ################

# axis enable chain
newsig emcmot.02.enable bit
sets emcmot.02.enable FALSE
net emcmot.02.enable => pid.2.enable
net emcmot.02.enable => hm2_[HOSTMOT2](BOARD).0.pwmgen.02.enable
net emcmot.02.enable <= axis.2.amp-enable-out 

# encoder feedback
setp hm2_[HOSTMOT2](BOARD).0.encoder.02.counter-mode 0
setp hm2_[HOSTMOT2](BOARD).0.encoder.02.filter 1
setp hm2_[HOSTMOT2](BOARD).0.encoder.02.index-invert 0
setp hm2_[HOSTMOT2](BOARD).0.encoder.02.index-mask 0
setp hm2_[HOSTMOT2](BOARD).0.encoder.02.index-mask-invert 0

setp  hm2_[HOSTMOT2](BOARD).0.encoder.02.scale  [AXIS_2]INPUT_SCALE
net motor.02.pos-fb hm2_[HOSTMOT2](BOARD).0.encoder.02.position => pid.2.feedback
net motor.02.pos-fb => axis.2.motor-pos-fb #push copy back to Axis GUI

# set PID loop gains from inifile
setp pid.2.Pgain [AXIS_2]P
setp pid.2.Igain [AXIS_2]I
setp pid.2.Dgain [AXIS_2]D
setp pid.2.bias [AXIS_2]BIAS
setp pid.2.FF0 [AXIS_2]FF0
setp pid.2.FF1 [AXIS_2]FF1
setp pid.2.FF2 [AXIS_2]FF2
setp pid.2.deadband [AXIS_2]DEADBAND
setp pid.2.maxoutput [AXIS_2]MAX_OUTPUT

# position command signals
setp hm2_[HOSTMOT2](BOARD).0.pwmgen.02.output-type 1 #pwm on pin1, dir on pin2
setp hm2_[HOSTMOT2](BOARD).0.pwmgen.02.scale [AXIS_2]OUTPUT_SCALE

net emcmot.02.pos-cmd axis.2.motor-pos-cmd => pid.2.command
net motor.02.command  pid.2.output  =>  hm2_[HOSTMOT2](BOARD).0.pwmgen.02.value


# ##################################################
# Standard I/O Block - EStop, Etc
# ##################################################

# create a signal for the estop loopback
net estop-loop iocontrol.0.user-enable-out => iocontrol.0.emc-enable-in

# create signals for tool loading loopback
net tool-prep-loop iocontrol.0.tool-prepare => iocontrol.0.tool-prepared
net tool-change-loop iocontrol.0.tool-change => iocontrol.0.tool-changed


#
# homing
#

#
# In this example, each of the three axes have their own home switch.  All
# home switches are connected to GPIO 25, though hostmot2 boards generally
# have enough GPIO pins to put each axis' home switch on its own pin.
#
# Each switch is normally open, momentarily closed.  When the switch is open,
# GPIO 25 floats high (because that is the hostmot2 way).  When the switch is
# closed, it shorts GPIO 25 to ground.
#
# EMC expects the value on the .home-sw-in HAL pin to be active high, ie
# True when the switch is closed and False when the switch is open.
# We get this behavior by linking the GPIO .in_not pin instead of the .in
# pin.
#

net home-switch <= hm2_[HOSTMOT2](BOARD).0.gpio.025.in_not
net home-switch => axis.0.home-sw-in
net home-switch => axis.1.home-sw-in
net home-switch => axis.2.home-sw-in

# only the Y servo has an index, X and Z home without using the index
net y-index-enable hm2_[HOSTMOT2](BOARD).0.encoder.01.index-enable <=> axis.1.index-enable
# --- SPINDLE-CW ---

setp hm2_5i20.0.gpio.071.is_output true
setp hm2_5i20.0.gpio.071.invert_output true
net spindle-cw <= motion.spindle-on => hm2_5i20.0.gpio.071.out

# --- CNC-READY ---

setp hm2_5i20.0.gpio.070.is_output true
net cnc-ok <= motion.motion-enabled => hm2_5i20.0.gpio.070.out


# --- SPINDLE-CCW ---
setp hm2_5i20.0.gpio.043.is_output true
net spindle-ccw => hm2_5i20.0.gpio.043.out
Ответить

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