LinuxCNC

Материал из Wiki CNC
Перейти к навигации Перейти к поиску

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

В LinuxCNC могут быть два типа оси линейная и угловая. TYPE = LINEAR Линейная ось
TYPE = ANGULAT Угловая (поворотная ось)

HOME

MAX_VELOCITY

Максимальная скорость перемещений данной оси (мм\сек).
Пример: Максимальная скорость перемещений 100 мм\сек MAX_VELOCITY = 100.0


MAX_ACCELERATION

Максимальное ускорение данной оси (мм\сек^2).
Пример: Максимальное ускорение 600 мм\сек^2 MAX_ACCELERATION = 600.0

STEPGEN_MAXACCEL

Данные значение должно быть на 1-10% больше по сравнению с параметром MAX_ACCELERATION. Если вы используете параметр BACKLASH (компенсацию люфта), то данный параметр необходимо увеличить в 1,5 - 2 раза по сравнению с параметром MAX_ACCELERATION.

SCALE

Параметр SCALE отвечает за количество импульсов на единицу перемещения. Другими словами, данный параметр отвечает за соответствие реального перемещения станка программному. Для того, чтобы посчитать количество импульсов на мм, необходимо воспользоваться формулой.

FERROR

Максимальное допустимое отклонение от перемещений станка (в мм). Если рассогласование между реальным и заданным положением превысит значение FERROR, то контроллер отключится. Максимально допустимое отклонение FERROR может достигаться при скорости [TRAJ] MAX_VELOCITY и при снижении скорости ошибка будет стремиться к MIN_FERROR.

MIN_FERROR

Минимальное допустимое отклонение от заданного перемещения (в мм). Если рассогласование между реальным и заданным положением превысит значение MIN_FERROR, то контроллер отключится. Минимально допустимое отклонение MIN_FERROR при низкой скорости. При росте скорости, пропорционально будет увеличиваться ошибка рассогласования и может достигать FERROR при скорости MAX_VELOCITY.

MIN_LIMIT

Минимальные машинные координаты для перемещения (мм).

MAX_LIMIT

Максимальные координаты станка для перемещения (мм).

HOME_OFFSET

Смещение рабочего поля станка относительно датчика домашнего положения для данной оси.

HOME_SEARCH_VEL

Скорость возврата в домашнее положение по датчикам (мм\сек).
Примечание: Для того, чтобы изменить направление поиска домашнего положения, необходимо поменять знак.
Пример: HOME_SEARCH_VEL = -150.00000

Примечание: При указании параметра HOME_SEARCH_VEL = 0.0, ось не будет возвращаться в домашнее положение (если в конструкции станка, не предусмотрен датчик домашнего положения).

HOME_LATCH_VEL

Скорость уточнения (точной калибровки) датчиков домашнего положения (мм\сек).

HOME_IGNORE_LIMITS

HOME_SEQUENCE

Рабочий интерфейс / 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


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

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

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

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

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

F.A.Q.

Как изменить *.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

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