Files
mayo-mill-probasic/custom.hal
2026-06-23 09:42:58 +02:00

77 lines
3.0 KiB
Plaintext

# Include your custom HAL commands here
# This file will not be overwritten when you run stepconf again
#net spindle-on <= spindle.0.on
# =====================================================================
# Vevor D100 VFD Modbus (mb2hal) Integration
# =====================================================================
# Load the mb2hal component
loadusr -Wn vfd mb2hal config=vfd_d100.ini
# Load helper components
loadrt scale names=spindle_speed_scale,spindle_feedback_scale
loadrt mux2 names=spindle_dir_mux,spindle_run_mux
loadrt near names=spindle_at_speed_near
# Add helper components to the servo thread
addf spindle_speed_scale servo-thread
addf spindle_feedback_scale servo-thread
addf spindle_dir_mux servo-thread
addf spindle_run_mux servo-thread
addf spindle_at_speed_near servo-thread
# =====================================================================
# 1. Spindle Run & Direction Logic
# =====================================================================
# Direction Mux Input Values: 2.0 = Forward Run, 4.0 = Reverse Run
setp spindle_dir_mux.in0 2.0
setp spindle_dir_mux.in1 4.0
# Run Mux Input Values: 8.0 = Stop, in1 = value from direction mux
setp spindle_run_mux.in0 8.0
# Connect selection signals
net spindle-rev-sig spindle.0.reverse => spindle_dir_mux.sel
net spindle-dir-cmd spindle_dir_mux.out => spindle_run_mux.in1
net spindle-on-sig spindle.0.on => spindle_run_mux.sel
net spindle-run-cmd spindle_run_mux.out => vfd.control.00.float
# =====================================================================
# 2. Spindle Commanded Speed Scaling
# =====================================================================
# Gain = 4000 / 24000 = 0.16666667
setp spindle_speed_scale.gain 0.16666667
setp spindle_speed_scale.offset 0.0
# Connect signals
net spindle-speed-cmd spindle.0.speed-out-abs => spindle_speed_scale.in
net spindle-speed-scaled spindle_speed_scale.out => vfd.speed.00.float
# =====================================================================
# 3. Spindle Speed Feedback (RPM to RPS)
# =====================================================================
# Gain = 1 / 60 = 0.01666667 (converts RPM to RPS)
setp spindle_feedback_scale.gain 0.01666667
setp spindle_feedback_scale.offset 0.0
# Connect signals
net spindle-rpm-feedback vfd.metrics.rpm.float => spindle_feedback_scale.in
net spindle-rps-feedback spindle_feedback_scale.out => spindle.0.speed-in
# =====================================================================
# 4. Spindle "At Speed" Detection
# =====================================================================
# Configure allowable difference (e.g., within 5% or 300 RPM)
setp spindle_at_speed_near.difference 300.0
# We want the speed to be compared on the absolute commanded speed (RPM)
net spindle-speed-cmd => spindle_at_speed_near.in1
net spindle-rpm-feedback => spindle_at_speed_near.in2
net spindle-at-speed spindle_at_speed_near.out => spindle.0.at-speed