dodalem probe basic
This commit is contained in:
47
configs/probe_basic_lathe/hallib/core_sim_2.hal
Normal file
47
configs/probe_basic_lathe/hallib/core_sim_2.hal
Normal file
@@ -0,0 +1,47 @@
|
||||
# core HAL config file for simulation
|
||||
|
||||
# first load all the RT modules that will be needed
|
||||
# kinematics
|
||||
loadrt [KINS]KINEMATICS
|
||||
# motion controller, get name and thread periods from ini file
|
||||
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS num_spindles=[TRAJ]SPINDLES num_dio=6 num_aio=3
|
||||
# load 6 differentiators (for velocity and accel signals
|
||||
loadrt ddt names=ddt_x,ddt_xv,ddt_z,ddt_zv
|
||||
# load additional blocks
|
||||
loadrt hypot names=vel_xz
|
||||
|
||||
# add motion controller functions to servo thread
|
||||
addf motion-command-handler servo-thread
|
||||
addf motion-controller servo-thread
|
||||
# link the differentiator functions into the code
|
||||
addf ddt_x servo-thread
|
||||
addf ddt_xv servo-thread
|
||||
addf ddt_z servo-thread
|
||||
addf ddt_zv servo-thread
|
||||
addf vel_xz servo-thread
|
||||
|
||||
# create HAL signals for position commands from motion module
|
||||
# loop position commands back to motion module feedback
|
||||
net Xpos joint.0.motor-pos-cmd => joint.0.motor-pos-fb ddt_x.in
|
||||
net Zpos joint.1.motor-pos-cmd => joint.1.motor-pos-fb ddt_z.in
|
||||
|
||||
# send the position commands thru differentiators to
|
||||
# generate velocity and accel signals
|
||||
net Xvel ddt_x.out => ddt_xv.in vel_xz.in0
|
||||
net Xacc <= ddt_xv.out
|
||||
net Zvel ddt_z.out => ddt_zv.in vel_xz.in1
|
||||
net Zacc <= ddt_zv.out
|
||||
|
||||
# Cartesian 2- and 3-axis velocities
|
||||
net XZvel <= vel_xz.out
|
||||
|
||||
# estop loopback
|
||||
net estop-loop iocontrol.0.user-enable-out iocontrol.0.emc-enable-in
|
||||
|
||||
# ---manual tool change signals---
|
||||
net tool-change-request <= iocontrol.0.tool-change
|
||||
net tool-change-confirmed => iocontrol.0.tool-changed
|
||||
net tool-number <= iocontrol.0.tool-prep-number
|
||||
|
||||
# create signals for tool loading loopback
|
||||
net tool-prep-loop iocontrol.0.tool-prepare iocontrol.0.tool-prepared
|
||||
55
configs/probe_basic_lathe/hallib/core_sim_4.hal
Normal file
55
configs/probe_basic_lathe/hallib/core_sim_4.hal
Normal file
@@ -0,0 +1,55 @@
|
||||
# core HAL config file for XYZC lathe simulation
|
||||
|
||||
# Load required RT modules
|
||||
loadrt [KINS]KINEMATICS
|
||||
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS num_spindles=[TRAJ]SPINDLES num_dio=6 num_aio=3
|
||||
|
||||
# Load differentiators for each axis
|
||||
loadrt ddt names=ddt_x,ddt_xv,ddt_y,ddt_yv,ddt_z,ddt_zv,ddt_c,ddt_cv
|
||||
# Load hypot blocks for velocity calculations
|
||||
loadrt hypot names=vel_xy,vel_xyz
|
||||
|
||||
# Add functions to servo thread
|
||||
addf motion-command-handler servo-thread
|
||||
addf motion-controller servo-thread
|
||||
addf ddt_x servo-thread
|
||||
addf ddt_xv servo-thread
|
||||
addf ddt_y servo-thread
|
||||
addf ddt_yv servo-thread
|
||||
addf ddt_z servo-thread
|
||||
addf ddt_zv servo-thread
|
||||
addf ddt_c servo-thread
|
||||
addf ddt_cv servo-thread
|
||||
addf vel_xy servo-thread
|
||||
addf vel_xyz servo-thread
|
||||
|
||||
# Position command/feedback loopback for each joint
|
||||
net Xpos joint.0.motor-pos-cmd => joint.0.motor-pos-fb ddt_x.in
|
||||
net Ypos joint.1.motor-pos-cmd => joint.1.motor-pos-fb ddt_y.in
|
||||
net Zpos joint.2.motor-pos-cmd => joint.2.motor-pos-fb ddt_z.in
|
||||
net Cpos joint.3.motor-pos-cmd => joint.3.motor-pos-fb ddt_c.in
|
||||
|
||||
# Velocity and acceleration signals for each axis
|
||||
net Xvel ddt_x.out => ddt_xv.in vel_xy.in0 vel_xyz.in0
|
||||
net Xacc <= ddt_xv.out
|
||||
net Yvel ddt_y.out => ddt_yv.in vel_xy.in1 vel_xyz.in1
|
||||
net Yacc <= ddt_yv.out
|
||||
net Zvel ddt_z.out => ddt_zv.in vel_xyz.in2
|
||||
net Zacc <= ddt_zv.out
|
||||
net Cvel ddt_c.out => ddt_cv.in
|
||||
net Cacc <= ddt_cv.out
|
||||
|
||||
# Cartesian velocities
|
||||
net XYvel <= vel_xy.out
|
||||
net XYZvel <= vel_xyz.out
|
||||
|
||||
# estop loopback
|
||||
net estop-loop iocontrol.0.user-enable-out iocontrol.0.emc-enable-in
|
||||
|
||||
# ---manual tool change signals---
|
||||
net tool-change-request <= iocontrol.0.tool-change
|
||||
net tool-change-confirmed => iocontrol.0.tool-changed
|
||||
net tool-number <= iocontrol.0.tool-prep-number
|
||||
|
||||
# tool loading loopback
|
||||
net tool-prep-loop iocontrol.0.tool-prepare iocontrol.0.tool-prepared
|
||||
55
configs/probe_basic_lathe/hallib/core_xyzclathe_sim.hal
Normal file
55
configs/probe_basic_lathe/hallib/core_xyzclathe_sim.hal
Normal file
@@ -0,0 +1,55 @@
|
||||
# core HAL config file for XYZC lathe simulation
|
||||
|
||||
# Load required RT modules
|
||||
loadrt [KINS]KINEMATICS
|
||||
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS num_spindles=[TRAJ]SPINDLES num_dio=6 num_aio=3
|
||||
|
||||
# Load differentiators for each axis
|
||||
loadrt ddt names=ddt_x,ddt_xv,ddt_y,ddt_yv,ddt_z,ddt_zv,ddt_c,ddt_cv
|
||||
# Load hypot blocks for velocity calculations
|
||||
loadrt hypot names=vel_xy,vel_xyz
|
||||
|
||||
# Add functions to servo thread
|
||||
addf motion-command-handler servo-thread
|
||||
addf motion-controller servo-thread
|
||||
addf ddt_x servo-thread
|
||||
addf ddt_xv servo-thread
|
||||
addf ddt_y servo-thread
|
||||
addf ddt_yv servo-thread
|
||||
addf ddt_z servo-thread
|
||||
addf ddt_zv servo-thread
|
||||
addf ddt_c servo-thread
|
||||
addf ddt_cv servo-thread
|
||||
addf vel_xy servo-thread
|
||||
addf vel_xyz servo-thread
|
||||
|
||||
# Position command/feedback loopback for each joint
|
||||
net Xpos joint.0.motor-pos-cmd => joint.0.motor-pos-fb ddt_x.in
|
||||
net Ypos joint.1.motor-pos-cmd => joint.1.motor-pos-fb ddt_y.in
|
||||
net Zpos joint.2.motor-pos-cmd => joint.2.motor-pos-fb ddt_z.in
|
||||
net Cpos joint.3.motor-pos-cmd => joint.3.motor-pos-fb ddt_c.in
|
||||
|
||||
# Velocity and acceleration signals for each axis
|
||||
net Xvel ddt_x.out => ddt_xv.in vel_xy.in0 vel_xyz.in0
|
||||
net Xacc <= ddt_xv.out
|
||||
net Yvel ddt_y.out => ddt_yv.in vel_xy.in1 vel_xyz.in1
|
||||
net Yacc <= ddt_yv.out
|
||||
net Zvel ddt_z.out => ddt_zv.in vel_xyz.in2
|
||||
net Zacc <= ddt_zv.out
|
||||
net Cvel ddt_c.out => ddt_cv.in
|
||||
net Cacc <= ddt_cv.out
|
||||
|
||||
# Cartesian velocities
|
||||
net XYvel <= vel_xy.out
|
||||
net XYZvel <= vel_xyz.out
|
||||
|
||||
# estop loopback
|
||||
net estop-loop iocontrol.0.user-enable-out iocontrol.0.emc-enable-in
|
||||
|
||||
# ---manual tool change signals---
|
||||
net tool-change-request <= iocontrol.0.tool-change
|
||||
net tool-change-confirmed => iocontrol.0.tool-changed
|
||||
net tool-number <= iocontrol.0.tool-prep-number
|
||||
|
||||
# tool loading loopback
|
||||
net tool-prep-loop iocontrol.0.tool-prepare iocontrol.0.tool-prepared
|
||||
@@ -0,0 +1,21 @@
|
||||
loadrt time
|
||||
loadrt not
|
||||
|
||||
addf time.0 servo-thread
|
||||
addf not.0 servo-thread
|
||||
|
||||
# *** Time items required for Probe Basic to run ***
|
||||
net prog-running not.0.in <= halui.program.is-idle
|
||||
net prog-paused halui.program.is-paused => time.0.pause
|
||||
net cycle-timer time.0.start <= not.0.out
|
||||
net cycle-seconds qtpyvcp.timerseconds.in <= time.0.seconds
|
||||
net cycle-minutes qtpyvcp.timerminutes.in <= time.0.minutes
|
||||
net cycle-hours qtpyvcp.timerhours.in <= time.0.hours
|
||||
|
||||
# ---manual tool change signals---
|
||||
net tool-change-request => qtpyvcp_manualtoolchange.change
|
||||
net tool-change-confirmed <= qtpyvcp_manualtoolchange.changed
|
||||
net tool-number => qtpyvcp_manualtoolchange.number
|
||||
|
||||
# *** Set line below for actual spindle readout from your hal file ***
|
||||
net spindle-rpm-filtered.0 scale_to_rpm.0.out => qtpyvcp.spindle-encoder-rpm.in
|
||||
39
configs/probe_basic_lathe/hallib/sim_spindle_encoder.hal
Normal file
39
configs/probe_basic_lathe/hallib/sim_spindle_encoder.hal
Normal file
@@ -0,0 +1,39 @@
|
||||
# simulated spindle encoder (for spindle-synced moves)
|
||||
loadrt sim_spindle names=sim_spindle
|
||||
setp sim_spindle.scale 0.01666667
|
||||
|
||||
loadrt limit2 names=limit_speed
|
||||
loadrt lowpass names=spindle_mass
|
||||
loadrt near names=near_speed
|
||||
|
||||
# this limit doesnt make any sense to me:
|
||||
setp limit_speed.maxv 2000.0 # rpm/second
|
||||
|
||||
# encoder reset control
|
||||
# hook up motion controller's sync output
|
||||
net spindle-index-enable spindle.0.index-enable <=> sim_spindle.index-enable
|
||||
|
||||
# report our revolution count to the motion controller
|
||||
net spindle-pos sim_spindle.position-fb => spindle.0.revs
|
||||
|
||||
# simulate spindle mass
|
||||
setp spindle_mass.gain .07
|
||||
|
||||
# spindle speed control
|
||||
net spindle-speed-cmd spindle.0.speed-out => limit_speed.in
|
||||
net spindle-speed-limited limit_speed.out => sim_spindle.velocity-cmd spindle_mass.in
|
||||
|
||||
# for spindle velocity estimate
|
||||
net spindle-rpm-filtered spindle_mass.out spindle.0.speed-in near_speed.in2
|
||||
|
||||
# at-speed detection
|
||||
setp near_speed.scale 1.1
|
||||
setp near_speed.difference 10
|
||||
|
||||
net spindle-speed-cmd => near_speed.in1
|
||||
net spindle-at-speed near_speed.out spindle.0.at-speed
|
||||
|
||||
addf limit_speed servo-thread
|
||||
addf spindle_mass servo-thread
|
||||
addf near_speed servo-thread
|
||||
addf sim_spindle servo-thread
|
||||
31
configs/probe_basic_lathe/hallib/simulated_home_xyzc.hal
Normal file
31
configs/probe_basic_lathe/hallib/simulated_home_xyzc.hal
Normal file
@@ -0,0 +1,31 @@
|
||||
loadrt comp names=comp_x,comp_y,comp_z,comp_c
|
||||
|
||||
net Xhomeswpos => comp_x.in0
|
||||
net Yhomeswpos => comp_y.in0
|
||||
net Zhomeswpos => comp_z.in0
|
||||
net Chomeswpos => comp_c.in0
|
||||
|
||||
sets Xhomeswpos 1
|
||||
sets Yhomeswpos 2
|
||||
sets Zhomeswpos 3
|
||||
sets Chomeswpos 4
|
||||
|
||||
net Xpos => comp_x.in1
|
||||
net Ypos => comp_y.in1
|
||||
net Zpos => comp_z.in1
|
||||
net Cpos => comp_c.in1
|
||||
|
||||
setp comp_x.hyst .02
|
||||
setp comp_y.hyst .02
|
||||
setp comp_z.hyst .02
|
||||
setp comp_c.hyst .02
|
||||
|
||||
net Xhomesw <= comp_x.out => joint.0.home-sw-in
|
||||
net Yhomesw <= comp_y.out => joint.1.home-sw-in
|
||||
net Zhomesw <= comp_z.out => joint.2.home-sw-in
|
||||
net Chomesw <= comp_c.out => joint.3.home-sw-in
|
||||
|
||||
addf comp_x servo-thread
|
||||
addf comp_y servo-thread
|
||||
addf comp_z servo-thread
|
||||
addf comp_c servo-thread
|
||||
25
configs/probe_basic_lathe/hallib/simulated_home_xz.hal
Normal file
25
configs/probe_basic_lathe/hallib/simulated_home_xz.hal
Normal file
@@ -0,0 +1,25 @@
|
||||
loadrt or2 names=or2_0
|
||||
loadrt comp names=comp_x,comp_z
|
||||
|
||||
net Xhomeswpos => comp_x.in0
|
||||
net Zhomeswpos => comp_z.in0
|
||||
|
||||
sets Xhomeswpos 1
|
||||
sets Zhomeswpos 2
|
||||
|
||||
net Xpos => comp_x.in1
|
||||
net Zpos => comp_z.in1
|
||||
|
||||
setp comp_x.hyst .02
|
||||
setp comp_z.hyst .02
|
||||
|
||||
net Xhomesw <= comp_x.out => joint.0.home-sw-in
|
||||
net Zhomesw <= comp_z.out => joint.1.home-sw-in
|
||||
|
||||
# net Xhomesw => or2_0.in0
|
||||
# net XZhomesw or2_0.out => joint.0.home-sw-in joint.2.home-sw-in
|
||||
|
||||
addf comp_x servo-thread
|
||||
addf comp_z servo-thread
|
||||
|
||||
addf or2_0 servo-thread
|
||||
109
configs/probe_basic_lathe/hallib/simulated_lathe.hal
Normal file
109
configs/probe_basic_lathe/hallib/simulated_lathe.hal
Normal file
@@ -0,0 +1,109 @@
|
||||
# counting the spindle encoder in software
|
||||
loadrt encoder names=encoder_0,encoder_1
|
||||
# simulate the encoder
|
||||
loadrt sim_encoder names=sim_encoder_0,sim_encoder_1
|
||||
loadrt limit2 names=limit_speed
|
||||
|
||||
addf limit_speed servo-thread
|
||||
|
||||
#######################################################
|
||||
# Beginning of threading related stuff
|
||||
#######################################################
|
||||
|
||||
# spindle speed control
|
||||
net spindle.0.cmd spindle.0.speed-out => sim_encoder_0.speed
|
||||
net spindle.1.cmd spindle.1.speed-out => sim_encoder_1.speed
|
||||
|
||||
# simulate spindle mass
|
||||
setp limit_speed.maxv 2000.0 # rpm/second
|
||||
|
||||
# spindle encoder 0
|
||||
# connect encoder signals to encoder counter
|
||||
net spindle-phase-A sim_encoder_0.phase-A => encoder_0.phase-A
|
||||
net spindle-phase-B sim_encoder_0.phase-B => encoder_0.phase-B
|
||||
net spindle-phase-Z sim_encoder_0.phase-Z => encoder_0.phase-Z
|
||||
|
||||
# assume 120 ppr = 480 counts/rev for the spindle
|
||||
setp sim_encoder_0.ppr 120
|
||||
# iocontrol output is in rpm, but sim-encoder speed is rps
|
||||
setp sim_encoder_0.scale 60
|
||||
# scale encoder output to read in revolutions
|
||||
# (that way thread pitches can be straightforward,
|
||||
# a 20 tpi thread would multiply the encoder output
|
||||
# by 1/20, etc)
|
||||
setp encoder_0.position-scale 480
|
||||
|
||||
# encoder reset control
|
||||
# hook up motion controller's sync output
|
||||
net spindle-index-enable spindle.0.index-enable <=> encoder_0.index-enable
|
||||
|
||||
# report our revolution count to the motion controller
|
||||
net spindle.0.pos encoder_0.position => spindle.0.revs
|
||||
|
||||
# spindle encoder 1
|
||||
# connect encoder signals to encoder counter
|
||||
net spindle-phase-A1 sim_encoder_1.phase-A => encoder_1.phase-A
|
||||
net spindle-phase-B1 sim_encoder_1.phase-B => encoder_1.phase-B
|
||||
net spindle-phase-Z1 sim_encoder_1.phase-Z => encoder_1.phase-Z
|
||||
|
||||
# assume 120 ppr = 480 counts/rev for the spindle
|
||||
setp sim_encoder_1.ppr 120
|
||||
# iocontrol output is in rpm, but sim-encoder speed is rps
|
||||
setp sim_encoder_1.scale 60
|
||||
# scale encoder output to read in revolutions
|
||||
# (that way thread pitches can be straightforward,
|
||||
# a 20 tpi thread would multiply the encoder output
|
||||
# by 1/20, etc)
|
||||
setp encoder_1.position-scale 480
|
||||
|
||||
# encoder reset control
|
||||
# hook up motion controller's sync output
|
||||
net spindle-index-enable spindle.1.index-enable <=> encoder_0.index-enable
|
||||
|
||||
# report our revolution count to the motion controller
|
||||
net spindle.1.pos encoder_1.position => spindle.1.revs
|
||||
|
||||
# for spindle velocity estimate
|
||||
loadrt lowpass names=lowpass_velocity.0,lowpass_velocity.1
|
||||
loadrt scale names=scale_to_rpm.0,scale_to_rpm.1
|
||||
net spindle-rps-raw.0 encoder_0.velocity lowpass_velocity.0.in
|
||||
net spindle-rps-filtered.0 lowpass_velocity.0.out scale_to_rpm.0.in spindle.0.speed-in
|
||||
net spindle-rpm-filtered.0 scale_to_rpm.0.out
|
||||
setp scale_to_rpm.0.gain 60
|
||||
setp lowpass_velocity.0.gain .07
|
||||
addf lowpass_velocity.0 servo-thread
|
||||
addf scale_to_rpm.0 servo-thread
|
||||
|
||||
net spindle-rps-raw.1 encoder_1.velocity lowpass_velocity.1.in
|
||||
net spindle-rps-filtered.1 lowpass_velocity.1.out scale_to_rpm.1.in spindle.1.speed-in
|
||||
net spindle-rpm-filtered.1 scale_to_rpm.1.out
|
||||
setp scale_to_rpm.1.gain 60
|
||||
setp lowpass_velocity.1.gain .07
|
||||
addf lowpass_velocity.1 servo-thread
|
||||
addf scale_to_rpm.1 servo-thread
|
||||
|
||||
# for at-speed detection
|
||||
loadrt near names=near_speed.0,near_speed.1
|
||||
addf near_speed.0 servo-thread
|
||||
setp near_speed.0.scale 1.1
|
||||
setp near_speed.0.difference 10
|
||||
net spindle.0.cmd => near_speed.0.in1
|
||||
net spindle-rpm-filtered.0 => near_speed.0.in2
|
||||
net spindle-at-speed.0 near_speed.0.out spindle.0.at-speed
|
||||
net spindle.0-fwd <= spindle.0.forward
|
||||
|
||||
addf near_speed.1 servo-thread
|
||||
setp near_speed.1.scale 1.1
|
||||
setp near_speed.1.difference 10
|
||||
net spindle.1.cmd => near_speed.1.in1
|
||||
net spindle-rpm-filtered.1 => near_speed.1.in2
|
||||
net spindle-at-speed.1 near_speed.1.out spindle.1.at-speed
|
||||
|
||||
net spindle.1-fwd <= spindle.1.forward
|
||||
|
||||
addf encoder.capture-position servo-thread
|
||||
addf sim-encoder.update-speed servo-thread
|
||||
|
||||
addf sim-encoder.make-pulses base-thread
|
||||
addf encoder.update-counters base-thread
|
||||
|
||||
69
configs/probe_basic_lathe/hallib/spindle_sim.hal
Normal file
69
configs/probe_basic_lathe/hallib/spindle_sim.hal
Normal file
@@ -0,0 +1,69 @@
|
||||
# counting the spindle encoder in software
|
||||
loadrt encoder names=encoder_0
|
||||
# simulate the encoder
|
||||
loadrt sim_encoder names=sim_encoder_0
|
||||
loadrt limit2 names=limit_speed
|
||||
|
||||
addf limit_speed servo-thread
|
||||
|
||||
#######################################################
|
||||
# Beginning of threading related stuff
|
||||
#######################################################
|
||||
|
||||
# spindle speed control
|
||||
net spindle-speed-cmd spindle.0.speed-out => limit_speed.in
|
||||
net spindle-speed-limited limit_speed.out => sim_encoder_0.speed
|
||||
|
||||
# simulate spindle mass
|
||||
setp limit_speed.maxv 2000.0 # rpm/second
|
||||
|
||||
# spindle encoder
|
||||
# connect encoder signals to encoder counter
|
||||
net spindle-phase-A sim_encoder_0.phase-A => encoder_0.phase-A
|
||||
net spindle-phase-B sim_encoder_0.phase-B => encoder_0.phase-B
|
||||
net spindle-phase-Z sim_encoder_0.phase-Z => encoder_0.phase-Z
|
||||
|
||||
# assume 120 ppr = 480 counts/rev for the spindle
|
||||
setp sim_encoder_0.ppr 12
|
||||
# iocontrol output is in rpm, but sim-encoder speed is rps
|
||||
setp sim_encoder_0.scale 60
|
||||
# scale encoder output to read in revolutions
|
||||
# (that way thread pitches can be straightforward,
|
||||
# a 20 tpi thread would multiply the encoder output
|
||||
# by 1/20, etc)
|
||||
setp encoder_0.position-scale 48
|
||||
|
||||
# encoder reset control
|
||||
# hook up motion controller's sync output
|
||||
net spindle-index-enable spindle.0.index-enable <=> encoder_0.index-enable
|
||||
|
||||
# report our revolution count to the motion controller
|
||||
net spindle-pos encoder_0.position => spindle.0.revs
|
||||
|
||||
# for spindle velocity estimate
|
||||
loadrt lowpass names=lowpass_velocity
|
||||
loadrt scale names=scale_to_rpm,scale.servo
|
||||
net spindle-rps-raw encoder_0.velocity lowpass_velocity.in
|
||||
net spindle-rps-filtered lowpass_velocity.out scale_to_rpm.in spindle.0.speed-in
|
||||
net spindle-rpm-filtered scale_to_rpm.out
|
||||
setp scale_to_rpm.gain 60
|
||||
setp lowpass_velocity.gain .07
|
||||
addf lowpass_velocity servo-thread
|
||||
addf scale_to_rpm servo-thread
|
||||
|
||||
# for at-speed detection
|
||||
loadrt near names=near_speed
|
||||
addf near_speed servo-thread
|
||||
setp near_speed.scale 1.1
|
||||
setp near_speed.difference 10
|
||||
net spindle-speed-cmd => near_speed.in1
|
||||
net spindle-rpm-filtered => near_speed.in2
|
||||
net spindle-at-speed near_speed.out spindle.0.at-speed
|
||||
|
||||
net spindle-fwd <= spindle.0.forward
|
||||
|
||||
addf encoder.capture-position servo-thread
|
||||
addf sim-encoder.update-speed servo-thread
|
||||
|
||||
addf sim-encoder.make-pulses base-thread
|
||||
addf encoder.update-counters base-thread
|
||||
Reference in New Issue
Block a user