Модернизация токарного станка

Токарные станки с ЧПУ.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Модернизация токарного станка

Сообщение Nick »

Здесь используется вызов файлов через M100-M199, для этого создаются файлы с таким же названием. Файлы должны быть исполняемыми, т.е. это не файлы с Gкодом, а программы. В данном случае файл - исполняемый скрипт на sh. Об этом говорит первая строка: #!/bin/sh - значит, что этот файл надо запускать программой /bin/sh, т.е. запуск M106 равносилен /bin/sh M106.
halcmd sets HighGearRequest 1 - устанавливает сигнал HighGearRequest в 1. По логике этот сигнал - запрос на высокую передачу
~/emc2/nc_files/waitfor HighClutch TRUE - запускаем программу ~/emc2/nc_files/waitfor "~" - домашний директорий пользователя с двумя параметрами HighClutch TRUE - по логике названия ждем пока HighClutch станет TRUE
halcmd sets HighGearRequest 0 по окончанию программы выставляем значение сигнала в 0.


~/emc2/nc_files/waitfor:

#!/bin/bash - эта программа на bash - примерно тоже самое, что и sh.
Я не очень разбираюсь в языке shell, буду писать как считаю

if [ $# != 2 ]; then --- если количество параметров не равно 2 пишем как надо использовать программу и выходим.
echo usage: $0 SignalName DesiredValue
exit 1
fi

signal=$1 - назначаем переменные из параметров коммандной строки
value=$2

while :; do ---- начало цикла причем условие цикла всегда = true поэтому это "бесконечный цикл"
set -- $(halcmd -s show sig $signal) --- выполняем команду показать состояние сигнала $signal и куда-то записываем ...
if [ x"$2" == x"$value" ]; then ------ если это значение равно $value - мы дождались нужного состояния - exit 0 выходим из программы и цикл завершается
exit 0
fi -- конец if
sleep 1 -- ждем 1 сек, или милисек, в общем ждем
done -- конец цикла


Вообще тоже самое можно провернуть через digital-in и M66. Будет просто и сердито :)
Аватара пользователя
Dmaster
Мастер
Сообщения: 1271
Зарегистрирован: 15 июл 2011, 13:36
Репутация: 476
Контактная информация:

Re: Модернизация токарного станка

Сообщение Dmaster »

Ладно.. уговорил))))) Сделаем через digital-in и M66. А потом назначим м11 и через него будем запускать m66)))
" Linux CNC - наше всё"
Аватара пользователя
Dmaster
Мастер
Сообщения: 1271
Зарегистрирован: 15 июл 2011, 13:36
Репутация: 476
Контактная информация:

Re: Модернизация токарного станка

Сообщение Dmaster »

не...!!! нашел я мануал)))))
The external program Mnn must be in the directory named in [DISPLAY] PROGRAM_PREFIX in the ini file and is executed with the P and Q values as its two arguments. Execution of the RS274/NGC file pauses until the invoked program exits. Any valid executable file can be used.

M101 Example File
#!/bin/bash
# file to turn on parport pin 14 to open the collet closer
halcmd setp parport.0.pin-14-out True
exit 0

M102 Example File
#!/bin/bash
# file to turn off parport pin 14 to open the collet closer
halcmd setp parport.0.pin-14-out False
exit 0
" Linux CNC - наше всё"
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Модернизация токарного станка

Сообщение nkp »

M10-M110 :
(для просмотра содержимого нажмите на ссылку)

Код: Выделить всё

#!/bin/bash

if [ motion.spindle-on ];
then	
	halcmd setp halui.spindle.stop  1
	sleep 1
	halcmd setp parport.0.pin-01-out 1
	sleep 1
	halcmd setp halui.spindle.stop  0
else
	 halcmd setp parport.0.pin-01-out 1
	sleep 1
	halcmd setp halui.spindle.stop  0
fi
М11-М111 :
(для просмотра содержимого нажмите на ссылку)

Код: Выделить всё

#!/bin/bash

if [ parport.0.pin-01-out ];
then
	halcmd setp parport.0.pin-01-out 0
else
	exit
fi
nc_files.tar
(10 КБ) 343 скачивания
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Модернизация токарного станка

Сообщение Nick »

nkp писал(а):if [ motion.spindle-on ];
И что, такое работает??? Как он значение motion.spindle-on получает???
Аватара пользователя
Dmaster
Мастер
Сообщения: 1271
Зарегистрирован: 15 июл 2011, 13:36
Репутация: 476
Контактная информация:

Re: Модернизация токарного станка

Сообщение Dmaster »

Я пока не проверял(((( Датчик ВЕ178А5-М Z=2500 навернулся ( 1991 год выпуска одноплатный с хранения.) .
Верх Советских тежнологий , что-б его.... сфоткаю я как нибудь отопары которые туда поставили. УЖАС!!!
пластинки тольщиной 0.01 мм размером 2Х1 мм непосредственно приклееные к плате и дорожки по 0.02 из серебра...
Космос блин, а навернулось((((.. походу операционный усилитель помер НА ОДНИКАНАЛ ИЗ 4-Х!.. .. и как так?
" Linux CNC - наше всё"
Аватара пользователя
Dmaster
Мастер
Сообщения: 1271
Зарегистрирован: 15 июл 2011, 13:36
Репутация: 476
Контактная информация:

Re: Модернизация токарного станка

Сообщение Dmaster »

Станок заработал ( пока без автоматического открытия патрона.)

Сегодня после второй детали случиась какая-то гадость.. после повторного запуска программы станок на всём ходу впиался в патрон с грохотом и со скрежетом летело всё. :cry: чегой это он? :idiot: на координатах показывало , что до детали еще не доехал.
с программой всё нормально. по ней детали уже делали. на это-м же станке.
Если это обрыв датчика , то как сделать защиту от этого...
например( Estop если задание податся более 0.1 сек, а сигналов с датчика нет (нет 3-х импульсов в одну сторону) это на случай обрыва или выхода одного из каналов А или В

самое непонятно.. после того, как станок отвели вручную из зажеванного патрона.. датчик снова работал. ( возможно от тряски внутри у него что-то заработало заново)
" Linux CNC - наше всё"
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Модернизация токарного станка

Сообщение Nick »

Dmaster писал(а):Если это обрыв датчика , то как сделать защиту от этого...
Наверное оно самое, а в конце программы никаких G92 и прочего добра нет? И вручную такие коды случаем не вбивал???

Вообще, если бы датчик (энкодер) оборвался, то:
1. ПИД бы взбесился к и начал крутить станок с нарастающей скоростью.
2. При этом координаты бы остановились и через какое-то время LinuxCNC должен выдать joint N following error.

Поэтому странно оно...
Скинь на всякий случай Gкод...

ЗЫ сочувствую...
Аватара пользователя
Dmaster
Мастер
Сообщения: 1271
Зарегистрирован: 15 июл 2011, 13:36
Репутация: 476
Контактная информация:

Re: Модернизация токарного станка

Сообщение Dmaster »

он впилился на бстром ходу
код выглядел так

G43 T4 H4 M6
S800 M3
G00 X20 Z1.6 (ВООООТ ТУТ ТО ОН И ВПИЛИЛСЯ) ПОКАЗАВ Z1.7ххх
G95
G01 X5 F.1
Nick писал(а):Вообще, если бы датчик (энкодер) оборвался, то:
1. ПИД бы взбесился к и начал крутить станок с нарастающей скоростью.
увы это не так... когда у меня предыдущий датчик помер... отвалился канал B
он у меня после включения и подачи задания начинал ехать в сторону задания с неизменной скоростью и до концевика... это почти метр.. благо от патрона.
Nick писал(а):2. При этом координаты бы остановились и через какое-то время LinuxCNC должен выдать joint N following error.
это вообще не вываливается, если обрывается провод. или время очень растянуто.. как его сократить до 2- десятых секунды?
Nick писал(а):ЗЫ сочувствую...
Спасибо)))
" Linux CNC - наше всё"
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Модернизация токарного станка

Сообщение Nick »

Т.е. на экране показал Z1.7? Скинь тогда еще свой конфиг.
Аватара пользователя
Dmaster
Мастер
Сообщения: 1271
Зарегистрирован: 15 июл 2011, 13:36
Репутация: 476
Контактная информация:

Re: Модернизация токарного станка

Сообщение Dmaster »

ну... эт только завтра... он шел из точки примерно X40 Z150 в X20 Z1.6 по Х он кстати то-же не доехал до мета назначения
Как всё-таки организовать защиту от таких приколов?..
зрелище примерно как тут http://www.youtube.com/watch?v=iQGP97mWWm8
" Linux CNC - наше всё"
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Модернизация токарного станка

Сообщение Nick »

вообще с обрывом все не так просто, будешь ехать только вдоль 1 оси и тогда никакие задержки не помогут - будет на ровном месте Estop вылетать.

Можно попробовать проверять энкодеры, только когда axis.N.joint-vel-cmd (или axis.N.motor-pos-cmd пропущенный через ddt) не равен 0, тогда в ladder сделать таймер и сбрасывать его по сигналу энкодера (или по изменению положения энкодера). А выход таймера завести на estop...
ну... эт только завтра... он шел из точки примерно X40 Z150 в X20 Z1.6 по Х он кстати то-же не доехал до мета назначения
Т.е. просто координаты оказались не такими, как планировалось. возможные варианты:
  1. пропуск шагов энкодера. Маловероятно, было бы видно заранее.
  2. отключение энкодера. Тоже маловероятно, тогда координаты встали бы на 1 и том же значении, или, если отключилась только 1 фаза дергались на +-шаг.
  3. Да и вообще отключение энкодера должно вызвать following error, только если там не Ferror = 1000.
  4. Кстати, а у тебя пин обратной связи энкодера заведен на обратную связь axis.N.motor-pos-fb или axis.N.joint-pos-fb? Хотя, по идее он без этого не должен работать.
  5. Нет ли проблем с механикой? Как установлен энкодер? Как подключен двигатель? Как организована передача момента?
    Если скажем муфта проскальзывает такое вполне может произойти.
ну... эт только завтра...
Тогда сразу и конфиги скидывай :).

----
Жесть, надеюсь никто не пострадал!
Аватара пользователя
Dmaster
Мастер
Сообщения: 1271
Зарегистрирован: 15 июл 2011, 13:36
Репутация: 476
Контактная информация:

Re: Модернизация токарного станка

Сообщение Dmaster »

Nick писал(а):Т.е. просто координаты оказались не такими, как планировалось. возможные варианты:
немножко не то... он пролетел запланированнуюю координату по z и не доехал по x .
как я понимаю чпу синхронизирует движение x и z . тк перестали приходить импульсы z , то x соответственно остановился.
Nick писал(а):отключение энкодера. Тоже маловероятно, тогда координаты встали бы на 1 и том же значении, или, если отключилась только 1 фаза дергались на +-шаг.
что ему при этом мешает уехать куда ему захочется?...
у меня ведь именно так и было, когда отвалился один канал (( +-1 шаг
Nick писал(а):Нет ли проблем с механикой? Как установлен энкодер? Как подключен двигатель? Как организована передача момента? Если скажем муфта проскальзывает такое вполне может произойти.
Первым делом пошел проверять крепление датчика.. вроде насмерть всё. но всё равно протянул ... а уж двигатель-то стоит как.. сфоткаю завтра... ))) МОНУМЕНТ)!!
Nick писал(а):Жесть, надеюсь никто не пострадал!
ни кто... только мои надежды и самолюбие)
" Linux CNC - наше всё"
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Модернизация токарного станка

Сообщение Nick »

Dmaster писал(а):что ему при этом мешает уехать куда ему захочется?... у меня ведь именно так и было, когда отвалился один канал (( +-1 шаг
motion задает траекторию, и раз в servothread следит за ее выполнением, если отклонение больше ferror должен возникать joint following error.
Dmaster писал(а):Первым делом пошел проверять крепление датчика.. вроде насмерть всё. но всё равно протянул ... а уж двигатель-то стоит как.. сфоткаю завтра... ))) МОНУМЕНТ)!!
Вот это я понимаю :)
Dmaster писал(а):немножко не то... он пролетел запланированнуюю координату по z и не доехал по x .как я понимаю чпу синхронизирует движение x и z . тк перестали приходить импульсы z , то x соответственно остановился.
Вроде как motion выдает всем задания и они тупо идут на pid, а потом только следит за обратной связью... Т.е. скорость вроде должна жестко вычисляться вне зависимости от обратной связи... хотя, может я чего-то не догоняю.

Кстати, pid где стоит?
Аватара пользователя
Dmaster
Мастер
Сообщения: 1271
Зарегистрирован: 15 июл 2011, 13:36
Репутация: 476
Контактная информация:

Re: Модернизация токарного станка

Сообщение Dmaster »

Nick писал(а):Кстати, pid где стоит?
PID у меня стоит и на приводе (PI по скорости) и на ЕМС ))) Так оно надежнее, но зато достаточно точно ездит). Настройки подбирал долго. что-б в разнос не уходило)
Nick писал(а): joint following error
возникает только тогда, когда заданна позиция чпу не соврадает с позицией энкодера. а вот если он сломался- оно не помогает.
Если взять энкодер и снять с движка. зпустить чпу и крутануть энкодер немного, то серва улетит всё равно...joint following error не возникнет(
Надо бы защиту такую соорудить.. если задание есть ( некоторое отличное от удержания), а энкодер нини-то серве стоп!
" Linux CNC - наше всё"
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Модернизация токарного станка

Сообщение Nick »

Dmaster писал(а):PID у меня стоит и на приводе (PI по скорости) и на ЕМС ))) Так оно надежнее, но зато достаточно точно ездит). Настройки подбирал долго. что-б в разнос не уходило)
А не мог наоборот сигнальный кабель по которому команда идет рубануться?
Тут получается система из трех составляющих, при выходе из строя любого из них может глюкануть.
Dmaster писал(а):возникает только тогда, когда заданна позиция чпу не соврадает с позицией энкодера. а вот если он сломался- оно не помогает.
Смотри у нас есть команда G01 Z1.6 (мы находимся в Z100) motion планирует разгон и всю траекторию вплоть до Z1.6. Скажем мы доехали до Z50 и тут вылетает энкодер. Что происходит: pos-cmd становится Z49.99 (это задание на текущий сервоцикл) pid обрабатывает и едет дальше, но энкодер сломан и motor-pos-fb остается прежним. PID error растет, пид наращивает скорость.
Что должно произойти через секунду: pos-cmd становится Z45, motor-pos-fb = остался прежним Z50 => должен сработать following error!

Dmaster писал(а):Надо бы защиту такую соорудить.. если задание есть ( некоторое отличное от удержания), а энкодер нини-то серве стоп!
Это как я писал выше, таймер на ladder на сброс изменение положение энкодера, на активацию изменение motor-pos-cmd. Ты же с Classic ladder вроде работал... Нарисуй приблизительно кидай скрин, вместе доработаем :).

Где конфиги и Gкод? :)
Аватара пользователя
Dmaster
Мастер
Сообщения: 1271
Зарегистрирован: 15 июл 2011, 13:36
Репутация: 476
Контактная информация:

Re: Модернизация токарного станка

Сообщение Dmaster »

Наконец дошли руки до конфигов.. Они собственно в приложенных файлах.
G код на котором всё улетело.
N0010 G43 T04 H04 M06
N0020 S800 M03 M7
N0030 G00 X27.1 Z10.5
N0040 X24.6 Z0.8
N0050 G95
N0060
N0070 G01 X23.8 F.1
N0080 X15.0
N0090 X11.0
N0100 X5.8
N0110 Z1.8
N0120 X6.4 Z2.4 F1.
N0130 M02
%
Кстати.. проверял на обрыв датчика.... Нифига он ошибку не выдает, а двиг крутит.. я тупо отключл датчик и врубил станок и дал задание. .. едет!))) .. в зависимости от задания скорость разная.
Вложения
conf.rar
(3.75 КБ) 366 скачиваний
" Linux CNC - наше всё"
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Модернизация токарного станка

Сообщение Nick »

Dmaster писал(а):Кстати.. проверял на обрыв датчика.... Нифига он ошибку не выдает, а двиг крутит.. я тупо отключл датчик и врубил станок и дал задание. .. едет!))) .. в зависимости от задания скорость разная.
хмммм.... как-то странно... А можешь сделать скрин halscope когда так делаешь?
Интересны пины position ferror feedback и pid error.

Или хотя бы напиши, что там видно :)
Аватара пользователя
Dmaster
Мастер
Сообщения: 1271
Зарегистрирован: 15 июл 2011, 13:36
Репутация: 476
Контактная информация:

Re: Модернизация токарного станка

Сообщение Dmaster »

В конфигах-то косяков грандиозных не обнаружено?
" Linux CNC - наше всё"
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Модернизация токарного станка

Сообщение Nick »

На первый взгляд нет.
вроде все есть:
net zpos-fb => axis.2.motor-pos-fb
FERROR = 2.0
MIN_FERROR = 0.8

Хотя Ferror конечно большеват - 2мм это много. Но не в том суть.
Может знаешь что еще попробуй, вот такую строчку добавь:
net zpos-fb => axis.2.joint-pos-fb

Или замени:
net zpos-fb => axis.2.motor-pos-fb
на
net zpos-fb => axis.2.joint-pos-fb
и
net zpos-cmd axis.2.motor-pos-cmd => pid.z.command
на
net zpos-cmd axis.2.joint-pos-cmd => pid.z.command

В этом может быть суть, но не уверен...
Ответить

Вернуться в «Токарные станки»