PUMOTIX – вопросы и ответы по системе ЧПУ
-
- Новичок
- Сообщения: 16
- Зарегистрирован: 08 ноя 2019, 21:01
- Репутация: 3
- Настоящее имя: Валерий
- Контактная информация:
Re: PUMOTIX – вопросы и ответы по системе ЧПУ
-
- Опытный
- Сообщения: 142
- Зарегистрирован: 20 мар 2017, 14:25
- Репутация: 21
- Настоящее имя: Борис
- Контактная информация:
Re: PUMOTIX – вопросы и ответы по системе ЧПУ
Контроллер PLCM-E3p (Ethernet) + плата расширения PLCM-B1. Вчера станок отработал штатно, без происшествий, почти 9 часов. Сегодня по плану было продолжение работы, уже на почти 10 часов. Но станок стал останавливаться без видимых причин - срабатывает один из концевиков оси Y (на оси 2 шт. стоят). Причём, базирование перед началом работы происходит штатно, вывожу станок в рабочий ноль, запускаю работу, но уже на первых десятках строках кода станок останавливается - срабатывает концевик. Концевик чистый, рядом не находятся металлические предметы, из-за которых могло бы произойти срабатывание концевика. При остановленном станке концевик срабатывает нормально при поднесении к нему металла. Заменил концевик на аналогичный, он так же срабатывает в "ручном" режиме. И так же срабатывает фантомно при начале работы станка. В саппорт, конечно, написал, файл диагностики приложил.
С такой проблемой сталкивался, может быть, кто-то ещё, кроме меня?
С такой проблемой сталкивался, может быть, кто-то ещё, кроме меня?
-
- Мастер
- Сообщения: 1097
- Зарегистрирован: 05 апр 2016, 20:18
- Репутация: 126
- Настоящее имя: Жэзэрэл
- Откуда: Там, сям.
- Контактная информация:
Re: PUMOTIX – вопросы и ответы по системе ЧПУ
Подтяжку на датчик вешайте. Резистор 5 кОм или что-то возле этого.
-
- Опытный
- Сообщения: 142
- Зарегистрирован: 20 мар 2017, 14:25
- Репутация: 21
- Настоящее имя: Борис
- Контактная информация:
Re: PUMOTIX – вопросы и ответы по системе ЧПУ
Можно поподробнее, что такое "подтяжка" и куда её вешать? В концевик 3 провода приходят - земля, плюс и сигнальный. Сигнальный, соответственно, на один из пинов платы расширения приходит. Видимо, на него предлагаете повесить резистор? Последовательно, в разрыв провода? Ну, ок, но как оно всё работало тогда уже года 2 или чуть больше без дополнений всяких, непонятно... Саппорт подозревает неисправность платы, пока посоветовал перетыкнуть в приход концевика в свободный порт платы. Сделал, даже дважды, каждый раз тестируя результат. Ничего не поменялось, как фантомно и рандомно срабатывал концевик, так и срабатывает. Стабильность
С саппортом, кстати, тоже интересно - по ПО свой, по железкам свой...
-
- Мастер
- Сообщения: 256
- Зарегистрирован: 31 янв 2017, 23:17
- Репутация: 5
- Настоящее имя: Сергей
- Откуда: Нижний Новгород
- Контактная информация:
Re: PUMOTIX – вопросы и ответы по системе ЧПУ
Приветствую присутствующих.
Прошу помощи в освоении макроса автосмены инструмента М6. Может кто то занимался и есть готовый, хотелось бы взглянуть, ну или может кто подскажет в решении конкретных загвоздок, а именно:
1. Как прописать опрос датчика на шпинделе после разжима захвата патрона и сответственно как прописать алгоритм действий при нормальном срабатывании датчика и при случае не срабатываня.
2. Как прописать алгоритм замера длины инструмента после смены ( подозреваю что нужно просто взять часть макроса из пробинга и откорректировать добавив задание перемещения к датчику, но если кто подскажет точнее, будет лучше)
Заранее спасибо откликнувшимся.
Прошу помощи в освоении макроса автосмены инструмента М6. Может кто то занимался и есть готовый, хотелось бы взглянуть, ну или может кто подскажет в решении конкретных загвоздок, а именно:
1. Как прописать опрос датчика на шпинделе после разжима захвата патрона и сответственно как прописать алгоритм действий при нормальном срабатывании датчика и при случае не срабатываня.
2. Как прописать алгоритм замера длины инструмента после смены ( подозреваю что нужно просто взять часть макроса из пробинга и откорректировать добавив задание перемещения к датчику, но если кто подскажет точнее, будет лучше)
Заранее спасибо откликнувшимся.
-
- Мастер
- Сообщения: 212
- Зарегистрирован: 25 дек 2020, 12:01
- Репутация: 35
- Настоящее имя: Victor
- Контактная информация:
Re: PUMOTIX – вопросы и ответы по системе ЧПУ
вот мой для ручной смены. от оператора требуется нажатие кнопки старт.
1 фаза: сначала проверки, что всё корректно и шпиндель стоит, подъем на безопасную высоту, запоминает координаты. потом едет в координаты смены.
2 фаза: сама смена, пробинг длины, вычисление смещения координат, возврат всех настроек
писалось давно, нюансов не помню) но работает до сих пор
сигналы
UserOutput_5 обдув оправки при смене
UserOutput_4 открыть замок шпинделя
UserInput_12 замок открылся
UserInput_13 инструмент в шпинделе
1 фаза: сначала проверки, что всё корректно и шпиндель стоит, подъем на безопасную высоту, запоминает координаты. потом едет в координаты смены.
2 фаза: сама смена, пробинг длины, вычисление смещения координат, возврат всех настроек
писалось давно, нюансов не помню) но работает до сих пор
сигналы
UserOutput_5 обдув оправки при смене
UserOutput_4 открыть замок шпинделя
UserInput_12 замок открылся
UserInput_13 инструмент в шпинделе
Код: Выделить всё
require("Common")
function m6()
if (GetToolSlot() == GetSelectedToolSlot()) then
return
end
local stage = GetStage()
if (stage == 0) then
m6start()
SetStage(1, true, true)
Stop()
return
elseif (stage == 1) then
m6end()
SetStage(0, false, false)
return
end
end
function m6start()
savedDistanceMode = GetCurrentDistanceMode()
savedMotionMode = GetCurrentMotionMode()
savedSpindleRPM = SpindleGetCurRPM()
savedFeed = GetGCodeFeedrate()
if (not IsAxesMaskReferenced(tonumber("0x7"))) then
DisplayMessage("Do homing first!!!")
Stop()
return
end
if (not IsProbingPinConfigured()) then
DisplayMessage("Probing not configured!!! Do it first!!!")
Stop()
return
end
local toolSlot = GetSelectedToolSlot()
local previousToolSlot = GetToolSlot()
if ( toolSlot == 0 and previousToolSlot == 0) then
DisplayMessage("Nothing to put!!!")
Stop()
return
end
savedPos = {}
for i = Axis.X, Axis.W do
savedPos[i] = AxisGetMachinePos(i)
end
GotoSafeZ()
if (not SafeSpindleStop()) then
DisplayMessage("Spindle did not stop at "..str(10000).." sec! or stop signal not found!!!!")
Stop()
return
end
local toolchangePos = {}
for i = Axis.X, Axis.W do
toolchangePos[i] = GetGeneralToolchangePosition(i)
end
ExecuteMDI("G53 G1 X"..toolchangePos[Axis.X].." Y"..toolchangePos[Axis.Y].." F5000")
end
function m6end()
local toolSlot = GetSelectedToolSlot()
--Sleep(3000)
Sleep(5000)
PinSetState(Outputs.UserOutput_5, true) -- blow job on
PinSetState(Outputs.UserOutput_4, true) -- change job on
if (not WaitForPinState(Inputs.UserInput_12, true, 500)) then
DisplayMessage("Tool release on Spindle not working! Turn air pump On dude...")
PinSetState(Outputs.UserOutput_4, false) -- change job off
PinSetState(Outputs.UserOutput_5, false) -- blow job off
return
end
if (not WaitForPinState(Inputs.UserInput_13, false, 500)) then
DisplayMessage("Tool on Spindle found! It must be 0")
PinSetState(Outputs.UserOutput_4, false) -- change job off
PinSetState(Outputs.UserOutput_5, false) -- blow job off
return
end
Sleep(5000)
PinSetState(Outputs.UserOutput_4, false) -- change job off
PinSetState(Outputs.UserOutput_5, false) -- blow job off
if (not WaitForPinState(Inputs.UserInput_12, false, 500)) then
DisplayMessage("Tool tighten on Spindle not working! Turn air pump On dude...")
return
end
if (PinGetState(Inputs.Probing) or PinGetState(Inputs.Probing2)) then
DisplayMessage("Probe input is already active")
Stop()
return
end
Sleep(1000)
if (toolSlot ~= 0) then
if (not WaitForPinState(Inputs.UserInput_13, true, 500)) then
DisplayMessage("Tool on Spindle not found as signals spindle show! It must be 1")
Stop()
return
end
ExecuteMDI("G90 G53 G1 Z-100 F2000")
local ProbeLim = 190
local ProbingMaximum = AxisGetPos(Axis.Z) - ProbeLim
local ProbeFeedFast = GetGeneralProbeFeed()
ProbeFeedFast = 1000
local ProbeFeedSlow = ProbeFeedFast / 10
ExecuteMDI("G90 G38.2 Z"..str(ProbingMaximum).." F"..ProbeFeedFast)
local Raise = AxisGetPos(Axis.Z) + 5
ExecuteMDI("G90 G1 Z"..str(Raise).."F"..ProbeFeedFast)
ExecuteMDI("G90 G38.2 Z"..str(ProbingMaximum).." F"..ProbeFeedSlow)
ExecuteMDI("G92 Z"..GetNumUserValue(10))
GotoSafeZ()
end
ExecuteMDI("G53 G90 G1 X"..str(savedPos[Axis.X]).." Y"..str(savedPos[Axis.Y]).." F5000")
SetToolSlot(toolSlot)
if (savedSpindleRPM > 0) then
SpindleStartCW()
end
ExecuteMDI("F"..savedFeed)
if (savedDistanceMode ~= GetCurrentDistanceMode()) then
if (savedDistanceMode == DistanceMode.Abs) then
ExecuteMDI("G90")
else
ExecuteMDI("G91")
end
end
if (savedMotionMode ~= GetCurrentMotionMode()) then
SetCurrentMotionMode(savedMotionMode)
end
end
-
- Мастер
- Сообщения: 256
- Зарегистрирован: 31 янв 2017, 23:17
- Репутация: 5
- Настоящее имя: Сергей
- Откуда: Нижний Новгород
- Контактная информация:
Re: PUMOTIX – вопросы и ответы по системе ЧПУ
Благодарю, хоть какой то рабочий образец. Буду дальше разбираться. Пурики обнаглели, отказались даже пример рабочий показать, все только за деньги, какая то хреновая тех поддержка...и это при условии уже купленного контроллера и опции автосмены...
-
- Мастер
- Сообщения: 872
- Зарегистрирован: 05 июн 2015, 10:00
- Репутация: 97
- Откуда: Саратов
- Контактная информация:
Re: PUMOTIX – вопросы и ответы по системе ЧПУ
Они вернулись в своё привычное конченое состояние скорее, был период в несколько лет, когда они охотно сотрудничали с клиентами. Сейчас просто сто лет форума ихнего нет уже, на котором можно было оценить все масштабы их деятельности в первые годы, хотя где нибудь в вэб архиве эта бомба наверное лежит.
-
- Мастер
- Сообщения: 256
- Зарегистрирован: 31 янв 2017, 23:17
- Репутация: 5
- Настоящее имя: Сергей
- Откуда: Нижний Новгород
- Контактная информация:
Re: PUMOTIX – вопросы и ответы по системе ЧПУ
К счастью немного помогли, хоть и не без косяков, прислали недоступную в инструкциях команду, хоть и не рабочую (хотя как они утверждают, что сами ей пользуются), но немного подкорректировав, все получилось.Argentum47 писал(а): ↑18 янв 2024, 08:03Они вернулись в своё привычное конченое состояние скорее, был период в несколько лет, когда они охотно сотрудничали с клиентами. Сейчас просто сто лет форума ихнего нет уже, на котором можно было оценить все масштабы их деятельности в первые годы, хотя где нибудь в вэб архиве эта бомба наверное лежит.
-
- Мастер
- Сообщения: 212
- Зарегистрирован: 25 дек 2020, 12:01
- Репутация: 35
- Настоящее имя: Victor
- Контактная информация:
Re: PUMOTIX – вопросы и ответы по системе ЧПУ
забыл добавить функции, которые я использовал, мало ли их не хватило из Common.pm
Код: Выделить всё
function GotoSafeZ()
PushCurrentDistanceMode()
PushCurrentMotionMode()
local SafeZ = GetGeneralSafeZ()
local SafeZMode = GetSafeZMode()
if (SafeZMode == SafeZModes.Machine) then
if (AxisGetMachinePos(Axis.Z) < SafeZ) then
ExecuteMDI("G90 G53 G01 Z"..SafeZ.." F1000")
end
end
end
-- Ожидание сигнала на указанном входе с заданным состоянием в течение заданного тайм-аута
function WaitForPinState(input, desired_state, time_ms)
local finish_time = GetSystemTickCount() + time_ms
while (GetSystemTickCount() < finish_time and PinGetState(input) ~= desired_state) do
Sleep(50)
end
return (PinGetState(input) == desired_state)
end
function SafeSpindleStop()
local sleepingTime = 0
if (not PinGetState( Inputs.UserInput_7 )) then
SpindleStop()
if (not WaitForPinState(Inputs.UserInput_7, true, 10000)) then
DisplayMessage("Spindle can't stoped safetly!")
return false
end
end
return true
end
-
- Мастер
- Сообщения: 256
- Зарегистрирован: 31 янв 2017, 23:17
- Репутация: 5
- Настоящее имя: Сергей
- Откуда: Нижний Новгород
- Контактная информация:
Re: PUMOTIX – вопросы и ответы по системе ЧПУ
Благодарю.rry писал(а): ↑18 янв 2024, 13:51забыл добавить функции, которые я использовал, мало ли их не хватило из Common.pm
Код: Выделить всё
function GotoSafeZ() PushCurrentDistanceMode() PushCurrentMotionMode() local SafeZ = GetGeneralSafeZ() local SafeZMode = GetSafeZMode() if (SafeZMode == SafeZModes.Machine) then if (AxisGetMachinePos(Axis.Z) < SafeZ) then ExecuteMDI("G90 G53 G01 Z"..SafeZ.." F1000") end end end -- Ожидание сигнала на указанном входе с заданным состоянием в течение заданного тайм-аута function WaitForPinState(input, desired_state, time_ms) local finish_time = GetSystemTickCount() + time_ms while (GetSystemTickCount() < finish_time and PinGetState(input) ~= desired_state) do Sleep(50) end return (PinGetState(input) == desired_state) end function SafeSpindleStop() local sleepingTime = 0 if (not PinGetState( Inputs.UserInput_7 )) then SpindleStop() if (not WaitForPinState(Inputs.UserInput_7, true, 10000)) then DisplayMessage("Spindle can't stoped safetly!") return false end end return true end
Сегодня совместными усилиями с коллегой победили макрос, немного иными командами, но все работает так как и планировали, даже тех поддержка частично помогла, хоть и по своему)))
-
- Мастер
- Сообщения: 872
- Зарегистрирован: 05 июн 2015, 10:00
- Репутация: 97
- Откуда: Саратов
- Контактная информация:
Re: PUMOTIX – вопросы и ответы по системе ЧПУ
В один прекрасный день, видимо после какого-то обновления, софтина перестала запоминать состояние при выключении, каждый раз при запуске УП стоит на первой строке, на профильной обработке ещё ничего, но когда тонна выборок на листе - это уже расстраивает. Пробовал переустанавливать - только на настройки заново попал. У кого нибудь есть пара версий предшествующих текущей?
-
- Мастер
- Сообщения: 1355
- Зарегистрирован: 28 апр 2015, 00:12
- Репутация: 241
- Настоящее имя: Arkadiy
- Откуда: Краснодар
- Контактная информация:
Re: PUMOTIX – вопросы и ответы по системе ЧПУ
Пойдут? Стоит у меня с пометкой "эта"Argentum47 писал(а): ↑ У кого нибудь есть пара версий предшествующих текущей?
-
- Мастер
- Сообщения: 872
- Зарегистрирован: 05 июн 2015, 10:00
- Репутация: 97
- Откуда: Саратов
- Контактная информация:
-
- Мастер
- Сообщения: 872
- Зарегистрирован: 05 июн 2015, 10:00
- Репутация: 97
- Откуда: Саратов
- Контактная информация:
Re: PUMOTIX – вопросы и ответы по системе ЧПУ
Спасибо большое.
-
- Новичок
- Сообщения: 28
- Зарегистрирован: 03 окт 2015, 18:40
- Репутация: 0
- Настоящее имя: Василий
- Контактная информация:
Re: PUMOTIX – вопросы и ответы по системе ЧПУ
Здравствуйте.
Пытался перейти с Мач3 на Пумотикс (контроллер PLCM E1b). В итоге теперь не работает ни то, ни другое.
Станок не двигается, хотя Пумотикс вроде не выдает никаких ошибок (контроллер видит, двигатели/оси настроил). При нажатии на стрелки цифры координат меняются, курсор по экрану движется - только станок молчит.
На самом контроллере мигает желтая лампочка, зеленая не горит.
Подскажите, с какой стороны к нему подходить? Что проверить в первую очередь, чтобы хотя бы появился намек - в чем загвоздка?
зы: У меня подозрение на то, что контроллер как-то криво перепрошился (при первом запуске Пумотикс произвел обновление прошивки контроллера), после чего его перестал видеть Мач3. Может быть такое?
Сетевые настройки (ай-пи) перепробовал все варианты.
Помогите! Работа встала!!!
Пытался перейти с Мач3 на Пумотикс (контроллер PLCM E1b). В итоге теперь не работает ни то, ни другое.
Станок не двигается, хотя Пумотикс вроде не выдает никаких ошибок (контроллер видит, двигатели/оси настроил). При нажатии на стрелки цифры координат меняются, курсор по экрану движется - только станок молчит.
На самом контроллере мигает желтая лампочка, зеленая не горит.
Подскажите, с какой стороны к нему подходить? Что проверить в первую очередь, чтобы хотя бы появился намек - в чем загвоздка?
зы: У меня подозрение на то, что контроллер как-то криво перепрошился (при первом запуске Пумотикс произвел обновление прошивки контроллера), после чего его перестал видеть Мач3. Может быть такое?
Сетевые настройки (ай-пи) перепробовал все варианты.
Помогите! Работа встала!!!