Код: Выделить всё
net signal1 parport.0.pin-15-in => debounce.0.1.in
net signal2 debounce.0.1.out => probe-in
Код: Выделить всё
net signal1 parport.0.pin-15-in => debounce.0.1.in
net signal2 debounce.0.1.out => probe-in
Код: Выделить всё
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=5435
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
CNC_4444.hal:51: Pin 'debounce.0.1.in' does not exist
5435
PID TTY STAT TIME COMMAND
Stopping realtime threads
Unloading hal components
Kernel message information:
[ 4445.211328] I-pipe: Domain RTAI registered.
[ 4445.211348] RTAI[hal]: <3.8.1> mounted over IPIPE-NOTHREADS 2.6-03.
[ 4445.211356] RTAI[hal]: compiled with gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5) .
[ 4445.211418] RTAI[hal]: mounted (IPIPE-NOTHREADS, IMMEDIATE (INTERNAL IRQs DISPATCHED), ISOL_CPUS_MASK: 0).
[ 4445.211425] PIPELINE layers:
[ 4445.211433] fc7d7e20 9ac15d93 RTAI 200
[ 4445.211440] c085cb20 0 Linux 100
[ 4445.262337] RTAI[malloc]: global heap size = 2097152 bytes, <BSD>.
[ 4445.263079] RTAI[sched]: IMMEDIATE, MP, USER/KERNEL SPACE: <with RTAI OWN KTASKs>, kstacks pool size = 524288 bytes.
[ 4445.263093] RTAI[sched]: hard timer type/freq = APIC/10405879(Hz); default timing: periodic; linear timed lists.
[ 4445.263101] RTAI[sched]: Linux timer freq = 250 (Hz), TimeBase freq = 1664679000 hz.
[ 4445.263107] RTAI[sched]: timer setup = 999 ns, resched latency = 2944 ns.
[ 4445.263237] RTAI[usi]: enabled.
[ 4445.383581] RTAI[math]: loaded.
[ 4445.522977] config string '0x378 out '
[ 4446.279394] RTAI[math]: unloaded.
[ 4446.348626] SCHED releases registered named ALIEN RTGLBH
[ 4446.380439] RTAI[malloc]: unloaded.
[ 4446.480030] RTAI[sched]: unloaded (forced hard/soft/hard transitions: traps 0, syscalls 0).
[ 4446.484908] I-pipe: Domain RTAI unregistered.
[ 4446.484977] RTAI[hal]: unmounted.
А как потом к нему привязываться?PKM писал(а):Помнится, в рассылке был запрос сделать без имени пина. Разработчики отморозились )
Привязываться не обязательно. Ну это вопрос удобства, осмысленные имена помогают потом разбиратьсяNick писал(а):А как потом к нему привязываться?
Или просили просто делать signal-nn и дальше пофиг?
Вот hal-фаилNightV писал(а):давай снова хал файл, посмотрим
Код: Выделить всё
# Создан 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
#setp debounce.0.delay 10 # быстрый пин
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 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 signal1 parport.0.pin-15-in => debounce.0.1.in
net signal2 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
Код: Выделить всё
net probe-in <= parport.0.pin-15-in-not
net signal1 parport.0.pin-15-in => debounce.0.1.in
net signal2 debounce.0.1.out => probe-in
Часто нужно просто соединить два пина - приходится выдумывать имя сигнала, который больше нигде не будет использован.Nick писал(а):А как потом к нему привязываться?
Или просили просто делать signal-nn и дальше пофиг?
У меня платка StepMaster и там есть выход 15V. Думаю его можно использовать под эту схему.UAVpilot писал(а):Она правда "заточена" под 24V (в том числе и для большей точности), но переделать под 5V несложно.
Программный способ антидребезга вполне работает.solanto писал(а):Так что мне прописать в hal?
Я уже склоняюсь к ликвидации дребезга с помощью конденсатора и резистора, либо с помощью тригера Шмита (если он поможет канечно)
Код: Выделить всё
# add debounce component after all loadrt
loadrt debounce cfg=1
# set delay (number of iterations of base thread )
setp debounce.0.delay 100
# add debounce to thread
addf debounce.0 base-thread
Код: Выделить всё
# put debounce between parport input pins and probe signals
net probe-in motion.probe-input
net debounce-probe-in debounce.0.0.in <= parport.1.pin-13-in
net probe-in debounce.0.0.out
Это инвертирующий триггер Шмидта с раб. напряжением до 15В.solanto писал(а):Нашел. Это TC4S584F
Как уже было отмечено, в LinuxCNC есть достаточно эффективные средства борьбы с дребезгом. Но если ты в следующую версию прошивки введешь фильтр (алгоритм можно подсмотреть в LCNC, он очень простой), будет очень не вредная "фича"michael-yurov писал(а):А, вообще, зачем она? Реально есть проблема с дребезгом?