Freesmachine (opnieuw) instellen

LinuxCNC kan hier besproken worden

Moderator: Moderators

deargonaut
Berichten: 191
Lid geworden op: 03 aug 2015 11:18
Locatie: Regio Haarlem
Contacteer:

Freesmachine (opnieuw) instellen

Bericht door deargonaut »

Ha allen!

Het is alweer even geleden dat ik hier iets gepost heb.
De laatste paar maanden heb ik mijn machine (https://www.cnczone.nl/viewtopic.php?f=9&t=12275) voor een groot deel uit elkaar gehaald en samen met iemand die er voor geleerd heeft weer in elkaar gezet.
De boel is mechanisch een stuk stabieler en nauwkeuriger.
Na een paar teststukjes gefreesd te hebben (super snel en mooi resultaat, btw) verspringt het probleem nu van mechanisch naar elektrisch. Het grootste probleem is dat er nu geen terugkoppeling bestaat van de motordrives naar de software; als er dan eentje uitvalt gaat de machine gewoon door, met alle gevolgen van dien. Het ergste is nog wel als één van de (tandem) x-as uitvalt en de ander niet. Ik heb dan ook besloten om de motordrives te veranderen van een chinese leadshine kloon naar volwaardige Leadshines. Dit moet helaas per as, omdat het allemaal niet goedkoop is. Gisteren heb ik de X-assen omgezet.
Vanuit deze opstelling wil ik de assen opnieuw configureren. In een oud topic heb ik DaBit's advies overgenomen (https://www.cnczone.nl/viewtopic.php?f=63&t=8119#p79633)
Mijn Y-as draait nu op 6000 mm/min (=100 mm/s) en een versnelling van 800 m / sec2.
De Z-as op 5000 mm/min (= 85 mm/s) en een versnelling van 600 m / sec2

Nog even kort mijn opstelling:
  • Stalen machine (+/- 2500 kg) met werkbereik van +/- 1600 x 1600 x 500 mm
  • Rails THK, kogelomloopspindels: 25/05
  • LinuxCNC + Mesa 7i76
  • X-as is dubbel uitgevoerd (twee spindels apart aangestuurd vanaf de 7i76)
Nu heb ik een aantal vragen over het instellen:
  1. Het programmaatje waar ik de Y/Z-as mee heb ingesteld werkt niet (direct) voor de dubbele X-as. Hoe kan ik dit dan toch testen...?
  2. Met het instellen van de Z-as klapte de driver er in eerste instantie pas uit 6000 mm/min - 700 m / sec2. Toen ik echter in Axis ging bewegen op die snelheid klapte die er veel sneller uit. Hoe kan dat?
  3. Als ik de instellingen van de Z overneem op de X as en wat heen en weer beweeg in Axis over X dan gaat één van de motortjes zichzelf 'herstellen' als ik stop met bewegen. Dit is natuurlijk niet echt wenselijk als je aan het frezen bent. Moet ik dan de acceleratie omhoog gooien? Of hoe kan ik dit anders instellen?
Er zullen vast nog wel wat vragen bijkomen, maar hiermee zou ik al erg geholpen zijn.
Alvast dank weer! :mrgreen:

Groetjes!
Gebruikersavatar
hugo stoutjesdijk
Donateur
Berichten: 12052
Lid geworden op: 02 mar 2011 17:04
Locatie: elst (u)
Contacteer:

Re: Freesmachine (opnieuw) instellen

Bericht door hugo stoutjesdijk »

deargonaut schreef:als er dan eentje uitvalt gaat de machine gewoon door, met alle gevolgen van dien. Het ergste is nog wel als één van de (tandem) x-as uitvalt en de ander niet. Ik heb dan ook besloten om de motordrives te veranderen van een chinese leadshine kloon naar volwaardige Leadshines.
Is met volwaardige Leadshines dat probleem dan opgelost ?

Ik zou encoders op de assen erbij plaatsen, en een terugkoppeling in LinuxCNC maken.
Dat het kan weet ik, hoe uit te voeren, geen idee. :mrgreen:
Omdat je het alleen als bewaking gebruikt, en er van uitgaande dat als het fout gaat, het echt fout gaat, hoeven die encoders eigenlijk niet eens een heel hoge resolutie te hebben.
Ik ben voor meer techniek op school, maar dan wel vanaf groep 1 basischool.
deargonaut
Berichten: 191
Lid geworden op: 03 aug 2015 11:18
Locatie: Regio Haarlem
Contacteer:

Re: Freesmachine (opnieuw) instellen

Bericht door deargonaut »

hugo stoutjesdijk schreef:
deargonaut schreef:als er dan eentje uitvalt gaat de machine gewoon door, met alle gevolgen van dien. Het ergste is nog wel als één van de (tandem) x-as uitvalt en de ander niet. Ik heb dan ook besloten om de motordrives te veranderen van een chinese leadshine kloon naar volwaardige Leadshines.
Is met volwaardige Leadshines dat probleem dan opgelost ?

Ik zou encoders op de assen erbij plaatsen, en een terugkoppeling in LinuxCNC maken.
Dat het kan weet ik, hoe uit te voeren, geen idee. :mrgreen:
Omdat je het alleen als bewaking gebruikt, en er van uitgaande dat als het fout gaat, het echt fout gaat, hoeven die encoders eigenlijk niet eens een heel hoge resolutie te hebben.
Wat ik misschien nog was vergeten te zeggen: ik gebruik een closed-loop stepper systeem.
De drives hebben een fault / alarm pin die kan direct terug naar linuxcnc. Wanneer die pin getriggerd wordt is ook nog eens te programmeren via RS-232 (de leadshines in elk geval). Verder heb ik meer vertrouwen in vector berekening van de LS, dus ja ik verwacht wel dat de leadshines beter resultaat gaan geven.
Gebruikersavatar
DaBit
Donateur
Berichten: 11040
Lid geworden op: 05 dec 2012 13:48
Locatie: Oss

Re: Freesmachine (opnieuw) instellen

Bericht door DaBit »

deargonaut schreef: Het programmaatje waar ik de Y/Z-as mee heb ingesteld werkt niet (direct) voor de dubbele X-as. Hoe kan ik dit dan toch testen...?
Even je HAL en INI files hier posten zodat wij ze aan kunnen passen voor je.
Met het instellen van de Z-as klapte de driver er in eerste instantie pas uit 6000 mm/min - 700 m / sec2. Toen ik echter in Axis ging bewegen op die snelheid klapte die er veel sneller uit. Hoe kan dat?
Definieer 'veel sneller'. Een procent of 10-20 verschil kun je al gauw hebben als de motor of machine warmer word.
En hoe zit het met je latency? Als AXIS draait heeft de PC meer te doen dan wanneer alleen pncconf draait.
Als ik de instellingen van de Z overneem op de X as en wat heen en weer beweeg in Axis over X dan gaat één van de motortjes zichzelf 'herstellen' als ik stop met bewegen. Dit is natuurlijk niet echt wenselijk als je aan het frezen bent. Moet ik dan de acceleratie omhoog gooien? Of hoe kan ik dit anders instellen?
Wat bedoel je met 'herstellen'?
De belangrijkste wet in de wetenschap: 'hoe minder efficient en hoe meer herrie, hoe leuker het is'
Gebruikersavatar
Breaker
Donateur
Berichten: 1963
Lid geworden op: 26 mei 2015 22:43
Locatie: Nabij Antwerpen
Contacteer:

Re: Freesmachine (opnieuw) instellen

Bericht door Breaker »

deargonaut schreef:Het grootste probleem is dat er nu geen terugkoppeling bestaat van de motordrives naar de software; als er dan eentje uitvalt gaat de machine gewoon door, met alle gevolgen van dien.
deargonaut schreef:Wat ik misschien nog was vergeten te zeggen: ik gebruik een closed-loop stepper systeem.
De drives hebben een fault / alarm pin die kan direct terug naar linuxcnc. Wanneer die pin getriggerd wordt is ook nog eens te programmeren via RS-232 (de leadshines in elk geval).
Die alarm pin aansluiten op de estop van de controller lost dan toch het probleem op?
Geduld is een schone zaak, frezen niet...
deargonaut
Berichten: 191
Lid geworden op: 03 aug 2015 11:18
Locatie: Regio Haarlem
Contacteer:

Re: Freesmachine (opnieuw) instellen

Bericht door deargonaut »

DaBit schreef:Even je HAL en INI files hier posten zodat wij ze aan kunnen passen voor je.

Code: Selecteer alles

# Generated by PNCconf at Fri Jun 16 18:17:36 2017
# If you make changes to this file, they will be
# overwritten when you run PNCconf again

[EMC]
MACHINE = BA_Router
DEBUG = 0

[DISPLAY]
DISPLAY = axis
GLADEVCP = -H gvcp_call_list.hal gvcp-panel.ui
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
MAX_FEED_OVERRIDE = 1.500000
MAX_SPINDLE_OVERRIDE = 1.500000
MIN_SPINDLE_OVERRIDE = 0.500000
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
PROGRAM_PREFIX = /home/heer/linuxcnc/nc_files
INCREMENTS = 100mm 50mm 10mm 5mm 1mm .5mm .1mm .05mm .01mm .005mm
POSITION_FEEDBACK = ACTUAL
DEFAULT_LINEAR_VELOCITY = 66.66667
MAX_LINEAR_VELOCITY = 100
MIN_LINEAR_VELOCITY = 1.666667
DEFAULT_ANGULAR_VELOCITY = 12.000000
MAX_ANGULAR_VELOCITY = 180.000000
MIN_ANGULAR_VELOCITY = 1.666667
EDITOR = gedit
GEOMETRY = xyz

[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
SERVO_PERIOD = 1000000

[HOSTMOT2]
# **** This is for info only ****
# DRIVER0=hm2_pci
# BOARD0=5i25

[HAL]
HALUI = halui
HALFILE = BA_Router.hal
HALFILE = custom.hal
POSTGUI_HALFILE = postgui_call_list.hal
SHUTDOWN = shutdown.hal

[HALUI]

[TRAJ]
AXES = 3
COORDINATES = X Y Z
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
CYCLE_TIME = 0.010
DEFAULT_VELOCITY = 66.66667
MAX_LINEAR_VELOCITY = 100.00
POSITION_FILE = position.txt
NO_FORCE_HOMING = 1

[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = tool.tbl
TOOL_CHANGE_QUILL_UP = 1
RANDOM_TOOLCHANGER = 1

#********************
# Axis X
#********************
[AXIS_0]
TYPE = LINEAR
HOME = 0.0
FERROR = 10.0
MIN_FERROR = 1.0
MAX_VELOCITY = 100
MAX_ACCELERATION = 600.0
# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
STEPGEN_MAXVEL = 83.33
STEPGEN_MAXACCEL = 3125.00
P = 1000.0
I = 0.0
D = 0.0
FF0 = 0.0
FF1 = 1.0
FF2 = 0.0
BIAS = 0.0
DEADBAND = 0.0
MAX_OUTPUT = 0.0
# these are in nanoseconds
DIRSETUP   = 5000
DIRHOLD    = 10000
STEPLEN    = 2500
STEPSPACE  = 2500
STEP_SCALE = 320.0
MIN_LIMIT = -100.0
MAX_LIMIT = 1524.0
HOME_OFFSET = 0.000000
HOME_SEARCH_VEL = -1.000000
HOME_LATCH_VEL = -0.500000
HOME_FINAL_VEL = 0.000000
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = YES

#********************
# Axis Y
#********************
[AXIS_1]
TYPE = LINEAR
HOME = 0.0
FERROR = 10.0
MIN_FERROR = 1.0
MAX_VELOCITY = 100.0
MAX_ACCELERATION = 800.0
# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
STEPGEN_MAXVEL = 125.00
STEPGEN_MAXACCEL = 1000.00
P = 1000.0
I = 0.0
D = 0.0
FF0 = 0.0
FF1 = 1.0
FF2 = 0.0
BIAS = 0.0
DEADBAND = 0.0
MAX_OUTPUT = 0.0
# these are in nanoseconds
DIRSETUP   = 5000
DIRHOLD    = 10000
STEPLEN    = 2500
STEPSPACE  = 2500
STEP_SCALE = 80.0
MIN_LIMIT = -100.0
MAX_LIMIT = 1370.0
HOME_OFFSET = 0.0

#********************
# Axis Z
#********************
[AXIS_2]
TYPE = LINEAR
HOME = 0.0
FERROR = 10.0
MIN_FERROR = 1.0
MAX_VELOCITY = 84.0
MAX_ACCELERATION = 600.0
# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
STEPGEN_MAXVEL = 105.00
STEPGEN_MAXACCEL = 750.00
P = 1000.0
I = 0.0
D = 0.0
FF0 = 0.0
FF1 = 1.0
FF2 = 0.0
BIAS = 0.0
DEADBAND = 0.0
MAX_OUTPUT = 0.0
# these are in nanoseconds
DIRSETUP   = 5000
DIRHOLD    = 10000
STEPLEN    = 2500
STEPSPACE  = 2500
STEP_SCALE = 80.0
MIN_LIMIT = -500
MAX_LIMIT = 5
HOME_OFFSET = 0.0

#********************
# Spindle 
#********************
[SPINDLE_9]
P = 0.0
I = 0.0
D = 0.0
FF0 = 1.0
FF1 = 0.0
FF2 = 0.0
BIAS = 0.0
DEADBAND = 0.0
MAX_OUTPUT = 10000.0
OUTPUT_SCALE = 10000
OUTPUT_MIN_LIMIT = 0
OUTPUT_MAX_LIMIT = 10000
HAL:

Code: Selecteer alles

# Generated by PNCconf at Fri Jun 16 18:17:36 2017
# If you make changes to this file, they will be
# overwritten when you run PNCconf again

loadrt trivkins
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES
loadrt hostmot2
loadrt hm2_pci config=" num_encoders=1 num_pwmgens=0 num_stepgens=5 sserial_port_0=00xxxx" 
setp    hm2_5i25.0.watchdog.timeout_ns 5000000
loadrt pid names=pid.x,pid.y,pid.z,pid.s
loadrt abs names=abs.spindle
loadrt lowpass names=lowpass.spindle

addf hm2_5i25.0.read          servo-thread
addf motion-command-handler   servo-thread
addf motion-controller        servo-thread
addf pid.x.do-pid-calcs       servo-thread
addf pid.y.do-pid-calcs       servo-thread
addf pid.z.do-pid-calcs       servo-thread
addf pid.s.do-pid-calcs       servo-thread
addf abs.spindle              servo-thread
addf lowpass.spindle          servo-thread
addf hm2_5i25.0.write         servo-thread

# external output signals


# external input signals


# --- ESTOP-EXT ---
net estop-ext     <=  hm2_5i25.0.7i76.0.0.input-00

# --- MIN-HOME-X ---
net min-home-x     <=  hm2_5i25.0.7i76.0.0.input-01-not

# --- MAX-X ---
net max-x     <=  hm2_5i25.0.7i76.0.0.input-02-not

# --- SPINDLE-AT-SPEED ---
net spindle-at-speed     <=  hm2_5i25.0.7i76.0.0.input-03

#*******************
#  AXIS X
#*******************

setp   pid.x.Pgain     [AXIS_0]P
setp   pid.x.Igain     [AXIS_0]I
setp   pid.x.Dgain     [AXIS_0]D
setp   pid.x.bias      [AXIS_0]BIAS
setp   pid.x.FF0       [AXIS_0]FF0
setp   pid.x.FF1       [AXIS_0]FF1
setp   pid.x.FF2       [AXIS_0]FF2
setp   pid.x.deadband  [AXIS_0]DEADBAND
setp   pid.x.maxoutput [AXIS_0]MAX_OUTPUT
setp   pid.x.error-previous-target true
setp   pid.x.maxerror .0005

net x-index-enable  <=> pid.x.index-enable
net x-enable        =>  pid.x.enable
net x-pos-cmd       =>  pid.x.command
net x-vel-cmd       =>  pid.x.command-deriv
net x-pos-fb        =>  pid.x.feedback
net x-output        =>  pid.x.output

# Step Gen signals/setup

setp   hm2_5i25.0.stepgen.00.dirsetup        [AXIS_0]DIRSETUP
setp   hm2_5i25.0.stepgen.00.dirhold         [AXIS_0]DIRHOLD
setp   hm2_5i25.0.stepgen.00.steplen         [AXIS_0]STEPLEN
setp   hm2_5i25.0.stepgen.00.stepspace       [AXIS_0]STEPSPACE
setp   hm2_5i25.0.stepgen.00.position-scale  [AXIS_0]STEP_SCALE
setp   hm2_5i25.0.stepgen.00.step_type        0
setp   hm2_5i25.0.stepgen.00.control-type     1
setp   hm2_5i25.0.stepgen.00.maxaccel         [AXIS_0]STEPGEN_MAXACCEL
setp   hm2_5i25.0.stepgen.00.maxvel           [AXIS_0]STEPGEN_MAXVEL

# ---closedloop stepper signals---

net x-pos-cmd    <= axis.0.motor-pos-cmd
net x-vel-cmd    <= axis.0.joint-vel-cmd
net x-output     <= hm2_5i25.0.stepgen.00.velocity-cmd
net x-pos-fb     <= hm2_5i25.0.stepgen.00.position-fb
net x-pos-fb     => axis.0.motor-pos-fb
net x-enable     <= axis.0.amp-enable-out
net x-enable     => hm2_5i25.0.stepgen.00.enable

# Step Gen signals/setup for tandem axis stepper

setp   hm2_5i25.0.stepgen.03.dirsetup        [AXIS_0]DIRSETUP
setp   hm2_5i25.0.stepgen.03.dirhold         [AXIS_0]DIRHOLD
setp   hm2_5i25.0.stepgen.03.steplen         [AXIS_0]STEPLEN
setp   hm2_5i25.0.stepgen.03.stepspace       [AXIS_0]STEPSPACE
setp   hm2_5i25.0.stepgen.03.position-scale  [AXIS_0]STEP_SCALE
setp   hm2_5i25.0.stepgen.03.step_type        0
setp   hm2_5i25.0.stepgen.03.control-type     0
setp   hm2_5i25.0.stepgen.03.maxaccel         [AXIS_0]STEPGEN_MAXACCEL
setp   hm2_5i25.0.stepgen.03.maxvel           [AXIS_0]STEPGEN_MAXVEL
setp    hm2_5i25.0.gpio.006.invert_output false

net x2-pos-fb                            <=  hm2_5i25.0.stepgen.03.position-fb
net x-pos-cmd                            =>  hm2_5i25.0.stepgen.03.position-cmd
net x-enable                             =>  hm2_5i25.0.stepgen.03.enable

# ---setup home / limit switch signals---

net min-home-x     =>  axis.0.home-sw-in
net min-home-x     =>  axis.0.neg-lim-sw-in
net max-x     =>  axis.0.pos-lim-sw-in

#*******************
#  AXIS Y
#*******************

setp   pid.y.Pgain     [AXIS_1]P
setp   pid.y.Igain     [AXIS_1]I
setp   pid.y.Dgain     [AXIS_1]D
setp   pid.y.bias      [AXIS_1]BIAS
setp   pid.y.FF0       [AXIS_1]FF0
setp   pid.y.FF1       [AXIS_1]FF1
setp   pid.y.FF2       [AXIS_1]FF2
setp   pid.y.deadband  [AXIS_1]DEADBAND
setp   pid.y.maxoutput [AXIS_1]MAX_OUTPUT
setp   pid.y.error-previous-target true
setp   pid.y.maxerror .0005

net y-index-enable  <=> pid.y.index-enable
net y-enable        =>  pid.y.enable
net y-pos-cmd       =>  pid.y.command
net y-vel-cmd       =>  pid.y.command-deriv
net y-pos-fb        =>  pid.y.feedback
net y-output        =>  pid.y.output

# Step Gen signals/setup

setp   hm2_5i25.0.stepgen.01.dirsetup        [AXIS_1]DIRSETUP
setp   hm2_5i25.0.stepgen.01.dirhold         [AXIS_1]DIRHOLD
setp   hm2_5i25.0.stepgen.01.steplen         [AXIS_1]STEPLEN
setp   hm2_5i25.0.stepgen.01.stepspace       [AXIS_1]STEPSPACE
setp   hm2_5i25.0.stepgen.01.position-scale  [AXIS_1]STEP_SCALE
setp   hm2_5i25.0.stepgen.01.step_type        0
setp   hm2_5i25.0.stepgen.01.control-type     1
setp   hm2_5i25.0.stepgen.01.maxaccel         [AXIS_1]STEPGEN_MAXACCEL
setp   hm2_5i25.0.stepgen.01.maxvel           [AXIS_1]STEPGEN_MAXVEL

# ---closedloop stepper signals---

net y-pos-cmd    <= axis.1.motor-pos-cmd
net y-vel-cmd    <= axis.1.joint-vel-cmd
net y-output     <= hm2_5i25.0.stepgen.01.velocity-cmd
net y-pos-fb     <= hm2_5i25.0.stepgen.01.position-fb
net y-pos-fb     => axis.1.motor-pos-fb
net y-enable     <= axis.1.amp-enable-out
net y-enable     => hm2_5i25.0.stepgen.01.enable

# ---setup home / limit switch signals---

net y-home-sw     =>  axis.1.home-sw-in
net y-neg-limit     =>  axis.1.neg-lim-sw-in
net y-pos-limit     =>  axis.1.pos-lim-sw-in

#*******************
#  AXIS Z
#*******************

setp   pid.z.Pgain     [AXIS_2]P
setp   pid.z.Igain     [AXIS_2]I
setp   pid.z.Dgain     [AXIS_2]D
setp   pid.z.bias      [AXIS_2]BIAS
setp   pid.z.FF0       [AXIS_2]FF0
setp   pid.z.FF1       [AXIS_2]FF1
setp   pid.z.FF2       [AXIS_2]FF2
setp   pid.z.deadband  [AXIS_2]DEADBAND
setp   pid.z.maxoutput [AXIS_2]MAX_OUTPUT
setp   pid.z.error-previous-target true
setp   pid.z.maxerror .0005

net z-index-enable  <=> pid.z.index-enable
net z-enable        =>  pid.z.enable
net z-pos-cmd       =>  pid.z.command
net z-vel-cmd       =>  pid.z.command-deriv
net z-pos-fb        =>  pid.z.feedback
net z-output        =>  pid.z.output

# Step Gen signals/setup

setp   hm2_5i25.0.stepgen.02.dirsetup        [AXIS_2]DIRSETUP
setp   hm2_5i25.0.stepgen.02.dirhold         [AXIS_2]DIRHOLD
setp   hm2_5i25.0.stepgen.02.steplen         [AXIS_2]STEPLEN
setp   hm2_5i25.0.stepgen.02.stepspace       [AXIS_2]STEPSPACE
setp   hm2_5i25.0.stepgen.02.position-scale  [AXIS_2]STEP_SCALE
setp   hm2_5i25.0.stepgen.02.step_type        0
setp   hm2_5i25.0.stepgen.02.control-type     1
setp   hm2_5i25.0.stepgen.02.maxaccel         [AXIS_2]STEPGEN_MAXACCEL
setp   hm2_5i25.0.stepgen.02.maxvel           [AXIS_2]STEPGEN_MAXVEL
setp    hm2_5i25.0.gpio.004.invert_output true

# ---closedloop stepper signals---

net z-pos-cmd    <= axis.2.motor-pos-cmd
net z-vel-cmd    <= axis.2.joint-vel-cmd
net z-output     <= hm2_5i25.0.stepgen.02.velocity-cmd
net z-pos-fb     <= hm2_5i25.0.stepgen.02.position-fb
net z-pos-fb     => axis.2.motor-pos-fb
net z-enable     <= axis.2.amp-enable-out
net z-enable     => hm2_5i25.0.stepgen.02.enable

# ---setup home / limit switch signals---

net z-home-sw     =>  axis.2.home-sw-in
net z-neg-limit     =>  axis.2.neg-lim-sw-in
net z-pos-limit     =>  axis.2.pos-lim-sw-in

#*******************
#  SPINDLE S
#*******************

setp   pid.s.Pgain     [SPINDLE_9]P
setp   pid.s.Igain     [SPINDLE_9]I
setp   pid.s.Dgain     [SPINDLE_9]D
setp   pid.s.bias      [SPINDLE_9]BIAS
setp   pid.s.FF0       [SPINDLE_9]FF0
setp   pid.s.FF1       [SPINDLE_9]FF1
setp   pid.s.FF2       [SPINDLE_9]FF2
setp   pid.s.deadband  [SPINDLE_9]DEADBAND
setp   pid.s.maxoutput [SPINDLE_9]MAX_OUTPUT
setp   pid.s.error-previous-target true

net spindle-index-enable  <=> pid.s.index-enable
net spindle-enable        =>  pid.s.enable
net spindle-vel-cmd-rpm-abs     => pid.s.command
net spindle-vel-fb-rpm-abs      => pid.s.feedback
net spindle-output        <=  pid.s.output

# ---digital potentionmeter output signals/setup---

setp   hm2_5i25.0.7i76.0.0.spinout-minlim    [SPINDLE_9]OUTPUT_MIN_LIMIT
setp   hm2_5i25.0.7i76.0.0.spinout-maxlim    [SPINDLE_9]OUTPUT_MAX_LIMIT
setp   hm2_5i25.0.7i76.0.0.spinout-scalemax  [SPINDLE_9]OUTPUT_SCALE

net spindle-output      => hm2_5i25.0.7i76.0.0.spinout
net spindle-enable      => hm2_5i25.0.7i76.0.0.spinena
net spindle-ccw         => hm2_5i25.0.7i76.0.0.spindir

# ---setup spindle control signals---

net spindle-vel-cmd-rps        <=  motion.spindle-speed-out-rps
net spindle-vel-cmd-rps-abs    <=  motion.spindle-speed-out-rps-abs
net spindle-vel-cmd-rpm        <=  motion.spindle-speed-out
net spindle-vel-cmd-rpm-abs    <=  motion.spindle-speed-out-abs
net spindle-enable             <=  motion.spindle-on
net spindle-cw                 <=  motion.spindle-forward
net spindle-ccw                <=  motion.spindle-reverse
net spindle-brake              <=  motion.spindle-brake
net spindle-revs               =>  motion.spindle-revs
net spindle-at-speed           =>  motion.spindle-at-speed
net spindle-vel-fb-rps         =>  motion.spindle-speed-in
net spindle-index-enable      <=>  motion.spindle-index-enable


#******************************
# connect miscellaneous signals
#******************************

#  ---HALUI signals---

net joint-select-a        halui.joint.0.select
net x-is-homed            halui.joint.0.is-homed
net jog-x-pos             halui.jog.0.plus
net jog-x-neg             halui.jog.0.minus
net jog-x-analog          halui.jog.0.analog
net joint-select-b        halui.joint.1.select
net y-is-homed            halui.joint.1.is-homed
net jog-y-pos             halui.jog.1.plus
net jog-y-neg             halui.jog.1.minus
net jog-y-analog          halui.jog.1.analog
net joint-select-c        halui.joint.2.select
net z-is-homed            halui.joint.2.is-homed
net jog-z-pos             halui.jog.2.plus
net jog-z-neg             halui.jog.2.minus
net jog-z-analog          halui.jog.2.analog
net jog-selected-pos      halui.jog.selected.plus
net jog-selected-neg      halui.jog.selected.minus
net spindle-manual-cw     halui.spindle.forward
net spindle-manual-ccw    halui.spindle.reverse
net spindle-manual-stop   halui.spindle.stop
net machine-is-on         halui.machine.is-on
net jog-speed             halui.jog-speed 
net MDI-mode              halui.mode.is-mdi

#  ---coolant signals---

net coolant-mist      <=  iocontrol.0.coolant-mist
net coolant-flood     <=  iocontrol.0.coolant-flood

#  ---probe signal---

net probe-in     =>  motion.probe-input

#  ---motion control signals---

net in-position               <=  motion.in-position
net machine-is-enabled        <=  motion.motion-enabled

#  ---digital in / out signals---

#  ---estop signals---

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

#  ---manual tool change signals---

loadusr -W hal_manualtoolchange
net tool-change-request     iocontrol.0.tool-change       =>  hal_manualtoolchange.change
net tool-change-confirmed   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
DaBit schreef: Definieer 'veel sneller'. Een procent of 10-20 verschil kun je al gauw hebben als de motor of machine warmer word.
En hoe zit het met je latency? Als AXIS draait heeft de PC meer te doen dan wanneer alleen pncconf draait.
Eigenlijk direct... Ik heb zoals jij beschreef in dat andere topic net zo lang met snelheid gepushed (tot de 6000 mm/min, harder mag niet van PnConfig) en daarna de acceleratie totdat de driver het welletjes vond. Van die waarde 75% genomen, zoals jij beschreef. ik dan (continous) jog vind de drive het wel snel genoeg en springt in alarm.

Hoe zit het trouwens sowieso met verschillende maximale feedrates? Y kan sneller dan Z en Z waarschijnlijk weer sneller dan X. Met het cam gedeelte moet ik dan uitgaan van de laagste waarde? of compenseert LinuxCNC dit zelf?
DaBit schreef:Wat bedoel je met 'herstellen'?
Ik wilde hier een filmpje van maken, maar natuurlijk deed ie het nu niet meer ;-)
Wat er volgens mij gebeurde: Een van de twee assen verliest stapjes... Zodra 'ie dan geen stapjes meer binnen krijgt (cq. moet stilstaan) gaat ie de verloren stappen herstellen. Het geluid en de bewging gaan een soort van:

Code: Selecteer alles

------------------------------[stop]---------------- -------- --------- ---- ---- --- -- - -
Maakt dit het duidelijker? :roll:
Breaker schreef: Die alarm pin aansluiten op de estop van de controller lost dan toch het probleem op?
Zeker, maar dan moeten die pinnen wel betrouwbaar zijn dat is met die klonen niet het geval. ;-)

Thanks!
deargonaut
Berichten: 191
Lid geworden op: 03 aug 2015 11:18
Locatie: Regio Haarlem
Contacteer:

Re: Freesmachine (opnieuw) instellen

Bericht door deargonaut »

Het e.e.a. werkt inmiddels.
Ik heb Linux 2.7.9 geinstalleerd, maar de WXHC-HB04 pendant blijkt ineens niet meer te werken.
Is dit een bekend probleem? Ik kan er namelijk niets over vinden.

Ik krijg deze error:

Code: Selecteer alles

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
Found file(lib): /usr/share/linuxcnc/hallib/xhc-hb04.tcl
Shutting down and cleaning up LinuxCNC...
Running HAL shutdown script
Killing task linuxcncsvr, PID=15972
xhc-hb04: waiting for XHC-HB04 device
xhc-hb04: found XHC-HB04 device
xhc-hb04: connection lost, cleaning up
[timestamp] [threadID] facility level [function call] <message>
--------------------------------------------------------------------------------
Removing HAL_LIB, RTAPI, and Real Time OS modules
Removing NML shared memory segments

Debug file information:
xhc-hb04.tcl: using std_start_pause_button
missing operator at _@_
in expression "600.0 _@_800.0"
    (parsing expression "600.0 800.0")
    invoked from within
"expr {600.0 800.0}"
    ("uplevel" body line 1)
    invoked from within
"uplevel [list expr $v]"
    (procedure "setp" line 2)
    invoked from within
"setp pendant_util.amux$idx-in0 $std_accel"
    (procedure "wheel_setup" line 134)
    invoked from within
"wheel_setup  $::XHC_HB04_CONFIG(jogmode)"
    invoked from within
"if { ![namespace exists ::tp] || ([::tp::passnumber] != 0) } {
  connect_pins    ;# per ini file items: [XHC_HB04_BUTTONS]buttonname=pin
  wheel_setup..."
    (file "/usr/share/linuxcnc/hallib/xhc-hb04.tcl" line 556)
    invoked from within
"source $filename"
    invoked from within
"set result [source $filename]"
    (file "/usr/bin/haltcl" line 55)
15972
  PID TTY      STAT   TIME COMMAND
Stopping realtime threads
Unloading hal components
[ 0.000000] [00003e92] libusbx: error [do_close] Device handle closed while transfer was still being processed, but the device is still connected as far as we know
[ 0.000019] [00003e92] libusbx: warning [do_close] A cancellation for an in-flight transfer hasn't completed but closing the device handle
Heeft iemand enig idee? Want ik weet niet zo goed meer waar ik het zoeken moet...
Gebruikersavatar
DaBit
Donateur
Berichten: 11040
Lid geworden op: 05 dec 2012 13:48
Locatie: Oss

Re: Freesmachine (opnieuw) instellen

Bericht door DaBit »

Code: Selecteer alles

xhc-hb04: connection lost, cleaning up
Die is vaag.

Tik eens zonder dat LinuxCNC draait in een terminalvenstertje 'xhc-hb04' in gevolgd door enter, en kijk eens of dat wel werkt?
En als je dmesg intikt, zie je dan nog iets langskomen dat betrekking heeft op die XHC-HB04?
De belangrijkste wet in de wetenschap: 'hoe minder efficient en hoe meer herrie, hoe leuker het is'
deargonaut
Berichten: 191
Lid geworden op: 03 aug 2015 11:18
Locatie: Regio Haarlem
Contacteer:

Re: Freesmachine (opnieuw) instellen

Bericht door deargonaut »

DaBit schreef:

Code: Selecteer alles

xhc-hb04: connection lost, cleaning up
Die is vaag.

Tik eens zonder dat LinuxCNC draait in een terminalvenstertje 'xhc-hb04' in gevolgd door enter, en kijk eens of dat wel werkt?
En als je dmesg intikt, zie je dan nog iets langskomen dat betrekking heeft op die XHC-HB04?
Ja die werkt prima.

dmesg geeft:

Code: Selecteer alles

[18339.032160] usb 1-1.2: new full-speed USB device number 19 using ehci_hcd
[18339.124885] usb 1-1.2: New USB device found, idVendor=10ce, idProduct=eb70
[18339.124890] usb 1-1.2: New USB device strings: Mfr=1, Product=0, SerialNumber=0
[18339.124894] usb 1-1.2: Manufacturer: KTURT.LTD
[18339.126251] generic-usb 0003:10CE:EB70.000A: hiddev0,hidraw1: USB HID v1.10 Device [KTURT.LTD] on usb-0000:00:1a.0-1.2/input0
Niet echt iets specifieks... maar die xhc-hb04 doet het wel...
Gebruikersavatar
DaBit
Donateur
Berichten: 11040
Lid geworden op: 05 dec 2012 13:48
Locatie: Oss

Re: Freesmachine (opnieuw) instellen

Bericht door DaBit »

En die xhc-hb04 demo config? Doet die het?
De belangrijkste wet in de wetenschap: 'hoe minder efficient en hoe meer herrie, hoe leuker het is'
deargonaut
Berichten: 191
Lid geworden op: 03 aug 2015 11:18
Locatie: Regio Haarlem
Contacteer:

Re: Freesmachine (opnieuw) instellen

Bericht door deargonaut »

DaBit schreef:En die xhc-hb04 demo config? Doet die het?
Ja dat is geen probleem. Ik kan ook een sim conf laden en dat werkt ook...
Ik vermoed dat eea fout gaat bij het updaten naar linux 2.7.9. Mijn spindle doet ook raar namelijk, maar als ik die configs naast elkaar leg zijn ze allebei hetzelfde.

Edit PS: spindle doet t weer.
deargonaut
Berichten: 191
Lid geworden op: 03 aug 2015 11:18
Locatie: Regio Haarlem
Contacteer:

Re: Freesmachine (opnieuw) instellen

Bericht door deargonaut »

Na wat geklooi heb ik iets meer info.
Als ik de CLI xhc-hb04 laat lopen en vervolgens linuxcnc opstart krijg ik de volgende errors

Code: Selecteer alles

[213.343543] [000014eb] libusbx: error [submit_bulk_transfer] submiturb failed error -1 errno=16
[213.343563] [000014eb] libusbx: error [submit_control_transfer] submiturb failed error -1 errno=16
[213.343571] [000014eb] libusbx: error [submit_control_transfer] submiturb failed error -1 errno=16
[213.343578] [000014eb] libusbx: error [submit_control_transfer] submiturb failed error -1 errno=16
[213.343585] [000014eb] libusbx: error [submit_control_transfer] submiturb failed error -1 errno=16
[213.343592] [000014eb] libusbx: error [submit_control_transfer] submiturb failed error -1 errno=16
[213.343599] [000014eb] libusbx: error [submit_control_transfer] submiturb failed error -1 errno=16
xhc-hb04: connection lost, cleaning up
[213.343607] [000014eb] libusbx: error [op_release_interface] release interface failed, error -1 errno 22
xhc-hb04: waiting for XHC-HB04 device
xhc-hb04: found XHC-HB04 device
Ik snap dit nog steeds niet... Maar wellicht iemand wel? :roll:
deargonaut
Berichten: 191
Lid geworden op: 03 aug 2015 11:18
Locatie: Regio Haarlem
Contacteer:

Re: Freesmachine (opnieuw) instellen

Bericht door deargonaut »

Ja het is gefixed.
Het bleek te liggen aan dat er meerdere MAX_ACCELERATION ingesteld waren.
Ik had:

Code: Selecteer alles

[AXIS_0]MAX_ACCELERATION = 600
...
[AXIS_1]MAX_ACCELERATION = 800
En dit snapt ie niet...
Gebruikersavatar
serum
Berichten: 5412
Lid geworden op: 08 mar 2008 20:37
Locatie: Zwolle

Re: Freesmachine (opnieuw) instellen

Bericht door serum »

Zou je zo toch zeggen dat je per as een acceleratie op kan geven? hoe moet je dit dan doen bij linuxcnc?
Plaats reactie