Конфигурация EMC2 LinuxCNC

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

Конфигурация EMC2 LinuxCNC

Сообщение Nick »

После того как Вы произвели установку EMC2, можно переходить к конфигурации.
Начнем с простого пути, использования утилиты Stepconf. Sterconf это графическая утилита для настройки EMC2 для различных станков. Конечно она не реализует все возможности EMC2, но подойдет для большинства станков со step-dir контроллерами управляемыми через lpt порт. Stepconf устанавливается вместе с EMC2 и его можно запустить из меню Приложения -> EMC2 -> Stepconf.
Это незавершенный раздел, Вы можете помочь в его оформлении.
Нужны исправления, комментарии. Публикуйте их в этой теме.

Содержание


Настройка EMC2 (325826 просмотров) <a class='original' href='./download/file.php?id=781&sid=c9b5e9cc79d8f9ca0396934722736671&mode=view' target=_blank>Загрузить оригинал (41.24 КБ)</a>
Настройка EMC2
Конфигурация ЕМС2 (325826 просмотров) <a class='original' href='./download/file.php?id=780&sid=c9b5e9cc79d8f9ca0396934722736671&mode=view' target=_blank>Загрузить оригинал (44.23 КБ)</a>
Конфигурация ЕМС2

Выбор конфигурации

В первом окне Stepconf есть выбор: создать новую конфигурацию или изменить старую. Выбираем создать новую. Также можно проставить галки напротив Create shortcut, чтобы в последствии запускать EMC2 с созданной конфигурацией в один клик.

Screenshot-EMC2 Stepper Mill Configuration-2.png (325826 просмотров) <a class='original' href='./download/file.php?id=782&sid=c9b5e9cc79d8f9ca0396934722736671&mode=view' target=_blank>Загрузить оригинал (95.31 КБ)</a>

Параметры станка, контроллера и быстродействия

Настройки станка
Вводим название станка, в документации говорится, что можно использовать заглавные и строчные буквы, цифры и знаки "-" и "_".
Выбираем конфигурацию осей. XYZ (Фрезер), XYZA (4-х осевой фрезер) или XZ (Токарный станок). Названия только для примера. Если у Вас двух осевой станок, то можете выбрать XYZ, и ось Z оставить не настроенной.
Единицы измерения станка: дюймы или миллиметры.

Настройки контроллера
Можно выбрать из набора предустановленных параметров если Ваш контроллер в список. Или настроить все самому.
Параметры Step time, Step space, Direction hold, Direction setup смотрите в документации к вашему контроллеру.

Настройки lpt
Если у Вас только один lpt, то можно ничего не трогать по умолчанию стоит установка стандартного адреса lpt порта.

Настройки быстродействия
Base period - это одна из основных величин быстродействия, она определяет максимальную скорость работы с контроллером. Она определяет так называемый heartbeat (сердцебиение системы в целом) от которого зависит время для генерации сингала Step. Фактически, чем меньше base period тем больше максимальная частота генерации шагов (например, при Base period = 30 000 ns максимальная частота генерации шагов равна 33333Гц, что при 200 шагах на оборот в режиме микрошага 1:8 дает максимум 20 оборотов в секунду).

Base period зависит от параметров компьютера. Правильно определить base period можно при помощи утилиты Latency test, она тоже входит в состав EMC2. Latency это задержка с которой компьютер может остановить процесс работы для обработки внешнего запроса. В нашем случае, запросом является периодичный "heartbeat" (стук сердца) на основе которого вычисляется нужное время для следующего шага. Для того, чтобы контроллер работал правильно и не пропускал шаги минимальный base period должен быть равным длительность direction setup+direction hold+step space+maximum latency.

Итак, запускаем Latency test, и пытаемся нагрузить компьютер разными задачами, чтобы наверняка получить максимальную задержку. Можно запустить проигрываться фильм, полазить по интернету, скопировать большой файл, перемещать окна. Через несколько минут смотрим значение Base thread Max jitter (максимальное дрожание base period) и вставляем это значение в соответствующую строку в Stepconf.

Onscreen prompt for tool change - уведомление о смене инструмента. Если эта опция включена, то EMC2 будет останавливаться и выдавать сообщение о смене инструмента, каждый раз, когда в управляющей программе будет встречаться код M6. Оставьте эту опцию включенной, только если Вы не собираетесь делать автоматическую смену инструмента.

Настройка LPT для EMC2 (325826 просмотров) <a class='original' href='./download/file.php?id=783&sid=c9b5e9cc79d8f9ca0396934722736671&mode=view' target=_blank>Загрузить оригинал (99.1 КБ)</a>
Настройка LPT для EMC2
Настройка LPT для EMC2 (325826 просмотров) <a class='original' href='./download/file.php?id=784&sid=c9b5e9cc79d8f9ca0396934722736671&mode=view' target=_blank>Загрузить оригинал (88.29 КБ)</a>
Настройка LPT для EMC2

Настройки пинов LPT

На этой странице мы можем настроить значения всех пинов параллельного порта.
Значения для этих настроек смотрите в документации к контроллеру.

Настройка осей станка в EMC2 LinuxCNC (325826 просмотров) <a class='original' href='./download/file.php?id=785&sid=c9b5e9cc79d8f9ca0396934722736671&mode=view' target=_blank>Загрузить оригинал (66.88 КБ)</a>
Настройка осей станка в EMC2 LinuxCNC
Проверка настроек осей LinuxCNC (325826 просмотров) <a class='original' href='./download/file.php?id=786&sid=c9b5e9cc79d8f9ca0396934722736671&mode=view' target=_blank>Загрузить оригинал (21.23 КБ)</a>
Проверка настроек осей LinuxCNC

Настройка осей станка

Далее настраиваем все оси станка:

Motor Steps Per Revolution - количество шагов двигателя на один оборот.

Driver Microstepping - настройка микрошага контроллера. Для микрошага 1:8 устанавливайте "8"

Pulley Ratio - значение редуктора, если между валом двигателя и ходовым винтом стоит редуктор установите передаточное число.

Leadscrew Pitch - шаг ходового винта. Можно поменять направление движения вдоль оси установив отрицательное значение шага винта.

Maximum Velocity - Максимальная скорость перемещения.

Maximum Acceleration - Максимальное ускорение по данной оси.

Home Location - положение начала оси. Это положение в котором станок остановится после поиска начала.

Table Travel - границы оси. Положение начала должно быть внутри table travel, причем оно не должно совпадать с границами оси.

Home Switch Location - Положение концевика начального положения. Если у Вас совмещены home switch и limit switch в одном концевике, то значение home location не должно быть равным home switch location иначе появится ошибка "joint limit error", т.е. станок не должен остановиться в точке срабатывания ограничительного концевика.

Home Search Velocity - скорость поиска начала оси. Если концевой датчик расположен рядом с концом оси это значение должно быть выбрано с учетом того, что станок должен будет успеть остановиться до того как он ударится о конец оси. Если концевик замыкается только когда ответная часть рядом с ним, то скорость должна быть выбрана таким образом, чтобы станок успел остановиться пока концевик не разомкнулся. Если станок движется в противоположную сторону от концевика при поиске начала установите отрицательную скорость.

Home Latch Direction - направление уточнения начала, после первоначальной установки начала, они уточняются на очень маленькой скорости. Если выбрана опция "Same" при повторном срабатывании концевика начала будут установлены, если "Opposite" станок будет медленно откатываться пока концевик не разомкнется.

Ниже будут приведены вычисления параметров оси:
  • Time to accelerate to max speed - время ускорения до максимальной скорости (время остановки)
  • Distance to accelerate to max speed - дистанция ускорения до максимальной скорости (дистанция остановки)
  • Pulse rate at max speed - частота сигналов на максимальной скорости
  • Axis SCALE - количество шагов в одной единице измерения шагов/мм (шагов/дюйм)
После введения всех параметров ось можно протестировать. Для этого нажимаем Test this axis.

Настройка управления шпинделем в EMC2 (325826 просмотров) <a class='original' href='./download/file.php?id=787&sid=c9b5e9cc79d8f9ca0396934722736671&mode=view' target=_blank>Загрузить оригинал (32.67 КБ)</a>
Настройка управления шпинделем в EMC2

Настройка шпинделя

Если шпиндель регулируется при помощи ШИМ:
Устанавливаем Carrier frequency (Несущая частота) согласно инструкции к Вашему контроллеру шпинделя.
Устанавливаем Speed 1, Speed 2, PWM 1, PWM 2 - значения скоростей в оборотах в минуту при заданном значении ШИМ. Эту информацию можно найти в инструкции к Вашему контроллеру, либо попробовать определить самостоятельно. Этими параметрами определяется линейная зависимость скорости шпинделя от значения PWM.

Дополнительные настройки EMC2 (325826 просмотров) <a class='original' href='./download/file.php?id=788&sid=c9b5e9cc79d8f9ca0396934722736671&mode=view' target=_blank>Загрузить оригинал (70.45 КБ)</a>
Дополнительные настройки EMC2

Настройка дополнительного интерфейса

  • Include Halui - Добавить пользовательскую панель Halui.
  • Include PyVCP GUI panel - Добавить панель pyVCP.
    См. статью по настройке и применению pyVCP в EMC2
  • Include ClassicLadder PLC - Добавить программируемый контроллер на лестничной логике (Programmable Ladder Logic Controller).

Окончание настройки EMC2 (325826 просмотров) <a class='original' href='./download/file.php?id=789&sid=c9b5e9cc79d8f9ca0396934722736671&mode=view' target=_blank>Загрузить оригинал (74.23 КБ)</a>
Окончание настройки EMC2

Заключение


См. также

Нахождение максимальной скорости и ускорения станка
PyVCP дополнительный интерфейс для EMC2 LinuxCNC
Аватара пользователя
Calambuuur
Опытный
Сообщения: 124
Зарегистрирован: 18 май 2012, 23:38
Репутация: 2
Откуда: Я родом из детства : "Кто на Харькив"

Re: Конфигурация EMC2 LinuxCNC

Сообщение Calambuuur »

Ну вот и результат. Выставил макс. V=30 и сделал новые настройки базовые и осей все прилагается. Жалко, что импульсник не тянет как обещали V=36. моторчики шуршат, немного греются, коробочка холодная ( на токе 100% не закипала). Кому интересно, смотрим. Может кому поможет (я неделю искал подходящее в настройках
мой_новый_станок.ini
(2.07 КБ) 1084 скачивания
мой_новый_станок.hal
(3.77 КБ) 1000 скачиваний
Снимок.png (2530 просмотров) <a class='original' href='./download/file.php?id=20743&sid=c9b5e9cc79d8f9ca0396934722736671&mode=view' target=_blank>Загрузить оригинал (370.24 КБ)</a>
Снимок-1.png (2530 просмотров) <a class='original' href='./download/file.php?id=20744&sid=c9b5e9cc79d8f9ca0396934722736671&mode=view' target=_blank>Загрузить оригинал (423.57 КБ)</a>
Снимок-2.png (2530 просмотров) <a class='original' href='./download/file.php?id=20745&sid=c9b5e9cc79d8f9ca0396934722736671&mode=view' target=_blank>Загрузить оригинал (424.16 КБ)</a>
). Установка свитчей:
Microstep = 16 (SW1=ON, SW2=OFF)
Decay Mode = 50% (SW3=Of, SW4=JN)
Output Current = 75% (SW5=Off, SW6=On)
Один ум хорошо а два и более лучше. "Я так мысленно думаю" и моя "Домососедка", которая пользуется "обезбеливателем" - и радуется, "пусть c cnc, чем без обезбеливателя".(Каламбууур).
Аватара пользователя
Ворон226
Мастер
Сообщения: 1922
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: Конфигурация EMC2 LinuxCNC

Сообщение Ворон226 »

Столкнулся со следущей проблемой:

Есть станок.
У станка нет датчиков home (не нужны они).
Выключение станка делаю командой mdi и М-кодом на выключение:

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

#!/bin/sh
sudo shutdown -h now 
Включаю станок. Работаю на нем.
А при нажатии на кнопку стоп (обращение к команде mdi) получаю в терминале сообщение:

Не могу исполнить команду MDI если не найдены начала.

И как это обойти?
Хочешь быть счастливым? Будь им!
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Конфигурация EMC2 LinuxCNC

Сообщение nkp »

http://cnc-club.ru/forum/viewtopic.php? ... 1232#p1232
дал ссылку а потом только подумал :hehehe: (как обычно...))
то есть у тебя это уже прописано :thinking:
может просто в Axis твою команду на кнопочку повесить? (ну в смысле напрямую - не через mdi)
Аватара пользователя
Ворон226
Мастер
Сообщения: 1922
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: Конфигурация EMC2 LinuxCNC

Сообщение Ворон226 »

У меня myGUI. Может команду прописать в Glade?
Хочешь быть счастливым? Будь им!
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Конфигурация EMC2 LinuxCNC

Сообщение nkp »

мне кажется так "напрямую" там не пройдет ...
а вот в в скрипте добавить функцию - в ней выключение,а функцию на кнопку gui...
сейчас попробуем...
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Конфигурация EMC2 LinuxCNC

Сообщение nkp »

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

h = Popen(['путь_к_скрипту'], shell=True)
это в функцию в скрипт
где можно твои файлы посмотреть?
Аватара пользователя
Ворон226
Мастер
Сообщения: 1922
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: Конфигурация EMC2 LinuxCNC

Сообщение Ворон226 »

nkp писал(а):где можно твои файлы посмотреть?
Эх... Там я уже столько понаписал! Со стороны, думаю, не разгрести...
У меня есть кнопочка, прописанная в mode.hal

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

net mdi1    mygui.hal_button3    halui.mdi-command-00
Всё остальное не имеет отношение к выключению станка (но, конечно, могу выложить всё).

Команда M102 прописана в предыдущем сообщении.

В MyGUI.ini эта команда тоже прописана стандартно:

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

[HALUI]
MDI_COMMAND = M102
Я так понимаю, нужно написать отдельный скрипт по выключению станка и компьютера?
Последний раз редактировалось Ворон226 17 ноя 2013, 15:32, всего редактировалось 1 раз.
Хочешь быть счастливым? Будь им!
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Конфигурация EMC2 LinuxCNC

Сообщение nkp »

да , еще добавить строку :

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

from subprocess import *
если еще в скрипт этот модуль не был импортирован...
Аватара пользователя
Ворон226
Мастер
Сообщения: 1922
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: Конфигурация EMC2 LinuxCNC

Сообщение Ворон226 »

О каком скрипте речь? Тот, что назван M102? Или некий отдельный скрипт?
Хочешь быть счастливым? Будь им!
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Конфигурация EMC2 LinuxCNC

Сообщение nkp »

но mdi же не срабатывает...
вот я и предложил вышеуказанную строку непосредственно повесить на кнопку
то есть:
нажимаем на кнопку в GUI - она вызывает функцию :

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

def shutdown ():
	h = Popen(['/home/nkp/sh.sh'], shell=True)
(ну тут путь к файлу "мой")
mdi тут уже не при чем , тут питон выполняет твой скрипт ,который:

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

#!/bin/sh
sudo shutdown -h now
Последний раз редактировалось nkp 17 ноя 2013, 15:42, всего редактировалось 1 раз.
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Конфигурация EMC2 LinuxCNC

Сообщение nkp »

Ворон226 писал(а):О каком скрипте речь
основной скрипт gui - не знаю как он у тебя называется - может mygui
зы
лежит : /папка_установл_lcnc/bin/
Аватара пользователя
Ворон226
Мастер
Сообщения: 1922
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: Конфигурация EMC2 LinuxCNC

Сообщение Ворон226 »

Да-да. Файл mygui в папке sun/linuxcnc-dev/bin

А вот и он сам:

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

#!/usr/bin/python

import pygtk
pygtk.require("2.0")
import gtk
import gladevcp.makepins
from gladevcp.gladebuilder import GladeBuilder
import hal

import sys,os
BASE = os.path.abspath(os.path.join(os.path.dirname(sys.argv[0]), ".."))
datadir = os.path.join(BASE, "share", "linuxcnc")
xmlname = os.path.join(datadir,"mygui.glade")

class Mygui(object):

	def on_window1_destroy(self, widget, data=None):
		print "quit++"
		gtk.main_quit()
	def __init__(self):
		self.builder = gtk.Builder()
		self.builder.add_from_file(xmlname)
		halcomp = hal.component("mygui")
		self.builder.connect_signals(self)
		self.window = self.builder.get_object("window1")
		self.window.show()
		self.window.fullscreen()
		panel = gladevcp.makepins.GladePanel( halcomp, xmlname, self.builder, None)


if __name__ == "__main__":
	app = Mygui()
	res = os.spawnvp(os.P_WAIT, "halcmd", ["halcmd", "-f", "/home/sun/linuxcnc-dev/configs/MyGUI/mode.hal"])
	if res: raise SystemExit, res
	gtk.main() 
Хочешь быть счастливым? Будь им!
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Конфигурация EMC2 LinuxCNC

Сообщение Nick »

nkp писал(а):нажимаем на кнопку в GUI - она вызывает функцию :

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

def shutdown ():
   h = Popen(['/home/nkp/sh.sh'], shell=True)
(ну тут путь к файлу "мой")
mdi тут уже не при чем , тут питон выполняет твой скрипт ,который:

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

#!/bin/sh
sudo shutdown -h now
А почему сразу не сделать:

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

h = Popen(['sudo shutdown -h now'], shell=True)
nkp писал(а):дал ссылку а потом только подумал (как обычно...))
то есть у тебя это уже прописано
А почему в итоге не работали mdi-commands?
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Конфигурация EMC2 LinuxCNC

Сообщение nkp »

Nick писал(а):А почему в итоге не работали mdi-commands?
по моему файл лежал не по прописанному пути
kernel
Опытный
Сообщения: 158
Зарегистрирован: 12 мар 2011, 15:48
Репутация: 17
Откуда: Красноярск
Контактная информация:

Re: Конфигурация EMC2 LinuxCNC

Сообщение kernel »

Народ, подскажите, пожалуйста, в LinuxCNC по умолчанию никакая компенсация люфтов или прочее, что может влиять на размеры не включено? Понять не могу, делаю построчно проходы с шагом примерно 0.2 (шаг не сильно влияет на этот глюк) и каждые две строки прохода какой-то пропуск по Y непонятный происходит. И видно, что стабильно после каждых двух строк (2*0.2) одинаковый зазор появляется. Привод на этой оси - трапеция 12x3. Причем до этого попадался мне станочек, который тоже на оси Y, но с ремнями, вел себя так же в LinuxCNC. Т.е. ощущение, будто именно EMC вносит какие-то коррективы. И еще заметил, такое впечатление, что эти непонятные "пропуски" зависят от размера изделия, т.е. на мелком квадратике, например, 30x30 мм может не появится пропуск, а на квадрате 250x250 точно появится и с равным шагом.
Пробовал менять в ini количество шагов на единицу на целое число (думал, как-то дроби в числах влияют на округление) - помогло. Причем пробовал как четное, так и нечетное число ставить.
Сам станок точно без люфтов (и под Mach нормально работал), когда был другой станок на ремнях, с ним абсолютно те же проблемы были, причем так же через два перехода по Y. Сейчас эта ось работает на микрошаге /32, но пробовал вплоть до полного шага менять, глюк не пропадал.
G-код получается достаточно большой по объему.
Что может быть?
Последний раз редактировалось kernel 30 ноя 2013, 19:10, всего редактировалось 1 раз.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Конфигурация EMC2 LinuxCNC

Сообщение Nick »

Фото обработки покажи... Как обрабатываешь зигзагами? Просто так LinuxCNC ничего не добавляет...
kernel
Опытный
Сообщения: 158
Зарегистрирован: 12 мар 2011, 15:48
Репутация: 17
Откуда: Красноярск
Контактная информация:

Re: Конфигурация EMC2 LinuxCNC

Сообщение kernel »

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

Re: Конфигурация EMC2 LinuxCNC

Сообщение Nick »

Может проблема в жесткости станка, или бошка криво стоит и на обратном проходе делает ступеньку. Плюс фреза режет в другую сторону - это тоже может сказаться на обработке.
serbel
Новичок
Сообщения: 6
Зарегистрирован: 15 дек 2013, 12:08
Репутация: 0
Контактная информация:

Re: Конфигурация EMC2 LinuxCNC

Сообщение serbel »

День добрый. Есть проблема EMC2.
При резке дает припуск по всем осям. От размера детали величина припуска не зависит он остается постоянный.
При резке отверстий межосевые расстояния выдерживает точно. G-код писал руками (квадрат). Получал из разных программ - результат один. При перемещении в ручном режиме все нормально-Что на экране то и проходит.
Может есть какой-то пунктик в настройках "типа" черновой обработки или .... . Ранее резал в TurboCnc на этом-же железе все было нормально. Старые G-коды (подготовленные ранее для TurboCnc) Тоже режет с припуском.
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Конфигурация EMC2 LinuxCNC

Сообщение nkp »

serbel писал(а):по всем осям
какой станок ? сколько осей? выложи пример кода который неправильно режет...
укажи , сколько в реалии получается...
надо же от чего то оттолкнуться ;)
Ответить

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