Homing по индексу. Сброс сигнала index-enable [РЕШЕНО]

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
kharpost
Кандидат
Сообщения: 72
Зарегистрирован: 03 дек 2023, 09:37
Репутация: 0
Настоящее имя: kharpost
Контактная информация:

Homing по индексу. Сброс сигнала index-enable [РЕШЕНО]

Сообщение kharpost »

Постановка задачи такая: есть линейки с индексом, есть плата LinuxCNC MB-1. Требуется сделать хоминг по индексу.
Особенностью платы является наличие входов A и B энкодера, отсутствие входа для индекса Z.

Хочется подключить индекс к свободной ноге и с помощью этой ноги сбрасывать index-enable.

Какой компонент HAL может по входному сигналу сбрасывать index-enable?
Последний раз редактировалось kharpost 17 дек 2023, 02:00, всего редактировалось 1 раз.
alex_sar
Мастер
Сообщения: 1718
Зарегистрирован: 28 авг 2018, 17:13
Репутация: 286
Настоящее имя: Алексей
Контактная информация:

Re: Homing по индексу. Сброс сигнала index-enable

Сообщение alex_sar »

готового наверное нет, свой написать нетрудно и недолго, если знаете C
строчек 10-15 получится.

хотя....

а что мешает взять cтандартный encoder, подключить только z и взять с него только index-enable ?
kharpost
Кандидат
Сообщения: 72
Зарегистрирован: 03 дек 2023, 09:37
Репутация: 0
Настоящее имя: kharpost
Контактная информация:

Re: Homing по индексу. Сброс сигнала index-enable

Сообщение kharpost »

alex_sar писал(а): а что мешает взять cтандартный encoder, подключить только z и взять с него только index-enable ?
Не хочется для хранения одной сосиски брать морской контейнер. Да ещё в этом компоненте используется плавающая точка - будет вставать в очередь к сопроцессору.
alex_sar
Мастер
Сообщения: 1718
Зарегистрирован: 28 авг 2018, 17:13
Репутация: 286
Настоящее имя: Алексей
Контактная информация:

Re: Homing по индексу. Сброс сигнала index-enable

Сообщение alex_sar »

kharpost писал(а): 04 дек 2023, 13:05
alex_sar писал(а): а что мешает взять cтандартный encoder, подключить только z и взять с него только 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
kharpost
Кандидат
Сообщения: 72
Зарегистрирован: 03 дек 2023, 09:37
Репутация: 0
Настоящее имя: kharpost
Контактная информация:

Re: Homing по индексу. Сброс сигнала index-enable

Сообщение kharpost »

alex_sar писал(а): и всё, у вас получился компонент ничем не хуже стандартного
Так просто не получится. Там нужен выход io. Собственно компонент я уже написал. Просто думал, что есть что-то стандартное. Как-то странно получается объекты io есть, а работать с ними нечем.
D.L.
Мастер
Сообщения: 474
Зарегистрирован: 25 авг 2018, 10:11
Репутация: 152
Настоящее имя: Дмитрий
Откуда: Киров
Контактная информация:

Re: Homing по индексу. Сброс сигнала index-enable

Сообщение D.L. »

kharpost писал(а): Постановка задачи такая: есть линейки с индексом, есть плата LinuxCNC MB-1. Требуется сделать хоминг по индексу.
Особенностью платы является наличие входов A и B энкодера, отсутствие входа для индекса Z.

Хочется подключить индекс к свободной ноге и с помощью этой ноги сбрасывать index-enable.

Какой компонент HAL может по входному сигналу сбрасывать index-enable?
Нужно обратиться к производителю платы и попросить чтоб собрал прошивку с входами индексов на свободных входах платы.
kharpost
Кандидат
Сообщения: 72
Зарегистрирован: 03 дек 2023, 09:37
Репутация: 0
Настоящее имя: kharpost
Контактная информация:

Re: Homing по индексу. Сброс сигнала index-enable

Сообщение kharpost »

D.L. писал(а): Нужно обратиться к производителю платы и попросить чтоб собрал прошивку с входами индексов на свободных входах платы.
Долго это...
kharpost
Кандидат
Сообщения: 72
Зарегистрирован: 03 дек 2023, 09:37
Репутация: 0
Настоящее имя: kharpost
Контактная информация:

Re: Homing по индексу. Сброс сигнала index-enable

Сообщение kharpost »

alex_sar писал(а): и всё, у вас получился компонент ничем не хуже стандартного
Получилось так:

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

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;
  }
}
Ответить

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