Мы разработали приложение Probe Screen для более удобной работы с центроискателем (touch probe) и датчиком длины инструмента (toolsetter) в LinuxCNC. Все часто используемые макросы измерений собраны на одном стильном экране, имеют интуитивно понятный внешний вид и требуют минимум шагов для настройки. В этой статье представлено описание и ссылка на исходный код для версии Probe Screen V2.8. Описание предыдущей версии V2 находится здесь.
Установка
- Добавьте в ваш файл
.iniнастройки изpsng/install_add_to_your.ini, подставив свои собственные константы. - Следующие папки из архива необходимо поместить в папку вашей конфигурации:
/python /macros
- Файл
.axisrcпомещается в домашнюю папку~/. Если вы уже используете.axisrc, то просто добавьте в ваш файл содержимое этого.axisrc(используйте CTRL + H в файловом менеджере, чтобы увидеть скрытые системные файлы). - Удалите (или закомментируйте) во всех
.halфайлах строки следующего вида:#loadusr -W hal_manualtoolchange
#net tool-change iocontrol.0.tool-change => hal_manualtoolchange.change
#net tool-changed iocontrol.0.tool-changed <= hal_manualtoolchange.changed
#net tool-number iocontrol.0.tool-prep-number => hal_manualtoolchange.number
Если что-то пошло не так и вам нужна отладка, вот список переменных, которые используются в настройках: вы можете найти их в файлах macros/*.ngc и python/probe_screen.py.
Измерения
Установите щуп в шпиндель.
В ручном режиме переместите щуп по оси Z примерно на 2-10 мм над поверхностью заготовки, а по осям XY примерно в позицию, указанную цветной точкой на соответствующей кнопке Probe Screen.
Заполните параметры (подсказки всплывают при наведении мыши). При изменении параметры автоматически сохраняются в файл .pref.
Search speed (Скорость поиска): «быстрая» подача, с которой щуп ищет целевую заготовку в единицах станка в минуту. Как только происходит касание, он отходит на расстояние, указанное в четвертом поле, а затем снова ищет на более медленной скорости уточнения (указанной во втором поле). Это делается для устранения погрешностей, вызванных инерцией станка, точно так же, как LinuxCNC обрабатывает концевые выключатели баз (home switches). Скорость поиска должна быть достаточно медленной, чтобы дать вам приемлемую начальную точность, но достаточно быстрой, чтобы не тратить время на ожидание перемещения.
Рекомендация: 200-500 мм/мин.
Latch speed (Скорость уточнения): «медленная» скорость, которую станок использует для точного измерения. Эта скорость зависит от того, как быстро останавливается ваш станок при срабатывании щупа. Значение этого поля должно быть достаточно малым, чтобы станок мгновенно останавливался при движении на такой скорости. Вы должны поэкспериментировать, чтобы найти наибольшее значение, при котором не страдает точность вашего центроискателя.
Рекомендация: 5-50 мм/мин.
Search distance (Дистанция поиска): это максимальный предел того, как далеко щуп будет искать цель. Если расстояние поиска слишком мало, вы получите сообщение вида «G38 finished without probe trip». В целях безопасности рекомендуется устанавливать этот параметр не больше свободного хода стилуса датчика: 3-4 мм.
Latch distance (Дистанция отскока): это отступ для выполнения повторного поиска (уточнения). Это короткое расстояние (короткое, потому что его нужно будет пройти на «медленной» скорости Latch speed), но достаточно большое, чтобы щуп перестал касаться детали и перешел в состояние готовности к поиску. Если сделать дистанцию отскока слишком большой, вы потратите много времени на ожидание завершения измерения.
Рекомендация: 0.5-1 мм
Diameter of stylus tip (Диаметр наконечника стилуса): Используется для математических расчетов координат результатов поиска. Теоретически, щуп срабатывает, как только шарик касается детали, предотвращая дальнейшее движение оси. Поэтому, если вы используете стилус с шариком диаметром 2 мм, вам нужно зафиксировать координаты станка в 1 мм от места срабатывания датчика, и таким образом учесть диаметр наконечника. Половина значения, введенного в это поле, вычитается или прибавляется к месту срабатывания щупа (во время уточняющего поиска), в зависимости от направления движения. Если это число = 0, итоговые координаты будут смещены неправильно. Стоит использовать микрометр для измерения наконечника стилуса, чтобы внести точный размер в это поле, если производитель вам его не сообщил.
XY clearance (Безопасный отступ XY): это запасное расстояние от измеряемой грани (одинаковое для X и Y, см. схемы ниже). Оно необходимо для компенсации неточного ручного позиционирования щупа над заготовкой перед началом измерений. Если это значение слишком мало, вы рискуете врезаться в деталь. Отступ XY должен быть немного больше радиуса шарика стилуса. Если он слишком большой, вы потеряете время или врежетесь в другую сторону детали.
Рекомендация: радиус стилуса + 0.5 ... 1.5 мм.
Edge length (Длина кромки / радиус): Это расстояние, которое используют некоторые кнопки, чтобы определить, как далеко переместиться на быстрой скорости станка (RAPID_SPEED) в позицию перед началом поиска для ускорения работы. Например, чтобы найти центр внутри отверстия, вы вручную устанавливаете щуп на небольшом расстоянии Z от верха отверстия (можно зайти прямо в отверстие, тогда Z clearance = 0) и примерно (на глаз) в центре. Щуп опустится на значение Z clearance, затем ось X переместится на быстрой скорости на (Edge length минус XY clearance). Затем он переключается на «скорость поиска» и начинает цикл измерений. В случае этой конкретной кнопки (поиск центра отверстия), Edge length должен быть задан перед началом поиска примерно равным радиусу отверстия. Если отверстие, к примеру, около 8 мм, поместите щуп примерно по центру над ним и примерно на +1 мм по оси Z. Установите Edge length = 4 мм, XY clearance = 2 мм. Нажмите кнопку, щуп опустится на значение Z clearance (в нашем случае = 3, щуп войдет на 2 мм в отверстие) и переместится на 2 мм в X- (Edge length 4 мм минус XY clearance 2 мм = 2 мм). Поскольку мы начали примерно в середине отверстия, это действие должно расположить нас примерно в 2 мм от стенки, что хорошо, потому что это не превышает максимальный ход датчика (Search distance = 3 мм). Щуп начинает двигаться со скоростью поиска к стенке -X. После срабатывания щуп отойдет (+X) на дистанцию отскока, замедлится и снова коснется стенки. Это определит положение стенки -X. После уточнения щуп переедет на противоположную сторону отверстия снова на расстоянии около 2 мм от стенки. Процесс повторяется, а также для осей Y+ и Y-.
Если Edge length слишком велик, щуп упрется в край отверстия еще до начала поиска. Поиск остановится и выдаст ошибку. Вам придется перенастроить значения, вручную вернуть щуп в исходное положение и попробовать снова.
Если Edge length слишком мал, щуп может прибыть в нужную начальную позицию, но при поиске не достигнет стенки отверстия. Вы получите другую ошибку. Скорректируйте значения, верните щуп и повторите попытку.
Рекомендации:
- для кнопок центра (отверстие-цилиндр) установите Edge length примерно равным предполагаемому радиусу (не путать с диаметром),
- для кнопок углов Edge length равен отступу вдоль края от угловой точки,
- для кнопок длины установите Edge length примерно равным половине искомой длины (примерно равен радиусу вписанной окружности),
- Edge length вообще не используется в кнопках для простых поисков по одной оси (X+, X-, Y+, Y-, Z-).
Z clearance (Глубина поиска): это глубина, на которой будет проводиться поиск относительно текущего положения по оси Z. Z clearance требуется для измерений снаружи (левая группа кнопок). Пример: Если вы установите Z clearance 3 мм и расположите щуп >3 мм над заготовкой, то поиск не произойдет, так как стилус не сможет коснуться стенок.
С другой стороны, если вы сделаете это расстояние слишком большим, программа не будет проверять безопасность, просто пойдет в работу и может врезаться в дно отверстия.
На рисунках ниже показано, чем xy clearance отличается от edge length.
Траектория движения щупа на примере измерения внешнего угла X+Y+

Объединены два отдельных поиска: X+ и Y+.
Центральная, самая сложная кнопка, запускает серию из 4 поисков X+ X- Y+ Y-. Значение edge length должно быть примерно равно радиусу цилиндра, а xy clearance — это отступ наружу от стенки цилиндра (необходим для компенсации погрешности примерного первоначального ручного выставления центра и добавления радиуса стилуса).

Траектория движения щупа на примере измерения внутреннего угла X+Y+

Поиск центра отверстия строится следующим образом: X- X+ Y- Y+. Значение edge length также должно быть примерно равно радиусу измеряемого отверстия, а xy clearance — отступ от стенок отверстия к центру (для компенсации ручного позиционирования и учета радиуса стилуса).

Любой из поисков завершается перемещением XY в искомую точку (к краю, углу или центру), при этом Z остается в исходном положении. Найденную точку можно автоматически обнулить или задать ей конкретное значение.
Настройки для кнопки измерения диаметра инструмента:

Кнопка запускает макрос измерения диаметра инструмента на датчике (toolsetter). Перемещает шпиндель в точку измерения на безопасной высоте Z: [AXIS_Z] MAX_LIMIT, производит измерение высоты площадки датчика, затем запускает шпиндель в обратном направлении (рекомендуется устанавливать не более 3000 об/мин) и измеряет диаметр по аналогии с поиском центра цилиндра.
Постоянные параметры для кнопки задаются пользователем индивидуально в файле .ini:
# Абсолютные координаты площадки датчика инструмента
X = 10
Y = 10
# Абсолютные координаты старта поиска по оси Z
Z = 10
# Максимальная дистанция поиска и направление (знак)
MAXPROBE = -60
# Скорость перемещений при работе в Probe Screen
RAPID_SPEED = 600
# Диаметр площадки датчика инструмента
TS_DIAMETER = 10
# Скорость обратного вращения шпинделя при измерении диаметра
REV_ROTATION_SPEED = 2000
Кнопка также использует все поля раздела "Settings" (за исключением Edge length и Search distance — вместо них берутся значения 0.5 * TS_DIAMETER и MAXPROBE из .ini соответственно). Примечание: примерный диаметр измеряемой фрезы вводится в поле "Diameter stylus tip".
Быстрая ручная смена инструмента (Remap M6):
Probe Screen позволяет автоматически измерять длину инструмента во время выполнения G-кода при встрече команды M6. Пользователю нужно будет только снять старую фрезу и установить новую в условленном месте. Инициализация Remap M6 прописывается в файле .ini.
Требование: наличие двух датчиков - центроискателя (touch probe) и датчика инструмента (toolsetter).

Подготовительные шаги:
- 1. Toolsetter должен быть стационарно установлен на краю рабочего стола.
- 2. Установите заготовку на стол.
- 3. Вставьте щуп (центроискатель) в шпиндель.
- 4. Заполните все поля в разделе Settings (кроме двух неиспользуемых: xy clearance и edge length — они могут содержать любые значения). Максимальная дистанция поиска для кнопки TS Height отличается от всех остальных кнопок и задается в файле .ini (см. рисунок ниже).

- 5. Измерение щупом поверхности площадки датчика (toolsetter): нажмите кнопку "TS Height", щуп автоматически выполнит действия, и результат появится в поле рядом с кнопкой. Действия следующие: щуп перемещается на скорости RAPID_SPEED в точку поиска над датчиком по координатам, указанным в [TOOLSENSOR] XY, на высоте [AXIS_Z] MAX_LIMIT начинается поиск вниз с высоты [TOOLSENSOR] Z, на максимальную дистанцию не более MAXPROBE. Скорости поиска/уточнения и дистанция отскока (Latch) будут взяты из панели "Settings".
- 6. Измерение щупом поверхности заготовки: щуп необходимо вручную подвести к месту измерения над заготовкой, нажать кнопку "Workpiece Height", щуп выполнит простой поиск вниз из текущего положения, результат появится в поле рядом с кнопкой. Скорости и дистанции поиска/уточнения будут взяты из "Settings" (верхние четыре параметра).
- 7. Параметр [CHANGE_POSITION] задает координаты XYZ (машинные) произвольной точки, в которой удобно производить смену инструмента.
- После этой подготовки можно запускать программу g-code. Как только встретиться команда смены инструмента M6 Tn, шпиндель остановиться, переместится в [CHANGE_POSITION], далее останов в ожидании пока пользователь сменит инструмент и нажмет "OK" для продолжения, новый инструмент автоматически обмеряется на toolsetter, и продолжается выполнение g-code.
Как использовать измерение угла (Rotation):
Установите щуп над нужным краем на высоте 2-4 мм (примерное положение показывает цветная точка на кнопке). Заполните параметры. Нажимайте только ту кнопку, которая соответствует этому положению!

Затем будет выполнено два измерения, как показано стрелками на кнопке.
Параметры устанавливаются следующим образом:
- edge length = расстояние между измеряемыми точками
- xy clearance = отступ от края
- z clearance = глубина погружения (измерения)
Auto Rott (Автоповорот):
- если Yes: то после измерения система координат автоматически повернется на измеренный угол,
- если No: то угол просто измеряется и выводится на экран.
Угол рассчитывается относительно оси X для передней и задней граней, и относительно оси Y для правой и левой граней.
После поворота системы координат все остальные группы измерений начнут работать в новой системе координат.
Вы также можете повернуть систему координат на произвольный угол вручную — введите угол в поле New angle и нажмите кнопку для подтверждения.
