EMC2 - пояснялка от "чайника"

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

Re: EMC2 - пояснялка от "чайника"

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

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

Re: EMC2 - пояснялка от "чайника"

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

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

Re: EMC2 - пояснялка от "чайника"

Сообщение Nick »

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

Re: EMC2 - пояснялка от "чайника"

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

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

Re: EMC2 - пояснялка от "чайника"

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

Компоненты реального времени. Часть 2.

Аналогично "цифровым" прототипам в LinuxCNC есть и "аналоговые" компоненты:

integ - интегратор
invert - инвертор
limit[N] - ограничитель сигнала между min и max
lowpass - низкочастотный фильтр
mux2, mux4, mux8 - коммутаторы сигналов на 2, 4, 8 коммутируемых входов
и другие...
Хочешь быть счастливым? Будь им!
Аватара пользователя
Ворон226
Мастер
Сообщения: 1923
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: EMC2 - пояснялка от "чайника"

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

Своя панель. Первые шаги.

В процессе отладки своего станка часто возникает потребность визуального контроля процесса или оперативного изменения параметров работы станка. Как это реализовать, если на стандартной панели таких элементов нет? Конечно, сделать эти элементы самостоятельно!

Начнём с простого примера.
Нужно контролировать состояние сигналов stepgen.0.enable, stepgen.1.enable и stepgen.2.enable.

Светодиоды! Вот что нам понадобится. Но не настоящие из кремния и пластика, а "нарисованные". ;)

1. Создаём файл с именем ledall.xml
Делаем его в обычном текстовом редакторе.
Пишем:

<pyvcp>
<led halpin="led0" />
<led halpin="led1" />
<led halpin="led2" />
</pyvcp>

halpin - это процедура задания имени "светодиода" в .hal

Сохраняем файл как ledall.xml в папку с файлом нашего .ini файла!

2. Прописываем в .ini в разделе [DISPLAY]:
PYVCP=ledall.xml
а в разделе [HAL]:
POSTGUI_HALFILE = ledall.hal
3. Создаём файл ledall.hal и прописываем в нём:
net xenable => pyvcp.led0
net yenable => pyvcp.led1
net zenable => pyvcp.led-2

Как вы уже поняли, мы использовали СИГНАЛЫ xenable, yenable и zenable из нашего файла .hal:
net xenable <= axis.0.amp-enable-out => stepgen.0.enable
net yenable <= axis.1.amp-enable-out => stepgen.1.enable
net zxenable <= axis.2.amp-enable-out => stepgen.2.enable
, т.е. эти сигналы обязательно должны быть уже созданы в файле .hal

Теперь мы можем видеть состояние наших двигателей во время работы станка.
По умолчанию КРАСНЫЙ - это FALSE или 0, а ЗЕЛЕНЫЙ - это TRUE или 1.

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

Re: EMC2 - пояснялка от "чайника"

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

Как "прикрутить" свою панель со стандартной?

Сразу оговорюсь, что "стандартной" панелью назвал панель AXIS - это самая распространенная панель у новичков.

Для начала: Файл, в котором будем прописывать связи пинов панели с пинами CNC называется posgui.hal и лежит он в папке конфигурации (в папке с настройками - там, где лежат файлы .ini и .hal)

Свою панель вырисовываем в Glade (это такая программа для создания визуальной панели) и сохраняем в папке конфигурации под именем mygui.ui При прорисовывании в Glade брать "кнопки" и "индикаторы", по возможности, из меню HAL_PYTHON

В .ini прописываем:

[DISPLAY]
GLADEVCP = mygui.ui

Теперь при запуске CNC mygui.ui мы увидим стандартную панель с прикрученной к ней справа нашей панелью. Если открыть в CNC Станок-Установки HAL - PINS - gladevcp, то можно посмотреть весь список пинов нашей панели.

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

Re: EMC2 - пояснялка от "чайника"

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

Как "связать" кнопки своей панели с CNC?

Для связи нашей панели с CNC используем пины различных компонентов.

ВНИМАНИЕ! Особо обратите внимание на компонент halui - в нём есть множество полезных пинов!

1. Прописываем в .ini , что мы будем использовать компонент halui:

[HAL]
HALUI = halui

2. В описании EMC2 внимательно читаем о пинах компонента halui Например, Мы хотим на своей панели поставить индикатор "E-STOP". Берем в Glade в разделе "HAL_PYTHON" индикатор LED (он, например, прописал свой пин как hal_led1 Ищем соответствующий пин в halui:

10.2.3 E-Stop (АВОСТ)
halui.estop.is-activated (bit, out)- отображает состояние E-stop.

Прописываем в postgui.hal (связываем эти два пина):

net led-estop <= halui.estop.is-activated => gladevcp.hal_led1

Теперь у нас индикатор на панели показывает состояние E-STOP.
Хочешь быть счастливым? Будь им!
Ответить

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