LinuxCNC + breakout board

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Makc31
Новичок
Сообщения: 9
Зарегистрирован: 03 фев 2019, 12:24
Репутация: 0
Настоящее имя: Максим
Контактная информация:

LinuxCNC + breakout board

Сообщение Makc31 »

Доброго времени суток уважаемые форумчане.
Есть смодельный 3-х осевой станок (по у 2 двигателя): китайская плата опторазвязки https://aliexpress.ru/item/32830611064. ... 33ed9cbVZc, 4 драйвера DQ860MA, три двигателя 85BYGH450D-008 https://aliexpress.ru/item/32798612511. ... 33edj0ELdl и один WT86STH118-6004A https://aliexpress.ru/item/32791421961. ... 1aa5cNfANq
Все это прекрасно работало с MACH3, но из-за периодического пропуска шагов кривым не лицензионным мачем решил попробовать linuxCNC (по большей степени из-за RealTime).
В linux полный ноль. Никогда даже не видел.
Почитал некоторую информацию на форумах.
Скачал с официально сайта http://linuxcnc.org/downloads/ iso образ linuxcnc-2.7.14-wheezy (возможно не то, что нужно), установил. Запустил летенси тест. Результат нормальный.
Открыл StepConf. все пины step и dir движков установил так же как и в mach3 + 14 пин Eneble. Попробовал потестить оси, но не один из них двигателей вообще ни как не реагирует. Схема подключения рабочая. Мач работал 3 года.
Уже почти 2 недели бьюсь с этой проблемой и ни как не могу ее победить.
Подскажите пожалуйста, в какую сторону копать?
Заранее спасибо.
Аватара пользователя
iMaks-RS
Мастер
Сообщения: 1728
Зарегистрирован: 10 июл 2017, 09:25
Репутация: 199
Настоящее имя: Maks
Откуда: От туда.
Контактная информация:

Re: LinuxCNC + breakout board

Сообщение iMaks-RS »

двигать осями пытался уже из интерфейса Axis или во время настройки из StepConfig?
Makc31
Новичок
Сообщения: 9
Зарегистрирован: 03 фев 2019, 12:24
Репутация: 0
Настоящее имя: Максим
Контактная информация:

Re: LinuxCNC + breakout board

Сообщение Makc31 »

В основном из настроек StepConfig. Из программы тоже пробовал. Показывается движение по осям (цифры в программе бегут), но все мертво стоит. Пробовал удалять профиль и делать новый. Результат одинаковый
Аватара пользователя
iMaks-RS
Мастер
Сообщения: 1728
Зарегистрирован: 10 июл 2017, 09:25
Репутация: 199
Настоящее имя: Maks
Откуда: От туда.
Контактная информация:

Re: LinuxCNC + breakout board

Сообщение iMaks-RS »

Если Enable задействован - то инвертировать или отключить.
Makc31
Новичок
Сообщения: 9
Зарегистрирован: 03 фев 2019, 12:24
Репутация: 0
Настоящее имя: Максим
Контактная информация:

Re: LinuxCNC + breakout board

Сообщение Makc31 »

Понял, Я попробую вообще убрать клемму enable со всех драйверов и в емс2. А номер порта lpt в емс прописывать нужно?
Аватара пользователя
iMaks-RS
Мастер
Сообщения: 1728
Зарегистрирован: 10 июл 2017, 09:25
Репутация: 199
Настоящее имя: Maks
Откуда: От туда.
Контактная информация:

Re: LinuxCNC + breakout board

Сообщение iMaks-RS »

Если порт один - то не надо, работает по дефолту. По крайней мере, сколько в биос не менял адрес. Если порта два - то в StepConfig можно задать адрес порта, к которому подключен.
AlekseySP
Опытный
Сообщения: 126
Зарегистрирован: 28 дек 2016, 03:25
Репутация: 32
Настоящее имя: Алексей
Контактная информация:

Re: LinuxCNC + breakout board

Сообщение AlekseySP »

Makc31 писал(а):В основном из настроек StepConfig. Из программы тоже пробовал. Показывается движение по осям (цифры в программе бегут), но все мертво стоит. Пробовал удалять профиль и делать новый. Результат одинаковый
Какие тайминги шд в настройках? У меня всё поехало после того как поставил галочку в invert step
Makc31
Новичок
Сообщения: 9
Зарегистрирован: 03 фев 2019, 12:24
Репутация: 0
Настоящее имя: Максим
Контактная информация:

Re: LinuxCNC + breakout board

Сообщение Makc31 »

Все настройки стандартные. Время и место шага 5000, удержание и сделать установка направления 20000.
Инвестировали шаг по всем осям?

Как цитировать сообщение?

Заметил одну странную особенность: при запущенном линуксе все движки кроме одного встают в удержание. Двигатель, который висит на 6 и 7 пинах в каком-то полуудержании. То есть, его можно провернуть ручкой с щелчками, не знаю как объяснить точнее. Пробовал менять движки, ситуация повторяется. Если снять клемник Step/Dir, то удержание нормальное.
Аватара пользователя
iMaks-RS
Мастер
Сообщения: 1728
Зарегистрирован: 10 июл 2017, 09:25
Репутация: 199
Настоящее имя: Maks
Откуда: От туда.
Контактная информация:

Re: LinuxCNC + breakout board

Сообщение iMaks-RS »

Makc31 писал(а):Как цитировать сообщение?
Выделяешь текст зажатой левой кнопкой мышы. Как отпустишь - появится один пункт меню "Цетрировать". По нему кликаешь "вуа-ля".
Makc31 писал(а):Если снять клемник Step/Dir
Может что с пинами в настройках напутано, может где ошиблись. Поведени движка, подключенного к 6-7, больше похоже на глюки вызванные отсутствием заземления или нводками работающего ПЧ/шпинделя. У меня был прикол.. стоит на удержании. как только начинаешь шевелить дверцу электрощиа - оси сами начинают движение и иногда щелкает релюха включения шпинделя. Выличилось уравниваением потенциалов механики станка, электрощита и ПК. Заземления нет.
Верните обратно Mach - если заработает, то скорее всего где-то ошибка в конфигурации linuxcnc, если глюк повториться - то проблема железная.. Ведь как понял - ПК остался тот-же. значит аппаратная связка осталась без изменений. Дайти скрин настройки осей mach и linuxcnc.
AlekseySP
Опытный
Сообщения: 126
Зарегистрирован: 28 дек 2016, 03:25
Репутация: 32
Настоящее имя: Алексей
Контактная информация:

Re: LinuxCNC + breakout board

Сообщение AlekseySP »

Makc31 писал(а):Все настройки стандартные. Время и место шага 5000, удержание и сделать установка направления 20000.
Инвестировали шаг по всем осям?
Инвертировал XY. Поставь галочку и проверь. Поможет- хорошо, не поможет, в другом месте ищи. Мне кажется 20000 многовато
Аватара пользователя
iMaks-RS
Мастер
Сообщения: 1728
Зарегистрирован: 10 июл 2017, 09:25
Репутация: 199
Настоящее имя: Maks
Откуда: От туда.
Контактная информация:

Re: LinuxCNC + breakout board

Сообщение iMaks-RS »

параметры
AlekseySP писал(а): кажется 20000 многовато
Вполне возможно, т.к. по факту - нет нормального мануала на драйвера, даже на сайте производителя.. Есть схема включения и предельные параметры, но тайминги ни где не указаны. У буржуинов проскакиеват что 2.5мкс для шага и 3.5мкс - для направления. Поставить 5000 и 10000. Должно хватить. В мануале EMC, ещё рекомендуют к полученному джиттеру прибавить время смены направления.. Мне хоть и удалось получить джиттер в 7мкс, но поставил - 17 в итоге, (драйвера DM542, лишайны, не клон - оригиналы). Возможно действительно - дело в джиттере и таймингах.. Иногда, в тяжелых случаях, рекомендуют ставить резистор по STEP линии. Но я с таким не встречался..
AlekseySP
Опытный
Сообщения: 126
Зарегистрирован: 28 дек 2016, 03:25
Репутация: 32
Настоящее имя: Алексей
Контактная информация:

Re: LinuxCNC + breakout board

Сообщение AlekseySP »

Максим, а параллельный порт линукс то видит? Если в терминале выполнить команду lspci он там есть? И вообще, какая материнка? Парпорт встроенный или на отдельной карте?
Makc31
Новичок
Сообщения: 9
Зарегистрирован: 03 фев 2019, 12:24
Репутация: 0
Настоящее имя: Максим
Контактная информация:

Re: LinuxCNC + breakout board

Сообщение Makc31 »

Похоже умер lpt порт, ну или сдохла сигнальная часть всех драйверов.
Поделил жёсткий диск на 2 тома. На один установил Винду, на второй Линукс. Мач работать отказаться. Движки встают в удержание, но не крутятся ни в одну сторону. Попробую завтра от батареек запитать сигнал step на драйвере, а то может надо вскрывать и ремонтировать (если это конечно возможно).
Пока к сожалению эксперименты с Линукс закончились))
Makc31
Новичок
Сообщения: 9
Зарегистрирован: 03 фев 2019, 12:24
Репутация: 0
Настоящее имя: Максим
Контактная информация:

Re: LinuxCNC + breakout board

Сообщение Makc31 »

Доброго времени суток уважаемые форумчане.
Проблема была не в LPT , а в драйверах. Вроде все сделал. Мач работает linux пытаюсь настроить.
Последние 4 дня пытаюсь побороть несколько проблем.
Буду очень признательн, если кто-то поможет их решить или хотя бы скажет где почитать можно.
1. Как на один пин посадить 2 датчика (Х и Z). У и А - каждый на отдельном пине
2. Подключил кинематику gantrykins. В свободном режиме (joint) каждая ось двигается без проблем. Если запустить УП, то ось А работает также как Y. Но если я перехожу в совместный режим (world), то при движении любой осью появляются ошибки.
3. Как прописать датчик инструмента оси Z, чтобы он работал как в мач, то есть сначала опускался до касания, затем поднимался на определенное расстояние, снова медленно опускалсв, устанавливал положение и поднимался на определенное расстояние.
И самое главное, где находится кнопка инструмента?
4. Как подключить шпиндель к LinuxCNC через rd485. Мач у меня настроен сейчас именно таким подключением через com port.
Буду благодарен за любую помощь.

Файл HAL
(для просмотра содержимого нажмите на ссылку)
# Generated by stepconf 1.1 at Mon Aug 24 16:45:30 2020
# Все изменения в этом файле будут перезаписаны
# при следующем запуске stepconf

# загружаем кинематику
loadrt gantrykins
# настраиваем связь осей
setp gantrykins.joint-0 0
setp gantrykins.joint-1 1
setp gantrykins.joint-2 2
setp gantrykins.joint-3 1

loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES
loadrt hal_parport cfg="0 out"
setp parport.0.reset-time 5000
loadrt stepgen step_type=0,0,0,0

addf parport.0.read base-thread
addf stepgen.make-pulses base-thread
addf parport.0.write base-thread
addf parport.0.reset base-thread

addf stepgen.capture-position servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf stepgen.update-freq servo-thread
net spindle-cmd-rpm <= motion.spindle-speed-out
net spindle-cmd-rpm-abs <= motion.spindle-speed-out-abs
net spindle-cmd-rps <= motion.spindle-speed-out-rps
net spindle-cmd-rps-abs <= motion.spindle-speed-out-rps-abs
net spindle-at-speed => motion.spindle-at-speed

net probe-in => motion.probe-input

net zstep => parport.0.pin-02-out
setp parport.0.pin-02-out-reset 1
net zdir => parport.0.pin-03-out
net xstep => parport.0.pin-04-out
setp parport.0.pin-04-out-reset 1
net xdir => parport.0.pin-05-out
net astep => parport.0.pin-06-out
setp parport.0.pin-06-out-reset 1
net adir => parport.0.pin-07-out
net ystep => parport.0.pin-08-out
setp parport.0.pin-08-out-reset 1
net ydir => parport.0.pin-09-out
net xenable => parport.0.pin-14-out
net estop-ext <= parport.0.pin-10-in-not

#Pin HOME для X и Z общий?
net home-x <= parport.0.pin-11-in

net home-y <= parport.0.pin-12-in
net probe-in <= parport.0.pin-13-in
net home-a <= parport.0.pin-15-in

setp stepgen.0.position-scale [AXIS_0]SCALE
setp stepgen.0.steplen 1
setp stepgen.0.stepspace 0
setp stepgen.0.dirhold 29000
setp stepgen.0.dirsetup 29000
setp stepgen.0.maxaccel [AXIS_0]STEPGEN_MAXACCEL
net xpos-cmd axis.0.motor-pos-cmd => stepgen.0.position-cmd
net xpos-fb stepgen.0.position-fb => axis.0.motor-pos-fb
net xstep <= stepgen.0.step
net xdir <= stepgen.0.dir
net xenable axis.0.amp-enable-out => stepgen.0.enable
net home-x => axis.0.home-sw-in

setp stepgen.1.position-scale [AXIS_1]SCALE
setp stepgen.1.steplen 1
setp stepgen.1.stepspace 0
setp stepgen.1.dirhold 29000
setp stepgen.1.dirsetup 29000
setp stepgen.1.maxaccel [AXIS_1]STEPGEN_MAXACCEL
net ypos-cmd axis.1.motor-pos-cmd => stepgen.1.position-cmd
net ypos-fb stepgen.1.position-fb => axis.1.motor-pos-fb
net ystep <= stepgen.1.step
net ydir <= stepgen.1.dir
net yenable axis.1.amp-enable-out => stepgen.1.enable
net home-y => axis.1.home-sw-in

setp stepgen.2.position-scale [AXIS_2]SCALE
setp stepgen.2.steplen 1
setp stepgen.2.stepspace 0
setp stepgen.2.dirhold 29000
setp stepgen.2.dirsetup 29000
setp stepgen.2.maxaccel [AXIS_2]STEPGEN_MAXACCEL
net zpos-cmd axis.2.motor-pos-cmd => stepgen.2.position-cmd
net zpos-fb stepgen.2.position-fb => axis.2.motor-pos-fb
net zstep <= stepgen.2.step
net zdir <= stepgen.2.dir
net zenable axis.2.amp-enable-out => stepgen.2.enable
#net home-z => axis.2.home-sw-in ТАК НЕ РАБОТАЕТ

setp stepgen.3.position-scale [AXIS_3]SCALE
setp stepgen.3.steplen 1
setp stepgen.3.stepspace 0
setp stepgen.3.dirhold 29000
setp stepgen.3.dirsetup 29000
setp stepgen.3.maxaccel [AXIS_3]STEPGEN_MAXACCEL
net apos-cmd axis.3.motor-pos-cmd => stepgen.3.position-cmd
net apos-fb stepgen.3.position-fb => axis.3.motor-pos-fb
net astep <= stepgen.3.step
net adir <= stepgen.3.dir
net aenable axis.3.amp-enable-out => stepgen.3.enable
net home-a => axis.3.home-sw-in

net estop-out <= iocontrol.0.user-enable-out
net estop-ext => iocontrol.0.emc-enable-in

loadusr -W hal_manualtoolchange
net tool-change iocontrol.0.tool-change => hal_manualtoolchange.change
net tool-changed iocontrol.0.tool-changed <= hal_manualtoolchange.changed
net tool-number iocontrol.0.tool-prep-number => hal_manualtoolchange.number
net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared
Файл ini
(для просмотра содержимого нажмите на ссылку)
# Generated by stepconf 1.1 at Mon Aug 24 16:45:30 2020
# Все изменения в этом файле будут перезаписаны
# при следующем запуске stepconf

[EMC]
MACHINE = 777
DEBUG = 0

[DISPLAY]
DISPLAY = axis
EDITOR = gedit
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
ARCDIVISION = 64
GRIDS = 10mm 20mm 50mm 100mm 1in 2in 5in 10in
MAX_FEED_OVERRIDE = 1.2
MIN_SPINDLE_OVERRIDE = 0.5
MAX_SPINDLE_OVERRIDE = 1.2
DEFAULT_LINEAR_VELOCITY = 83.50
MIN_LINEAR_VELOCITY = 0
MAX_LINEAR_VELOCITY = 100.00
DEFAULT_ANGULAR_VELOCITY = 36.00
MIN_ANGULAR_VELOCITY = 0
MAX_ANGULAR_VELOCITY = 360.00
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
PROGRAM_PREFIX = /home/makc/linuxcnc/nc_files
INCREMENTS = 5mm 1mm .5mm .1mm .05mm .01mm .005mm

[FILTER]
PROGRAM_EXTENSION = .png,.gif,.jpg Greyscale Depth Image
PROGRAM_EXTENSION = .py Python Script
png = image-to-gcode
gif = image-to-gcode
jpg = image-to-gcode
py = python

[TASK]
TASK = milltask
CYCLE_TIME = 0.010

[RS274NGC]
PARAMETER_FILE = linuxcnc.var

[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
COMM_WAIT = 0.010
BASE_PERIOD = 27000
SERVO_PERIOD = 1000000

[HAL]
HALFILE = 777.hal
HALFILE = custom.hal
POSTGUI_HALFILE = custom_postgui.hal

[TRAJ]
AXES = 4
COORDINATES = X Y Z A
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
CYCLE_TIME = 0.010
DEFAULT_VELOCITY = 83.50
MAX_VELOCITY = 100.00

[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = tool.tbl

[AXIS_0]
NAME = X

TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 105.0
MAX_ACCELERATION = 750.0
STEPGEN_MAXACCEL = 937.5
SCALE = 160.0
FERROR = 1
MIN_FERROR = .25
MIN_LIMIT = -0.001
MAX_LIMIT = 634.0
HOME_OFFSET = 0.000000
HOME_SEARCH_VEL = 25.000000
HOME_LATCH_VEL = 3.125000
HOME_SEQUENCE = 0

[AXIS_1]
NAME = Y1

TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 92.0
MAX_ACCELERATION = 650.0
STEPGEN_MAXACCEL = 812.5
SCALE = 160.0
FERROR = 1
MIN_FERROR = .25
MIN_LIMIT = -0.001
MAX_LIMIT = 960.0
HOME_OFFSET = 0.000000
HOME_SEARCH_VEL = 25.000000
HOME_LATCH_VEL = 3.125000
HOME_SEQUENCE = 0

[AXIS_2]
NAME = Z

TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 58.0
MAX_ACCELERATION = 750.0
STEPGEN_MAXACCEL = 937.5
SCALE = 160.0
FERROR = 1
MIN_FERROR = .25
MIN_LIMIT = -183.0
MAX_LIMIT = 0.001
HOME_OFFSET = 0.000000

# На датчик не реагирует. В пинах не указана
# HOME_SEARCH_VEL = 25.000000
# HOME_LATCH_VEL = 3.125000
# HOME_SEQUENCE = 0

[AXIS_3]
NAME = Y2

TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 92.0
MAX_ACCELERATION = 650.0
STEPGEN_MAXACCEL = 812.5
SCALE = 160.0
FERROR = 1
MIN_FERROR = .25
MIN_LIMIT = -0.001
MAX_LIMIT = 960.0
HOME_OFFSET = 0.000000
HOME_SEARCH_VEL = 25.000000
HOME_LATCH_VEL = 3.125000
HOME_SEQUENCE = 0
И ещё один вопрос. Почему при подключении внешней видеокарты maxjitter увеличивается с 12000 до 300000. Везде пишут что должно быть наоборот. Видеокарта Nvidia 9400gt
Вложения
SAVE_20200430_164034.jpg (3498 просмотров) <a class='original' href='./download/file.php?id=180700&sid=bf2f6040bc12a00a4f36fd6fb997f598&mode=view' target=_blank>Загрузить оригинал (517.35 КБ)</a>
Makc31
Новичок
Сообщения: 9
Зарегистрирован: 03 фев 2019, 12:24
Репутация: 0
Настоящее имя: Максим
Контактная информация:

Re: LinuxCNC + breakout board

Сообщение Makc31 »

Нашёл вот такую инструкцию по настройке связи моего частотника https://vk.com/@linuxcnc_users-podkluch ... -po-modbus
Вроде все сделал правильно. Сом порт только сменил с 1 на 0. Появилась панель отображения скорости шпинделя. Но шпиндель на включение не реагирует. В mach все настроено и работает. Подскажите, в какую сторону копать?
Аватара пользователя
iMaks-RS
Мастер
Сообщения: 1728
Зарегистрирован: 10 июл 2017, 09:25
Репутация: 199
Настоящее имя: Maks
Откуда: От туда.
Контактная информация:

Re: LinuxCNC + breakout board

Сообщение iMaks-RS »

в LinuxCNC уже встроена возможность работы с HuanYang, в виду их широкого распространения. Реализация через компонент hy_vfd - рекомендую почитать описание и сравнить параметры, при которых работает с Mach3... они могу отличаться.. ПЧ нужно настроить по параметрам в описании. Вот буржуинская мурзилка - я делал по ней, работает. Правда в отличии от представленных здесь на форуме универсальных заготовок, выводит мало информации. Вот расширенный вариант - тоже буржуинский.
Аватара пользователя
aekhv
Мастер
Сообщения: 393
Зарегистрирован: 17 окт 2014, 15:03
Репутация: 218
Настоящее имя: Александр
Откуда: г.Хабаровск
Контактная информация:

Re: LinuxCNC + breakout board

Сообщение aekhv »

Makc31 писал(а):Нашёл вот такую инструкцию по настройке связи моего частотника
А что за частотник-то? Наименование модели у него какое? Ссылка на даташит есть?
Аватара пользователя
iMaks-RS
Мастер
Сообщения: 1728
Зарегистрирован: 10 июл 2017, 09:25
Репутация: 199
Настоящее имя: Maks
Откуда: От туда.
Контактная информация:

Re: LinuxCNC + breakout board

Сообщение iMaks-RS »

BentScrew писал(а):А что за частотник-то?
скорее всего этот. Описание протокола на 35й странице. Русская версия - Re: Инвертор HY. Инструкция на русском языке. #8
Аватара пользователя
aekhv
Мастер
Сообщения: 393
Зарегистрирован: 17 окт 2014, 15:03
Репутация: 218
Настоящее имя: Александр
Откуда: г.Хабаровск
Контактная информация:

Re: LinuxCNC + breakout board

Сообщение aekhv »

iMaks-RS писал(а):скорее всего этот. Описание протокола на 35й странице.
Протокол отличается от стандарта, мой универсальный костыль такое не поддерживает. Вон даже коды функций совсем другие:

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

FUNC:Function code 8-bit data is composed of two ASC Ⅱ byte.
 01:FUNC READ, Read the data of function code
 02:FUNC WRIT, write the data of function code
 03:Write control data
 04:Read control status data
 05:Write inverter frequency data
 06:Reserved
 07:Reserved
 08:Loop test
Makc31 писал(а):Появилась панель отображения скорости шпинделя. Но шпиндель на включение не реагирует. В mach все настроено и работает. Подскажите, в какую сторону копать?
Надо бы в *.hal файлы посмотреть, покажите конфигурацию станка. Можно в виде архива или текстом в тэгах [ code] [ /code].
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: LinuxCNC + breakout board

Сообщение Serg »

У этих HY свой собственный протокол, лишь отдалённо похожий на Modbus.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Ответить

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