Управление шаговым двигателем через параллельный порт

VISA, TCP/IP, USB, CAN, GPIB и подобные протоколы
roccosiffredi
junior
junior
Сообщения: 51
Зарегистрирован: 18 апр 2012, 13:51
Версия LabVIEW: 2011
Контактная информация:

Управление шаговым двигателем через параллельный порт

Сообщение roccosiffredi »

Добрый вечер.
Задача такая: разработать программу управления координатным столом на основе шаговых двигателей. Имеем шаговые двигатели ДШИ-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 раз.
С уважением, Александр.
roccosiffredi
junior
junior
Сообщения: 51
Зарегистрирован: 18 апр 2012, 13:51
Версия LabVIEW: 2011
Контактная информация:

Re: Управление шаговым двигателем через параллельный порт.

Сообщение roccosiffredi »

Узнал, что пины 11 и 12 необходимо замкнуть на землю. Порт думает, что на нем сидит принтер, и разомкнутые пины говорят, что принтер занят или возникла ошибка. При этом порт не будет выводить никаких данных. Завтра это попробую.
С уважением, Александр.
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5464
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 28 раз
Поблагодарили: 87 раз

Re: Управление шаговым двигателем через параллельный порт.

Сообщение IvanLis »

roccosiffredi писал(а):Один оборот двигатель на дроблении шага 1/16 совершает очень долго. Возможно ли как-то влиять на длину самих импульсов, а не время между ними?
Возможно, но Вам это не поможет, потому что драйвер по фронту реагирует.
Выведите драйвер из микрошагового режима, там же можно поменять коэф. деления.

roccosiffredi писал(а):Нужно ли указывать настройки LPT-порта как при последовательном соединении (VISA serial)?
LPT порт, это регистр, так что там никакой скорости нет, все определяется программой (скоростью записи информации).
roccosiffredi
junior
junior
Сообщения: 51
Зарегистрирован: 18 апр 2012, 13:51
Версия LabVIEW: 2011
Контактная информация:

Re: Управление шаговым двигателем через параллельный порт.

Сообщение roccosiffredi »

Для того, чтобы выйти из микрошагового режима необходимо использовать 100% тока удержания? У меня 100% стоит. Процент тока удержания, как и коэффициент деления выставляю переключателями на блоке управления. Как иначе сделать я не представляю.
Блок smd 4.2, не smsd 4.2.
С уважением, Александр.
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5464
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 28 раз
Поблагодарили: 87 раз

Re: Управление шаговым двигателем через параллельный порт.

Сообщение IvanLis »

roccosiffredi писал(а):Для того, чтобы выйти из микрошагового режима необходимо использовать 100% тока удержания? У меня 100% стоит. Процент тока удержания, как и коэффициент деления выставляю переключателями на блоке управления. Как иначе сделать я не представляю.
:dntknw: обратитесь к производителю
roccosiffredi
junior
junior
Сообщения: 51
Зарегистрирован: 18 апр 2012, 13:51
Версия LabVIEW: 2011
Контактная информация:

Re: Управление шаговым двигателем через параллельный порт.

Сообщение roccosiffredi »

А почему Вы решили, что я использую микрошаговый режим?
С уважением, Александр.
Аватара пользователя
Chupakabra

Tutorials
professional
professional
Сообщения: 360
Зарегистрирован: 21 янв 2009, 10:50
Награды: 1
Версия LabVIEW: 2015
Откуда: Москва
Поблагодарили: 4 раза
Контактная информация:

Re: Управление шаговым двигателем через параллельный порт.

Сообщение Chupakabra »

При управление ШД через контроллер по принципу STEP, DIR, скорость двигателя зависит от частоты следования импульсов, которые, насколько я понял, вы программно генерируете в цикле LabVIEW. В такой схеме выше головы не пригнешь, т.е. максимальная скорость будет определяться минимальным временем цикла программы (с учетем характеристик двигателя).

Еще в такой схеме мне кажется при предельных частотах появляется джиттер, биение частоты, что тоже должно сказываться на качество управления, не в лучшую сторону.
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5464
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 28 раз
Поблагодарили: 87 раз

Re: Управление шаговым двигателем через параллельный порт.

Сообщение IvanLis »

roccosiffredi писал(а):А почему Вы решили, что я использую микрошаговый режим?
Вы же сами писали:
roccosiffredi писал(а):Один оборот двигатель на дроблении шага 1/16 совершает очень долго.
Аватара пользователя
serg115
user
user
Сообщения: 90
Зарегистрирован: 18 ноя 2011, 08:40
Версия LabVIEW: 7.1
Контактная информация:

Re: Управление шаговым двигателем через параллельный порт.

Сообщение serg115 »

Chupakabra соершенно прав ! Скорость определяется только возможностью Вашей программы. Даже время не теряйте. Конечно, движок может крутится очень быстро, поэтому обращайтесь к производителю и требуйте программого обеспечения. Т.к. если двигатель продали вместе с контроллером и программуля "оригинальная" должна быть.
С таким уже сталкивались.
Аватара пользователя
Sergey Ivanov

Activity Professionalism Gold Автор
expert
expert
Сообщения: 1217
Зарегистрирован: 01 мар 2009, 20:54
Награды: 5
Версия LabVIEW: 2018
Откуда: Санкт-Петербург, Кронштадт
Благодарил (а): 11 раз
Поблагодарили: 1 раз
Контактная информация:

Re: Управление шаговым двигателем через параллельный порт.

Сообщение Sergey Ivanov »

roccosiffredi писал(а): С помощью Out Port в цикле отправляю последовательные команды, подающие на двигатель 0 и 1, имитирующие чередующиеся импульсы на шаговом двигателе. Задержка между итерациями 1 микросекунда, т.е. импульсы проходят через 1 микросекунду. Один оборот двигатель на дроблении шага 1/16 совершает очень долго. Возможно ли как-то влиять на длину самих импульсов, а не время между ними?
это в :labview: 1 мкс ? такую частоту не получить (конечно, если у вас не машина реального времени). если у вас есть тестер с функцией определения частоты, то посмотрите что у вас на выходе. или осцилографом. длину, попробуйте использовать flat sequence с необходимой задержкой
Добро пожаловать на http://rk-stud.ru/
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5464
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 28 раз
Поблагодарили: 87 раз

Re: Управление шаговым двигателем через параллельный порт.

Сообщение IvanLis »

Если все так плохо, но хочется получить результат.
Можно подключить по RS-232 (USB -> Virtual Com) контроллер, передавать ему команды в формате:
"Направление" - "Кол-во шагов" - "Скорость/частота"
а тот пусть уже преобразует команды и управляет драйверами в формате "Step" - "Dir"

Так мы и от ненужных адаптеров и систему значительно разгрузим.
roccosiffredi
junior
junior
Сообщения: 51
Зарегистрирован: 18 апр 2012, 13:51
Версия LabVIEW: 2011
Контактная информация:

Re: Управление шаговым двигателем через параллельный порт.

Сообщение roccosiffredi »

Изображение
Через LPT быстрее, я так понял, не получится. Т.е. на длину самих импульсов никак не повлиять?
IvanLis писал(а):Вы же сами писали:
roccosiffredi писал(а):Один оборот двигатель на дроблении шага 1/16 совершает очень долго.
Это дробление я выставлял переключателями на самом блоке управления. Микрошаговый же режим, как я понял, осуществляется за счет уменьшения процента тока удержания, что позволяет ему более плавно вращаться. Это тоже выставлял переключателями на блоке управления smd.
IvanLis писал(а):Если все так плохо, но хочется получить результат.
Можно подключить по RS-232 (USB -> Virtual Com) контроллер, передавать ему команды в формате:
"Направление" - "Кол-во шагов" - "Скорость/частота"
а тот пусть уже преобразует команды и управляет драйверами в формате "Step" - "Dir"

Так мы и от ненужных адаптеров и систему значительно разгрузим.
В механическом перемещении учавствуют 2 двигателя, единственный встроенный в материнскую плату последовательный порт занят под измеритель. Вы советуете приобрести 2 USB -> Virtual Com контроллера? А каким образом подсоединить блок управления к RS232, если в блок приходят команды step и direction разными проводами, а у RS232 под передачу имеется лишь один пин?
Chupakabra писал(а):При управление ШД через контроллер по принципу STEP, DIR, скорость двигателя зависит от частоты следования импульсов.
Еще зависит от длительности одного импульса. Другой блок управления спасением не будет, т.к. на mach2 (программа для двигателей ЧПУ в delphi) с моим блоком обеспечивается отличная скорость.
serg115 писал(а):Конечно, движок может крутится очень быстро, поэтому обращайтесь к производителю и требуйте программого обеспечения. Т.к. если двигатель продали вместе с контроллером и программуля "оригинальная" должна быть. С таким уже сталкивались.
Я сомневаюсь, что они возьмутся написать именно в labview, т.к. мне необходима программа, которая будет взаимодействовать еще с измерителем. Автоматизация измерений у меня уже завершена. Я пишу общую программу для взаимодействия механических перемещений с промежуточным измерением диодов.
Sergey Ivanov писал(а):это в :labview: 1 мкс ?

Извиняюсь, одна миллисекунда. За нее тоже ручаться не стоит?
С уважением, Александр.
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5464
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 28 раз
Поблагодарили: 87 раз

Re: Управление шаговым двигателем через параллельный порт.

Сообщение IvanLis »

roccosiffredi писал(а):
IvanLis писал(а):Если все так плохо, но хочется получить результат.
Можно подключить по RS-232 (USB -> Virtual Com) контроллер, передавать ему команды в формате:
"Направление" - "Кол-во шагов" - "Скорость/частота"
а тот пусть уже преобразует команды и управляет драйверами в формате "Step" - "Dir"

Так мы и от ненужных адаптеров и систему значительно разгрузим.
В механическом перемещении учавствуют 2 двигателя, единственный встроенный в материнскую плату последовательный порт занят под измеритель. Вы советуете приобрести 2 USB -> Virtual Com контроллера? А каким образом подсоединить блок управления к RS232, если в блок приходят команды step и direction разными проводами, а у RS232 под передачу имеется лишь один пин?
прочтите еще раз все внимательно

я предлагаю использовать контроллер
например для быстрого StartUp можно взять 16МГц Arduino
у него свободных 12 цифровых входов/выходов (как минимум)
и подключается по USB (преобразователь USB <-> UART) имеет на борту
т.е. через один USB вы можете передавать сигналы управления на шесть драйверов
и частота следования импульсов получится приличная (будет зависеть от программной реализации уже на самом контроллере)
к тому же получится более-менее система реального времени (на контроллере)
roccosiffredi
junior
junior
Сообщения: 51
Зарегистрирован: 18 апр 2012, 13:51
Версия LabVIEW: 2011
Контактная информация:

Re: Управление шаговым двигателем через параллельный порт.

Сообщение roccosiffredi »

Большое спасибо за помощь, выбрал arduino uno rev3 из-за наличия в магазине. Завтра надеюсь приобрести. В принципе мне же любой контроллер от arduino сгодится?
Имеет ли смысл еще купить шилд для управления шаговым двигателем для упрощения работы или с моими драйверами smd4.2 проблем быть не должно?
С уважением, Александр.
Ответить

Вернуться в «Коммуникация с приборами»