Ребята, возможно ли в реальном времени узнать количество уже сгенерированных импульсов?
Счетчик NI 6212 генерирует определенное количество импульсов, используемых для управления шаговым двигателем. Я задаю несколько тысяч импульсов, запускаю задачу, шаговик начинает вращаться, ну и вот - вопрос озвучен в первом предложении. Я бы хотела знать сколько оборотов ему осталось вращаться, а для этого мне нужно каким то образом узнать сколько уже импульсов сгенерировано... Пробовала с различными property - не работает
Upd. Тут идея возникла. Поскольку у NI 6212 два счетчика, подумала может второй использовать для подсчета импульсов, соединить терминалы перемычкой и пусть первый генерирует, а второй считает.
Попробовала, не получается, выдает ошибку
Спасибо
Узнать количество сгенерированных импульсов
-
- professor
- Сообщения: 3409
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 176 раз
- Контактная информация:
Re: Узнать количество сгенерированных импульсов
А Status:Total Samples Per Channel Generated Property что возвращает?
Использовал его в обычном DO, про импульсы не знаю, но суть та же
Использовал его в обычном DO, про импульсы не знаю, но суть та же
- jane_wild
- master
- Сообщения: 461
- Зарегистрирован: 30 июн 2016, 02:11
- Версия LabVIEW: 2020
- Благодарил (а): 84 раза
- Поблагодарили: 15 раз
- Контактная информация:
-
- professor
- Сообщения: 3409
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 176 раз
- Контактная информация:
Re: Узнать количество сгенерированных импульсов
-
- professor
- Сообщения: 3409
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 176 раз
- Контактная информация:
Re: Узнать количество сгенерированных импульсов
Как говорится, в порядке бреда.
Проверить не на чем, а на симуляторе не работает, но вдруг реальное потянет.
Проверить не на чем, а на симуляторе не работает, но вдруг реальное потянет.
-
IvanLis
- guru
- Сообщения: 5467
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 28 раз
- Поблагодарили: 88 раз
Re: Узнать количество сгенерированных импульсов
С точки зрения управления, Вы изначально рассуждаете неверно.jane_wild писал(а): ↑10 мар 2022, 20:38 Счетчик NI 6212 генерирует определенное количество импульсов, используемых для управления шаговым двигателем. Я задаю несколько тысяч импульсов, запускаю задачу, шаговик начинает вращаться.....
Я бы хотела знать сколько оборотов ему осталось вращаться, а для этого мне нужно каким то образом узнать сколько уже импульсов сгенерировано...
Как минимум, Вы должны иметь возможность экстренной остановки (emergency stop) или остановки по условию. Т.е. по ее нажатии, все должно замереть на месте, это требование ЧПУ (CNC) У Вас же реализация подразумевает "отправил и забыл", это удобно и просто, но не правильно.
Потом начинаются проблемы с самим ШД, его возможности ограничены, он не может мгновенно начать/остановить движение. Попытки это сделать приводит к пропускам шагов (это отдельная тема), "перелетам" точки назначения, а возможно повреждению заготовки и поломки механизмов. Есть понятия ускорение/торможение и рывок, которые необходимо учитывать.
Это значит, вы должны плавно разгонять, после вывода на необходимую скорость поддерживать ее, а при приближении к точке назначения, плавно сбрасывать скорость, вплоть до полной остановки. А затем "удержание", он сам не будет стоять на месте. Про явление резонанса, можете самостоятельно почитать.
Исходя из всего, Вам нужно отдельно формировать каждый импульс.
Частота и/или длительность (не знаю, что за драйвер у Вас) импульса определяют скорость и все ее производные (и интеграл ) должны соответствовать построенной диаграмме изменения скорости.
Это позволит мгновенно остановить ШД, плавно разгонять/тормозить и т.д. Ну и естественно знать сколько он шагов сделал, сколько осталось и где он находится, при условии, что шаги пропущены не были.
Посмотрите NI Motion Control, как у них там все настраивается для каждого ШД.
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
- jane_wild
- master
- Сообщения: 461
- Зарегистрирован: 30 июн 2016, 02:11
- Версия LabVIEW: 2020
- Благодарил (а): 84 раза
- Поблагодарили: 15 раз
- Контактная информация:
Re: Узнать количество сгенерированных импульсов
К сожалению не работает
- Вложения
-
- Error Pulses2.jpg (37.49 КБ) 1249 просмотров
- jane_wild
- master
- Сообщения: 461
- Зарегистрирован: 30 июн 2016, 02:11
- Версия LabVIEW: 2020
- Благодарил (а): 84 раза
- Поблагодарили: 15 раз
- Контактная информация:
Re: Узнать количество сгенерированных импульсов
Конечно же это реализовано, я просто выложила тестовый vi. Не выкладывать же весь проект.IvanLis писал(а): ↑11 мар 2022, 10:27
С точки зрения управления, Вы изначально рассуждаете неверно.
Как минимум, Вы должны иметь возможность экстренной остановки (emergency stop) или остановки по условию. Т.е. по ее нажатии, все должно замереть на месте, это требование ЧПУ (CNC)
У Вас же реализация подразумевает "отправил и забыл", это удобно и просто, но не правильно.
С этим все нормально. Сам шаговик имеет внутреннюю обратную связь, там внутри встроен энкодер. А сам драйвер обеспечивает разгон торможение, так в документации написано. Правда о плавности речь не идет, но скорость собственно не велика- 2500/1600 = 1.5 оборота в секунду поэтому с этим проблем нет. Да и после остановки стоит как вкопаный, согласно даташиту удержание 2nmIvanLis писал(а): ↑11 мар 2022, 10:27 Потом начинаются проблемы с самим ШД, его возможности ограничены, он не может мгновенно начать/остановить движение. Попытки это сделать приводит к пропускам шагов (это отдельная тема), "перелетам" точки назначения, а возможно повреждению заготовки и поломки механизмов. Есть понятия ускорение/торможение и рывок, которые необходимо учитывать.
Это значит, вы должны плавно разгонять, после вывода на необходимую скорость поддерживать ее, а при приближении к точке назначения, плавно сбрасывать скорость, вплоть до полной остановки. А затем "удержание", он сам не будет стоять на месте. Про явление резонанса, можете самостоятельно почитать.
Исходя из всего, Вам нужно отдельно формировать каждый импульс.
Частота и/или длительность (не знаю, что за драйвер у Вас) импульса определяют скорость и все ее производные (и интеграл ) должны соответствовать построенной диаграмме изменения скорости.
Это позволит мгновенно остановить ШД, плавно разгонять/тормозить и т.д. Ну и естественно знать сколько он шагов сделал, сколько осталось и где он находится, при условии, что шаги пропущены не были.
Посмотрите NI Motion Control, как у них там все настраивается для каждого ШД.
Из документации:
No loss of synchronization , the Integrated Closed Loop Motors will overcome the synchronization issues with its in-corporation of the Position Tracking Technology, by integrating a Position Encoder behind the Step Motor. These will allow the Step Motor to behave like a Closed Loop Motor System, providing an automatic position correction, ensuring a higher degrees of positioning.
Low Heat / High Efficiency Hybrid Stepper Motor Driver
Smooth and Accurate : with the Encoder feedback vector current control algorithm and filtering technique, it overcome the Low-Frequency Resonance problem. This will results in a smoother motion at low speed, overcome the noise and vibration concern, experienced by the traditional Step Motor system.
Hybrid step servo system have some advantages of the traditional open-loop stepper system, position response input and output command signal are almost real-time synchronization, so very suitable for condition of short distance quickly start / stop and zero-speed stop stably.
In condition of point-to-point fast positioning, advanced servo control technology provides a large torque output. It makes the system has a very high dynamic response, it is far over the limit of step system
Но в любом случае, Иван - Спасибо
-
taras_33
- professional
- Сообщения: 392
- Зарегистрирован: 31 окт 2009, 18:25
- Награды: 1
- Версия LabVIEW: 2019
- Поблагодарили: 13 раз
- Контактная информация:
Re: Узнать количество сгенерированных импульсов
Если супер точность не требуется, то можно организовать обычный программный таймер. Частота генерации импульсов известна, их количество тоже, следовательно время за которое они сгенерируются также известно (время = импульсы / частота) Вот и использовать это время при инициализации таймера. Ну и запустить обратный отсчет одновремменно с запуском шаговика. Количество оставшихся оботов также подсчитать не составит труда...
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots.
So far, the Universe is winning!
So far, the Universe is winning!