Еще раз про установку нуля по оси Z в Mach3

Этот раздел для самых начинающих, но не обижайтесь на название, в нашей "Песочнице" с удовольствием барахтаются и опытные , которые ответят на любые ваши вопросы, пусть и самые простые, научат отличать одни узлы от других, и многое подскажут начинающим.
И вообще мы все дети, только игрушки у нас другие.
Ответить
George164
Станкостроитель
Станкостроитель
Сообщения: 1892
Зарегистрирован: 23 окт 2011, 00:21
Откуда: Москва-Люберцы

Еще раз про установку нуля по оси Z в Mach3

Сообщение George164 »

То, что творится с инструкциями по обнулению оси Z, это, конечно, полный бардак. Одни не понимают что они пишут, другие не понимают что они читают, ломают фрезы и бросают эту полезную затею.
Может где и есть понятные инструкции, но мне они не попались, поэтому пишу свою.

Итак: Задача установить инструмент в точку ноль по оси Z в программе MACH3.
Алгоритм:
Ось Z опускается на заданную величину (10мм). Если происходит замыкание, то ноль по Z устанавливается с учетом толщины пластину и происходит отскок безопасности на 5 мм. Если замыкания не обнаруживается, то ось Z просто останавливается. Толщину пластины и скорость опускания можно задать в скрине Мач3. Остальные параметры в тексте скрипта.

В программе Мач3 есть возможность обнаружить момент замыкания входа LPT на землю. Обычно это контакт между фрезой и металлической деталью или вспомогательной пластиной. Для этого один контакт мы присоединяем к фрезе, а другой к детали или к пластине.
1.На контроллере находим свободный входной пин разъема LPT. Это пины 10, 11, 12, 13 или 15. Например, 12. И к этому разъему присоединяем один контакт, другой к земле.
1. Выбираем свободный номер пина, заходим в Config->Ports-and-Pins->Input-Signals->Probe и ставим галочки в Enable и ActiveLow. В PinNumber выставляем номер пина.
2. Толщина пластины. Если мы обрабатываем металлическую деталь или печатную плату, то вторым контактом будет сама деталь, пластина не нужна и поправка на ее толщину будет ноль. Если деталь не токопроводящая, то нужна вспомогательная пластина. Т.е. необходимо иметь параметр, где мы можем задать толщину пластины.
Что, например, можно сделать.
Скачиваем с официального сайта программу Screen4.exe - это дизайнер экранов программы Мач, и размещаем ее в директорию Мач. Стартуем, открываем файл 1024.set - стандартный файл скринов Мача, переименовываем и сохраняем под другим именем. Теперь мы можем изменять экраны. Нам надо добавить параметр для установки толщины пластины. Выделяем, например, поле Z inhibit, делаем Copy->Paste и размещаем, например, так:
Изображение
Кликаем дважды левой кнопкой, и в поле OEM-Code-Function пишем 1151. По этому номеру мы можем теперь считать в программе значение этого поля.
Сохраняем скринсет. Стартуем Мач, в View-LoadScreens выбираем и загружаем модифицированный экран Мача с новым полем.
3. Теперь нам надо стартовать установку нуля. Для этого используется кнопка AutoToolZero. При нажатии на эту кнопку начнет выполняться программа, контролирующая установку нуля. Эта программа написана на языке VBscript. Такие программы широко используются и называются скриптами. Текст программы или заглушку можно увидеть по Operator->EditButtonScript, а затем кликнуть по мигающей кнопке AutoToolZero.
Вот сюда-то и надо скопировать или ввести программу установки нуля. Не забыть потом сохранить ее и профиль Мач3, при выходе из программы.
4. Скрипт. Количество скриптов для установки нуля превышает разумные пределы. Многие из них работают, хотя авторы даже не понимают, что рекомендуют. Давайте рассмотрим один из вариантов, доработанных мною до состояния, которое меня устроило. Заодно и скрипты изучил немного. Это мой первый скрипт, поэтому замечания приветствуются.

Вначале только пример с комментариями. При попытке ввести в программу комментарии на кириллице, приходилось перезагружать компьютер. Рабочий вариант скрипта будет ниже.

Rem VBScript To probe In the z axis
' Это комментарий
If GetOemLed (825) <> 0 Then ' Проверяем, может быть ноль уже установлен
' Расшифровки параметра в GetOemLed находятся в файле LEDCodes.txt
Code "(Z-Plate is grounded or check connection and try again)" ' выводим сообщение об этом
Else
' Если ноль не установлен, то пробуем его найти
Code "G4 P1" ' Пауза в 1 сек
PlateOffset = GetUserDRO(1151) ' считываем значение нового поля. Это толщина пластины.
' Значения параметров GetUserDro и GetOemDro находятся в файле DroCodes.txt
CurrentFeed = GetOemDRO(818) ' счтываем значения поля Feedrate. Это текущая скорость мм/мин
' Эту скорость можно изменить перед поиском нуля в скрине Мача
MyFeed = 100 ' скорость поиска нуля мм/сек для вашего станка
' Зависит от крепости фрезы
' Если скорость больше MyFeed, то мы ее уменьшаем до MyFeed.
' если меньще MyFeedRate, то устанавливаем меньшую скорость. Ту, которая в Маче
If CurrentFeed>MyFeed Then
Code "F" &MyFeed ' Эту скорость вы можете установить под свой станок как стандартную
Else
Сode "F" &CurrentFeed
' Эту скорость вы всегда можете установить для конкретного поиска нуля
End if
' Начинаем искать ноль
ZNew = GetDro(2) - 10 ' Устанавливаем точку на 10мм ниже текущей высоты Z
Code "G31Z" &ZNew ' Идем в эту точку с контролем замыкания контактов Probe
While IsMoving() ' Ждем пока ось Z дойдет до точки -10мм
Wend

ZNew = GetVar(2002) ' Считываем значение по Z в момент замыкания
Code "G1 Z" &ZNew ' Если проскочили, то возвращаемся
While IsMoving () ' Ждем возвращения
Wend
If GetOemLed (825) <> 0 Then
' Проверяем нашли ноль или просто опустились по Z на 10мм
' Проверяем толщину пластины
' если она ненулевая, то корректируем ось Z с учетом ее толщины, иначе 0
Call SetDro (2, PlateOffset) ' новая точка 0 по Z
Code "G4 P0.5" ' ждем установку по Z 0.5 сек

ZNew = 5 ' отскок безопасности по Z. Можете поменять
Code "G1 Z5 F200" ' идем в точку отскока
While IsMoving () ' ждем прихода в отскок
Wend
Code "(Z axis is now zeroed)" ' выводим сообщение об установке нуля.

Else
' Замыкания не достигли. Просто опустились на 10мм
Code "(Z-Plate ie not grounded. Try again.)" ' сообщение об этом
End If

Code "F" &CurrentFeed ' возвращаем значение скорости
End If

Текст скрипта находится в директории Macros->"профиль" под именем HiddenScript.m1s
Но при старте Mach3 скрипт берется из профиля. Так что если у вас не обновился профиль после изменения скрипта, при старте Мач3 получите старый скрипт.

Рабочий скрипт:

Rem VBScript To probe In the z axis
If GetOemLed (825) <> 0 Then 'Check to see if the probe is already grounded or faulty
Code "(Z-Plate is grounded or check connection and try again)" 'this goes in the status bar if aplicable

Else
Code "G4 P1" 'Pause 1 seconds to give time to position probe plate
PlateOffset = GetUserDRO(1151) 'Get plate offset DRO
CurrentFeed = GetOemDRO(818) 'Get the current feedrate to return to later
MyFeed = 100
If CurrentFeed > MyFeed Then
Code "F" &MyFeed 'slow down feedrate to 100 mmpm
Else
Code "F" &CurrentFeed
End If
Rem Probe In the z direction
ZNew = GetDro(2) - 10 'probe move to current z - 10mm
Code "G31Z" &ZNew
While IsMoving() 'wait for probe move to finish
Wend

ZNew = GetVar(2002) 'read the touch point
Code "G1 Z" &ZNew 'move back to hit point incase there was overshoot
While IsMoving ()
Wend
If GetOemLed (825) <> 0 Then ' Zero or Not

Call SetDro (2, PlateOffset) 'set the Z axis DRO to plate thickness
Code "G4 P0.5" 'Pause for Dro to update.

ZNew = 5 ' Up to 5mm
Code "G1 Z5 F200" '&ZNew 'put the Z retract height you want here
While IsMoving ()
Wend
Code "(Z axis is now zeroed)" 'puts this message in the status bar
Else

Code "(Z-Plate is not grounded. Try again.)"
End If

Code "F" &CurrentFeed 'Returns to prior feed rate

End If
Rem Finalized by George164 05/03/2012
Мечта станкостроителя: приезжаешь в Сочи, а там на пляже станки, станки. станки...
Aleha
Станкостроитель
Станкостроитель
Сообщения: 60
Зарегистрирован: 12 окт 2011, 16:26
Откуда: Удмуртия

Re: Еще раз про установку нуля по оси Z в Mach3

Сообщение Aleha »

Так так, наконец то подробное описание. В праздники доберусь до станка и попробую. :trumbsup:
Безвыходных ситуаций нет,
Есть неприятное решение.
customizer
Наблюдающий
Сообщения: 7
Зарегистрирован: 06 мар 2012, 09:47

Re: Еще раз про установку нуля по оси Z в Mach3

Сообщение customizer »

Здравствуйте, а возможно по датчику home оси Z, устанавливать значение не 0, а -40?
George164
Станкостроитель
Станкостроитель
Сообщения: 1892
Зарегистрирован: 23 окт 2011, 00:21
Откуда: Москва-Люберцы

Re: Еще раз про установку нуля по оси Z в Mach3

Сообщение George164 »

В Маче можно сделать все. Это инструмент.
Например, нарисовать кнопку, которая в любой момент установит по Z значение -40.
Probe и Home это разные вещи. Я вопрос не понял.
Мечта станкостроителя: приезжаешь в Сочи, а там на пляже станки, станки. станки...
customizer
Наблюдающий
Сообщения: 7
Зарегистрирован: 06 мар 2012, 09:47

Re: Еще раз про установку нуля по оси Z в Mach3

Сообщение customizer »

Мне нужно , что бы ось Z при нажатии на кнопку ref all home поднималась вверх, а после сработки датчика значение в поле оси Z, устанавливалось не в 0, а в -40.
customizer
Наблюдающий
Сообщения: 7
Зарегистрирован: 06 мар 2012, 09:47

Re: Еще раз про установку нуля по оси Z в Mach3

Сообщение customizer »

Все нашел, Если в окошке Автообнуление (Auto Zero) стоит галка, тогда окно ЦИ оси примет значение введенное
в Меню Конфигурации>Базы/Границы (Config>Home/Softlimits) в столбце Home off (вместо
настоящего Нуля). Это применяется для минимизации времени базирования на очень длинных и
медленных осях.
George164
Станкостроитель
Станкостроитель
Сообщения: 1892
Зарегистрирован: 23 окт 2011, 00:21
Откуда: Москва-Люберцы

Re: Еще раз про установку нуля по оси Z в Mach3

Сообщение George164 »

Имейте в виду, что кнопка REF_ALL_HOME это обычный скрипт. Т.е. эту программу можно изменить редактором и настроить под себя.
В файле Buttons.txt где описываются кнопки нумерация кнопок идет с нуля..
Правильные номера кнопок будут такие:
21 RESET
22 Home X
23 Home Y
24 Home Z
25 Home A

PS C вашей подачи сделал и себе скрипт для кнопки REF_ALL_HOME.
Концевики для HOME у меня не установлены так что просто отгоняю фрезер вперед и вверх для смены заготовки и уборки мусора.

DoButton(3 ) ' команда STOP на всякий случай

Code "G1 X0 Y200 Z20 F300" ' место парковки
While IsMoving() ' ждем пока уедет
Wend

DoButton( 21 ) ' команда RESET
Мечта станкостроителя: приезжаешь в Сочи, а там на пляже станки, станки. станки...
stas44
Наблюдающий
Сообщения: 5
Зарегистрирован: 10 янв 2013, 14:58
Имя: stas
Откуда: Kostroma

Re: Еще раз про установку нуля по оси Z в Mach3

Сообщение stas44 »

Все сделал как написано.Все получилось.
1.Не очень понял как изменить скорость движения.Пробовал менять значение MyFeed = 100.Нет изменений.
Не понял,как должно измениться показания поля значения Z,если достигнуто - probe. Где стоят значения толщины пластины. В файле DroCodes.txt ? А где файл?
Подскажите пжл.
George164
Станкостроитель
Станкостроитель
Сообщения: 1892
Зарегистрирован: 23 окт 2011, 00:21
Откуда: Москва-Люберцы

Re: Еще раз про установку нуля по оси Z в Mach3

Сообщение George164 »

Смотрите скрипт. Там все есть. Лично я в этом деле уже не помощник. Сделал и забыл. Станок уже не дома.
Мечта станкостроителя: приезжаешь в Сочи, а там на пляже станки, станки. станки...
Dj_smart
Смотрящий
Сообщения: 7565
Зарегистрирован: 28 авг 2009, 00:00
Имя: Юрий
Откуда: Украина. Межевая.

Re: Еще раз про установку нуля по оси Z в Mach3

Сообщение Dj_smart »

Я давненько где-то выкладывал... Короче ищет ноль, центра отверстий, грани... Всё тут http://translate.google.ru/translate?js ... l=en&tl=ru
Только там скорость и расстояния в дюймах, после установки поменял на соотв. в мм, и всё.
Глаза боятся, а руки делают!
Хостинг по CNC http://cncfiles.su/
stas44
Наблюдающий
Сообщения: 5
Зарегистрирован: 10 янв 2013, 14:58
Имя: stas
Откуда: Kostroma

Re: Еще раз про установку нуля по оси Z в Mach3

Сообщение stas44 »

так ли
Загрузите и установите MachBlue экраны
Загрузите и установите MachBlue модификаций.
Перейти в меню "Вид" "Load Screens" и выберите MachBlue
Dj_smart
Смотрящий
Сообщения: 7565
Зарегистрирован: 28 авг 2009, 00:00
Имя: Юрий
Откуда: Украина. Межевая.

Re: Еще раз про установку нуля по оси Z в Mach3

Сообщение Dj_smart »

Ну а это совсем уж для... Короче в маче(обычный, с 1024set) идём в Operator-Edit button script. Кнопки которые можно редактировать будут моргать. Я взял Auto tool zero. Тыкаем в моргающую кнопку. Текст который выскочит надо заменить на это:
Показать/Спрятать
Rem VBScript To probe In the z axis

If GetOemLed (825) <> 0 Then 'Проверка на касание вручную(тут не пашет)
Code "(Z-Plate is grounded, check connection and try again)" '
Else
Code "G4 P1" 'Пауза 1 секунда
PlateOffset = 2 'Толщина платы(указать своё)
CurrentFeed = GetOemDRO(818) 'Получить текущую скорость подачи
Code "F100" 'опускаем на скорости100мм/мин

Rem Probe In the z direction
ZNew = GetDro(2) - 50 'Ищем на протяжении 50мм
Code "G31Z" &ZNew
While IsMoving()
Wend

ZNew = GetVar(2002)
Code "G0 Z" &ZNew
While IsMoving ()
Wend

If PlateOffset <> 0 Then
Call SetDro (2, PlateOffset)
Code "G4 P0.25"
ZNew = PlateOffset + 10 'Высота подскока после касания
Code "G0 Z" &ZNew
Code "(Z axis is now zeroed)"
End If

Code "F" &CurrentFeed
End If
Сохраняем. Теперь если ткнуть в кнопку, оно будет ехать со скоростью 100 мм в мин до касания, но не больше чем 50мм вниз, и подскочит потом на 10мм плюс толщина пластины. Кому не лень проверьте, только не фрезой.
Глаза боятся, а руки делают!
Хостинг по CNC http://cncfiles.su/
valsen
Наблюдающий
Сообщения: 3
Зарегистрирован: 14 дек 2012, 10:03
Имя: Вали
Откуда: респ. Башкортостан. Уфа

Re: Еще раз про установку нуля по оси Z в Mach3

Сообщение valsen »

Все здравствуйте, я в станко строительстве новичок. Я попытался сделать автоустановку нуля по вашей инструкции, но не получилось. Фреза опускается, но не обнуляется. Вот моя плата и в ней указано как я подключилИзображение
alec220
Станкостроитель
Станкостроитель
Сообщения: 83
Зарегистрирован: 03 янв 2014, 23:30
Имя: Алексей
Откуда: Москва

Re: Еще раз про установку нуля по оси Z в Mach3

Сообщение alec220 »

10 раз пробовал, не работало, написал сообщение, попробовал еще раз - получилось... удалил. Какие-то магические свойства у этого форума...
Dronn
Станкостроитель
Станкостроитель
Сообщения: 90
Зарегистрирован: 12 дек 2013, 13:13
Имя: Andrey
Откуда: Украина, Энергодар

Re: Еще раз про установку нуля по оси Z в Mach3

Сообщение Dronn »

Доброго времени суток! Подскажите как написать скрипт для кнопки запуска шпинделя на максимальную частоту вращения? Инвертор HY01D523В, шпиндель - воздушник 1.5kW. Подключен через RS485 к COM порту компьютера. При включении кнопкой запуска из Mach3 шпиндель выходит на минимальную частоту (7800об/мин). При этом в строке статуса: "Tool Slow for Pulley...Using Min". Или может быть есть другой вариант решения этой проблемы?
Ответить