Усовершенствованный сервопривод Чена
Прошу прощения, не получается с камеры, резкость картинки плохая. Сейчас попробую что- нибудь другое придумать.
Я как понял, здесь мы все теоретики и немного практики - имеем контроллеры на столе. Со стола движок не убежит, если надо привяжу 😁. Как поведёт себя привод на реальном станке точно, мне кажется никто не знает. Может не надо бояться и всё получиться без графиков и “глубоких” расчётов. А может в ServoTuninge рассогласование на графике неправильно отображается, тогда как?
У меня было такое - на графике никакого рассоглассования, а на слух (или на вид) движок “вялый”. А рассогласуешь - движок резво разгоняется и тормозит.
вот у меня получается что мотор хорошо крутится и безшумно когда коэффициент Ki=0, да и у вас в прошивке он тоже практически ноль (=15). Получается что из ПИД выкинуто звено интегратора…
Вопрос тем кто имеет контроллер от UHU, в частности к chkmatulla.
У UHU есть светодиодик Error. Что он показывает и что при этом происходит с приводом?
У Чена (с прошивкой smc3) при рассогласовании ( 20 000 шагов), например, при удержании вала двигателя подаю на Step импульсы и если не отпускаю вал, то сервоконтроллер переходит в режим ШИМ и загорается светодиодик. Сброс этого состояния только через выключение-включения питания, сброс по Reset или смены режима в ServoTuning.
Также интересует работа входа EMERGENCY STOP (Аварийный стоп). Для прерывания достаточно кратковременного нажатия кнопки на этом входе или нужна кнопка с фиксацией?
Светодиодик Error показывает ошибку или аварийную остановку,произходит остановка двигателя.
Для EMERGENCY STOP - кнопка без фиксации,при этом загорается светодиод Error.
Сброс этого состояния только через выключение-включения питания, сброс по Reset или программный сброс с сервисной утилиты.
Спасибо. А аварийная остановка приблизительно через сколько шагов происходит? Или она по времени? А то у Чена возможно такая ситуация- привод упёрся, Step продолжается и не достигая 20 000 шагов эти импульсы прекращаются и Error не срабатывает и если не досмотреть, то можно движок подпалить. У UHU также?
Устанавливается программно,отвечает за это параметр (E) - Tracking error shutoff , возможные значения 10-5000.
Не совсем так. Отвечает за это параметр F ( Fehlerabschaltung ). E ( Eilgang ) это ускореный ход. Для будущих разработок, пока не задействован.
Если движок уперся то, через заданное число импульсов он будет отключен и включен сигнал Ошибка. Так же будет, если движок провернуть, при отсутствии сигналов с компа. Величина 2000 это примерно один оборот вала двигателя.
Про обещанное. Подождите пожалуйста, неожиданные проблемы возникли…
Не совсем так. Отвечает за это параметр F ( Fehlerabschaltung ). E ( Eilgang ) это ускореный ход. Для будущих разработок, пока не задействован.
Если движок уперся то, через заданное число импульсов он будет отключен и включен сигнал Ошибка. Так же будет, если движок провернуть, при отсутствии сигналов с компа. Величина 2000 это примерно один оборот вала двигателя.
Про обещанное. Подождите пожалуйста, неожиданные проблемы возникли…
Я приводил информацию по АНГЛИЙСКОЙ ВЕРСИИ прошивки.
Вы используете НЕМЕЦКУЮ, при этом буквы параметров могут совпадать,а их значения будут разные 😃
Кто интересуется,учитывайте какая прошивка и какой документаций пользоваться ❗ .
Вы правы,проворачивая вал двигателя без сигнала Step на входе мы вызовм сигнал Error через заданное параметром E (в английской версии) число импульсов.
Я как то упустил из виду, что еще на английском есть документация. А чип прошит тоже на английском ?
Сделал отключение по следующему алгоритму: если рассогласование превышает 20 000 шагов, то сразу состояние Error, если рассогласование превышает 10 шагов, то продолжается нормальная работа, но дополнительно запускается таймер задержки перевода в Error, если во время работы таймера движок «догоняет», т.е. меньше 10 шагов, то таймер «сбрасывается». Если рассогласование больше 10 шагов и меньше 20 000, в течении 15 сек., то переход в Error.
Исходя из практики, какие значения рассогласования шагов и время посоветуете?
Я думаю что время не обязательно вводить, достаточно и количества шагов. Если например, нагрузка на инструменте возрастет но, не остановит инструмент и количество шагов, на которое допустимо отставание или опережение будет оставаться в пределах допуска, таймер может выключить машину, хотя все в пределах нормы.
А вот сколько шагов, это зависит от конкретной ситуации. Я думаю что больше 5.000 не потребуется. По UHU это почти 2,5 оборота двигателя. Хотя, запас карман не тянет… Опять же, процессору нет нужды расходовать ресурсы, на обработку команд для таймера, imho.
Но тогда в ситуации когда привод упрёться и затем через какое-то время прекратятся импульсы не превысив 5 000 – 20 000 шагов ошибки не произойдёт, а движок может «подгореть». Вот поэтому я и ввёл задержку по времени. А если возрастёт нагрузка на инструмент и двигатель не будет успевать, то это значит, что двигатель не «осиляет» и с такой нагрузкой он тоже долго не проработает. Чтобы не было такой ситуации, надо двигатель тогда мощнее или понизить скорость обработки.
Немного поразмыслив, я прихожу к выводу, что 1 порог слежения рассогласования надо устанавливать чётвертой части числа импульсов на 1 оборот (четверть оборота движка). Для энкодера 2000имп/об значит 500 шагов. Или может всё таки другие значения?
И мне кажется если будет такое отставание, тогда, например при обработке круга из-за разных нагрузок на привода X и Y получиться овальчик.
А МК не расходует время, у меня программный счётчик, работающий не по прерываниям. А выставление флагов занимает мало времени.
А почему импульсы прекратятся ? Я полагал что, эти 50.000 циклов отсчитывает сам контроллер, на основании заданного и действительного положения инструмента. И если движок встал… Кажется дошло. А чем тогда занимается WatchDog ? Разве это не его область ?
Если watchdog включен, то прикладное программное обеспечение должно через определенный промежуток времени сообщать ему (путем вызова специальной процедуры) о своей функциональности. Если этого не происходит, например, по причине “зависания” программного обеспечения, то сторожевой таймер автоматически сгенерирует сигнал сброса, тем самым, вызвав его перезагрузку. Кроме того, сигнал сброса может быть инициирован самим программным обеспечением, что может быть полезно при обнаружении каких либо ошибок, устранение которых возможно путем перезагрузки системы.
Идея с таймером в общем- то не плохая. Я пару моментов уточню. При упоре двигатель не подгорит по двум причинам. Первая, ограничение по току и вторая это сам принцип работы. Ток через двигатель идет всегда. При покое половину цикла в одном направлении, втору
Что- то глюкнуло…
Идея с таймером в общем- то не плохая. Я пару моментов уточню. При упоре двигатель не подгорит по двум причинам. Первая, ограничение по току и вторая, это сам принцип работы. Ток через двигатель идет всегда. При покое, половину цикла в одном направлении, вторую половину, в другом. При рабочих ходах меняется соотношение в цикле. Если конечно напряжение питания выбрано правильно.
У Ули кстати, тоже нет сообщения об ошибке в такой ситуации. Контроллер упорно толкает движок.
А допустимое количество импульсов, для ошибки, каждый может сам задать. Под свои нужды.
Хай.
Спрошу здесь.
Этот UHU контроллер может управлять тормозами на “серве”, есть ли там такая возможность?
Если нет, то как это можно осуществить? Управление тормозом.
Или там тормоз нужен только в выключеном состоянии? Ну скажем чтобы Z в низ не уехала.
Хочу поменять ШД-привода на “серво” - шаговики надоели своими трелями.
Хай.
Спрошу здесь.
Этот UHU контроллер может управлять тормозами на “серве”, есть ли там такая возможность?
Если нет, то как это можно осуществить? Управление тормозом.
Или там тормоз нужен только в выключеном состоянии? Ну скажем чтобы Z в низ не уехала.Хочу поменять ШД-привода на “серво” - шаговики надоели своими трелями.
Валентин, привет. Вот здесь продаются готовые наборы, не дорого. www.cadcamcadcam.com/cnckits.aspx
В общем- то там это не предусмотрено но, imho, серво в тормозах не нуждается. Она постоянно находится под действием электромагнитных сил. Другими словами, если серво достигла заданной точки то, теперь контроллер старается удержать вал двигателя в этом положении. И сдвинуть его из него достаточно трудно. Во всяком случае нужно превысить момент вращения двигателя. Если тормоз нужен когда контроллер отключается то, можно задействовать либо по сигналу Ошибка, либо то же реле, которое отключает питание контроллера.
Вальтер и Бакыт, спасибо вам.
В принципе мне надо только по Z, голова весит 6 кг.
и на выключеном станке боюсь поплывёт.
Тогда тормоз по питанию контроллера запитывать. Можно и другие варианты придумать.