147
MovingType – тип движения по траектории: 1 – движение с Vconst, 2 – разгон
и движение с Vconst, 3 – движение с Vconst и торможение;
TickRun – число тактов разгона/торможения, при условии, что присутствуют
участки разгона/торможения;
TickNow – текущее число тактов интерполятора;
TickVc – текущее число тактов с Vconst;
dV – приращение скорости на каждом такте разгона/торможения;
dX,dY,dZ,dK – разности
первого порядка по осям X, Y, Z, K;
L – контурный путь на заданном участке траектории.
При первом вызове процедуры производится анализ типа движения и за-
пись результатов в «MovingType». При наличии участка разгона или торможе-
ния рассчитывается необходимое количество тактов соответствующее движе-
нию на участках разгона/торможения «TickRun» и Vconst «TickVc». Повторный
вызов
процедуры не предусматривает расчет базовых параметров, что значи-
тельно снижает загрузку процессора. На последующих вызовах производится
лишь расчет задания по формулам (4.3-4.5).
При задании участка траектории (OA или BC) как например, на рис.4.20,
алгоритм анализирует, достаточно ли контурного пути для выполнения разго-
на/торможения на заданном участке? В случае недостаточного контурного пути
код ошибки передается на верхний уровень. Однако, если длина заданного уча-
стка разгона/торможения избыточна, алгоритм анализирует и добавляет уча-
сток движения с постоянной контурной скоростью для того, чтобы, пройдя
данный участок, электропривод вышел на требуемый уровень скорости в за-
данной точке.
При поступлении следующего кадра и последующем вызове процедуры
расчета интерполятора алгоритм автоматически стыкует последний участок
предыдущего кадра с текущим кадром.
В случае неверно заданной геометрии траектории движения (не согласо-
ваны точки предыдущего и последующего отрезка) либо не верно заданными
контурными скоростями и ускорениями в задании на привод могут возникнуть
эффекты скачкообразно нарастающего задания по положению, что отразится в
виде
удара в механической части системы.
Работа с круговой интерполяцией осуществляется вызовом процедуры
CircleInterp_Make(Circle, HWData);
на каждом такте интерполяции (См. рис. 4.27.). Здесь Circle – структура с па-
раметрами кадра круговой интерполяции, HWData – структура с параметрами
сервомодуля.
Параметры кадра, поступающие из ПК в сервоконтроллер, задаются в
следующих полях структуры Circle:
Circle.Xc=0; // Координата центра окружности по
оси X, мкм
Circle.Yc=0; // Координата центра окружности по оси Y, мкм