LinuxCNC + Orange Pi (allwincnc)

Контроллеры, драйверы, датчики, управляющие устройства.
xaxexa
Новичок
Сообщения: 13
Зарегистрирован: 14 фев 2020, 20:36
Репутация: 0
Настоящее имя: Вася
Контактная информация:

Re: LinuxCNC + Orange Pi (allwincnc)

Сообщение xaxexa »

Всем хорошего времени суток :)
подскажите как сделать обратную связь шпинделя через arisc?
есть драйвет ws55-220 у него EN-старт стоп, DIR - направление, SV 0-10в обороты, и есть вывод оборотов - вот хотелось бы их считать и засунуть в pyVCP, там два бара: первый заданные и второй истинные, вооот и как бы нам через arisc получить частоту? и вкинуть ее в pyvcp скажем spindle-speed-current может нативная переменная есть какая-то...

точнее как их заводить то? через arisc.pwm -fb какойто или arisc.encoder.N.vel-rpm??
xaxexa
Новичок
Сообщения: 13
Зарегистрирован: 14 фев 2020, 20:36
Репутация: 0
Настоящее имя: Вася
Контактная информация:

Re: LinuxCNC + Orange Pi (allwincnc)

Сообщение xaxexa »

ну походу вот так например

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

setp arisc.encoder.0.enable 1
setp arisc.encoder.0.index-enable 1
setp arisc.encoder.0.A-port	0 # PA
setp arisc.encoder.0.A-pin  18

net spindle.0.actual-speed				arisc.encoder.0.vel-rpm
кто подскажет есть ли нативная возможность контроля скорости заданной к актуальной? упоролся я в карягу :)
Аватара пользователя
MX_Master
Мастер
Сообщения: 7465
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3088
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: LinuxCNC + Orange Pi (allwincnc)

Сообщение MX_Master »

xenon-alien писал(а): 13 июл 2022, 19:56 Всем привет.
С домашним положением разобрался. (нужно было закомментировать офсет датчика, что бы сразу всё обнуляло)
За одно и механические микрики поставил на микро-токарный и всё настроил. (кому интересно - смотрим)
А теперь у меня завтык с настройкой шпинделя по степ/дир и ШИМ данного проекта.
Что я уже не подключал и к чему попало, но так и не понял, как реализовать вручную...
И по позиции пробовал и по скорости, но так и не получилось.
И обороты в сек. и в минуту прописывал - и ничего... :think:
Что-то натыкал, и там где задается частота ШИМ 100Гц, тогда чуток вращается, но ни на что не реагирует кроме как вкл/выкл шпинделя с заданной частотой.
Видимо не дорос ещё вручную это прописывать.
Кому не сложно, то подскажите что, да как, а то "стоп машина - нет бензина" в плане настройки.
Боюсь даже представить, как потом энкодер заводить, но то уже потом.
Буду благодарен за любые наброски настройки.
На всякий случай, что бы не искать описание ШИМ данного проекта и раздел шпинделя "мошэн"
Ну и то что натворил, правда уже многое по удалял...
config.hal
На мой первый взгляд можно сделать так (все пины и номера каналов даны только для примера, важные места выделены цветом)
loadrt [KINS]KINEMATICS
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS
loadrt arisc pwm="v" out="PC4"

addf arisc.gpio.read servo-thread
addf arisc.pwm.read servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf arisc.gpio.write servo-thread
addf arisc.pwm.write servo-thread

setp arisc.pwm.0.dc-cmd 0.5 # 50%
setp arisc.pwm.0.dc-max-t 5000 # ns
setp arisc.pwm.0.dir-hold 50000 # ns
setp arisc.pwm.0.dir-setup 50000 # ns
setp arisc.pwm.0.pwm-port 0 # PA port
setp arisc.pwm.0.pwm-pin 14 # PA14 pin
setp arisc.pwm.0.dir-port 3 # PD port
setp arisc.pwm.0.dir-pin 14 # PD14 pin
setp arisc.pwm.0.vel-scale 12800 # (24000 RPM) / (60s) * (32 microsteps)

net s-rpm spindle.0.speed-out arisc.pwm.0.vel-cmd
net s-en spindle.0.on arisc.pwm.0.enable arisc.gpio.PC4-out
Аватара пользователя
xenon-alien
Почётный участник
Почётный участник
Сообщения: 4506
Зарегистрирован: 01 янв 2013, 13:13
Репутация: 920
Настоящее имя: Daniel
Откуда: Закарпатская обл. Украина
Контактная информация:

Re: LinuxCNC + Orange Pi (allwincnc)

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

Заработало! Благодарю!
Провтыкал в параметрах pwm="v"
И по идее тут нюанс.
MX_Master писал(а): setp arisc.pwm.0.vel-scale 12800 # (24000 RPM) / (60s) * (32 microsteps)
Нужно задавать импульсы на оборот. Т.е. если пробовать на ШД то 200 шагов на 4 микрошага = 1600 (в твоем примере 200*32=6400).
Осталось разобраться с ускорением и торможением, а то на 100 оборотах ШД уже пищит, пропускает шаги, и не крутится...
Аватара пользователя
MX_Master
Мастер
Сообщения: 7465
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3088
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: LinuxCNC + Orange Pi (allwincnc)

Сообщение MX_Master »

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

Re: LinuxCNC + Orange Pi (allwincnc)

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

MX_Master писал(а): 31 июл 2022, 12:37 Ускорений в модуле pwm никаких нет. Это не его работа. Нужен сторонний компонент.
А как тогда работает это при позиционировании осей? Макс скорость и макс ускорение же прописывается в ini файле.

А с этим можно попробовать - 5. Spindle Soft Start ?
Аватара пользователя
MX_Master
Мастер
Сообщения: 7465
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3088
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: LinuxCNC + Orange Pi (allwincnc)

Сообщение MX_Master »

xenon-alien писал(а): А как тогда работает это при позиционировании осей? Макс скорость и макс ускорение же прописывается в ini файле.
Разгон для осей лежит на плечах планировщика, а разгон шпинделя (PWM->0-10V) контролирует частотник.
xenon-alien писал(а): А с этим можно попробовать - 5. Spindle Soft Start ?
А попробуй :)
Аватара пользователя
xenon-alien
Почётный участник
Почётный участник
Сообщения: 4506
Зарегистрирован: 01 янв 2013, 13:13
Репутация: 920
Настоящее имя: Daniel
Откуда: Закарпатская обл. Украина
Контактная информация:

Re: LinuxCNC + Orange Pi (allwincnc)

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

MX_Master писал(а): 31 июл 2022, 13:09
xenon-alien писал(а): А с этим можно попробовать - 5. Spindle Soft Start ?
А попробуй :)
Получилось! :good:
Теперь можно и к обратной связи приступать - настройки энкодера для шпинделя. (нарезание резьб)
Аватара пользователя
xenon-alien
Почётный участник
Почётный участник
Сообщения: 4506
Зарегистрирован: 01 янв 2013, 13:13
Репутация: 920
Настоящее имя: Daniel
Откуда: Закарпатская обл. Украина
Контактная информация:

Re: LinuxCNC + Orange Pi (allwincnc)

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

На данный момент так выглядит конфигурация.
OPi_Lathe_Sp_Enc.zip
(9.62 КБ) 122 скачивания
По идее энкодер видится, но он на 5в 1800ppr (китайский омрон e6b2-cwz1x, правда в месе полярность питания перепутал, и не знаю на сколько он жив) Счетчик считает туда и обратно, но с оборотами косяк.
Не пойму, как обороты согласовать. Подглядел, как в месе конфигуратор это сделал, но у меня чего-то не получается...
Или наводки, или ещё энкодер труп, или ещё чего...
Может кто глянуть?
А то я это ещё на коленке собираю. (а серву подключать придется наверное через понижайки уровней)
Энкодер подключен к питанию апельсинки 3,3в и напрямую в плату. Канал АВ видится, а индекс нет.
Может просто на 3,3 вольтах работает не корректно, или переполюсовка что-то не дожарила... :think:
Аватара пользователя
MX_Master
Мастер
Сообщения: 7465
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3088
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: LinuxCNC + Orange Pi (allwincnc)

Сообщение MX_Master »

Я не эксперт, но энкодеру минимум 4.8V надо. Сигнал с Z метки можно и мультиметром проверить. И ещё, некоторые пины на гребёнке апельсина могут работать не так, как положено. Можно сменить пин для Z метки.
Vasily_A
Новичок
Сообщения: 33
Зарегистрирован: 15 мар 2013, 12:16
Репутация: 3
Настоящее имя: Василий
Откуда: Калуга
Контактная информация:

Re: LinuxCNC + Orange Pi (allwincnc)

Сообщение Vasily_A »

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

Re: LinuxCNC + Orange Pi (allwincnc)

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

xenon-alien писал(а): Т.е. если пробовать на ШД то 200 шагов на 4 микрошага = 1600
Тут у меня ошибка...
С таким параметром получается 1об./сек при значении 1 об./мин...
А я то думаю, чего же я энкодер не могу подключить и согласовать с вращением шпинделя.
Аватара пользователя
xenon-alien
Почётный участник
Почётный участник
Сообщения: 4506
Зарегистрирован: 01 янв 2013, 13:13
Репутация: 920
Настоящее имя: Daniel
Откуда: Закарпатская обл. Украина
Контактная информация:

Re: LinuxCNC + Orange Pi (allwincnc)

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

Lathe_004-encoder.png (1568 просмотров) <a class='original' href='./download/file.php?id=204399&sid=4b3a498fc5b2ec6a38b17cb9c79751c6&mode=view' target=_blank>Загрузить оригинал (105.57 КБ)</a>

Сегодня добил, что бы выводились значения корректно.
Ну и готовность на нужных оборотах тоже.
Но не пойму, чего нужен такой огромный SCALE в 60 000 000 "попугаев" что бы получить реальные обороты на выходе?
(на плате меса это ровно 60 сек и получаем об/в минуту)
Но и то с натягом, потому что с таким множителем точность/кратность получается в 25 об/минуту...
Следующее, что может показать это 250 об/мин, или же 200. (в зависимости от програмного скругления может быть на пару единиц точнее)
Это я чего-то накосячил, или драйвер чего-то не так считает...?
А я то думаю, чего оно у меня не получается... :think:
Вот тут написано, что это секунды и минуты, но их значение в HalShow ну очень маленькое...
Можно ли это как-то исправить?

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

arisc.encoder.N.vel	(float, out)	real velocity feedback (in movement units/second).
arisc.encoder.N.vel-rpm	(float, out)	real velocity feedback (in revolutions/minute).
Аватара пользователя
MX_Master
Мастер
Сообщения: 7465
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3088
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: LinuxCNC + Orange Pi (allwincnc)

Сообщение MX_Master »

xenon-alien писал(а): Можно ли это как-то исправить?
Можно, я разрешаю. Наводка - https://github.com/allwincnc/linuxcnc/b ... #L955-L981

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

Re: LinuxCNC + Orange Pi (allwincnc)

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

MX_Master писал(а): Можно, я разрешаю. Наводка - https://github.com/allwincnc/linuxcnc/b ... #L955-L981
Благодарю!
Получается, что в драйвере самом что-то не так?
В папке installer, который давно качал гитхаба, нашел подобный файл, но он прилично отличается...
arisc.c
(31.28 КБ) 90 скачиваний
Ладно, скачаю новый и куда его потом запихнуть, а то что-то не найду его в файловой системе.
Где искать, и что править на что?
Нули убрать лишние с 1000000000, что бы получилась 1000?
Потом сохранить и проверить?
MX_Master писал(а): ЗЫ поддержка проекта - всё
Я помню.
Аватара пользователя
xenon-alien
Почётный участник
Почётный участник
Сообщения: 4506
Зарегистрирован: 01 янв 2013, 13:13
Репутация: 920
Настоящее имя: Daniel
Откуда: Закарпатская обл. Украина
Контактная информация:

Re: LinuxCNC + Orange Pi (allwincnc)

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

xenon-alien писал(а): Нули убрать лишние с 1000000000, что бы получилась 1000?
Потом сохранить и проверить?
Скачал заново, "исправил" на 1000
Запустил терминал и install_drv.sh - успех.
Проверяю - ничего не изменилось.
А где хранится оригинальный файл, может туда всё закосипастить? (я про уже установленный - в какой папке он хранится)
Аватара пользователя
MX_Master
Мастер
Сообщения: 7465
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3088
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: LinuxCNC + Orange Pi (allwincnc)

Сообщение MX_Master »

Любой RT компонент собирается и устанавливается командой

sudo halcompile --install Исходник

Все необходимые заголовки (.h) должны лежать рядом с исходником.
гражданинъ
Мастер
Сообщения: 1234
Зарегистрирован: 07 фев 2020, 21:00
Репутация: 160
Настоящее имя: Дмитрий
Контактная информация:

Re: LinuxCNC + Orange Pi (allwincnc)

Сообщение гражданинъ »

MX_Master писал(а): вот мой текущий конфиг на 4 оси с двумя движками на оси Y
Михаил , а этот конфиг у тебя самого сейчас работает ? Я всё ни как не решусь перейти на ариск , как на GPIO настроил , оно работает тьфу-тьфу нормально , а запросы у меня не большие . Но может когда и попробую , SD карта с рабочим образом имеется .
Гражданином Непала может быть любой гражданин,зачатый НЕпалкой и НЕпальцем.
Аватара пользователя
MX_Master
Мастер
Сообщения: 7465
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3088
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: LinuxCNC + Orange Pi (allwincnc)

Сообщение MX_Master »

Да, у меня станок на OPi PC робит, с arisc драйвером. Как доделаю свой контроллер на STM32, перейду на него. И всех желающих потяну за собой. Ну а чуть позже полностью освобожусь от LinuxCNC. Ибо планировщик только на 3 оси мне категорически не подходит ;)
гражданинъ
Мастер
Сообщения: 1234
Зарегистрирован: 07 фев 2020, 21:00
Репутация: 160
Настоящее имя: Дмитрий
Контактная информация:

Re: LinuxCNC + Orange Pi (allwincnc)

Сообщение гражданинъ »

Жаль , конечно , но меня устраивает то что есть . Спасибо тебе за проделанный труд ! И тема рекордсмен по просмотрам и ответам !
Гражданином Непала может быть любой гражданин,зачатый НЕпалкой и НЕпальцем.
Ответить

Вернуться в «Электроника»