маленький долгострой

Фрезерные и гравировальные станки для обработки мягких материалов (дерево, пластики, мягкие металлы).
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: маленький долгострой

Сообщение Serg »

Судя по тексту программы туда ничего не и должно писаться. Более того, прога будет завершаться с ошибкой.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
gedrolium
Кандидат
Сообщения: 59
Зарегистрирован: 18 янв 2014, 20:07
Репутация: 16
Контактная информация:

Re: маленький долгострой

Сообщение gedrolium »

так вроде должен записывать переменную z в файл

Код: Выделить всё

#!/usr/bin/python
import hal, time
file = open("/home/usercnc/linuxcnc/configs/cnc/speed.txt", 'w')
h = hal.component("test")
h.newpin("sp", hal.HAL_FLOAT, hal.HAL_IN)
#h.newpin("sp", hal.HAL_FLOAT, hal.HAL_OUT)
h.ready()
z1= h['sp']
file.write(z1)
try:
    while 1:
        time.sleep(1)
        z= h['sp']
        #file.write('12')
except KeyboardInterrupt:
    raise SystemExit
чет я с hal не могу разобраться
net motion.spindle-speed-out-rps.out test.sp
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: маленький долгострой

Сообщение Serg »

gedrolium писал(а):так вроде должен записывать переменную z в файл
Один раз запишет... :)
gedrolium писал(а):чет я с hal не могу разобраться
net motion.spindle-speed-out-rps.out test.sp
Надо ещё читать вот тут http://linuxcnc.org/docs/devel/html/hal/intro.html :)
Два пина можно соединить только через сигнал.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: маленький долгострой

Сообщение Nick »

gedrolium писал(а):т.е по идее частоты шпинделя дожны сохранятся в файле speed. txt
однако там пусто
не указано куда писать: write(z)
должно быть что-то вроде file.write(z)

лучше не использовать file как название переменной - это встроенный тип. Назови его просто f.

более того, проще все просто в консоль выводить
print h['in']
и чтобы это было не слишком часто, добавь
time.sleep(0.5) в цикл
gedrolium
Кандидат
Сообщения: 59
Зарегистрирован: 18 янв 2014, 20:07
Репутация: 16
Контактная информация:

Re: маленький долгострой

Сообщение gedrolium »

Так у меня и не получилось получить данные, то не записываются, то пин пропадает. Если и запысывается, то тольов через str, но и это ни чего не дает в инт перевести не возможно. Не знаю, что я не так делаю, может у кого из вас получиться сделать нормально.
linuxcnc 2.6.4 debian
У меня же вышло несколько иначе, правда прогу нужно запускать вручную в терминале.
https://www.youtube.com/watch?v=UCBZ5XO36DQ
это программка для управления шпинделем ed3100 по протоколу modbus, она к сожалению работает только на отправку команд.. Прогу нужно еще дорабатывать. Поэтому могут быть косячки....
Для приема данных нужно разбираться в системе команд, а где их искать хрен его занет. Ну и за код не сильно пинайте,

Код: Выделить всё

#!/usr/bin/python
# -*- coding: iso-8859-15 -*-
import linuxcnc, time, serial, struct
ser=serial.Serial(port='/dev/ttyS0', baudrate=9600, parity=serial.PARITY_NONE, stopbits=serial.STOPBITS_ONE, bytesize=serial.EIGHTBITS,)
try:
#----------------------------------------------------------------
	while 1:
#------------------------------------------------------------------------------
		time.sleep(2)
		ins=linuxcnc.stat()
		ins.poll()
		s1=ins.spindle_speed
		if s1<2:
			s1=0
		s=(s1/60)*100 # входящий праметр
		y=(int(s)) # перевод в целое число
		t=str(hex(y)) # перевод в строку для разделения байт
		l=len(t) # нахождение длины строки
		t1=t[2:l] # удаление лишних символов 0x
		l1=len(t1)
#------------------------------------------------------------------------------
		if l1 % 2 <> 0:
			t0=('0')
			t1=t0+t1
		if (l1 % 2 == 0) and (l1==2) or (s1==0):
			t0=('00')
			t1=t0+t1
#-------------------------------------------------------------------------------
		d=[]
		data=[]
		l1=len(t1)
		l0=l1
#----------------------------------------------------------
		while l0<>0:
#-------------------------------------------------------------------------------
			l0=l1-2
			a=t1[l0:l1] # поиск в строке по номеру символа
			a=(int(a,16))
			a=(hex(a))
			d.insert(0,a)
			l1=l1-2
#--------------------------------------------------------------------
		n1=(hex(0x01))
		n2=(hex(0x10))
		n3=(hex(0x20))
		n4=(hex(0x00))
		n5=(hex(0x00))
		n6=(hex(0x02))
		n7=(hex(0x04))
		n8=(hex(0x00))
		n9=(hex(0x12))
		data=[]+[n1,n2,n3,n4,n5,n6,n7,n8,n9]
		data.extend(d)
#---------------------------------------------------------------------------
		ldata=(int(len(data)))
		t1=data[0]
		F=(int(0xffff))
		p=(int(0xa001)) # полином
		t1=(int(t1,16))
		CRC=(t1^F)
		e=0
		b1=0
#--------------------------------------------
		while ldata<>0:
			e=e+1
			b=0
			while b<>8:
				t=(CRC & 1)
				if t==1:
					CRC>>=1
					CRC=(CRC^p)
				if t==0:
					CRC>>=1
				b=b+1
				if e==11:
					e=e-1
				crce=CRC  
			z=data[e]    
			z=(int(z,16))
			CRC=CRC^z
			ldata=ldata-1
#____________________________________________________________
		y1=(int(crce)) # перевод в целое число
		t1=str(hex(y1)) # перевод в строку для разделения байт
		d1=('')
		a1=t1[4:6] # поиск в строке по номеру символа
		a2=t1[2:4]
		d1=(a1+a2)
		d1=int(d1,16)
		crcend=struct.pack('>H',d1)
#-------------------------------------------------------------
		nt1=('\x01')
		nt2=('\x10')
		nt3=('\x20')
		nt4=('\x00')
		nt5=('\x00')
		nt6=('\x02')
		nt7=('\x04')
		nt8=('\x00')
		nt9=('\x12')
		si=struct.pack('>H',s)
		speed=(nt1+nt2+nt3+nt4+nt5+nt6+nt7+nt8+nt9+si+crcend)		 
		ser.write(speed)
		print(repr(speed))
#----------------------------------------------------------------------------
except KeyboardInterrupt:
	raise SystemExit
    
gedrolium
Кандидат
Сообщения: 59
Зарегистрирован: 18 янв 2014, 20:07
Репутация: 16
Контактная информация:

Re: маленький долгострой

Сообщение gedrolium »

Проект несколько тормознулся из-за сгоревших драйверов и курса доллара, и так как дело хоть как-то сдвинулось, вот немного фоток
Вложения
WP_20150721_23_19_27_Pro[1].jpg (2948 просмотров) <a class='original' href='./download/file.php?id=55167&sid=12fb40361ee13ba623e9ef2724a25b02&mode=view' target=_blank>Загрузить оригинал (1.51 МБ)</a>
WP_20150721_23_20_23_Pro[1].jpg (2948 просмотров) <a class='original' href='./download/file.php?id=55168&sid=12fb40361ee13ba623e9ef2724a25b02&mode=view' target=_blank>Загрузить оригинал (1.42 МБ)</a>
WP_20150721_23_20_43_Pro[1].jpg (2948 просмотров) <a class='original' href='./download/file.php?id=55169&sid=12fb40361ee13ba623e9ef2724a25b02&mode=view' target=_blank>Загрузить оригинал (1.6 МБ)</a>
WP_20150721_23_20_55_Pro[1].jpg (2948 просмотров) <a class='original' href='./download/file.php?id=55170&sid=12fb40361ee13ba623e9ef2724a25b02&mode=view' target=_blank>Загрузить оригинал (1.5 МБ)</a>
WP_20150721_23_22_07_Pro[1].jpg (2948 просмотров) <a class='original' href='./download/file.php?id=55171&sid=12fb40361ee13ba623e9ef2724a25b02&mode=view' target=_blank>Загрузить оригинал (1.41 МБ)</a>
WP_20150802_03_17_31_Pro[1].jpg (2948 просмотров) <a class='original' href='./download/file.php?id=55172&sid=12fb40361ee13ba623e9ef2724a25b02&mode=view' target=_blank>Загрузить оригинал (1.42 МБ)</a>
WP_20150802_03_17_54_Pro[1].jpg (2948 просмотров) <a class='original' href='./download/file.php?id=55173&sid=12fb40361ee13ba623e9ef2724a25b02&mode=view' target=_blank>Загрузить оригинал (1.58 МБ)</a>
WP_20150802_03_19_06_Pro[1].jpg (2948 просмотров) <a class='original' href='./download/file.php?id=55174&sid=12fb40361ee13ba623e9ef2724a25b02&mode=view' target=_blank>Загрузить оригинал (1.42 МБ)</a>
WP_20150802_03_20_24_Pro[1].jpg (2948 просмотров) <a class='original' href='./download/file.php?id=55175&sid=12fb40361ee13ba623e9ef2724a25b02&mode=view' target=_blank>Загрузить оригинал (1.48 МБ)</a>
WP_20150802_03_21_06_Pro[1].jpg (2948 просмотров) <a class='original' href='./download/file.php?id=55176&sid=12fb40361ee13ba623e9ef2724a25b02&mode=view' target=_blank>Загрузить оригинал (1.52 МБ)</a>
WP_20150802_03_21_20_Pro[1].jpg (2948 просмотров) <a class='original' href='./download/file.php?id=55177&sid=12fb40361ee13ba623e9ef2724a25b02&mode=view' target=_blank>Загрузить оригинал (1.52 МБ)</a>
WP_20150802_03_21_35_Pro[1].jpg (2948 просмотров) <a class='original' href='./download/file.php?id=55178&sid=12fb40361ee13ba623e9ef2724a25b02&mode=view' target=_blank>Загрузить оригинал (1.51 МБ)</a>
WP_20150802_03_22_20_Pro[1].jpg (2948 просмотров) <a class='original' href='./download/file.php?id=55179&sid=12fb40361ee13ba623e9ef2724a25b02&mode=view' target=_blank>Загрузить оригинал (1.43 МБ)</a>
WP_20150802_03_23_06_Pro[1].jpg (2948 просмотров) <a class='original' href='./download/file.php?id=55180&sid=12fb40361ee13ba623e9ef2724a25b02&mode=view' target=_blank>Загрузить оригинал (1.52 МБ)</a>
gedrolium
Кандидат
Сообщения: 59
Зарегистрирован: 18 янв 2014, 20:07
Репутация: 16
Контактная информация:

Re: маленький долгострой

Сообщение gedrolium »

Еще мне пришлось слегка разобрать шпиндель для замены разъема. И глядя на на все это у меня появилась идея встроить датчик холла. Инвертор поддерживает функцию ПИД регулирования.
Вложения
Вот в эти отверстия хочу вставить мелкие неодиовые магниты, а в крышку, которая прекрывает все это дело встроить цифровой датчик холла (2946 просмотров) <a class='original' href='./download/file.php?id=55181&sid=12fb40361ee13ba623e9ef2724a25b02&mode=view' target=_blank>Загрузить оригинал (1.37 МБ)</a>
Вот в эти отверстия хочу вставить мелкие неодиовые магниты, а в крышку, которая прекрывает все это дело встроить цифровой датчик холла
gedrolium
Кандидат
Сообщения: 59
Зарегистрирован: 18 янв 2014, 20:07
Репутация: 16
Контактная информация:

Re: маленький долгострой

Сообщение gedrolium »

Стоит ли заморачиваться?
gedrolium
Кандидат
Сообщения: 59
Зарегистрирован: 18 янв 2014, 20:07
Репутация: 16
Контактная информация:

Re: маленький долгострой

Сообщение gedrolium »

Пока шпиндель отложил на потом. Меня разочаровали скорости осей, они конечно здорово зависят от ускорения. Но выжать более 1800мм/мин не удавалось, все что выше могло сорваться в любой момент. Однако я мог выставить ускорение в 1000мм*с2 и понизив максимальную скорость до 1200-1500. Вообщем решил я поэкспериментировать и переделать двигатель на 8 выводной. Разобрав я обнаружил что катушек там аж целых 8 штук, ну я и решил а почему бы не питать каждую отдельно. Вообщем я вывел 16 проводов...
Вложения
WP_20150811_19_50_56_Pro.jpg (2812 просмотров) <a class='original' href='./download/file.php?id=55730&sid=12fb40361ee13ba623e9ef2724a25b02&mode=view' target=_blank>Загрузить оригинал (1.51 МБ)</a>
WP_20150811_20_16_50_Pro.jpg (2812 просмотров) <a class='original' href='./download/file.php?id=55733&sid=12fb40361ee13ba623e9ef2724a25b02&mode=view' target=_blank>Загрузить оригинал (1.46 МБ)</a>
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6192
Откуда: Казахстан.
Контактная информация:

Re: маленький долгострой

Сообщение aftaev »

gedrolium писал(а): Вообщем я вывел 16 проводов...
И как скорость в 16 раз увеличилась :)
И куда теперь прикручивать эти 16 проводов? Напрямую к LPT :lol:

Был у меня Nema42 максимально смог его раскрутить до 150 об/мин, после разборки этот показатель упал до 120 об/мин. ;)
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
gedrolium
Кандидат
Сообщения: 59
Зарегистрирован: 18 янв 2014, 20:07
Репутация: 16
Контактная информация:

Re: маленький долгострой

Сообщение gedrolium »

Подключив все это дело параллельно я не много расстроился, мотор крутиться выше 300-350 оборотов в мин отказывался, и остановить пальцами мотор не составляло ни какого труда. Я даже не стал его ставить на ось. Позже я пере коммутировал обмотки. Скорость удалось поднять до 2500-3000мм/мин однако ускорение выше 500 выставить в принципе не возможно, а я хочу и скорость и ускорение
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6192
Откуда: Казахстан.
Контактная информация:

Re: маленький долгострой

Сообщение aftaev »

gedrolium писал(а):Скорость удалось поднять до 2500-3000мм/мин однако ускорение выше 500 выставить в принципе не возможно
Наверно если до разборки установить такое же ускорение то получил такие же скорости ;)
gedrolium писал(а):а я хочу и скорость и ускорение
Сервы в помощь ;)
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
gedrolium
Кандидат
Сообщения: 59
Зарегистрирован: 18 янв 2014, 20:07
Репутация: 16
Контактная информация:

Re: маленький долгострой

Сообщение gedrolium »

До переборки выше 2100 даже при ускорении 300 не мог получить. Серва хорошо, но дорого....
Аватара пользователя
michael-yurov
Почётный участник
Почётный участник
Сообщения: 11626
Зарегистрирован: 26 июл 2012, 00:10
Репутация: 4634
Настоящее имя: Михаил Львович
Откуда: Новоуральск
Контактная информация:

Re: маленький долгострой

Сообщение michael-yurov »

gedrolium писал(а):Скорость удалось поднять до 2500-3000мм/мин однако ускорение выше 500 выставить в принципе не возможно, а я хочу и скорость и ускорение
Покупай у меня плату http://stepm.ru/ (правда только в конце сентября, не раньше).
и срывов не будет, и скорость возрастет и ускорение можно будет поставить в несколько раз выше.

Да, еще... если драйверы Leadshine - нужно обязательно сделать автонастройку контура тока, дважды щелкнув четвертым переключателем.

Ну и моторам с высокой индуктивностью нужно высокое напряжение питания.
Если скажешь индуктивность, рабочий ток моторов и напряжение питания драйверов - я посчитаю, до какой скорости они должны нормально работать.
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6192
Откуда: Казахстан.
Контактная информация:

Re: маленький долгострой

Сообщение aftaev »

gedrolium писал(а):Серва хорошо, но дорого....
На форуме не раз показывали сервы которые дешевше шаговиков ;)
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
gedrolium
Кандидат
Сообщения: 59
Зарегистрирован: 18 янв 2014, 20:07
Репутация: 16
Контактная информация:

Re: маленький долгострой

Сообщение gedrolium »

michael-yurov писал(а):Да, еще... если драйверы Leadshine - нужно обязательно сделать автонастройку контура тока, дважды щелкнув четвертым переключателем.
эту настройку я провожу в ручную, при помощи спец проги.

характеристики эл.двигателя
индуктивность -6,5 mГн
сопротивление-0,6 ом
ток-6 А
напряжение питания 68 вольт


по поводу платы думал, присматривал, но мне нужно 5 осей, а у тебя 4.
Аватара пользователя
michael-yurov
Почётный участник
Почётный участник
Сообщения: 11626
Зарегистрирован: 26 июл 2012, 00:10
Репутация: 4634
Настоящее имя: Михаил Львович
Откуда: Новоуральск
Контактная информация:

Re: маленький долгострой

Сообщение michael-yurov »

gedrolium писал(а):по поводу платы думал, присматривал, но мне нужно 5 осей, а у тебя 4.
Будет 5.
Аватара пользователя
michael-yurov
Почётный участник
Почётный участник
Сообщения: 11626
Зарегистрирован: 26 июл 2012, 00:10
Репутация: 4634
Настоящее имя: Михаил Львович
Откуда: Новоуральск
Контактная информация:

Re: маленький долгострой

Сообщение michael-yurov »

gedrolium писал(а):характеристики эл.двигателя
индуктивность -6,5 mГн
сопротивление-0,6 ом
ток-6 А
напряжение питания 68 вольт
Если посчитать скорость нарастания тока в этих моторах при питании драйверов 68 В (я посчитаю упрощенно, исходя из пилообразной формы изменения тока в обмотках),
получается что для изменения тока от ноля до максимального значения (8,5 А, если действующее значение 6 А), что должно происходить при каждом полном шаге, потребуется 6.5 мГн / (68 В - 5,1 В) x 8,5 А= 0,878 мс
Т.е. 1 полный оборот будет совершен за 175,7 мс (5,7 об/сек)
за 1 минуту - 341 оборот, или 1707 мм /мин (для ШВП с шагом 5 мм без редукторов).

Это и будет теоретическим потолком для данных моторов при напряжении питания 68 В.
Выше данной скорости моторы начнут быстро терять крутящий момент.
Чтобы добиться более высоких скоростей - нужно либо напряжение питания драйверов выше, либо моторы меньше (с меньшей индуктивностью и меньшим рабочим током).
Зависимость от индуктивности, тока и напряжения - линейная (для тока и индуктивности - обратная).
Ответить

Вернуться в «Фрезерные станки по дереву и пластикам, гравировальные станки, роутеры»