Страница 2 из 21
Re: Модернизация фрезерного 6Р13Ф3-01
Добавлено: 12 янв 2012, 23:43
Lexxa
ща сделлаю инверт им.
Кстати, с чего Axis решила, что концевики замкнуты. У меня сейчас кроме 5i20 ничего не подключено.
Re: Модернизация фрезерного 6Р13Ф3-01
Добавлено: 12 янв 2012, 23:55
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
Re: Модернизация фрезерного 6Р13Ф3-01
Добавлено: 13 янв 2012, 00:03
Lexxa
F1 - аварийная остановка - ВКЛ/ВЫКЛ
F2 - питание станка ВКЛ/ВЫКЛ.
это не принципиально.
Не, наверное надо ladder logic привлекать сразу, потому что все равно это делать придется.
-------
Меня ща волнуют концевики. На станке они у меня НО типа.
Сейчас к 5i20 ничего не подключено, т.е. на по идее все её выходы поддтянуты вверх, т.е. там логическая 1.
Следовательно Axis думает иначе. По умолчанию концевики в EMC нормально размокнутые или замкнутые?
Re: Модернизация фрезерного 6Р13Ф3-01
Добавлено: 13 янв 2012, 00:07
Nick
Lexxa писал(а):По умолчанию концевики в EMC нормально размокнутые или замкнутые?
Это все в hal прописано. Ищи пины neg-lim-sw-in или .pos-lim-sw-in, ну в общем lim

Re: Модернизация фрезерного 6Р13Ф3-01
Добавлено: 13 янв 2012, 00:21
NightV
Lexxa писал(а):Кстати, ток 1А у 7i37 на 1 канал или общий по выходам?
каждый канал 1А, только не забуть соблюсти полярность, если перепутаеш не сгорит но и нагрузку не включит.
по поводу разводки пинов, зачем искать себе лишний гимор, через stepconf или pncconf разведи основные Вх\Вых, энайблы Е-стопы и концевики с хомами, уже готовые, только выбирай из списка, кнопки, тоже есть несколько готовых (типа Jog'и запуск програмы и ручное перемещение осей), если хочеш изголится можеш добавить свои (давать свои названия, без пробелов, слова только через "_", например knopka_vsem_hana) он их тебе пропишет, потом ручками поправиш что они должны делать.
а дальше разводи ручками что не доделал с 7i49
По умолчанию концевики в EMC нормально размокнутые или замкнутые
разница лиш в конце строчки просто "in" или "in_not", тоесть прямой или инвертирован, я у себя завел лимиты что всегда дают 24в, тоесть на разрыв (NC), сработает даже если просто оборвется провод, дасть знать что лимит не рабочий
Re: Модернизация фрезерного 6Р13Ф3-01
Добавлено: 13 янв 2012, 00:26
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
Re: Модернизация фрезерного 6Р13Ф3-01
Добавлено: 13 янв 2012, 00:28
Lexxa
NightV писал(а):
а дальше разводи ручками что не доделал с 7i49
7i49 пока у меня отсутствует в наличии и скорее всего отсутствовать будет и дальше.
Про полярность учту)))
Re: Модернизация фрезерного 6Р13Ф3-01
Добавлено: 13 янв 2012, 00:31
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
Re: Модернизация фрезерного 6Р13Ф3-01
Добавлено: 13 янв 2012, 03:11
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?
Или что-то я не так делаю?
Re: Модернизация фрезерного 6Р13Ф3-01
Добавлено: 13 янв 2012, 11:14
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, в котором можно на живую менять схему, плюс к этому в нем отображаются активные сигналы и куда они доходят. Это может быть очень удобно при настройке. Только не забывай, что все это может быть подключено к реальному станку

.
Re: Модернизация фрезерного 6Р13Ф3-01
Добавлено: 13 янв 2012, 11:23
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
Re: Модернизация фрезерного 6Р13Ф3-01
Добавлено: 13 янв 2012, 11:46
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
Re: Модернизация фрезерного 6Р13Ф3-01
Добавлено: 13 янв 2012, 12:04
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
Re: Модернизация фрезерного 6Р13Ф3-01
Добавлено: 13 янв 2012, 12:39
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.
Re: Модернизация фрезерного 6Р13Ф3-01
Добавлено: 13 янв 2012, 13:17
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 он прописывает все вроде бы правильно.
Re: Модернизация фрезерного 6Р13Ф3-01
Добавлено: 13 янв 2012, 14:03
Nick
Это надо будет на linuxcnc.org написать, чтобы пофиксили. Спасибо за подробное объяснение, сейчас psha чиркану, может он сам порядок наведет

.
Re: Модернизация фрезерного 6Р13Ф3-01
Добавлено: 13 янв 2012, 14:26
Lexxa
Тем временем близится к финалу resolver to encoder на ПЛИСке)))
Re: Модернизация фрезерного 6Р13Ф3-01
Добавлено: 13 янв 2012, 15:09
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
Правильно?
Re: Модернизация фрезерного 6Р13Ф3-01
Добавлено: 13 янв 2012, 16:37
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.
Re: Модернизация фрезерного 6Р13Ф3-01
Добавлено: 13 янв 2012, 17:05
Lexxa
Не, насколько я понимаю, сброс АВОСТа это возможность включить станок. Это кнопка-грибок с фиксацией на пром. станках. До тех пор пока она нажата станок включить нельзя. Максимум, что можно это только вводной автомат включить только для того, чтобы на НЗ контакте грибка появилось напряжение, которое подается на пусковую кнопку.
В нашем случае АВОСТ это программная штука, которая только отключает ЧПУ.
Я хочу привязать её еще и к приводам.
Авария вообще может произойти и со стороны привода. При возникновении таковой необходимо снять сигнал разрешения включения приводов (amp_enable).
xenable, yenable, zenable - прграммные сигналы.
amp_enable - аппаратный.
Последовательность включения приводов такая должна быть
Включаем станок на шкафу электроавтоматики.
Как только включился шкаф электроавтоматики приводы сами вырабатывают сигнал готовности, в случае, если на них никакой аварии не было (там есть куча всяки защит).
Как только мы в Axis сбрасываем АВОСТ мы получаем возможность включить приводы.
Приводы мы имеем право включать только если они готовы.
Итак, если нет никаких аварий, если снят сигнал АВОСТ и нажата кнопка включить станок F2, то только в этом случае включаются привода.
Аварийные отключения в этом случае произойдут автоматически в случае аварии на приводах, нажатия E-stop ну или выключения станка по F2.