Управление шаговым двигателем через параллельный порт
-
- junior
- Сообщения: 51
- Зарегистрирован: 18 апр 2012, 13:51
- Версия LabVIEW: 2011
- Контактная информация:
Управление шаговым двигателем через параллельный порт
Добрый вечер.
Задача такая: разработать программу управления координатным столом на основе шаговых двигателей. Имеем шаговые двигатели ДШИ-200 и драйверы smd4.2, подключение через LPT.
С помощью Out Port в цикле отправляю последовательные команды, подающие на двигатель 0 и 1, имитирующие чередующиеся импульсы на шаговом двигателе. Задержка между итерациями 1 микросекунда, т.е. импульсы проходят через 1 микросекунду. Один оборот двигатель на дроблении шага 1/16 совершает очень долго. Возможно ли как-то влиять на длину самих импульсов, а не время между ними?
Пробую с помощью VISA слать команды, возможно она ускорит обороты. Нужно ли указывать настройки LPT-порта как при последовательном соединении (VISA serial)? В порте пока заняты 3 пина (2 data и земля), VISA write выдает ошибку, т.к., видимо, порт она не видит. В чем может быть загвоздка?
Задача такая: разработать программу управления координатным столом на основе шаговых двигателей. Имеем шаговые двигатели ДШИ-200 и драйверы smd4.2, подключение через LPT.
С помощью Out Port в цикле отправляю последовательные команды, подающие на двигатель 0 и 1, имитирующие чередующиеся импульсы на шаговом двигателе. Задержка между итерациями 1 микросекунда, т.е. импульсы проходят через 1 микросекунду. Один оборот двигатель на дроблении шага 1/16 совершает очень долго. Возможно ли как-то влиять на длину самих импульсов, а не время между ними?
Пробую с помощью VISA слать команды, возможно она ускорит обороты. Нужно ли указывать настройки LPT-порта как при последовательном соединении (VISA serial)? В порте пока заняты 3 пина (2 data и земля), VISA write выдает ошибку, т.к., видимо, порт она не видит. В чем может быть загвоздка?
Последний раз редактировалось roccosiffredi 20 июн 2012, 22:03, всего редактировалось 1 раз.
С уважением, Александр.
-
- junior
- Сообщения: 51
- Зарегистрирован: 18 апр 2012, 13:51
- Версия LabVIEW: 2011
- Контактная информация:
Re: Управление шаговым двигателем через параллельный порт.
Узнал, что пины 11 и 12 необходимо замкнуть на землю. Порт думает, что на нем сидит принтер, и разомкнутые пины говорят, что принтер занят или возникла ошибка. При этом порт не будет выводить никаких данных. Завтра это попробую.
С уважением, Александр.
-
IvanLis
- guru
- Сообщения: 5463
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 28 раз
- Поблагодарили: 87 раз
Re: Управление шаговым двигателем через параллельный порт.
Возможно, но Вам это не поможет, потому что драйвер по фронту реагирует.roccosiffredi писал(а):Один оборот двигатель на дроблении шага 1/16 совершает очень долго. Возможно ли как-то влиять на длину самих импульсов, а не время между ними?
Выведите драйвер из микрошагового режима, там же можно поменять коэф. деления.
LPT порт, это регистр, так что там никакой скорости нет, все определяется программой (скоростью записи информации).roccosiffredi писал(а):Нужно ли указывать настройки LPT-порта как при последовательном соединении (VISA serial)?
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
-
- junior
- Сообщения: 51
- Зарегистрирован: 18 апр 2012, 13:51
- Версия LabVIEW: 2011
- Контактная информация:
Re: Управление шаговым двигателем через параллельный порт.
Для того, чтобы выйти из микрошагового режима необходимо использовать 100% тока удержания? У меня 100% стоит. Процент тока удержания, как и коэффициент деления выставляю переключателями на блоке управления. Как иначе сделать я не представляю.
Блок smd 4.2, не smsd 4.2.
Блок smd 4.2, не smsd 4.2.
С уважением, Александр.
-
IvanLis
- guru
- Сообщения: 5463
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 28 раз
- Поблагодарили: 87 раз
Re: Управление шаговым двигателем через параллельный порт.
обратитесь к производителюroccosiffredi писал(а):Для того, чтобы выйти из микрошагового режима необходимо использовать 100% тока удержания? У меня 100% стоит. Процент тока удержания, как и коэффициент деления выставляю переключателями на блоке управления. Как иначе сделать я не представляю.
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
-
- junior
- Сообщения: 51
- Зарегистрирован: 18 апр 2012, 13:51
- Версия LabVIEW: 2011
- Контактная информация:
Re: Управление шаговым двигателем через параллельный порт.
А почему Вы решили, что я использую микрошаговый режим?
С уважением, Александр.
-
Chupakabra
- professional
- Сообщения: 360
- Зарегистрирован: 21 янв 2009, 10:50
- Награды: 1
- Версия LabVIEW: 2015
- Откуда: Москва
- Поблагодарили: 4 раза
- Контактная информация:
Re: Управление шаговым двигателем через параллельный порт.
При управление ШД через контроллер по принципу STEP, DIR, скорость двигателя зависит от частоты следования импульсов, которые, насколько я понял, вы программно генерируете в цикле LabVIEW. В такой схеме выше головы не пригнешь, т.е. максимальная скорость будет определяться минимальным временем цикла программы (с учетем характеристик двигателя).
Еще в такой схеме мне кажется при предельных частотах появляется джиттер, биение частоты, что тоже должно сказываться на качество управления, не в лучшую сторону.
Еще в такой схеме мне кажется при предельных частотах появляется джиттер, биение частоты, что тоже должно сказываться на качество управления, не в лучшую сторону.
-
IvanLis
- guru
- Сообщения: 5463
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 28 раз
- Поблагодарили: 87 раз
Re: Управление шаговым двигателем через параллельный порт.
Вы же сами писали:roccosiffredi писал(а):А почему Вы решили, что я использую микрошаговый режим?
roccosiffredi писал(а):Один оборот двигатель на дроблении шага 1/16 совершает очень долго.
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
- serg115
- user
- Сообщения: 90
- Зарегистрирован: 18 ноя 2011, 08:40
- Версия LabVIEW: 7.1
- Контактная информация:
Re: Управление шаговым двигателем через параллельный порт.
Chupakabra соершенно прав ! Скорость определяется только возможностью Вашей программы. Даже время не теряйте. Конечно, движок может крутится очень быстро, поэтому обращайтесь к производителю и требуйте программого обеспечения. Т.к. если двигатель продали вместе с контроллером и программуля "оригинальная" должна быть.
С таким уже сталкивались.
С таким уже сталкивались.
-
Sergey Ivanov
- expert
- Сообщения: 1217
- Зарегистрирован: 01 мар 2009, 20:54
- Награды: 5
- Версия LabVIEW: 2018
- Откуда: Санкт-Петербург, Кронштадт
- Благодарил (а): 11 раз
- Поблагодарили: 1 раз
- Контактная информация:
Re: Управление шаговым двигателем через параллельный порт.
это в 1 мкс ? такую частоту не получить (конечно, если у вас не машина реального времени). если у вас есть тестер с функцией определения частоты, то посмотрите что у вас на выходе. или осцилографом. длину, попробуйте использовать flat sequence с необходимой задержкойroccosiffredi писал(а): С помощью Out Port в цикле отправляю последовательные команды, подающие на двигатель 0 и 1, имитирующие чередующиеся импульсы на шаговом двигателе. Задержка между итерациями 1 микросекунда, т.е. импульсы проходят через 1 микросекунду. Один оборот двигатель на дроблении шага 1/16 совершает очень долго. Возможно ли как-то влиять на длину самих импульсов, а не время между ними?
Добро пожаловать на http://rk-stud.ru/
-
IvanLis
- guru
- Сообщения: 5463
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 28 раз
- Поблагодарили: 87 раз
Re: Управление шаговым двигателем через параллельный порт.
Если все так плохо, но хочется получить результат.
Можно подключить по RS-232 (USB -> Virtual Com) контроллер, передавать ему команды в формате:
"Направление" - "Кол-во шагов" - "Скорость/частота"
а тот пусть уже преобразует команды и управляет драйверами в формате "Step" - "Dir"
Так мы и от ненужных адаптеров и систему значительно разгрузим.
Можно подключить по RS-232 (USB -> Virtual Com) контроллер, передавать ему команды в формате:
"Направление" - "Кол-во шагов" - "Скорость/частота"
а тот пусть уже преобразует команды и управляет драйверами в формате "Step" - "Dir"
Так мы и от ненужных адаптеров и систему значительно разгрузим.
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
-
Jakob Brontfeyn
- expert
- Сообщения: 1729
- Зарегистрирован: 28 фев 2008, 11:01
- Награды: 6
- Благодарил (а): 1 раз
- Контактная информация:
-
- junior
- Сообщения: 51
- Зарегистрирован: 18 апр 2012, 13:51
- Версия LabVIEW: 2011
- Контактная информация:
Re: Управление шаговым двигателем через параллельный порт.
Через LPT быстрее, я так понял, не получится. Т.е. на длину самих импульсов никак не повлиять?
Это дробление я выставлял переключателями на самом блоке управления. Микрошаговый же режим, как я понял, осуществляется за счет уменьшения процента тока удержания, что позволяет ему более плавно вращаться. Это тоже выставлял переключателями на блоке управления smd.IvanLis писал(а):Вы же сами писали:roccosiffredi писал(а):Один оборот двигатель на дроблении шага 1/16 совершает очень долго.
В механическом перемещении учавствуют 2 двигателя, единственный встроенный в материнскую плату последовательный порт занят под измеритель. Вы советуете приобрести 2 USB -> Virtual Com контроллера? А каким образом подсоединить блок управления к RS232, если в блок приходят команды step и direction разными проводами, а у RS232 под передачу имеется лишь один пин?IvanLis писал(а):Если все так плохо, но хочется получить результат.
Можно подключить по RS-232 (USB -> Virtual Com) контроллер, передавать ему команды в формате:
"Направление" - "Кол-во шагов" - "Скорость/частота"
а тот пусть уже преобразует команды и управляет драйверами в формате "Step" - "Dir"
Так мы и от ненужных адаптеров и систему значительно разгрузим.
Еще зависит от длительности одного импульса. Другой блок управления спасением не будет, т.к. на mach2 (программа для двигателей ЧПУ в delphi) с моим блоком обеспечивается отличная скорость.Chupakabra писал(а):При управление ШД через контроллер по принципу STEP, DIR, скорость двигателя зависит от частоты следования импульсов.
Я сомневаюсь, что они возьмутся написать именно в labview, т.к. мне необходима программа, которая будет взаимодействовать еще с измерителем. Автоматизация измерений у меня уже завершена. Я пишу общую программу для взаимодействия механических перемещений с промежуточным измерением диодов.serg115 писал(а):Конечно, движок может крутится очень быстро, поэтому обращайтесь к производителю и требуйте программого обеспечения. Т.к. если двигатель продали вместе с контроллером и программуля "оригинальная" должна быть. С таким уже сталкивались.
Sergey Ivanov писал(а):это в 1 мкс ?
Извиняюсь, одна миллисекунда. За нее тоже ручаться не стоит?
С уважением, Александр.
-
IvanLis
- guru
- Сообщения: 5463
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 28 раз
- Поблагодарили: 87 раз
Re: Управление шаговым двигателем через параллельный порт.
прочтите еще раз все внимательноroccosiffredi писал(а):В механическом перемещении учавствуют 2 двигателя, единственный встроенный в материнскую плату последовательный порт занят под измеритель. Вы советуете приобрести 2 USB -> Virtual Com контроллера? А каким образом подсоединить блок управления к RS232, если в блок приходят команды step и direction разными проводами, а у RS232 под передачу имеется лишь один пин?IvanLis писал(а):Если все так плохо, но хочется получить результат.
Можно подключить по RS-232 (USB -> Virtual Com) контроллер, передавать ему команды в формате:
"Направление" - "Кол-во шагов" - "Скорость/частота"
а тот пусть уже преобразует команды и управляет драйверами в формате "Step" - "Dir"
Так мы и от ненужных адаптеров и систему значительно разгрузим.
я предлагаю использовать контроллер
например для быстрого StartUp можно взять 16МГц Arduino
у него свободных 12 цифровых входов/выходов (как минимум)
и подключается по USB (преобразователь USB <-> UART) имеет на борту
т.е. через один USB вы можете передавать сигналы управления на шесть драйверов
и частота следования импульсов получится приличная (будет зависеть от программной реализации уже на самом контроллере)
к тому же получится более-менее система реального времени (на контроллере)
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
-
- junior
- Сообщения: 51
- Зарегистрирован: 18 апр 2012, 13:51
- Версия LabVIEW: 2011
- Контактная информация:
Re: Управление шаговым двигателем через параллельный порт.
Большое спасибо за помощь, выбрал arduino uno rev3 из-за наличия в магазине. Завтра надеюсь приобрести. В принципе мне же любой контроллер от arduino сгодится?
Имеет ли смысл еще купить шилд для управления шаговым двигателем для упрощения работы или с моими драйверами smd4.2 проблем быть не должно?
Имеет ли смысл еще купить шилд для управления шаговым двигателем для упрощения работы или с моими драйверами smd4.2 проблем быть не должно?
С уважением, Александр.