маленький долгострой
- crazydnb
- Опытный
- Сообщения: 164
- Зарегистрирован: 01 май 2013, 16:59
- Репутация: 100
- Настоящее имя: Александр Гончаров
- Откуда: Питер
- Контактная информация:
Re: маленький долгострой
по моему так и должно быть, когда питания нет двигатель можно крутить плавно на один шаг, при прокрутки включенных двигателях они перескакивают на несколько шагов. нужно двигатели к драйверам подключить и покрутить их программно. имхо. а энкодеры могут направление определять ? может происходит типа "дребезг контактов" свет оптопары попадает на край диска и при попытке покрутить рукой туда сюда ловит импульсы не перескочив при этом на другой шаг.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: маленький долгострой
С какой скоростью работает считывание энкодера?
Двигатель может достаточно быстро перескакивать с одного шага на другой и контроллер может не успевать считать все импульсы. Плюс проверить на дребезг.
Двигатель может достаточно быстро перескакивать с одного шага на другой и контроллер может не успевать считать все импульсы. Плюс проверить на дребезг.
- AlexNikov
- Мастер
- Сообщения: 1212
- Зарегистрирован: 05 янв 2014, 20:09
- Репутация: 721
- Настоящее имя: Алексей
- Откуда: Томск
- Контактная информация:
Re: маленький долгострой
gedrolium, доброго дня! Подскажите, а что за насос у вас гоняет охлаждалку к шпинделю?
-
gedrolium
- Кандидат
- Сообщения: 59
- Зарегистрирован: 18 янв 2014, 20:07
- Репутация: 16
- Контактная информация:
Re: маленький долгострой
тактовая частота контроллера на 5v 20 МГц или 20 миллионов команд в секунду. Количество строк в в программе 154, соответственно 154 команды, некоторые из них выполняются за 2 такта. Мне неохота разбирать сейчас какие именно поэтому я просто умножу 154 на 2 = 308 команд требуется на один опрос. То есть 308 команд требуется для того чтобы считать один импульс с каждого энкодера, записать в счетчики, сравнить счетчик импульсов.Nick писал(а):С какой скоростью работает считывание энкодера?
Двигатель может достаточно быстро перескакивать с одного шага на другой и контроллер может не успевать считать все импульсы. Плюс проверить на дребезг.
20 000 000 /308=64 935 опросов совершает за 1 секунду, вот только не помню выключал я стандартный делитель на 8 при прошивке или нет, контроллер с программирован еще в мае, по этому 64 935/8=8 116 опросов в секунду. или 486 960 опросов в минуту.
В энкодере 183 дырочки, контроллер считывает в lдва раза больше т.е за один оборот выдает 366 импульсов.
частота вращения двигателя при 2 метрах минуту составляет 400 оборотв в минуту (2000 мм / на 5 мм шаг винта). Что дает нам 366 на 400 = 146 400 выдает импульсов энкодер. Итого троекратный запас опросов контроллера.
Последний раз редактировалось gedrolium 28 окт 2014, 13:38, всего редактировалось 3 раза.
-
gedrolium
- Кандидат
- Сообщения: 59
- Зарегистрирован: 18 янв 2014, 20:07
- Репутация: 16
- Контактная информация:
Re: маленький долгострой
Обычный циркуляционный насос, которые ставят в системах отопленияAlexNikov писал(а):gedrolium, доброго дня! Подскажите, а что за насос у вас гоняет охлаждалку к шпинделю?
-
gedrolium
- Кандидат
- Сообщения: 59
- Зарегистрирован: 18 янв 2014, 20:07
- Репутация: 16
- Контактная информация:
Re: маленький долгострой
нет энкодеры направление определят не могут. Двигатели крутил программно на очень медленных оборотах. Кстати на один из ШД ток удержания поставил маленький поэтому он достаточно легко крутиться, на другой поставил стандартный, прокрутить на шаг нельзя, а вот чуть сдвинуть в полне удается. Вообще по хорошему надо глянуть на сам сигнал, нужен осциллографcrazydnb писал(а):по моему так и должно быть, когда питания нет двигатель можно крутить плавно на один шаг, при прокрутки включенных двигателях они перескакивают на несколько шагов. нужно двигатели к драйверам подключить и покрутить их программно. имхо. а энкодеры могут направление определять ? может происходит типа "дребезг контактов" свет оптопары попадает на край диска и при попытке покрутить рукой туда сюда ловит импульсы не перескочив при этом на другой шаг.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: маленький долгострой
20 МГц - это частота кварца. А тактовая частота МК обычно четверть от частоты кварца...gedrolium писал(а):тактовая частота контроллера на 5v 20 МГц или 20 миллионов команд в секунду.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
gedrolium
- Кандидат
- Сообщения: 59
- Зарегистрирован: 18 янв 2014, 20:07
- Репутация: 16
- Контактная информация:
Re: маленький долгострой
У этого контроллера внутренний генератор, что если честно не очень хорошо. Скорость работы которого зависит от напряжения, делитель по умолчанию стоит 8. В любом случае его можно заставить работать на такой частоте. сейчас же идут какие то помехи, от которых работает не так как задумано даже на нескольких импульсов.UAVpilot писал(а):20 МГц - это частота кварца. А тактовая частота МК обычно четверть от частоты кварца...gedrolium писал(а):тактовая частота контроллера на 5v 20 МГц или 20 миллионов команд в секунду.
- solanto
- Почётный участник

- Сообщения: 963
- Зарегистрирован: 02 апр 2014, 09:10
- Репутация: 94
- Настоящее имя: Александр
- Откуда: Карачаево-Черкесская республика, г.Черкесск
- Контактная информация:
Re: маленький долгострой
Попробуй временно заземлить двигатели (вдруг поможет) и проведи свой тест заново. И хорошо бы заэкранировать сам датчик и провод от него к плате.
Мне пофигу, что думают обо мне люди, пока они не начинают меня бить.
Вектроник А4-12: от заказа до готовности - http://cnc-club.ru/forum/viewtopic.php?f=3&t=5248
Токарник по дереву - http://cnc-club.ru/forum/viewtopic.php?f=3&t=5623

Вектроник А4-12: от заказа до готовности - http://cnc-club.ru/forum/viewtopic.php?f=3&t=5248
Токарник по дереву - http://cnc-club.ru/forum/viewtopic.php?f=3&t=5623

-
gedrolium
- Кандидат
- Сообщения: 59
- Зарегистрирован: 18 янв 2014, 20:07
- Репутация: 16
- Контактная информация:
Re: маленький долгострой
Нашел в чем была проблема, точнее сказать проблема была не одна. Все что было предложено выше форумчанами оказалось рядом, но не совсем. Было предположение, что модуль срабатывает не правильно из-за перескакивания через несколько отверстий, оно отчасти оказалось верным. Выяснилось, что при включенном двигателе, когда крутишь на один шаг, и правду перескакивает несколько положений диска, однако модуль срабатывал даже при смене одного положения. Включенный двигатель создает неплохие наводки, и им чихать, что датчик оптический. При смене положения, там не один импульс проскакивал, а несколько, что и приводило к сбою. Кстати заземление, ферритовые кольца не помогли, вопрос решился фильтром низких частот, ну а чтобы отсеять прочий хлам, и сделать импульсы более правильными, и убрать случайные дребезги поставил тригер Шмитта. Предполагалось, что при высоких оборотах будут проблемы, проблемы были на небольших меняющихся оборотах, как раз в районе резонансов. Также пришлось увеличить порог срабатывания до 30 импульсов, ибо на некоторых режимах появляются не нужные импульсы от датчиков, а также припаял эти датчики. При помощи пустой кружки с ложкой, отстроил чтобы двигатели работали ровно и плавно, а главное одинаково. Прогнал, несколько программ, сбоев нет, что вообщем, то радует особенно после 4 суток опытов и мозгового штурма.
https://www.youtube.com/watch?v=594-Ef_N_4M
https://www.youtube.com/watch?v=594-Ef_N_4M
-
gedrolium
- Кандидат
- Сообщения: 59
- Зарегистрирован: 18 янв 2014, 20:07
- Репутация: 16
- Контактная информация:
Re: маленький долгострой
Каким образом сделать так, чтобы управляющая программа выполнялась только после того, как шпиндель раскрутился до нужных оборотов? То есть после подачи сигнала готовности от шпинделя на один из входов lpt
- Сергей Саныч
- Мастер
- Сообщения: 9116
- Зарегистрирован: 30 май 2012, 14:20
- Репутация: 2858
- Откуда: Тюмень
- Контактная информация:
Re: маленький долгострой
Нужно подключить этот сигнал на motion.spindle-at-speedgedrolium писал(а):Каким образом сделать так, чтобы управляющая программа выполнялась только после того, как шпиндель раскрутился до нужных оборотов? То есть после подачи сигнала готовности от шпинделя на один из входов lpt
http://linuxcnc.org/docs/html/man/man9/motion.9.html
Чудес не бывает. Бывают фокусы.
- nERV
- Мастер
- Сообщения: 1519
- Зарегистрирован: 27 сен 2013, 19:00
- Репутация: 624
- Настоящее имя: Александр
- Откуда: Ульяновск
- Контактная информация:
Re: маленький долгострой
Я просто использую задержку.
M3 s12000
G4 p7
G1......
M3 s12000
G4 p7
G1......
- Сергей Саныч
- Мастер
- Сообщения: 9116
- Зарегистрирован: 30 май 2012, 14:20
- Репутация: 2858
- Откуда: Тюмень
- Контактная информация:
Re: маленький долгострой
Можно. Но так неинтересноnERV писал(а):Я просто использую задержку.
Тем более, когда есть нужный сигнал. Тут смысл еще в чем. motion.spindle-at-speed не тормозит холостые перемещения (G0), и когда шпиндель раскручивается, он может двигаться к месту обработки
M3 s12000 (начали разгон)
G0 X100. Y200. (мы едем, а шпиндель раскручивается)
G0 Z0.5 (приближаемся к заготовке, шпиндель продолжает разгоняться)
G1...... (а вот перед этой командой подождем,если еще не набрал обороты)
Чудес не бывает. Бывают фокусы.
- nERV
- Мастер
- Сообщения: 1519
- Зарегистрирован: 27 сен 2013, 19:00
- Репутация: 624
- Настоящее имя: Александр
- Откуда: Ульяновск
- Контактная информация:
Re: маленький долгострой
Да, но время разгона шпинделя фиксированное и забивается в частотнике. А вот входных пинов в лпт не так много. Лучше завести ошибку шпинделя/аварию.
-
gedrolium
- Кандидат
- Сообщения: 59
- Зарегистрирован: 18 янв 2014, 20:07
- Репутация: 16
- Контактная информация:
Re: маленький долгострой
Война с инвертором все продолжается, пин я вывел все работает. Теперь наткнулся на другую проблему, пытался подключить частотник через modbus, по этой статье http://www.cnc-club.ru/forum/viewtopic. ... 540#p27540, однако из этого мало что вышло, ибо аппарат скорее всего имеет собственный набор команд. Данных по командам нет, как их искать на что ссылаться, не знаю. Единственное что удалось сделать, это найти под "форточки" прогу которая может рулить частотником через modbus. Благодаря ей и сниферу удалось узнать байты команд для управления частотой шпинделя и остановки, с командами от частоника пока сложнее. Так вот у меня есть несколько идей как это использовать
1. прописать байты в файлы из поста указанного выше, но куда их там лепить ума не приложу...
2. подключаться через PLC, тут я вообще как свинья в апельсинах...
3. брать данные по командам S1500 M03 и при помощи самопальной проги отправлять их на ком порт. ну а от частотника ждать команду готовности, но тут я не знаю как считать эти команды....
байты которые уходят на частотник от
01 10 20 00 00 02 04 00 12 00 64 CB 80
до
01 10 20 00 00 02 04 00 12 9C 40 A2 9B
жирным выделены те байты которые несут информацию по частоте, мало того данные должны периодически отправляться, если частотник периодически не получает команду, он останавливает шпиндель и ждет дальнейших указаний.
пока идей больше нет.
частотник easydrive 3100
заранее спасибо.
1. прописать байты в файлы из поста указанного выше, но куда их там лепить ума не приложу...
2. подключаться через PLC, тут я вообще как свинья в апельсинах...
3. брать данные по командам S1500 M03 и при помощи самопальной проги отправлять их на ком порт. ну а от частотника ждать команду готовности, но тут я не знаю как считать эти команды....
байты которые уходят на частотник от
01 10 20 00 00 02 04 00 12 00 64 CB 80
до
01 10 20 00 00 02 04 00 12 9C 40 A2 9B
жирным выделены те байты которые несут информацию по частоте, мало того данные должны периодически отправляться, если частотник периодически не получает команду, он останавливает шпиндель и ждет дальнейших указаний.
пока идей больше нет.
частотник easydrive 3100
заранее спасибо.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: маленький долгострой
А в частотнике нет управления по 0..10В? Может через него проще будет?
-
gedrolium
- Кандидат
- Сообщения: 59
- Зарегистрирован: 18 янв 2014, 20:07
- Репутация: 16
- Контактная информация:
Re: маленький долгострой
есть , даже по току упрваление имеется, но у меня конвертора нетNick писал(а):А в частотнике нет управления по 0..10В? Может через него проще будет?
- Сергей Саныч
- Мастер
- Сообщения: 9116
- Зарегистрирован: 30 май 2012, 14:20
- Репутация: 2858
- Откуда: Тюмень
- Контактная информация:
Re: маленький долгострой
Да как-то не по феншуюNick писал(а):А в частотнике нет управления по 0..10В? Может через него проще будет?
Особенно, если учесть, что modbus уже подключен и где-то даже работает. Остается только узнать систему команд и переписать софт.
Чудес не бывает. Бывают фокусы.
-
gedrolium
- Кандидат
- Сообщения: 59
- Зарегистрирован: 18 янв 2014, 20:07
- Репутация: 16
- Контактная информация:
Re: маленький долгострой
не получается перебросить данные в python для обработки
в hal пропысываю строчки
loadusr -Wn test python test.py
net in <= motion.spindle-speed-out-rps
в самом пользовательском компоненте
т.е по идее частоты шпинделя дожны сохранятся в файле speed. txt
однако там пусто
в hal пропысываю строчки
loadusr -Wn test python test.py
net in <= motion.spindle-speed-out-rps
в самом пользовательском компоненте
Код: Выделить всё
#!/usr/bin/python
import hal, time
file = open("/home/usercnc/linuxcnc/configs/cnc/speed.txt", 'w')
h = hal.component("test")
h.newpin("in", hal.HAL_FLOAT, hal.HAL_IN)
#h.newpin("out", hal.HAL_FLOAT, hal.HAL_OUT)
h.ready()
try:
while 1:
time.sleep(1)
z= h['in']
write(z)
except KeyboardInterrupt:
raise SystemExit
однако там пусто
