Mesa 7i95
09 Oct 2021 21:24 - 09 Oct 2021 21:28 #222692
by PCW
That does not make any sense really, you should get an immediate
error on disconnection:
hm2/hm2_7i95.0: error finishing read! iter=6015
and if you were moving or tried to move, an immediate following error:
joint 2 following error
emc/task/taskintf.cc 948: Error on joint 2, command number 131
error on disconnection:
hm2/hm2_7i95.0: error finishing read! iter=6015
and if you were moving or tried to move, an immediate following error:
joint 2 following error
emc/task/taskintf.cc 948: Error on joint 2, command number 131
Last edit: 09 Oct 2021 21:28 by PCW.
Please Log in or Create an account to join the conversation.
10 Oct 2021 07:03 #222717
by mittim
This is what my readhmid gives out:
Configuration Name: HOSTMOT2
General configuration information:
BoardName : MESA7I95
FPGA Size: 9 KGates
FPGA Pins: 144
Number of IO Ports: 2
Width of one I/O port: 29
Clock Low frequency: 100.0000 MHz
Clock High frequency: 200.0000 MHz
IDROM Type: 3
Instance Stride 0: 4
Instance Stride 1: 64
Register Stride 0: 256
Register Stride 1: 256
Modules in configuration:
Module: DPLL
There are 1 of DPLL in configuration
Version: 0
Registers: 7
BaseAddress: 7000
ClockFrequency: 100.000 MHz
Register Stride: 256 bytes
Instance Stride: 4 bytes
Module: WatchDog
There are 1 of WatchDog in configuration
Version: 0
Registers: 3
BaseAddress: 0C00
ClockFrequency: 100.000 MHz
Register Stride: 256 bytes
Instance Stride: 4 bytes
Module: IOPort
There are 2 of IOPort in configuration
Version: 0
Registers: 5
BaseAddress: 1000
ClockFrequency: 100.000 MHz
Register Stride: 256 bytes
Instance Stride: 4 bytes
Module: MuxedQCount
There are 6 of MuxedQCount in configuration
Version: 3
Registers: 5
BaseAddress: 3600
ClockFrequency: 100.000 MHz
Register Stride: 256 bytes
Instance Stride: 4 bytes
Module: MuxedQCountSel
There are 1 of MuxedQCountSel in configuration
Version: 0
Registers: 0
BaseAddress: 0000
ClockFrequency: 100.000 MHz
Register Stride: 256 bytes
Instance Stride: 4 bytes
Module: SSerial
There are 1 of SSerial in configuration
Version: 0
Registers: 6
BaseAddress: 5B00
ClockFrequency: 100.000 MHz
Register Stride: 256 bytes
Instance Stride: 64 bytes
Module: StepGen
There are 6 of StepGen in configuration
Version: 2
Registers: 10
BaseAddress: 2000
ClockFrequency: 100.000 MHz
Register Stride: 256 bytes
Instance Stride: 4 bytes
Module: SSR
There are 1 of SSR in configuration
Version: 0
Registers: 2
BaseAddress: 7D00
ClockFrequency: 100.000 MHz
Register Stride: 256 bytes
Instance Stride: 4 bytes
Module: InMux
There are 1 of InMux in configuration
Version: 0
Registers: 5
BaseAddress: 8000
ClockFrequency: 100.000 MHz
Register Stride: 256 bytes
Instance Stride: 4 bytes
Module: LED
There are 1 of LED in configuration
Version: 0
Registers: 1
BaseAddress: 0200
ClockFrequency: 100.000 MHz
Register Stride: 256 bytes
Instance Stride: 4 bytes
Configuration pin-out:
IO Connections for Step/DIR+Serial+Encoders
Pin# I/O Pri. func Sec. func Chan Pin func Pin Dir
TB3-2,3 0 IOPort StepGen 0 Step/Table1 (Out)
TB3-4,5 1 IOPort StepGen 0 Dir/Table2 (Out)
TB3-8,9 2 IOPort StepGen 1 Step/Table1 (Out)
TB3-10,11 3 IOPort StepGen 1 Dir/Table2 (Out)
TB3-14,15 4 IOPort StepGen 2 Step/Table1 (Out)
TB3-16,17 5 IOPort StepGen 2 Dir/Table2 (Out)
TB3-20,21 6 IOPort StepGen 3 Step/Table1 (Out)
TB3-22,23 7 IOPort StepGen 3 Dir/Table2 (Out)
TB4-2,3 8 IOPort StepGen 4 Step/Table1 (Out)
TB4-4,5 9 IOPort StepGen 4 Dir/Table2 (Out)
TB4-8,9 10 IOPort StepGen 5 Step/Table1 (Out)
TB4-10,11 11 IOPort StepGen 5 Dir/Table2 (Out)
TB2-14,15 12 IOPort SSerial 0 RXData0 (In)
TB4-16,17 13 IOPort SSerial 0 TXData0 (Out)
Internal 14 IOPort SSerial 0 TXEn0 (Out)
TB4-20,21 15 IOPort SSerial 0 RXData1 (In)
TB4-22,23 16 IOPort SSerial 0 TXData1 (Out)
Internal 17 IOPort SSerial 0 TXEn1 (Out)
TB1-1,2,9,10 18 IOPort MuxedQCount 0 MuxQ-A (In)
TB1-4,5,12,13 19 IOPort MuxedQCount 0 MuxQ-B (In)
TB1-7,8,15,16 20 IOPort MuxedQCount 0 MuxQ-IDX (In)
TB1-17,18 TB2-1,2 21 IOPort MuxedQCount 1 MuxQ-A (In)
TB1-20,21 TB2-4,5 22 IOPort MuxedQCount 1 MuxQ-B (In)
TB1-23,24,TB2-7,8 23 IOPort MuxedQCount 1 MuxQ-IDX (In)
TB2-9,10,17,18 24 IOPort MuxedQCount 2 MuxQ-A (In)
TB2-11,12,20,21 25 IOPort MuxedQCount 2 MuxQ-B (In)
TB2-15,16,23,24 26 IOPort MuxedQCount 2 MuxQ-IDX (In)
Internal 27 IOPort MuxedQCountSel 0 MuxSel0 (Out)
Internal 28 IOPort InMux 0 Addr0 (Out)
IO Connections for I/O+Expansion
Pin# I/O Pri. func Sec. func Chan Pin func Pin Dir
Internal 29 IOPort InMux 0 Addr1 (Out)
Internal 30 IOPort InMux 0 Addr2 (Out)
Internal 31 IOPort InMux 0 Addr3 (Out)
Internal 32 IOPort InMux 0 Addr4 (Out)
Internal 33 IOPort InMux 0 Data0 (In)
TB3 13,14 34 IOPort SSR 0 Out-00 (Out)
TB3 15,16 35 IOPort SSR 0 Out-01 (Out)
TB3 17,18 36 IOPort SSR 0 Out-02 (Out)
TB3-19,20 37 IOPort SSR 0 Out-03 (Out)
TB3-21,22 38 IOPort SSR 0 Out-04 (Out)
TB3-23,24 39 IOPort SSR 0 Out-05 (Out)
Internal 40 IOPort SSR 0 AC Ref (Out)
P1-01/DB25-01 41 IOPort None
P1-02/DB25-14 42 IOPort None
P1-03/DB25-02 43 IOPort None
P1-04/DB25-15 44 IOPort None
P1-05/DB25-03 45 IOPort None
P1-06/DB25-16 46 IOPort None
P1-07/DB25-04 47 IOPort None
P1-08/DB25-17 48 IOPort None
P1-09/DB25-05 49 IOPort None
P1-11/DB25-06 50 IOPort None
P1-13/DB25-07 51 IOPort None
P1-15/DB25-08 52 IOPort None
P1-17/DB25-09 53 IOPort None
P1-19/DB25-10 54 IOPort None
P1-21/DB25-11 55 IOPort None
P1-23/DB25-12 56 IOPort None
P1-25/DB25-13 57 IOPort None
Please Log in or Create an account to join the conversation.
10 Oct 2021 11:52 #222741
by mittim
I am currently trying to edit the .hal and .ini to my gantry style Y-Axes. Y on joint1 and Y2 on joint2. Motor connected to joint1 does move, while motor on joint2 does not. Also there is no movement in the DRO when moving Y.
# Erstellt von PNCconf am Sun Oct 10 09:27:11 2021
# Using LinuxCNC version: Master (2.9)
# Änderungen an dieser Datei werden beim nächsten
# overwritten when you run PNCconf again
loadrt [KINS]KINEMATICS
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS
loadrt hostmot2
loadrt hm2_eth board_ip="192.168.1.121" config=" num_encoders=1 num_pwmgens=0 num_stepgens=6 sserial_port_0=0xxxxx"
setp hm2_7i95.0.watchdog.timeout_ns 5000000
loadrt pid names=pid.x,pid.y,pid.y2,pid.z,pid.a,pid.c,pid.s
addf hm2_7i95.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.y2.do-pid-calcs servo-thread
addf pid.z.do-pid-calcs servo-thread
addf pid.a.do-pid-calcs servo-thread
addf pid.s.do-pid-calcs servo-thread
addf hm2_7i95.0.write servo-thread
# external output signals
# external input signals
#*******************
# AXIS X JOINT 0
#*******************
setp pid.x.Pgain [JOINT_0]P
setp pid.x.Igain [JOINT_0]I
setp pid.x.Dgain [JOINT_0]D
setp pid.x.bias [JOINT_0]BIAS
setp pid.x.FF0 [JOINT_0]FF0
setp pid.x.FF1 [JOINT_0]FF1
setp pid.x.FF2 [JOINT_0]FF2
setp pid.x.deadband [JOINT_0]DEADBAND
setp pid.x.maxoutput [JOINT_0]MAX_OUTPUT
setp pid.x.error-previous-target true
# This setting is to limit bogus stepgen
# velocity corrections caused by position
# feedback sample time jitter.
setp pid.x.maxerror 0.012700
net x-index-enable <=> pid.x.index-enable
net x-enable => pid.x.enable
net x-pos-cmd => pid.x.command
net x-pos-fb => pid.x.feedback
net x-output <= pid.x.output
# Step Gen signals/setup
setp hm2_7i95.0.stepgen.00.dirsetup [JOINT_0]DIRSETUP
setp hm2_7i95.0.stepgen.00.dirhold [JOINT_0]DIRHOLD
setp hm2_7i95.0.stepgen.00.steplen [JOINT_0]STEPLEN
setp hm2_7i95.0.stepgen.00.stepspace [JOINT_0]STEPSPACE
setp hm2_7i95.0.stepgen.00.position-scale [JOINT_0]STEP_SCALE
setp hm2_7i95.0.stepgen.00.step_type 0
setp hm2_7i95.0.stepgen.00.control-type 1
setp hm2_7i95.0.stepgen.00.maxaccel [JOINT_0]STEPGEN_MAXACCEL
setp hm2_7i95.0.stepgen.00.maxvel [JOINT_0]STEPGEN_MAXVEL
# ---closedloop stepper signals---
net x-pos-cmd <= joint.0.motor-pos-cmd
net x-vel-cmd <= joint.0.vel-cmd
net x-output <= hm2_7i95.0.stepgen.00.velocity-cmd
net x-pos-fb <= hm2_7i95.0.stepgen.00.position-fb
net x-pos-fb => joint.0.motor-pos-fb
net x-enable <= joint.0.amp-enable-out
net x-enable => hm2_7i95.0.stepgen.00.enable
# ---setup home / limit switch signals---
net x-home-sw => joint.0.home-sw-in
net x-neg-limit => joint.0.neg-lim-sw-in
net x-pos-limit => joint.0.pos-lim-sw-in
#*******************
# AXIS Y JOINT 1
#*******************
setp pid.y.Pgain [JOINT_1]P
setp pid.y.Igain [JOINT_1]I
setp pid.y.Dgain [JOINT_1]D
setp pid.y.bias [JOINT_1]BIAS
setp pid.y.FF0 [JOINT_1]FF0
setp pid.y.FF1 [JOINT_1]FF1
setp pid.y.FF2 [JOINT_1]FF2
setp pid.y.deadband [JOINT_1]DEADBAND
setp pid.y.maxoutput [JOINT_1]MAX_OUTPUT
setp pid.y.error-previous-target true
# This setting is to limit bogus stepgen
# velocity corrections caused by position
# feedback sample time jitter.
setp pid.y.maxerror 0.012700
net y-index-enable <=> pid.y.index-enable
net y-enable => pid.y.enable
net y-pos-cmd => pid.y.command
net y-pos-fb => pid.y.feedback
net y-output <= pid.y.output
# Step Gen signals/setup
setp hm2_7i95.0.stepgen.01.dirsetup [JOINT_1]DIRSETUP
setp hm2_7i95.0.stepgen.01.dirhold [JOINT_1]DIRHOLD
setp hm2_7i95.0.stepgen.01.steplen [JOINT_1]STEPLEN
setp hm2_7i95.0.stepgen.01.stepspace [JOINT_1]STEPSPACE
setp hm2_7i95.0.stepgen.01.position-scale [JOINT_1]STEP_SCALE
setp hm2_7i95.0.stepgen.01.step_type 0
setp hm2_7i95.0.stepgen.01.control-type 1
setp hm2_7i95.0.stepgen.01.maxaccel [JOINT_1]STEPGEN_MAXACCEL
setp hm2_7i95.0.stepgen.01.maxvel [JOINT_1]STEPGEN_MAXVEL
# ---closedloop stepper signals---
net y-pos-cmd <= joint.1.motor-pos-cmd
net y-vel-cmd <= joint.1.vel-cmd
net y-output <= hm2_7i95.0.stepgen.01.velocity-cmd
net y-pos-fb <= hm2_7i95.0.stepgen.01.position-fb
net y-pos-fb => joint.1.motor-pos-fb
net y-enable <= joint.1.amp-enable-out
net y-enable => hm2_7i95.0.stepgen.01.enable
# ---setup home / limit switch signals---
net y-home-sw => joint.1.home-sw-in
net y-neg-limit => joint.1.neg-lim-sw-in
net y-pos-limit => joint.1.pos-lim-sw-in
#*******************
# AXIS Y JOINT 2
#*******************
setp pid.y2.Pgain [JOINT_2]P
setp pid.y2.Igain [JOINT_2]I
setp pid.y2.Dgain [JOINT_2]D
setp pid.y2.bias [JOINT_2]BIAS
setp pid.y2.FF0 [JOINT_2]FF0
setp pid.y2.FF1 [JOINT_2]FF1
setp pid.y2.FF2 [JOINT_2]FF2
setp pid.y2.deadband [JOINT_2]DEADBAND
setp pid.y2.maxoutput [JOINT_2]MAX_OUTPUT
setp pid.y2.error-previous-target true
# This setting is to limit bogus stepgen
# velocity corrections caused by position
# feedback sample time jitter.
setp pid.y2.maxerror 0.012700
net y2-index-enable <=> pid.y2.index-enable
net y2-enable => pid.y2.enable
net y2-pos-cmd => pid.y2.command
net y2-pos-fb => pid.y2.feedback
net y2-output <= pid.y2.output
# Step Gen signals/setup
setp hm2_7i95.0.stepgen.02.dirsetup [JOINT_2]DIRSETUP
setp hm2_7i95.0.stepgen.02.dirhold [JOINT_2]DIRHOLD
setp hm2_7i95.0.stepgen.02.steplen [JOINT_2]STEPLEN
setp hm2_7i95.0.stepgen.02.stepspace [JOINT_2]STEPSPACE
setp hm2_7i95.0.stepgen.02.position-scale [JOINT_2]STEP_SCALE
setp hm2_7i95.0.stepgen.02.step_type 0
setp hm2_7i95.0.stepgen.02.control-type 1
setp hm2_7i95.0.stepgen.02.maxaccel [JOINT_2]STEPGEN_MAXACCEL
setp hm2_7i95.0.stepgen.02.maxvel [JOINT_2]STEPGEN_MAXVEL
# ---closedloop stepper signals---
net y2-pos-cmd <= joint.2.motor-pos-cmd
net y2-vel-cmd <= joint.2.vel-cmd
net y2-output <= hm2_7i95.0.stepgen.02.velocity-cmd
net y2-pos-fb <= hm2_7i95.0.stepgen.02.position-fb
net y2-pos-fb => joint.2.motor-pos-fb
net y2-enable <= joint.2.amp-enable-out
net y2-enable => hm2_7i95.0.stepgen.02.enable
# ---setup home / limit switch signals---
net y2-home-sw => joint.2.home-sw-in
net y2-neg-limit => joint.2.neg-lim-sw-in
net y2-pos-limit => joint.2.pos-lim-sw-in
#*******************
# AXIS Z JOINT 3
#*******************
setp pid.z.Pgain [JOINT_3]P
setp pid.z.Igain [JOINT_3]I
setp pid.z.Dgain [JOINT_3]D
setp pid.z.bias [JOINT_3]BIAS
setp pid.z.FF0 [JOINT_3]FF0
setp pid.z.FF1 [JOINT_3]FF1
setp pid.z.FF2 [JOINT_3]FF2
setp pid.z.deadband [JOINT_3]DEADBAND
setp pid.z.maxoutput [JOINT_3]MAX_OUTPUT
setp pid.z.error-previous-target true
# This setting is to limit bogus stepgen
# velocity corrections caused by position
# feedback sample time jitter.
setp pid.z.maxerror 0.012700
net z-index-enable <=> pid.z.index-enable
net z-enable => pid.z.enable
net z-pos-cmd => pid.z.command
net z-pos-fb => pid.z.feedback
net z-output <= pid.z.output
# Step Gen signals/setup
setp hm2_7i95.0.stepgen.03.dirsetup [JOINT_3]DIRSETUP
setp hm2_7i95.0.stepgen.03.dirhold [JOINT_3]DIRHOLD
setp hm2_7i95.0.stepgen.03.steplen [JOINT_3]STEPLEN
setp hm2_7i95.0.stepgen.03.stepspace [JOINT_3]STEPSPACE
setp hm2_7i95.0.stepgen.03.position-scale [JOINT_3]STEP_SCALE
setp hm2_7i95.0.stepgen.03.step_type 0
setp hm2_7i95.0.stepgen.03.control-type 1
setp hm2_7i95.0.stepgen.03.maxaccel [JOINT_3]STEPGEN_MAXACCEL
setp hm2_7i95.0.stepgen.03.maxvel [JOINT_3]STEPGEN_MAXVEL
# ---closedloop stepper signals---
net z-pos-cmd <= joint.3.motor-pos-cmd
net z-vel-cmd <= joint.3.vel-cmd
net z-output <= hm2_7i95.0.stepgen.03.velocity-cmd
net z-pos-fb <= hm2_7i95.0.stepgen.03.position-fb
net z-pos-fb => joint.3.motor-pos-fb
net z-enable <= joint.3.amp-enable-out
net z-enable => hm2_7i95.0.stepgen.03.enable
# ---setup home / limit switch signals---
net z-home-sw => joint.3.home-sw-in
net z-neg-limit => joint.3.neg-lim-sw-in
net z-pos-limit => joint.3.pos-lim-sw-in
#*******************
# AXIS A JOINT 4
#*******************
setp pid.a.Pgain [JOINT_4]P
setp pid.a.Igain [JOINT_4]I
setp pid.a.Dgain [JOINT_4]D
setp pid.a.bias [JOINT_4]BIAS
setp pid.a.FF0 [JOINT_4]FF0
setp pid.a.FF1 [JOINT_4]FF1
setp pid.a.FF2 [JOINT_4]FF2
setp pid.a.deadband [JOINT_4]DEADBAND
setp pid.a.maxoutput [JOINT_4]MAX_OUTPUT
setp pid.a.error-previous-target true
# This setting is to limit bogus stepgen
# velocity corrections caused by position
# feedback sample time jitter.
setp pid.a.maxerror 0.012700
net a-index-enable <=> pid.a.index-enable
net a-enable => pid.a.enable
net a-pos-cmd => pid.a.command
net a-pos-fb => pid.a.feedback
net a-output <= pid.a.output
# Step Gen signals/setup
setp hm2_7i95.0.stepgen.04.dirsetup [JOINT_4]DIRSETUP
setp hm2_7i95.0.stepgen.04.dirhold [JOINT_4]DIRHOLD
setp hm2_7i95.0.stepgen.04.steplen [JOINT_4]STEPLEN
setp hm2_7i95.0.stepgen.04.stepspace [JOINT_4]STEPSPACE
setp hm2_7i95.0.stepgen.04.position-scale [JOINT_4]STEP_SCALE
setp hm2_7i95.0.stepgen.04.step_type 0
setp hm2_7i95.0.stepgen.04.control-type 1
setp hm2_7i95.0.stepgen.04.maxaccel [JOINT_4]STEPGEN_MAXACCEL
setp hm2_7i95.0.stepgen.04.maxvel [JOINT_4]STEPGEN_MAXVEL
# ---closedloop stepper signals---
net a-pos-cmd <= joint.4.motor-pos-cmd
net a-vel-cmd <= joint.4.vel-cmd
net a-output <= hm2_7i95.0.stepgen.04.velocity-cmd
net a-pos-fb <= hm2_7i95.0.stepgen.04.position-fb
net a-pos-fb => joint.4.motor-pos-fb
net a-enable <= joint.4.amp-enable-out
net a-enable => hm2_7i95.0.stepgen.04.enable
# ---setup home / limit switch signals---
net a-home-sw => joint.4.home-sw-in
net a-neg-limit => joint.4.neg-lim-sw-in
net a-pos-limit => joint.4.pos-lim-sw-in
#*******************
# AXIS C JOINT 5
#*******************
setp pid.c.Pgain [JOINT_5]P
setp pid.c.Igain [JOINT_5]I
setp pid.c.Dgain [JOINT_5]D
setp pid.c.bias [JOINT_5]BIAS
setp pid.c.FF0 [JOINT_5]FF0
setp pid.c.FF1 [JOINT_5]FF1
setp pid.c.FF2 [JOINT_5]FF2
setp pid.c.deadband [JOINT_5]DEADBAND
setp pid.c.maxoutput [JOINT_5]MAX_OUTPUT
setp pid.c.error-previous-target true
# This setting is to limit bogus stepgen
# velocity corrections caused by position
# feedback sample time jitter.
setp pid.c.maxerror 0.012700
net c-index-enable <=> pid.c.index-enable
net c-enable => pid.c.enable
net c-pos-cmd => pid.c.command
net c-pos-fb => pid.c.feedback
net c-output <= pid.c.output
# Step Gen signals/setup
setp hm2_7i95.0.stepgen.05.dirsetup [JOINT_5]DIRSETUP
setp hm2_7i95.0.stepgen.05.dirhold [JOINT_5]DIRHOLD
setp hm2_7i95.0.stepgen.05.steplen [JOINT_5]STEPLEN
setp hm2_7i95.0.stepgen.05.stepspace [JOINT_5]STEPSPACE
setp hm2_7i95.0.stepgen.05.position-scale [JOINT_5]STEP_SCALE
setp hm2_7i95.0.stepgen.05.step_type 0
setp hm2_7i95.0.stepgen.05.control-type 1
setp hm2_7i95.0.stepgen.05.maxaccel [JOINT_5]STEPGEN_MAXACCEL
setp hm2_7i95.0.stepgen.05.maxvel [JOINT_5]STEPGEN_MAXVEL
# ---closedloop stepper signals---
net c-pos-cmd <= joint.5.motor-pos-cmd
net c-vel-cmd <= joint.5.vel-cmd
net c-output <= hm2_7i95.0.stepgen.05.velocity-cmd
net c-pos-fb <= hm2_7i95.0.stepgen.05.position-fb
net c-pos-fb => joint.5.motor-pos-fb
net c-enable <= joint.5.amp-enable-out
net c-enable => hm2_7i95.0.stepgen.05.enable
# ---setup home / limit switch signals---
net c-home-sw => joint.5.home-sw-in
net c-neg-limit => joint.5.neg-lim-sw-in
net c-pos-limit => joint.5.pos-lim-sw-in
#*******************
# SPINDLE
#*******************
setp pid.s.Pgain [SPINDLE_0]P
setp pid.s.Igain [SPINDLE_0]I
setp pid.s.Dgain [SPINDLE_0]D
setp pid.s.bias [SPINDLE_0]BIAS
setp pid.s.FF0 [SPINDLE_0]FF0
setp pid.s.FF1 [SPINDLE_0]FF1
setp pid.s.FF2 [SPINDLE_0]FF2
setp pid.s.deadband [SPINDLE_0]DEADBAND
setp pid.s.maxoutput [SPINDLE_0]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 => pid.s.command
net spindle-vel-fb-rpm => pid.s.feedback
net spindle-output <= pid.s.output
# ---setup spindle control signals---
net spindle-vel-cmd-rps <= spindle.0.speed-out-rps
net spindle-vel-cmd-rps-abs <= spindle.0.speed-out-rps-abs
net spindle-vel-cmd-rpm <= spindle.0.speed-out
net spindle-vel-cmd-rpm-abs <= spindle.0.speed-out-abs
net spindle-enable <= spindle.0.on
net spindle-cw <= spindle.0.forward
net spindle-ccw <= spindle.0.reverse
net spindle-brake <= spindle.0.brake
net spindle-revs => spindle.0.revs
net spindle-at-speed => spindle.0.at-speed
net spindle-vel-fb-rps => spindle.0.speed-in
net spindle-index-enable <=> spindle.0.index-enable
# ---Setup spindle at speed signals---
sets spindle-at-speed true
#******************************
# connect miscellaneous signals
#******************************
# ---HALUI signals---
net axis-select-x halui.axis.x.select
net jog-x-pos halui.axis.x.plus
net jog-x-neg halui.axis.x.minus
net jog-x-analog halui.axis.x.analog
net x-is-homed halui.joint.0.is-homed
net axis-select-y halui.axis.y.select
net jog-y-pos halui.axis.y.plus
net jog-y-neg halui.axis.y.minus
net jog-y-analog halui.axis.y.analog
net y-is-homed halui.joint.1.is-homed
net axis-select-z halui.axis.z.select
net jog-z-pos halui.axis.z.plus
net jog-z-neg halui.axis.z.minus
net jog-z-analog halui.axis.z.analog
net z-is-homed halui.joint.2.is-homed
net axis-select-a halui.axis.a.select
net jog-a-pos halui.axis.a.plus
net jog-a-neg halui.axis.a.minus
net jog-a-analog halui.axis.a.analog
net a-is-homed halui.joint.3.is-homed
net axis-select-c halui.axis.c.select
net jog-c-pos halui.axis.c.plus
net jog-c-neg halui.axis.c.minus
net jog-c-analog halui.axis.c.analog
net c-is-homed halui.joint.4.is-homed
net jog-selected-pos halui.axis.selected.plus
net jog-selected-neg halui.axis.selected.minus
net spindle-manual-cw halui.spindle.0.forward
net spindle-manual-ccw halui.spindle.0.reverse
net spindle-manual-stop halui.spindle.0.stop
net machine-is-on halui.machine.is-on
net jog-speed halui.axis.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-out => 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
# Erstellt von PNCconf am Sun Oct 10 09:27:11 2021
# Using LinuxCNC version: Master (2.9)
# Änderungen an dieser Datei werden beim nächsten
# overwritten when you run PNCconf again
[EMC]
MACHINE = my-mill
DEBUG = 0
VERSION = 1.1
[DISPLAY]
DISPLAY = axis
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
MAX_FEED_OVERRIDE = 2.000000
MAX_SPINDLE_OVERRIDE = 1.000000
MIN_SPINDLE_OVERRIDE = 0.500000
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
PROGRAM_PREFIX = /home/tim/linuxcnc/nc_files
INCREMENTS = 5mm 1mm .5mm .1mm .05mm .01mm .005mm
POSITION_FEEDBACK = ACTUAL
DEFAULT_LINEAR_VELOCITY = 6.000000
MAX_LINEAR_VELOCITY = 25.000000
MIN_LINEAR_VELOCITY = 0.500000
DEFAULT_ANGULAR_VELOCITY = 12.000000
MAX_ANGULAR_VELOCITY = 180.000000
MIN_ANGULAR_VELOCITY = 1.666667
EDITOR = gedit
GEOMETRY = xyzac
CYCLE_TIME = 100
[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
SERVO_PERIOD = 1000000
[HMOT]
# **** This is for info only ****
CARD0=hm2_7i95.0
[HAL]
HALUI = halui
HALFILE = my-mill.hal
HALFILE = custom.hal
POSTGUI_HALFILE = postgui_call_list.hal
SHUTDOWN = shutdown.hal
[HALUI]
[KINS]
JOINTS = 6
KINEMATICS = trivkins coordinates=XYYZAC
[TRAJ]
COORDINATES = XYYZAC
MAX_ANGULAR_VELOCITY = 360.00
DEFAULT_ANGULAR_VELOCITY = 36.00
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 2.50
MAX_LINEAR_VELOCITY = 25.00
[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = tool.tbl
#******************************************
[AXIS_X]
MAX_VELOCITY = 25.0
MAX_ACCELERATION = 750.0
MIN_LIMIT = -0.01
MAX_LIMIT = 200.01
[JOINT_0]
TYPE = LINEAR
HOME = 0.0
FERROR = 10.0
MIN_FERROR = 1.0
MAX_VELOCITY = 25.0
MAX_ACCELERATION = 750.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 = 31.25
STEPGEN_MAXACCEL = 937.50
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 = 10000
DIRHOLD = 10000
STEPLEN = 5000
STEPSPACE = 5000
STEP_SCALE = 1000.0
MIN_LIMIT = -0.01
MAX_LIMIT = 200.01
HOME_OFFSET = 0.0
#******************************************
#******************************************
[AXIS_Y]
MAX_VELOCITY = 5.0
MAX_ACCELERATION = 750.0
MIN_LIMIT = -0.01
MAX_LIMIT = 1000
[JOINT_1]
TYPE = LINEAR
HOME = 0.0
FERROR = 10.0
MIN_FERROR = 1.0
MAX_VELOCITY = 25.0
MAX_ACCELERATION = 750.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 = 10
STEPGEN_MAXACCEL = 937.50
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 = 10000
DIRHOLD = 10000
STEPLEN = 5000
STEPSPACE = 5000
STEP_SCALE = 1000.0
MIN_LIMIT = -0.01
MAX_LIMIT = 1001
HOME_OFFSET = 0.0
[JOINT_2]
TYPE = LINEAR
HOME = 0.0
FERROR = 10.0
MIN_FERROR = 1.0
MAX_VELOCITY = 25.0
MAX_ACCELERATION = 750.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 = 10
STEPGEN_MAXACCEL = 937.50
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 = 10000
DIRHOLD = 10000
STEPLEN = 5000
STEPSPACE = 5000
STEP_SCALE = 1000.0
MIN_LIMIT = -0.01
MAX_LIMIT = 1001
HOME_OFFSET = 0.0
#******************************************
#******************************************
[AXIS_Z]
MAX_VELOCITY = 25.0
MAX_ACCELERATION = 750.0
MIN_LIMIT = -100.01
MAX_LIMIT = 0.01
[JOINT_3]
TYPE = LINEAR
HOME = 0.0
FERROR = 10.0
MIN_FERROR = 1.0
MAX_VELOCITY = 25.0
MAX_ACCELERATION = 750.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 = 31.25
STEPGEN_MAXACCEL = 937.50
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 = 10000
DIRHOLD = 10000
STEPLEN = 5000
STEPSPACE = 5000
STEP_SCALE = 1000.0
MIN_LIMIT = -100.01
MAX_LIMIT = 0.01
HOME_OFFSET = 0.0
#******************************************
#******************************************
[AXIS_A]
MAX_VELOCITY = 3.60
MAX_ACCELERATION = 1200.0
MIN_LIMIT = -1e+59
MAX_LIMIT = 1e+55
[JOINT_4]
TYPE = ANGULAR
HOME = 0.0
FERROR = 0.5
MIN_FERROR = 0.05
MAX_VELOCITY = 360.0
MAX_ACCELERATION = 1200.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 = 50.00
STEPGEN_MAXACCEL = 1500.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 = 10000
DIRHOLD = 10000
STEPLEN = 5000
STEPSPACE = 5000
STEP_SCALE = 1000.0
MIN_LIMIT = -1e+59
MAX_LIMIT = 1e+55
HOME_OFFSET = 0.0
#******************************************
#******************************************
[AXIS_C]
MAX_VELOCITY = 3.6
MAX_ACCELERATION = 1200.0
MIN_LIMIT = -1e+59
MAX_LIMIT = 1e+55
[JOINT_5]
TYPE = ANGULAR
HOME = 0.0
FERROR = 0.5
MIN_FERROR = 0.05
MAX_VELOCITY = 360.0
MAX_ACCELERATION = 1200.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 = 50.00
STEPGEN_MAXACCEL = 1500.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 = 10000
DIRHOLD = 10000
STEPLEN = 5000
STEPSPACE = 5000
STEP_SCALE = 1000.0
MIN_LIMIT = -1e+59
MAX_LIMIT = 1e+55
HOME_OFFSET = 0.0
#******************************************
[SPINDLE_0]
P = 0
I = 0
D = 0
FF0 = 1
FF1 = 0
FF2 = 0
BIAS = 0
DEADBAND = 0
MAX_OUTPUT = 2000
Please Log in or Create an account to join the conversation.
10 Oct 2021 17:17 #222774
by PCW
You would be expected to setup the linked joints to home simultaneously
This is done by using a negative sequence number for linked joints:
linuxcnc.org/docs/html/config/ini-homing.html
This is done by using a negative sequence number for linked joints:
linuxcnc.org/docs/html/config/ini-homing.html
Please Log in or Create an account to join the conversation.
10 Oct 2021 17:50 #222783
by rodw
As Peter says, you need HOME_SEQUENCE=N for each joint in your ini.
Joints 1 & 2 (your Y axis) need to be HOME_SEQUENCE=-1
Joint 3 (your Z) is usually HOME_SEQUENCE=0 so it lifts up out of the way at the beginning
All of the rest could be HOME_SEQUENCE=1 so they all home simulteneously or you could continue the sequence to do them in sequence eg use 1,2,3 to set the order you want.
What does it look like after that?
Joints 1 & 2 (your Y axis) need to be HOME_SEQUENCE=-1
Joint 3 (your Z) is usually HOME_SEQUENCE=0 so it lifts up out of the way at the beginning
All of the rest could be HOME_SEQUENCE=1 so they all home simulteneously or you could continue the sequence to do them in sequence eg use 1,2,3 to set the order you want.
What does it look like after that?
Please Log in or Create an account to join the conversation.
Time to create page: 0.118 seconds