Усовершенствованный сервопривод Чена

Anrry

Светодиодик Error показывает ошибку или аварийную остановку,произходит остановка двигателя.

Для EMERGENCY STOP - кнопка без фиксации,при этом загорается светодиод Error.

Сброс этого состояния только через выключение-включения питания, сброс по Reset или программный сброс с сервисной утилиты.

arisov77

Спасибо. А аварийная остановка приблизительно через сколько шагов происходит? Или она по времени? А то у Чена возможно такая ситуация- привод упёрся, Step продолжается и не достигая 20 000 шагов эти импульсы прекращаются и Error не срабатывает и если не досмотреть, то можно движок подпалить. У UHU также?

Anrry

Устанавливается программно,отвечает за это параметр (E) - Tracking error shutoff , возможные значения 10-5000.

chkmatulla

Не совсем так. Отвечает за это параметр F ( Fehlerabschaltung ). E ( Eilgang ) это ускореный ход. Для будущих разработок, пока не задействован.
Если движок уперся то, через заданное число импульсов он будет отключен и включен сигнал Ошибка. Так же будет, если движок провернуть, при отсутствии сигналов с компа. Величина 2000 это примерно один оборот вала двигателя.
Про обещанное. Подождите пожалуйста, неожиданные проблемы возникли…

Anrry
chkmatulla:

Не совсем так. Отвечает за это параметр F ( Fehlerabschaltung ). E ( Eilgang ) это ускореный ход. Для будущих разработок, пока не задействован.
Если движок уперся то, через заданное число импульсов он будет отключен и включен сигнал Ошибка. Так же будет, если движок провернуть, при отсутствии сигналов с компа. Величина 2000 это примерно один оборот вала двигателя.
Про обещанное. Подождите пожалуйста, неожиданные проблемы возникли…

Я приводил информацию по АНГЛИЙСКОЙ ВЕРСИИ прошивки.

Вы используете НЕМЕЦКУЮ, при этом буквы параметров могут совпадать,а их значения будут разные 😃
Кто интересуется,учитывайте какая прошивка и какой документаций пользоваться .

Вы правы,проворачивая вал двигателя без сигнала Step на входе мы вызовм сигнал Error через заданное параметром E (в английской версии) число импульсов.

chkmatulla

Я как то упустил из виду, что еще на английском есть документация. А чип прошит тоже на английском ?

arisov77

Сделал отключение по следующему алгоритму: если рассогласование превышает 20 000 шагов, то сразу состояние Error, если рассогласование превышает 10 шагов, то продолжается нормальная работа, но дополнительно запускается таймер задержки перевода в Error, если во время работы таймера движок «догоняет», т.е. меньше 10 шагов, то таймер «сбрасывается». Если рассогласование больше 10 шагов и меньше 20 000, в течении 15 сек., то переход в Error.
Исходя из практики, какие значения рассогласования шагов и время посоветуете?

chkmatulla

Я думаю что время не обязательно вводить, достаточно и количества шагов. Если например, нагрузка на инструменте возрастет но, не остановит инструмент и количество шагов, на которое допустимо отставание или опережение будет оставаться в пределах допуска, таймер может выключить машину, хотя все в пределах нормы.
А вот сколько шагов, это зависит от конкретной ситуации. Я думаю что больше 5.000 не потребуется. По UHU это почти 2,5 оборота двигателя. Хотя, запас карман не тянет… Опять же, процессору нет нужды расходовать ресурсы, на обработку команд для таймера, imho.

arisov77

Но тогда в ситуации когда привод упрёться и затем через какое-то время прекратятся импульсы не превысив 5 000 – 20 000 шагов ошибки не произойдёт, а движок может «подгореть». Вот поэтому я и ввёл задержку по времени. А если возрастёт нагрузка на инструмент и двигатель не будет успевать, то это значит, что двигатель не «осиляет» и с такой нагрузкой он тоже долго не проработает. Чтобы не было такой ситуации, надо двигатель тогда мощнее или понизить скорость обработки.
Немного поразмыслив, я прихожу к выводу, что 1 порог слежения рассогласования надо устанавливать чётвертой части числа импульсов на 1 оборот (четверть оборота движка). Для энкодера 2000имп/об значит 500 шагов. Или может всё таки другие значения?
И мне кажется если будет такое отставание, тогда, например при обработке круга из-за разных нагрузок на привода X и Y получиться овальчик.
А МК не расходует время, у меня программный счётчик, работающий не по прерываниям. А выставление флагов занимает мало времени.

chkmatulla

А почему импульсы прекратятся ? Я полагал что, эти 50.000 циклов отсчитывает сам контроллер, на основании заданного и действительного положения инструмента. И если движок встал… Кажется дошло. А чем тогда занимается WatchDog ? Разве это не его область ?

Baha

Если watchdog включен, то прикладное программное обеспечение должно через определенный промежуток времени сообщать ему (путем вызова специальной процедуры) о своей функциональности. Если этого не происходит, например, по причине “зависания” программного обеспечения, то сторожевой таймер автоматически сгенерирует сигнал сброса, тем самым, вызвав его перезагрузку. Кроме того, сигнал сброса может быть инициирован самим программным обеспечением, что может быть полезно при обнаружении каких либо ошибок, устранение которых возможно путем перезагрузки системы.

chkmatulla

Идея с таймером в общем- то не плохая. Я пару моментов уточню. При упоре двигатель не подгорит по двум причинам. Первая, ограничение по току и вторая это сам принцип работы. Ток через двигатель идет всегда. При покое половину цикла в одном направлении, втору

chkmatulla

Что- то глюкнуло…
Идея с таймером в общем- то не плохая. Я пару моментов уточню. При упоре двигатель не подгорит по двум причинам. Первая, ограничение по току и вторая, это сам принцип работы. Ток через двигатель идет всегда. При покое, половину цикла в одном направлении, вторую половину, в другом. При рабочих ходах меняется соотношение в цикле. Если конечно напряжение питания выбрано правильно.
У Ули кстати, тоже нет сообщения об ошибке в такой ситуации. Контроллер упорно толкает движок.
А допустимое количество импульсов, для ошибки, каждый может сам задать. Под свои нужды.

Creolka

Хай.
Спрошу здесь.
Этот UHU контроллер может управлять тормозами на “серве”, есть ли там такая возможность?
Если нет, то как это можно осуществить? Управление тормозом.
Или там тормоз нужен только в выключеном состоянии? Ну скажем чтобы Z в низ не уехала.

Хочу поменять ШД-привода на “серво” - шаговики надоели своими трелями.

Baha
Creolka:

Хай.
Спрошу здесь.
Этот UHU контроллер может управлять тормозами на “серве”, есть ли там такая возможность?
Если нет, то как это можно осуществить? Управление тормозом.
Или там тормоз нужен только в выключеном состоянии? Ну скажем чтобы Z в низ не уехала.

Хочу поменять ШД-привода на “серво” - шаговики надоели своими трелями.

Валентин, привет. Вот здесь продаются готовые наборы, не дорого. www.cadcamcadcam.com/cnckits.aspx

chkmatulla

В общем- то там это не предусмотрено но, imho, серво в тормозах не нуждается. Она постоянно находится под действием электромагнитных сил. Другими словами, если серво достигла заданной точки то, теперь контроллер старается удержать вал двигателя в этом положении. И сдвинуть его из него достаточно трудно. Во всяком случае нужно превысить момент вращения двигателя. Если тормоз нужен когда контроллер отключается то, можно задействовать либо по сигналу Ошибка, либо то же реле, которое отключает питание контроллера.

Creolka

Вальтер и Бакыт, спасибо вам.
В принципе мне надо только по Z, голова весит 6 кг.
и на выключеном станке боюсь поплывёт.

chkmatulla

Тогда тормоз по питанию контроллера запитывать. Можно и другие варианты придумать.

Baha
Creolka:

Вальтер и Бакыт, спасибо вам.
В принципе мне надо только по Z, голова весит 6 кг.
и на выключеном станке боюсь поплывёт.

У американцев через редуктор сидит.

Creolka

У меня тоже будет, правда не знаю пока 1:2 или 1:3.
Шаг винта 4мм. Возможно что и не понадобится.

arisov77
chkmatulla:

Идея с таймером в общем- то не плохая. Я пару моментов уточню. При упоре двигатель не подгорит по двум причинам. Первая, ограничение по току и вторая, это сам принцип работы. Ток через двигатель идет всегда. При покое, половину цикла в одном направлении, вторую половину, в другом. При рабочих ходах меняется соотношение в цикле. Если конечно напряжение питания выбрано правильно. …А допустимое количество импульсов, для ошибки, каждый может сам задать. Под свои нужды.

Ток ограничения надо выставлять чуть меньше максимального. Иначе никакой динамики. В данном контроллере, в отличии от UHU (если не ошибаюсь), ток через двигатель и транзисторы при покое прекращается совсем. И следовательно, они в этот момент не греют атмосферу. При этом нижние транзисторы открыты - как бы происходит притормаживание через них. Если не трудно посмотрите в UHU контроллере, какое напряжение на 16 выводе (PB4) микроконтроллера в покое. Если около 0В, то драйвер включен и тогда действительно ШИМ 50/50.
Путём эксперементов выяснил, что если в Mach выставляешь максимальное ускорение и максимальную скорость, то даже при малейшем прикосновении к валу двигателю (при нагрузке) контроллер переходит в состояние Error (при установке 1/4 от числа имп/об и с алгоритмом, который я описывал ранее). И если поставить ещё меньшее значение, то уже при старте (при разгоне) происходил сбой. При увеличении числа шагов до равного числа имп/об. контроллер переставал отключаться, но тогда защита становилась “грубее”.
Поэтому изменил алгоритм: если нет импульсов по Step, а выход ШИМ включен и рассогласование превышает 3 шага, то запускается таймер и если в течении 12 сек. импульсы со Step не поступят или двигатель не достигнет нужной позиции, то в Error. Если рассогласование достигнет 20 000 шагов раньше 12 сек, то в Errorr – сразу, без задержки. Пока оставлю эти значения, думаю, что для большинства применений они сгодятся.