Конфигурация EMC2 LinuxCNC

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

Конфигурация EMC2 LinuxCNC

Сообщение Nick »

После того как Вы произвели установку EMC2, можно переходить к конфигурации.
Начнем с простого пути, использования утилиты Stepconf. Sterconf это графическая утилита для настройки EMC2 для различных станков. Конечно она не реализует все возможности EMC2, но подойдет для большинства станков со step-dir контроллерами управляемыми через lpt порт. Stepconf устанавливается вместе с EMC2 и его можно запустить из меню Приложения -> EMC2 -> Stepconf.
Это незавершенный раздел, Вы можете помочь в его оформлении.
Нужны исправления, комментарии. Публикуйте их в этой теме.

Содержание


Настройка EMC2 (342605 просмотров) <a class='original' href='./download/file.php?id=781&mode=view' target=_blank>Загрузить оригинал (41.24 КБ)</a>
Настройка EMC2
Конфигурация ЕМС2 (342605 просмотров) <a class='original' href='./download/file.php?id=780&mode=view' target=_blank>Загрузить оригинал (44.23 КБ)</a>
Конфигурация ЕМС2

Выбор конфигурации

В первом окне Stepconf есть выбор: создать новую конфигурацию или изменить старую. Выбираем создать новую. Также можно проставить галки напротив Create shortcut, чтобы в последствии запускать EMC2 с созданной конфигурацией в один клик.

Screenshot-EMC2 Stepper Mill Configuration-2.png (342605 просмотров) <a class='original' href='./download/file.php?id=782&mode=view' target=_blank>Загрузить оригинал (95.31 КБ)</a>

Параметры станка, контроллера и быстродействия

Настройки станка
Вводим название станка, в документации говорится, что можно использовать заглавные и строчные буквы, цифры и знаки "-" и "_".
Выбираем конфигурацию осей. XYZ (Фрезер), XYZA (4-х осевой фрезер) или XZ (Токарный станок). Названия только для примера. Если у Вас двух осевой станок, то можете выбрать XYZ, и ось Z оставить не настроенной.
Единицы измерения станка: дюймы или миллиметры.

Настройки контроллера
Можно выбрать из набора предустановленных параметров если Ваш контроллер в список. Или настроить все самому.
Параметры Step time, Step space, Direction hold, Direction setup смотрите в документации к вашему контроллеру.

Настройки lpt
Если у Вас только один lpt, то можно ничего не трогать по умолчанию стоит установка стандартного адреса lpt порта.

Настройки быстродействия
Base period - это одна из основных величин быстродействия, она определяет максимальную скорость работы с контроллером. Она определяет так называемый heartbeat (сердцебиение системы в целом) от которого зависит время для генерации сингала Step. Фактически, чем меньше base period тем больше максимальная частота генерации шагов (например, при Base period = 30 000 ns максимальная частота генерации шагов равна 33333Гц, что при 200 шагах на оборот в режиме микрошага 1:8 дает максимум 20 оборотов в секунду).

Base period зависит от параметров компьютера. Правильно определить base period можно при помощи утилиты Latency test, она тоже входит в состав EMC2. Latency это задержка с которой компьютер может остановить процесс работы для обработки внешнего запроса. В нашем случае, запросом является периодичный "heartbeat" (стук сердца) на основе которого вычисляется нужное время для следующего шага. Для того, чтобы контроллер работал правильно и не пропускал шаги минимальный base period должен быть равным длительность direction setup+direction hold+step space+maximum latency.

Итак, запускаем Latency test, и пытаемся нагрузить компьютер разными задачами, чтобы наверняка получить максимальную задержку. Можно запустить проигрываться фильм, полазить по интернету, скопировать большой файл, перемещать окна. Через несколько минут смотрим значение Base thread Max jitter (максимальное дрожание base period) и вставляем это значение в соответствующую строку в Stepconf.

Onscreen prompt for tool change - уведомление о смене инструмента. Если эта опция включена, то EMC2 будет останавливаться и выдавать сообщение о смене инструмента, каждый раз, когда в управляющей программе будет встречаться код M6. Оставьте эту опцию включенной, только если Вы не собираетесь делать автоматическую смену инструмента.

Настройка LPT для EMC2 (342605 просмотров) <a class='original' href='./download/file.php?id=783&mode=view' target=_blank>Загрузить оригинал (99.1 КБ)</a>
Настройка LPT для EMC2
Настройка LPT для EMC2 (342605 просмотров) <a class='original' href='./download/file.php?id=784&mode=view' target=_blank>Загрузить оригинал (88.29 КБ)</a>
Настройка LPT для EMC2

Настройки пинов LPT

На этой странице мы можем настроить значения всех пинов параллельного порта.
Значения для этих настроек смотрите в документации к контроллеру.

Настройка осей станка в EMC2 LinuxCNC (342605 просмотров) <a class='original' href='./download/file.php?id=785&mode=view' target=_blank>Загрузить оригинал (66.88 КБ)</a>
Настройка осей станка в EMC2 LinuxCNC
Проверка настроек осей LinuxCNC (342605 просмотров) <a class='original' href='./download/file.php?id=786&mode=view' target=_blank>Загрузить оригинал (21.23 КБ)</a>
Проверка настроек осей LinuxCNC

Настройка осей станка

Далее настраиваем все оси станка:

Motor Steps Per Revolution - количество шагов двигателя на один оборот.

Driver Microstepping - настройка микрошага контроллера. Для микрошага 1:8 устанавливайте "8"

Pulley Ratio - значение редуктора, если между валом двигателя и ходовым винтом стоит редуктор установите передаточное число.

Leadscrew Pitch - шаг ходового винта. Можно поменять направление движения вдоль оси установив отрицательное значение шага винта.

Maximum Velocity - Максимальная скорость перемещения.

Maximum Acceleration - Максимальное ускорение по данной оси.

Home Location - положение начала оси. Это положение в котором станок остановится после поиска начала.

Table Travel - границы оси. Положение начала должно быть внутри table travel, причем оно не должно совпадать с границами оси.

Home Switch Location - Положение концевика начального положения. Если у Вас совмещены home switch и limit switch в одном концевике, то значение home location не должно быть равным home switch location иначе появится ошибка "joint limit error", т.е. станок не должен остановиться в точке срабатывания ограничительного концевика.

Home Search Velocity - скорость поиска начала оси. Если концевой датчик расположен рядом с концом оси это значение должно быть выбрано с учетом того, что станок должен будет успеть остановиться до того как он ударится о конец оси. Если концевик замыкается только когда ответная часть рядом с ним, то скорость должна быть выбрана таким образом, чтобы станок успел остановиться пока концевик не разомкнулся. Если станок движется в противоположную сторону от концевика при поиске начала установите отрицательную скорость.

Home Latch Direction - направление уточнения начала, после первоначальной установки начала, они уточняются на очень маленькой скорости. Если выбрана опция "Same" при повторном срабатывании концевика начала будут установлены, если "Opposite" станок будет медленно откатываться пока концевик не разомкнется.

Ниже будут приведены вычисления параметров оси:
  • Time to accelerate to max speed - время ускорения до максимальной скорости (время остановки)
  • Distance to accelerate to max speed - дистанция ускорения до максимальной скорости (дистанция остановки)
  • Pulse rate at max speed - частота сигналов на максимальной скорости
  • Axis SCALE - количество шагов в одной единице измерения шагов/мм (шагов/дюйм)
После введения всех параметров ось можно протестировать. Для этого нажимаем Test this axis.

Настройка управления шпинделем в EMC2 (342605 просмотров) <a class='original' href='./download/file.php?id=787&mode=view' target=_blank>Загрузить оригинал (32.67 КБ)</a>
Настройка управления шпинделем в EMC2

Настройка шпинделя

Если шпиндель регулируется при помощи ШИМ:
Устанавливаем Carrier frequency (Несущая частота) согласно инструкции к Вашему контроллеру шпинделя.
Устанавливаем Speed 1, Speed 2, PWM 1, PWM 2 - значения скоростей в оборотах в минуту при заданном значении ШИМ. Эту информацию можно найти в инструкции к Вашему контроллеру, либо попробовать определить самостоятельно. Этими параметрами определяется линейная зависимость скорости шпинделя от значения PWM.

Дополнительные настройки EMC2 (342605 просмотров) <a class='original' href='./download/file.php?id=788&mode=view' target=_blank>Загрузить оригинал (70.45 КБ)</a>
Дополнительные настройки EMC2

Настройка дополнительного интерфейса

  • Include Halui - Добавить пользовательскую панель Halui.
  • Include PyVCP GUI panel - Добавить панель pyVCP.
    См. статью по настройке и применению pyVCP в EMC2
  • Include ClassicLadder PLC - Добавить программируемый контроллер на лестничной логике (Programmable Ladder Logic Controller).

Окончание настройки EMC2 (342605 просмотров) <a class='original' href='./download/file.php?id=789&mode=view' target=_blank>Загрузить оригинал (74.23 КБ)</a>
Окончание настройки EMC2

Заключение


См. также

Нахождение максимальной скорости и ускорения станка
PyVCP дополнительный интерфейс для EMC2 LinuxCNC
Аватара пользователя
Ворон226
Мастер
Сообщения: 1923
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: Конфигурация EMC2 LinuxCNC

Сообщение Ворон226 »

С первой частью вопроса разобрался.
Если в конфигурации нет внешней кнопки Авоста (красный грибок на станке, подключенный к LPT-порту), то в .hal пишем:
net estop-out => parport.0.pin-01-out
net estop-out <= iocontrol.0.user-enable-out
net estop-out => iocontrol.0.emc-enable-in


Если есть внешняя кнопка Авоста, подключенная, например, к 13-му контакту lpt-порта, то пишем так:
net estop-out => parport.0.pin-01-out
net estop-out <= iocontrol.0.user-enable-out
net estop-ext => iocontrol.0.emc-enable-in
net estop-ext <= parport.0.pin-13-in


Вот какие "хитрости"...

А вот как "инвертировать" кнопку в Glade?
Хочешь быть счастливым? Будь им!
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Конфигурация EMC2 LinuxCNC

Сообщение nkp »

Ворон226 писал(а):Вот какие "хитрости"..
хммм,так тут glade не при чем....
так как ты присоеденил 13 пин и без Glade работать будет
то есть убери панель вообще - а эта связь работать будет
я то думал , что ты именно через кнопку Glade завести estop хочешь...
Аватара пользователя
Ворон226
Мастер
Сообщения: 1923
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: Конфигурация EMC2 LinuxCNC

Сообщение Ворон226 »

Не так...
Есть вопрос прописывания Авоста ВО ВСЕЙ системе. Тут и кнопка на станке, и кнопка на визуальной панели...
С кнопкой станка я разобрался. Осталось разобраться с кнопкой на визуальной панели.
Я её прописал через EMC Action в Glade. Она автоматически прицепилась к аналогичной кнопке в панели AXIS (та которая через F1 тоже нажимается). Теперь эти две кнопки работают синхронно. Но...
Кнопка на моей визуальной панели управляет halui а "противофазе" с кнопкой на панели AXIS, т.е. когда в AXIS Авост FALSE, то в halui - halui.estop.is-activated в TRUE. Это не мешает EMC отрабатывать программы на станке. Но halui.estop.is-activated в TRUE не дает пользоваться другими пинами в halui...

Потому вопрос: Как в Glade прописать кнопку типа hal_togglebutton, чтобы она при нажатии была в TRUE, а при отжатии - FALSE?
Хочешь быть счастливым? Будь им!
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Конфигурация EMC2 LinuxCNC

Сообщение nkp »

Ворон226 писал(а):Потому вопрос: Как в Glade прописать кнопку типа hal_togglebutton, чтобы она при нажатии была в TRUE, а при отжатии - FALSE?
странно ...
именно так togglebutton у меня и работает :thinking:
нажал - 1
отжал - 0
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Конфигурация EMC2 LinuxCNC

Сообщение nkp »

а ты именно вот это использовал:
Рабочий стол 1(002).jpg (2454 просмотра) <a class='original' href='./download/file.php?id=12565&mode=view' target=_blank>Загрузить оригинал (101.47 КБ)</a>
еси да - то все должно работать правильно:

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

class EMC_ToggleAction_ESTOP(_EMC_ToggleAction):
    __gtype_name__ = 'EMC_ToggleAction_ESTOP'
    def _hal_init(self):
        _EMC_ToggleAction._hal_init(self)

        self.set_active_safe(True)

        self.gstat.connect('state-estop', lambda w: self.set_active_safe(True))
        self.gstat.connect('state-estop-reset', lambda w: self.set_active_safe(False))

    def on_toggled(self, w):
        if self.get_active():
            print 'Issuing ESTOP'
            self.linuxcnc.state(linuxcnc.STATE_ESTOP)
        else:
            print 'Issuing ESTOP RESET'
            self.linuxcnc.state(linuxcnc.STATE_ESTOP_RESET)
тут:
def on_toggled(self, w):
if self.get_active():
print 'Issuing ESTOP'
self.linuxcnc.state(linuxcnc.STATE_ESTOP)
else:
print 'Issuing ESTOP RESET'
self.linuxcnc.state(linuxcnc.STATE_ESTOP_RESET)

то есть - если нажато - STATE_ESTOP
иначе - STATE_ESTOP_RESET
Аватара пользователя
Ворон226
Мастер
Сообщения: 1923
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: Конфигурация EMC2 LinuxCNC

Сообщение Ворон226 »

В Glade я именно так и сделал. Короче завтра со свежей головой буду разбираться... Что-то совсем всё запуталось.
Хочешь быть счастливым? Будь им!
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2858
Откуда: Тюмень
Контактная информация:

Re: Конфигурация EMC2 LinuxCNC

Сообщение Сергей Саныч »

Ворон226 писал(а):А КУДА её подсоединять? К какому сигналу?
В разрыв цепи обмотки контактора (реле) питания станка (но не компьютера). Не люблю я все эти программно-электронные прослойки в случае аварийных кнопок.А от контроллера вывести сигнал на комп, который бы просто его "ставил в известность" о случившемся. Главное, побыстрее остановить станок, а потом уж будем разбираться, кого на шпиндель намотало :)
Чудес не бывает. Бывают фокусы.
Аватара пользователя
Ворон226
Мастер
Сообщения: 1923
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: Конфигурация EMC2 LinuxCNC

Сообщение Ворон226 »

Грамотно!
Хочешь быть счастливым? Будь им!
Аватара пользователя
Ворон226
Мастер
Сообщения: 1923
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: Конфигурация EMC2 LinuxCNC

Сообщение Ворон226 »

Со свежей головой продолжил "ковыряние" своей CNC-конструкции...
В итоге совсем ничего не понимаю...

Что имеем?
Панель AXIS:
Кнопка «АВАРИЙНАЯ ОСТАНОВКА (F1)»
Кнопка «ПИТАНИЕ СТАНКА (F2)»
Кнопки уже прописаны изначально...
Панель GLADEVCP:
Кнопка «E-STOP» - hal_togglebutton1 cо связанным действием hal_toggleaction_estop
Кнопка «POWER» - hal_togglebutton2 cо связанным действием hal_toggleaction_power
Кнопки прописаны в GLADE с помощью EMC Action
В .hal прописано (всё, что связанно с e-stop):

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

    net estop-out => parport.0.pin-01-out
    net estop-ext <= parport.0.pin-13-in
-not
    net estop-out <= iocontrol.0.user-enable-out
    net estop-ext => iocontrol.0.emc-enable-in
    net estop-out => mux8.0.sel0 (этот сигнал ещё использую для управления «фонариками»)
В чём проблема?
Запускаю LinuxCNC.
Состояние пинов:
gladevcp. hal_togglebutton1 — false
gladevcp. hal_togglebutton2 — false
halui.estop.is-activated - false
iocontrol.0.user-enable-out - true
iocontrol.0.emc-enable-in - true
parport.0.pin-01-out - true
parport.0.pin-13-in-not - true
Панель AXIS:
Кнопка «АВАРИЙНАЯ ОСТАНОВКА (F1)» - отжата
Кнопка «ПИТАНИЕ СТАНКА (F2)» - отжата
Панель GLADEVCP:
Кнопка «E-STOP» - отжата
Кнопка «POWER» - неактивна

НАЖИМАЮ F1:
Состояние пинов:
gladevcp. hal_togglebutton1 — false
gladevcp. hal_togglebutton2 — false
halui.estop.is-activated - false
iocontrol.0.user-enable-out - false
iocontrol.0.emc-enable-in - true
parport.0.pin-01-out - false
parport.0.pin-13-in-not - true
Панель AXIS:
Кнопка «АВАРИЙНАЯ ОСТАНОВКА (F1)» - отжата
Кнопка «ПИТАНИЕ СТАНКА (F2)» - отжата
Панель GLADEVCP:
Кнопка «E-STOP» - отжата
Кнопка «POWER» - неактивна
Дальше — сколько не нажимай F1 — состояние не меняется.

НАЖИМАЮ F2 (визуально кнопка на AXIS зафиксировалась нажатой и кнопка «POWER» на GLADEVCP тоже, но осталась неактивной, серенькой):
Состояние пинов:
gladevcp. hal_togglebutton1 — false
gladevcp. hal_togglebutton2 — true
halui.estop.is-activated - false
iocontrol.0.user-enable-out - false
iocontrol.0.emc-enable-in - true
parport.0.pin-01-out - false
parport.0.pin-13-in-not - true
Панель AXIS:
Кнопка «АВАРИЙНАЯ ОСТАНОВКА (F1)» - отжата
Кнопка «ПИТАНИЕ СТАНКА (F2)» - нажата
Панель GLADEVCP:
Кнопка «E-STOP» - отжата
Кнопка «POWER» - нажата неактивна

НАЖИМАЮ повторно F2
Состояние пинов:
gladevcp. hal_togglebutton1 — false
gladevcp. hal_togglebutton2 — false
halui.estop.is-activated - false
iocontrol.0.user-enable-out - false
iocontrol.0.emc-enable-in - true
parport.0.pin-01-out - false
parport.0.pin-13-in-not - true
Панель AXIS:
Кнопка «АВАРИЙНАЯ ОСТАНОВКА (F1)» - отжата
Кнопка «ПИТАНИЕ СТАНКА (F2)» - отжата
Панель GLADEVCP:
Кнопка «E-STOP» - отжата
Кнопка «POWER» - отжата активна

НАЖИМАЮ «E-STOP» gladevcp
Состояние пинов:
gladevcp. hal_togglebutton1 — true
gladevcp. hal_togglebutton2 — false
halui.estop.is-activated - false
iocontrol.0.user-enable-out - false
iocontrol.0.emc-enable-in - true
parport.0.pin-01-out - false
parport.0.pin-13-in-not - true
Панель AXIS:
Кнопка «АВАРИЙНАЯ ОСТАНОВКА (F1)» - отжата
Кнопка «ПИТАНИЕ СТАНКА (F2)» - отжата
Панель GLADEVCP:
Кнопка «E-STOP» - нажата
Кнопка «POWER» - отжата активна

НАЖИМАЮ «POWER» gladevcp
Состояние пинов:
gladevcp. hal_togglebutton1 — true
gladevcp. hal_togglebutton2 — true
halui.estop.is-activated - false
iocontrol.0.user-enable-out - false
iocontrol.0.emc-enable-in - true
parport.0.pin-01-out - false
parport.0.pin-13-in-not - true
Панель AXIS:
Кнопка «АВАРИЙНАЯ ОСТАНОВКА (F1)» - отжата
Кнопка «ПИТАНИЕ СТАНКА (F2)» - нажата
Панель GLADEVCP:
Кнопка «E-STOP» - нажата
Кнопка «POWER» - нажата активна

Что за фигня??? Где копать?
Хочешь быть счастливым? Будь им!
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Конфигурация EMC2 LinuxCNC

Сообщение nkp »

сейчас некогда полностью вникнуть (убегаю)
- но попробуй закомментировать net estop-ext <= parport.0.pin-13-in-not или поменяй на net estop-ext <= parport.0.pin-13-in
может что то с подачей сигнала извне связано...
Аватара пользователя
Ворон226
Мастер
Сообщения: 1923
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: Конфигурация EMC2 LinuxCNC

Сообщение Ворон226 »

Вчера собрал пультик для имитации станка (четыре выключателя для Авоста и хомов и 12 светодиодов на выходы LPT). Потому мне не нужно переписывать пин Авоста - нужно только переключить на пульте выключатель. Ща проверю...
Хочешь быть счастливым? Будь им!
Аватара пользователя
Ворон226
Мастер
Сообщения: 1923
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: Конфигурация EMC2 LinuxCNC

Сообщение Ворон226 »

Пробую пытать дальше - при включенном Авосте на входе LPT - parport.0.pin-13-in
Запускаю LinuxCNC.
Состояние пинов:
gladevcp. hal_togglebutton1 — false
gladevcp. hal_togglebutton2 — false
halui.estop.is-activated - true
iocontrol.0.user-enable-out - true
iocontrol.0.emc-enable-in - false
parport.0.pin-01-out - true
parport.0.pin-13-in-not - false
Панель AXIS:
Кнопка «АВАРИЙНАЯ ОСТАНОВКА (F1)» - нажата и не реагирует ни на F1, ни на нажатие мышкой.
Кнопка «ПИТАНИЕ СТАНКА (F2)» - неактивна
Панель GLADEVCP:
Кнопка «E-STOP» - отжата, но активна! Её можно нажимать и отжимать.
Кнопка «POWER» - неактивна

Теперь, если нажать «E-STOP» -
gladevcp. hal_togglebutton1 — true
iocontrol.0.user-enable-out - false
parport.0.pin-01-out - false

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

Re: Конфигурация EMC2 LinuxCNC

Сообщение Nick »

Скинь свою панельку Glade потестировать...
Так ничего не понятно :freak:

ЗЫ или видео с экрана сними. прогрмаулина для записи видео ставится командой
sudo apt-get install gtk-recordmydesktop
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Конфигурация EMC2 LinuxCNC

Сообщение nkp »

Ворон226 писал(а):Потому мне не нужно переписывать пин Авоста
я думаю проблема в том что нельзя паралельно "управлять" авост программно и извне...
вот и говорил убрать пока строку net estop-ext <= parport.0.pin-13-in-not
просто вступает в конфликт внешний сигнал estop с внутренним
ну например как мы можем снять авост программно,если у нас на пине висит сигнал авост
Аватара пользователя
Ворон226
Мастер
Сообщения: 1923
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: Конфигурация EMC2 LinuxCNC

Сообщение Ворон226 »

Nick писал(а):Скинь свою панельку Glade потестировать...
Нет проблем. Смотри.
nkp писал(а):я думаю проблема в том что нельзя паралельно "управлять" авост программно и извне...
вот и говорил убрать пока строку net estop-ext <= parport.0.pin-13-in-not
просто вступает в конфликт внешний сигнал estop с внутренним
ну например как мы можем снять авост программно,если у нас на пине висит сигнал авост
Я заметил более того:
Авост AXIS-а и Авост Glade прописываются по-разному. Авост Axis-а прописан более корректно - он реагирует на внешний аварийный датчик! Похоже я попал на "подводный камень" CNC. Функция одна, а реакция - разная!
Но будем разбираться. (видео сейчас освою и положу)
Вложения
mygui.ui.tar.gz
(2.42 КБ) 1041 скачивание
Хочешь быть счастливым? Будь им!
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Конфигурация EMC2 LinuxCNC

Сообщение nkp »

Ворон226 писал(а):Авост Axis-а прописан более корректно
на мой взгляд прописаны они одинаково ;)
Axis:

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

    def estop_clicked(event=None):
        s.poll()
        if s.task_state == linuxcnc.STATE_ESTOP:
            c.state(linuxcnc.STATE_ESTOP_RESET)
        else:
            c.state(linuxcnc.STATE_ESTOP)
Glade:

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

    def on_toggled(self, w):
        if self.get_active():
            print 'Issuing ESTOP'
            self.linuxcnc.state(linuxcnc.STATE_ESTOP)
        else:
            print 'Issuing ESTOP RESET'
            self.linuxcnc.state(linuxcnc.STATE_ESTOP_RESET)
то есть в обоих случаях используются все те же linuxcnc.STATE_ESTOP и linuxcnc.STATE_ESTOP_RESET
но разобраться надо ;)
Аватара пользователя
Ворон226
Мастер
Сообщения: 1923
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: Конфигурация EMC2 LinuxCNC

Сообщение Ворон226 »

Как только зарэмил внешнюю кнопку Авоста и переписал .hal по старому (без внешней кнопки):

net estop-out => parport.0.pin-01-out
net estop-out <= iocontrol.0.user-enable-out
net estop-out => iocontrol.0.emc-enable-in

Всё заработало... Всё чудесатее.
Хочешь быть счастливым? Будь им!
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Конфигурация EMC2 LinuxCNC

Сообщение nkp »

Ворон226 писал(а):Как только зарэмил
вот вот :)
если уж будет грибок натуральный (прям ботаника какая то :hehehe: ) -
то сделать на нем все ...
это же вопрос безопасности - покааааа тыркнеш в кнопку на мониторе...
Аватара пользователя
Ворон226
Мастер
Сообщения: 1923
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: Конфигурация EMC2 LinuxCNC

Сообщение Ворон226 »

Так почему два способа организации E-STOP так по-разному работают? И как теперь подключить внешнюю кнопку (про подключение к блоку питания помню ;) )

Но это уже чисто теоретический интерес... Похоже буду заводить кнопку аварийную на LPT-порт, а на визуальной панели от неё откажусь.
Хочешь быть счастливым? Будь им!
Аватара пользователя
Ворон226
Мастер
Сообщения: 1923
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: Конфигурация EMC2 LinuxCNC

Сообщение Ворон226 »

Хм... Аналогично с командой "Выполнить программу".

Есть реализация этой кнопки в AXIS.
Прописал кнопку в визуальной панели так:
net start gladevcp.hal_button19 halui.program.run
Не запускает...
Прописал через EMC Action:
hal_action_run1
Работает.
А вот другие кнопочки (Пауза, Продолжить, Стоп) свободно работают через прописывание ручками
net pause gladevcp.hal_button20 halui.program.pause
net resume gladevcp.hal_button21 halui.program.resume
net stop gladevcp.hal_button26 halui.program.stop
и не конфликтуют...

Неужели никто на это не напарывался?
Хочешь быть счастливым? Будь им!
Ответить

Вернуться в «LinuxCNC»