1. Компоненты INI-файла
Типичный INI-файл имеет довольно простую структуру, которая включает в себя:
-
комментарии
-
разделы
-
переменные
Каждый из этих элементов разделен на отдельные строки. Каждый конец строки или символ новой строки создает новый элемент.
1.1. Comments
A comment line is started with a ; or a # mark. When the INI reader sees either of these marks on a line, the rest of the line is ignored by the software. Comments can be used to describe what an INI element will do.
; This is my mill configuration file. # I set it up on January 12, 2012
Комментарии также можно использовать для отключения переменной. Это облегчает выбор между различными переменными.
DISPLAY = axis # DISPLAY = touchy
В этом списке переменной DISPLAY будет присвоено значение axis, поскольку другая закомментирована. Если кто-то неосторожно отредактирует такой список и оставит две строки без комментариев, будет использована первая встреченная.
Note that inside a variable’s value, the "#" and ";" characters are still comments. You should use double or single quoted strings if you need to embed # or ; characters:
# Below results in INCORRECT=value # because comments are stripped INCORRECT = value # and a comment # Correct embedding CORRECT = "value # and an embedded # char"
1.2. Разделы
Related parts of an INI file are separated into sections. A section name is enclosed in brackets like this: [THIS_SECTION]. The order of sections is unimportant. Sections begin at the section name and end at the next section name. Section identifiers are case senstive and can only contain letters A-Z, a-z, digits 0-9 and underscore (_). Additionally, section identifiers cannot start with a digit.
Следующие разделы используются LinuxCNC:
-
[EMC]общие сведения -
[DISPLAY]настройки, связанные с графическим интерфейсом пользователя -
[FILTER]настройки программ входного фильтра -
[RS274NGC]настройки, используемые интерпретатором G-кода -
[EMCMOT]настройки, используемые контроллером движения в реальном времени -
[TASK]настройки, используемые контроллером задач -
[HAL]указывает файлы .hal -
[HALUI]Команды MDI, используемые HALUI -
[APPLICATIONS]Другие приложения, запускаемые LinuxCNC -
[TRAJ]дополнительные настройки, используемые контроллером движения в реальном времени -
[JOINT_n]переменные отдельного сочленения -
[AXIS_l]переменные отдельной оси -
[KINS]кинематические переменные -
[EMCIO]настройки, используемые контроллером ввода-вывода
1.3. Переменные
A variable line is made up of a variable name, an equals sign (=), and a value. A variable identifier is case sensitive and may only consist of letters A-Z, a-z, digits 0-9 and underscore (_). Additionally, variable identifiers cannot start with a digit. White space at the beginning of the line and after the variable identifier, up to the equals sign, is ignored.
MACHINE = My Machine
A variable line may be extended to multiple lines with a terminal backslash (\) character. There may be white space following the trailing backslash character, but this is strongly discouraged.
Идентификаторы разделов не могут быть расширены на несколько строк.
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
A specific variable in a specific sections is often denoted in the documentation as [SECTION]VARIABLE. This specification mirrors the same way they are specified in HAL files for expansion.
Variable values may be quoted to ensure proper space and special character embedding in literal or escaped forms. Both single and double quoted values are allowed. Mutiple quoted value segments are merged into one value. Embedding quotes in quoted values must use the backslash \\ character to escape the embedded quote if it is the same kind as the enclosing quotes. Double quotes values also support all common escape formats and full Unicode:
-
control: \\[abfnrtv]
-
octal: \\[0-2][0-7]{0,2}
-
-
-
The resulting value is always converted into UTF-8 and checked for validity. It is not allowed to embed NUL characters either literally or by using an escape.
STRING = "Hello World!" STRING = 'Hello World Too!' # The following would become: Hello World! STRING = "Hello" \ " " \ 'World' \ "!" EMBED = "Literal single ' in double" EMBED = 'Literal double " in single' EMBED = "Literal double \" in double" EMBED = 'Literal single \' in single' SMILE = "\\370\\237\\230\\200 = 😀" SMILE = "\\xf0\\x9f\\x98\\x80 = 😀" SMILE = "\\ud83d\\ude00 = 😀" SMILE = "\\U0001f600 = 😀"
Variables' value can have types associated when they are read by LinuxCNC. The types are enforced by the INI file reader when the appropriate function calls are performed. All values may always be read as string. Conversion into other types has restrictions. Possible types are:
-
string - the value is taken as-is
-
boolean - only boolean words are accepted
-
signed integer - whole numbers in decimal, hexadecimal, octal or binary bases
-
unsigned integer - whole numbers in decimal, hexadecimal, octal or binary bases
-
real - floating point values (always using decimal point)
-
enumeration - a restricted set of keys to represent a value or function
Signed and unsigned integers are read and converted as 64-bit numbers when marked as s64 and u64. Plain old 32-bit integers are marked int and are always signed. The default number base is decimal. Alternative bases may be specified using a prefix. The complete list of valid integer numbers:
-
\[0-9]+ - decimal
-
0x\[0-9A-Fa-f]+ - hexadecimal
-
0o\[0-7]+ - octal
-
0b\[01]+ - binary
Signed integers may be preceded by a plus (+) or minus (-) sign, regardless number base. Unsigned integers will generate a warning if they are preceded by a minus (-) sign upon conversion.
Boolean values are case insensitive and allow the following words:
-
true/enabled -
TRUE,YESONor1 -
false/disabled -
FALSE,NOOFFor0
Enumerations are a set of keywords defined by LinuxCNC and interpreted to mean a setting, value or functionality. The exact values are declared in the individual variable description and the variables are marked with enum. Most enumerations are interpreted without case. It is noted in the variable description if case matters.
Some LinuxCNC variables are special in that their format is interpreted as a multi-valued entry. These variables have an appropriate description below of the format expected.
Variables that are used by LinuxCNC must always use the section names and variable names as shown. Any custom or private variables and sections are up to the user.
1.4. Пользовательские разделы и переменные
В большинстве примеров конфигураций используются настраиваемые разделы и переменные, позволяющие для удобства разместить все настройки в одном месте.
Чтобы добавить пользовательскую переменную в существующий раздел 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 для фрезерного станка с использованием зондовой пластины.
Please note that G-code embedded ini variables are converted to upper case before they are searched in the INI file. The #<_ini[section]variable> should be called [SECTION]VARIABLE in the INI file.
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. Включить файлы
Файл INI может включать содержимое другого файла с помощью директивы #INCLUDE.
#INCLUDE filenameИмя файла может быть указано как:
-
файл в том же каталоге, что и файл INI
-
файл, расположенный относительно рабочего каталога
-
файл, расположенный относительно рабочего каталога
-
a user-home-relative file name (starts with a ~/)
Поддерживается несколько директив #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
The #INCLUDE directives are supported up to 16 levels — an included file may include additional files up to 16 levels deep. Recursive inclusion of files is detected and flagged as an error. The recommended file extension is .inc. Do not use a file extension of .ini for included files.
2. Разделы INI-файла
Variables in each section have an associated type as denoted in parentheses after the variable.
2.1. [EMC] раздел
-
VERSION = 1.1- (string) The format version of this configuration. Any value other than 1.1 will cause the configuration checker to run and try to update the configuration to the new style joint axes type of configuration. -
MACHINE = My Controller- (string) This is the name of the controller, which is printed out at the top of most graphical interfaces. You can put whatever you want here as long as you make it a single line long. -
DEBUG = 0- (u64) Debug level 0 means no messages will be printed when LinuxCNC is run from a terminal. Debug flags are usually only useful to developers. See src/emc/nml_intf/debugflags.h for other settings. -
RCS_DEBUG = 1(u64) RCS debug messages to show. Print only errors (1) by default if EMC_DEBUG_RCS and EMC_DEBUG_RCS bits inDEBUGare 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- (enum) how to output RCS_DEBUG messages (NULL, STDOUT, STDERR, FILE, LOGGER, MSGBOX). -
RCS_MAX_ERR = -1- (int) Number after which RCS errors are not reported anymore (-1 = infinite). -
NML_FILE = /usr/share/linuxcnc/linuxcnc.nml- (string) Set this if you want to use a non-default NML configuration file.
2.2. [DISPLAY] Section
Различные программы пользовательского интерфейса используют разные параметры, и не каждый параметр поддерживается каждым пользовательским интерфейсом. Существует несколько интерфейсов, таких как AXIS, GMOCCAPY, Touchy, QtVCP’s QtDragon и Gscreen. AXIS — это интерфейс для использования с обычным компьютером и монитором, Touchy — для использования с сенсорными экранами. GMOCCAPY можно использовать обоими способами, а также предлагает множество соединений для управления оборудованием. Описания интерфейсов находятся в разделе Интерфейсы Руководства пользователя.
-
DISPLAY = axis- (string) The file name of the executable providing the user interface to use. Prominent valid options are (all in lower case):axis,touchy,gmoccapy,gscreen,tklinuxcnc,qtvcp,qtvcp qtdragonorqtvcp qtplasmac. -
POSITION_OFFSET = RELATIVE- (enum) The coordinate system (RELATIVEorMACHINE) to show on the DRO when the user interface starts. The RELATIVE coordinate system reflects the G92 and G5x coordinate offsets currently in effect. -
POSITION_FEEDBACK = COMMANDED- (enum) The coordinate value (COMMANDEDorACTUAL) to show on the DRO when the user interface starts. In AXIS this can be changed from the View menu. The COMMANDED position is the position requested by LinuxCNC. The ACTUAL position is the feedback position of the motors if they have feedback like most servo systems. Typically the COMMANDED value is used. -
DRO_FORMAT_MM = %+08.6f- (string) Override the default DRO formatting in metric mode (normally 3 decimal places, padded with spaces to 6 digits to the left). The example above will pad with zeros, display 6 decimal digits and force display of a + sign for positive numbers. Formatting follows Python practice: https://docs.python.org/2/library/string.html#format-specification-mini-language . An error will be raised if the format can not accept a floating-point value. -
DRO_FORMAT_IN = % 4.1f- (string) Override the default DRO formatting in imperial mode (normally 4 decimal places, padded with spaces to 6 digits to the left). The example above will display only one decimal digit. Formatting follows Python practice: https://docs.python.org/2/library/string.html#format-specification-mini-language . An error will be raised if the format can not accept a floating-point value. -
CONE_BASESIZE = .25- (real) Override the default cone/tool base size of .5 in the graphics display. Valid values are between 0.025 and 2.0. -
DISABLE_CONE_SCALING = TRUE- (bool) Any non-empty value (including "0") will override the default behavior of scaling the cone/tool size using the extents of the currently loaded G-code program in the graphics display. -
MAX_FEED_OVERRIDE = 1.2- (real) The maximum feed override the user may select. 1.2 means 120% of the programmed feed rate. -
MIN_SPINDLE_OVERRIDE = 0.5- (real) The minimum spindle override the user may select. 0.5 means 50% of the programmed spindle speed. (This is used to set the minimum spindle speed.) -
MIN_SPINDLE_0_OVERRIDE = 0.5- (real) The minimum spindle override the user may select. 0.5 means 50% of the programmed spindle speed. (This is used to set the minimum spindle speed.) On multi spindle machine there will be entries for each spindle number. Only used by the QtVCP based user interfaces. -
MAX_SPINDLE_OVERRIDE = 1.0- (real) The maximum spindle override the user may select. 1.0 means 100% of the programmed spindle speed. -
MAX_SPINDLE_0_OVERRIDE = 1.0- (real) The maximum feed override the user may select. 1.2 means 120% of the programmed feed rate. On multi spindle machine there will be entries for each spindle number. Only used by the QtVCP based user interfaces. -
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- Any non-empty value (including "0") will enable showing a prompt message with homing request, when the Power On button is pressed in AXIS GUI. Pressing the "Ok" button in prompt message is equivalent to pressing the "Home All" button(or the Ctrl-HOME key). -
FOAM_W = 1.5sets the foam W height. -
FOAM_Z = 0sets the foam Z height. -
GRAPHICAL_MAX_FILE_SIZE = 20largest size (in mega bytes) that will be displayed graphically. If the program is bigger than this setting, a bounding box will be displayed. By default, this setting is at 20 MB or 1/4 of the system memory, which ever is smaller. A negative value is interpreted as unlimited.
|
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] раздел
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] раздел
-
PARAMETER_FILE = myfile.var- Файл, расположенный в том же каталоге, что и файл INI, содержащий параметры, используемые интерпретатором (сохраняемые между запусками). -
ORIENT_OFFSET = 0- Значение с плавающей запятой, добавленное к параметру слова R операции M19 Orient Spindle. Используется для определения произвольного нулевого положения независимо от ориентации крепления энкодера. -
RS274NGC_STARTUP_CODE = G17 G20 G40 G49 G64 P0.001 G80 G90 G92.1 G94 G97 G98- Строка кодов ЧПУ, с помощью которой инициализируется интерпретатор. Это не заменяет указание модальных G-кодов в верхней части каждого файла NGC, поскольку модальные коды станков различаются и могут быть изменены G-кодом, интерпретированным ранее в сеансе. -
SUBROUTINE_PATH = ncsubroutines:/tmp/testsubs:lathesubs:millsubs- Указывает список до 10 каталогов, разделенных двоеточиями (:), в которых осуществляется поиск, если в G-коде указаны однофайловые подпрограммы. Поиск в этих каталогах осуществляется после поиска[DISPLAY]PROGRAM_PREFIX(если он указан) и перед поиском[WIZARD]WIZARD_ROOT(если он указан). Пути ищутся в том порядке, в котором они перечислены. Используется первый соответствующий файл подпрограммы, найденный при поиске. Каталоги указываются относительно текущего каталога для INI-файла или как абсолютные пути. Список не должен содержать промежуточных пробелов. -
G64_DEFAULT_TOLERANCE =n (Default: 0) Default P value for G64 if P is not called out. -
G64_DEFAULT_NAIVETOLERANCE =n (Default: 0) Default Q value for G64 if Q is not called out. -
CENTER_ARC_RADIUS_TOLERANCE_INCH =n (по умолчанию: 0.00005) -
CENTER_ARC_RADIUS_TOLERANCE_MM =n (по умолчанию: 0.00127) -
USER_M_PATH = myfuncs:/tmp/mcodes:experimentalmcodes- Указывает список каталогов, разделенных двоеточием (:), для пользовательских функций. Каталоги указываются относительно текущего каталога для INI-файла или как абсолютные пути. Список не должен содержать промежуточных пробелов.Поиск производится для каждой возможной определяемой пользователем функции, обычно (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. -
G73_PECK_CLEARANCE = .020 (default: Metric machine: 1mm, imperial machine: .050 inches) Chip breaking back-off distance in machine units
-
G83_PECK_CLEARANCE = .020 (default: Metric machine: 1mm, imperial machine: .050 inches) Clearance distance from last feed depth when machine rapids back to bottom of hole, in machine units.
|
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] раздел
Этот раздел является настраиваемым и не используется 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] раздел
-
TASK = milltask- Указывает имя исполняемой task. Исполняемый файл task выполняет различные действия, например:-
общаться с пользовательскими интерфейсами через NML,
-
взаимодействовать с планировщиком движений в реальном времени через общую память, отличную от HAL, и
-
интерпретировать G-код. В настоящее время существует только один исполняемый файл задачи, который имеет смысл для 99,9% пользователей — milltask.
-
-
CYCLE_TIME = 0.010- The period, in seconds, at which TASK will run. This parameter affects the polling interval when waiting for motion to complete, when executing a pause instruction, and when accepting a command from a user interface. There is usually no need to change this number. Defaults to 0.100 if omitted.
2.7. [HAL] раздел
-
HALFILE = example.hal- Запустите файл example.hal при запуске.Если
HALFILEуказан несколько раз, файлы интерпретируются в том порядке, в котором они появляются в INI-файле. Файлы HAL являются описательными, выполнение того, что описано в файлах HAL, инициируется потоками, в которые встроены функции, а не чтением файла HAL. Почти все конфигурации будут иметь по крайней мере один HALFILE, а в шаговых системах обычно есть два таких файла, то есть один, который определяет общую конфигурацию шагового привода (core_stepper.hal), и другой, который определяет расположение контактов станка (xxx_pinout.hal).Файлы HAL, указанные в переменной
HALFILES, находятся с помощью поиска. Если указанный файл найден в каталоге, содержащем файл INI, он используется. Если указанный файл не найден в этом каталоге файлов INI, поиск выполняется с использованием системной библиотеки файлов HAL.Если LinuxCNC запускается со сценарием
linuxcncс использованием опции "-Hdirname", указанное имя каталога добавляется к описанному выше поиску, так что сначала выполняется поиск dirname. Опцию "-Hdirname" можно указать несколько раз, каталоги добавляются по порядку.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 items specify files that loadrt HAL components and make signal connections between component pins. Common mistakes are:
-
отсутствие оператора 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] раздел
-
MDI_COMMAND = G53 G0 X0 Y0 Z0- Команду MDI можно выполнить с помощьюhalui.mdi-command-00. Увеличьте число для каждой команды, указанной в разделе [HALUI]. Также можно запускать подпрограммы.MDI_COMMAND = o<yoursub> CALL [#<yourvariable>]
2.9. [APPLICATIONS] раздел
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] раздел
|
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>_ - Указывает единицы станка для линейных осей. Возможные варианты: мм или дюйм. Это не влияет на линейные единицы в коде УП (это делают слова G20 и G21). -
ANGULAR_UNITS =<units> - Указывает единицы станка для осей вращения. Возможные варианты: deg, degree (360 на круг), rad, radian (2*π на круг), grad, или gon (400 на круг). Это не влияет на угловые единицы кода УП. В RS274NGC слова A, B и C всегда выражаются в градусах. -
DEFAULT_LINEAR_VELOCITY = 0.0167- Начальная скорость ступенчатого перемещения линейных осей, в машинных единицах в секунду. Значение, отображаемое в AXIS, равно машинным единицам в минуту. -
DEFAULT_LINEAR_ACCELERATION = 2.0- На станках с nontrivial kinematics ускорение, используемое для "teleop" (декартово пространство) медленных подач, выражается в единицах станка в секунду. -
MAX_LINEAR_VELOCITY = 5.0- Максимальная скорость для любой оси или скоординированного перемещения в единицах станках в секунду. Отображаемое значение равно 300 единицам в минуту. -
MAX_LINEAR_ACCELERATION = 20.0- Максимальное ускорение для любой оси или перемещение согласованной оси, в единицах станка в секунду. -
PLANNER_TYPE = 0- Selects the trajectory planner type: 0 = trapezoidal (default), 1 = S-curve with jerk limiting. S-curve planning is only active whenPLANNER_TYPE = 1ANDMAX_LINEAR_JERK > 0. -
MAX_LINEAR_JERK = 10000.0- The maximum jerk (rate of change of acceleration) for coordinated moves, in machine units per second cubed. Default is 1e9 (1 billion) if not specified, which effectively disables jerk limiting while avoiding numerical instability. Values are clamped to a maximum of 1e9 to prevent numerical issues in S-curve calculations. WhenPLANNER_TYPE = 1, this enables S-curve trajectory planning. Note: Not specifying MAX_LINEAR_JERK (defaulting to 1e9) produces motion similar to trapezoidal planning (PLANNER_TYPE = 0) but not identical, as extremely high jerk still uses S-curve calculations. -
POSITION_FILE =position.txt - Если установлено непустое значение, позиции сочленений сохраняются между запусками в этом файле. Это позволяет станку стартовать с теми же координатами, которые были у него при выключении. Это предполагает, что при выключенном питании станок не двигался. Если не установлено, позиции сочленений не сохраняются и будут начинаться с 0 при каждом запуске LinuxCNC. Это может помочь на небольших станках без переключателей исходной позиции. При использовании интерфейса преобразователя Mesa этот файл можно использовать для эмуляции абсолютных энкодеров и устранения необходимости возврата в исходное положение (без потери точности). Дополнительную информацию см. на странице руководства hostmot2. -
NO_FORCE_HOMING = 1- (bool) The default behavior is for LinuxCNC to force the user to home the machine before any MDI command or a program is run. Normally, only jogging is allowed before homing. For configurations using identity kinematics, settingNO_FORCE_HOMING = 1allows the user to make MDI moves and run programs without homing the machine first. Interfaces using identity kinematics without homing ability will need to have this option set to 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] раздел
-
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- (enum) The type of this axis, eitherLINEARorANGULAR. 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- (real) Maximum velocity for this axis in machine units per second. -
MAX_ACCELERATION = 20.0- (real) Maximum acceleration for this axis in machine units per second squared. -
MAX_JERK = 0.0- (real) Maximum jerk for this axis in machine units per second cubed. Used when S-curve trajectory planning is enabled. When set to 0 (default), no per-axis jerk limiting is applied. -
MIN_LIMIT = -1000- (real) 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_LIMITis in force. For a rotary axis (A,B,C typ) with unlimited rotation having noMIN_LIMITfor that axis in the[AXIS_<letter>]section a value of -1e99 is used. -
MAX_LIMIT = 1000- (real) 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_LIMITfor that axis in the[AXIS_<letter>]section a value of 1e99 is used. -
WRAPPED_ROTARY = 1- (bool) When this is set to 1 for an ANGULAR axis the axis will move 0-359.999 degrees. Positive Numbers will move the axis in a positive direction and negative numbers will move the axis in the negative direction. -
LOCKING_INDEXER_JOINT = 4- (int) This value selects a joint to use for a locking indexer for the specified axis <letter>. In this example, the joint is 4 which would correspond to the B axis for a XYZAB system with trivkins (identity) kinematics. When set, a G0 move for this axis will initiate an unlock with thejoint.4.unlock pinthen wait for thejoint.4.is-unlockedpin then move the joint at the rapid rate for that joint. After the move thejoint.4.unlockwill be false and motion will wait forjoint.4.is-unlockedto go false. Moving with other joints is not allowed when moving a locked rotary joint. To create the unlock pins, use the motmod parameter: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- (real) If nonzero, this item enables the use of HAL input pins for external axis offsets:axis.<letter>.eoffset-enable axis.<letter>.eoffset-count axis.<letter>.eoffset-scale
Информацию об использовании смотрите в главе: External Axis Offsets.
2.13. [JOINT_<num>] разделы
<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- (enum) The type of joint, eitherLINEARorANGULAR. -
UNITS = INCH- (enum) If specified, this setting overrides the related[TRAJ] UNITSsetting, e.g.,[TRAJ]LINEAR_UNITSif theTYPEof this joint isLINEAR,[TRAJ]ANGULAR_UNITSif theTYPEof this joint isANGULAR. -
MAX_VELOCITY = 1.2- (real) Maximum velocity for this joint in machine units per second. -
MAX_ACCELERATION = 20.0- (real) Maximum acceleration for this joint in machine units per second squared. -
MAX_JERK = 0.0- (real) Maximum jerk for this joint in machine units per second cubed. Used when S-curve trajectory planning is enabled. When set to 0 (default), no per-joint jerk limiting is applied. -
BACKLASH = 0.0000- (real) 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_MAXACCELmust be increased to 1.5 to 2 times theMAX_ACCELERATIONfor 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 - (string) 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 = 0or1- (int) Specifies the type of compensation file. The first value is the nominal (commanded) position for both types.
ACOMP_FILE_TYPEmust be specified for eachCOMP_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- (real) 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_LIMITfor that joint in the[JOINT_N]section a the value -1e99 is used. -
MAX_LIMIT = 1000- (real) 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_LIMITfor that joint in the[JOINT_N]section a the value 1e99 is used.
|
Note
|
Для identity kinematics настройки |
|
Note
|
Настройки |
-
MIN_FERROR = 0.010- (real) 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 theFERRORvalue. -
FERROR = 1.0- (real)FERRORis 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_FERRORis present in the INI file, velocity-proportional following errors are used. Here, the maximum allowable following error is proportional to the speed, withFERRORapplying 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- (bool) Indicates the joint is used as a locking indexer.
2.13.1. Homing
Эти параметры связаны с возвращением в исходное положение. Для более подробного объяснения прочтите главу Homing Configuration.
-
HOME = 0.0- (real) The position that the joint will go to upon completion of the homing sequence. -
HOME_OFFSET = 0.0- (real) The joint position of the home switch or index pulse, in machine units. When the home point is found during the homing process, this is the position that is assigned to that point. When sharing home and limit switches and using a home sequence that will leave the home/limit switch in the toggled state, the home offset can be used define the home switch position to be other than 0 if your HOME position is desired to be 0. -
HOME_SEARCH_VEL = 0.0- (real) 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- (real) Homing velocity in machine units per second to the home switch latch position. Sign denotes direction of travel. -
HOME_FINAL_VEL = 0.0- (real) Velocity in machine units per second from home latch position to home position. If left at 0 or not included in the joint rapid velocity is used. Must be a positive number. -
HOME_USE_INDEX = NO- (bool) If the encoder used for this joint has an index pulse, and the motion card has provision for this signal you may set it to yes. When it is yes, it will affect the kind of home pattern used. Currently, you can’t home to index with steppers unless you’re using StepGen in velocity mode and PID. -
HOME_INDEX_NO_ENCODER_RESET = NO- (bool) Use YES if the encoder used for this joint does not reset its counter when an index pulse is detected after assertion of the jointindex_enableHAL pin. Applicable only forHOME_USE_INDEX = YES. -
HOME_IGNORE_LIMITS = NO- (bool) When you use the limit switch as a home switch and the limit switch this should be set to YES. When set to YES the limit switch for this joint is ignored when homing. You must configure your homing so that at the end of your home move the home/limit switch is not in the toggled state you will get a limit switch error after the home move. -
HOME_IS_SHARED = NO- (bool) If the home input is shared by more than one joint set to true to prevent homing from starting if the one of the shared switches is already closed. Set to false (the default) to permit homing if a switch is closed. -
HOME_ABSOLUTE_ENCODER = 0|1|2- (int) Used to indicate the joint uses an absolute encoder. At a request for homing, the current joint value is set to theHOME_OFFSETvalue. If theHOME_ABSOLUTE_ENCODERsetting is 1, the machine makes the usual final move to theHOMEvalue. If theHOME_ABSOLUTE_ENCODERsetting is 2, no final move is made. -
HOME_SEQUENCE =<n> - (int) Used to define the "Home All" sequence. <n> must start at0or1or-1. Additional sequences may be specified with numbers increasing by 1 (in absolute value). Skipping of sequence numbers is not allowed. If aHOME_SEQUENCEis omitted, the joint will not be homed by the "Home All" function. More than one joint can be homed at the same time by specifying the same sequence number for more than one joint. A negative sequence number is used to defer the final move for all joints having that (negative or positive) sequence number. For additional info, see: HOME SEQUENCE. -
VOLATILE_HOME = 0- (bool) When enabled (set to1) this joint will be unhomed if the Machine Power is off or if E-Stop is on. This is useful if your machine has home switches and does not have position feedback such as a step and direction driven machine.
2.13.2. Сервопривода
Эти параметры относятся к сочленениям, управляемыми сервоприводами.
|
Warning
|
Ниже приведены пользовательские записи INI-файла, которые вы можете найти в образце INI-файла или файле, созданном мастером. Они не используются программным обеспечением LinuxCNC. Они нужны только для того, чтобы собрать все настройки в одном месте. Дополнительную информацию о пользовательских записях INI-файла см. в подразделе Custom Sections and Variables. |
Следующие элементы могут использоваться компонентом ПИД-регулятора, при этом предполагается, что выходной сигнал - уровень напряжения.
-
DEADBAND = 0.000015- (real) How close is close enough to consider the motor in position, in machine units.Часто оно устанавливается на расстояние, эквивалентное 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>] раздел(ы))
<num> указывает номер шпинделя 0… (num_spindles-1)
Значение num_spindles устанавливается [TRAJ]SPINDLES= .
По умолчанию максимальная скорость шпинделя в прямом и обратном направлении составляет примерно 2147483000 об/мин.
По умолчанию минимальная скорость шпинделя в прямом и обратном направлении равна 0 об/мин.
По умолчанию приращение составляет 100 об/мин.
Вы можете изменить эти значения по умолчанию, установив следующие переменные INI:
|
Note
|
Эти настройки предназначены для компонента контроллера движения. Экраны управления могут дополнительно ограничить эти настройки. |
-
MAX_FORWARD_VELOCITY = 20000- (real) The maximum spindle speed (in rpm) for the specified spindle. Optional. This will also set MAX_REVERSE_VELOCITY to the negative value unless overridden. -
MIN_FORWARD_VELOCITY = 3000- (real) The minimum spindle speed (in rpm) for the specified spindle. Optional. Many spindles have a minimum speed below which they should not be run. Any spindle speed command below this limit will be /increased/ to this limit. -
MAX_REVERSE_VELOCITY = 20000- (real) This setting will default toMAX_FORWARD_VELOCITYif omitted. It can be used in cases where the spindle speed is limited in reverse. Set to zero for spindles which must not be run in reverse. In this context "max" refers to the absolute magnitude of the spindle speed. -
MIN_REVERSE_VELOCITY = 3000- (real) This setting is equivalent toMIN_FORWARD_VELOCITYbut for reverse spindle rotation. It will default to the MIN_FORWARD_VELOCITY if omitted. -
INCREMENT = 200- (real) Sets the step size for spindle speed increment / decrement commands. This can have a different value for each spindle. This setting is effective with AXIS and Touchy but note that some control screens may handle things differently. -
HOME_SEARCH_VELOCITY = 100- (real) FIXME: Spindle homing not yet working. Sets the homing speed (rpm) for the spindle. The spindle will rotate at this velocity during the homing sequence until the spindle index is located, at which point the spindle position will be set to zero. Note that it makes no sense for the spindle home position to be any value other than zero, and so there is no provision to do so. -
HOME_SEQUENCE = 0- (int) FIXME: Spindle homing not yet working Controls where in the general homing sequence the spindle homing rotations occur. Set theHOME_SEARCH_VELOCITYto zero to avoid spindle rotation during the homing sequence.
2.15. [EMCIO] раздел
-
TOOL_TABLE = tool.tbl- (string) The file which contains tool information, described in the User Manual. -
DB_PROGRAM = db_program- (string) Path to an executable program that manages tool data. When a DB_PROGRAM is specified, a TOOL_TABLE entry is ignored. -
TOOL_CHANGE_POSITION = 0 0 2- Указывает местоположение XYZ, к которому необходимо перейти при смене инструмента, если используются три цифры. Указывает местоположение XYZABC при использовании 6 цифр. Указывает местоположение XYZABCUVW при использовании 9 цифр. Замены инструмента можно комбинировать. Например, если вы комбинируете подъем пиноли с изменением положения, вы можете сначала переместить Z, затем X и Y. -
TOOL_CHANGE_WITH_SPINDLE_ON = 1- (bool) The spindle will be left on during the tool change when the value is 1. Useful for lathes or machines where the material is in the spindle, not the tool. -
TOOL_CHANGE_QUILL_UP = 1- (bool) The Z axis will be moved to machine zero prior to the tool change when the value is 1. This is the same as issuing aG0 G53 Z0. -
TOOL_CHANGE_AT_G30 = 1- (bool) The machine is moved to reference point defined by parameters 5181-5186 for G30 if the value is 1. For more information see G-code Parameters and G-code G30-G30.1. -
RANDOM_TOOLCHANGER = 1- (bool) This is for machines that cannot place the tool back into the pocket it came from. For example, machines that exchange the tool in the active pocket with the tool in the spindle.