Уходит "0" - в смысле ворота закрылись , а привод продолжает вращать вал и разматывать тросы.
Но когда идёт подъём вверх, то ворота не доходят 30-40 см до точек, которые я запрограммировал, но при этом всё работает как нужно, т.е. есть замедление и остановка в крайней верхней точке.
Так и будет! потому что привод Нулём считает не Вашу запрограммированную точку, а точку внизу где он сам остановил вал (а вал как известно привод мотает ниже/дальше уровня земли), и эта точка в мозгах привода является главной НУЛЕВОЙ(референтной) точкой отсчёта оборотов вала, поэтому в верхнем положении привод не доходит до настроенных точек ровно столько, сколько он перемотал вниз ниже пола.
Привод запоминает и считает количество оборотов мотора (с помощью встроенного датчика оборотов(энкодера)) от своего нижнего положения (например 300 оборот до замедления, 350 оборот до останова)
А нижнее положение он сам себе присваивает по усилию, и как бы Вы не программировали нижнюю точку, приводу на Ваши настройки по пояс!
А усилие нижнего положения определяется силой пружин и на маленьких воротах пружины слабенькие и привод их просто почти не замечает, а на больших воротах на которые он рассчитан там пружинки уже взрослые и усилие сопротивлению дают нужное.
Когда-то давным давно, на заре поставок данных моторов в наш городок, долго мучались с такими же проблемами на маленьких воротах (т.к. производитель не нормировал требуемые размеры для нормального фунциКлирования привода)
Мы делали смену полярности мотора (тогда низ становился верхом и наоборот) → верхние демпферы ворот служили нижним механическим упором, а нижнее положение отрабатывалось уже энкодером точно как надо.
Но у этого решения есть и минусы: не задействовать штатно ф/э, после сброса питания возможна некорректная работа привода.