Страница 1 из 1

Estop loop в LinuxCNC

Добавлено: 02 окт 2013, 23:06
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 реагирует только на растущий фронт сигнала. Т.е. нажали авост, потом не отпуская авост сделали сброс и станок сможет включиться.

Давайте думать, как оно на самом деле должно работать, и как этого добиться! :)

Re: Estop loop в LinuxCNC

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

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

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

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


Какие ещё будут соображения?

Re: Estop loop в LinuxCNC

Добавлено: 03 окт 2013, 08:56
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

Re: Estop loop в LinuxCNC

Добавлено: 03 окт 2013, 10:03
Сергей Саныч
я поступил очень просто.
вход 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. После ликвидации аварийной ситуации поворачиваем кнопку и продолжаем работу.

Re: Estop loop в LinuxCNC

Добавлено: 03 окт 2013, 10:38
NightV
у меня на "гравере по стеклу" похожая схема была, только кнопок EStop было три по всему станку (последовательно, нормально замкнутые)