LinuxCNC: различия между версиями

Материал из Wiki CNC
Перейти к навигации Перейти к поиску
(Описание)
Строка 21: Строка 21:
 
Ниже перечислены все, необходимые параметры для настройки вашего станка под управлением LPT (в руководстве используется контроллер [https://cnc-tehnologi.ru/chpu-kontrollery-i-perekhodniki/kontroller-lpt-dptr-1-03 LPT-DPTR 1.03])
 
Ниже перечислены все, необходимые параметры для настройки вашего станка под управлением LPT (в руководстве используется контроллер [https://cnc-tehnologi.ru/chpu-kontrollery-i-perekhodniki/kontroller-lpt-dptr-1-03 LPT-DPTR 1.03])
  
 +
=Редактирование *.hal файла=
 
==Параметры порта==
 
==Параметры порта==
 
Для того, чтобы увидеть установленные в системный блок PCI устройства нужно открыть эмулятор терминала и набрать команду:<br>
 
Для того, чтобы увидеть установленные в системный блок PCI устройства нужно открыть эмулятор терминала и набрать команду:<br>
Строка 30: Строка 31:
  
 
В открытом файле Cutter_ST.hal изменить строку '''loadrt hal_parport cfg=”0x378 out”''' на '''loadrt hal_parport cfg=”0xd000 out”''', где '''0xd000''' адрес порта pci-платы.  
 
В открытом файле Cutter_ST.hal изменить строку '''loadrt hal_parport cfg=”0x378 out”''' на '''loadrt hal_parport cfg=”0xd000 out”''', где '''0xd000''' адрес порта pci-платы.  
 +
 +
=Редактирование *.ini файла=
 +
*.ini - файл конфигурации, в котором хранятся основные настройки конфигурации LinuxCNC под конкретное оборудование. Данный файл располагается в директории: '''home/user/linuxcnc/configs/ST.ini''', где:<br>
 +
'''user''' - имя пользователя на вашем ПК<br>
 +
'''ST*.ini''' - название вашей конфигурации<br>
 +
 +
Ниже приведен стандартный файл конфигурации для станка Cutter ST:
 +
<code>
 +
<nowiki>
 +
#Generated by stepconf 1.1 at Tue May 21 18:11:40 2019<br>
 +
#Все изменения в этом файле будут перезаписаны<br>
 +
#при следующем запуске stepconf<br>
 +
</nowiki>
 +
 +
[EMC]<br>
 +
MACHINE = ST<br>
 +
DEBUG = 0<br>
 +
 +
[DISPLAY]<br>
 +
DISPLAY = axis<br>
 +
EDITOR = gedit<br>
 +
POSITION_OFFSET = RELATIVE<br>
 +
POSITION_FEEDBACK = ACTUAL<br>
 +
ARCDIVISION = 64<br>
 +
GRIDS = 10mm 20mm 50mm 100mm 1in 2in 5in 10in<br>
 +
MAX_FEED_OVERRIDE = 2<br>
 +
MIN_SPINDLE_OVERRIDE = 0.5<br>
 +
MAX_SPINDLE_OVERRIDE = 1<br>
 +
DEFAULT_LINEAR_VELOCITY = 5.00<br>
 +
MIN_LINEAR_VELOCITY = 0<br>
 +
MAX_LINEAR_VELOCITY = 85.00<br>
 +
INTRO_GRAPHIC = linuxcnc.gif<br>
 +
INTRO_TIME = 5<br>
 +
PROGRAM_PREFIX = /home/enderukov/linuxcnc/nc_files<br>
 +
INCREMENTS = 5mm 1mm .5mm .1mm .05mm .01mm .005mm<br>
 +
 +
 +
[FILTER]<br>
 +
PROGRAM_EXTENSION = .png,.gif,.jpg Greyscale Depth Image<br>
 +
PROGRAM_EXTENSION = .py Python Script<br>
 +
png = image-to-gcode<br>
 +
gif = image-to-gcode<br>
 +
jpg = image-to-gcode<br>
 +
py = python<br>
 +
 +
[TASK]<br>
 +
TASK = milltask<br>
 +
CYCLE_TIME = 0.005<br>
 +
 +
[RS274NGC]<br>
 +
PARAMETER_FILE = linuxcnc.var<br>
 +
 +
[EMCMOT]<br>
 +
EMCMOT = motmod<br>
 +
COMM_TIMEOUT = 1.0<br>
 +
COMM_WAIT = 0.010<br>
 +
BASE_PERIOD = 100000<br>
 +
SERVO_PERIOD = 1000000<br>
 +
 +
[HAL]<br>
 +
HALFILE = ST.hal<br>
 +
HALFILE = custom.hal<br>
 +
POSTGUI_HALFILE = custom_postgui.hal<br>
 +
 +
[TRAJ]<br>
 +
AXES = 3<br>
 +
COORDINATES = X Y Z<br>
 +
LINEAR_UNITS = mm<br>
 +
ANGULAR_UNITS = degree<br>
 +
CYCLE_TIME = 0.010<br>
 +
DEFAULT_VELOCITY = 5.00<br>
 +
MAX_VELOCITY = 100.00<br>
 +
 +
[EMCIO]<br>
 +
EMCIO = io<br>
 +
CYCLE_TIME = 0.100<br>
 +
TOOL_TABLE = tool.tbl<br>
 +
 +
[AXIS_0]<br>
 +
TYPE = LINEAR<br>
 +
HOME = 0.0<br>
 +
MAX_VELOCITY = 100.0<br>
 +
MAX_ACCELERATION = 600.0<br>
 +
STEPGEN_MAXACCEL = 750.0<br>
 +
SCALE = 80.0<br>
 +
FERROR = 1<br>
 +
MIN_FERROR = .25<br>
 +
MIN_LIMIT = -0.001<br>
 +
MAX_LIMIT = 520.0<br>
 +
 +
HOME_OFFSET = 0.000000<br>
 +
HOME_SEARCH_VEL = 15.000000<br>
 +
HOME_LATCH_VEL = -1.500000<br>
 +
HOME_IGNORE_LIMITS = YES<br>
 +
HOME_SEQUENCE = 1<br>
 +
 +
[AXIS_1]<br>
 +
TYPE = LINEAR<br>
 +
HOME = 0.0<br>
 +
MAX_VELOCITY = 100.0<br>
 +
MAX_ACCELERATION = 800.0<br>
 +
STEPGEN_MAXACCEL = 1000.0<br>
 +
SCALE = 80.0<br>
 +
FERROR = 1<br>
 +
MIN_FERROR = .25<br>
 +
MIN_LIMIT = -0.001<br>
 +
MAX_LIMIT = 520.0<br>
 +
 +
HOME_OFFSET = 0.000000<br>
 +
HOME_SEARCH_VEL = -15.000000<br>
 +
HOME_LATCH_VEL = 1.500000<br>
 +
HOME_IGNORE_LIMITS = YES<br>
 +
HOME_SEQUENCE = 2<br>
 +
 +
[AXIS_2]<br>
 +
TYPE = LINEAR<br>
 +
HOME = 0.0<br>
 +
MAX_VELOCITY = 60.0<br>
 +
MAX_ACCELERATION = 800.0<br>
 +
STEPGEN_MAXACCEL = 1000.0<br>
 +
SCALE = 160.0<br>
 +
FERROR = 1<br>
 +
MIN_FERROR = .25<br>
 +
MIN_LIMIT = -250.0<br>
 +
MAX_LIMIT = 0.001<br>
 +
 +
HOME_OFFSET = 0.000000<br>
 +
HOME_SEARCH_VEL = -15.000000<br>
 +
HOME_LATCH_VEL = 1.500000<br>
 +
HOME_IGNORE_LIMITS = NO<br>
 +
HOME_SEQUENCE = 0<br>
 +
</code><br>
 +
Итак, давайте рассмотрим основные параметры, которые нам требуются.<br>
 +
 +
==Группа [DISPLAY]==
 +
===DISPLAY===
 +
===DEFAULT_LINEAR_VELOCITY===
 +
===MAX_LINEAR_VELOCITY===
 +
==Группа [TRAJ]==
 +
==Группа [AXIS_*]==
 +
===TYPE===
 +
===HOME===
 +
===MAX_VELOCITY===
 +
===MAX_ACCELERATION===
 +
 +
 +
 +
==Рабочий интерфейс / DISPLAY==
  
 
==Scale (Количество импульсов на мм)==
 
==Scale (Количество импульсов на мм)==
Строка 38: Строка 187:
  
 
==Скорости и ускорения==
 
==Скорости и ускорения==
 +
Параметры скорости и ускорения станка хранятся в *.ini файле. Давайте рассмотрим листинг файла детальнее. Мы можем отметить, что параметры разделены на подгруппы AXIS_*. Каждая группа отвечает за свою ось, а именно: <br>
 +
* [AXIS_0] - X Axis
 +
* [AXIS_1] - Y Axis
 +
* [AXIS_2] - Z Axis
 +
* [AXIS_3] - A Axis<br>
 +
 +
Таким образом, для того, чтобы изменить параметры оси X мы должны изменить параметры группы [AXIS_0].
 +
<code>[AXIS_0]<br>
 +
TYPE = LINEAR<br>
 +
HOME = 0.0<br>
 +
MAX_VELOCITY = 100.0<br>
 +
MAX_ACCELERATION = 600.0<br>
 +
STEPGEN_MAXACCEL = 750.0<br>
 +
SCALE = 80.0<br>
 +
FERROR = 1<br>
 +
MIN_FERROR = .25<br>
 +
MIN_LIMIT = -0.001<br>
 +
MAX_LIMIT = 520.0<br>
 +
 +
HOME_OFFSET = 0.000000<br>
 +
HOME_SEARCH_VEL = 15.000000<br>
 +
HOME_LATCH_VEL = -1.500000<br>
 +
HOME_IGNORE_LIMITS = YES<br>
 +
HOME_SEQUENCE = 1<br>
 +
 +
 +
</code>
 
==Направление движения==
 
==Направление движения==
 
==Датчики домашнего положения==
 
==Датчики домашнего положения==

Версия 10:11, 23 мая 2019

LinuxCNC (EMC2) - программное обеспечение для управления оборудованием с ЧПУ, созданное на базе Linux.

Описание

В данном руководстве описан процесс установки, настройки и работы с системой управления ЧПУ LinuxCNC. Главный акцент в руководстве сделан на интерфейс Craftex, созданный компанией CNC-Technology. Интерфейс Craftex, разработан для удобства работы. Целью разработчиков был минимально-достаточный, интуитивно понятный пользователю интерфейс.

Настройка

В LinuxCNC настройка системы под заданное оборудование, происходит отлично от стандартного графического интерфейса (Mach3 или NC-Studio). Большинство необходимых параметров задаются внесением изменений в текстовые конфигурационные файлы.

Примечание: В составе LinuxCNC есть приложение с графическим интерфейсом пользователя для настройки конфигурации станка (Stepconf), однако, как показывает практика некоторые изменения приходится вносить в конфигурационные файлы вручную. Именно поэтому в данном руководстве вся настройка и внесение изменений происходят через *.hal и *.ini файлы.

Что же такое *.hal и *.ini файлы? Давайте обратимся к теории.

hal - Hardware Abstraction Layer (Слой аппаратных абстракций) - конфигурационный файл Linux, отвечающий за связь аппаратной и программной части станка.
К примеру в данном файле содержится информация: адрес устройства ввода-вывода (PCI-LPT или другой контроллер), назначение портов ввода\вывода функциям системы и др.

ini - файл конфигурации, содержащий настройки системы. К примеру в данном файле содержится информация: скорости, ускорения, количество импульсов на мм, скорость поиска домашнего положения, пределы перемещений и др.

Ниже перечислены все, необходимые параметры для настройки вашего станка под управлением LPT (в руководстве используется контроллер LPT-DPTR 1.03)

Редактирование *.hal файла

Параметры порта

Для того, чтобы увидеть установленные в системный блок PCI устройства нужно открыть эмулятор терминала и набрать команду:
lspci –vv
В командной строке отобразятся все устройства, доступные операционной системе для работы. Среди них необходимо найти Paralell controller. Необходимый нам Region 0, адрес данного устройства c000.

Данный адрес необходимо указать в *.hal файле конфигурации (См. Подробнее Приложение: Как изменить *.hal или *.ini файл):
linuxcnc/configs/Cutter_ST/ST.hal

В открытом файле Cutter_ST.hal изменить строку loadrt hal_parport cfg=”0x378 out” на loadrt hal_parport cfg=”0xd000 out”, где 0xd000 адрес порта pci-платы.

Редактирование *.ini файла

  • .ini - файл конфигурации, в котором хранятся основные настройки конфигурации LinuxCNC под конкретное оборудование. Данный файл располагается в директории: home/user/linuxcnc/configs/ST.ini, где:

user - имя пользователя на вашем ПК
ST*.ini - название вашей конфигурации

Ниже приведен стандартный файл конфигурации для станка Cutter ST: #Generated by stepconf 1.1 at Tue May 21 18:11:40 2019<br> #Все изменения в этом файле будут перезаписаны<br> #при следующем запуске stepconf<br>

[EMC]
MACHINE = ST
DEBUG = 0

[DISPLAY]
DISPLAY = axis
EDITOR = gedit
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
ARCDIVISION = 64
GRIDS = 10mm 20mm 50mm 100mm 1in 2in 5in 10in
MAX_FEED_OVERRIDE = 2
MIN_SPINDLE_OVERRIDE = 0.5
MAX_SPINDLE_OVERRIDE = 1
DEFAULT_LINEAR_VELOCITY = 5.00
MIN_LINEAR_VELOCITY = 0
MAX_LINEAR_VELOCITY = 85.00
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
PROGRAM_PREFIX = /home/enderukov/linuxcnc/nc_files
INCREMENTS = 5mm 1mm .5mm .1mm .05mm .01mm .005mm


[FILTER]
PROGRAM_EXTENSION = .png,.gif,.jpg Greyscale Depth Image
PROGRAM_EXTENSION = .py Python Script
png = image-to-gcode
gif = image-to-gcode
jpg = image-to-gcode
py = python

[TASK]
TASK = milltask
CYCLE_TIME = 0.005

[RS274NGC]
PARAMETER_FILE = linuxcnc.var

[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
COMM_WAIT = 0.010
BASE_PERIOD = 100000
SERVO_PERIOD = 1000000

[HAL]
HALFILE = ST.hal
HALFILE = custom.hal
POSTGUI_HALFILE = custom_postgui.hal

[TRAJ]
AXES = 3
COORDINATES = X Y Z
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
CYCLE_TIME = 0.010
DEFAULT_VELOCITY = 5.00
MAX_VELOCITY = 100.00

[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = tool.tbl

[AXIS_0]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 100.0
MAX_ACCELERATION = 600.0
STEPGEN_MAXACCEL = 750.0
SCALE = 80.0
FERROR = 1
MIN_FERROR = .25
MIN_LIMIT = -0.001
MAX_LIMIT = 520.0

HOME_OFFSET = 0.000000
HOME_SEARCH_VEL = 15.000000
HOME_LATCH_VEL = -1.500000
HOME_IGNORE_LIMITS = YES
HOME_SEQUENCE = 1

[AXIS_1]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 100.0
MAX_ACCELERATION = 800.0
STEPGEN_MAXACCEL = 1000.0
SCALE = 80.0
FERROR = 1
MIN_FERROR = .25
MIN_LIMIT = -0.001
MAX_LIMIT = 520.0

HOME_OFFSET = 0.000000
HOME_SEARCH_VEL = -15.000000
HOME_LATCH_VEL = 1.500000
HOME_IGNORE_LIMITS = YES
HOME_SEQUENCE = 2

[AXIS_2]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 60.0
MAX_ACCELERATION = 800.0
STEPGEN_MAXACCEL = 1000.0
SCALE = 160.0
FERROR = 1
MIN_FERROR = .25
MIN_LIMIT = -250.0
MAX_LIMIT = 0.001

HOME_OFFSET = 0.000000
HOME_SEARCH_VEL = -15.000000
HOME_LATCH_VEL = 1.500000
HOME_IGNORE_LIMITS = NO
HOME_SEQUENCE = 0

Итак, давайте рассмотрим основные параметры, которые нам требуются.

Группа [DISPLAY]

DISPLAY

DEFAULT_LINEAR_VELOCITY

MAX_LINEAR_VELOCITY

Группа [TRAJ]

Группа [AXIS_*]

TYPE

HOME

MAX_VELOCITY

MAX_ACCELERATION

Рабочий интерфейс / DISPLAY

Scale (Количество импульсов на мм)

Параметр Scale отвечает за необходимое количество импульсов на 1 мм. Для того, чтобы рассчитать количество импульсов для вашего станка, обратитесь к руководству (Как рассчитать количество импульсов на мм).

Для того, что изменить параметр Scale для каждой из осей, необходимо внести изменения в конфигурационный файл *.ini (См. Приложение как изменить конфигурационный файл)


Скорости и ускорения

Параметры скорости и ускорения станка хранятся в *.ini файле. Давайте рассмотрим листинг файла детальнее. Мы можем отметить, что параметры разделены на подгруппы AXIS_*. Каждая группа отвечает за свою ось, а именно:

  • [AXIS_0] - X Axis
  • [AXIS_1] - Y Axis
  • [AXIS_2] - Z Axis
  • [AXIS_3] - A Axis

Таким образом, для того, чтобы изменить параметры оси X мы должны изменить параметры группы [AXIS_0]. [AXIS_0]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 100.0
MAX_ACCELERATION = 600.0
STEPGEN_MAXACCEL = 750.0
SCALE = 80.0
FERROR = 1
MIN_FERROR = .25
MIN_LIMIT = -0.001
MAX_LIMIT = 520.0

HOME_OFFSET = 0.000000
HOME_SEARCH_VEL = 15.000000
HOME_LATCH_VEL = -1.500000
HOME_IGNORE_LIMITS = YES
HOME_SEQUENCE = 1


Направление движения

Датчики домашнего положения

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

Направление поиска домашнего положения

Ограничение рабочего поля

Приложения

Как изменить *.hal или *.ini файл

LinuxCNC не имеет привычного интерфейса пользователя для настройки параметров работы системы. Большинство необходимых параметров изменяются с помощью двух текстовых файлов *.hal и *.ini. Данные файлы расположены в директории:
Домашний каталог/limuxcnc/config/Cutter_ST/Cutter_ST.hal

Примечание: В данном случае конфигурация создана для станка Cutter ST, если у вас станок другой модели или вы создаете конфигурацию под собственное оборудование, то каталог Cutter_ST будет называться в соответствии с вашей конфигурацией.

Для того, чтобы изменить параметры системы в режиме супер-пользователя воспользуемся эмулятором терминала.

  • Перейдем в каталог с конфигурацией с помощью команды:

cd linuxcnc/config/Cutter_ST

  • Откроем необходимый файл с помощью текстового редактора mousepad.

Пример как открыть для редактирования *.hal файл:

sudo mousepad ST.hal

Пример как открыть для редактирования *.ini файл:

sudo mousepad ST.ini

  • После ввода пароля пользователя откроется окно редактора.