Maho 400p фрезерный станок по металлу (400x250x375)

Тяжелые фрезерные станки по металлу.
tpolimer2000
Мастер
Сообщения: 347
Зарегистрирован: 07 ноя 2018, 19:03
Репутация: 45
Настоящее имя: Александр
Откуда: Беларусь
Контактная информация:

Re: Maho 400p фрезерный станок по металлу (400x250x375)

Сообщение tpolimer2000 »

Для моего станка есть 2 способа установки нуля, первый основан на управлении серводрайвером, но там больше минусов чем плюсов (хотя повторяемость превосходная) и второй вариант установка нуля с помощью LinuxCnc.

Хочу реализовать второй вариант, завести датчик Home и индексную метку энкодера в LinuxCnc. Есть описание вариантов поиска нуля в LinuxCnc - https://linuxcnc.org/docs/html/config/ini-homing.html. Один из возможных вариантов, как раз то что мне нужно.

Нужно завести Z метку с серводрайвера в мой контролер Mesa 7i96. У моего серводрайвера есть выходы OZ и /OZ (у версии L есть еще выход OCZ, который можно подключать на прямую к входу контролеру, но у меня версия M), как их подключать пока не понял, появится время буду вникать.

После подключения к контролеру можно использовать HOME_USE_INDEX. Из описания:
HOME_USE_INDEX requires connections in your hal file to joint.n.index-enable from the encoder.n.index-enable.
Если правильно понимаю, нужно создать объект encoder и связать joint.n.index-enable с encoder.n.index-enable для каждой оси. Не знаю можно ли создать encoder только с индексной меткой без подключения сигналов A и B, если нет понадобиться уйму входов. Поэтому задумался о том чтобы просто завести индексную метку в котролер, объединить его с датчиком Home через AND2. А сам LinuxCnc настроить с параметром HOME_USE_INDEX = NO, но чтобы он смотрел не на датчик Home, а на AND2 к которому подключен датчик Home и индексная метка.

Вот такой план.
tpolimer2000
Мастер
Сообщения: 347
Зарегистрирован: 07 ноя 2018, 19:03
Репутация: 45
Настоящее имя: Александр
Откуда: Беларусь
Контактная информация:

Re: Maho 400p фрезерный станок по металлу (400x250x375)

Сообщение tpolimer2000 »

Получил первую стружку :) .
Обрабатывали тиски (1889 просмотров) <a class='original' href='./download/file.php?id=204379&sid=ec818e19d1df9e86808e39e0a04fcc47&mode=view' target=_blank>Загрузить оригинал (330.14 КБ)</a>
Обрабатывали тиски
Сама стружка:) (1889 просмотров) <a class='original' href='./download/file.php?id=204380&sid=ec818e19d1df9e86808e39e0a04fcc47&mode=view' target=_blank>Загрузить оригинал (482.66 КБ)</a>
Сама стружка:)
Фреза которой делали обработку (1889 просмотров) <a class='original' href='./download/file.php?id=204381&sid=ec818e19d1df9e86808e39e0a04fcc47&mode=view' target=_blank>Загрузить оригинал (277.45 КБ)</a>
Фреза которой делали обработку
tpolimer2000 писал(а): Планирую использовать датчики Home и индексную метку энкодера, которую можно вывести с серводрайвера. Пока завис с подключением индексной метки к контролеру.
Разобрался с выходными сигналами индексных меток на серводрайвере (выходы OZ и /OZ на фишке CNC1), они повторят сигналы TTL энкодеров с уровнем сигнала 5 вольт (Z и инвертированный Z сигнал, на Mesa 7i96 его называют IDX+ и IDX- соответственно).

У меня все датчики и сигналы которые идут в Mesa 7i96 запитаны от 24 вольт, временно подключу через реле для теста (просто буду подавать 1 или 0, если брать сигнал с индексной метки, боюсь скорости чтения входов не хватит).

Возникло много вопросов :), как часто опрашиваются входы на Mesa 7i96 в связке с LinuxCnc?
Или он проверяет выходы в цикле servo thread? И чтобы получить более менее адекватную скорость нужно подымать base thread?
Вообще реально получить приемлемую скорость чтения индексной метки, без специальных скоростных энкодерных входов на самой Mesa?

Так же из документации на Mesa 7i96, на плате есть выход расширения P1 EXPANSION CONNECTOR
The 7I96 has a 26 pin header to allow I/O expansion beyond the built in I/O on the
7I96 card. This I/O can include more step/dir channels, encoders, etc. This header has a
pin-out that matches standard parallel port breakout cards and Mesa’s 25 pin FPGA
daughtercards, when terminated with a DB25 connector.
Может эти индексные метки нужно подключать к P1 EXPANSION CONNECTOR, чтобы получить приемлемую скорость чтения этих входов?
tpolimer2000
Мастер
Сообщения: 347
Зарегистрирован: 07 ноя 2018, 19:03
Репутация: 45
Настоящее имя: Александр
Откуда: Беларусь
Контактная информация:

Re: Maho 400p фрезерный станок по металлу (400x250x375)

Сообщение tpolimer2000 »

tpolimer2000 писал(а): Возникло много вопросов , как часто опрашиваются входы на Mesa 7i96 в связке с LinuxCnc?
Или он проверяет выходы в цикле servo thread? И чтобы получить более менее адекватную скорость нужно подымать base thread?
Вообще реально получить приемлемую скорость чтения индексной метки, без специальных скоростных энкодерных входов на самой Mesa?
Не правильные вопросы, из-за не правильного подхода.

Хотел сделать так:
tpolimer2000 писал(а): Поэтому задумался о том чтобы просто завести индексную метку в котролер, объединить его с датчиком Home через AND2. А сам LinuxCnc настроить с параметром HOME_USE_INDEX = NO, но чтобы он смотрел не на датчик Home, а на AND2 к которому подключен датчик Home и индексная метка.
Объединить датчик Home и индексную метку, через компонент AND2. Если использовать такой подход, то действительно нужен скоростной вход для индексной метки.

Нужно делать по классической схеме, сначала находим Home на большой скорости, потом уменьшаем скорость до минимумам для поиска индексной метки. При таком подходе, скорость опроса индексной метки уже не так критична.
tpolimer2000
Мастер
Сообщения: 347
Зарегистрирован: 07 ноя 2018, 19:03
Репутация: 45
Настоящее имя: Александр
Откуда: Беларусь
Контактная информация:

Re: Maho 400p фрезерный станок по металлу (400x250x375)

Сообщение tpolimer2000 »

Возник вопрос по настройки индексной метки энкодера в Hal. В Mesa 7i96 есть только 1 канал энкодера, соответственно придется подключать индексную метку к обычному входу. С этим разобрался, а как настроить этот вход в hal, чтобы он работал?

Мой hal

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

net y-index-enable  <=  hm2_7i96.0.gpio.002.in
net y-index-enable  <=> pid.y.index-enable
net y-index-enable  <=>  joint.1.index-enable
В итоге получаю ошибку при загрузке из-за последней строки net y-index-enable <=> joint.1.index-enable. Сама ошибка
./7I96_GMOC.hal:156: Signal 'y-index-enable' can not add I/O pin 'joint.1.index-enable', it already has OUT pin 'hm2_7i96.0.gpio.002.in'
7364
Судя из описания joint.N.index-enable IO BIT (http://linuxcnc.org/docs/ja/html/man/man9/motion.9.html), этот пин имеет направление типа IO, как понимаю он одновременно и INT и OUT (он может как принимать значение IN, так и назначать его OUT). А hm2_7i96.0.gpio.002.in может только назначать, так как имеет направление OUT. А два OUT не возможно подключить между собой, подробнее тут - https://www.cnc-club.ru/wiki/index.php/ ... %D1%8B_hal.

Цитата из той же ссылки
Если надо соединить два пина типа out - то нужно использовать дополнительные компоненты, например компонент and2.
В описании, мы берем 2 OUT делаем их анализ и получаем 3-тий OUT, а не изменение одного из первый двух.

Есть еще какой-то вариант, он описан тут - https://forum.linuxcnc.org/24-hal-compo ... an-out-pin.

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

component io_connect;
pin io float out;
pin in float in;
function _;
license "GPLv2 or later";
;;
FUNCTION(_) { out = in; }
Его описание тут - http://www.linuxcnc.org/docs/2.8/html/hal/comp.html, похоже на программирование.

Мне кажется, что забрел не туда. Поэтому возвращаюсь к вопросу как настроить в hal индексную метку энкодера на обычный вход, чтобы она работала?
tpolimer2000
Мастер
Сообщения: 347
Зарегистрирован: 07 ноя 2018, 19:03
Репутация: 45
Настоящее имя: Александр
Откуда: Беларусь
Контактная информация:

Re: Maho 400p фрезерный станок по металлу (400x250x375)

Сообщение tpolimer2000 »

Добрый человек сделал подробное видео о Halcompile. Оставлю тут, чтобы не забыть.
Halcompile или написание собственного компонента
https://www.youtube.com/watch?v=KWyZAslu-_c

Возможно мне поможет еще и это - viewtopic.php?p=419333#p419333, https://linuxcnc.org/docs/2.8/html/man/ ... bit.9.html, viewtopic.php?p=50997#p50997. Это уже готовый компонент, чтобы не писать свой, так как c Си знаком очень плохо.
tpolimer2000
Мастер
Сообщения: 347
Зарегистрирован: 07 ноя 2018, 19:03
Репутация: 45
Настоящее имя: Александр
Откуда: Беларусь
Контактная информация:

Re: Maho 400p фрезерный станок по металлу (400x250x375)

Сообщение tpolimer2000 »

От написания своего компонента в Halcompile отказался, после просмотра кода tristate_bit, он будет идентичен - https://github.com/LinuxCNC/linuxcnc/bl ... e_bit.comp , за исключением проверки enable.

На виртуальной машине с той же версией LinuxCnc получилось менять состояние index-enable. По крайней мере он копирует значение из tristate-bit.0.in в tristate-bit.0.out.

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

loadrt tristate_bit 	count=1
addf tristate-bit.0 	servo-thread
net set.index-y.in     	tristate-bit.0.in            	parport.0.pin-11-in-not  
net set.index-y.out    	tristate-bit.0.out           	joint.1.index-enable    
net set.index-y.enb   	tristate-bit.0.enable        	joint.1.homing
Чуть позже попробую на реальном станке.
tpolimer2000
Мастер
Сообщения: 347
Зарегистрирован: 07 ноя 2018, 19:03
Репутация: 45
Настоящее имя: Александр
Откуда: Беларусь
Контактная информация:

Re: Maho 400p фрезерный станок по металлу (400x250x375)

Сообщение tpolimer2000 »

Продолжаю пытаться подключить индексную метку энкодера к Mesa 7I96. Завел ее в Mesa и привязал ее к index-enable, через tristate-bit.
Вот код подключения tristate-bit

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

loadrt tristate_bit 	count=3
addf tristate-bit.0 	      servo-thread
addf tristate-bit.1 	      servo-thread
addf tristate-bit.2           servo-thread
Подключение для оси Y

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

net set.index-y.in     	tristate-bit.1.in            	hm2_7i96.0.gpio.002.in
net set.index-y.out    	tristate-bit.1.out           	joint.1.index-enable    
net set.index-y.enb   	tristate-bit.1.enable        	joint.1.homing
Сигнал с индексной метки приходит на Mesa, Mesa ее видит и взводит index-enable в 1 (True). Но при этом, поиск 0-ля происходит по не метке. Происходит это так, станок быстро идет на датчик Home, затем идет в противоположное направление какое-то время (пока не понял какое, примерно около 5 оборотов мотора) и останавливается. Поиск по датчику Home без использования метки работает как часы.

Моя схема установки датчиков Home и лимитов.
Изображение

Пытаюсь реализовать 3-ю схему на картинке ниже
Изображение

Настройки в файле .ini, для каждой оси

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

HOME_OFFSET = 0
HOME_SEARCH_VEL = 10
HOME_LATCH_VEL = -0.5
HOME_FINAL_VEL = 0.5
HOME_USE_INDEX = YES
Как же есть такая строка

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

NO_FORCE_HOMING = 1
Файлы конфигурации в прищепке.

Что я делаю не так :wik: ?
Вложения
7I96_GMOC.hal
(13.11 КБ) 89 скачиваний
7I96_GMOC.ini
(9.64 КБ) 85 скачиваний
Аватара пользователя
xenon-alien
Почётный участник
Почётный участник
Сообщения: 4506
Зарегистрирован: 01 янв 2013, 13:13
Репутация: 920
Настоящее имя: Daniel
Откуда: Закарпатская обл. Украина
Контактная информация:

Re: Maho 400p фрезерный станок по металлу (400x250x375)

Сообщение xenon-alien »

tpolimer2000 писал(а): Что я делаю не так ?
Я тоже задавался этим вопросом и не совсем понял как его верно реализовать. Правда плата 7I96s.
Вот спрашивал на форуме, как можно реализовать не меняя прошивки с поддержкой энкодера, или stepgen index (типа если хотим использовать индексную метку, нужен энкодерный вход и с него брать уже сигнал)
Но кто-то тоже делал подобное и обошел как-то этот нюанс, но сейчас не найду этот пост.
Мне тоже это нужно, потому что индуктивные датчики не отвечают нужной точностью, а на серве есть выход с энкодера. (полную ОС не будем реализовать, но индексную метку для определения домашнего положения не мешало бы)
И вот тут тоже человек с индексом возится, но ему для его конфигурации сделали прошивку
tpolimer2000
Мастер
Сообщения: 347
Зарегистрирован: 07 ноя 2018, 19:03
Репутация: 45
Настоящее имя: Александр
Откуда: Беларусь
Контактная информация:

Re: Maho 400p фрезерный станок по металлу (400x250x375)

Сообщение tpolimer2000 »

xenon-alien писал(а): Вот спрашивал на форуме, как можно реализовать не меняя прошивки с поддержкой энкодера, или stepgen index (типа если хотим использовать индексную метку, нужен энкодерный вход и с него брать уже сигнал)
Реализовать ее можно, к примеру тут - https://forum.linuxcnc.org/24-hal-compo ... ming-index, человек реализовал с контролером на LTP. Вот его рабочий (с его слов) hal - https://forum.linuxcnc.org/media/kunena ... 6-17-2.hal.

Он использует модуль encoder, возможно и мне нужно использовать его, буду пробовать. При попытке загрузить модуль encoder, так

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

loadrt encoder num_chan=1
Получил ошибку. Возможно из-за того, что вверху есть строка

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

loadrt hm2_eth board_ip="10.10.10.10" config="num_encoders=1 num_pwmgens=0 num_stepgens=5 sserial_port_0=0xxxxx"
Может нужно было указать num_encoders=4 (для 3-х осей) и обращаться к ним так hm2_7i96.0.encoder.0X.

Завтра буду пробовать, но мне кажется, что я ошибся в настройке .ini
xenon-alien писал(а): Мне тоже это нужно, потому что индуктивные датчики не отвечают нужной точностью, а на серве есть выход с энкодера. (полную ОС не будем реализовать, но индексную метку для определения домашнего положения не мешало бы)
Аналогично.
xenon-alien писал(а): Я тоже задавался этим вопросом и не совсем понял как его верно реализовать.
Если разберусь, дам знать.
tpolimer2000
Мастер
Сообщения: 347
Зарегистрирован: 07 ноя 2018, 19:03
Репутация: 45
Настоящее имя: Александр
Откуда: Беларусь
Контактная информация:

Re: Maho 400p фрезерный станок по металлу (400x250x375)

Сообщение tpolimer2000 »

xenon-alien писал(а): Правда плата 7I96s.
У нас платы близнецы (различая по мелочам), пробовали подключать разъем P1 EXPANSION CONNECTOR?

Есть задумка спаять шлейф и подключить к нему простую плату опторазвязки LTP, входы заканчиваются :) .
Аватара пользователя
xenon-alien
Почётный участник
Почётный участник
Сообщения: 4506
Зарегистрирован: 01 янв 2013, 13:13
Репутация: 920
Настоящее имя: Daniel
Откуда: Закарпатская обл. Украина
Контактная информация:

Re: Maho 400p фрезерный станок по металлу (400x250x375)

Сообщение xenon-alien »

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

config="num_encoders=1 num_pwmgens=0 num_stepgens=5 sserial_port_0=0xxxxx"
Можно и не писать, если все функции прошивки используются. (столкнулся с этим в mesa configuration tool )
tpolimer2000 писал(а): Может нужно было указать num_encoders=4 (для 3-х осей) и обращаться к ним так hm2_7i96.0.encoder.0X.
На плате и в родной прошивке всего один энкодер.
Если нужно больше, то нужна другая прошивка.
Эти энкодера не програмно генерируются, как в ЛПТ.
Так что тут только hm2_7i96.0.encoder.00. есть и всё.
Аватара пользователя
xenon-alien
Почётный участник
Почётный участник
Сообщения: 4506
Зарегистрирован: 01 янв 2013, 13:13
Репутация: 920
Настоящее имя: Daniel
Откуда: Закарпатская обл. Украина
Контактная информация:

Re: Maho 400p фрезерный станок по металлу (400x250x375)

Сообщение xenon-alien »

tpolimer2000 писал(а): 13 авг 2022, 19:07
xenon-alien писал(а): Правда плата 7I96s.
У нас платы близнецы (различая по мелочам), пробовали подключать разъем P1 EXPANSION CONNECTOR?

Есть задумка спаять шлейф и подключить к нему простую плату опторазвязки LTP, входы заканчиваются :) .
У меня такая дома и на работе тоже есть - 7I96. (2 фрезера на них запущено)

А по поводу разъема Р1
tpolimer2000
Мастер
Сообщения: 347
Зарегистрирован: 07 ноя 2018, 19:03
Репутация: 45
Настоящее имя: Александр
Откуда: Беларусь
Контактная информация:

Re: Maho 400p фрезерный станок по металлу (400x250x375)

Сообщение tpolimer2000 »

xenon-alien писал(а): Можно и не писать, если все функции прошивки используются. (столкнулся с этим в mesa configuration tool )
Не знал.
xenon-alien писал(а): На плате и в родной прошивке всего один энкодер.
Если нужно больше, то нужна другая прошивка.
Эти энкодера не програмно генерируются, как в ЛПТ.
Так что тут только hm2_7i96.0.encoder.00. есть и всё.
Спасибо, сэкономили мне время на тесты.

Не уверен, что нам обязательно нужен энкодер. Мое предположение в следующем, есть какие-то пины (joint.0.index-enable, возможно какие-то еще, о которых не знаю), которые взводятся в логическую 1 (True) и LinuxCnc понимает, что станок наехал на метку. В классической схеме у нас есть энкодер (программный или аппаратный), который подключается к пину joint.0.index-enable, возможно к чему-то еще. Что мешает нам напрямую управлять joint.0.index-enable и другими необходимыми пинами, которые говорят LinuxCnc, что он наехал на метку? Мне удалось при наезде на индексную метку подать логическую 1 (True) на joint.0.index-enable. Возможно нужно что-то сделать еще или правильно настроить ini.
xenon-alien писал(а): А по поводу разъема Р1
Гляну, тема мне интересна.
Аватара пользователя
xenon-alien
Почётный участник
Почётный участник
Сообщения: 4506
Зарегистрирован: 01 янв 2013, 13:13
Репутация: 920
Настоящее имя: Daniel
Откуда: Закарпатская обл. Украина
Контактная информация:

Re: Maho 400p фрезерный станок по металлу (400x250x375)

Сообщение xenon-alien »

tpolimer2000 писал(а): Что мешает нам напрямую управлять joint.0.index-enable и другими необходимыми пинами, которые говорят LinuxCnc, что он наехал на метку?
Один человек это как-то сообразил, но не найду темы, в которой он это писал.
tpolimer2000
Мастер
Сообщения: 347
Зарегистрирован: 07 ноя 2018, 19:03
Репутация: 45
Настоящее имя: Александр
Откуда: Беларусь
Контактная информация:

Re: Maho 400p фрезерный станок по металлу (400x250x375)

Сообщение tpolimer2000 »

xenon-alien писал(а): Один человек это как-то сообразил, но не найду темы, в которой он это писал.
Отлично, значит это возможно, осталось узнать как.

Сегодня займусь поиском, завтра попробую свои мысли. Если не получится, на плате есть 1 энкодер, его можно временно использовать для поиска 0-ля, чтобы определить какие пины включаются при поиске 0-ля с индексной меткой. Жаль, что не программист, есть открытый код - https://github.com/LinuxCNC/linuxcnc, https://github.com/LinuxCNC/linuxcnc/bl ... n/homing.c, но знаний не хватает.

Есть еще какой-то модуль шаблон https://linuxcnc.org/docs/devel/html/ma ... omp.9.html. Но как он работает с ходу не понял.
Аватара пользователя
xenon-alien
Почётный участник
Почётный участник
Сообщения: 4506
Зарегистрирован: 01 янв 2013, 13:13
Репутация: 920
Настоящее имя: Daniel
Откуда: Закарпатская обл. Украина
Контактная информация:

Re: Maho 400p фрезерный станок по металлу (400x250x375)

Сообщение xenon-alien »

tpolimer2000 писал(а): Сегодня займусь поиском, завтра попробую свои мысли.
Нужно просто чуток подождать ответа
tpolimer2000
Мастер
Сообщения: 347
Зарегистрирован: 07 ноя 2018, 19:03
Репутация: 45
Настоящее имя: Александр
Откуда: Беларусь
Контактная информация:

Re: Maho 400p фрезерный станок по металлу (400x250x375)

Сообщение tpolimer2000 »

xenon-alien писал(а): Нужно просто чуток подождать ответа
Или так :), спасибо.
Аватара пользователя
xenon-alien
Почётный участник
Почётный участник
Сообщения: 4506
Зарегистрирован: 01 янв 2013, 13:13
Репутация: 920
Настоящее имя: Daniel
Откуда: Закарпатская обл. Украина
Контактная информация:

Re: Maho 400p фрезерный станок по металлу (400x250x375)

Сообщение xenon-alien »

Производитель по идее напишет прошивку для 7I96S-ки с поддержкой индекса на Р1 но там нужно быть осторожным с подключением. (эта карта на работе)
Попросил так же сделать и для 7I96 (шим версии на 4-м генераторе) Что бы и я мог дома пробовать.
Посмотрим что получится.
tpolimer2000
Мастер
Сообщения: 347
Зарегистрирован: 07 ноя 2018, 19:03
Репутация: 45
Настоящее имя: Александр
Откуда: Беларусь
Контактная информация:

Re: Maho 400p фрезерный станок по металлу (400x250x375)

Сообщение tpolimer2000 »

xenon-alien писал(а): Производитель по идее напишет прошивку для 7I96S-ки с поддержкой индекса на Р1 но там нужно быть осторожным с подключением. (эта карта на работе)
Попросил так же сделать и для 7I96 (шим версии на 4-м генераторе) Что бы и я мог дома пробовать.
Посмотрим что получится.
Спасибо, хорошо иметь встроенную поддержку от производителя.

Терпение явно не моя черта, поэтому сегодня реализовал поиск home по индексной метке для 7I96, это метод подойдет для любой Mesa, чуть позже опишу его, только приехал домой.
Аватара пользователя
xenon-alien
Почётный участник
Почётный участник
Сообщения: 4506
Зарегистрирован: 01 янв 2013, 13:13
Репутация: 920
Настоящее имя: Daniel
Откуда: Закарпатская обл. Украина
Контактная информация:

Re: Maho 400p фрезерный станок по металлу (400x250x375)

Сообщение xenon-alien »

tpolimer2000 писал(а): Терпение явно не моя черта, поэтому сегодня реализовал поиск home по индексной метке для 7I96, это метод подойдет для любой Mesa, чуть позже опишу его, только приехал домой.
Замечательно!
Интересно будет узнать.
На "рабочей" плате уже просто входов не осталось, так что по любому нужно будет использовать Р1.

Человек написал, что в ближайшие дни постарается сделать.
Ответить

Вернуться в «Фрезерные станки по металлам»