Настройка EMC2 на простейший драйвер управления ШД

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
htr
Новичок
Сообщения: 7
Зарегистрирован: 27 мар 2011, 16:15
Репутация: 0
Контактная информация:

Настройка EMC2 на простейший драйвер управления ШД

Сообщение htr »

Собрал вот такой (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

Я не разбираюсь в этой программе вообще, в интернете весь поиск перерыл - ничего не нашел.
Если можно распишите подробней как это заставить работать.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Настройка EMC2 на простейший драйвер управления ШД

Сообщение Nick »

Я так понимаю, что эти 0 и 1 это пины на каждую обмотку?

Если да, то это не очень рациональное использование порта лпт. ведь шаговиком можно управлять всего по двум пинам - шаг и направление. Но не суть.

Это можно реализовать при помощи компонентов.

Если я все правильно понял, тогда можно будет продолжать.
htr
Новичок
Сообщения: 7
Зарегистрирован: 27 мар 2011, 16:15
Репутация: 0
Контактная информация:

Re: Настройка EMC2 на простейший драйвер управления ШД

Сообщение htr »

Да всё правильно, пины это управление обмотками, насчёт рациональности, для управления по двум пинам нужно делать более сложный контроллер, пока не хочу.
Это можно реализовать при помощи компонентов.
Этого я не понимаю.
Если я все правильно понял, тогда можно будет продолжать.
Если можно поподробней.
Спасибо.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Настройка EMC2 на простейший драйвер управления ШД

Сообщение Nick »

По компонентам сначала просмотри эту тему: http://cnc-club.ru/forum/viewtopic.php?f=15&t=790 .
Там было общее описание работы компонент. В твоем случае, нужно что-то типа этого:

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


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; }
Потом подгружаем этот компонент в файле 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
htr
Новичок
Сообщения: 7
Зарегистрирован: 27 мар 2011, 16:15
Репутация: 0
Контактная информация:

Re: Настройка EMC2 на простейший драйвер управления ШД

Сообщение htr »

Спасибо за ответ, только что мне с этим делать?
С английским очень плохо дружу.
Если можно расписать все как для чайника: открываем файл, вставляем код, сохраняем, компилируем, открываем emc2, заходим туда, выбираем то, и оп-ля функционирует.
Либо дайте вразумительную ссылку где для таких как я написано как компоненты делать...
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Настройка EMC2 на простейший драйвер управления ШД

Сообщение Nick »

Ну в общем, все написано тут: http://linuxcnc.org/docs/html/hal_comp.html, но по английски.

Завтра переведу основные моменты на великий и могучий. И добавлю комментариев.
jura

Re: Настройка EMC2 на простейший драйвер управления ШД

Сообщение jura »

Решился на EMC2.Вопрос:на vri-cnc есть схема простейшего контроллера на к155тм7,будет ли это вместе корректно работать?
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Настройка EMC2 на простейший драйвер управления ШД

Сообщение Nick »

А как он управляется? Хотя бы примерно.
Или дай прямую ссылочку на описание.

ЗЫ мне казалось, что самый простой контроллер - это 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; }
Описанный выше контроллер проще тем, что в контроллере даже логика не нужна. Но это занимает в два раза больше пинов LPT, которые у нас в дефиците, т.к. обычно помимо самих двигателей еще хочется подключить датчики и прочую ерунду :).
yura

Re: Настройка EMC2 на простейший драйвер управления ШД

Сообщение yura »

дело в том,что за неимением никокого опыта в программировании чипов спаял этот вариант.и моторы закрутились,с vri-cnc,так если я оставлю эту схему и буду использовать ЕMC2,то теоретически должно работать,если правильно настроить лтп,так?а как его правильно настроить под этот контроллер?(запустил с live-cd EMC2-НУ ОЧЕНЬ НРАВИТСЯ,ХОЧУ ОСВОИТЬ).У МЕНЯ ТОЛЬКО X,Y,Z БЕЗ КОНЦЕВИКОВ.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Настройка EMC2 на простейший драйвер управления ШД

Сообщение Nick »

Нужен протокол общения с контроллером. Есть ссылка на описание команд?
На сколько я помню, там вроде был не обычный step/dir...
YURA
Почётный участник
Почётный участник
Сообщения: 60
Зарегистрирован: 28 мар 2011, 11:40
Репутация: 0
Откуда: УКРАИНА,Закарпатье
Контактная информация:

Re: Настройка EMC2 на простейший драйвер управления ШД

Сообщение YURA »

ЭТО ЕГО СХЕМА
Вложения
image001.jpg (6503 просмотра) <a class='original' href='./download/file.php?id=1262&mode=view' target=_blank>Загрузить оригинал (45.73 КБ)</a>
image002.gif
image002.gif (8.27 КБ) 6503 просмотра
image003.gif
image003.gif (5.33 КБ) 6503 просмотра
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Настройка EMC2 на простейший драйвер управления ШД

Сообщение Nick »

Понятно, а что на него нужно посылать, какого вида команда?
ЗЫ что-то у меня vri-cnc не открывается...
YURA
Почётный участник
Почётный участник
Сообщения: 60
Зарегистрирован: 28 мар 2011, 11:40
Репутация: 0
Откуда: УКРАИНА,Закарпатье
Контактная информация:

Re: Настройка EMC2 на простейший драйвер управления ШД

Сообщение YURA »

А, потому я дал фото,у меня тоже не открывается,так бы я дал ссылку
Последний раз редактировалось Nick 28 мар 2011, 13:10, всего редактировалось 1 раз.
Причина: поменял регистр (root)
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Настройка EMC2 на простейший драйвер управления ШД

Сообщение Nick »

У них остался старый сайт http://cnc.4bb.ru надо там глянуть...
YURA
Почётный участник
Почётный участник
Сообщения: 60
Зарегистрирован: 28 мар 2011, 11:40
Репутация: 0
Откуда: УКРАИНА,Закарпатье
Контактная информация:

Re: Настройка EMC2 на простейший драйвер управления ШД

Сообщение YURA »

да утром открывал его,попробуем попозже
htr
Новичок
Сообщения: 7
Зарегистрирован: 27 мар 2011, 16:15
Репутация: 0
Контактная информация:

Re: Настройка EMC2 на простейший драйвер управления ШД

Сообщение htr »

Ну ждать терпения не было, решил другую систему попробовать (TurboCNC). Оказалась намного проще в настройке, всё заработало.
Хотелось всё же и на EMC2 запустить. ТОлько есть проблема с пониманием как это сделать. Выше был дан код, только что с ним делать?
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Настройка EMC2 на простейший драйвер управления ШД

Сообщение Nick »

Слушай, а то что на нижнем рисунке, это у тебя перед движками стоит?
Если да, то тогда можно всю остальную часть вообще выкинуть и подключить транзисторы прямо к LPT (ну лучше конечно не прямо, а через опторазвязку). Получится схема описанная выше.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Настройка EMC2 на простейший драйвер управления ШД

Сообщение Nick »

htr писал(а):Ну ждать терпения не было, решил другую систему попробовать (TurboCNC). Оказалась намного проще в настройке, всё заработало.
Хотелось всё же и на EMC2 запустить. ТОлько есть проблема с пониманием как это сделать. Выше был дан код, только что с ним делать?
Объясняю. Все это нужно запихать в компонент. Для этого:
  1. Сохраняем все что вверху в файл simple_stepper.comp.
  2. Устанавливаем пакет emc2-dev: sudo apt-get install emc2-dev
  3. Компилируем и устанавливаем компонент HAL при помощи comp: comp --install simple_stepper.comp
  4. Настраиваем станок для использования такого компонента, для этого редактируем .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
  5. И убираем строки типа
    net stepgen.0.step => parport.0.pin-12-out
    net stepgen.0.dir => parport.0.pin-12-out
  6. Запускаем, и пишем, какая вылазит ошибка :hehehe:
... Перевод статьи о компонентах по-тихоньку двигается
V0id
Почётный участник
Почётный участник
Сообщения: 99
Зарегистрирован: 18 ноя 2010, 20:37
Репутация: 0
Контактная информация:

Re: Настройка EMC2 на простейший драйвер управления ШД

Сообщение V0id »

root писал(а):Понятно, а что на него нужно посылать, какого вида команда?
ЗЫ что-то у меня vri-cnc не открывается...
Контроллер на ТМ7 устроен так что за 1 такт можно сделать 1 шаг одним движком.
И на самом деле контроллер реализован софтварно.
Соответственно софт и решает какую обмотку включать на каком двигателе.
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 на простейший драйвер управления ШД

Сообщение Nick »

хммм это не есть хорошо...

Интересно, он успеет понять команды, если я отправлю их одна за другой без дополнительных пауз?
Ответить

Вернуться в «LinuxCNC»