Постановка задачи такая: есть линейки с индексом, есть плата LinuxCNC MB-1. Требуется сделать хоминг по индексу.
Особенностью платы является наличие входов A и B энкодера, отсутствие входа для индекса Z.
Хочется подключить индекс к свободной ноге и с помощью этой ноги сбрасывать index-enable.
Какой компонент HAL может по входному сигналу сбрасывать index-enable?
Homing по индексу. Сброс сигнала index-enable [РЕШЕНО]
-
- Кандидат
- Сообщения: 72
- Зарегистрирован: 03 дек 2023, 09:37
- Репутация: 0
- Настоящее имя: kharpost
- Контактная информация:
Homing по индексу. Сброс сигнала index-enable [РЕШЕНО]
Последний раз редактировалось kharpost 17 дек 2023, 02:00, всего редактировалось 1 раз.
-
- Мастер
- Сообщения: 1730
- Зарегистрирован: 28 авг 2018, 17:13
- Репутация: 287
- Настоящее имя: Алексей
- Контактная информация:
Re: Homing по индексу. Сброс сигнала index-enable
готового наверное нет, свой написать нетрудно и недолго, если знаете C
строчек 10-15 получится.
хотя....
а что мешает взять cтандартный encoder, подключить только z и взять с него только index-enable ?
строчек 10-15 получится.
хотя....
а что мешает взять cтандартный encoder, подключить только z и взять с него только index-enable ?
-
- Мастер
- Сообщения: 1730
- Зарегистрирован: 28 авг 2018, 17:13
- Репутация: 287
- Настоящее имя: Алексей
- Контактная информация:
Re: Homing по индексу. Сброс сигнала index-enable
Для отладки пойдёт, а так если прям захочется, то написать и правда несложно.
Вот здесь куча примеров
https://github.com/LinuxCNC/linuxcnc/tr ... components
пишете .comp файл, какой нибудь простенький взять как шаблон, например вот этот
Код: Выделить всё
component myand2 "My Two-input AND gate";
pin in bit in0;
pin in bit in1;
pin out bit out;
function _ nofp;
;;
FUNCTION(_) { out = in0 && in1; }
halcompile --compile --install yourfilename.comp
и всё, у вас получился компонент ничем не хуже стандартного
доки здесь https://linuxcnc.org/docs/html/hal/comp.html
-
- Мастер
- Сообщения: 474
- Зарегистрирован: 25 авг 2018, 10:11
- Репутация: 152
- Настоящее имя: Дмитрий
- Откуда: Киров
- Контактная информация:
Re: Homing по индексу. Сброс сигнала index-enable
Нужно обратиться к производителю платы и попросить чтоб собрал прошивку с входами индексов на свободных входах платы.kharpost писал(а): ↑ Постановка задачи такая: есть линейки с индексом, есть плата LinuxCNC MB-1. Требуется сделать хоминг по индексу.
Особенностью платы является наличие входов A и B энкодера, отсутствие входа для индекса Z.
Хочется подключить индекс к свободной ноге и с помощью этой ноги сбрасывать index-enable.
Какой компонент HAL может по входному сигналу сбрасывать index-enable?
-
- Кандидат
- Сообщения: 72
- Зарегистрирован: 03 дек 2023, 09:37
- Репутация: 0
- Настоящее имя: kharpost
- Контактная информация:
Re: Homing по индексу. Сброс сигнала index-enable
Получилось так:
Код: Выделить всё
component signal_set "Sets io signal";
pin in bit in "Input (see in-invert).";
pin in bit in_invert "If set to True, the rising edge of the input pin triggers the event. If set to False, the falling edge triggers.";
pin in bit out_invert "If set to True, the input pin event sets the output to True. If set to False, sets to False.";
pin io bit out "Output (see out-invert).";
option data _data;
function _ nofp;
license "GPL";
author "Dmitry Kharitonov";
;;
typedef struct {
int pre_in;
} _data;
FUNCTION(_) {
int b=0;
b=in;
if(data.pre_in != b) {
data.pre_in = b;
if(in_invert) b=!b;
if(b) out=out_invert;
}
}