# Версия прошивки V1.0. Автор Голышев Евгений. Дата создания 5.10.2013.

# 1.При включении контроллера кнопкой 3 и наличии высокого уровня на входе 2, начинается вращение ШД в положительном направлении. 

    Если на входе 2 низкий уровень, то переходим к пункту 4

    Если нажимется кнопка 4, то в любой момент выполнения программы, произойдёт выключения ЩД

  2.Как только на входе 1 появляется высокий уровень, ШД останавливается, производится расчёт: сколько участков по 2мм. было пройдено от момента начала вращения ШД до остановки

  3.Выход один начинает включаться ровно столько раз, сколько участко было пройдено, после этого производится переход к пункту 1


  4.Начинается вращение ШД в отрицательном направлении. 

  5.Как только на входе 1 появляется высокий уровень, ШД останавливается, производится расчёт: сколько участков по 2мм. было пройдено от момента начала вращения ШД до остановки

  6.Выход один начинает включаться ровно столько раз, сколько участко было пройдено, после этого производится переход к пункту 4



ON                                          # если включена кнопка 3, включаем драйвер ШД

SET P_STEPS_MM, 160                         # один миллиметр хода привода равен 160 шагам ШД при делении 1/8 шага

SET P_FEED_MAX, 4000                        # максимальная скорость 4000мм/мин 

SET P_ACC_TIME, 5                           # время разгона до максимальной скорости 3 миллисекунды

SET P_BUT_START, 3                          # назначаем кнопку 3 стартовой 

SET P_BUT_STOP, 4                           # назначаем кнопку 4 стоповой

SET POSITION, 0                             # обнуляем переменную POSITION, выраженную в шагах привода

SET V1, 0                                   # обнуляем переменную 1

SET V2, 0                                   # обнуляем переменную 2

SET V3, 0                                   # обнуляем переменную 3

SET V4, 0                                   # обнуляем переменную 4


LAB2: SET V2, 0                             # Метка 2. При приходе к этой метке пременная V2 обнуляется, эта переменная отвечает за счёт шагов

SET POSITION, 0                             # обнуляем переменную POSITION

IF ([!INP2]) JMP LAB3:                      # если на входе 2 появился низкий уровень, переходим к метке 3

MOVE C(INP1)                                # начинаем вращать ШД в положительном направлении до тех пор, пока на входе 1 появился высокий уровень

SET V1, (POSITION/320)                      # делим количество пройденных ШД шагов на 320, получаем количество пройденных миллиметров, разделённых на 2. Записываем в переменную V1

LAB1: SET OUT1, 1                           # Метка 1. Включаем выход 1

WAIT T(1)                                   # ждём 1 миллисекунду

SET OUT1, 0                                 # выключаем выход 1

SET V2, (V2+1)                              # это счётчик количесва импульсов. Прибавляем к переменной V2 однёрку, в результате получаем новую переменную V2

IF (V2 = V1) JMP LAB2:                      # если переменная V2 будет равна V1, то переходим к метке 2, если неравны, то переходим к метке 1

JMP LAB1:                                   # переход к метке 1


LAB3:  SET V4, 0                            # Метка 4. При приходе к этой метке пременная V4 обнуляется, эта переменная отвечает за счёт шагов

SET POSITION, 0                             # обнуляем переменную POSITION

MOVE C(INP1) D(0)                           # начинаем вращать ШД в отрицательном направлении до тех пор, пока на входе 1 появился высокий уровень 

IF (POSITION<0) SET POSITION, -POSITION     # если текущая позиция ШД является отрицательной, то превравращаем её в положительную

SET V3, POSITION/320                        # делим количество пройденных ШД шагов на 320, получаем количество пройденных миллиметров, разделённых на 2. Записываем в переменную V3

LAB4: SET OUT1, 1                           # Метка 4. Включаем выход 1

WAIT T(1)                                   # ждём 1 миллисекунду

SET OUT1, 0                                 # выключаем выход 1

SET V4, (V4 + 1)                            # это счётчик количесва импульсов. Прибавляем к переменной V4 однёрку, в результате получаем новую переменную V4

IF (V4 = V3) JMP LAB3:                      # если переменная V4 будет равна V3, то переходим к метке 3, если неравны, то переходим к метке 4

JMP LAB4:                                   # переход к метке 4


OFF                                         # если включена кнопка 4, выключаем драйвер ШД