Главная категория - посвящена электродвигателям, электроприводам и связанным с ними темам => Управление шаговыми двигателями => : MaR 06 November 2019, 11:35:37

: Вопрос про циклы в командах SMD - 4.2
: MaR 06 November 2019, 11:35:37
Добрый день.
При выполнении следующей последовательности команд двигатель движется при первом цикле 4 раза вперед и 1 назад, а все последующие повторения уже 3 раза. Увеличение до 5 раз в перед ничего не меняет и двигатель так же делает после первого повтора 3 цикла вперед:( Пожалуйста, укажите на ошибку в коде или что не правильно настроено.

команды отправляемые с помощью программы SMC_program v.4.0.5:

Начало загрузки команд: 1
Начало программы
Установить сигнал "разрешение"
Установить метку
Движение вперед
Скорость 600 ш/с
движение 600 ш
Пауза 1000мс
Повторить от метки 4 раз
Реверсивное движение
Скорость 600 ш/с
Движение 2400 ш
Пауза 2000мс
Повторить от метки 4 раз
Завершить загрузку
Старт/стоп выполнения программы
: Re: Вопрос про циклы в командах SMD - 4.2
: Administrator 06 November 2019, 13:47:29
Добрый день!
Старые блоки серии SMSD не предполагают использование вложенных циклов. Сам по себе возврат от команды "Повторить от метки" к строке "Метка" уменьшает счетчик на 1. Два вложенных цикла при любом количестве повторов вызовут бесконечное повторение.

Вашу программу можно переписать следующим образом:
Начало загрузки команд: 1
Начало программы
Установить сигнал "разрешение"
Скорость 600 ш/с
Установить метку
Движение вперед
движение 600 ш
Пауза 1000мс
движение 600 ш
Пауза 1000мс
движение 600 ш
Пауза 1000мс
движение 600 ш
Пауза 1000мс
Реверсивное движение
Движение 2400 ш
Пауза 2000мс
Повторить от метки 4 раз
Завершить загрузку
Старт/стоп выполнения программы
: Re: Вопрос про циклы в командах SMD - 4.2
: Administrator 06 November 2019, 13:48:42
Вложенные циклы реализованы в блоках управления серии SMSD-LAN https://electroprivod.ru/smsd-42lan.htm
: Re: Вопрос про циклы в командах SMD - 4.2
: MaR 06 November 2019, 14:07:08
Большое спасибо за ответ. А то я никак не мог понять в чем ошибка: (