Датчик длины инструмента

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Аватара пользователя
solanto
Почётный участник
Почётный участник
Сообщения: 963
Зарегистрирован: 02 апр 2014, 09:10
Репутация: 94
Настоящее имя: Александр
Откуда: Карачаево-Черкесская республика, г.Черкесск
Контактная информация:

Re: Датчик длины инструмента

Сообщение solanto »

Спасибо. Завтра доделаю. По результатам отпишусь.
Мне пофигу, что думают обо мне люди, пока они не начинают меня бить.

Вектроник А4-12: от заказа до готовности - http://cnc-club.ru/forum/viewtopic.php?f=3&t=5248
Токарник по дереву - http://cnc-club.ru/forum/viewtopic.php?f=3&t=5623

Изображение
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Датчик длины инструмента

Сообщение Nick »

Кстати, такое же может возникать, если при отъезде от "таблетки" будет дребезг контакта?
Аватара пользователя
solanto
Почётный участник
Почётный участник
Сообщения: 963
Зарегистрирован: 02 апр 2014, 09:10
Репутация: 94
Настоящее имя: Александр
Откуда: Карачаево-Черкесская республика, г.Черкесск
Контактная информация:

Re: Датчик длины инструмента

Сообщение solanto »

Ну да... Если после введёных корректив останется ошибка, тогда буду бороться с дребезгом.
Мне пофигу, что думают обо мне люди, пока они не начинают меня бить.

Вектроник А4-12: от заказа до готовности - http://cnc-club.ru/forum/viewtopic.php?f=3&t=5248
Токарник по дереву - http://cnc-club.ru/forum/viewtopic.php?f=3&t=5623

Изображение
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Датчик длины инструмента

Сообщение Nick »

дребезг можно убрать компонентом debounce
http://linuxcnc.org/docs/html/man/man9/debounce.9.html
Аватара пользователя
solanto
Почётный участник
Почётный участник
Сообщения: 963
Зарегистрирован: 02 апр 2014, 09:10
Репутация: 94
Настоящее имя: Александр
Откуда: Карачаево-Черкесская республика, г.Черкесск
Контактная информация:

Re: Датчик длины инструмента

Сообщение solanto »

Читал, читал, но так нечего и не понял. Может где есть пример?
Мне пофигу, что думают обо мне люди, пока они не начинают меня бить.

Вектроник А4-12: от заказа до готовности - http://cnc-club.ru/forum/viewtopic.php?f=3&t=5248
Токарник по дереву - http://cnc-club.ru/forum/viewtopic.php?f=3&t=5623

Изображение
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Датчик длины инструмента

Сообщение Nick »

Ты примерно понимаешь как работает hal?
Аватара пользователя
solanto
Почётный участник
Почётный участник
Сообщения: 963
Зарегистрирован: 02 апр 2014, 09:10
Репутация: 94
Настоящее имя: Александр
Откуда: Карачаево-Черкесская республика, г.Черкесск
Контактная информация:

Re: Датчик длины инструмента

Сообщение solanto »

А уже в принципе понял что и как только есть некоторые вопросы.
loadrt debounce cfg=size - на что влияет "size" и что сюда поставить?
debounce.G.F.in bit in - я так понял, что здесь надо поставить номер пина и битность фильтра. Правильно?
Мне пофигу, что думают обо мне люди, пока они не начинают меня бить.

Вектроник А4-12: от заказа до готовности - http://cnc-club.ru/forum/viewtopic.php?f=3&t=5248
Токарник по дереву - http://cnc-club.ru/forum/viewtopic.php?f=3&t=5623

Изображение
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Датчик длины инструмента

Сообщение Nick »

size - это размер группы.
debounce может использоваться скажем для 50 входов, входы 3 типов, одни надо делать быстрее, другие медленнее.
Тогда пишем

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

loadrt debounce cfg=10,10,30
setp debounce.0.delay 10 # быстрые пины 10 шт
setp debounce.1.delay 100  # медленнее пины 10 шт
setp debounce.2.delay 1000  # еще медленнее пины 30 шт
тебе надо
loadrt debounce cfg=1

solanto писал(а):debounce.G.F.in bit in - я так понял, что здесь надо поставить номер пина и битность фильтра. Правильно?
Это непосредственно пин, который будет фильтроваться, на него заводишь свой пин входа.
debounce.G.F.in G-номер группы, F - номер пина в группе.
У тебя будет 0.1
А отфильтрованный пин будет вот тут debounce.G.F.out
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Датчик длины инструмента

Сообщение Nick »

Да, когда постишь ошибку, лучше всего копируй весь текст и вставляй в тег code, так проще найти на что ругается, и можно процитировать.
Аватара пользователя
solanto
Почётный участник
Почётный участник
Сообщения: 963
Зарегистрирован: 02 апр 2014, 09:10
Репутация: 94
Настоящее имя: Александр
Откуда: Карачаево-Черкесская республика, г.Черкесск
Контактная информация:

Re: Датчик длины инструмента

Сообщение solanto »

Nick писал(а):debounce.G.F.in G-номер группы, F - номер пина в группе.
У тебя будет 0.1
Я так понимаю номер пина в группе и реальный номер пина к которому подключен датчик это разные весчи?
Мне пофигу, что думают обо мне люди, пока они не начинают меня бить.

Вектроник А4-12: от заказа до готовности - http://cnc-club.ru/forum/viewtopic.php?f=3&t=5248
Токарник по дереву - http://cnc-club.ru/forum/viewtopic.php?f=3&t=5623

Изображение
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Датчик длины инструмента

Сообщение Nick »

solanto писал(а):Я так понимаю номер пина в группе и реальный номер пина к которому подключен датчик это разные весчи?
да.
Датчик подключен к parport.0.что-то-там, а это другой компонент.
Ты должен связать parport.0.что-то-там => debounce....in и потом debounce....out => probe-in.
Аватара пользователя
solanto
Почётный участник
Почётный участник
Сообщения: 963
Зарегистрирован: 02 апр 2014, 09:10
Репутация: 94
Настоящее имя: Александр
Откуда: Карачаево-Черкесская республика, г.Черкесск
Контактная информация:

Re: Датчик длины инструмента

Сообщение solanto »

Ясно. Вечером попробую.
Мне пофигу, что думают обо мне люди, пока они не начинают меня бить.

Вектроник А4-12: от заказа до готовности - http://cnc-club.ru/forum/viewtopic.php?f=3&t=5248
Токарник по дереву - http://cnc-club.ru/forum/viewtopic.php?f=3&t=5623

Изображение
Аватара пользователя
solanto
Почётный участник
Почётный участник
Сообщения: 963
Зарегистрирован: 02 апр 2014, 09:10
Репутация: 94
Настоящее имя: Александр
Откуда: Карачаево-Черкесская республика, г.Черкесск
Контактная информация:

Re: Датчик длины инструмента

Сообщение solanto »

Прописал всё в hal и получил вот это:

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

Print file information:
RUN_IN_PLACE=no
LINUXCNC_DIR=
LINUXCNC_BIN_DIR=/usr/bin
LINUXCNC_TCL_DIR=/usr/lib/tcltk/linuxcnc
LINUXCNC_SCRIPT_DIR=
LINUXCNC_RTLIB_DIR=/usr/realtime-2.6.32-122-rtai/modules/linuxcnc
LINUXCNC_CONFIG_DIR=
LINUXCNC_LANG_DIR=/usr/share/linuxcnc/tcl/msgs
INIVAR=inivar
HALCMD=halcmd
LINUXCNC_EMCSH=/usr/bin/wish8.5
LINUXCNC - 2.5.4
Machine configuration directory is '/home/cnc/linuxcnc/configs/CNC_4444'
Machine configuration file is 'CNC_4444.ini'
INIFILE=/home/cnc/linuxcnc/configs/CNC_4444/CNC_4444.ini
PARAMETER_FILE=linuxcnc.var
TASK=milltask
HALUI=halui
DISPLAY=axis
Starting LinuxCNC...
Starting LinuxCNC server program: linuxcncsvr
Loading Real Time OS, RTAPI, and HAL_LIB modules
Starting LinuxCNC IO program: io
Starting HAL User Interface program: halui
Shutting down and cleaning up LinuxCNC...
Killing task linuxcncsvr, PID=2693
Removing HAL_LIB, RTAPI, and Real Time OS modules
Removing NML shared memory segments
Cleanup done

Debug file information:
Can not find -sec MOT -var MOT -num 1 
Can not find -sec IO -var IO -num 1 
Can not find -sec LINUXCNC -var NML_FILE -num 1 
Can not find -sec EMC -var NML_FILE -num 1 
HAL: ERROR: function 'parport.0.pin-15-in' not found
CNC_4444.hal:17: addf failed
2693
  PID TTY      STAT   TIME COMMAND
Stopping realtime threads
Unloading hal components

Kernel message information:
[  474.191891] I-pipe: Domain RTAI registered.
[  474.191910] RTAI[hal]: <3.8.1> mounted over IPIPE-NOTHREADS 2.6-03.
[  474.191918] RTAI[hal]: compiled with gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5) .
[  474.191976] RTAI[hal]: mounted (IPIPE-NOTHREADS, IMMEDIATE (INTERNAL IRQs DISPATCHED), ISOL_CPUS_MASK: 0).
[  474.191984] PIPELINE layers:
[  474.191992] fb426e20 9ac15d93 RTAI 200
[  474.191999] c085cb20 0 Linux 100
[  474.244197] RTAI[malloc]: global heap size = 2097152 bytes, <BSD>.
[  474.244577] RTAI[sched]: IMMEDIATE, MP, USER/KERNEL SPACE: <with RTAI OWN KTASKs>, kstacks pool size = 524288 bytes.
[  474.244589] RTAI[sched]: hard timer type/freq = APIC/10405879(Hz); default timing: periodic; linear timed lists.
[  474.244598] RTAI[sched]: Linux timer freq = 250 (Hz), TimeBase freq = 1664679000 hz.
[  474.244603] RTAI[sched]: timer setup = 999 ns, resched latency = 2944 ns.
[  474.244879] RTAI[usi]: enabled.
[  474.365268] RTAI[math]: loaded.
[  474.503951] config string '0x378 out  '
[  475.294449] RTAI[math]: unloaded.
[  475.363431] SCHED releases registered named ALIEN RTGLBH
[  475.392462] RTAI[malloc]: unloaded.
[  475.492041] RTAI[sched]: unloaded (forced hard/soft/hard transitions: traps 0, syscalls 0).
[  475.497160] I-pipe: Domain RTAI unregistered.
[  475.497229] RTAI[hal]: unmounted.
Вложения
CNC_4444.hal.7z
(1.16 КБ) 366 скачиваний
Мне пофигу, что думают обо мне люди, пока они не начинают меня бить.

Вектроник А4-12: от заказа до готовности - http://cnc-club.ru/forum/viewtopic.php?f=3&t=5248
Токарник по дереву - http://cnc-club.ru/forum/viewtopic.php?f=3&t=5623

Изображение
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Датчик длины инструмента

Сообщение Nick »

Основная ошибка
solanto писал(а):Debug file information:
Can not find -sec MOT -var MOT -num 1
Can not find -sec IO -var IO -num 1
Can not find -sec LINUXCNC -var NML_FILE -num 1
Can not find -sec EMC -var NML_FILE -num 1
HAL: ERROR: function 'parport.0.pin-15-in' not found
говорит нет такого пина у тебя....
Аватара пользователя
solanto
Почётный участник
Почётный участник
Сообщения: 963
Зарегистрирован: 02 апр 2014, 09:10
Репутация: 94
Настоящее имя: Александр
Откуда: Карачаево-Черкесская республика, г.Черкесск
Контактная информация:

Re: Датчик длины инструмента

Сообщение solanto »

блин. а таблетка реально на 15 пине висит
Мне пофигу, что думают обо мне люди, пока они не начинают меня бить.

Вектроник А4-12: от заказа до готовности - http://cnc-club.ru/forum/viewtopic.php?f=3&t=5248
Токарник по дереву - http://cnc-club.ru/forum/viewtopic.php?f=3&t=5623

Изображение
Аватара пользователя
solanto
Почётный участник
Почётный участник
Сообщения: 963
Зарегистрирован: 02 апр 2014, 09:10
Репутация: 94
Настоящее имя: Александр
Откуда: Карачаево-Черкесская республика, г.Черкесск
Контактная информация:

Re: Датчик длины инструмента

Сообщение solanto »

Вот внутренности моего файла. Пока закоментировал то что мне мешает нормально запустить EMC
(для просмотра содержимого нажмите на ссылку)

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

# Создан stepconf в Thu Nov  6 19:52:52 2014
# Все изменения в этом файле будут перезаписаны
# при следующем запуске stepconf
loadrt trivkins
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES
loadrt probe_parport
loadrt hal_parport cfg="0x378 out  "
setp parport.0.reset-time 5000
loadrt stepgen step_type=0,0,0
loadrt lut5
#loadrt debounce cfg=1

addf parport.0.read base-thread
addf stepgen.make-pulses base-thread
addf parport.0.write base-thread
addf parport.0.reset base-thread
#addf parport.0.pin-15-in =>debounce.0.1.in
#addf debounce.0.1.out => probe-in

addf stepgen.capture-position servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf stepgen.update-freq servo-thread
addf lut5.0 servo-thread
net spindle-cmd <= motion.spindle-speed-out
net spindle-at-speed => motion.spindle-at-speed
net spindle-on <= motion.spindle-on
net spindle-cw <= motion.spindle-forward

net probe-in => motion.probe-input

setp parport.0.pin-01-out-invert 1
net xenable => parport.0.pin-01-out
net xstep => parport.0.pin-02-out
setp parport.0.pin-02-out-reset 1
net xdir => parport.0.pin-03-out
net ystep => parport.0.pin-04-out
setp parport.0.pin-04-out-reset 1
net ydir => parport.0.pin-05-out
net zstep => parport.0.pin-06-out
setp parport.0.pin-06-out-reset 1
net zdir => parport.0.pin-07-out
setp parport.0.pin-16-out-invert 1
net spindle-on => parport.0.pin-16-out
setp parport.0.pin-17-out-invert 1
net spindle-cw => parport.0.pin-17-out


net estop-ext <= parport.0.pin-10-in
net all-limit-home <= parport.0.pin-11-in-not
net probe-in <= parport.0.pin-15-in-not
#net parport.0.pin-15-in => debounce.0.1.in
#net debounce.0.1.out => probe-in

setp lut5.0.function 0x10000
net all-limit-home => lut5.0.in-4
net all-limit <= lut5.0.out
net homing-x <= axis.0.homing => lut5.0.in-0
net homing-y <= axis.1.homing => lut5.0.in-1
net homing-z <= axis.2.homing => lut5.0.in-2

setp stepgen.0.position-scale [AXIS_0]SCALE
setp stepgen.0.steplen 1
setp stepgen.0.stepspace 0
setp stepgen.0.dirhold 40000
setp stepgen.0.dirsetup 40000
setp stepgen.0.maxaccel [AXIS_0]STEPGEN_MAXACCEL
net xpos-cmd axis.0.motor-pos-cmd => stepgen.0.position-cmd
net xpos-fb stepgen.0.position-fb => axis.0.motor-pos-fb
net xstep <= stepgen.0.step
net xdir <= stepgen.0.dir
net xenable axis.0.amp-enable-out => stepgen.0.enable
net all-limit-home => axis.0.home-sw-in
net all-limit => axis.0.neg-lim-sw-in
net all-limit => axis.0.pos-lim-sw-in

setp stepgen.1.position-scale [AXIS_1]SCALE
setp stepgen.1.steplen 1
setp stepgen.1.stepspace 0
setp stepgen.1.dirhold 40000
setp stepgen.1.dirsetup 40000
setp stepgen.1.maxaccel [AXIS_1]STEPGEN_MAXACCEL
net ypos-cmd axis.1.motor-pos-cmd => stepgen.1.position-cmd
net ypos-fb stepgen.1.position-fb => axis.1.motor-pos-fb
net ystep <= stepgen.1.step
net ydir <= stepgen.1.dir
net yenable axis.1.amp-enable-out => stepgen.1.enable
net all-limit-home => axis.1.home-sw-in
net all-limit => axis.1.neg-lim-sw-in
net all-limit => axis.1.pos-lim-sw-in

setp stepgen.2.position-scale [AXIS_2]SCALE
setp stepgen.2.steplen 1
setp stepgen.2.stepspace 0
setp stepgen.2.dirhold 40000
setp stepgen.2.dirsetup 40000
setp stepgen.2.maxaccel [AXIS_2]STEPGEN_MAXACCEL
net zpos-cmd axis.2.motor-pos-cmd => stepgen.2.position-cmd
net zpos-fb stepgen.2.position-fb => axis.2.motor-pos-fb
net zstep <= stepgen.2.step
net zdir <= stepgen.2.dir
net zenable axis.2.amp-enable-out => stepgen.2.enable
net all-limit-home => axis.2.home-sw-in
net all-limit => axis.2.neg-lim-sw-in
net all-limit => axis.2.pos-lim-sw-in

net estop-out <= iocontrol.0.user-enable-out
net estop-ext => iocontrol.0.emc-enable-in

loadusr -W hal_manualtoolchange
net tool-change iocontrol.0.tool-change => hal_manualtoolchange.change
net tool-changed iocontrol.0.tool-changed <= hal_manualtoolchange.changed
net tool-number iocontrol.0.tool-prep-number => hal_manualtoolchange.number
net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared
Может я что не так делаю?
Мне пофигу, что думают обо мне люди, пока они не начинают меня бить.

Вектроник А4-12: от заказа до готовности - http://cnc-club.ru/forum/viewtopic.php?f=3&t=5248
Токарник по дереву - http://cnc-club.ru/forum/viewtopic.php?f=3&t=5623

Изображение
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Датчик длины инструмента

Сообщение Nick »

а... нет, не пина, а функции!
эх надо как-то написать объяснялку hal....


В общем хал - это куча компонентов, пинов и функций.
компоненты можно загружать либо в rt либо в userspace.
пины можно связывать друг с другом.
функции можно подгружать к разным потокам rt.

Что тебе надо сделать:
1. загрузить компонент debounce - это ты сделал правильно
2. сделать так, чтобы debounce работал раз в base-thread - это не сделал. Это addf посмотри в документации по debounce, что именно там загружается.
3. соединить пины. - это ты тоже сделал не правильно
addf parport.0.pin-15-in =>debounce.0.1.in
addf debounce.0.1.out => probe-in
пины соединяются командой net http://www.cnc-club.ru/wiki/index.php/L ... #6.1.4_net
Аватара пользователя
solanto
Почётный участник
Почётный участник
Сообщения: 963
Зарегистрирован: 02 апр 2014, 09:10
Репутация: 94
Настоящее имя: Александр
Откуда: Карачаево-Черкесская республика, г.Черкесск
Контактная информация:

Re: Датчик длины инструмента

Сообщение solanto »

Так?

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

net parport.0.pin-15-in => debounce.0.1.in
net debounce.0.1.out => probe-in
или так?

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

net parport.0.pin-15-in => debounce.0.1.in
addf debounce.0.1.out => probe-in
Мне пофигу, что думают обо мне люди, пока они не начинают меня бить.

Вектроник А4-12: от заказа до готовности - http://cnc-club.ru/forum/viewtopic.php?f=3&t=5248
Токарник по дереву - http://cnc-club.ru/forum/viewtopic.php?f=3&t=5623

Изображение
Аватара пользователя
PKM
Почётный участник
Почётный участник
Сообщения: 4263
Зарегистрирован: 31 мар 2011, 18:11
Репутация: 705
Настоящее имя: Андрей
Откуда: Украина
Контактная информация:

Re: Датчик длины инструмента

Сообщение PKM »

solanto писал(а):Так?
Так, только имя сигнала после net придумать надо. Любое уникальное.
Помнится, в рассылке был запрос сделать без имени пина. Разработчики отморозились )
Аватара пользователя
solanto
Почётный участник
Почётный участник
Сообщения: 963
Зарегистрирован: 02 апр 2014, 09:10
Репутация: 94
Настоящее имя: Александр
Откуда: Карачаево-Черкесская республика, г.Черкесск
Контактная информация:

Re: Датчик длины инструмента

Сообщение solanto »

PKM писал(а): имя сигнала после net придумать надо
В первой строке или во второй?
Мне пофигу, что думают обо мне люди, пока они не начинают меня бить.

Вектроник А4-12: от заказа до готовности - http://cnc-club.ru/forum/viewtopic.php?f=3&t=5248
Токарник по дереву - http://cnc-club.ru/forum/viewtopic.php?f=3&t=5623

Изображение
Ответить

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