Estop loop в LinuxCNC

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

Estop loop в LinuxCNC

Сообщение Nick »

В общем вопрос уже всплывал неоднократно, но решения толкового так и не вышло.
В стандартном пустом конфиге от stepconf есть строчки:

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

net estop-out <= iocontrol.0.user-enable-out
net estop-out => iocontrol.0.emc-enable-in
В дословном переводе - петля Авост. Т.е. выход Авост подается на вход Авост.

Но если в конфиге добавить доп кнопку на внешний авост то сигнала становится два и "петля рвется":

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

net estop-out <= iocontrol.0.user-enable-out
net estop-ext => iocontrol.0.emc-enable-in
В итоге происходит такая ситуация, в первом случае:
Включаем станок halui.machine.on 1
Нажимаем Авост iocontrol.0.emc-enable-in 1
Станок свтает на аварию
Отпускаем Авост iocontrol.0.emc-enable-in 0
Сбрасываем Авост halui.estop.reset
Включаем станок halui.machine.on 1

во вротом случае:
Включаем станок halui.machine.on 1
Нажимаем Авост iocontrol.0.emc-enable-in 1
Станок свтает на аварию
Отпускаем Авост iocontrol.0.emc-enable-in 0
Включаем станок halui.machine.on 1


Т.е. из цепочки снятия с Аварии пропал очень важный элемент estop.reset. Все бы ничего, если бы это не сказывалось на безопасности.

Как есть варианты:

Есть вариант с classic ladder, http://www.linuxcnc.org/docs/html/ladde ... nal_e_stop вроде как там осталась эта петля, но не уверен.

Второй вариант - завести внешнюю кнопку на halui.estop.activate. У этого варианта тоже есть недостатки - halui реагирует только на растущий фронт сигнала. Т.е. нажали авост, потом не отпуская авост сделали сброс и станок сможет включиться.

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

Re: Estop loop в LinuxCNC

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

Т.о. необходимо (мне так кажется) сбрасывать АВОСТ оператором, при чем отдельным действием.

Вариант1. Внешним АВОСТом запускать программный генератор импульсов (например, в 0,5 Гц), который отправлять на iocontrol.0.emc-enable-in
А генерацию прерывать отдельным действием.
В этом случае, при любой попытке перезапустить станок получаем быстрый "ответ" в виде сигнала АВОСТ с генератора.

Вариант 2. Нажатием внешней кнопки АВОСТ блокировать внешний сигнал ВКЛ СТАНКА до сброса отдельным действием-кнопкой.

Вариант 3. Прописывать кнопку ВКЛ СТАНКА кнопкой с удержанием, что обязывает для запуска ДВАЖДЫ нажать на эту кнопку.


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

Re: Estop loop в LinuxCNC

Сообщение Nick »

Да нет, можно гораздо банальнее, например кнопку добавить в петлю через or2:
Тогда петля остается, и к ней подключается дополниительный способ включиться.

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

net estop-out <= iocontrol.0.user-enable-out
net estop-out => or2.0.in0

net estop-button => or2.0.in1

net estop-in <=  or2.0.out
net estop-in => iocontrol.0.emc-enable-in
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2858
Откуда: Тюмень
Контактная информация:

Re: Estop loop в LinuxCNC

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

я поступил очень просто.
вход iocontrol.0.emc-enable-in завел на одну из ног LPT. Нога эта подключена к одному из контактов реле, таким образом, что, когда реле обесточено, поступает сигнал аварии. Реле включается от детектора импульсной последовательности (charge pump). Компонент charge pump включается сразу же при запуске LCNC

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

loadrt charge_pump
addf charge-pump base-thread
setp charge-pump.enable TRUE
net chpump charge-pump.out => parport.0.pin-01-out
Через реле подается питание на БП станка (драйверы ШД) и инвертор.
А кнопка EStop (нормально замкнутая) подключена в разрыв цепи обмотки этого самого реле. Кнопка взята специальная, которая западает при нажатии, а приводится в исходное состояние поворотом головки.
Всё просто и надежно. При запуске LinuxCNC реле включается, подает питание на БП станка и инвертор и снимает сигнал аварии - не надо даже F1 нажимать.
При аварии лупим по кнопке, реле отключает станок и одновременно подает сигнал аварии на LCNC. После ликвидации аварийной ситуации поворачиваем кнопку и продолжаем работу.
Чудес не бывает. Бывают фокусы.
Аватара пользователя
NightV
Почётный участник
Почётный участник
Сообщения: 6610
Зарегистрирован: 30 дек 2011, 09:14
Репутация: 2279
Настоящее имя: Владимир Айрапетян
Откуда: Israel
Контактная информация:

Re: Estop loop в LinuxCNC

Сообщение NightV »

у меня на "гравере по стеклу" похожая схема была, только кнопок EStop было три по всему станку (последовательно, нормально замкнутые)
Всё просто! если знаешь КАК!
Ответить

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