Настройка EMC2 на простейший драйвер управления ШД
Настройка EMC2 на простейший драйвер управления ШД
Собрал вот такой (http://www.homecnc.ru/index.php/electro ... controller) контроллер ШД (вот ещё ссылка http://www.electroprivod.ru/pc_operation.htm). Пока для эксперемента сделал 1 ось, хочу посмотреть как будет работать. Не могу настроить EMC2 на работу с этим контроллером.
Там для управление 1 шд используются 4 пина lpt порта D0-D3. Вот таблица для шага:
D0 D1 D2 D3
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
Я не разбираюсь в этой программе вообще, в интернете весь поиск перерыл - ничего не нашел.
Если можно распишите подробней как это заставить работать.
Там для управление 1 шд используются 4 пина lpt порта D0-D3. Вот таблица для шага:
D0 D1 D2 D3
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
Я не разбираюсь в этой программе вообще, в интернете весь поиск перерыл - ничего не нашел.
Если можно распишите подробней как это заставить работать.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Настройка EMC2 на простейший драйвер управления ШД
Я так понимаю, что эти 0 и 1 это пины на каждую обмотку?
Если да, то это не очень рациональное использование порта лпт. ведь шаговиком можно управлять всего по двум пинам - шаг и направление. Но не суть.
Это можно реализовать при помощи компонентов.
Если я все правильно понял, тогда можно будет продолжать.
Если да, то это не очень рациональное использование порта лпт. ведь шаговиком можно управлять всего по двум пинам - шаг и направление. Но не суть.
Это можно реализовать при помощи компонентов.
Если я все правильно понял, тогда можно будет продолжать.
Re: Настройка EMC2 на простейший драйвер управления ШД
Да всё правильно, пины это управление обмотками, насчёт рациональности, для управления по двум пинам нужно делать более сложный контроллер, пока не хочу.
Спасибо.
Этого я не понимаю.Это можно реализовать при помощи компонентов.
Если можно поподробней.Если я все правильно понял, тогда можно будет продолжать.
Спасибо.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Настройка EMC2 на простейший драйвер управления ШД
По компонентам сначала просмотри эту тему: http://cnc-club.ru/forum/viewtopic.php?f=15&t=790 .
Там было общее описание работы компонент. В твоем случае, нужно что-то типа этого:
Потом подгружаем этот компонент в файле hal :
loadrt simple_stepper count=3
И подключаем на него нужные пины:
net simple_stepper.0.step <= stepgen.0.step
net simple_stepper.0.dir <= stepgen.0.dir
...
net simple_stepper.0.out1 => parport.0.pin-03-out
...
PS если с английским хорошо, то обязательно почитай вот это: http://linuxcnc.org/docs/html/hal_comp.html
Там было общее описание работы компонент. В твоем случае, нужно что-то типа этого:
Код: Выделить всё
component simple_stepper;
pin in bit step;
pin in bit dir;
pin out bit out1;
pin out bit out2;
pin out bit out3;
pin out bit out4;
variable int step_phase;
license "GPL";
;;
if (dir == 0){step_phase = (step_phase-1)%4;} else {step_phase = (step_phase+1)%4;}
if (step_phase == 0)
{ out1 = 1; out1 = 0; out1 = 0; out1 = 0; }
else if (step_phase == 1)
{ out1 = 0; out1 = 1; out1 = 0; out1 = 0; }
else if (step_phase == 2)
{ out1 = 0; out1 = 0; out1 = 1; out1 = 0; }
else if (step_phase == 3)
{ out1 = 0; out1 = 0; out1 = 0; out1 = 1; }
loadrt simple_stepper count=3
И подключаем на него нужные пины:
net simple_stepper.0.step <= stepgen.0.step
net simple_stepper.0.dir <= stepgen.0.dir
...
net simple_stepper.0.out1 => parport.0.pin-03-out
...
PS если с английским хорошо, то обязательно почитай вот это: http://linuxcnc.org/docs/html/hal_comp.html
Re: Настройка EMC2 на простейший драйвер управления ШД
Спасибо за ответ, только что мне с этим делать?
С английским очень плохо дружу.
Если можно расписать все как для чайника: открываем файл, вставляем код, сохраняем, компилируем, открываем emc2, заходим туда, выбираем то, и оп-ля функционирует.
Либо дайте вразумительную ссылку где для таких как я написано как компоненты делать...
С английским очень плохо дружу.
Если можно расписать все как для чайника: открываем файл, вставляем код, сохраняем, компилируем, открываем emc2, заходим туда, выбираем то, и оп-ля функционирует.
Либо дайте вразумительную ссылку где для таких как я написано как компоненты делать...
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Настройка EMC2 на простейший драйвер управления ШД
Ну в общем, все написано тут: http://linuxcnc.org/docs/html/hal_comp.html, но по английски.
Завтра переведу основные моменты на великий и могучий. И добавлю комментариев.
Завтра переведу основные моменты на великий и могучий. И добавлю комментариев.
-
jura
Re: Настройка EMC2 на простейший драйвер управления ШД
Решился на EMC2.Вопрос:на vri-cnc есть схема простейшего контроллера на к155тм7,будет ли это вместе корректно работать?
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Настройка EMC2 на простейший драйвер управления ШД
А как он управляется? Хотя бы примерно.
Или дай прямую ссылочку на описание.
ЗЫ мне казалось, что самый простой контроллер - это step/dir (кроме описанного выше). Все что нужно это просто счетчик и таблица активации выводов.
Вся логика контроллера заключается в такой простой функции:
Описанный выше контроллер проще тем, что в контроллере даже логика не нужна. Но это занимает в два раза больше пинов LPT, которые у нас в дефиците, т.к. обычно помимо самих двигателей еще хочется подключить датчики и прочую ерунду
.
Или дай прямую ссылочку на описание.
ЗЫ мне казалось, что самый простой контроллер - это step/dir (кроме описанного выше). Все что нужно это просто счетчик и таблица активации выводов.
Вся логика контроллера заключается в такой простой функции:
Код: Выделить всё
if (dir == 0){step_phase = (step_phase-1)%4;} else {step_phase = (step_phase+1)%4;}
if (step_phase == 0)
{ out1 = 1; out1 = 0; out1 = 0; out1 = 0; }
else if (step_phase == 1)
{ out1 = 0; out1 = 1; out1 = 0; out1 = 0; }
else if (step_phase == 2)
{ out1 = 0; out1 = 0; out1 = 1; out1 = 0; }
else if (step_phase == 3)
{ out1 = 0; out1 = 0; out1 = 0; out1 = 1; }-
yura
Re: Настройка EMC2 на простейший драйвер управления ШД
дело в том,что за неимением никокого опыта в программировании чипов спаял этот вариант.и моторы закрутились,с vri-cnc,так если я оставлю эту схему и буду использовать ЕMC2,то теоретически должно работать,если правильно настроить лтп,так?а как его правильно настроить под этот контроллер?(запустил с live-cd EMC2-НУ ОЧЕНЬ НРАВИТСЯ,ХОЧУ ОСВОИТЬ).У МЕНЯ ТОЛЬКО X,Y,Z БЕЗ КОНЦЕВИКОВ.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Настройка EMC2 на простейший драйвер управления ШД
Нужен протокол общения с контроллером. Есть ссылка на описание команд?
На сколько я помню, там вроде был не обычный step/dir...
На сколько я помню, там вроде был не обычный step/dir...
-
YURA
- Почётный участник

- Сообщения: 60
- Зарегистрирован: 28 мар 2011, 11:40
- Репутация: 0
- Откуда: УКРАИНА,Закарпатье
- Контактная информация:
Re: Настройка EMC2 на простейший драйвер управления ШД
ЭТО ЕГО СХЕМА
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Настройка EMC2 на простейший драйвер управления ШД
Понятно, а что на него нужно посылать, какого вида команда?
ЗЫ что-то у меня vri-cnc не открывается...
ЗЫ что-то у меня vri-cnc не открывается...
-
YURA
- Почётный участник

- Сообщения: 60
- Зарегистрирован: 28 мар 2011, 11:40
- Репутация: 0
- Откуда: УКРАИНА,Закарпатье
- Контактная информация:
Re: Настройка EMC2 на простейший драйвер управления ШД
А, потому я дал фото,у меня тоже не открывается,так бы я дал ссылку
Последний раз редактировалось Nick 28 мар 2011, 13:10, всего редактировалось 1 раз.
Причина: поменял регистр (root)
Причина: поменял регистр (root)
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Настройка EMC2 на простейший драйвер управления ШД
У них остался старый сайт http://cnc.4bb.ru надо там глянуть...
-
YURA
- Почётный участник

- Сообщения: 60
- Зарегистрирован: 28 мар 2011, 11:40
- Репутация: 0
- Откуда: УКРАИНА,Закарпатье
- Контактная информация:
Re: Настройка EMC2 на простейший драйвер управления ШД
да утром открывал его,попробуем попозже
Re: Настройка EMC2 на простейший драйвер управления ШД
Ну ждать терпения не было, решил другую систему попробовать (TurboCNC). Оказалась намного проще в настройке, всё заработало.
Хотелось всё же и на EMC2 запустить. ТОлько есть проблема с пониманием как это сделать. Выше был дан код, только что с ним делать?
Хотелось всё же и на EMC2 запустить. ТОлько есть проблема с пониманием как это сделать. Выше был дан код, только что с ним делать?
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Настройка EMC2 на простейший драйвер управления ШД
Слушай, а то что на нижнем рисунке, это у тебя перед движками стоит?
Если да, то тогда можно всю остальную часть вообще выкинуть и подключить транзисторы прямо к LPT (ну лучше конечно не прямо, а через опторазвязку). Получится схема описанная выше.
Если да, то тогда можно всю остальную часть вообще выкинуть и подключить транзисторы прямо к LPT (ну лучше конечно не прямо, а через опторазвязку). Получится схема описанная выше.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Настройка EMC2 на простейший драйвер управления ШД
Объясняю. Все это нужно запихать в компонент. Для этого:htr писал(а):Ну ждать терпения не было, решил другую систему попробовать (TurboCNC). Оказалась намного проще в настройке, всё заработало.
Хотелось всё же и на EMC2 запустить. ТОлько есть проблема с пониманием как это сделать. Выше был дан код, только что с ним делать?
- Сохраняем все что вверху в файл simple_stepper.comp.
- Устанавливаем пакет emc2-dev: sudo apt-get install emc2-dev
- Компилируем и устанавливаем компонент HAL при помощи comp: comp --install simple_stepper.comp
- Настраиваем станок для использования такого компонента, для этого редактируем .hal файл настроек контроллера добавляем примерно следующее :
loadrt simple_stepper count=3
net simple_stepper.0.step <= stepgen.0.step
net simple_stepper.0.dir <= stepgen.0.dir
net simple_stepper.0.out1 => parport.0.pin-01-out
net simple_stepper.0.out2 => parport.0.pin-02-out
net simple_stepper.0.out3 => parport.0.pin-03-out
net simple_stepper.0.out4 => parport.0.pin-04-out
net simple_stepper.1.step <= stepgen.1.step
net simple_stepper.1.dir <= stepgen.1.dir
net simple_stepper.1.out1 => parport.0.pin-05-out
net simple_stepper.1.out2 => parport.0.pin-06-out
net simple_stepper.1.out3 => parport.0.pin-07-out
net simple_stepper.1.out4 => parport.0.pin-08-out
net simple_stepper.2.step <= stepgen.2.step
net simple_stepper.2.dir <= stepgen.2.dir
net simple_stepper.2.out1 => parport.0.pin-09-out
net simple_stepper.2.out2 => parport.0.pin-10-out
net simple_stepper.2.out3 => parport.0.pin-11-out
net simple_stepper.2.out4 => parport.0.pin-12-out - И убираем строки типа
net stepgen.0.step => parport.0.pin-12-out
net stepgen.0.dir => parport.0.pin-12-out - Запускаем, и пишем, какая вылазит ошибка

-
V0id
- Почётный участник

- Сообщения: 99
- Зарегистрирован: 18 ноя 2010, 20:37
- Репутация: 0
- Контактная информация:
Re: Настройка EMC2 на простейший драйвер управления ШД
Контроллер на ТМ7 устроен так что за 1 такт можно сделать 1 шаг одним движком.root писал(а):Понятно, а что на него нужно посылать, какого вида команда?
ЗЫ что-то у меня vri-cnc не открывается...
И на самом деле контроллер реализован софтварно.
Соответственно софт и решает какую обмотку включать на каком двигателе.
2, 3. 4, 5 пин - это номера обмотки каждого двигатееля
6 - ШД_Х
7 - ШД_Y
8 - ШД_Z
* для полного шага очерёдность включения обмоток будет такой:
- 1000 - 0100 - 0010 - 0001 - (всего используем 4 фазы)
за каждый шаг работает только одна обмотка
- снижено потребление тока но и мощность двигателя снижена тоже.
* либо такой
- 1100 - 0110 - 0011 - 1001.
за каждый шаг работает одновременно две обмотки.
Повышенно потребление тока и повышена мощность двигателя.
* для полушага -
1000 - 1100 - 0100 - 0110 - 0010 - 0011 - 0001 - 1001 - (всего 8 фаз - комбинаций)
поочерёдно включены то одна - то две обмотки.
Каждый нечётный шаг мощность снижена, каждый чётный - увеличена.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Настройка EMC2 на простейший драйвер управления ШД
хммм это не есть хорошо...
Интересно, он успеет понять команды, если я отправлю их одна за другой без дополнительных пауз?
Интересно, он успеет понять команды, если я отправлю их одна за другой без дополнительных пауз?
