Не нравится мне, как работает мой беспроводной контактный датчик нуля по Z. Погрешность первого измерения бывает значительной - несколько соток. А я напомню, что у меня есть подпрограмма для измерения оффсетов инструментов, которую удобно использовать и для определения погрешности "обнуления по Z". Повторное обнуление Z уже дает приемлемый результат от нескольких микрон, до сотки. С чем это связано, я не знаю. Может какие-то резинки-пружинки приходят в рабочее состояние, может емкости конденсаторов наполняются содержимым после долгого простоя. Тем не менее, я уже приноровился делать всегда два "обнуления" и затем "контрольный замер" подпрограммой. Пальцами по клавишам приходится прыгать, как тот Денис Мацуев на своем рояле. Решил все процедуры собрать в одну.
Алгоритм следующий:
1-й наезд на датчик - двойное касание на скоростях (-300, +200, -60) и отскок на 5 мм со скоростью 1000. Затем пол секунды паузы.
2-й наезд на датчик - четыре касания на скоростях (-300, +200, -60, +100, -60, +60, -20) и отскок на 5 мм со скоростью 1000. Запись значения нуля по Z в рабочую систему координат.
3-й наезд на датчик - контроль точности определения нуля. Алгоритм касаний как во втором наезде, затем отскок на безопасную высоту со скоростью 2000 и вывод данных на экран пульта. Число показывает, насколько последнее измерение отличалось от предыдущего.
Вся процедура вызывается стандартным сочетанием клавиш Shift+0.
Для этого в файле Public.dat подпрограмма О13 должна принять следующий вид (возможны какие-то артефакты, пока не причесывал код):
Скрытый текст
А вот так это выглядит в натуре. Три измерения с погрешностями 9, 9 и 6 микрон.