Страница 35 из 39
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сделать
Добавлено: 29 мар 2021, 22:58
mikehv
Fivist писал(а): ↑29 мар 2021, 22:18
Всем добра! если написал не в тему, то извиняюсь!
Вопрос собственно вот в чем, не могу сообразить как правильно настроить в ХАЛ вот такую клавиатуру
MUX4.jpg.
Мне как раз на 3 свободных входа надо повесить 6 кнопок. Может кто уже делал?
А mux8 не получится использовать?
А потом bitslice на биты полученное число разобьёт. А дальше все просто.
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сделать
Добавлено: 29 мар 2021, 23:26
Fivist
так вроде mux4(8) настроить можно только на числа. как к нему привязать кнопку? я таких примеров не встречал. например для инкремента числа для маховика пульта делал через mux4. выбор осей через галетник (по похожей схеме с диодами) реализовал через and2. но там было 2 входа. а кнопки уже с тремя...
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сделать
Добавлено: 29 мар 2021, 23:47
Fivist
..е мае!!! если схему внимательнее посмотреть, то мне последняя (седьмая) кнопка там ни к чему, а 3 пина как раз для нее. в основном используется 1 или 2. так что реализую логику так же - через and2!!!
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сделать
Добавлено: 30 мар 2021, 00:35
Serg
Fivist писал(а): ↑
Мне как раз на 3 свободных входа надо повесить 6 кнопок.
http://linuxcnc.org/docs/2.8/html/man/man9/demux.9.html
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сделать
Добавлено: 30 мар 2021, 09:08
nkp
Код: Выделить всё
/* sudo halcompile --install btn3x6.comp */
component btn3x6 "btn3x6";
description "";
//Input
pin in bit PB0;
pin in bit PB2;
pin in bit PB4;
//Output
pin out bit S1;
pin out bit S2;
pin out bit S3;
pin out bit S4;
pin out bit S5;
pin out bit S6;
pin out bit S7;
function _;
license "GPL";
;;
FUNCTION(_){
if ( PB4 && PB2 && PB0 ) {
S1 = 0; S2 = 0; S3 = 0; S4 = 0; S5 = 0; S6 = 0; S7 = 0;
}
else if ( PB4 && PB2 && !PB0 ) {
S1 = 1; S2 = 0; S3 = 0; S4 = 0; S5 = 0; S6 = 0; S7 = 0;
}
else if ( PB4 && !PB2 && PB0 ) {
S1 = 0; S2 = 1; S3 = 0; S4 = 0; S5 = 0; S6 = 0; S7 = 0;
}
else if ( PB4 && !PB2 && !PB0 ) {
S1 = 0; S2 = 0; S3 = 1; S4 = 0; S5 = 0; S6 = 0; S7 = 0;
}
else if ( !PB4 && PB2 && PB0 ) {
S1 = 0; S2 = 0; S3 = 0; S4 = 1; S5 = 0; S6 = 0; S7 = 0;
}
else if ( !PB4 && PB2 && !PB0 ) {
S1 = 0; S2 = 0; S3 = 0; S4 = 0; S5 = 1; S6 = 0; S7 = 0;
}
else if ( !PB4 && !PB2 && PB0 ) {
S1 = 0; S2 = 0; S3 = 0; S4 = 0; S5 = 0; S6 = 1; S7 = 0;
}
else if ( !PB4 && !PB2 && !PB0 ) {
S1 = 0; S2 = 0; S3 = 0; S4 = 0; S5 = 0; S6 = 0; S7 = 1;
}
}
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сделать
Добавлено: 30 мар 2021, 22:33
Fivist
Serg и NKP посибо, погуглю про это, и как использовать...
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сделать
Добавлено: 31 мар 2021, 11:53
nkp
Fivist писал(а): ↑30 мар 2021, 22:33
и как использовать...
это готовый компонент именно с твоей логикой работы
сохраняешь этот код в файл
btn3x6.comp в домашнюю папку
потом в терминале
sudo halcompile --install btn3x6.comp
и всё
для проверки правильности работы в хал пишешь
Код: Выделить всё
loadrt btn3x6
addf btn3x6.0 servo-thread
net pb0 btn3x6.0.PB0
net pb2 btn3x6.0.PB2
net pb4 btn3x6.0.PB4
loadusr sim_pin pb0 pb2 pb4
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сделать
Добавлено: 31 мар 2021, 22:56
Fivist
nkp писал(а): ↑
это готовый компонент
спасибо, не знал что так можно свой компонент создать.
я так понял что сюда:
net pb0 btn3x6.0.PB0
net pb2 btn3x6.0.PB2
net pb4 btn3x6.0.PB4
цепляем входы контроллера. а вот дальше я не могу понять логики, надо глубже изучить ХАЛ. я в теории понимаю что на каждый из семи выходов (out pin bit) надо подцепить действие (например установить 0 оси, или начать выполнение программы...) но как оно вызывается при нажатии?
...на выходных буду пробовать...
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сделать
Добавлено: 31 мар 2021, 23:03
Serg
nkp любитель создавать свои компоненты при наличии штатных с таким-же функционалом...
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сделать
Добавлено: 01 апр 2021, 12:16
nkp
для примера
Код: Выделить всё
net brun btn3x6.0.S1 halui.program.run
net bstop btn3x6.0.S2 halui.program.stop
net bhome btn3x6.0.S3 halui.home-all
net bmdi0 btn3x6.0.S4 halui.mdi-command-00
net bmdi1 btn3x6.0.S5 halui.mdi-command-01
net bmdi2 btn3x6.0.S6 halui.mdi-command-02
в ini свои MDI команды
Код: Выделить всё
[HALUI]
MDI_COMMAND = G28
MDI_COMMAND = G0 G53 X0 Y0
MDI_COMMAND = G0 G54 X12
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сделать
Добавлено: 01 апр 2021, 21:33
Сергей Саныч
Есть спецкомпонент для клавиатур. matrix_kb называется
http://linuxcnc.org/docs/2.8/html/man/m ... _kb.9.html
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сделать
Добавлено: 01 апр 2021, 22:15
Сергей Саныч
И это, такая клавиатура может принести неприятные сюрпризы.
Подумайте, что будет, если одновременно нажать две кнопки?
Для кодирования галетника такую схему применить можно, а для кнопок я бы ее применить не рискнул.
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сделать
Добавлено: 07 апр 2021, 10:27
Nikomas
После работы на "взрослых" станках (стойка Sinumerik) для меня полной неожиданностью стало то, что ползунок подачи в LinuxCNC работает только с рабочими подачами, а с G0 не работает. На стойках оооочень удобно обкатывать программу именно этой крутилкой, а вот линукс со всей дури может и въехать в заготовку/стол.
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сделать
Добавлено: 07 апр 2021, 10:29
mikehv
Для ускоренной в gmoccapy есть свой ползунок. На фануке у меня тоже отдельно регулируется ускоренные и рабочие.
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сделать
Добавлено: 07 апр 2021, 17:21
steals_y2k
для G0,емнип, свой, несколько ниже.
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сделать
Добавлено: 09 апр 2021, 18:54
MX_Master
А кто знает, как и для чего применяются пины
- encoder.N.latch-input bit in
- encoder.N.latch-falling bit in (default: TRUE)
- encoder.N.latch-rising bit in (default: TRUE)
- encoder.N.counts-latched s32 out
- encoder.N.position-latched float out
у компонента
encoder?
http://linuxcnc.org/docs/2.8/html/man/m ... der.9.html
Есть ли какие-то реальные примеры их применения?
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сделать
Добавлено: 09 апр 2021, 20:17
Сергей Саныч
Судя по названиям, эти пины позволяют запоминать значение счетчика энкодера по фронту и/или спаду соответствующего сигнала в определенный момент.
А потом не спеша и со вкусом это значение обрабатывать.
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сделать
Добавлено: 09 апр 2021, 22:29
MX_Master
5 раз перечитал описание этих пинов. Глянул в исходники. Что-то примерное понял. Это, типа, ещё один (но отдельный) счётчик внутри каждого канала, чтобы считать импульсы одного пина с заданными условиями по фронту/спаду. Используется сие, просто, как доп. функционал для каких-то частных случаев.
https://github.com/LinuxCNC/linuxcnc/bl ... /encoder.c
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сделать
Добавлено: 09 апр 2021, 23:17
Serg
Просто некий регистр, который умеет запоминать текущую позицию по приходу дискретного сигнала. Эдакий аналог index-enable.
Например если в качестве сигнала использовать пробник, то по идее можно не заморачиваться с повторным касанием на малой скорости.
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сделать
Добавлено: 13 авг 2021, 22:05
a321
Есть файл задания ngc, даже не один. Стоит задача сделать так, чтобы в одном файле организовать вызов двух таких заданий последовательно. Суть? - видеть в Аксис раскладку деталей на заготовке (без дублирования кода или без сборки кода в единый файл). Вариант o<kkk> sub с вызовом известен и неприемлем - внутри каждого ngc свой набор вызываемых подпрограмм, а объявление подпрограммы внутри подпрограммы не работает. В bash я могу задать cat file1 & ping ya.ru и выполнятся. В Lcnc то-то подобное есть? - очень не хочется микроподпрограммы выводить в отдельные файлы (дае еще и их стандартизировать).