С Новым Годом и подарок XHC HB04
- dinkata
- Мастер
- Сообщения: 1025
- Зарегистрирован: 05 сен 2014, 09:07
- Репутация: 389
- Настоящее имя: Диньо
- Откуда: Болгария
- Контактная информация:
С Новым Годом и подарок XHC HB04
Всем здоровье ,счастье и успехи в работе
Я хочу похвастаться ,сделал себе подарок с AliЕxpres :
XHC-HB04 wireless MPG pendant (на фото).На первий взгляд и после успешной тест очень понравилось.
Я хотел бы с ваша помощь сделат руководство как подвключит ,как настроит ини ,хал и т.д.
думаю что это интересно для многих,которьйе не так сильно понимают LinuxCNC .
Продолжит тему : http://www.cnc-club.ru/forum/viewtopic. ... t=xhc+hb04
или сделат новая ?
Здесь ,к сожалению, в английском языке
http://www.linuxcnc.org/index.php/engli ... hal-module
Я хочу похвастаться ,сделал себе подарок с AliЕxpres :
XHC-HB04 wireless MPG pendant (на фото).На первий взгляд и после успешной тест очень понравилось.
Я хотел бы с ваша помощь сделат руководство как подвключит ,как настроит ини ,хал и т.д.
думаю что это интересно для многих,которьйе не так сильно понимают LinuxCNC .
Продолжит тему : http://www.cnc-club.ru/forum/viewtopic. ... t=xhc+hb04
или сделат новая ?
Здесь ,к сожалению, в английском языке
http://www.linuxcnc.org/index.php/engli ... hal-module
Простите ошибки, я иностранец.У моя клавиатура нету "э" и "ы"
- NightV
- Почётный участник
- Сообщения: 6599
- Зарегистрирован: 30 дек 2011, 09:14
- Репутация: 2279
- Настоящее имя: Владимир Айрапетян
- Откуда: Israel
- Контактная информация:
Re: С Новым Годом и подарок XHC HB04
так ты уже создал новую вот и продолжай здесьdinkata писал(а):Продолжит тему : http://www.cnc-club.ru/forum/viewtopic. ... t=xhc+hb04
или сделат новая ?
Всё просто! если знаешь КАК!
- dinkata
- Мастер
- Сообщения: 1025
- Зарегистрирован: 05 сен 2014, 09:07
- Репутация: 389
- Настоящее имя: Диньо
- Откуда: Болгария
- Контактная информация:
Re: С Новым Годом и подарок XHC HB04
Установлен Debian Wheezy LinuxCNC 2.6.4 ,потом обновил на 2.6.5.
Установил
libc6-dev
libusb-1.0-0-dev
http://wiki.linuxcnc.org/cgi-bin/wiki.p ... PG_Pendant
...Then go to the directory where you have extracted the module files and use the two following commands:
make
make install
..ето не знаю как сделат
Конфигурация с Stepper Wizard ,после в ини наместо DISPLAY = axis ставлю DISPLAY = gmoccapy и добавил из sim.axis.xhc-b04
(в моем случае layout = 2) строки для XHC HB04 ,подправил для 3 осей и протестировал успешно почти всех кнопок .
Пошел на станок скопироват конфиг и вьйложу сейчас .
Установил
libc6-dev
libusb-1.0-0-dev
http://wiki.linuxcnc.org/cgi-bin/wiki.p ... PG_Pendant
...Then go to the directory where you have extracted the module files and use the two following commands:
make
make install
..ето не знаю как сделат
Конфигурация с Stepper Wizard ,после в ини наместо DISPLAY = axis ставлю DISPLAY = gmoccapy и добавил из sim.axis.xhc-b04
(в моем случае layout = 2) строки для XHC HB04 ,подправил для 3 осей и протестировал успешно почти всех кнопок .
Пошел на станок скопироват конфиг и вьйложу сейчас .
Простите ошибки, я иностранец.У моя клавиатура нету "э" и "ы"
- dinkata
- Мастер
- Сообщения: 1025
- Зарегистрирован: 05 сен 2014, 09:07
- Репутация: 389
- Настоящее имя: Диньо
- Откуда: Болгария
- Контактная информация:
Re: С Новым Годом и подарок XHC HB04
Так ,вот ини:
файл монитор :
файл xhc hb04 :
и файл имена кнопок:
Код: Выделить всё
# Generated by stepconf 1.1 at Tue Dec 16 16:51:51 2014
# If you make changes to this file, they will be
# overwritten when you run stepconf again
[EMC]
MACHINE = my-mill_D
DEBUG = 0
[DISPLAY]
DISPLAY = gmoccapy
PREFERENCE_FILE_PATCH = my-mill_D.pref
EDITOR = gedit
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
ARCDIVISION = 64
GRIDS = 10mm 20mm 50mm 100mm 1in 2in 5in 10in
MAX_FEED_OVERRIDE = 1.2
MIN_SPINDLE_OVERRIDE = 0.5
MAX_SPINDLE_OVERRIDE = 1.2
DEFAULT_LINEAR_VELOCITY = 13.44
MIN_LINEAR_VELOCITY = 0
MAX_LINEAR_VELOCITY = 134.41
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
PROGRAM_PREFIX = /home/ddd/linuxcnc/nc_files
INCREMENTS = 5mm 1mm .5mm .1mm .05mm .01mm .005mm
[FILTER]
PROGRAM_EXTENSION = .png,.gif,.jpg Greyscale Depth Image
PROGRAM_EXTENSION = .py Python Script
png = image-to-gcode
gif = image-to-gcode
jpg = image-to-gcode
py = python
[TASK]
TASK = milltask
CYCLE_TIME = 0.010
[RS274NGC]
PARAMETER_FILE = linuxcnc.var
[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
COMM_WAIT = 0.010
BASE_PERIOD = 31000
SERVO_PERIOD = 1000000
[HAL]
HALUI = halui
HALFILE = my-mill_D.hal
HALFILE = xhc-hb04.tcl
HALFILE = monitor_xhc-hb04.tcl
POSTGUI_HALFILE = custom_postgui.hal
[XHC_HB04_CONFIG]
# specify layout = n for xhc-hb04-layout{n}.cfg files
layout = 2
# coords: specify 4 letters
# coords: switch labels are xyza but any unique 4 letters
# from the set {xyxabcuvw) can be used (if the coord exists)
coords = x y z
# lowpass settings:
# coef: slows rate of change of output, range: 0 < coef < 1
coefs = 1 1 1 1
scales = 1 1 1 1
jogmode = normal
sequence = 1
require_pendant = yes
[XHC_HB04_BUTTONS]
# use button names according to layout file xhc-hb04-layout{n}.cfg
# note: "start-pause" is connected for standard behavior
# controlling halui.pause/halui.resume/halui.run
# these are examples, edit as required:
goto-zero = halui.mdi-command-00
# syntheized per-axis buttons for goto-zero button:
goto-zero-x = ""
goto-zero-y = ""
goto-zero-z = ""
goto-zero-a = ""
start-pause = std_start_pause
rewind = halui.program.step
# probe-input for simulating a probe:
probe-z = motion.probe-input
macro-3 = halui.mdi-command-03
half = halui.spindle.stop
# synthesized per-axis buttons for half button:
half-x = ""
half-y = ""
half-z = ""
half-a = ""
zero = ""
# synthesized per-axis buttons for zero button:
zero-x = halui.mdi-command-12
zero-y = halui.mdi-command-13
zero-z = halui.mdi-command-14
zero-a = halui.mdi-command-15
safe-z = halui.mdi-command-10
# in this sim, home-all only works first time, hold down till finished:
home = halui.home-all
macro-1 = halui.mdi-command-01
macro-2 = halui.mdi-command-02
spindle = halui.spindle.start
step = xhc-hb04.stepsize-up
mode = ""
macro-6 = halui.mdi-command-06
macro-7 = halui.mdi-command-07
stop = halui.program.stop
reset = halui.estop.activate
[HALUI]
# these are examples, edit as required:
# a halui hal pin is created for each MDI_COMMAND below
# halui.mdi-command-00, halui.mdi-command-01,... etc
MDI_COMMAND=G0 X0 Y0 Z0
MDI_COMMAND=(debug, example: mdi-01)
MDI_COMMAND=(debug, example: mdi-02)
#03 M110: clears notifications
MDI_COMMAND=M110
MDI_COMMAND=(debug, example: mdi-04)
MDI_COMMAND=(debug, example: mdi-05)
MDI_COMMAND=(debug, example: mdi-06)
#07 M101: example print to stdout
MDI_COMMAND=M101
MDI_COMMAND=(debug, example: mdi-08)
MDI_COMMAND=(debug, example: mdi-09)
MDI_COMMAND=(debug, example: mdi-10)
MDI_COMMAND=(debug, example: mdi-11)
#12
MDI_COMMAND= G10 L20 P0 X0
#13
MDI_COMMAND= G10 L20 P0 Y0
#14
MDI_COMMAND= G10 L20 P0 Z0
#15
MDI_COMMAND= G10 L20 P0 C0
[TRAJ]
AXES = 3
COORDINATES = X Y Z
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
CYCLE_TIME = 0.010
DEFAULT_VELOCITY = 13.44
MAX_VELOCITY = 134.41
[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = tool.tbl
[AXIS_0]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 127.688172043
MAX_ACCELERATION = 250.0
STEPGEN_MAXACCEL = 312.5
SCALE = 240.0
FERROR = 1
MIN_FERROR = .25
MIN_LIMIT = -0.001
MAX_LIMIT = 410.0
HOME_OFFSET = 0.000000
HOME_SEARCH_VEL = -10.000000
HOME_LATCH_VEL = 2.083333
HOME_IGNORE_LIMITS = YES
HOME_SEQUENCE = 1
[AXIS_1]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 127.688172043
MAX_ACCELERATION = 350.0
STEPGEN_MAXACCEL = 437.5
SCALE = 240.0
FERROR = 1
MIN_FERROR = .25
MIN_LIMIT = -0.001
MAX_LIMIT = 500.0
HOME_OFFSET = 0.000000
HOME_SEARCH_VEL = -15.000000
HOME_LATCH_VEL = 2.083333
HOME_IGNORE_LIMITS = YES
HOME_SEQUENCE = 2
[AXIS_2]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 100.0
MAX_ACCELERATION = 200.0
STEPGEN_MAXACCEL = 250.0
SCALE = 200.0
FERROR = 1
MIN_FERROR = .25
MIN_LIMIT = -150.0
MAX_LIMIT = 0.001
HOME_OFFSET = 0.000000
HOME_SEARCH_VEL = 10.000000
HOME_LATCH_VEL = -2.500000
HOME_IGNORE_LIMITS = YES
HOME_SEQUENCE = 0
Код: Выделить всё
#!/usr/bin/tclsh
#-----------------------------------------------------------------------
# Copyright: 2014
# Author: Dewey Garrett <dgarrett@panix.com>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#-----------------------------------------------------------------------
# pass 1: set environmental variable as flag
# then restart this script in background
# exit
# pass 2: detect environmental variable and continuously monitor
# the xhc-hb04.connected pin
set ::progname [file tail $::argv0]
set ::startup_delay_ms 5000
set ::periodic_delay_ms 2000
set ::popup_hold_ms 0 ;# use 0 for forever
set ::debug 0
proc bool_from_string {v} {
# hal getp returns TRUE,FALSE
switch [string tolower $v] {
true {set v 1}
false {set v 0}
}
return $v
} ;# bool_from_string
proc dputs {msg} {
if $::debug {
puts stderr $::progname:debug:$msg
}
} ;# dputs
proc start_monitor {} {
package require Hal
package require Tk
wm withdraw .
set ::popupw [toplevel .p]
wm withdraw $::popupw
wm title $::popupw $::progname
wm protocol $::popupw WM_DELETE_WINDOW hide
pack [label ${::popupw}.t -text [now] -font bold]
pack [label ${::popupw}.l -text "startup" -font bold]
pack [button ${::popupw}.b -text "OK" -command dismiss] -anchor e
if [catch {set value [hal getp xhc-hb04.connected]} msg ] {
# this can occur if loadusr xhc-hb04 fails,
puts "$::progname: xhc-hb04 comp not loaded"
puts "$::progname: <$msg>"
puts "$::progname: exiting"
return
}
set ::connected false
if [catch { set ::connected [hal getp xhc-hb04.connected]
} msg] {
puts "$::progname: connected? <$msg>"
}
set ::connected [bool_from_string $::connected]
set ::require_pendant false
if [catch { set ::require_pendant [hal getp xhc-hb04.require_pendant]
} msg] {
puts "$::progname: require_pendant? <$msg>"
puts "$::progname: pendant connection not required, Continuing"
}
set ::require_pendant [bool_from_string $::require_pendant]
dputs "startup:connected=$::connected required=$::require_pendant"
if {!$::require_pendant && !$::connected} {
popup "\nrequire_pendant==0\nPendant not connected at startup"
}
after $::periodic_delay_ms check
} ;# start_monitor
proc now {} {
return [clock format [clock seconds]]
} ;# now
proc popup {msg} {
dputs $msg
$::popupw.l configure -text [now]
$::popupw.l configure -text $msg
center $::popupw
if {$::popup_hold_ms != 0} {
after $::popup_hold_ms [list wm iconify $::popupw]
}
} ;# popup
proc center {w} {
update idletasks
set x [expr [winfo screenwidth $w]/2 \
- [winfo reqwidth $w]/2 - [winfo vrootx [winfo parent $w]]]
set y [expr [winfo screenheight $w]/2 \
- [winfo reqheight $w]/2 - [winfo vrooty [winfo parent $w]]]
wm geom $w +$x+$y
wm deiconify $w
} ;# center
proc hide {} {
wm withdraw $::popupw
} ;# hide
proc dismiss {} {
wm withdraw $::popupw
} ;# dismiss
proc check {} {
if [catch { set ::connected_new [hal getp xhc-hb04.connected]
} msg] {
puts "$::progname <$msg>"
}
set ::connected_new [bool_from_string $::connected_new]
dputs "check:connected_new=$::connected_new required=$::require_pendant"
set allow_recheck 1
if {$::connected_new != $::connected} {
if $::connected_new {
set msg "\nConnected to pendant"
} else {
set msg "\nLost connection to pendant"
}
if $::require_pendant {
if {$::connected_new} {
set msg "$msg\nUnexpected"
} else {
# xhc-hb04 will timeout and exit so no more checks
set msg "$msg\nReconnect not supported for require_pendant==1"
set allow_recheck 0
}
}
dputs "$::progname: $msg"
popup $msg
}
set ::connected $::connected_new
if $allow_recheck {after $::periodic_delay_ms check}
} ;# check
# begin -----------------------------------------------------
if ![info exists ::env(monitor_xhc-hb04)] {
set ::env(monitor_xhc-hb04) $::argv0
exec ./monitor_xhc-hb04.tcl & ;# restart this with env(monitor_xhc-hb04) set
exit 0
} else {
after $::startup_delay_ms
start_monitor
}
Код: Выделить всё
proc is_uniq {list_name} {
set tmp(xxxxxxxx) "" ;# make an array first
foreach item $list_name {
if {[array names tmp $item] == $item} {
return 0 ;# not unique
}
set tmp($item) $item
}
return 1 ;# unique
} ;# is_uniq
proc pin_exists {name} {
set line [lindex [split [show pin $name] \n] 2]
if {"$line" == ""} {
return 0 ;# fail
}
if [catch {scan $line "%d %s %s %s%s" owner type dir value pinname} msg] {
return 0 ;# fail
} else {
#puts stderr "OK:$owner $type $dir $value $pinname"
return 1 ;# ok
}
} ;# pin_exists
proc connect_pins {} {
foreach bname [lsort [array names ::XHC_HB04_BUTTONS]] {
set thepin $::XHC_HB04_BUTTONS($bname)
set thepin [lindex $thepin 0]
if {"$thepin" == "\"\""} {
#puts stderr "$::progname: no pin defined for <$bname>"
continue
}
# this pin is can specify std behavior
if { ([string tolower $bname] == "start-pause")
&& ([string tolower $thepin] == "std_start_pause")
} {
std_start_pause_button
puts stderr "$::progname: using std_start_pause_button"
continue
}
# these are warnings in the ini file examples but aren't real pins
if {[string tolower "$thepin"] == "caution"} {
puts stderr "$::progname: skipping button $bname marked <$thepin>"
continue
}
set fullbname xhc-hb04.button-$bname
if ![pin_exists $fullbname] {
puts stderr "$::progname: !!! <$fullbname> pin does not exist, continuing"
continue
}
if ![pin_exists $thepin] {
puts stderr "$::progname: !!! <$thepin> target pin does not exist, continuing"
continue
}
net pendant:$bname $fullbname => $thepin
}
} ;# connect_pins
proc wheel_setup {jogmode} {
# defaults if not in inifile:
set ::XHC_HB04_CONFIG(coef,0) 1.0
set ::XHC_HB04_CONFIG(coef,1) 1.0
set ::XHC_HB04_CONFIG(coef,2) 1.0
set ::XHC_HB04_CONFIG(coef,3) 1.0
if [info exists ::XHC_HB04_CONFIG(coefs)] {
set idx 0
foreach g $::XHC_HB04_CONFIG(coefs) {
set g1 $g
if {$g < 0} {
set g [expr -1 * $g]
puts stderr "$::progname: coef #$idx must be positive was:$g1, is:$g"
}
if {$g > 1} {
set g .5
puts stderr "$::progname: coef #$idx must < 1 coef was:$g1, is:$g"
}
set ::XHC_HB04_CONFIG(coef,$idx) $g
incr idx
}
}
# defaults if not in inifile:
set ::XHC_HB04_CONFIG(scale,0) 1.0
set ::XHC_HB04_CONFIG(scale,1) 1.0
set ::XHC_HB04_CONFIG(scale,2) 1.0
set ::XHC_HB04_CONFIG(scale,3) 1.0
if [info exists ::XHC_HB04_CONFIG(scales)] {
set idx 0
foreach g $::XHC_HB04_CONFIG(scales) {
set ::XHC_HB04_CONFIG(scale,$idx) $g
incr idx
}
}
net pendant:jog-scale <= xhc-hb04.jog.scale
net pendant:jog-counts <= xhc-hb04.jog.counts
net pendant:jog-counts-neg <= xhc-hb04.jog.counts-neg
set anames {x y z }
# xhc-hb04.cc hardcodes pin names as: x y z
# herein: Use names in order of the [XHC_HB04_CONFIG]coords
# specification in the inifile.
# These pin names will be a little confusing when
# using alternate axis sequences but the signal
# names will align correctly.
# With this method, any coord (xyzabcuvw) can be
# controlled by the wheel (providing it exists)
#
set idx 0
foreach coord $::XHC_HB04_CONFIG(coords) {
set axno $::XHC_HB04_CONFIG($coord,axno)
setp pendant_util.coef$idx $::XHC_HB04_CONFIG(coef,$idx)
setp pendant_util.scale$idx $::XHC_HB04_CONFIG(scale,$idx)
set acoord [lindex $anames $idx]
net pendant:pos-$coord halui.axis.$axno.pos-feedback \
=> xhc-hb04.$acoord.pos-absolute
net pendant:pos-rel-$coord halui.axis.$axno.pos-relative \
=> xhc-hb04.$acoord.pos-relative
net pendant:jog-scale => axis.$axno.jog-scale
net pendant:jog-counts => pendant_util.in$idx
net pendant:jog-counts-$coord-filtered <= pendant_util.out$idx \
=> axis.$axno.jog-counts
switch $jogmode {
normal - vnormal {
net pendant:jog-$coord xhc-hb04.jog.enable-$acoord \
=> axis.$axno.jog-enable
}
plus-minus {
# connect halui plus,minus pins
net pendant:jog-plus-$coord xhc-hb04.jog.plus-$acoord \
=> halui.jog.$axno.plus
net pendant:jog-minus-$coord xhc-hb04.jog.minus-$acoord \
=> halui.jog.$axno.minus
}
}
switch $jogmode {
vnormal {
setp axis.$axno.jog-vel-mode 1
}
}
incr idx
}
switch $jogmode {
normal - vnormal {
net pendant:jog-speed <= halui.max-velocity.value
# not used: xhc-hb04.jog.velocity
# not used: xhc-hb04.jog.max-velocity
}
plus-minus {
# Note: the xhc-hb04 driver manages xhc-hb04.jog.velocity
net pendant:jog-max-velocity <= halui.max-velocity.value
net pendant:jog-max-velocity => xhc-hb04.jog.max-velocity
net pendant:jog-speed <= xhc-hb04.jog.velocity
net pendant:jog-speed => halui.jog-speed
}
}
setp halui.feed-override.scale 0.01
net pendant:jog-counts => halui.feed-override.counts
setp halui.spindle-override.scale 0.01
net pendant:jog-counts => halui.spindle-override.counts
net pendant:jog-feed halui.feed-override.count-enable \
<= xhc-hb04.jog.enable-feed-override
net pendant:jog-feed2 halui.feed-override.value \
=> xhc-hb04.feed-override
net pendant:jog-spindle halui.spindle-override.count-enable
net pendant:jog-spindle <= xhc-hb04.jog.enable-spindle-override
net pendant:jog-spindle2 halui.spindle-override.value \
=> xhc-hb04.spindle-override
net pendant:spindle-rps motion.spindle-speed-cmd-rps \
=> xhc-hb04.spindle-rps
} ;# wheel_setup
proc std_start_pause_button {} {
# hardcoded setup for button-start-pause
net pendant:start-or-pause <= xhc-hb04.button-start-pause \
=> pendant_util.start-or-pause
net pendant:is-idle <= halui.program.is-idle \
=> pendant_util.is-idle
net pendant:is-paused <= halui.program.is-paused \
=> pendant_util.is-paused
net pendant:is-running <= halui.program.is-running \
=> pendant_util.is-running
net pendant:program-resume pendant_util.resume => halui.program.resume
net pendant:program-pause pendant_util.pause => halui.program.pause
net pendant:program-run pendant_util.run => halui.program.run
net pendant:program-run => halui.mode.auto
} ;# std_start_pause_button
proc popup_msg {msg} {
puts stderr "$msg"
if [catch {package require Tk
wm withdraw .
tk_messageBox \
-title "$::progname: loadusr" \
-type ok \
-message "$msg"
destroy .
} msg] {
puts stderr "$msg"
}
} ;# popup_msg
proc err_exit {msg} {
puts stderr "\n$::progname: $msg\n"
exit 1
} ;# err_exit
# begin------------------------------------------------------------------------
set ::progname "xhc-hb04.tcl"
set cfg xhc-hb04-layout2.cfg ;# default
foreach name [array names ::XHC_HB04_CONFIG] {
set ::XHC_HB04_CONFIG($name) [string trim $::XHC_HB04_CONFIG($name) "{}"]
}
if [info exists ::XHC_HB04_CONFIG(layout)] {
switch ${::XHC_HB04_CONFIG(layout)} {
1 {set cfg xhc-hb04-layout1.cfg}
2 {set cfg xhc-hb04-layout2.cfg}
default {
set msg "Unknown layout:<$::XHC_HB04_CONFIG(layout)>"
set msg "$msg\ntrying: $cfg"
popup_msg "$msg"
# keep going
}
}
}
if ![file exists $cfg] {
set msg "Cannot find file: <$cfg>\nCannot configure pendant\n"
set msg "$msg\nContinuing without xhc-hb04"
popup_msg "$msg"
return ;# not an exit
}
# require_pendant==yes: use -x, dont create pins unless connected
# require_pendant==no: create pins if not connected
if ![info exists ::XHC_HB04_CONFIG(require_pendant)] {
set ::XHC_HB04_CONFIG(require_pendant) yes ;# default
}
set dashx -x
switch $::XHC_HB04_CONFIG(require_pendant) {
no {set dashx ""}
}
if [info exists ::XHC_HB04_CONFIG(sequence)] {
set dashs "-s $::XHC_HB04_CONFIG(sequence)"
} else {
set dashs ""
}
set cmd "loadusr -W xhc-hb04 $dashx $dashs -I $cfg -H"
if [catch {eval $cmd} msg] {
set msg "\n$::progname: loadusr xhc-hb04:\n<$msg>\n\n"
set msg "$msg Is it plugged in?\n\n"
set msg "$msg Are permissions correct?\n\n"
set msg "$msg Continuing without xhc-hb04\n"
set msg "$msg \nFailing cmd:\n$cmd"
popup_msg "$msg"
return ;# not an exit
}
# jogmodes:
# normal: use motion pins:
# axis.N.jog-counts
# axis.N.jog-enable
# axis.N.jog-scale (machine units per count)
# plus-minus: use halui pins:
# halui.jog.N.plus (jog in + dir at jog-speed)
# halui.jog.N.minus (jog in - dir at jog-speed)
# halui.jog-speed (applies to plus-minus jogging only)
#
if ![info exists ::XHC_HB04_CONFIG(jogmode)] {
set ::XHC_HB04_CONFIG(jogmode) normal ;# default
}
set jogmode $::XHC_HB04_CONFIG(jogmode)
switch $jogmode {
normal {}
vnormal {}
plus-minus {}
default {
set ::XHC_HB04_CONFIG(jogmode) normal
set msg "Unkknown jogmode <$jogmode>"
set msg "$msg Using $::XHC_HB04_CONFIG(jogmode)"
popup_msg "$msg"
}
}
set ct 0; foreach coord {x y z } {
set ::XHC_HB04_CONFIG($coord,axno) $ct; incr ct
}
if [info exists ::XHC_HB04_CONFIG(coords)] {
if ![is_uniq $::XHC_HB04_CONFIG(coords)] {
err_exit "coords must be unique, not: <$::XHC_HB04_CONFIG(coords)>"
}
} else {
set ::XHC_HB04_CONFIG(coords) {x y z } ;# default
}
if ![info exists ::XHC_HB04_CONFIG(threadname)] {
set ::XHC_HB04_CONFIG(threadname) "servo-thread" ;# default
}
loadrt xhc_hb04_util names=pendant_util
addf pendant_util $::XHC_HB04_CONFIG(threadname)
connect_pins ;# per ini file items: [XHC_HB04_BUTTONS]buttonname=pin
wheel_setup $::XHC_HB04_CONFIG(jogmode)
# jog wheel per ini file items:
# [XHC_HB04_CONFIG]coords,coefs,scales
#parray ::XHC_HB04_CONFIG
Код: Выделить всё
[XHC-HB04]
BUTTON=01:button-goto-zero
BUTTON=02:button-start-pause
BUTTON=03:button-rewind
BUTTON=04:button-probe-z
BUTTON=05:button-macro-3
BUTTON=06:button-half
BUTTON=07:button-zero
BUTTON=08:button-safe-z
BUTTON=09:button-home
BUTTON=0A:button-macro-1
BUTTON=0B:button-macro-2
BUTTON=0C:button-spindle
BUTTON=0D:button-step
BUTTON=0E:button-mode
BUTTON=0F:button-macro-6
BUTTON=10:button-macro-7
BUTTON=16:button-stop
BUTTON=17:button-reset
Простите ошибки, я иностранец.У моя клавиатура нету "э" и "ы"
- dinkata
- Мастер
- Сообщения: 1025
- Зарегистрирован: 05 сен 2014, 09:07
- Репутация: 389
- Настоящее имя: Диньо
- Откуда: Болгария
- Контактная информация:
Re: С Новым Годом и подарок XHC HB04
Для тестирование ,да ,получилос .Хочется связат пинами в хал для других функции .Например button-macro-7 включал СОЖ ,
т.е.надо сгенерироват файл с пинами XHC HB04 и пользоват их в свой хал .И где лучше ставит своя логика и свой хал ,наверно в
postgui ? Пока ето не в мои возможности ,понадобится времени и английской изучат ,поетому предлагаю вместе здесь сделат руководство,
надеюсь поможите .Предлагайте ,я буду тестироват на станок.
т.е.надо сгенерироват файл с пинами XHC HB04 и пользоват их в свой хал .И где лучше ставит своя логика и свой хал ,наверно в
postgui ? Пока ето не в мои возможности ,понадобится времени и английской изучат ,поетому предлагаю вместе здесь сделат руководство,
надеюсь поможите .Предлагайте ,я буду тестироват на станок.
Простите ошибки, я иностранец.У моя клавиатура нету "э" и "ы"
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: С Новым Годом и подарок XHC HB04
vsdinkata писал(а):ето не знаю как сделат
dinkata писал(а):и протестировал успешно почти всех кнопок
так всё работает?dinkata писал(а):Для тестирование ,да ,получилос
емс с пультом запускается?
если да - то открыть halshow и смотреть пины пульта...
- dinkata
- Мастер
- Сообщения: 1025
- Зарегистрирован: 05 сен 2014, 09:07
- Репутация: 389
- Настоящее имя: Диньо
- Откуда: Болгария
- Контактная информация:
Re: С Новым Годом и подарок XHC HB04
даnkp писал(а):так всё работает?
даnkp писал(а):емс с пультом запускается?
хочу пиньй в свой хал файле имет и работат без - xhc hb04.tclnkp писал(а):открыть halshow и смотреть пины пульта...
а файл monitor xhc hb04.tcl можно не трогат.
Простите ошибки, я иностранец.У моя клавиатура нету "э" и "ы"
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: С Новым Годом и подарок XHC HB04
модуль XHC-HB04 должен установиться в /usr/local/bin
после этого достаточно в обычный твой конфиг добавить в хал строку вида:
loadusr -W xhc-hb04 -I xhc-hb04-layout1.ini -H
и в папку с конфигом положить xhc-hb04-layout1.ini
запустить - смотреть появившиеся пины : и коммутируй нужные как хочешь
========
после этого достаточно в обычный твой конфиг добавить в хал строку вида:
loadusr -W xhc-hb04 -I xhc-hb04-layout1.ini -H
и в папку с конфигом положить xhc-hb04-layout1.ini
запустить - смотреть появившиеся пины : и коммутируй нужные как хочешь
========
- dinkata
- Мастер
- Сообщения: 1025
- Зарегистрирован: 05 сен 2014, 09:07
- Репутация: 389
- Настоящее имя: Диньо
- Откуда: Болгария
- Контактная информация:
Re: С Новым Годом и подарок XHC HB04
Спасибо ,он и там лежит ,протестировал кнопки и в classicladder ,работаютnkp писал(а):модуль XHC-HB04 должен установиться в /usr/local/bin
custom_posgui.hal
Код: Выделить всё
net cncrdy motion.motion-enabled => classicladder.0.in-00
net btnrst xhc-hb04.button-reset => classicladder.0.in-01
net chmode xhc-hb04.button-mode => classicladder.0.in-04
net macr1 xhc-hb04.button-macro-1 => classicladder.0.in-05
net macr2 xhc-hb04.button-macro-2 => classicladder.0.in-06
net macr3 xhc-hb04.button-macro-3 => classicladder.0.in-07
net sot xhc-hb04.button-macro-6 => halui.flood.on
net sotstop xhc-hb04.button-macro-7 => halui.flood.off
net aumod1 halui.mode.is-auto => classicladder.0.in-08
net mamod1 halui.mode.is-manual => classicladder.0.in-09
net mdmod1 halui.mode.is-mdi => classicladder.0.in-10
net homx axis.0.homed => classicladder.0.in-11
net homy axis.1.homed => classicladder.0.in-12
net homz axis.2.homed => classicladder.0.in-13
net stpav halui.estop.is-activated => classicladder.0.in-14
# net aumod2 halui.mode.auto <= classicladder.0.out-00
# net mamod2 halui.mode.manual <= classicladder.0.out-01
# net mdmod2 halui.mode.mdi <= classicladder.0.out-02
net avstp halui.estop.activate <= classicladder.0.out-03
net stprst halui.estop.reset <= classicladder.0.out-04
Насколько правильно я все ето делаю не знаю
Пока смотрю работает/не работает.
В итогге до сих пор :
1.После установки батареи и нажатие бутон включение ,XHC HB04 не включится если флешка не подвключена в USB .
1.1.Посмотрите : http://wiki.linuxcnc.org/cgi-bin/wiki.p ... PG_Pendant
1.2.Посмотрите: http://git.linuxcnc.org/gitweb?p=linuxc ... e5a61e495b
2.Первоначалное тестирование с запуск Linuxcnc/axis/sim.axis.xhc-hb04
Бутон Reset както странно работал ,поетому вставил и его в classicladder
Последний раз редактировалось dinkata 02 янв 2015, 06:12, всего редактировалось 1 раз.
Простите ошибки, я иностранец.У моя клавиатура нету "э" и "ы"
- dinkata
- Мастер
- Сообщения: 1025
- Зарегистрирован: 05 сен 2014, 09:07
- Репутация: 389
- Настоящее имя: Диньо
- Откуда: Болгария
- Контактная информация:
Re: С Новым Годом и подарок XHC HB04
да ,и здесь бьйл ,взял кое чтоnkp писал(а):может что подсмотришь:
http://blog.f1oat.org/linuxcnc/
а если сериозно - здес отлично ,кто знает английского :
http://www.linuxcnc.org/index.php/engli ... hal-module
Простите ошибки, я иностранец.У моя клавиатура нету "э" и "ы"
- dinkata
- Мастер
- Сообщения: 1025
- Зарегистрирован: 05 сен 2014, 09:07
- Репутация: 389
- Настоящее имя: Диньо
- Откуда: Болгария
- Контактная информация:
Re: С Новым Годом и подарок XHC HB04
Бутончики :BUTTON=17:button-reset ,в начале тестирование - нажал ,авост сработал ,потом неdinkata писал(а):Бутон Reset както странно работал ,поетому вставил и его в classicladder
успел сделат ресет на авост ,понадобилос закрьйт LCNC и снова запустит .Поетому решил вставит пока в classicladder,
сделал с его включение (удерживат нажатие на 1 сек ) и вьйключение станка (сразу с нажатие ).
Простите ошибки, я иностранец.У моя клавиатура нету "э" и "ы"
- dinkata
- Мастер
- Сообщения: 1025
- Зарегистрирован: 05 сен 2014, 09:07
- Репутация: 389
- Настоящее имя: Диньо
- Откуда: Болгария
- Контактная информация:
Re: С Новым Годом и подарок XHC HB04
да,работало на Linuxcnc 2.6.5 ,потом я перешел на http://www.cnc-club.ru/forum/viewtopic.php?f=15&t=4575dinkata писал(а): включение (удерживат нажатие на 1 сек ) и вьйключение станка (сразу с нажатие ).
установил и features .Сейчас запускается Linuxcnc 2.7.0 pre2...
-вьйключение станка из XHC HB04 работает ,но включение (удерживат нажатие на 1 сек ) нет, вьйдает такое сообщение:
ERROR:Could not switch the machine on ,is limit switch activated ?
с концевики все в порядке..
Простите ошибки, я иностранец.У моя клавиатура нету "э" и "ы"
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: С Новым Годом и подарок XHC HB04
точно ни один не нажат? Посмотри по пинам motiondinkata писал(а):ERROR:Could not switch the machine on ,is limit switch activated ?
axis.N.motor-pos-fb
axis.N.motor-neg-fb
- dinkata
- Мастер
- Сообщения: 1025
- Зарегистрирован: 05 сен 2014, 09:07
- Репутация: 389
- Настоящее имя: Диньо
- Откуда: Болгария
- Контактная информация:
Re: С Новым Годом и подарок XHC HB04
да,я еще не подвключил машина .На рабочем столе тестирую и изучаю.Nick писал(а):точно ни один не нажат?
Очень хотелос запустит features в gmoccapy поетому перешел на http://www.cnc-club.ru/forum/viewtopic.php?f=15&t=4575dinkata писал(а):,работало на Linuxcnc 2.6.5
но не успеваю пока запустит features ,скорее она запускается но нет preview
Простите ошибки, я иностранец.У моя клавиатура нету "э" и "ы"
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: С Новым Годом и подарок XHC HB04
это еще не значит, что они не нажаты.dinkata писал(а):да,я еще не подвключил машина
Посмотри, что на этих пинах
axis.N.motor-pos-fb
axis.N.motor-neg-fb
- dinkata
- Мастер
- Сообщения: 1025
- Зарегистрирован: 05 сен 2014, 09:07
- Репутация: 389
- Настоящее имя: Диньо
- Откуда: Болгария
- Контактная информация:
Re: С Новым Годом и подарок XHC HB04
да,позже ,Nicк подскажите что нибуд об features ,смотри пост 558 (ето на рабочий станок ):Nick писал(а):Посмотри, что на этих пинах
http://www.cnc-club.ru/forum/viewtopic. ... 92#p162692
Простите ошибки, я иностранец.У моя клавиатура нету "э" и "ы"
- dinkata
- Мастер
- Сообщения: 1025
- Зарегистрирован: 05 сен 2014, 09:07
- Репутация: 389
- Настоящее имя: Диньо
- Откуда: Болгария
- Контактная информация:
Re: С Новым Годом и подарок XHC HB04
Имел времени снова поработат над XHC HB04 ,назначил кнопочки под мои нужд ,
reset -аварийной останов
macro-1 включение станок
macro-2 вьйключение станок
macro-3 сброс авост
macro-6 включение СОЖ
macro-7 вьйключение СОЖ
остальньйе как по дефольт ,ест еще для переделка ,пожалуйста коментируйте,критикуйте .
до переделка >>>>>>> после переделка
reset -аварийной останов
macro-1 включение станок
macro-2 вьйключение станок
macro-3 сброс авост
macro-6 включение СОЖ
macro-7 вьйключение СОЖ
остальньйе как по дефольт ,ест еще для переделка ,пожалуйста коментируйте,критикуйте .
до переделка >>>>>>> после переделка
Код: Выделить всё
[XHC_HB04_BUTTONS]
# use button names according to layout file xhc-hb04-layout{n}.cfg
# note: "start-pause" is connected for standard behavior
# controlling halui.pause/halui.resume/halui.run
# these are examples, edit as required:
goto-zero = halui.mdi-command-00 >>>>>>> goto-zero = ""
# synthesized per-axis buttons for goto-zero button:
goto-zero-x = "" >>>>>>> halui.mdi-command-00
goto-zero-y = "" >>>>>>> halui.mdi-command-01
goto-zero-z = "" >>>>>>> halui.mdi-command-02
goto-zero-a = "" >>>>>>> halui.mdi-command-03
start-pause = std_start_pause >>>>>>> # так работает
rewind = halui.program.step >>>>>>> # так работает
# probe-input for simulating a probe: >>>>>>> # еще не готово
probe-z = motion.probe-input >>>>>>> # probe-z = motion.probe-inputю
half = halui.spindle.stop >>>>>>> half = halui.mdi-command-09
# в gmoccapy дает ошибка если half = halui.spindle.stop ,поетому назначил на mdi-command-09 = М5
# synthesized per-axis buttons for half button:
half-x = ""
half-y = ""
half-z = ""
half-a = ""
zero = ""
# synthesized per-axis buttons for zero button:
zero-x = halui.mdi-command-12 >>>>>>> halui.mdi-command-04
zero-y = halui.mdi-command-13 >>>>>>> halui.mdi-command-05
zero-z = halui.mdi-command-14 >>>>>>> halui.mdi-command-06
zero-a = halui.mdi-command-15 >>>>>>> halui.mdi-command-07
safe-z = halui.mdi-command-10 >>>>>>> halui.mdi-command-04 # еще не готово
# in this sim, home-all only works first time, hold down till finished:
home = halui.home-all >>>>>>> # так работает
macro-1 = halui.mdi-command-01 >>>>>>> macro-1 = halui.machine.on
macro-2 = halui.mdi-command-02 >>>>>>> macro-2 = halui.machine.off
>>>>>>> macro-3 = halui.estop.reset
spindle = halui.spindle.start >>>>>>> # так работает
step = xhc-hb04.stepsize-up >>>>>>> # так работает
mode = "" >>>>>>> # еще не готово
macro-6 = halui.mdi-command-06 >>>>>>> macro-6 = halui.flood.on
macro-7 = halui.mdi-command-07 >>>>>>> macro-7 = halui.flood.off
stop = halui.program.stop >>>>>>> # так работает
reset = halui.estop.activate >>>>>>> # так работает
[HALUI]
# these are examples, edit as required:
# a halui hal pin is created for each MDI_COMMAND below
# halui.mdi-command-00, halui.mdi-command-01,... etc
MDI_COMMAND=G0 X0
MDI_COMMAND=G0 Y0
MDI_COMMAND=G0 Z0
MDI_COMMAND=G0 A0
MDI_COMMAND= G10 L20 P0 X0
MDI_COMMAND= G10 L20 P0 Y0
MDI_COMMAND= G10 L20 P0 Z0
MDI_COMMAND= G10 L20 P0 A0
MDI_COMMAND=(debug, example: mdi-08)
MDI_COMMAND= M5
Простите ошибки, я иностранец.У моя клавиатура нету "э" и "ы"
Re: С Новым Годом и подарок XHC HB04
слушайте, а может кто-нибудь обхяснить такому, как я, как эта железяка работает?
у меня она не перемешает X Y Z B, а только FEED Override & Spindel Override
показывает координаты только X Y Z и не показывает B
halmeter показывает, что все кнопки работают, импульсы приходят, но перемещания станка нет.
подозреваю, что где-то немного протупил, но подскажите, где?
у меня она не перемешает X Y Z B, а только FEED Override & Spindel Override
показывает координаты только X Y Z и не показывает B
halmeter показывает, что все кнопки работают, импульсы приходят, но перемещания станка нет.
подозреваю, что где-то немного протупил, но подскажите, где?
Re: С Новым Годом и подарок XHC HB04
точнее, в режиме сочлинений перемещения работают, но медленно, а в режиме координат - нет.
в режиме сочлениний вращение маховичка вызывает изменение
halui.axis.0.pos-commanded
а после переключения в режим координат - нет.
посоветуйте, как исправить. у меня стоит gantrykins, может в ней дело?
в режиме сочлениний вращение маховичка вызывает изменение
halui.axis.0.pos-commanded
а после переключения в режим координат - нет.
посоветуйте, как исправить. у меня стоит gantrykins, может в ней дело?