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

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

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

Сообщение Lexxa »

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

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

Сообщение Nick »

Не, имхо F1 - включение станка, F2 - сброс estop. Т.е. при включении станка он всегда на estop-е, на всякий случай.

вообще чтобы установить пин в положение и там и оставить наверное понадобится ladder logic. Но, если мы хотим, чтобы на пине enable приводов была 1 тогда и только когда 1 на пине готовности привода и станок не в состоянии estop, то можно сделать так:

loadrt and2 names=motor-enable
addf and2.motor-enable base-thread

net estop-active <= halui.estop.is-activated => add2.motor-enable.in0
net amp-rd => add2.motor-enable.in1

net motor-enable <= add2.motor-enable.out => НУЖНЫЙ ПИН НА МЕСЕ

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

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

Сообщение Lexxa »

F1 - аварийная остановка - ВКЛ/ВЫКЛ
F2 - питание станка ВКЛ/ВЫКЛ.
это не принципиально.
Не, наверное надо ladder logic привлекать сразу, потому что все равно это делать придется.
-------
Меня ща волнуют концевики. На станке они у меня НО типа.
Сейчас к 5i20 ничего не подключено, т.е. на по идее все её выходы поддтянуты вверх, т.е. там логическая 1.
Следовательно Axis думает иначе. По умолчанию концевики в EMC нормально размокнутые или замкнутые?
:bender:
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

Lexxa писал(а):По умолчанию концевики в EMC нормально размокнутые или замкнутые?
Это все в hal прописано. Ищи пины neg-lim-sw-in или .pos-lim-sw-in, ну в общем lim :)
Аватара пользователя
NightV
Почётный участник
Почётный участник
Сообщения: 6610
Зарегистрирован: 30 дек 2011, 09:14
Репутация: 2279
Настоящее имя: Владимир Айрапетян
Откуда: Israel
Контактная информация:

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

Сообщение NightV »

Lexxa писал(а):Кстати, ток 1А у 7i37 на 1 канал или общий по выходам?
каждый канал 1А, только не забуть соблюсти полярность, если перепутаеш не сгорит но и нагрузку не включит.

по поводу разводки пинов, зачем искать себе лишний гимор, через stepconf или pncconf разведи основные Вх\Вых, энайблы Е-стопы и концевики с хомами, уже готовые, только выбирай из списка, кнопки, тоже есть несколько готовых (типа Jog'и запуск програмы и ручное перемещение осей), если хочеш изголится можеш добавить свои (давать свои названия, без пробелов, слова только через "_", например knopka_vsem_hana) он их тебе пропишет, потом ручками поправиш что они должны делать.
а дальше разводи ручками что не доделал с 7i49
По умолчанию концевики в EMC нормально размокнутые или замкнутые
разница лиш в конце строчки просто "in" или "in_not", тоесть прямой или инвертирован, я у себя завел лимиты что всегда дают 24в, тоесть на разрыв (NC), сработает даже если просто оборвется провод, дасть знать что лимит не рабочий
Последний раз редактировалось NightV 13 янв 2012, 00:29, всего редактировалось 1 раз.
Всё просто! если знаешь КАК!
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

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

Сообщение Lexxa »

инвертировал концевики, не ругатся вроде. Завтра подцеплю 7i37, позамыкаю пинцетиком концевики, посмотрим, будет писать или нет.

Как ladder редактор запускать отдельно от pncconf.

Кстати, я там косяк заметил) При выставлении конечников можно два раза выбрать МАКСИМУМ Y и нет максумум Х.
Выбирая разные Максимы Y в .hal имеется

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

# --- MAX-X ---
net max-x     <=  hm2_5i20.0.gpio.031.in_not
# --- MAX-X ---
net max-x     <=  hm2_5i20.0.gpio.031.in_not
# --- MAX-Z ---
net max-z     <=  hm2_5i20.0.gpio.032.in_not
:bender:
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

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

Сообщение Lexxa »

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

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

Сообщение Lexxa »

а еще там

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

net home-y     =>  axis.1.home-sw-in
net min-y     =>  axis.1.neg-lim-sw-in
net y-pos-limit     =>  axis.1.pos-lim-sw-in
а должно быть

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

net home-y     =>  axis.1.home-sw-in
net min-y     =>  axis.1.neg-lim-sw-in
net max-y    =>  axis.1.pos-lim-sw-in
p.s врсия emc2 - 2.4.6
:bender:
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

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

Сообщение Lexxa »

По classic ladder вопрос
1) Рисую схему ----|%I1|-------------|%Q1|-----,
2) открываю Symbols.
3) В поле variable пишу %I1 и %Q1,
4) В поле Symbol name пишу Amp_ready и Amp_Enbl. Имя переменной, я так понимаю задается любое.
6) в hal есть loadusr classicladder --nogui custom.clp
7) перезагружаю на всякий случай axis и открываю там hal-метр.
Я правильно понимаю, что на вкладке ножки должны появиться пины ladder'а и у двух из них должны быть имена Amp_ready и Amp_Enbl?
Или что-то я не так делаю?
Вложения
1.png (2944 просмотра) <a class='original' href='./download/file.php?id=3675&mode=view' target=_blank>Загрузить оригинал (93.29 КБ)</a>
:bender:
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

Lexxa писал(а):Как ladder редактор запускать отдельно от pncconf.
наверное так можно:
halrun loadusr classicladder custom.clp
Lexxa писал(а):Кстати, я там косяк заметил) При выставлении конечников можно два раза выбрать МАКСИМУМ Y и нет максумум Х.Выбирая разные Максимы Y в .hal имеется
Не совсем понял, в чем косяк?
Lexxa писал(а):Я правильно понимаю, что на вкладке ножки должны появиться пины ladder'а и у двух из них должны быть имена Amp_ready и Amp_Enbl? Или что-то я не так делаю?
Нет, скорее всего они будут типа того, как на твоей картинке: classicladder.o.in-00
Lexxa писал(а):6) в hal есть loadusr classicladder --nogui custom.clp
Если уберешь --nogui, то при запуске emc2 будет запускаться редактор classic ladder, в котором можно на живую менять схему, плюс к этому в нем отображаются активные сигналы и куда они доходят. Это может быть очень удобно при настройке. Только не забывай, что все это может быть подключено к реальному станку :).
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

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

Сообщение Lexxa »

а как же мне узнать какой из classicladder.0.in-00 мне нужен?
Там есть еще classicladder.0.s32in-00 и classicladder.0.floatin-00
или переменным типа %Ix соответствует classicladder.0.in-0x?
тогда как работать с classicladder.0.s32in-00 и classicladder.0.floatin-00
:bender:
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

s32 - signed integer = целое число - туда можно направлять пины s32, например, номер инструмента
float - действительное число, туда можно отправлять пины float, например скорость или скорость шпинделя.


classicladder.0.in-N IN bit
Эти сигналы отображаются на переменные %INNN в classicladder

classicladder.0.out-N OUT bit
На эти битовые пины отображаются на переменные вывода %QnNN из classicladder

classicladder.0.in-N IN s32
Эти пины отображаются на переменные %IWNNN в classicladder

classicladder.0.out-N OUT s32
На эти численные пины отображаются на переменные вывода %QWNNN из classicladder
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

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

Сообщение Lexxa »

Да, я тоже ща кое что нарыл на эту тему
http://wiki.linuxcnc.org/cgi-bin/emcinf ... 0#CONTACTS

Вот что пишут
How do I set up HAL pins in Classicladder?

If you just want to use BIT (they represent on or off states) pins it's easy the pins names look like this:
classicladder.0.in-00 This pin connects BIT HAL pins for signal going IN to classicladder. They correspond to %I variables with the same number eg. %I0
classicladder.0.out-01 This pin connects BIT HAL pins for signals going OUT from classicladder. They correspond to %Q variables with the same number eg %Q0
If you want to use S32 pins (they represent a +- quantity) then you have to do a little more work. You have to tell the realtime module to create the s32 pins. You do this by adding commands when loading the module
loadrt classicladder_rt numS32in=5 numS32out=5 This adds 5 S32in and 5 S32out pins to classicladder
When doing this you need to make sure that the number of S32 in and out pins plus the number of word variables is not more then the number of words loaded by the realtime module
(100 words is the default, so in this example we will have 90 words variables + 5 S32in + 5 S32out =100)
The pin names for S32 look like this:
classicladder.0.S32in-00 This pin connects S32 HAL pins for signals going IN to Classicladder. They correspond to %W -the numbers depend
classicladder.0.S32out-00 This pin connects S32 HAL pins for signals coming OUT of classicladder. They correspond to %W -the numbers depend
Using the example above (5 S32 in and out requested from realtime) The numbering system for %W variable works like this:
Pin name classicladder.0.S32in-00 to 04 coresponds to %W0 to %W4
Pin name classicladder.0.S32out-00 to 04 coresponds to %W5 to %W9
words (internal memory varaibles) are %W10 to %W99
If there are no S32in pin requested then the numbering for S32out Variables start at %W0

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

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

Сообщение Lexxa »

суть такая
Пин classicladder.0.in-00 соединяет BIT HAL пины для сигналов входящих в classicladder. Им соответсвуеют переменные %I с таким же номером, т.е. %I0
Пин classicladder.0.out-00 соединяет BIT HAL пины для сигналов выходящих bp classicladder. Им соответсвуеют переменные %Q с таким же номером, т.е. %Q0

Если вы хотите использовать пины S32, то должны сделать небольшую дополнительную работу. Вам придется сказать модулю реального времени создать s32 пин.
Вы сделаете это добавлением команды, когда загружаете модуль:

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

loadrt classicladder_rt numS32in=5 numS32out=5 
Она добавит 5 S32-пинов ввода и пять S32-пина вывода в classicladder.
Когда вы это сделаете, вам необходимо убедиться, что число S32 вводов и выводов плюс число переменных типа WORD не более чем число переменных типа word, загруженных в модуль реального времени. (по умолчанию 100, таким образом в этом примере мы будем иметь 90 переменных типа word + 5 вводов + 5 выводов S32).
Имена пинов для S32 выглядят следующим образом:
Пин classicladder.0.in-00 соединяет BIT HAL пины для сигналов входящих в classicladder. Им соответсвуеют переменные %W с зависимыми номерами.
Пин classicladder.0.out-00 соединяет BIT HAL пины для сигналов выходящих из classicladder. Им соответсвуеют переменные %W с зависимыми номерами.
Пользуемся примером выше (5 входов и выходов S32 запрашиваемых из модуля реального времени). Система нумерации для переменных %W работает следующим образом:
Пинам ввода с именами от classicladder.0.S32in-00 до classicladder.0.S32in-04 соответствуют переменные от %w0 до %W4.
Пинам вывода с именами от classicladder.0.S32out-00 до classicladder.0.S32out-04 соответствуют переменные от %w5 до %W9.
Внутренним переменным типа word - от %W10 до %W99.
Если не требуется вводных пинов S32, то нумерация выводных пинов S32 начинается с %W0.
Последний раз редактировалось Lexxa 13 янв 2012, 14:29, всего редактировалось 1 раз.
:bender:
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

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

Сообщение Lexxa »

Nick, по поводу косяка.
Ну во-первых, криво подписано:
Вкладка первая: Configuration page - норм
Вкладка вторая : I/O Connector 2 - норм
Вкладка третья : II/O Connector 3 - не норм, надо -то I/O
Вкладка четвертая : I/O Connector 4 - норм
Во-вторых, открываем II/O Connector 3 и выбираем
1) меньший предел X
2) меньший предел Y
3) меньший предел Z
4) больший предел X - так вот больший предел в мастере отсутствует. Вместо него есть больший предел Y. Т.е больший предел Y там есть два раза.
5) больший предел Y
6) больший предел Z

Если предположить, что на месте первого большего предела Y должен быть больший предел X и выбрать его, то в выходном файле будет

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

...
# --- MAX-X ---
net max-x     <=  hm2_5i20.0.gpio.031.in_not
# --- MAX-X ---
net max-x     <=  hm2_5i20.0.gpio.031.in_not
# --- MAX-Z ---
net max-z     <=  hm2_5i20.0.gpio.032.in_not
...
net home-y     =>  axis.1.home-sw-in
net min-y     =>  axis.1.neg-lim-sw-in
net y-pos-limit     =>  axis.1.pos-lim-sw-in
Т.е. мастер вместо того чтобы назначить net max-y <= hm2_5i20.0.gpio.032.in_not делает net max-x <= hm2_5i20.0.gpio.031.in_not
Мастер вместо того чтобы написать net max-y => axis.1.pos-lim-sw-in пишет net y-pos-limit => axis.1.pos-lim-sw-in
При всем этом концевикам оси X он прописывает все вроде бы правильно.
:bender:
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

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

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

Сообщение Lexxa »

Тем временем близится к финалу resolver to encoder на ПЛИСке)))
:bender:
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

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

Сообщение Lexxa »

А как называется сигнал включения станка?

Спустя час. Пофиг как он называется. xenable, yenable и zenable скорее всего появляются после нажатия кнопки Включить станок в Axis.
В общем получается такая схема включения приводов:
E-stop-out -|amp_RD|-----|xenable|-----|yenable|----|zenable|-----(amp_enable)

Если я правильно разобрался в net и classicladder то в custom.hal я прописываю связи,

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

net a_e_0 classicladder.0.in-00 <= estop-out
net a_e_1 classicladder.0.in-01 <= xenable
net a_e_2 classicladder.0.in-02 <= yenable
net a_e_3 classicladder.0.in-03 <= zenable
net a_e_4 classicladder.0.in-04 <= amp_RD
net a_e_out classicladder.0.out.00 => amp_enable
при том что в основной.hal у меня есть

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

# --- Включить приводы ---
setp    hm2_5i20.0.gpio.045.is_output true
net amp_enable     =>  hm2_5i20.0.gpio.045.out

# --- Готовность привода ---
net amp_RD     <=  hm2_5i20.0.gpio.033.in
Правильно?
:bender:
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

Чего-то я все таки не догоняю.

Включаем станок. Для этого сбросить АВОСТ F1 и включаем сам станок F2.
За это время где-то должны успеть проверить готовы ли сервы и если они готовы включить станок.

Может логика должна быть чем-то типа:
1. включаем электричество.
2. станок встает на авост, если сервы не готовы сразу.
3. пытаемся сбросить авост через 1 секунду, если сервы готовы, то все ок - станок enable, если нет - то опять авост.

Тогда схема будет простой. Заводим пины axis.N.amp-enable-out OUT bit и axis.N.amp-fault-in IN bit к выводам сервы и все. Если есть пин готовности сервы, то его подключаем к fault с инвертом.


----------
Вот, что еще нашел:
John discovered that the servo amp "fault" signals actually indicate "not running", so they can't be connected directly to EMC. (EMC won't enable the amps if they are faulted, and the amps will indicate faulted until they are enabled... chicken and egg situation.) The answer is to condition the fault lines with "servo_enable", which is a natural job for ladder logic, which we will need later for the toolchanger anyway. With help from Pete in California, John was able to get ClassicLadder running, and wrote a few rungs of ladder logic to solve the fault logic problem. (Pete is the one who converted ClassicLadder to be compatible with EMC and HAL back in June.) With the fault and enable issues out of the way, John was able to hook a PID block to the X axis and get it tuned. By about 5:30am, X could be jogged and homed using EMC.
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

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

Сообщение Lexxa »

Не, насколько я понимаю, сброс АВОСТа это возможность включить станок. Это кнопка-грибок с фиксацией на пром. станках. До тех пор пока она нажата станок включить нельзя. Максимум, что можно это только вводной автомат включить только для того, чтобы на НЗ контакте грибка появилось напряжение, которое подается на пусковую кнопку.

В нашем случае АВОСТ это программная штука, которая только отключает ЧПУ.
Я хочу привязать её еще и к приводам.
Авария вообще может произойти и со стороны привода. При возникновении таковой необходимо снять сигнал разрешения включения приводов (amp_enable).

xenable, yenable, zenable - прграммные сигналы.
amp_enable - аппаратный.
Последовательность включения приводов такая должна быть
Включаем станок на шкафу электроавтоматики.
Как только включился шкаф электроавтоматики приводы сами вырабатывают сигнал готовности, в случае, если на них никакой аварии не было (там есть куча всяки защит).
Как только мы в Axis сбрасываем АВОСТ мы получаем возможность включить приводы.
Приводы мы имеем право включать только если они готовы.
Итак, если нет никаких аварий, если снят сигнал АВОСТ и нажата кнопка включить станок F2, то только в этом случае включаются привода.

Аварийные отключения в этом случае произойдут автоматически в случае аварии на приводах, нажатия E-stop ну или выключения станка по F2.
:bender:
Ответить

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