Модернизация фрезерного 6Р13Ф3-01

Тяжелые фрезерные станки по металлу.
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Модернизация фрезерного 6Р13Ф3-01

Сообщение Lexxa »

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

Re: Модернизация фрезерного 6Р13Ф3-01

Сообщение Nick »

Питон то фигня, напишем.... Главное понять будет работать или нет :)
Как мне кажется стоит сделать:
1. в hal прописать только компонент encoder, плюс добавить наш компонент на питоне в userspace.
2. В нашем компоненте будем отслеживать изменение encoder.position и выдавать команды.
Что меня смущает:
1. Не будет ли лагать при использовании компонента user space?
2. Как быть с энкодером, по идее всем энкодерам нужны свои шкалы, свои 0 и свои единицы.

ЗЫ если энкодеру выдавать сигналы на пины А и В, только если выполняются какие-то условия, то он может потерять 1-2 шага на старте...
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Модернизация фрезерного 6Р13Ф3-01

Сообщение Lexxa »

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

Re: Модернизация фрезерного 6Р13Ф3-01

Сообщение Nick »

В том то и дело что хотелось бы уйти от использования hal причем на уровне base thread для реализации фактически пользовательского интерфейса.
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Модернизация фрезерного 6Р13Ф3-01

Сообщение Lexxa »

я точно знаю, что во взрослых ЧПУ это всё на ладдере написано.

p.s. чинил я тут недавно руку измерительную у токарника, так вот там ладдер на 276 страниц распечатался. Всё там через ладдер сделано.
В шкафу только силовые реле, привода, блок питания и теплушки. В ладдер заводятся все сигналы с пульта стойки и обрабатываются, но ихмо 276 станиц ладдера это просто задница.

Если свой компонент написать, и откомпилить, то может интереснее получится. Но я гдет тут читал, что питон и реальное время - несовместимые штуки
а перемещения в ручном режиме хочется нормальными сделать
:bender:
Аватара пользователя
Алексс
Почётный участник
Почётный участник
Сообщения: 2210
Зарегистрирован: 20 июл 2012, 15:49
Репутация: 266
Заслуга: IQ32
Настоящее имя: Алексей
Откуда: Прага
Контактная информация:

Re: Модернизация фрезерного 6Р13Ф3-01

Сообщение Алексс »

а есть какая-то доходчивая дока на ладдер ???
чую вещь нужная, но совершенно не понятяная :(
Каждая собака, бегущая на поводке впереди хозяина, думает, что ведет его за собой.
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Модернизация фрезерного 6Р13Ф3-01

Сообщение nkp »

Алексс писал(а):а есть какая-то доходчивая дока на ладдер
начал было писать по ладдеру для снуляначинающих-но продвинулся не далёко ;)
http://cnc-club.ru/forum/viewtopic.php? ... 379#p29379
там книжки есть-не много инфы-но все же...
Аватара пользователя
Алексс
Почётный участник
Почётный участник
Сообщения: 2210
Зарегистрирован: 20 июл 2012, 15:49
Репутация: 266
Заслуга: IQ32
Настоящее имя: Алексей
Откуда: Прага
Контактная информация:

Re: Модернизация фрезерного 6Р13Ф3-01

Сообщение Алексс »

пасиб, дома полистаю.
там видимо все просто, надо только понять :)
Каждая собака, бегущая на поводке впереди хозяина, думает, что ведет его за собой.
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Модернизация фрезерного 6Р13Ф3-01

Сообщение Lexxa »

вот сделал пультик на pyvcp, для отладки пока на pyvcp
режимы меняет как задумано.
Вопрос. Как заставить энкодер считать в заданном диапазоне? например от 0 до 100, чтоб регулировку подачи сделать?
Вложения
6r13f3-1.xml
(2.01 КБ) 1138 скачиваний
test.hal
(5.21 КБ) 1171 скачивание
:bender:
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Модернизация фрезерного 6Р13Ф3-01

Сообщение Nick »

есть limit1 правда position всеравно уйдет за пределы...
http://www.linuxcnc.org/docs/devel/html ... it1.9.html
Lexxa писал(а):Если свой компонент написать, и откомпилить, то может интереснее получится. Но я гдет тут читал, что питон и реальное время - несовместимые штуки
а перемещения в ручном режиме хочется нормальными сделать
Ну ты же для перемещений будешь задавать смещения, а их можно не в realtime задавать.
Lexxa писал(а): Всё там через ладдер сделано.
А ладдер там как реализуется? На отдельном чипе, или в серво-потоке или в user space?
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Модернизация фрезерного 6Р13Ф3-01

Сообщение Lexxa »

Nick писал(а):А ладдер там как реализуется? На отдельном чипе, или в серво-потоке или в user space?
не знаю, таких подробностей фанук не выкладывает. Но фанук это по большому счету калькулятор, там всё на отдельных чипах.

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

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

Re: Модернизация фрезерного 6Р13Ф3-01

Сообщение Nick »

По идее да, но так же ничего не мешает запихать все это в user-space.

Про real-time потоки, загружать их сильно наверное не стоит, ибо можно начать хватать всякие задержки или придется период длиннее делать. Кстати, а энкодер ты будешь месой обрабатывать? Если да, то тогда and2 ко входам применить не получится. До LinuxCNC и всех его компонентов входы не дойдут - им доступны только уже обработанные пины.
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Модернизация фрезерного 6Р13Ф3-01

Сообщение Lexxa »

Nick писал(а):Кстати, а энкодер ты будешь месой обрабатывать? Если да, то тогда and2 ко входам применить не получится. До LinuxCNC и всех его компонентов входы не дойдут - им доступны только уже обработанные пины.
Это я к сожалению выяснил(((( когда писал про несовместимость пинов.

Хмммм, а может совсем и не надо перекидывать энкодер??
просто завести один пин энкодер.позишн и на два входа - халуи.инкреент и халуи.фид.оверрайд.
и не развязывать их совсем, поскольку они отрабатывают в разных режимах. при переключении режимов делать ресет энкодеру, чтобы всегда иметь одно и тоже значение? и включать режимами пин типа halui.feed-override.count-enable
:bender:
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Модернизация фрезерного 6Р13Ф3-01

Сообщение Nick »

Тут штука в чем, не плохо бы значения пинов сохранять при переходах в другой режим - значит надо работать не с абсолютными значениями, а с приращениями.
О, придумал!!!

Делаем через ClassicLadder - пусть у нас есть 1 энкодер, каждый переход на другой режим - сброс энкодера в 0. Т.е.

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

halui.mode.is-auto          encoder.reset
---|/\|----------+-------------()---
                         |                           
halui.mode.is-mdi        |
---|/\|------------------+                                    
                         |                           
halui.mode.is-manual     |                           
---|/\|------------------+                                    
                         |                           
                         |                           
---|/\|------------------+                                    

В ручном режиме - джоггим оси по counts:

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

halui.mode.is-manual               axis.N.jog-enable
----|  |-------------+----------------()--------------
                     |   
                     |   encoder.counts    axis.N.jog-counts
                     +-------| |-------------()-------
В автоматическом меняем feed override по приращению, причем этот выход feed override лучше потом прогнать через limit1.

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


         halui.mode.is-auto           
------+-----| |-----------+-----------
      |                   |           
      | halui.mode.is-mdi |
      +-----| |-----------+
      
   
 +--------------------------------------------------------------+  +------------------------------+
-| feed_override = feed_override + encoder.position - last_pos  |--| last_pos = encoder.position  |----
 +--------------------------------------------------------------+  +------------------------------+
(нижние две строчки это одна строчка, просто не помещается)

И самое клевое в этом всем, что classic ladder можно загнать или в rt в какой-нибудь поток, или в user space, по своему усмотрению :)!
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Модернизация фрезерного 6Р13Ф3-01

Сообщение Lexxa »

Ник. респект! ведь ladder может разруливать float))))) я забыл совсем об этом
:bender:
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Модернизация фрезерного 6Р13Ф3-01

Сообщение Lexxa »

я чёт не прошарил как последнее (какими компонентами ладдера) реализовать
last_pos присваевается в Assignament?
и по идее feed_override тоже. Но их же нельзя вроде в одной строчке делать.
------
короче сделал я пока так:
При переходе из режима в режим пришлось ставить задержку, а то энкодер сбрасывался в ноль, а исполнительная релюшка нет (рис 1)
Пришлось прикручивать энкодер.велосити. ненулевое значение включает задержку в 1 мс, чтобы запомнить значение предыдущее значение. Далее вычисляется разность между текущим значением энкодер.позишн и предыдущим.
Если разность больше нуля, увеличить подачу, если меньше - убавить. (рис.2)
Вроде как даже работает, жаль только что скорость регулировки подачи никак не увеличивается(
может как нить еще сделать лучше?
Вложения
1.png (3016 просмотров) <a class='original' href='./download/file.php?id=7218&mode=view' target=_blank>Загрузить оригинал (37.79 КБ)</a>
2.png (3016 просмотров) <a class='original' href='./download/file.php?id=7219&mode=view' target=_blank>Загрузить оригинал (37.89 КБ)</a>
:bender:
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Модернизация фрезерного 6Р13Ф3-01

Сообщение Lexxa »

и, черт подери, каакой-то косяк с режимами((((((
выбираешь с пульта например режим авто, открываешь программу и не с того не с сего ставится режим мануал, хотя халуи.моде.авто = 1
:bender:
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Модернизация фрезерного 6Р13Ф3-01

Сообщение nkp »

Lexxa писал(а): каакой-то косяк с режимами
неоднократно было замечено это- пыталисть прикрутить смену режимов скриптами-не было однозначности в переключении
забросил эту идею-решив что не доделано это в емс
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Модернизация фрезерного 6Р13Ф3-01

Сообщение Lexxa »

Я обратил внимание, что когда программа заканчивает отработку, всегда переключается в ручной режим, причем неважно как заканчивается программа - сама или с ошибкой.

как бы это обойти....
т.е. например дополнительно передернуть режим авто, типа

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

panel-mode-auto                   halui.mode.is-auto                      100мс             halui.mode.manual
-----|   |----------------------------| / |------------------------------| TOF |-------------------(  )---------------
 
panel-mode-auto                 halui.mode.is-manual                      200мс             halui.mode.auto
-----|   |----------------------------|   |------------------------------| TOF |-------------------(  )---------------
:bender:
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6194
Откуда: Казахстан.
Контактная информация:

Re: Модернизация фрезерного 6Р13Ф3-01

Сообщение aftaev »

Lexxa, перерыл тему целиком но фотос станка не обнаружил
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Ответить

Вернуться в «Фрезерные станки по металлам»