Страница 1 из 1
Паразитное задание на HSD3
Добавлено: 24 апр 2015, 16:03
de-signer
Привет всем.
Купил контроллер управления асинхронным бесщёточный движком HSD3 вместе с движком, разумеется. Подключил, настроил. Нужно управлять им постоянкой +10/-10 В. Собрал сначала контроллер с движком, подключил к розетке (он питается ~220В). Движок стоит аки надо: рукой вал свернуть не смог. Переключаю на контроллере в режим управления с компа и ... движок поехал. Тупо дрейфует с почти нулевым рассогласованием. Полез посмотреть какое задание он выполняет. Оказывается выполняет - 80 об/мин. Слегка прифигел, перевёл на вольты, получил 0.25В. Первое что сваял - это заземление всего и вся. Земля хорошая, лично пачку соли всыпал. Эффекта - ноль. Перекурил пару раз весь мануал к контроллеру. Ну не должно быть задания. В конце взял проволоку и замкнул ему контакт входа задания сначала на его же GND, а потом ещё и на общую землю. Эффекта - ноль: продолжает крутиться. Нашёл в параметрах "компенсатор", т.е. ручками можно задать постоянное слагаемое, которое будет складываться с заданием. Подобрал слагаемое. Движок встал, но, редиска!!, продолжает мееедленно дрейфовать то в одну то в другую сторону. С контроллером больше ничего сделать не могу и мануал уже почти наизусть выучил =(
Появилась мысль: а может ли emc програмным способом держать движок? Выходы с энкодера имеются. Попробовал в лоб: ан нет. Emc считает, что если она даёт задание ноль, а энкодер наматывает рассогласование, то это явный сбой и EMERGENCY-STOP мне в грызло.
Кто-нибуть сталкивался с подобным? Может есть идеи?
Спасибо.
P.S.: если кому интересно вот мануал
https://cloud.mail.ru/public/2P1VZZtAiRa5/HSD3.pdf
Re: Паразитное задание на HSD3
Добавлено: 24 апр 2015, 17:56
Darxton
de-signer писал(а):"компенсатор", т.е. ручками можно задать постоянное слагаемое, которое будет складываться с заданием. Подобрал слагаемое. Движок встал, но, редиска!!, продолжает мееедленно дрейфовать то в одну то в другую сторону. С контроллером больше ничего сделать не могу и мануал уже почти наизусть выучил =(
PA6, PA46 потеребите... А вообще напляшетесь с этим аналоговым управлением... В 21 веке все цифровое...
Re: Паразитное задание на HSD3
Добавлено: 24 апр 2015, 18:13
Serg
Darxton писал(а):А вообще напляшетесь с этим аналоговым управлением... В 21 веке все цифровое...
Вы просто не умеете их готовить!
de-signer писал(а):Переключаю на контроллере в режим управления с компа и ... движок поехал.
Ну так и управляйте им с компа! Вам ведь нужно чтоб он стоял на месте, т.е. удерживал позицию? Ну так замкните петлю обратной связи (clossed loop) - пусть компьютер таки получает позицию от энкодера и выдаёт соотв. корректировки на управляющий вход. А сейчас у вас комп не видит, что позиция "уезжает"...
Darxton писал(а):PA6, PA46 потеребите...
Это не поможет. PA6 - это настройка параметров PID-регулятора, а без замкнутой петли обратной связи никакой PID невозможен.
PA46 - это реакция на импульные помехи, а тут банальный температурный дрейф...
Re: Паразитное задание на HSD3
Добавлено: 25 апр 2015, 10:17
de-signer
Darxton писал(а):PA6, PA46 потеребите...
Писал в первом посте: PID работает и работает верно, он _верно выполняет_ задание в 0.25В. PA46 мучил - бестолку.
UAVpilot писал(а):Ну так и управляйте им с компа! Вам ведь нужно чтоб он стоял на месте, т.е. удерживал позицию? Ну так замкните петлю обратной связи (clossed loop) - пусть компьютер таки получает позицию от энкодера и выдаёт соотв. корректировки на управляющий вход. А сейчас у вас комп не видит, что позиция "уезжает"...
Так а как? Подключил я его и сразу "joint 0 fault". EMC видит энкодер, отсюда и "fault", т.к. EMC задание даёт нулевое, а по энкодеру движок "уехал". Где мне искать эту петлю обратной связи?
Фишка ж ещё и в том, что контроллер и сам получает показания энкодера, т.е. вроде как "умышленно" дрейфует =(
Re: Паразитное задание на HSD3
Добавлено: 25 апр 2015, 10:33
Serg
de-signer писал(а):Так а как?
А кто-ж его знает? Вы ж ничего не рассказываете... Может вы все провода от энкодера в USB-порт засунули...

Re: Паразитное задание на HSD3
Добавлено: 25 апр 2015, 10:47
de-signer
UAVpilot писал(а):А кто-ж его знает? Вы ж ничего не рассказываете... Может вы все провода от энкодера в USB-порт засунули...
Ок.
На компе стоит Debian Wheezy с предустановленным EMC 2.6. В комп воткнута 5i25. К ней подключена дочерняя 7i77 c шестью PWM и входами для энкодеров. К контроллеру подключен движок и выход с 7i77.PWM0. В 7i77.Encoder0 заведены контакты с выхода контроллера, по которым идёт сигнал от энкодера с движка. Включаю контроллер (он начинает куда-то "плыть"). Снимаю EMC с EMERGENCY_STOP. Включаю питание "Виртуальной" ЧПУ. Сразу же получаю "joint 0 fault" и EMERGENCY_STOP.
Используемый конфиг был создан при помощи утилиты, поставляемой с EMC - pnc_conf и немного допилен руками, а именно:
- готовность движков сделана насильно 1, т.е. готовность не спрашивается у контроллера (временное явление, так сказать для отладки);
- подпилено значение множителя PWM в ini файле, чтобы сигнал был не +10/-10В, а +5/-5В (тоже для настройки/отладки);
- заведён энкодер с соответствующих пинов 7i77 в соответствующее место.
Если нужны конфиги, то как только попаду на производство выложу.
Re: Паразитное задание на HSD3
Добавлено: 25 апр 2015, 11:08
Serg
de-signer писал(а):- заведён энкодер с соответствующих пинов 7i77 в соответствующее место.
Т.е. если руками покрутить вал двигателя, то циферки в LinuxCNC меняются?
de-signer писал(а):- готовность движков сделана насильно 1, т.е. готовность не спрашивается у контроллера (временное явление, так сказать для отладки);
А компонент pid (который и должен удерживать позицию) об этом знает?..
de-signer писал(а):Если нужны конфиги, то как только попаду на производство выложу.
Ну не то чтобы мы прям жить без них не можем, но есть вероятность, что они облегчат решение вопроса.

Re: Паразитное задание на HSD3
Добавлено: 25 апр 2015, 11:19
de-signer
UAVpilot писал(а):Т.е. если руками покрутить вал двигателя, то циферки в LinuxCNC меняются?
Да.
UAVpilot писал(а):А компонент pid (который и должен удерживать позицию) об этом знает?
Не буду врать, забыл, но вроде как раз в pid.feedback я и завёл энкодер.
UAVpilot писал(а): но есть вероятность, что они облегчат решение вопроса
Ок. Сейчас белый северный зверёк на улице закончится и поеду на производство.
Re: Паразитное задание на HSD3
Добавлено: 28 апр 2015, 11:22
de-signer
de-signer писал(а):Не буду врать, забыл, но вроде как раз в pid.0.feedback я и завёл энкодер.
А ещё, оказывается я завёл axis.0.pos-cmd в axis.0.feedback для проверки +10/-10В с 7i77 и забыл про это наглухо. В итоге получил то, что получил.
Пролистал hal, убрал все свои заглушки. Добился от контроллера минимального дрейфа. Один чёрт сбой оси. Тут-то меня и надоумило повысить максимальное рассогласование в ini. У меня движок включается не по команде axis.0.enable, а одновременно с контроллером. Т.к. всё это добро запускается на столе/коленке для проверки работоспособности. Так вот пока я отжимаю EMERGENCY_STOP и нажимаю включение питания станка, движок успевает с десятку накрутить. Pid его дёргает в другую сторону, но, видимо перебегает.
В итоге после всех описанных шаманств и увеличением рассогласования вопрос решился. Надо просто давать контроллеру сигнал enable от emc и не мудрить.
К слову: проверил два других контроллера. Результат по установленному на контроллерах компенсаторах в об/мин: первый контроллер: +60, второй: +63, третий: +125. Такие вот аналоговые дела.
Всем спасибо. Вопрос решён.