1. The INI File Components
Типичный INI-файл имеет довольно простую структуру, которая включает в себя:
-
комментарии
-
разделы
-
переменные
Каждый из этих элементов разделен на отдельные строки. Каждый конец строки или символ новой строки создает новый элемент.
1.1. Comments
Строка комментария начинается с ; или символа #. Когда программа чтения INI видит любую из этих меток в начале строки, остальная часть строки игнорируется программным обеспечением. Комментарии можно использовать для описания того, что будет делать элемент INI.
; This is my mill configuration file. # I set it up on January 12, 2012
Комментарии также можно использовать для отключения переменной. Это облегчает выбор между различными переменными.
DISPLAY = axis # DISPLAY = touchy
В этом списке переменной DISPLAY будет присвоено значение axis, поскольку другая закомментирована. Если кто-то неосторожно отредактирует такой список и оставит две строки без комментариев, будет использована первая встреченная.
Обратите внимание, что внутри переменной символы «#» и «;» символы не обозначают комментарии:
INCORRECT = value # and a comment # Correct Comment CORRECT = value
1.2. Sections
Связанные части файла INI разделены на разделы. Имя раздела заключено в скобки, например: [THIS_SECTION]
. Порядок разделов неважен. Разделы начинаются с имени раздела и заканчиваются именем следующего раздела.
Следующие разделы используются LinuxCNC:
-
[EMC]
общие сведения -
[DISPLAY]
настройки, связанные с графическим интерфейсом пользователя -
[FILTER]
настройки программ входного фильтра -
[RS274NGC]
настройки, используемые интерпретатором G-кода -
[EMCMOT]
настройки, используемые контроллером движения в реальном времени -
[TASK]
настройки, используемые контроллером задач -
[HAL]
указывает файлы .hal -
[HALUI]
Команды MDI, используемые HALUI -
[APPLICATIONS]
Другие приложения, запускаемые LinuxCNC -
[TRAJ]
дополнительные настройки, используемые контроллером движения в реальном времени -
[JOINT_n]
переменные отдельного сочленения -
[AXIS_l]
переменные отдельной оси -
[KINS]
кинематические переменные -
[EMCIO]
настройки, используемые контроллером ввода-вывода
1.3. Переменные
Строка переменной состоит из имени переменной, знака равенства (=
) и значения. Все, начиная с первого символа, отличного от пробела, после =
и до конца строки, передается как значение, поэтому вы можете вставлять пробелы в строковые символы, если хотите или нуждаетесь в этом. Имя переменной часто называют ключевым словом.
MACHINE = My Machine
Строка переменной может быть расширена до нескольких строк с помощью конечного символа обратной косой черты (\). Разрешается максимум MAX_EXTEND_LINES
(==20). После символа обратной косой черты не должно быть пробелов.
Идентификаторы разделов не могут быть расширены на несколько строк.
APP = sim_pin \ ini.0.max_acceleration \ ini.1.max_acceleration \ ini.2.max_acceleration \ ini.0.max_velocity \ ini.1.max_velocity \ ini.2.max_velocity
Логические значения могут быть одним из TRUE, YES или 1 для true/enabled и одним из FALSE, NO или 0 для false/disabled. Регистр игнорируется.
В следующих разделах подробно описан каждый раздел файла конфигурации с использованием примеров значений для строк конфигурации.
Переменные, используемые LinuxCNC, всегда должны использовать имена разделов и имена переменных, как показано.
1.4. Custom Sections and Variables
В большинстве примеров конфигураций используются настраиваемые разделы и переменные, позволяющие для удобства разместить все настройки в одном месте.
Чтобы добавить пользовательскую переменную в существующий раздел LinuxCNC, просто включите переменную в этот раздел.
[JOINT_0] TYPE = LINEAR ... SCALE = 16000
Чтобы ввести пользовательский раздел с собственными переменными, добавьте раздел и переменные в INI-файл.
[PROBE] Z_FEEDRATE = 50 Z_OFFSET = 12 Z_SAFE_DISTANCE = -10
Чтобы использовать пользовательские переменные в файле HAL, поместите раздел и имя переменной вместо значения.
setp offset.1.offset [PROBE]Z_OFFSET setp stepgen.0.position-scale [JOINT_0]SCALE
Note
|
Значение, хранящееся в переменной, должно соответствовать типу, указанному контактом компонента. |
Чтобы использовать пользовательские переменные в G-коде, используйте синтаксис глобальных переменных #<_ini[section]variable>
. В следующем примере показана простая процедура касания оси Z для фрезерного станка с использованием зондовой пластины.
G91 G38.2 Z#<_ini[probe]z_safe_distance> F#<_ini[probe]z_feedrate> G90 G1 Z#5063 G10 L20 P0 Z#<_ini[probe]z_offset>
1.5. Include Files
Файл INI может включать содержимое другого файла с помощью директивы #INCLUDE.
#INCLUDE filename
Имя файла может быть указано как:
-
файл в том же каталоге, что и файл INI
-
файл, расположенный относительно рабочего каталога
-
файл, расположенный относительно рабочего каталога
-
имя файла относительно-домашнего-каталога -пользователя (начинается с ~)
Поддерживается несколько директив #INCLUDE.
#INCLUDE joint_0.inc #INCLUDE ../parallel/joint_1.inc #INCLUDE below/joint_2.inc #INCLUDE /home/myusername/myincludes/display.inc #INCLUDE ~/linuxcnc/myincludes/rs274ngc.inc
Директивы #INCLUDE поддерживаются только для одного уровня расширения — включенный файл не может включать дополнительные файлы. Рекомендуемое расширение файла — .inc. Не используйте расширение .ini для включенных файлов.
2. INI File Sections
2.1. [EMC] Section
-
VERSION = 1.1
- Номер версии конфигурации. Любое значение, отличное от 1,1, приведет к запуску средства проверки конфигурации и попытке обновления конфигурации до нового стиля типов конфигурации сочленений осей . -
MACHINE = My Controller
- Это имя контроллера, которое отображается в верхней части большинства графических интерфейсов. Вы можете поместить сюда все, что захотите, главное, чтобы это было в одну строку. -
DEBUG = 0
- Уровень отладки 0 означает, что сообщения не будут выводиться при запуске LinuxCNC из terminal. Флаги отладки обычно полезны только разработчикам. Другие настройки см. в src/emc/nml_intf/debugflags.h. -
RCS_DEBUG = 1
RCS debug messages to show. Print only errors (1) by default if EMC_DEBUG_RCS and EMC_DEBUG_RCS bits inDEBUG
are unset, otherwise print all (-1). Use this to select RCS debug messages. See src/libnml/rcs/rcs_print.hh for all MODE flags. -
RCS_DEBUG_DEST = STDOUT
- how to output RCS_DEBUG messages (NULL, STDOUT, STDERR, FILE, LOGGER, MSGBOX). -
RCS_MAX_ERR = -1
- Number after which RCS errors are not reported anymore (-1 = infinite). -
NML_FILE = /usr/share/linuxcnc/linuxcnc.nml
- Установите это значение, если вы хотите использовать файл конфигурации NML, отличный от используемого по умолчанию.
2.2. [DISPLAY] Section
Различные программы пользовательского интерфейса используют разные параметры, и не каждый параметр поддерживается каждым пользовательским интерфейсом. Существует несколько интерфейсов, таких как AXIS, GMOCCAPY, Touchy, QtVCP’s QtDragon и Gscreen. AXIS — это интерфейс для использования с обычным компьютером и монитором, Touchy — для использования с сенсорными экранами. GMOCCAPY можно использовать обоими способами, а также предлагает множество соединений для управления оборудованием. Описания интерфейсов находятся в разделе Интерфейсы Руководства пользователя.
-
DISPLAY = axis
- Имя файла исполняемого файла, предоставляющего используемый пользовательский интерфейс. Наиболее распространенными допустимыми параметрами являются (все в нижнем регистре):axis
,touchy
,gmoccapy
,gscreen
,tklinuxcnc
,qtvcp
,qtvcp-qtdragon
илиqtvcp-qtplasmac
. -
POSITION_OFFSET = RELATIVE
- Система координат (RELATIVE
orMACHINE
), которая будет отображаться на УЦИ при запуске пользовательского интерфейса. RELATIVE система координат отражает действующие в настоящее время смещения координат G92 и G5x. -
POSITION_FEEDBACK = COMMANDED
- Значение координаты (COMMANDED
илиACTUAL
), которое будет отображаться на УЦИ при запуске пользовательского интерфейса. В AXIS это можно изменить в меню View. COMMANDED позиция — это позиция, запрошенная LinuxCNC. ACTUAL положение — это положение обратной связи двигателей, если они имеют обратную связь, как и большинство сервосистем. Обычно используется значение COMMANDED. -
DRO_FORMAT_MM = %+08.6f
- Переопределить форматирование УЦИ по умолчанию в метрическом режиме (обычно 3 десятичных знака, дополненных пробелами до 6 цифр слева). В приведенном выше примере дополняются нулями, отображаются 6 десятичных цифр и принудительно отображается знак + для положительных чисел. Форматирование соответствует практике Python: https://docs.python.org/2/library/string.html#format-specification-mini-language. Если формат не может принять значение с плавающей запятой, то возникнет ошибка. -
DRO_FORMAT_IN = % 4.1f
- Переопределить форматирование УЦИ по умолчанию в имперском режиме (обычно 4 десятичных знака, дополненных пробелами до 6 цифр слева). В приведенном выше примере будет отображаться только одна десятичная цифра. Форматирование соответствует практике Python: https://docs.python.org/2/library/string.html#format-specification-mini-language. Если формат не может принять значение с плавающей запятой, то возникнет ошибка. -
CONE_BASESIZE = .25
- Переопределите размер по умолчанию конуса/базового размера инструмента .5 на графическом дисплее. -
MAX_FEED_OVERRIDE = 1.2
- Максимальное переопределение подачи, которое может выбрать пользователь. 1.2 означает 120% от запрограммированной скорости подачи. -
MIN_SPINDLE_OVERRIDE = 0.5
- Минимальное переопределение шпинделя, которое может выбрать пользователь. 0,5 означает 50% от запрограммированной скорости шпинделя. (Это используется для установки минимальной скорости шпинделя.) -
MIN_SPINDLE_0_OVERRIDE = 0.5
- Минимальное переопределение шпинделя, которое может выбрать пользователь. 0,5 означает 50% от запрограммированной скорости шпинделя. (Это используется для установки минимальной скорости шпинделя.) На многошпиндельном станке будут записи для каждого номера шпинделя. Используется только пользовательскими интерфейсами на основе QtVCP. -
MAX_SPINDLE_OVERRIDE = 1.0
- Максимальное переопределение шпинделя, которое может выбрать пользователь. 1,0 означает 100% запрограммированной скорости шпинделя. -
MAX_SPINDLE_0_OVERRIDE = 1.0
- Максимальное переопределение подачи, которое может выбрать пользователь. 1.2 означает 120% от запрограммированной скорости подачи. На многошпиндельном станке будут записи для каждого номера шпинделя. Используется только пользовательскими интерфейсами на основе QtVCP. -
DEFAULT_SPINDLE_SPEED = 100
- Число оборотов шпинделя по умолчанию, когда шпиндель запускается в ручном режиме. Если этот параметр отсутствует, по умолчанию он равен 1 об/мин для AXIS и 300 об/мин для GMOCCAPY.-
deprecated - вместо этого используйте раздел [SPINDLE_n]
-
-
DEFAULT_SPINDLE_0_SPEED = 100
- Число оборотов шпинделя по умолчанию, когда шпиндель запускается в ручном режиме. На многошпиндельном станке будут записи для каждого номера шпинделя. Используется только пользовательскими интерфейсами на основе QtVCP.-
deprecated - вместо этого используйте раздел [SPINDLE_n].
-
-
SPINDLE_INCREMENT = 200
- Приращение, используемое при нажатии кнопок увеличения/уменьшения. Используется только пользовательскими интерфейсами на основе QtVCP.-
deprecated - вместо этого используйте раздел [SPINDLE_n].
-
-
MIN_SPINDLE_0_SPEED = 1000
- Минимальная частота вращения, которую можно выбрать вручную. На многошпиндельном станке будут записи для каждого номера шпинделя. Используется только пользовательскими интерфейсами на основе QtVCP.-
deprecated - вместо этого используйте раздел [SPINDLE_n].
-
-
MAX_SPINDLE_0_SPEED = 20000
- Максимальное число оборотов в минуту, которое можно выбрать вручную. На многошпиндельном станке будут записи для каждого номера шпинделя. Используется только пользовательскими интерфейсами на основе QtVCP.-
deprecated - вместо этого используйте раздел [SPINDLE_n].
-
-
PROGRAM_PREFIX = ~/linuxcnc/nc_files
- Каталог по умолчанию для файлов G-кода, именованных подпрограмм и определяемых пользователем M-кодов. КаталогPROGRAM_PREFIX
ищется перед каталогами, перечисленными в[RS274]SUBROUTINE_PATH
и[RS274]USER_M_PATH
. -
INTRO_GRAPHIC = emc2.gif
- Изображение, показанное на заставке. -
INTRO_TIME = 5
- Максимальное время отображения заставки в секундах. -
CYCLE_TIME = 100
- Время цикла ГИП. В зависимости от экрана это может быть в секундах или мс (предпочтительно мс). Зачастую это частота обновления, а не время ожидания между обновлениями. Если время обновления установлено неправильно, экран может перестать отвечать на запросы или сильно дергаться. Значение 100 мс (0,1 с) является общепринятой настройкой, хотя можно использовать диапазон 50–200 мс (0,05–0,2 с). Процессор с недостаточной мощностью может работать лучше при более длительной настройке. Обычно подходит значение по умолчанию. -
PREVIEW_TIMEOUT = 5
- Таймаут (в секундах) для загрузки графического предварительного просмотра G-кода. На данный момент только в AXIS. -
HOMING_PROMPT = TRUE
- Показывать сообщение с запросом на приведение в исходное положение при нажатии кнопки включения питания в графическом интерфейсе AXIS. Нажатие кнопки "ОК" в подсказке эквивалентно нажатию кнопки "Home All" (или клавиш Ctrl-HOME). -
FOAM_W = 1.5
sets the foam W height. -
FOAM_Z = 0
sets the foam Z height. -
GRAPHICAL_MAX_FILE_SIZE = 20
largest size (in mega bytes) that will be displayed graphically. If the program is bigger then this setting, a bounding box will be displayed. By default this setting is 20 MB or 1/4 of the system memory, which ever is smaller. Setting negative will set no limit.
Note
|
Следующие элементы [DISPLAY] используются GladeVCP и PyVCP, дополнительную информацию см. в разделе embedding a tab главы GladeVCP или в главе PyVCP. |
-
EMBED_TAB_NAME = GladeVCP demo
-
EMBED_TAB_COMMAND = halcmd loadusr -Wn gladevcp gladevcp -c gladevcp -x {XID\} -u ./gladevcp/hitcounter.py ./gladevcp/manual-example.ui
-
DEFAULT_LINEAR_VELOCITY = .25
- Скорость по умолчанию для линейной медленной подачи в machine unit в секунду. -
MIN_VELOCITY = .01
- Примерное минимальное значение шага ползунка медленной подачи. -
MAX_LINEAR_VELOCITY = 1.0
- Максимальная скорость для линейной медленной подачи, в единицах станка в секунду. -
MIN_LINEAR_VELOCITY = .01
- Примерное минимальное значение шага ползунка медленной подачи. -
DEFAULT_ANGULAR_VELOCITY = .25
- Скорость по умолчанию для угловой медленной подачи в единицах станка в секунду. -
MIN_ANGULAR_VELOCITY = .01
- Примерное минимальное значение углового шага ползунка медленной подачи. -
MAX_ANGULAR_VELOCITY = 1.0
- Максимальная скорость угловой медленной подачи, в единицах станка в секунду. -
INCREMENTS = 1 mm, .5 in, ...
- Определяет приращения, доступные для дискретной медленной подачи. INCREMENTS можно использовать для переопределения значения по умолчанию. Значения могут быть десятичными (например, 0,1000) или натуральными дробями (например, 1/16), за которыми необязательно следует единица измерения (cm, mm, um, inch, in или mil). Если единица измерения не указана, подразумевается единица измерения станка. Метрические и имперские расстояния могут быть смешанными: INCREMENTS = 1 inch, 1 mil, 1 cm, 1 mm, 1 µm — допустимые значения. -
GRIDS = 10 mm, 1 in, ...
- Определяет предустановленные значения для линий сетки. Значение интерпретируется так же, какINCREMENTS
. -
OPEN_FILE = /full/path/to/file.ngc
- Файл, который будет отображаться на заставке при запуске AXIS. При использовании пустой строки "" при запуске файл не будет загружен. GMOCCAPY не будет использовать этот параметр, поскольку предлагает соответствующую запись на своей странице настроек. -
EDITOR = gedit
- Редактор, используемый при выборе File > Edit для редактирования G-кода из меню AXIS. Этот параметр необходимо настроить, чтобы работал этот пункт меню. Другая допустимая запись —gnome-terminal -e vim
. Эта запись не относится к GMOCCAPY, поскольку GMOCCAPY имеет встроенный редактор. -
TOOL_EDITOR = tooledit
- Редактор, используемый при редактировании таблицы инструментов (например, выбрав "File > Edit tool table…" в AXIS). Другие допустимые записи:gedit
,gnome-terminal -e vim
, andgvim
. Эта запись не относится к GMOCCAPY, поскольку GMOCCAPY имеет встроенный редактор. -
PYVCP = /filename.xml
- Файл описания панели PyVCP. Дополнительную информацию см. в разделе PyVCP. -
PYVCP_POSITION = BOTTOM
- Размещение панели PyVCP в пользовательском интерфейсе AXIS. Если эта переменная опущена, панель по умолчанию будет располагаться справа. Единственная допустимая альтернатива —BOTTOM
. Дополнительную информацию см. в главе PyVCP. -
LATHE = 1
- Любое непустое значение (включая "0") заставляет AXIS использовать "lathe mode" с видом сверху и радиусом и диаметром на УЦИ. -
BACK_TOOL_LATHE = 1
- Любое непустое значение (включая «0») заставляет AXIS использовать "back tool lathe mode" с инвертированной осью X. -
FOAM = 1
- Любое непустое значение (включая "0") приводит к тому, что AXIS переключает отображение на режим резака вспенненых материалов. -
GEOMETRY = XYZABCUVW
- Управляет preview и backplot движения. Этот элемент состоит из последовательности букв оси и управляющих символов, которым может предшествовать знак "-":-
Буквы X, Y, Z обозначают перемещение вдоль названной координаты.
-
Буквы A, B, C обозначают вращение вокруг соответствующих осей X, Y, Z.
-
Буквы U, V, W обозначают перемещение по соответствующим осям X, Y, Z.
-
Каждая указанная буква должна встречаться в
[TRAJ]COORDINATES
, чтобы иметь эффект. -
Символ "-", предшествующий любой букве, инвертирует направление операции.
-
Операции перемещения и вращения оцениваются right-to-left. Таким образом, использование
GEOMETRY=XYZBC
задает вращение C, за которым следует вращение B, за которым следуют перемещения Z, Y, X. Порядок последовательно следующих букв не имеет значения. -
Правильная строка GEOMETRY зависит от конфигурации станка и кинематики, используемой для его управления. Порядок букв важен. Например, вращение вокруг C, а затем B отличается от вращения вокруг B, а затем C.
-
Повороты по умолчанию применяются относительно исходной точки станка. Пример:
GEOMETRY=CXYZ
сначала переводит контрольную точку в X, Y, Z, а затем выполняет вращение C вокруг оси Z с центром в начале координат станка. -
Пример перемещения UVW:
GEOMETRY=XYZUVW
заставляет UVW перемещаться в системе координат инструмента, а XYZ перемещаться в системе координат материала. -
Для станка резки вспененных материалов (
FOAM = 1
) необходимо указать "XY;UV" или оставить значение пустым, даже если это значение в настоящее время игнорируется в режиме резки вспененных материалов. В будущей версии может быть определено, что означает ";" но если это так, «XY;UV» будет означать то же самое, что и текущие вспененные материалы по умолчанию. -
Экспериментально: если в строку GEOMETRY включен символ восклицательного знака (
!
), точки отображения для поворотов A, B, C учитывают смещения X, Y, Z, установленные кодами G5x, G92. Пример: использованиеGEOMETRY = !CXZ
для станка с[TRAJ]COORDINATES=XZC
. Это положение применимо только к живым графикам — предварительный просмотр G-кода должен выполняться с нулевыми смещениями G5x, G92. Этому можно способствовать, устанавливая смещения в программах только тогда, когда задача выполняется, как указано #<_task> == 1. Если при запуске существуют ненулевые смещения из-за постоянства, смещения следует обнулить и перезагрузить предварительный просмотр.
NoteЕсли в INI-файле нет [DISPLAY]GEOMETRY
, значение по умолчанию предоставляется[DISPLAY]DISPLAY
программой ГИП (обычно "XYZABCUVW"). -
-
ARCDIVISION = 64
- Установите качество предварительного просмотра дуг. Дуги предварительно просматриваются путем разделения их на несколько прямых линий; полукруг разделен на части ARCDIVISION. Большие значения обеспечивают более точный предварительный просмотр, но загрузка занимает больше времени и приводит к более медленному отображению. Меньшие значения дают менее точный предварительный просмотр, но загрузка занимает меньше времени и может привести к более быстрому отображению. Значение по умолчанию 64 означает, что круг размером до 3 дюймов будет отображаться с точностью до 1 мил (0,03%). -
MDI_HISTORY_FILE =
- Имя локального файла истории MDI. Если это не указано, AXIS сохранит историю MDI в .axis_mdi_history в домашнем каталоге пользователя. Это полезно, если у вас есть несколько конфигураций на одном компьютере. -
JOG_AXES =
- Порядок, в котором клавиши медленной подачи назначаются буквам осей. Стрелки влево и вправо соответствуют первой букве оси, вверх и вниз — второй, page up/page down — третьей, а левая и правая скобки — четвертой. Если не указано, значение по умолчанию определяется значениями[TRAJ]COORDINATES
,[DISPLAY]LATHE
и[DISPLAY]FOAM
. -
JOG_INVERT =
- Для каждой буквы оси направление перемещения инвертируется. По умолчанию для токарных станков установлено значение "X", в противном случае поле пустое.NoteНастройки для JOG_AXES
иJOG_INVERT
применяются к медленной подаче в глобальном режиме по букве координаты оси и действуют в глобальном режиме после успешного приведения в исходное положение. При работе в режиме сочленения до приведения в исходное положение клавиши перемещения на клавиатуре назначаются в фиксированной последовательности: стрелки влево/вправо: сочленение 0, стрелки вверх/вниз: сочленение 1, page up/page down: сочленение 2, левая/правая скобка: сочленение 3 -
USER_COMMAND_FILE = mycommands.py
- Имя дополнительного файла Python, зависящего от конфигурации, полученного из графического интерфейса AXIS вместо пользовательского файла~/.axisrc
.
Note
|
Следующий элемент [DISPLAY] используется только интерфейсом TKLinuxCNC. |
-
HELP_FILE = tklinucnc.txt
- Путь к файлу справки.
2.3. [FILTER] Section
AXIS и GMOCCAPY имеют возможность отправлять загруженные файлы через программу-фильтр. Этот фильтр может выполнять любую желаемую задачу: что-то простое, например, проверка того, что файл заканчивается на M2, или что-то более сложное, например, определение того, являются ли входные данные образом глубины, и генерируют G-код для фрезерования определяемой им формы. Раздел [FILTER]
INI-файла управляет работой фильтров. Сначала для каждого типа файла напишите строку PROGRAM_EXTENSION. Затем укажите программу, которая будет выполняться для каждого типа файла. Этой программе присваивается имя входного файла в качестве первого аргумента, и она должна записать код RS274NGC в стандартный вывод. Этот вывод будет отображаться в текстовой области, просматриваться в области отображения и выполняться LinuxCNC при запуске.
-
PROGRAM_EXTENSION = .extension Description
Если ваш постпроцессор выводит файлы заглавными буквами, вы можете добавить следующую строку:
PROGRAM_EXTENSION = .NGC XYZ Post Processor
Следующие строки добавляют поддержку конвертера изображение-в-G-код, включенного в LinuxCNC.
PROGRAM_EXTENSION = .png,.gif,.jpg # Greyscale Depth Image png = image-to-gcode gif = image-to-gcode jpg = image-to-gcode
Пример пользовательского конвертера G-кода, расположенного в каталоге linuxcnc.
PROGRAM_EXTENSION = .gcode 3D Printer gcode = /home/mill/linuxcnc/convert.py
Note
|
Программный файл, связанный с расширением, должен иметь либо полный путь к программе, либо находиться в каталоге, расположенном на системном пути. |
Также возможно указать интерпретатор:
PROGRAM_EXTENSION = .py Python Script py = python
Таким образом, любой скрипт Python может быть открыт, а его выходные данные обрабатываются как G-код. Один из таких примеров скрипта доступен в nc_files/holecircle.py. Этот скрипт создает G-код для сверления серии отверстий по окружности. Многие другие генераторы G-кода находятся на вики-сайте LinuxCNC https://wiki.linuxcnc.org/.
Фильтры Python должны использовать функцию печати для вывода результата в AXIS.
Этот пример программы фильтрует файл и добавляет ось W, соответствующую оси Z. Работа зависит от наличия пробела между каждым словом оси.
#!/usr/bin/env python3 import sys def main(argv): openfile = open(argv[0], 'r') file_in = openfile.readlines() openfile.close() file_out = [] for line in file_in: # print(line) if line.find('Z') != -1: words = line.rstrip('\n') words = words.split(' ') newword = '' for i in words: if i[0] == 'Z': newword = 'W'+ i[1:] if len(newword) > 0: words.append(newword) newline = ' '.join(words) file_out.append(newline) else: file_out.append(line) for item in file_out: print("%s" % item) if __name__ == "__main__": main(sys.argv[1:])
-
FILTER_PROGRESS=%d
Если установлена переменная среды AXIS_PROGRESS_BAR, то строки, записанные в stderr формы выше, устанавливают индикатор выполнения AXIS в заданный процент. Эту функцию следует использовать любому фильтру, работающему в течение длительного времени.
2.4. [RS274NGC] Section
-
PARAMETER_FILE = myfile.var
- The file located in the same directory as the INI file which contains the parameters used by the interpreter (saved between runs). -
ORIENT_OFFSET = 0
- A float value added to the R word parameter of an M19 Orient Spindle operation. Used to define an arbitrary zero position regardless of encoder mount orientation. -
RS274NGC_STARTUP_CODE = G17 G20 G40 G49 G64 P0.001 G80 G90 G92.1 G94 G97 G98
- A string of NC codes that the interpreter is initialized with. This is not a substitute for specifying modal G-codes at the top of each NGC file, because the modal codes of machines differ, and may be changed by G-code interpreted earlier in the session. -
SUBROUTINE_PATH = ncsubroutines:/tmp/testsubs:lathesubs:millsubs
- Specifies a colon (:) separated list of up to 10 directories to be searched when single-file subroutines are specified in G-code. These directories are searched after searching[DISPLAY]PROGRAM_PREFIX
(if it is specified) and before searching[WIZARD]WIZARD_ROOT
(if specified). The paths are searched in the order that they are listed. The first matching subroutine file found in the search is used. Directories are specified relative to the current directory for the INI file or as absolute paths. The list must contain no intervening whitespace. -
CENTER_ARC_RADIUS_TOLERANCE_INCH =
n (по умолчанию: 0.00005) -
CENTER_ARC_RADIUS_TOLERANCE_MM =
n (по умолчанию: 0.00127) -
USER_M_PATH = myfuncs:/tmp/mcodes:experimentalmcodes
- Specifies a list of colon (:) separated directories for user defined functions. Directories are specified relative to the current directory for the INI file or as absolute paths. The list must contain no intervening whitespace.Поиск производится для каждой возможной определяемой пользователем функции, обычно (M100-M199). Порядок поиска следующий:
-
[DISPLAY]PROGRAM_PREFIX
(если указан) -
Если
[DISPLAY]PROGRAM_PREFIX
не указан, выполните поиск в папке по умолчанию: nc_files -
Затем выполните поиск в каждом каталоге в списке
[RS274NGC]USER_M_PATH
.Первый исполняемый M1xx, найденный при поиске, используется для каждого M1xx.
NoteМаксимальное количество каталогов USER_M_PATH
определяется во время компиляции (тип:USER_DEFINED_FUNCTION_MAX_DIRS == 5
). -
-
INI_VARS = 1
(Default: 1)
Позволяет программам G-кода считывать значения из файла INI в формате #<_ini[section]name>. См. Параметры G-кода. -
HAL_PIN_VARS = 1
(по умолчанию: 1)
Позволяет программам G-кода считывать значения контактов HAL в формате #<_hal[элемент HAL]>. Доступ к переменным возможен только для чтения. См. G-коды параметры для получения более подробной информации и важного предостережения. -
RETAIN_G43 = 0
(Default: 0)
Когда установлен, вы можете включить G43 после загрузки первого инструмента и потом не беспокоиться о нем в программе. Когда вы наконец выгрузите последний инструмент, режим G43 отменяется. -
OWORD_NARGS = 0
(по умолчанию: 0)
Если эта функция включена, то вызываемая подпрограмма может определить количество переданных фактических позиционных параметров, проверив параметр#<n_args>
. -
NO_DOWNCASE_OWORD = 0
(по умолчанию: 0)
Сохранять регистр в именах O-слов в комментариях, если этот параметр установлен, разрешает читать элементы HAL со смешанным регистром в структурированных комментариях, например(debug, #<_hal[MixedCaseItem])
. -
OWORD_WARNONLY = 0
(по умолчанию: 0)
Скорее предупреждение, чем ошибка, в случае ошибок в подпрограммах O-слов. -
DISABLE_G92_PERSISTENCE = 0
(по умолчанию: 0) Разрешить автоматическую очистку смещения G92 при запуске конфигурации. -
DISABLE_FANUC_STYLE_SUB = 0
(по умолчанию: 0) Если есть причина запретить подпрограммы Fanuc, установите значение 1. -
PARAMETER_G73_PECK_CLEARANCE = .020 (по умолчанию: метрическая система: 1 мм, имперская система: 0,050 дюйма) Расстояние отступа при стружкодроблении в единицах станка
-
PARAMETER_G83_PECK_CLEARANCE = .020 (по умолчанию: Метрическая система: 1 мм, имперская система: 0,050 дюйма) Расстояние от последней глубины подачи, когда станок возвращается к дну отверстия, в единицах станка.
Note
|
Вышеупомянутые шесть опций контролировались битовой маской
|
Note
|
[WIZARD]WIZARD_ROOT является допустимым путем поиска, но Wizard не реализован полностью, и результаты его использования непредсказуемы. |
-
LOG_LEVEL = 0
Укажите log_level (по умолчанию: 0) -
LOG_FILE = file-name.log
Для указания файла, используемого для записи данных. -
REMAP=M400 modalgroup=10 argspec=Pq ngc=myprocedure
Подробности см. в главе Remap Extending G-code. -
ON_ABORT_COMMAND=O <on_abort> call
Подробности см. в главе Remap Extending G-code.
2.5. [EMCMOT] Section
Этот раздел является настраиваемым и не используется LinuxCNC напрямую. В большинстве конфигураций значения из этого раздела используются для загрузки контроллера движений. Дополнительную информацию о контроллере движения см. в разделе Motion.
-
EMCMOT = motmod
- здесь обычно используется имя контроллера движения. -
BASE_PERIOD = 50000
- период выполнения задачи Base в наносекундах. -
SERVO_PERIOD = 1000000
- Это период задачи "Servo" в наносекундах. -
TRAJ_PERIOD = 100000
- Это период задачи Trajectory Planner в наносекундах. -
COMM_TIMEOUT = 1.0
- Количество секунд ожидания, пока Motion (часть контроллера движения, работающая в режиме реального времени) подтвердит получение сообщений от Task (часть контроллера движения, работающая не в реальном времени). -
HOMEMOD =
alternate_homing_module [home_parms=value] Переменная HOMEMOD является необязательной. Если указана, используйте указанный (созданный пользователем) модуль вместо модуля по умолчанию (homemod). Параметры модуля (home_parms) могут быть включены, если они поддерживаются указанным модулем. Эту настройку можно переопределить из командной строки с помощью опции -m ($ linuxcnc -h).
2.6. [TASK] Section
-
TASK = milltask
- Указывает имя исполняемой task. Исполняемый файл task выполняет различные действия, например:-
общаться с пользовательскими интерфейсами через NML,
-
взаимодействовать с планировщиком движений в реальном времени через общую память, отличную от HAL, и
-
интерпретировать G-код. В настоящее время существует только один исполняемый файл задачи, который имеет смысл для 99,9% пользователей — milltask.
-
-
CYCLE_TIME = 0.010
- Период в секундах, в течение которого будет выполняться TASK. Этот параметр влияет на интервал опроса при ожидании завершения движения, при выполнении инструкции паузы и при принятии команды из пользовательского интерфейса. Обычно нет необходимости менять это число.
2.7. [HAL] section
-
HALFILE = example.hal
- Запустите файл example.hal при запуске.Если
HALFILE
указан несколько раз, файлы интерпретируются в том порядке, в котором они появляются в INI-файле. Файлы HAL являются описательными, выполнение того, что описано в файлах HAL, инициируется потоками, в которые встроены функции, а не чтением файла HAL. Почти все конфигурации будут иметь по крайней мере один HALFILE, а в шаговых системах обычно есть два таких файла, то есть один, который определяет общую конфигурацию шагового привода (core_stepper.hal), и другой, который определяет расположение контактов станка (xxx_pinout.hal).Файлы HAL, указанные в переменной
HALFILES
, находятся с помощью поиска. Если указанный файл найден в каталоге, содержащем файл INI, он используется. Если указанный файл не найден в этом каталоге файлов INI, поиск выполняется с использованием системной библиотеки файлов HAL.Если LinuxCNC запускается со сценарием
linuxcnc
с использованием опции "-H
dirname", указанное имя каталога добавляется к описанному выше поиску, так что сначала выполняется поиск dirname. Опцию "-H
dirname" можно указать несколько раз, каталоги добавляются по порядку.HALFILE также может быть указан как абсолютный путь (когда имя начинается с символа /). Абсолютные пути использовать не рекомендуется, поскольку их использование может ограничить перемещение конфигураций.
-
HALFILE = texample.tcl
[arg1 [arg2] …] - Выполните файл tcl texample.tcl при запуске с arg1, arg2 и т. д. в качестве списка argv. Файлы с суффиксом .tcl обрабатываются, как указано выше, но для обработки используется остановка. Дополнительную информацию смотрите в HALTCL Chapter. -
HALFILE = LIB:sys_example.hal
- Запустите файл системной библиотеки sys_example.hal при запуске. Явное использование префикса LIB: приводит к использованию системной библиотеки HALFILE без поиска в каталоге файлов INI. -
HALFILE = LIB:sys_texample.tcl
[arg1 [arg2 …]] - Запустите файл системной библиотеки sys_texample.tcl при запуске. Явное использование префикса LIB: приводит к использованию системной библиотеки HALFILE без поиска в каталоге файлов INI.
Элементы HALFILE определяют файлы, которые загружают компоненты HAL и устанавливают сигнальные соединения между контактами компонентов. Распространенными ошибками являются
-
отсутствие оператора addf, необходимого для добавления функции(й) компонента в поток,
-
неполные спецификаторы сигнала (net).
Пропуск необходимых операторов addf почти всегда является ошибкой. Сигналы обычно включают одно или несколько входных соединений и один выход (но оба не являются строго обязательными). Для проверки этих условий предоставляется файл системной библиотеки и отчет на stdout и во всплывающий ГИП:
HALFILE = LIB:halcheck.tcl [nopopup]
Note
|
Строка LIB:halcheck.tcl должна быть последней [HAL]HALFILE. Укажите опцию nopopup, чтобы подавить всплывающее сообщение и разрешить немедленный запуск. Соединения, выполненные с использованием POSTGUI_HALFILE, не проверяются. |
-
TWOPASS = ON
- Используйте двухпроходную обработку для загрузки компонентов HAL. При обработке TWOPASS строки файлов, указанные в[HAL]HALFILE
, обрабатываются за два прохода. На первом проходе (pass0) считываются все HALFILES и накапливаются множественные появления команд loadrt и loadusr. Эти накопленные команды загрузки выполняются в конце pass0. Такое накопление позволяет указывать строки нагрузки более одного раза для данного компонента (предоставляет names= имена уникальны при каждом использовании). На втором проходе (pass1) HALFILES считываются заново и выполняются все команды, кроме ранее выполненных команд загрузки. -
TWOPASS = nodelete verbose
- ФункциюTWOPASS
можно активировать с помощью любой ненулевой строки, включая ключевые слова verbose и nodelete. Ключевое слово verbose вызывает вывод сведений на stdout. Ключевое слово nodelete сохраняет временные файлы в /tmp.
Для получения дополнительной информации см. главу HAL TWOPASS.
-
HALCMD =
command - Выполните command как одну команду HAL. ЕслиHALCMD
указан несколько раз, команды выполняются в том порядке, в котором они появляются в INI-файле. СтрокиHALCMD
выполняются после всех строкHALFILE
. -
SHUTDOWN = shutdown.hal
- Запустите файл shutdown.hal при выходе LinuxCNC. В зависимости от используемых драйверов оборудования это может позволить установить выходные значения на определенные значения при обычном выходе LinuxCNC. Однако, поскольку нет никакой гарантии, что этот файл будет выполнен (например, в случае сбоя компьютера), он не заменяет правильную физическую цепочку аварийного останова или другие средства защиты от сбоя программного обеспечения. -
‘POSTGUI_HALFILE = example2.hal` — выполнить `example2.hal’ после того, как ГИП создаст свои контакты HAL. Некоторые ГИП создают контакты HAL и поддерживают использование postgui halfile для их использования. К ГИП, поддерживающим файлы HAL postgui, относятся Touchy, AXIS, Gscreen и GMOCCAPY.
Дополнительную информацию см. в разделе PyVCP with AXIS. -
HALUI = halui
— добавляет контакты пользовательского интерфейса HAL.
Для получения дополнительной информации см. главу HAL User Interface.
2.8. [HALUI] section
-
MDI_COMMAND = G53 G0 X0 Y0 Z0
- Команду MDI можно выполнить с помощьюhalui.mdi-command-00
. Увеличьте число для каждой команды, указанной в разделе [HALUI]. Также можно запускать подпрограммы.MDI_COMMAND = o<yoursub> CALL [#<yourvariable>]
2.9. [APPLICATIONS] Section
LinuxCNC может запускать другие приложения до запуска указанного ГИП. Приложения можно запускать после заданной задержки, чтобы обеспечить возможность действий, зависящих от ГИП (например, создание контактов HAL для конкретного ГИП).
-
DELAY =
value - секунды ожидания перед запуском других приложений. Задержка может потребоваться, если приложение зависит от действий[HAL]POSTGUI_HALFILE
или контактов HAL, созданных ГИП (по умолчаниюDELAY=0
). -
‘APP =` appname [arg1 [arg2 …]]’ - Приложение, которое нужно запустить. Эту спецификацию можно включать несколько раз. Имя приложения может быть явно указано как абсолютное имя файла или имя файла, указанное с помощью тильды (первый символ / или ~), относительное имя файла (первые символы имени файла — ./) или как файл в каталоге файлов INI. Если по этим именам исполняемый файл не найден, то для поиска приложения используется пользовательский поиск PATH.
Примеры:-
Имитируйте входные данные для контактов HAL для тестирования (используя sim_pin — простой ГИП для установки ввода для параметров, неподключенных контактов или сигналов без записывающих устройств):
APP = sim_pin motion.probe-input halui.abort motion.analog-in-00
-
Вызовите halshow с ранее сохраненным watchlist. Поскольку LinuxCNC устанавливает в качестве рабочего каталога каталог для файла INI, вы можете ссылаться на файлы в этом каталоге (пример: my.halshow):
APP = halshow my.halshow
-
В качестве альтернативы можно указать файл watchlist, идентифицированный по полному пути:
APP = halshow ~/saved_shows/spindle.halshow
-
Откройте halscope, используя ранее сохраненную конфигурацию:
APP = halscope -i my.halscope
-
2.10. [TRAJ] Section
Warning
|
Новый планировщик траектории (TP) включен по умолчанию. Если у вас нет настроек TP в разделе [TRAJ] — LinuxCNC по умолчанию использует: |
Раздел [TRAJ] содержит общие параметры модуля планирования траектории в режиме motion.
-
ARC_BLEND_ENABLE = 1
- Включите новый TP. Если установлено значение 0, TP использует параболическое смешивание (1 сегмент вперед) (по умолчанию: 1). -
ARC_BLEND_FALLBACK_ENABLE = 0
- При необходимости вернитесь к параболическим смесям, если расчетная скорость выше. Однако эта оценка приблизительна, и кажется, что простое ее отключение дает лучшую производительность (по умолчанию: 0). -
ARC_BLEND_OPTIMIZATION_DEPTH = 50
- Посмотрите вперед на глубину в количестве сегментов.Чтобы немного подробнее рассказать об этом, вы можете выбрать это значение несколько произвольно. Вот формула, позволяющая оценить, какая depth вам нужна для конкретной конфигурации:
# n = v_max / (2.0 * a_max * t_c) # where: # n = optimization depth # v_max = max axis velocity (UU / sec) # a_max = max axis acceleration (UU / sec) # t_c = servo period (seconds)
Итак, станку с максимальной скоростью оси 10 IPS, максимальным ускорением 100 IPS2 и периодом сервопривода 0,001 s потребуется:
10 / (2,0 * 100 * 0,001) = 50 сегментов, чтобы всегда достигать максимальной скорости вдоль самой быстрой оси.
На практике это число не так важно для настройки, поскольку для просмотра вперед редко требуется полная глубина, если только у вас нет большого количества очень коротких сегментов. Если во время тестирования вы заметили странные подтормаживания и не можете понять, откуда они берутся, сначала попробуйте увеличить эту глубину по формуле выше.
Если вы по-прежнему наблюдаете странные замедления, возможно, это связано с короткими сегментами программы. В этом случае попробуйте добавить небольшой допуск для обнаружения Naive CAM. Хорошее практическое правило таково:
# min_length ~= v_req * t_c # where: # v_req = desired velocity in UU / sec # t_c = servo period (seconds)
Если вы хотите путешествовать по пути со скоростью 1 IPS = 60 IPM, а период вашего сервопривода составляет 0,001 s, то любые сегменты короче min_length будут замедлять путь. Если вы установите допуск Naive CAM примерно на эту минимальную длину, слишком короткие сегменты будут объединены вместе, чтобы устранить это узкое место. Конечно, установка слишком высокого допуска означает большие отклонения от траектории, поэтому вам придется немного поиграть с ним, чтобы найти хорошее значение. Я бы начал с 1/2 min_length, а затем увеличивал бы по мере необходимости. *
ARC_BLEND_GAP_CYCLES = 4
Насколько коротким должен быть предыдущий сегмент, прежде чем планировщик траектории потребит его.Часто при переходе по дуге окружности между переходами остаются короткие сегменты линий. Поскольку геометрия должна быть круглой, мы не можем растушевать всю линию, если следующая немного короче. Поскольку планировщик траектории должен коснуться каждого сегмента хотя бы один раз, это означает, что очень маленькие сегменты будут значительно замедлять движение. Мое исправление этого способа - "поглотить" короткий сегмент, сделав его частью дуги сглаживания. Поскольку линия+переход представляет собой один сегмент, нам не нужно замедляться, чтобы попасть на очень короткий сегмент. Скорее всего, вам не придется трогать эту настройку. *
ARC_BLEND_RAMP_FREQ = 20
- Это граничная частота для использования линейной скорости.Нарастающая скорость в данном случае просто означает постоянное ускорение на всем участке. Это менее оптимально, чем трапециевидный профиль скорости, поскольку ускорение не максимальное. Однако, если сегмент достаточно короткий, у нас не будет достаточно времени, чтобы сильно ускориться, прежде чем мы достигнем следующего сегмента. Вспомните короткие отрезки линий из предыдущего примера. Поскольку это линии, ускорения на поворотах нет, поэтому мы можем разогнаться до требуемой скорости. Однако если эта линия находится между двумя дугами, то ей придется снова быстро замедлиться, чтобы оказаться в пределах максимальной скорости следующего сегмента. Это означает, что у нас есть резкий скачок ускорения, а затем резкий скачок замедления, вызывающий сильный рывок, при очень небольшом приросте производительности. Эта настройка позволяет устранить этот рывок на коротких сегментах.
По сути, если сегмент будет завершен за меньшее время, чем 1 / ARC_BLEND_RAMP_FREQ, мы не заморачиваемся с трапециевидным профилем скорости на этом сегменте и используем постоянное ускорение. (Установка
ARC_BLEND_RAMP_FREQ = 1000
эквивалентна всегда использованию трапециевидного ускорения, если частота серво потока составляет 1 кГц).Вы можете охарактеризовать потерю производительности в худшем случае, сравнив скорость, которую достигает трапециевидный профиль, со скоростью нарастания:
# v_ripple = a_max / (4.0 * f) # where: # v_ripple = average velocity "loss" due to ramping # a_max = max axis acceleration # f = cutoff frequency from INI
Для вышеупомянутого станка пульсация для частоты среза 20 Гц составляет 100 / (4 * 20) = 1,25 IPS. Эта цифра кажется высокой, но имейте в виду, что это лишь оценка наихудшего случая. В действительности профиль трапециевидного движения ограничен другими факторами, такими как нормальное ускорение или требуемая скорость, поэтому фактическая потеря производительности должна быть намного меньше. Увеличение частоты среза может повысить производительность, но сделать движение более грубым из-за скачков ускорения. Для начала будет разумным значение в диапазоне от 20 до 200 Гц.
Наконец, никакие настройки не ускорят траекторию инструмента с множеством маленьких, крутых углов, поскольку вы ограничены ускорением на поворотах.
-
SPINDLES = 3
- Количество поддерживаемых шпинделей. Крайне важно, чтобы это число соответствовало параметру "num_spindles", передаваемому модулю движения. -
COORDINATES = X Y Z
- Имена управляемых осей. Допустимы только X, Y, Z, A, B, C, U, V, W. В G-коде принимаются только оси, указанные в КООРДИНАТАХ. Разрешено писать имя оси более одного раза (например, X Y Y Z для портального станка). Для обычной trivkins kinematics номера соединений назначаются последовательно в соответствии с параметром trivkins coordinates=. Итак, для trivkins coordinates=xz, joint0 соответствует X, а joint1 соответствует Z. См. справочную страницу по кинематике ($ man kins) для получения информации о trivkins и других модулях кинематики. -
LINEAR_UNITS =
<units>_ - Specifies the machine units for linear axes. Possible choices are mm or inch. This does not affect the linear units in NC code (the G20 and G21 words do this). -
ANGULAR_UNITS =
<units> - Specifies the machine units for rotational axes. Possible choices are deg, degree (360 per circle), rad, radian (2*π per circle), grad, or gon (400 per circle). This does not affect the angular units of NC code. In RS274NGC, A-, B- and C- words are always expressed in degrees. -
DEFAULT_LINEAR_VELOCITY = 0.0167
- Начальная скорость ступенчатого перемещения линейных осей, в машинных единицах в секунду. Значение, отображаемое в AXIS, равно машинным единицам в минуту. -
DEFAULT_LINEAR_ACCELERATION = 2.0
- На станках с nontrivial kinematics ускорение, используемое для "teleop" (декартово пространство) медленных подач, выражается в единицах станка в секунду. -
MAX_LINEAR_VELOCITY = 5.0
- The maximum velocity for any axis or coordinated move, in machine units per second. The value shown equals 300 units per minute. -
MAX_LINEAR_ACCELERATION = 20.0
- The maximum acceleration for any axis or coordinated axis move, in machine units per second per second. -
POSITION_FILE =
position.txt - Если установлено непустое значение, позиции сочленений сохраняются между запусками в этом файле. Это позволяет станку стартовать с теми же координатами, которые были у него при выключении. Это предполагает, что при выключенном питании станок не двигался. Если не установлено, позиции сочленений не сохраняются и будут начинаться с 0 при каждом запуске LinuxCNC. Это может помочь на небольших станках без переключателей исходной позиции. При использовании интерфейса преобразователя Mesa этот файл можно использовать для эмуляции абсолютных энкодеров и устранения необходимости возврата в исходное положение (без потери точности). Дополнительную информацию см. на странице руководства hostmot2. -
NO_FORCE_HOMING = 1
- По умолчанию LinuxCNC заставляет пользователя привести станок в исходное положение перед запуском какой-либо команды MDI или программы. Обычно до приведения в исходное положение разрешается только медленная подача. Для конфигураций, использующих identity kinematics, установка NO_FORCE_HOMING = 1 позволяет пользователю выполнять перемещения MDI и запускать программы без предварительного возврата станка в исходное положение. В интерфейсах, использующих identity kinematics без возможности возврата в исходное положение, для этой опции необходимо установить значение 1.
Warning
|
LinuxCNC не будет знать ваши ограничения перемещения сочленения при использовании NO_FORCE_HOMING = 1. |
-
HOME = 0 0 0 0 0 0 0 0 0
- Глобальная исходная позиция необходима для модулей кинематики, которые вычисляют глобальные координаты с помощью kinematicsForward() при переключении из режима сочленения в teleop режим. Можно указать до девяти значений координат (X Y Z A B C U V W), неиспользуемые конечные элементы можно опустить. Это значение используется только для станков с nontrivial kinematics. На станках с trivial kinematics (фрезерные, токарные, портальные) это значение игнорируется. Примечание. Для конфигурации sim hexapod требуется ненулевое значение координаты Z. -
TPMOD =
alternate_trajectory_planning module [tp_parms=value]
ПеременнаяTPMOD
является необязательной. Если указано, используйте указанный (созданный пользователем) модуль вместо модуля по умолчанию (tpmod). Параметры модуля (tp_parms) могут быть включены, если они поддерживаются указанным модулем. Эту настройку можно переопределить из командной строки с помощью опции -t ($ linuxcnc -h). -
NO_PROBE_JOG_ERROR = 0
- Разрешить обход проверки срабатывания датчика когда вы используете медленную подачу в ручном режиме. -
NO_PROBE_HOME_ERROR = 0
- Позволяет обходить проверку срабатывания датчика во время возврата в исходное положение.
2.11. [KINS] Section
-
JOINTS = 3
- Указывает количество сочленений (двигателей) в системе. Например, станок trivkins XYZ с одним двигателем на каждую ось имеет 3 сочленения. Портальный станок с одним двигателем на каждой из двух осей и двумя двигателями на третьей оси имеет 4 сочленения. (Эта переменная конфигурации может использоваться ГИП для установки количества сочленений (num_joints), указанных для модуля motion (motmod).) -
KINEMATICS = trivkins
- Укажите модуль kinematics для модуля motion. ГИПы могут использовать эту переменную для указания строкиloadrt
в файлах HAL для модуля motmod. Дополнительную информацию о модулях кинематики смотрите на странице руководства:$ man kins
.
2.12. [AXIS_<letter>] Section
<letter> указывает одну из: X Y Z A B C U V W
-
TYPE = LINEAR
- The type of this axis, eitherLINEAR
orANGULAR
. Required if this axis is not a default axis type. The default axis types are X,Y,Z,U,V,W = LINEAR and A,B,C = ANGULAR. This setting is effective with the AXIS GUI but note that other GUI’s may handle things differently. -
MAX_VELOCITY = 1.2
- Максимальная скорость для этой оси в machine unit в секунду. -
MAX_ACCELERATION = 20.0
- Максимальное ускорение для этой оси в единицах станка в секунду в квадрате. -
MIN_LIMIT = -1000
- The minimum limit (soft limit) for axis motion, in machine units. When this limit is exceeded, the controller aborts axis motion. The axis must be homed beforeMIN_LIMIT
is in force. For a rotary axis (A,B,C typ) with unlimited rotation having noMIN_LIMIT
for that axis in the[AXIS_
<letter>]
section a value of -1e99 is used. -
MAX_LIMIT = 1000
- The maximum limit (soft limit) for axis motion, in machine units. When this limit is exceeded, the controller aborts axis motion. The axis must be homed before MAX_LIMIT is in force. For a rotary axis (A,B,C typ) with unlimited rotation having noMAX_LIMIT
for that axis in the[AXIS_
<letter>]
section a value of 1e99 is used. -
WRAPPED_ROTARY = 1
- Если для ANGULAR оси установлено значение 1, ось будет перемещаться на 0–359,999 градусов. Положительные числа перемещают ось в положительном направлении, а отрицательные числа перемещают ось в отрицательном направлении. -
LOCKING_INDEXER_JOINT = 4
— это значение выбирает сочленение, чтобы использовть как фиксирующий индексатор для указанной оси <letter>. В этом примере сочленение имеет номер 4, что соответствует оси B для системы XYZAB с кинематикой (identity) trivkins. Когда установлено, перемещение G0 для этой оси инициирует разблокировку с помощьюjoint.4.unlock pin
, затем ждет контактjoint.4.is-unlocked
, а затем перемещает сочленение с высокой для этого сочленения скоростью. После перемещения значениеjoint.4.unlock
будет false и для продолжения движения будет ожидание момента, когдаjoint.4.is-unlocked
станет false. Перемещение других сочленений не допускается при перемещении заблокированного поворотного сочленения . Чтобы создать контакты разблокировки, используйте параметр motmod:unlock_joints_mask=jointmask
Биты маски соединения: (LSB)0:joint0, 1:joint1, 2:joint2, …
Пример:
loadrt motmod ... unlock_joints_mask=0x38
создает разблокирующие контакты для сочленений 3,4,5. -
OFFSET_AV_RATIO = 0.1
— если ненулевое значение, этот элемент позволяет использовать входные контакты HAL для смещения внешних осей:axis.<letter>.eoffset-enable axis.<letter>.eoffset-count axis.<letter>.eoffset-scale
Информацию об использовании смотрите в главе: External Axis Offsets.
2.13. [JOINT_<num>] Sections
<num> указывает номер сочленения 0 … (num_joints-1). Значение num_joints устанавливается с помощью [KINS]JOINTS=
.
Разделы [JOINT_0]
, [JOINT_1]
и т. д. содержат общие параметры для отдельных компонентов в модуле управления сочленением. Имена секций сочленений начинаются с 0 и заканчиваются количеством сочленений, указанным в записи [KINS]JOINTS
минус 1.
Обычно (для систем, использующих trivkins kinematics, существует соответствие 1:1 между буквой координат сочленения и оси):
-
JOINT_0 = X
-
JOINT_1 = Y
-
JOINT_2 = Z
-
JOINT_3 = A
-
JOINT_4 = B
-
JOINT_5 = C
-
JOINT_6 = U
-
JOINT_7 = V
-
JOINT_8 = W
Другие кинематические модули с identity kinematics доступны для поддержки конфигураций с частичными наборами осей. Например, при использовании trivkins с coordinates=XZ
соотношения сочленение-ось будут такими:
-
JOINT_0 = X
-
JOINT_1 = Z
Для получения дополнительной информации о модулях кинематики см. справочную страницу kins (в терминале UNIX введите man kins
).
-
TYPE = LINEAR
- Тип сочленения:LINEAR
илиANGULAR
. -
UNITS = INCH
- If specified, this setting overrides the related[TRAJ] UNITS
setting, e.g.,[TRAJ]LINEAR_UNITS
if theTYPE
of this joint isLINEAR
,[TRAJ]ANGULAR_UNITS
if theTYPE
of this joint isANGULAR
. -
MAX_VELOCITY = 1.2
- Максимальная скорость для этого сочленения в machine unit в секунду. -
MAX_ACCELERATION = 20.0
- Максимальное ускорение для этого сочленения в единицах станка в секунду в квадрате. -
BACKLASH = 0.0000
- Backlash in machine units. Backlash compensation value can be used to make up for small deficiencies in the hardware used to drive an joint. If backlash is added to an joint and you are using steppers theSTEPGEN_MAXACCEL
must be increased to 1.5 to 2 times theMAX_ACCELERATION
for the joint. Excessive backlash compensation can cause an joint to jerk as it changes direction. If a COMP_FILE is specified for a joint BACKLASH is not used. -
COMP_FILE =
file.extension - The compensation file consists of map of position information for the joint. Compensation file values are in machine units. Each set of values are are on one line separated by a space. The first value is the nominal value (the commanded position). The second and third values depend on the setting ofCOMP_FILE_TYPE
. Points in between nominal values are interpolated between the two nominals. Compensation files must start with the smallest nominal and be in ascending order to the largest value of nominals. File names are case sensitive and can contain letters and/or numbers. Currently the limit inside LinuxCNC is for 256 triplets per joint.Если для соединения указан
COMP_FILE
,BACKLASH
не используется. -
COMP_FILE_TYPE = 0
or1
- Указывает тип файла компенсации. Первое значение — это номинальное (заданное) положение для обоих типов.
COMP_FILE_TYPE
должен быть указан для каждогоCOMP_FILE
.-
Type 0: Второе значение определяет фактическое положение при движении сочленения в положительном направлении (возрастающее значение). Третье значение определяет фактическое положение, когда сочленение движется в отрицательном направлении (убывающее значение).
Type 0 Пример-1.000 -1.005 -0.995 0.000 0.002 -0.003 1.000 1.003 0.998
-
Type 1: Второе значение определяет положительное смещение от номинала при движении в положительном направлении. Третье значение определяет отрицательное смещение от номинала при движении в отрицательном направлении.
Type 1 Пример-1.000 0.005 -0.005 0.000 0.002 -0.003 1.000 0.003 -0.004
-
-
MIN_LIMIT = -1000
- The minimum limit for joint motion, in machine units. When this limit is reached, the controller aborts joint motion. For a rotary joint with unlimited rotation having noMIN_LIMIT
for that joint in the[JOINT_N]
section a the value -1e99 is used. -
MAX_LIMIT = 1000
- The maximum limit for joint motion, in machine units. When this limit is reached, the controller aborts joint motion. For a rotary joint with unlimited rotation having noMAX_LIMIT
for that joint in the[JOINT_N]
section a the value 1e99 is used.
Note
|
Для identity kinematics настройки |
Note
|
Настройки |
-
MIN_FERROR = 0.010
- This is the value in machine units by which the joint is permitted to deviate from commanded position at very low speeds. If MIN_FERROR is smaller than FERROR, the two produce a ramp of error trip points. You could think of this as a graph where one dimension is speed and the other is permitted following error. As speed increases the amount of following error also increases toward theFERROR
value. -
FERROR = 1.0
-FERROR
is the maximum allowable following error, in machine units. If the difference between commanded and sensed position exceeds this amount, the controller disables servo calculations, sets all the outputs to 0.0, and disables the amplifiers. IfMIN_FERROR
is present in the INI file, velocity-proportional following errors are used. Here, the maximum allowable following error is proportional to the speed, withFERROR
applying to the rapid rate set by[TRAJ]MAX_VELOCITY
, and proportionally smaller following errors for slower speeds. The maximum allowable following error will always be greater thanMIN_FERROR
. This prevents small following errors for stationary axes from inadvertently aborting motion. Small following errors will always be present due to vibration, etc. -
LOCKING_INDEXER = 1
- Указывает, что сочленение используется в качестве фиксирующего индексатора.
2.13.1. Homing
Эти параметры связаны с возвращением в исходное положение. Для более подробного объяснения прочтите главу Homing Configuration.
-
HOME = 0.0
- Положение, в которое перейдет сочленение после завершения последовательности возврата в исходное положение. -
HOME_OFFSET = 0.0
- Положение концевика исходного положения сочленения или индексного импульса в единицах станка. Если во время процесса приведения в исходное положение найдено исходное положение, это положение присваивается этой точке. При совместном использовании концевика исходного положения и концевика предела и использовании последовательности приведения в исходное положение, которая оставляет концевик исходного положения/предела в переключенном состоянии, можно использовать смещение исходного положения, чтобы определить положение концевика исходного положения, отличное от 0, если ваше положение HOME должно быть 0. -
HOME_SEARCH_VEL = 0.0
- Initial homing velocity in machine units per second. Sign denotes direction of travel. A value of zero means assume that the current location is the home position for the machine. If your machine has no home switches you will want to leave this value at zero. -
HOME_LATCH_VEL = 0.0
- Скорость возврата в исходное положение в единицах станка в секунду до положения фиксации концевика исходного положения. Знак указывает направление движения. -
HOME_FINAL_VEL = 0.0
- Скорость в единицах станка в секунду от фиксации исходного положения до исходного положения. Если оставить значение 0 или не включить в объединение, используется быстрая скорость. Должно быть положительным числом. -
HOME_USE_INDEX = NO
- Если энкодер, используемый для этого сочленения, имеет индексный импульс, а карта управления движением поддерживает этот сигнал, вы можете установить для него значение YES. Если установлено YES, это повлияет на тип используемого шаблона исходного положения. В настоящее время вы не можете приводить в исходное положение до индекса с помощью шаговых двигателей, если вы не используете StepGen в режиме скорости и PID. -
HOME_INDEX_NO_ENCODER_RESET = NO
- Используйте YES, если энкодер, используемый для этого сочленения, не сбрасывает свой счетчик при обнаружении индексного импульса после активации контакта HAL index_enable сочленения. Применимо только дляHOME_USE_INDEX = YES
. -
HOME_IGNORE_LIMITS = NO
- Когда вы используете концевик предела в качестве концевика исходного положения и концевика предела, для него должно быть установлено значение YES. Если установлено значение YES, концевик предела для этого сочленения игнорируется при возвращении в исходное положение. Вы должны настроить приведение в исходное положение так, чтобы в конце приведения в исходное положение концевик исходного положения/предела не находился в переключенном состоянии. В противном случае после перемещения в исходное положение вы получите ошибку концевика предела. -
HOME_IS_SHARED =
<n> - Если вход исходного положения используется более чем одним сочленением, установите <n> в 1, чтобы предотвратить запуск возврата в исходное положение, если один из общих концевиков уже замкнут. Установите <n> в 0, чтобы разрешить возврат в исходное положение, если переключатель замкнут. -
HOME_ABSOLUTE_ENCODER = 0
|1
|2
- Используется для обозначения того, что сочленение использует абсолютный энкодер. При запросе на приведение в исходное положение текущее значение сочленения устанавливается равным значениюHOME_OFFSET
. Если параметрHOME_ABSOLUTE_ENCODER
равен 1, станок делает обычный окончательный переход к значениюHOME
. Если параметрHOME_ABSOLUTE_ENCODER
равен 2, последнее перемещение не выполняется. -
HOME_SEQUENCE =
<n> - Используется для определения последовательности "Home All". <n> должно начинаться с0
,1
или-1
. Дополнительные последовательности могут быть указаны с номерами, увеличивающимися на 1 (по абсолютному значению). Пропуск порядковых номеров не допускается. ЕслиHOME_SEQUENCE
опущен, сочленение не будет привязано к функции "Home All". Одновременно можно разместить более одного сочленения, указав один и тот же порядковый номер для нескольких сочленений. Отрицательный порядковый номер используется для отсрочки финального перемещения для всех сочленений, имеющих этот (отрицательный или положительный) порядковый номер. Дополнительную информацию см. в разделе HOME SEQUENCE. -
VOLATILE_HOME = 0
- Если этот параметр включен (установлен в1
), это сочленение будет не в исходном положении, если питание станка выключено или включен аварийный останов. Это полезно, если ваш станок имеет концевики исходного положения и не имеет обратной связи по положению, например, станок с приводом, управляемым step/dir.
2.13.2. Сервопривода
Эти параметры относятся к сочленениям, управляемыми сервоприводами.
Warning
|
Ниже приведены пользовательские записи INI-файла, которые вы можете найти в образце INI-файла или файле, созданном мастером. Они не используются программным обеспечением LinuxCNC. Они нужны только для того, чтобы собрать все настройки в одном месте. Дополнительную информацию о пользовательских записях INI-файла см. в подразделе Custom Sections and Variables. |
Следующие элементы могут использоваться компонентом ПИД-регулятора, при этом предполагается, что выходной сигнал - уровень напряжения.
-
DEADBAND = 0.000015
- Насколько рядом является достаточно рядом, чтобы считать, что двигатель в положении, в machine unit.Часто оно устанавливается на расстояние, эквивалентное 1, 1,5, 2 или 3 отсчетам энкодера, но строгих правил не существует. Более свободные (бОльшие) настройки позволяют уменьшить hunting сервопривода за счет более низкой точности. Более жесткие (меньшие) настройки обеспечивают более высокую точность за счет большей hunting сервопривода. Действительно ли это более точно, если оно также и более неопределенно? Как правило, лучше избегать или, по крайней мере, ограничивать hunting сервоприводов, если это возможно.
Будьте осторожны при уменьшении отсчетов энкодера ниже 1, так как вы можете создать условие, при котором ваш сервопривод не будет работать. Это может варьироваться от hunting (медленного) до nervous (быстрого) и даже до squealing, которое легко спутать с колебаниями, вызванными неправильной настройкой. Лучше поначалу пропустить отсчет другой, пока вы не пройдете хотя бы gross tuning.
Пример расчета единиц станка на импульс энкодера для использования при определении значения
DEADBAND
: -
BIAS = 0.000
- Этот параметр используется hm2-servo и некоторыми другими. Смещение — это постоянная величина, которая добавляется к выходным данным. В большинстве случаев его следует оставить равным нулю. Однако, иногда может быть полезно компенсировать смещения в сервоусилителях или сбалансировать вес объекта, который движется вертикально. Смещение выключается при отключении контура ПИД, как и все остальные компоненты выхода. -
P = 50
- Пропорциональное усиление для сервопривода сочленения. Это значение умножает ошибку между заданным и фактическим положением в единицах станка, что приводит к увеличению расчетного напряжения для усилителя двигателя. Единицы усиления P — это вольты на единицу станка, например -
I = 0
- Интегральный коэффициент усиления сервопривода сочленения. Это значение умножает совокупную ошибку между заданным и фактическим положением в единицах станка, что приводит к увеличению расчетного напряжения для усилителя двигателя. Единицы усиления I – вольты на единицу станка в секунду, например: -
D = 0
- Производное усиление для сервопривода сочленения. Это значение умножает разницу между текущей и предыдущей ошибками, что приводит к увеличению расчетного напряжения для усилителя двигателя. Единицы усиления D — это вольты на единицу станка в секунду, например -
FF0 = 0
- Усиление прямой связи 0го порядка. Это число умножается на заданное положение, что приводит к увеличению расчетного напряжения для усилителя двигателя. Единицы усиления FF0 — это вольты на единицу станка, например -
FF1 = 0
- Усиление прямой связи 1^го порядка. Это число умножается на изменение заданного положения в секунду, что приводит к увеличению расчетного напряжения для усилителя двигателя. Единицы усиления FF1 — это вольты на единицу станка в секунду, например -
FF2 = 0
- Усиление прямой связи 2го порядка. Это число умножается на изменение заданного положения в секунду за секунду, что приводит к увеличению расчетного напряжения для усилителя двигателя. Единицы усиления FF2 — это вольты на единицу станка в секунду в секунду, например -
OUTPUT_SCALE = 1.000
-
OUTPUT_OFFSET = 0.000
Эти два значения являются коэффициентами масштабирования и смещения для выхода сочленения на усилители двигателей.
Второе значение (смещение) вычитается из вычисленного выходного сигнала (в вольтах) и делится на первое значение (масштабный коэффициент) перед записью в цифро-аналоговые преобразователи. Единицы на значениях шкалы выражаются в истинных вольтах на выходное напряжение ЦАП. Единицы измерения значения смещения указаны в вольтах. Их можно использовать для линеаризации ЦАП. В частности, при записи выходных данных LinuxCNC сначала преобразует желаемый выходной сигнал в единицах квази СИ-единицы в необработанные значения исполнительного механизма, например, вольты для ЦАП усилителя. Это масштабирование выглядит так:
Значение масштаба можно получить аналитически, выполнив анализ единиц измерения, т. е. единицами измерения являются [выходные единицы СИ]/[единицы привода]. Например, на станке с усилителем в режиме скорости, где напряжение 1В приводит к скорости 250 мм/с.
Обратите внимание, что единицы смещения указаны в единицах станка, например: мм/с, и они предварительно вычитаются из показаний датчика. Значение этого смещения получается путем нахождения значения вашего выхода, которое дает 0,0 для выхода привода. Если ЦАП линеаризован, это смещение обычно равно 0,0.
Масштаб и смещение также можно использовать для линеаризации ЦАП, в результате чего получаются значения, отражающие совокупное влияние коэффициента усиления усилителя, нелинейности ЦАП, блоков ЦАП и т. д.
Для этого выполните следующую процедуру.
-
Постройте калибровочную таблицу для выхода, подавая на ЦАП нужное напряжение и измеряя результат.
-
Выполните линейную аппроксимацию методом наименьших квадратов, чтобы получить коэффициенты a, b такие, что
-
Обратите внимание: нам нужен необработанный выходной сигнал, чтобы результат измерения был идентичен заданному выходному сигналу. Это означает
-
-
В результате коэффициенты a и b из линейной аппроксимации можно использовать непосредственно в качестве масштаба и смещения для контроллера.
В следующей таблице приведен пример измерения напряжения.
Table 1. Измерения выходного напряжения Необработанные Измеренные -10
-9.93
-9
-8.83
0
-0.03
1
0.96
9
9.87
10
10.87
-
-
MAX_OUTPUT = 10
- Максимальное значение выходного сигнала ПИД-компенсации, записываемого в усилитель двигателя, в вольтах. Вычисленное выходное значение ограничивается этим пределом. Ограничение применяется перед масштабированием до необработанных выходных единиц. Значение применяется симметрично как к плюсовой, так и к минусовой стороне. -
INPUT_SCALE = 20000
- в примерах конфигураций -
ENCODER_SCALE = 20000
- во встроенных конфигах PnCconf
Указывает количество импульсов, соответствующее перемещению одного узла станка, как установлено в разделе [TRAJ]
. Для линейного сочленения одна единица станка будет равна настройке LINEAR_UNITS
. Для углового сочленения одна единица равна настройке в ANGULAR_UNITS
. Второе число, если оно указано, игнорируется. Например, для энкодера с частотой 2000 отсчетов на оборот, передачей 10 об/дюйм и желаемыми единицами измерения в дюймах мы имеем:
2.13.3. Шаговый привод
Эти параметры актуальны для сочленений, управляемых шаговыми двигателями.
Warning
|
Ниже приведены пользовательские записи INI-файла, которые вы можете найти в образце INI-файла или файле, созданном мастером. Они не используются программным обеспечением LinuxCNC и предназначены только для размещения всех настроек в одном месте. Дополнительную информацию о пользовательских записях INI-файла см. в подразделе Custom Sections and Variables. |
Следующие элементы могут использоваться компонентом StepGen.
-
SCALE = 4000
- в примерах конфигураций -
STEP_SCALE = 4000
- во встроенных конфигах PnCconf
Указывает количество импульсов, соответствующее перемещению одного узла станка, как установлено в разделе [TRAJ]
. Для шаговых систем это количество шаговых импульсов, выдаваемых на единицу станка. Для линейного сочленения одна единица станка будет равна настройке LINEAR_UNITS
. Для углового соединения одна единица равна настройке в ANGULAR_UNITS
. Для сервосистем это количество импульсов обратной связи на единицу станка. Второе число, если оно указано, игнорируется.
Например, для шагового двигателя 1,8 градуса с полушагом, передачей 10 об/дюйм и желаемым machine unit в дюймах мы имеем:
Note
|
В старых файлах INI и HAL для этого значения использовалось INPUT_SCALE. |
-
ENCODER_SCALE = 20000
(Дополнительно используется во встроенных конфигурациях PnCconf) — указывает количество импульсов, соответствующее перемещению одной единицы станка, как установлено в разделе[TRAJ]
. Для линейного сочленения одна единица станка будет равна настройкеLINEAR_UNITS
. Для углового соединения одна единица равна настройке вANGULAR_UNITS
. Второе число, если оно указано, игнорируется. Например, для энкодера с частотой 2000 отсчетов на оборот, передачей 10 об/дюйм и желаемыми единицами измерения в дюймах мы имеем:
-
STEPGEN_MAXACCEL = 21.0
- Предел ускорения для генератора шагов. Оно должно быть на 1–10 % больше, чемMAX_ACCELERATION
сочленения. Это значение улучшает настройку "position loop" StepGen. Если вы добавили компенсацию люфта в сочленение, то оно должно быть в 1,5–2 раза больше, чемMAX_ACCELERATION
. -
STEPGEN_MAXVEL = 1.4
- Более старые файлы конфигурации также имеют ограничение скорости для генератора шагов. Если указано, оно также должно быть на 1–10% больше, чемMAX_VELOCITY
сочленения. Последующее тестирование показало, что использование STEPGEN_MAXVEL не улучшает настройку цикла позиционирования StepGen.
2.14. [SPINDLE_<num>] Section(s))
<num> указывает номер шпинделя 0… (num_spindles-1)
Значение num_spindles устанавливается [TRAJ]SPINDLES=
.
По умолчанию максимальная скорость шпинделя в прямом и обратном направлении составляет примерно 2147483000 об/мин.
По умолчанию минимальная скорость шпинделя в прямом и обратном направлении равна 0 об/мин.
По умолчанию приращение составляет 100 об/мин.
Вы можете изменить эти значения по умолчанию, установив следующие переменные INI:
Note
|
Эти настройки предназначены для компонента контроллера движения. Экраны управления могут дополнительно ограничить эти настройки. |
-
MAX_FORWARD_VELOCITY = 20000
Максимальная скорость шпинделя (в об/мин) для указанного шпинделя. Необязательный. Это также установит для MAX_REVERSE_VELOCITY отрицательное значение, если оно не будет переопределено. -
MIN_FORWARD_VELOCITY = 3000
Минимальная скорость шпинделя (в об/мин) для указанного шпинделя. Необязательный. Многие шпиндели имеют минимальную скорость, ниже которой их нельзя использовать. Любая команда скорости шпинделя ниже этого предела будет /увеличена/ до этого предела. -
MAX_REVERSE_VELOCITY = 20000
Если этот параметр опущен, по умолчанию будет установлено значениеMAX_FORWARD_VELOCITY
. Его можно использовать в случаях, когда скорость шпинделя ограничена в обратном направлении. Установите ноль для шпинделей, которые не должны вращаться в обратном направлении. В этом контексте "max" относится к абсолютной величине скорости шпинделя. -
MIN_REVERSE_VELOCITY = 3000`
Эта настройка эквивалентнаMIN_FORWARD_VELOCITY
, но для обратного вращения шпинделя. По умолчанию будет установлено значение MIN_FORWARD_VELOCITY, если оно опущено. -
INCREMENT = 200
Устанавливает размер шага для команд увеличения/уменьшения скорости шпинделя. Это может иметь разное значение для каждого шпинделя. Эта настройка эффективна для AXIS и Touchy, но учтите, что на некоторых экранах управления ситуация может обрабатываться по-другому. -
HOME_SEARCH_VELOCITY = 100
- FIXME: Возврат шпинделя еще не работает. Устанавливает скорость возврата в исходное положение (об/мин) шпинделя. Шпиндель будет вращаться с этой скоростью во время процесса возврата в исходное положение до тех пор, пока не будет определен индекс шпинделя, после чего положение шпинделя будет установлено на ноль. Обратите внимание, что нет смысла устанавливать исходное положение шпинделя на любое значение, отличное от нуля, и поэтому нет возможности сделать это. -
HOME_SEQUENCE = 0
- FIXME: Исходное положение шпинделя еще не работает. Управляет тем, где в обычной последовательности возврата в исходное положение происходят вращения шпинделя. УстановитеHOME_SEARCH_VELOCITY
на ноль, чтобы избежать вращения шпинделя во время последовательности возврата в исходное положение.
2.15. [EMCIO] Section
-
TOOL_TABLE = tool.tbl
- Файл, содержащий информацию об инструменте, описанную в Руководстве Пользователя. -
DB_PROGRAM = db_program
- Путь к исполняемой программе, которая управляет данными инструмента. Если указан DB_PROGRAM, запись Tool_TABLE игнорируется. -
TOOL_CHANGE_POSITION = 0 0 2
- Указывает местоположение XYZ, к которому необходимо перейти при смене инструмента, если используются три цифры. Указывает местоположение XYZABC при использовании 6 цифр. Указывает местоположение XYZABCUVW при использовании 9 цифр. Замены инструмента можно комбинировать. Например, если вы комбинируете подъем пиноли с изменением положения, вы можете сначала переместить Z, затем X и Y. -
TOOL_CHANGE_WITH_SPINDLE_ON = 1
- Шпиндель будет оставаться включенным во время смены инструмента, если значение равно 1. Полезно для токарных станков или станков, где материал находится в шпинделе, а не в инструменте. -
TOOL_CHANGE_QUILL_UP = 1
- Ось Z будет перемещена в ноль станка перед сменой инструмента, если значение равно 1. Это то же самое, что выдатьG0 G53 Z0
. -
TOOL_CHANGE_AT_G30 = 1
- Станок перемещается в исходную точку, определенную параметрами 5181-5186 для G30, если значение равно 1. Для получения дополнительной информации см. G-code Settings и G-код G30-G30.1. -
RANDOM_TOOLCHANGER = 1
- Этот параметр для станков, которые не могут поместить инструмент обратно в карман, из которого он был взят. Например, станки, которые заменяют инструмент в активном кармане инструментом в шпинделе.