Lunatic писал(а): ↑
В смысле не может ли угол разный оказаться в разных моторах.
Может и просто обязан, так как при изготовлении мотора всегда есть небольшая погрешность. Сделал я пока один мотор, просто неудержался похвастаться, очень уж доволен был получившимся результатом. Просто довольно сильно напрягает когда три дня бьешся с простейшей задачей а она у тебя не дает 100% результата повторяемости. А самое главное непонятны причины происходящего в системе. А тут наслоилось несколько факторов друг на друга, этакая комплексная заморочка.
На втором моторе просто оттестировал работоспособность метода. На днях привезут кружки из фольгированного стеклотекстолита вырезанные по чертежу для остальных моторов и сделаю остальные.
.
Прикол в том, что разные приводы имеют разные мозги и соответственно программное обеспечение этих мозгов может работать по разному выдавая в принципе одинаковый результат - "управление положением ротора". У одного привода нулем должна являться точка пересечения магнитных потоков ротора и статора в пике максимума обмотки "U", у другого в пике минимума всех обмоток, у третьего пике максимума всех обмоток. итд итп... В связи с этим и отметка нуля у энкодеров\резольверов находится в различных местах. У всех производителей мануалы которых я читал написано - "Ноль абсолютного SIN\Cos энкодера с интерфейсом HypeFace находится по смещению 0,0 градусов". Только нигде не написано относительно чего эти 0,0 градусов. Вот по докам и получается, что в теории ставишь любой мотор и всё летает, а на практике нифига не работает...
Вторая заморочка была в том, что Приводы Lenze тупо уверены что у абсолютника HyperFace ноль всегда находится там где нужно. Делаешь поиск позиции ротора, он находит смещение в 161,3 градуса, ты его сохраняешь в параметры, проверяешь всё вроде пашет, Перегружаешь привод, а он раз и понесся в непонятном направлении со скачками и рывками, сидишь чешешь репу... Повторяешь процедуру, перегружаешь привод, а мотор гудит, ток в обмотках 32А а с места не трогается и только греется... Опять сидишь и чешешь репу.
В итоге оказалось всё просто, привод при отключении питания и последующем его включении видит, что у него в параметрах установлен Hyperface абсолютник и тупо прописывает в параметр C0058 значение ноль при загрузке сбрасывая заданное ранее смещение!!! А так как при отключении питания ротор мотора находится в разных положениях а при включении параметр переписывается, то и мозги привода тупо сходят с ума и попытки управления мотором у них приводят к непредсказуемым результатам.
Официалы лензе тоже "Однозадачные" и вносят сумятицу в мозг доказывая, что ты тупой и просто не сохраняешь параметры перед отключением присылая мануал по приводу с дополнениями типа позицию ротора сохрани и всё будет пучком... Так до сих пор и не поверили, что привод параметр тупо переписывает в такой комбинации привод\энкодер....
Еще одни приколом является странный алгоритм пересчета энкодера в позицию. Прикол в том, что в ПО GDC - счетчик инкрементов позиции ротора имеет максимальный предел в 2048 инкрементов. Всегда в не зависимости от того сколько инкрементов у энкодера. Ставишь энкодер 256 икр\оборот - получаешь 2048 инкрементов на оборот мотора, ставишь 500, получаешь 2048 инкрементов, ставишь 2048 инкрементов и получаешь !!!! за один оборот мотора два раза по 2048 отсчетов!!! Как???? Нафига??? Ставишь 8192 имп\об и результат - 2048 инкрементов на 10 оборотов двигателя!!!! Каким образом оно считает, нафига такая математическая эквилибристика я так и не осознал...
.
Позже допишу, на работу надо ехать.