Linuxcnc.var
Автор предупреждает! Данные этой статьи получены из открытых источников и/или документации на обсуждаемое оборудование или из моей экспериментальной деятельности и являются моим персональным мнением и/или комментарием. Смотрите: NikiWiki:Отказ от ответственности |
Проверялось на LinuxCNC Все данные и примеры, приведенные в этой статье проверялись на по LinuxCNC и могут некорректно работать в других программах управления станками с ЧПУ |
Содержание
Описание
Обратите внимание на то, что в этот раздел я записал не только сохраняемые переменные, но и переменные времени выполнения. Оглавление поможет Вам найти где именно та или иная переменная применяетcя. |
linuxcnc.var - это файл в котором хранятся значения переменных в формате
XXXX = VALUE
где:
- XXXX - четырехзначный номер переменной
- VALUE - значение переменной с точностью 0.000000 до 6 знака, т.е. "микро".
Обратите внимание на то, что все внутренние переменные LinuxCNC и, возможно, других программ управления станками с ЧПУ, являются четырехзначными числами. Скорее всего это дань истории, уж дюже консервативна эта наука. |
В категории Category:LinuxCNC vars будут храниться описания этих переменных и комментарии к ним. Большинство из этих файлов - ссылки именно сюда. Это сделано для того, чтобы было удобнее и быстрее находить к чему относится та или иная переменная. Так, давайте же приведем этот список, я бы сказал, неразрывных взаимоотношений:
Текущая позиция
Переменные 5420-5428 - содержат текущую позицию станка по всем координатам (тут путаницы нет, их 9 штук ровно).
Определение конца инструмента
5061-5069 - это переменные, которые содержат результат probe - определения конца инструмента, производимого командой G38 и 5070 - булева переменная, определяющая то, успешна проба или не очень.
Отступ координатной системы
Часть переменных из файда linuxcnc.vars (5211-5219) описана в G92, G92.1 и G92.2 и имеет непосредственное отношение к отступам, задаваемым для координатной системы.
Системы координат
Другая часть (5221-5230, 5241-5250, 5261-5270, 5281-5290, 5301-5310, 5321-5330, 5341-5350, 5361-5370 и, наконец 5381-5390) описаны в статье на G-код G54 в Таблица номеров переменных для систем координат и относятся к, Вы будете удивлены, координатам координатных систем. Тоже отступы своего рода, но иные и для иных целей предназначены.
Предопределенная позиция
Переменные 5161-5166 - имеют отношение к команде G28 и координатам предопределенной точки в абсолютных координатах станка. Практика применения этих координат очень обширна и в соответствующей статье описана.
Диаметр установленного инструмента
5410 - это переменная, содержащая диаметр текущего инструмента, например, ее можно очень эффективно использовать совместно с G41 и G42. Зная диаметр загруженного инструмента можно легко "прописать" траекторию с учетом компенсации.
Обратите внимание, что эта переменная не сохраняется в файле linuxcnc.var, а является переменной времени выполнения |
Сколько же всего таких переменных?
Скоро тут будет "полный компресс" переменных, которых, к слову сказать, всего переменных в фале linuxcnc.var:
$ wc -l ../configs/YourBunnyCNC/linuxcnc.var 119 ../configs/YourBunnyCNC/linuxcnc.var $
Аж 119 штук, а мы описали из них, пока, только 105 штук (9 в G92, 6 в G28 и 90 в G54. Надо заметить - большую их часть), осталось только 14 переменных.
Конечно, есть риск того, что LinuxCNC не пишет в эти файлы все, что мог бы записать, но наличие там 119 переменных вида XXXX = 0.000000 говорит мне о том, что упомянутый софт и его разработчики не парятся на предмет сохранения ненулевых переменных, а просто "валят" весь массив в файл каждый раз, когда им это предписано.
К стати, предписано не нами, а им самим. По какому алгоритму - думаю не стоит разбираться. Но, если Ваш компьютер перезагрузился по питанию или Reset'у, то не ждите, что в этом файле будут все Ваши данные. Я такие эксперименты производил. Случайно, конечно. Кроме того, я не нашел команды, "сбрасывающей" данные в файл сохраняя состояние.
Другие переменные
Есть (я Видел!) еще и другие переменные, которые не попадают в этот файл, а являются переменными времени выполнения. Их тоже будем описывать, по мере того, как они будут мне попадаться. Но это уже другая тема, хотя категорию хранения описаний этих переменных, я думаю сохранить.